aozhiwei 7f49358f6f 1
2023-10-14 14:53:11 +08:00

35 lines
899 B
C++

#pragma once
enum BtEventType_e
{
kBetOnAttack = 1,
kBetOnCrazeMode,
};
class HeroAgent;
class BaseAgent;
class BtEvent
{
public:
int GetEventId() const { return event_id_; }
const a8::Args& GetParams() const { return event_params_; }
bool HasEvent() const { return has_event_cb_(); }
void FireEvent(BaseAgent* agent);
static std::shared_ptr<BtEvent> Create(int event_id,
a8::Args event_params,
std::function<bool()> has_event_cb
);
BtEvent(int event_id,
a8::Args event_params,
std::function<bool()> has_event_cb):
event_id_(event_id), event_params_(event_params), has_event_cb_(has_event_cb) {}
private:
int event_id_ = 0;
a8::Args event_params_;
std::function<bool()> has_event_cb_;
};