BWAPI
|
#include <Behaviour.h>
Public Member Functions | |
Behaviour () | |
Behaviour (Unit unit) | |
Behaviour (Unit unit, const std::list< MicroAction > µActions) | |
void | addMicroAction (MicroAction action) |
void | update (const Goal &squadGoal, const UnitGroup &squadUnitGroup) |
void | onDeleted () |
void | set (Unit unit) |
void | set (Unit unit, const std::list< MicroAction > µActions) |
void | createDefaultActions () |
Private Attributes | |
Unit | mUnit |
std::list< MicroAction > | mMicroActions |
Definition at line 7 of file Behaviour.h.
Behaviour::Behaviour | ( | ) | [inline] |
Definition at line 10 of file Behaviour.h.
{}
Behaviour::Behaviour | ( | Unit | unit | ) |
Definition at line 12 of file Behaviour.cpp.
References createDefaultActions().
: mUnit(unit) { createDefaultActions(); }
Behaviour::Behaviour | ( | Unit | unit, |
const std::list< MicroAction > & | microActions | ||
) |
Definition at line 18 of file Behaviour.cpp.
: mUnit(unit) , mMicroActions(microActions) { }
void Behaviour::addMicroAction | ( | MicroAction | action | ) |
Definition at line 24 of file Behaviour.cpp.
References mMicroActions.
{ mMicroActions.push_front(action); }
void Behaviour::createDefaultActions | ( | ) |
Definition at line 69 of file Behaviour.cpp.
References BWAPI::UnitType::isDetector(), mMicroActions, mUnit, BWAPI::UnitTypes::Protoss_Arbiter, BWAPI::UnitTypes::Protoss_Archon, BWAPI::UnitTypes::Protoss_Corsair, BWAPI::UnitTypes::Protoss_High_Templar, BWAPI::UnitTypes::Protoss_Reaver, BWAPI::UnitTypes::Protoss_Zealot, BWAPI::UnitTypes::Terran_Siege_Tank_Siege_Mode, BWAPI::UnitTypes::Terran_Vulture_Spider_Mine, and BWAPI::UnitTypes::Zerg_Scourge.
Referenced by Behaviour(), and set().
{ const BWAPI::UnitType &unitType = mUnit->getType(); std::list<std::set<BWAPI::UnitType>> targetPriorities; std::set<BWAPI::UnitType> firstTargets; if(unitType != BWAPI::UnitTypes::Protoss_Zealot) firstTargets.insert(BWAPI::UnitTypes::Terran_Vulture_Spider_Mine); if(unitType == BWAPI::UnitTypes::Protoss_Corsair) firstTargets.insert(BWAPI::UnitTypes::Zerg_Scourge); if(unitType == BWAPI::UnitTypes::Protoss_Zealot || unitType == BWAPI::UnitTypes::Protoss_Archon) { firstTargets.insert(BWAPI::UnitTypes::Terran_Siege_Tank_Siege_Mode); mMicroActions.push_back(MicroAction(new ArconZealotKillUnDetected(mUnit))); } targetPriorities.push_back(firstTargets); if(unitType.isDetector()) mMicroActions.push_back(MicroAction(new DetectorAction(mUnit))); if(unitType == BWAPI::UnitTypes::Protoss_Arbiter) mMicroActions.push_back(MicroAction(new ArbiterAction(mUnit))); if(unitType == BWAPI::UnitTypes::Protoss_Reaver) mMicroActions.push_back(MicroAction(new TrainScarabAction(mUnit))); if(unitType == BWAPI::UnitTypes::Protoss_High_Templar) mMicroActions.push_back(MicroAction(new PsiStormAction(mUnit))); if(unitType == BWAPI::UnitTypes::Protoss_Zealot) mMicroActions.push_back(MicroAction(new MineDragAction(mUnit))); mMicroActions.push_back(MicroAction(new BasicUnitAction(mUnit, targetPriorities))); mMicroActions.push_back(MicroAction(new GoalAction(mUnit))); }
void Behaviour::onDeleted | ( | ) |
Definition at line 46 of file Behaviour.cpp.
References mMicroActions, and mUnit.
Referenced by ObserverScoutTask::returnUnit().
{ for each(MicroAction action in mMicroActions) { action->removeUnit(mUnit); } mMicroActions.clear(); mUnit.reset(); }
void Behaviour::set | ( | Unit | unit | ) |
Definition at line 57 of file Behaviour.cpp.
References createDefaultActions(), and mUnit.
Referenced by ObserverScoutTask::giveUnit().
{ mUnit = unit; createDefaultActions(); }
void Behaviour::set | ( | Unit | unit, |
const std::list< MicroAction > & | microActions | ||
) |
Definition at line 63 of file Behaviour.cpp.
References mMicroActions, and mUnit.
{ mUnit = unit; mMicroActions = microActions; }
void Behaviour::update | ( | const Goal & | squadGoal, |
const UnitGroup & | squadUnitGroup | ||
) |
Definition at line 29 of file Behaviour.cpp.
References mMicroActions.
Referenced by ObserverScoutTask::update().
{ for each(MicroAction action in mMicroActions) { if(action->update(squadGoal, squadUnitGroup)) break; } for(std::list<MicroAction>::iterator it = mMicroActions.begin(); it != mMicroActions.end();) { if((*it)->hasEnded()) mMicroActions.erase(it++); else ++it; } }
std::list<MicroAction> Behaviour::mMicroActions [private] |
Definition at line 28 of file Behaviour.h.
Referenced by addMicroAction(), createDefaultActions(), onDeleted(), set(), and update().
Unit Behaviour::mUnit [private] |
Definition at line 26 of file Behaviour.h.
Referenced by createDefaultActions(), onDeleted(), and set().