This commit is contained in:
aozhiwei 2023-10-17 14:19:56 +08:00
parent ec2f95677f
commit f33c7cdc49
7 changed files with 59 additions and 13 deletions

View File

@ -633,7 +633,7 @@ namespace behaviac
virtual bool load()
{
AgentMeta::SetTotalSignature(2481940886u);
AgentMeta::SetTotalSignature(1690997772u);
AgentMeta* meta = NULL;
BEHAVIAC_UNUSED_VAR(meta);
@ -728,7 +728,7 @@ namespace behaviac
meta->RegisterMethod(502968959u, BEHAVIAC_NEW CMethod_behaviac_Agent_VectorRemove());
// HeroAgent
meta = BEHAVIAC_NEW AgentMeta(918144158u);
meta = BEHAVIAC_NEW AgentMeta(2916028299u);
AgentMeta::GetAgentMetas()[2270112014u] = meta;
meta->RegisterMemberProperty(2706111800u, BEHAVIAC_NEW CMemberProperty< TargetAgent* >("current_target_agent", Set_HeroAgent_current_target_agent, Get_HeroAgent_current_target_agent));
meta->RegisterMemberProperty(1530109714u, BEHAVIAC_NEW CMemberProperty< MasterAgent* >("master_agent", Set_HeroAgent_master_agent, Get_HeroAgent_master_agent));
@ -766,10 +766,11 @@ namespace behaviac
meta->RegisterMethod(4089045845u, BEHAVIAC_NEW CMethod_HeroAgent_CoFindPathEx());
meta->RegisterMethod(3209797653u, BEHAVIAC_NEW CAgentMethod_2< behaviac::EBTStatus, int, int >(FunctionPointer_HeroAgent_CoIdle));
meta->RegisterMethod(4143109332u, BEHAVIAC_NEW CAgentMethod< behaviac::EBTStatus >(FunctionPointer_HeroAgent_CoMoveCurrentTargetRaycast));
meta->RegisterMethod(2391222168u, BEHAVIAC_NEW CAgentMethod_2< behaviac::EBTStatus, int, int >(FunctionPointer_HeroAgent_CoMoveForward));
meta->RegisterMethod(1078523079u, BEHAVIAC_NEW CAgentMethod< behaviac::EBTStatus >(FunctionPointer_HeroAgent_CoMoveMasterRaycast));
meta->RegisterMethod(4232723171u, BEHAVIAC_NEW CAgentMethod< behaviac::EBTStatus >(FunctionPointer_HeroAgent_CoShotCurrentTargetRaycast));
meta->RegisterMethod(1700191022u, BEHAVIAC_NEW CAgentMethod_1< behaviac::EBTStatus, float >(FunctionPointer_HeroAgent_CoSleep));
meta->RegisterMethod(345019945u, BEHAVIAC_NEW CAgentMethod_1< behaviac::EBTStatus, float >(FunctionPointer_HeroAgent_CoStartMove));
meta->RegisterMethod(345019945u, BEHAVIAC_NEW CAgentMethod_2< behaviac::EBTStatus, int, int >(FunctionPointer_HeroAgent_CoStartMove));
meta->RegisterMethod(961264360u, BEHAVIAC_NEW CAgentMethodVoid_2<int, int>(FunctionPointer_HeroAgent_DecV));
meta->RegisterMethod(3850832265u, BEHAVIAC_NEW CAgentMethodVoid(FunctionPointer_HeroAgent_FollowMaster) /* FollowMaster */);
meta->RegisterMethod(3395125024u, BEHAVIAC_NEW CAgentMethod< int >(FunctionPointer_HeroAgent_GetAgentType));
@ -799,12 +800,14 @@ namespace behaviac
meta->RegisterMethod(2967784099u, BEHAVIAC_NEW CAgentMethodVoid(FunctionPointer_HeroAgent_MasterHelpAttack) /* MasterHelpAttack */);
meta->RegisterMethod(130282478u, BEHAVIAC_NEW CAgentMethod_1< bool, float >(FunctionPointer_HeroAgent_MasterInRange));
meta->RegisterMethod(2059940772u, BEHAVIAC_NEW CAgentMethodVoid(FunctionPointer_HeroAgent_MobaMode) /* MobaMode */);
meta->RegisterMethod(77932836u, BEHAVIAC_NEW CAgentMethodVoid_1<int>(FunctionPointer_HeroAgent_OnUnderAttack) /* OnUnderAttack */);
meta->RegisterMethod(542998674u, BEHAVIAC_NEW CAgentMethodVoid(FunctionPointer_HeroAgent_OpenBulletTraceMode));
meta->RegisterMethod(3156314303u, BEHAVIAC_NEW CAgentMethod< int >(FunctionPointer_HeroAgent_Rand));
meta->RegisterMethod(657529872u, BEHAVIAC_NEW CMethod_HeroAgent_RandomPoint());
meta->RegisterMethod(3929481793u, BEHAVIAC_NEW CAgentMethodVoid(FunctionPointer_HeroAgent_RandomShot) /* RandomShot */);
meta->RegisterMethod(2913172428u, BEHAVIAC_NEW CAgentMethodVoid(FunctionPointer_HeroAgent_RandomWalk) /* RandomWalk */);
meta->RegisterMethod(2913172428u, BEHAVIAC_NEW CAgentMethodVoid_3<int, int, glm::vec3&>(FunctionPointer_HeroAgent_RandomWalk) /* RandomWalk */);
meta->RegisterMethod(1110901686u, BEHAVIAC_NEW CAgentMethod_2< int, int, int >(FunctionPointer_HeroAgent_RandRange));
meta->RegisterMethod(1373932231u, BEHAVIAC_NEW CAgentMethod_1< behaviac::EBTStatus, behaviac::vector<BtEvent_e> >(FunctionPointer_HeroAgent_RegisterEvents));
meta->RegisterMethod(3146209884u, BEHAVIAC_NEW CAgentMethodVoid(FunctionPointer_HeroAgent_RunAway) /* RunAway */);
meta->RegisterMethod(160678866u, BEHAVIAC_NEW CAgentMethodVoid(FunctionPointer_HeroAgent_RunGas) /* RunGas */);
meta->RegisterMethod(3025058903u, BEHAVIAC_NEW CAgentMethod_1< behaviac::EBTStatus, float >(FunctionPointer_HeroAgent_SearchEnemy));
@ -824,7 +827,7 @@ namespace behaviac
meta->RegisterMethod(502968959u, BEHAVIAC_NEW CMethod_behaviac_Agent_VectorRemove());
// AndroidAgent
meta = BEHAVIAC_NEW AgentMeta(389576391u);
meta = BEHAVIAC_NEW AgentMeta(958337880u);
AgentMeta::GetAgentMetas()[2475098143u] = meta;
meta->RegisterMemberProperty(2706111800u, BEHAVIAC_NEW CMemberProperty< TargetAgent* >("current_target_agent", Set_HeroAgent_current_target_agent, Get_HeroAgent_current_target_agent));
meta->RegisterMemberProperty(1530109714u, BEHAVIAC_NEW CMemberProperty< MasterAgent* >("master_agent", Set_HeroAgent_master_agent, Get_HeroAgent_master_agent));
@ -862,10 +865,11 @@ namespace behaviac
meta->RegisterMethod(4089045845u, BEHAVIAC_NEW CMethod_HeroAgent_CoFindPathEx());
meta->RegisterMethod(3209797653u, BEHAVIAC_NEW CAgentMethod_2< behaviac::EBTStatus, int, int >(FunctionPointer_AndroidAgent_CoIdle));
meta->RegisterMethod(4143109332u, BEHAVIAC_NEW CAgentMethod< behaviac::EBTStatus >(FunctionPointer_AndroidAgent_CoMoveCurrentTargetRaycast));
meta->RegisterMethod(2391222168u, BEHAVIAC_NEW CAgentMethod_2< behaviac::EBTStatus, int, int >(FunctionPointer_AndroidAgent_CoMoveForward));
meta->RegisterMethod(1078523079u, BEHAVIAC_NEW CAgentMethod< behaviac::EBTStatus >(FunctionPointer_AndroidAgent_CoMoveMasterRaycast));
meta->RegisterMethod(4232723171u, BEHAVIAC_NEW CAgentMethod< behaviac::EBTStatus >(FunctionPointer_AndroidAgent_CoShotCurrentTargetRaycast));
meta->RegisterMethod(1700191022u, BEHAVIAC_NEW CAgentMethod_1< behaviac::EBTStatus, float >(FunctionPointer_AndroidAgent_CoSleep));
meta->RegisterMethod(345019945u, BEHAVIAC_NEW CAgentMethod_1< behaviac::EBTStatus, float >(FunctionPointer_AndroidAgent_CoStartMove));
meta->RegisterMethod(345019945u, BEHAVIAC_NEW CAgentMethod_2< behaviac::EBTStatus, int, int >(FunctionPointer_AndroidAgent_CoStartMove));
meta->RegisterMethod(961264360u, BEHAVIAC_NEW CAgentMethodVoid_2<int, int>(FunctionPointer_AndroidAgent_DecV));
meta->RegisterMethod(3850832265u, BEHAVIAC_NEW CAgentMethodVoid(FunctionPointer_AndroidAgent_FollowMaster) /* FollowMaster */);
meta->RegisterMethod(397371422u, BEHAVIAC_NEW CAgentMethod< behaviac::string >(FunctionPointer_AndroidAgent_GetAccountId));
@ -896,12 +900,14 @@ namespace behaviac
meta->RegisterMethod(2967784099u, BEHAVIAC_NEW CAgentMethodVoid(FunctionPointer_AndroidAgent_MasterHelpAttack) /* MasterHelpAttack */);
meta->RegisterMethod(130282478u, BEHAVIAC_NEW CAgentMethod_1< bool, float >(FunctionPointer_AndroidAgent_MasterInRange));
meta->RegisterMethod(2059940772u, BEHAVIAC_NEW CAgentMethodVoid(FunctionPointer_AndroidAgent_MobaMode) /* MobaMode */);
meta->RegisterMethod(77932836u, BEHAVIAC_NEW CAgentMethodVoid_1<int>(FunctionPointer_AndroidAgent_OnUnderAttack) /* OnUnderAttack */);
meta->RegisterMethod(542998674u, BEHAVIAC_NEW CAgentMethodVoid(FunctionPointer_AndroidAgent_OpenBulletTraceMode));
meta->RegisterMethod(3156314303u, BEHAVIAC_NEW CAgentMethod< int >(FunctionPointer_AndroidAgent_Rand));
meta->RegisterMethod(657529872u, BEHAVIAC_NEW CMethod_HeroAgent_RandomPoint());
meta->RegisterMethod(3929481793u, BEHAVIAC_NEW CAgentMethodVoid(FunctionPointer_AndroidAgent_RandomShot) /* RandomShot */);
meta->RegisterMethod(2913172428u, BEHAVIAC_NEW CAgentMethodVoid(FunctionPointer_AndroidAgent_RandomWalk) /* RandomWalk */);
meta->RegisterMethod(2913172428u, BEHAVIAC_NEW CAgentMethodVoid_3<int, int, glm::vec3&>(FunctionPointer_AndroidAgent_RandomWalk) /* RandomWalk */);
meta->RegisterMethod(1110901686u, BEHAVIAC_NEW CAgentMethod_2< int, int, int >(FunctionPointer_AndroidAgent_RandRange));
meta->RegisterMethod(1373932231u, BEHAVIAC_NEW CAgentMethod_1< behaviac::EBTStatus, behaviac::vector<BtEvent_e> >(FunctionPointer_AndroidAgent_RegisterEvents));
meta->RegisterMethod(3146209884u, BEHAVIAC_NEW CAgentMethodVoid(FunctionPointer_AndroidAgent_RunAway) /* RunAway */);
meta->RegisterMethod(160678866u, BEHAVIAC_NEW CAgentMethodVoid(FunctionPointer_AndroidAgent_RunGas) /* RunGas */);
meta->RegisterMethod(3025058903u, BEHAVIAC_NEW CAgentMethod_1< behaviac::EBTStatus, float >(FunctionPointer_AndroidAgent_SearchEnemy));
@ -951,6 +957,7 @@ namespace behaviac
AgentMeta::Register<MasterAgent>("MasterAgent");
AgentMeta::Register<SkillIdx_e>("SkillIdx_e");
AgentMeta::Register<BuffEffectType_e>("BuffEffectType_e");
AgentMeta::Register<BtEvent_e>("BtEvent_e");
AgentMeta::Register<glm::vec3>("glm::vec3");
return true;
@ -968,6 +975,7 @@ namespace behaviac
AgentMeta::UnRegister<MasterAgent>("MasterAgent");
AgentMeta::UnRegister<SkillIdx_e>("SkillIdx_e");
AgentMeta::UnRegister<BuffEffectType_e>("BuffEffectType_e");
AgentMeta::UnRegister<BtEvent_e>("BtEvent_e");
AgentMeta::UnRegister<glm::vec3>("glm::vec3");
return true;

View File

@ -138,10 +138,11 @@ namespace behaviac
inline void FunctionPointer_HeroAgent_CloseBulletTraceMode(Agent* self) { ((HeroAgent*)self)->CloseBulletTraceMode(); }
inline behaviac::EBTStatus FunctionPointer_HeroAgent_CoIdle(Agent* self, int min_val, int max_val) { return ((HeroAgent*)self)->CoIdle(min_val, max_val); }
inline behaviac::EBTStatus FunctionPointer_HeroAgent_CoMoveCurrentTargetRaycast(Agent* self) { return ((HeroAgent*)self)->CoMoveCurrentTargetRaycast(); }
inline behaviac::EBTStatus FunctionPointer_HeroAgent_CoMoveForward(Agent* self, int min_val, int max_val) { return ((HeroAgent*)self)->CoMoveForward(min_val, max_val); }
inline behaviac::EBTStatus FunctionPointer_HeroAgent_CoMoveMasterRaycast(Agent* self) { return ((HeroAgent*)self)->CoMoveMasterRaycast(); }
inline behaviac::EBTStatus FunctionPointer_HeroAgent_CoShotCurrentTargetRaycast(Agent* self) { return ((HeroAgent*)self)->CoShotCurrentTargetRaycast(); }
inline behaviac::EBTStatus FunctionPointer_HeroAgent_CoSleep(Agent* self, float time) { return ((HeroAgent*)self)->CoSleep(time); }
inline behaviac::EBTStatus FunctionPointer_HeroAgent_CoStartMove(Agent* self, float distance) { return ((HeroAgent*)self)->CoStartMove(distance); }
inline behaviac::EBTStatus FunctionPointer_HeroAgent_CoStartMove(Agent* self, int min_val, int max_val) { return ((HeroAgent*)self)->CoStartMove(min_val, max_val); }
inline void FunctionPointer_HeroAgent_DecV(Agent* self, int id, int val) { ((HeroAgent*)self)->_Execute_Method_<METHOD_TYPE_HeroAgent_DecV, void, int, int >(id, val); }
inline void FunctionPointer_HeroAgent_FollowMaster(Agent* self) { } /* FollowMaster */
inline int FunctionPointer_HeroAgent_GetAgentType(Agent* self) { return ((HeroAgent*)self)->GetAgentType(); }
@ -171,11 +172,13 @@ namespace behaviac
inline void FunctionPointer_HeroAgent_MasterHelpAttack(Agent* self) { } /* MasterHelpAttack */
inline bool FunctionPointer_HeroAgent_MasterInRange(Agent* self, float range) { return ((HeroAgent*)self)->MasterInRange(range); }
inline void FunctionPointer_HeroAgent_MobaMode(Agent* self) { } /* MobaMode */
inline void FunctionPointer_HeroAgent_OnUnderAttack(Agent* self, int enemy_uniid) { } /* OnUnderAttack */
inline void FunctionPointer_HeroAgent_OpenBulletTraceMode(Agent* self) { ((HeroAgent*)self)->OpenBulletTraceMode(); }
inline int FunctionPointer_HeroAgent_Rand(Agent* self) { return (int)((BaseAgent*)self)->_Execute_Method_<METHOD_TYPE_BaseAgent_Rand, int >(); }
inline void FunctionPointer_HeroAgent_RandomShot(Agent* self) { } /* RandomShot */
inline void FunctionPointer_HeroAgent_RandomWalk(Agent* self) { } /* RandomWalk */
inline void FunctionPointer_HeroAgent_RandomWalk(Agent* self, int loc_val0, int loc_val1, glm::vec3& loc_point0) { } /* RandomWalk */
inline int FunctionPointer_HeroAgent_RandRange(Agent* self, int min_val, int max_val) { return (int)((BaseAgent*)self)->_Execute_Method_<METHOD_TYPE_BaseAgent_RandRange, int, int, int >(min_val, max_val); }
inline behaviac::EBTStatus FunctionPointer_HeroAgent_RegisterEvents(Agent* self, behaviac::vector<BtEvent_e> events) { return ((HeroAgent*)self)->RegisterEvents(events); }
inline void FunctionPointer_HeroAgent_RunAway(Agent* self) { } /* RunAway */
inline void FunctionPointer_HeroAgent_RunGas(Agent* self) { } /* RunGas */
inline behaviac::EBTStatus FunctionPointer_HeroAgent_SearchEnemy(Agent* self, float range) { return ((HeroAgent*)self)->SearchEnemy(range); }
@ -192,10 +195,11 @@ namespace behaviac
inline void FunctionPointer_AndroidAgent_CloseBulletTraceMode(Agent* self) { ((AndroidAgent*)self)->CloseBulletTraceMode(); }
inline behaviac::EBTStatus FunctionPointer_AndroidAgent_CoIdle(Agent* self, int min_val, int max_val) { return ((AndroidAgent*)self)->CoIdle(min_val, max_val); }
inline behaviac::EBTStatus FunctionPointer_AndroidAgent_CoMoveCurrentTargetRaycast(Agent* self) { return ((AndroidAgent*)self)->CoMoveCurrentTargetRaycast(); }
inline behaviac::EBTStatus FunctionPointer_AndroidAgent_CoMoveForward(Agent* self, int min_val, int max_val) { return ((AndroidAgent*)self)->CoMoveForward(min_val, max_val); }
inline behaviac::EBTStatus FunctionPointer_AndroidAgent_CoMoveMasterRaycast(Agent* self) { return ((AndroidAgent*)self)->CoMoveMasterRaycast(); }
inline behaviac::EBTStatus FunctionPointer_AndroidAgent_CoShotCurrentTargetRaycast(Agent* self) { return ((AndroidAgent*)self)->CoShotCurrentTargetRaycast(); }
inline behaviac::EBTStatus FunctionPointer_AndroidAgent_CoSleep(Agent* self, float time) { return ((AndroidAgent*)self)->CoSleep(time); }
inline behaviac::EBTStatus FunctionPointer_AndroidAgent_CoStartMove(Agent* self, float distance) { return ((AndroidAgent*)self)->CoStartMove(distance); }
inline behaviac::EBTStatus FunctionPointer_AndroidAgent_CoStartMove(Agent* self, int min_val, int max_val) { return ((AndroidAgent*)self)->CoStartMove(min_val, max_val); }
inline void FunctionPointer_AndroidAgent_DecV(Agent* self, int id, int val) { ((HeroAgent*)self)->_Execute_Method_<METHOD_TYPE_HeroAgent_DecV, void, int, int >(id, val); }
inline void FunctionPointer_AndroidAgent_FollowMaster(Agent* self) { } /* FollowMaster */
inline behaviac::string FunctionPointer_AndroidAgent_GetAccountId(Agent* self) { return ((AndroidAgent*)self)->GetAccountId(); }
@ -226,11 +230,13 @@ namespace behaviac
inline void FunctionPointer_AndroidAgent_MasterHelpAttack(Agent* self) { } /* MasterHelpAttack */
inline bool FunctionPointer_AndroidAgent_MasterInRange(Agent* self, float range) { return ((AndroidAgent*)self)->MasterInRange(range); }
inline void FunctionPointer_AndroidAgent_MobaMode(Agent* self) { } /* MobaMode */
inline void FunctionPointer_AndroidAgent_OnUnderAttack(Agent* self, int enemy_uniid) { } /* OnUnderAttack */
inline void FunctionPointer_AndroidAgent_OpenBulletTraceMode(Agent* self) { ((AndroidAgent*)self)->OpenBulletTraceMode(); }
inline int FunctionPointer_AndroidAgent_Rand(Agent* self) { return (int)((BaseAgent*)self)->_Execute_Method_<METHOD_TYPE_BaseAgent_Rand, int >(); }
inline void FunctionPointer_AndroidAgent_RandomShot(Agent* self) { } /* RandomShot */
inline void FunctionPointer_AndroidAgent_RandomWalk(Agent* self) { } /* RandomWalk */
inline void FunctionPointer_AndroidAgent_RandomWalk(Agent* self, int loc_val0, int loc_val1, glm::vec3& loc_point0) { } /* RandomWalk */
inline int FunctionPointer_AndroidAgent_RandRange(Agent* self, int min_val, int max_val) { return (int)((BaseAgent*)self)->_Execute_Method_<METHOD_TYPE_BaseAgent_RandRange, int, int, int >(min_val, max_val); }
inline behaviac::EBTStatus FunctionPointer_AndroidAgent_RegisterEvents(Agent* self, behaviac::vector<BtEvent_e> events) { return ((AndroidAgent*)self)->RegisterEvents(events); }
inline void FunctionPointer_AndroidAgent_RunAway(Agent* self) { } /* RunAway */
inline void FunctionPointer_AndroidAgent_RunGas(Agent* self) { } /* RunGas */
inline behaviac::EBTStatus FunctionPointer_AndroidAgent_SearchEnemy(Agent* self, float range) { return ((AndroidAgent*)self)->SearchEnemy(range); }

View File

@ -35,3 +35,12 @@ BEHAVIAC_BEGIN_ENUM_EX(BuffEffectType_e, BuffEffectType_e)
}
BEHAVIAC_END_ENUM_EX()
BEHAVIAC_BEGIN_ENUM_EX(BtEvent_e, BtEvent_e)
{
BEHAVIAC_ENUMCLASS_DISPLAY_INFO_EX(L"BtEvent_e", L"");
BEHAVIAC_ENUM_ITEM_EX(kUnderAttackEvent, "kUnderAttackEvent");
BEHAVIAC_ENUM_ITEM_EX(kMasterUnderAttackEvent, "kMasterUnderAttackEvent");
}
BEHAVIAC_END_ENUM_EX()

