diff --git a/server/gameserver/mt/BattleUnit.cc b/server/gameserver/mt/BattleUnit.cc new file mode 100644 index 00000000..e69de29b diff --git a/server/gameserver/mt/BattleUnit.h b/server/gameserver/mt/BattleUnit.h new file mode 100644 index 00000000..5efc88f9 --- /dev/null +++ b/server/gameserver/mt/BattleUnit.h @@ -0,0 +1,15 @@ +#pragma once + +#include "mt/macro.h" +#include "mtb/BattleUnit.h" + +namespace mt +{ + + DECLARE_ID_TABLE(BattleUnit, mtb::BattleUnit, + "battleUnit@battleUnit.json", + "id") + public: + }; + +} diff --git a/server/gameserver/mtb/BattleUnit.h b/server/gameserver/mtb/BattleUnit.h new file mode 100644 index 00000000..d79864f0 --- /dev/null +++ b/server/gameserver/mtb/BattleUnit.h @@ -0,0 +1,37 @@ +#pragma once + +#include + +namespace mtb +{ + + class BattleUnit + { + public: + + std::shared_ptr GetClass() const; + int id() const { return id_; }; + int weapon() const { return weapon_; }; + int level() const { return level_; }; + const std::string levelAttribute() const { return levelAttribute_; }; + const std::string cost() const { return cost_; }; + + bool has_id() const { return __flags__.test(0);}; + bool has_weapon() const { return __flags__.test(1);}; + bool has_level() const { return __flags__.test(2);}; + bool has_levelAttribute() const { return __flags__.test(3);}; + bool has_cost() const { return __flags__.test(4);}; + + protected: + + int id_ = 0; + int weapon_ = 0; + int level_ = 0; + std::string levelAttribute_; + std::string cost_; + +public: + std::bitset<5> __flags__; + }; + +}; diff --git a/server/gameserver/mtb/mtb.all.cc b/server/gameserver/mtb/mtb.all.cc index 906d6c0a..83640db8 100644 --- a/server/gameserver/mtb/mtb.all.cc +++ b/server/gameserver/mtb/mtb.all.cc @@ -45,6 +45,7 @@ #include "mtb/BattleLevelAttribute.h" #include "mtb/BattleRandAttribute.h" #include "mtb/BattleWeaponAttribute.h" +#include "mtb/BattleUnit.h" #include "mtb/Condition.h" #include "mtb/Distribution.h" #include "mtb/LootConfig.h" @@ -976,6 +977,20 @@ namespace mtb return meta_class; } + std::shared_ptr BattleUnit::GetClass() const + { + std::shared_ptr meta_class = nullptr; + if (!meta_class) { + meta_class = std::make_shared("BattleUnit", 5, 0); + meta_class->SetSimpleField(0, "id", a8::reflect::ET_INT32, my_offsetof2(BattleUnit, id_)); + meta_class->SetSimpleField(1, "weapon", a8::reflect::ET_INT32, my_offsetof2(BattleUnit, weapon_)); + meta_class->SetSimpleField(2, "level", a8::reflect::ET_INT32, my_offsetof2(BattleUnit, level_)); + meta_class->SetSimpleField(3, "levelAttribute", a8::reflect::ET_STRING, my_offsetof2(BattleUnit, levelAttribute_)); + meta_class->SetSimpleField(4, "cost", a8::reflect::ET_STRING, my_offsetof2(BattleUnit, cost_)); + } + return meta_class; + } + std::shared_ptr Condition::GetClass() const { std::shared_ptr meta_class = nullptr;