add $rand command

This commit is contained in:
Martin Michelsen
2022-07-11 11:04:26 -07:00
parent abe64af17b
commit 0a115427a1
17 changed files with 159 additions and 80 deletions
+17 -5
View File
@@ -3,20 +3,32 @@
#include <stdint.h>
#include <memory>
#include <random>
#include "Lobby.hh"
#include "Client.hh"
void player_use_item(std::shared_ptr<Client> c, size_t item_index);
struct CommonItemCreator {
struct CommonItemData {
std::vector<uint32_t> enemy_item_categories;
std::vector<uint32_t> box_item_categories;
std::vector<std::vector<uint8_t>> unit_types;
CommonItemCreator(const std::vector<uint32_t>& enemy_item_categories,
const std::vector<uint32_t>& box_item_categories,
const std::vector<std::vector<uint8_t>>& unit_types);
CommonItemData(
std::vector<uint32_t>&& enemy_item_categories,
std::vector<uint32_t>&& box_item_categories,
std::vector<std::vector<uint8_t>>&& unit_types);
};
struct CommonItemCreator {
std::shared_ptr<const CommonItemData> data;
std::shared_ptr<std::mt19937> random;
CommonItemCreator(
std::shared_ptr<const CommonItemData> data,
std::shared_ptr<std::mt19937> random);
int32_t decide_item_type(bool is_box) const;
ItemData create_drop_item(bool is_box, uint8_t episode, uint8_t difficulty,