View File

@ -19,6 +19,10 @@ DECLARE_BEHAVIAC_ENUM_EX(BuffEffectType_e, BuffEffectType_e);
BEHAVIAC_DECLARE_TYPE_VECTOR_HANDLER(BuffEffectType_e);
DECLARE_BEHAVIAC_ENUM_EX(BtEvent_e, BtEvent_e);
BEHAVIAC_DECLARE_TYPE_VECTOR_HANDLER(BtEvent_e);
// -------------------
// Customized structs
// -------------------

View File

@ -509,6 +509,12 @@ enum SkillIdx_e
kSkillIdx2 = 2,
};
enum BtEvent_e
{
kUnderAttackEvent = 0,
kMasterUnderAttackEvent = 1,
};
const char* const PROJ_NAME_FMT = "game%d_gameserver";
const char* const PROJ_ROOT_FMT = "/data/logs/%s";

View File

@ -489,11 +489,12 @@ behaviac::EBTStatus HeroAgent::CoFindPathEx(const glm::vec3& pos, float distance
return StartCoroutine(co);
}
behaviac::EBTStatus HeroAgent::CoStartMove(float distance)
behaviac::EBTStatus HeroAgent::CoStartMove(int min_val, int max_val)
{
if (status_ == behaviac::BT_RUNNING) {
return DoRunningCb();
}
float distance = a8::RandEx(min_val, max_val);
auto context = MAKE_BTCONTEXT
(
);
@ -591,3 +592,13 @@ behaviac::EBTStatus HeroAgent::StartCoroutine(std::shared_ptr<BtCoroutine> corou
status_ = behaviac::BT_RUNNING;
return status_;
}
behaviac::EBTStatus HeroAgent::RegisterEvents(behaviac::vector<BtEvent_e> events)
{
}
behaviac::EBTStatus HeroAgent::CoMoveForward(int min_val, int max_val)
{
}

View File

@ -82,6 +82,7 @@ public:
bool HasFlag(int tag);
void SetFlag(int tag);
void UnSetFlag(int tag);
behaviac::EBTStatus RegisterEvents(behaviac::vector<BtEvent_e> events);
behaviac::EBTStatus SearchEnemy(float range);
@ -91,7 +92,8 @@ public:
behaviac::EBTStatus CoMoveMasterRaycast();
behaviac::EBTStatus CoFindPath(const glm::vec3& pos);
behaviac::EBTStatus CoFindPathEx(const glm::vec3& pos, float distance);
behaviac::EBTStatus CoStartMove(float distance);
behaviac::EBTStatus CoStartMove(int min_val, int max_val);
behaviac::EBTStatus CoMoveForward(int min_val, int max_val);
behaviac::EBTStatus CoSleep(int time);
virtual Room* GetRoom() override;