40 lines
805 B
C++
40 lines
805 B
C++
#pragma once
|
|
|
|
namespace mt
|
|
{
|
|
class Item;
|
|
class Equip;
|
|
class BattlePotion;
|
|
}
|
|
|
|
class Human;
|
|
struct BagItem
|
|
{
|
|
int equip_id = 0;
|
|
int equip_num = 0;
|
|
const mt::Item* item_meta = nullptr;
|
|
const mt::BattlePotion* potion_meta = nullptr;
|
|
const mt::Equip* equip_meta = nullptr;
|
|
long long last_use_tick = 0;
|
|
|
|
int GetCdTime(Human* num);
|
|
};
|
|
|
|
class Bag
|
|
{
|
|
public:
|
|
Bag(Human* owner) { owner_ = owner; };
|
|
void UseItem(int equip_id);
|
|
void PushBagInfo();
|
|
void Parse(const std::list<std::tuple<int, int, int, int>>& items);
|
|
std::shared_ptr<BagItem> GetItemById(int equip_id);
|
|
void UpdateItemNum(int item_id, int item_num);
|
|
|
|
private:
|
|
void InternalPushBagInfo();
|
|
|
|
private:
|
|
Human* owner_ = nullptr;
|
|
std::map<int, std::shared_ptr<BagItem>> items_;
|
|
};
|