64 lines
2.7 KiB
C++
64 lines
2.7 KiB
C++
#include "SunClientPrecompiledHeader.h"
|
|
#include "AutobotAreaField.h"
|
|
#include "Autobot/Action/AutobotActionMove.h"
|
|
#include "Autobot/Action/AutobotActionReadyField.h"
|
|
#include "Autobot/Action/AutobotActionAttack.h"
|
|
#include "Autobot/Action/AutobotActionRelax.h"
|
|
#include "Autobot/Action/AutobotActionDie.h"
|
|
#include "Autobot/Action/AutobotActionRecall.h"
|
|
#include "Autobot/Action/AutobotActionFollow.h"
|
|
#include "Autobot/Action/Global/AutobotActionTargeting.h"
|
|
#include "Autobot/Action/Global/AutobotActionPickup.h"
|
|
#include "Autobot/Action/Global/AutobotActionPotion.h"
|
|
#include "Autobot/Action/Global/AutobotActionInterval.h"
|
|
#include "Autobot/Action/Global/AutobotActionShouting.h"
|
|
|
|
#include "Autobot/Autobot.h"
|
|
#include "Autobot/Passpoint/AutobotPasspointManager.h"
|
|
#include "Autobot/Condition/AutobotConditionManager.h"
|
|
|
|
//------------------------------------------------------------------------------
|
|
AutobotAreaField* AutobotAreaField::Instance()
|
|
{
|
|
static AutobotAreaField instance;
|
|
|
|
return &instance;
|
|
}
|
|
//------------------------------------------------------------------------------
|
|
AutobotAreaField::AutobotAreaField()
|
|
{
|
|
state_machine()->PushGlobalState(AutobotActionPickup::Instance());
|
|
state_machine()->PushGlobalState(AutobotActionPotion::Instance());
|
|
state_machine()->PushGlobalState(AutobotActionInterval::Instance());
|
|
state_machine()->PushGlobalState(AutobotActionTargeting::Instance());
|
|
state_machine()->PushGlobalState(AutobotActionShouting::Instance());
|
|
|
|
state_machine()->RegisterState("ready", AutobotActionReadyField::Instance());
|
|
state_machine()->RegisterState("move", AutobotActionMove::Instance());
|
|
state_machine()->RegisterState("attack", AutobotActionAttack::Instance());
|
|
state_machine()->RegisterState("relax", AutobotActionRelax::Instance());
|
|
state_machine()->RegisterState("die", AutobotActionDie::Instance());
|
|
state_machine()->RegisterState("recall", AutobotActionRecall::Instance());
|
|
state_machine()->RegisterState("follow", AutobotActionFollow::Instance());
|
|
}
|
|
//------------------------------------------------------------------------------
|
|
AutobotAreaField::~AutobotAreaField()
|
|
{
|
|
}
|
|
//------------------------------------------------------------------------------
|
|
void AutobotAreaField::Enter(Autobot* owner)
|
|
{
|
|
AutobotPasspointManager::Instance()->Clear();
|
|
|
|
state_machine()->ChangeState("ready");
|
|
}
|
|
//------------------------------------------------------------------------------
|
|
bool AutobotAreaField::Execute(Autobot* owner)
|
|
{
|
|
return state_machine()->Update();
|
|
}
|
|
//------------------------------------------------------------------------------
|
|
bool AutobotAreaField::NetworkProc(Autobot* owner, MSG_BASE* packet)
|
|
{
|
|
return state_machine()->NetworkProc(packet);
|
|
} |