|
BWAPI
|
#include <DropAction.h>


Public Member Functions | |
| DropAction (Unit unit) | |
| bool | update (const Goal &squadGoal, const UnitGroup &squadUnitGroup) |
| bool | hasEnded () |
| bool | finishedWithAUnit () |
| UnitGroup | getFinishedUnits () |
| void | removeUnit (Unit unit) |
| void | addUnit (Unit unit) |
| bool | requestingExtraUnits () |
| std::vector< std::map < BWAPI::UnitType, int > > | getRequestedUnits () |
Private Attributes | |
| Unit | mShuttle |
| int | mFreeSpace |
Definition at line 6 of file DropAction.h.
| DropAction::DropAction | ( | Unit | unit | ) | [inline] |
Definition at line 9 of file DropAction.h.
: GroupMicroActionBaseClass(unit), mShuttle(unit), mFreeSpace(mShuttle->getType().spaceProvided()) {}
| void DropAction::addUnit | ( | Unit | unit | ) | [virtual] |
Reimplemented from GroupMicroActionBaseClass.
Definition at line 18 of file DropAction.cpp.
References UnitGroup::insert(), mFreeSpace, and GroupMicroActionBaseClass::mUnits.
{
mUnits.insert(unit);
mFreeSpace -= unit->getType().spaceRequired();
}

| bool DropAction::finishedWithAUnit | ( | ) | [virtual] |
Reimplemented from GroupMicroActionBaseClass.
Definition at line 65 of file DropAction.cpp.
{
return false;
}
| UnitGroup DropAction::getFinishedUnits | ( | ) | [virtual] |
Reimplemented from GroupMicroActionBaseClass.
Definition at line 70 of file DropAction.cpp.
{
return UnitGroup();
}| std::vector< std::map< BWAPI::UnitType, int > > DropAction::getRequestedUnits | ( | ) | [virtual] |
Reimplemented from GroupMicroActionBaseClass.
Definition at line 30 of file DropAction.cpp.
References mFreeSpace, BWAPI::UnitTypes::Protoss_Reaver, BWAPI::UnitTypes::Protoss_Zealot, and BWAPI::UnitType::spaceRequired().
{
std::vector<std::map<BWAPI::UnitType, int>> returnData;
int maxNumOfBig = mFreeSpace / BWAPI::UnitTypes::Protoss_Reaver.spaceRequired();
int maxNumOfSmall = mFreeSpace / BWAPI::UnitTypes::Protoss_Zealot.spaceRequired();
int currentBig = maxNumOfBig;
int currentSmall = 0;
for(;;)
{
std::map<BWAPI::UnitType, int> currentData;
currentData[BWAPI::UnitTypes::Protoss_Reaver] = currentBig;
currentData[BWAPI::UnitTypes::Protoss_Zealot] = currentSmall;
int spaceForSmall = mFreeSpace;
spaceForSmall -= currentBig * BWAPI::UnitTypes::Protoss_Reaver.spaceRequired();
spaceForSmall -= currentBig * BWAPI::UnitTypes::Protoss_Zealot.spaceRequired();
if(spaceForSmall >= BWAPI::UnitTypes::Protoss_Zealot.spaceRequired())
++currentSmall;
else if(currentBig == 0)
break;
else
{
currentSmall = 0;
--currentBig;
}
}
return returnData;
}

| bool DropAction::hasEnded | ( | ) | [inline, virtual] |
Reimplemented from GroupMicroActionBaseClass.
Definition at line 12 of file DropAction.h.
References mShuttle.
{ return !mShuttle; }
| void DropAction::removeUnit | ( | Unit | unit | ) | [virtual] |
Reimplemented from GroupMicroActionBaseClass.
Definition at line 8 of file DropAction.cpp.
References UnitGroup::erase(), mFreeSpace, mShuttle, GroupMicroActionBaseClass::mUnits, and StaticUnits::nullunit.
{
mUnits.erase(unit);
if(unit != mShuttle)
mFreeSpace += unit->getType().spaceRequired();
else
mShuttle = StaticUnits::nullunit;
}

| bool DropAction::requestingExtraUnits | ( | ) | [virtual] |
Reimplemented from GroupMicroActionBaseClass.
Definition at line 25 of file DropAction.cpp.
References mFreeSpace.
{
return mFreeSpace > 0;
}
| bool DropAction::update | ( | const Goal & | squadGoal, |
| const UnitGroup & | squadUnitGroup | ||
| ) | [virtual] |
Implements GroupMicroActionBaseClass.
Definition at line 3 of file DropAction.cpp.
{
return false;
}
int DropAction::mFreeSpace [private] |
Definition at line 25 of file DropAction.h.
Referenced by addUnit(), getRequestedUnits(), removeUnit(), and requestingExtraUnits().
Unit DropAction::mShuttle [private] |
Definition at line 23 of file DropAction.h.
Referenced by hasEnded(), and removeUnit().
1.7.6.1