43 lines
1.1 KiB
C++
43 lines
1.1 KiB
C++
#include "precompile.h"
|
|
|
|
#include "btevent.h"
|
|
#include "creature.h"
|
|
#include "trigger.h"
|
|
#include "base_agent.h"
|
|
#include "base_agent.h"
|
|
|
|
std::shared_ptr<BtEvent> BtEvent::Create(int event_id,
|
|
a8::Args event_params,
|
|
std::function<bool()> has_event_cb
|
|
)
|
|
{
|
|
return std::make_shared<BtEvent>(
|
|
event_id,
|
|
event_params,
|
|
has_event_cb
|
|
);
|
|
}
|
|
|
|
void BtEvent::FireEvent(BaseAgent* agent)
|
|
{
|
|
switch (event_id_) {
|
|
case kBetOnAttack:
|
|
{
|
|
agent->FireEvent("OnAttacked",
|
|
event_params_.Get<int>(0),
|
|
event_params_.Get<long long>(1));
|
|
}
|
|
break;
|
|
case kBetOnCrazeMode:
|
|
{
|
|
agent->FireEvent("OnCrazeMode");
|
|
}
|
|
break;
|
|
default:
|
|
{
|
|
abort();
|
|
}
|
|
break;
|
|
}
|
|
}
|