#pragma once #include #include #include #include "Client.hh" void player_use_item(std::shared_ptr c, size_t item_index); struct CommonItemData { std::vector enemy_item_categories; std::vector box_item_categories; std::vector> unit_types; CommonItemData( std::vector&& enemy_item_categories, std::vector&& box_item_categories, std::vector>&& unit_types); }; struct CommonItemCreator { std::shared_ptr data; std::shared_ptr random; CommonItemCreator( std::shared_ptr data, std::shared_ptr random); int32_t decide_item_type(bool is_box) const; ItemData create_drop_item(bool is_box, uint8_t episode, uint8_t difficulty, uint8_t area, uint8_t section_id) const; ItemData create_shop_item(uint8_t difficulty, uint8_t shop_type) const; };