35 lines
899 B
C++
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_;
|
|
};
|