BWAPI
Public Member Functions | Private Attributes
DropAction Class Reference

#include <DropAction.h>

Inheritance diagram for DropAction:
Inheritance graph
[legend]
Collaboration diagram for DropAction:
Collaboration graph
[legend]

List of all members.

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

Detailed Description

Definition at line 6 of file DropAction.h.


Constructor & Destructor Documentation

DropAction::DropAction ( Unit  unit) [inline]

Definition at line 9 of file DropAction.h.

: GroupMicroActionBaseClass(unit), mShuttle(unit), mFreeSpace(mShuttle->getType().spaceProvided()) {}

Member Function Documentation

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();
}

Here is the call graph for this function:

bool DropAction::finishedWithAUnit ( ) [virtual]

Reimplemented from GroupMicroActionBaseClass.

Definition at line 65 of file DropAction.cpp.

{
        return false;
}

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;
}

Here is the call graph for this function:

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;
}

Here is the call graph for this function:

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;
}

Member Data Documentation

int DropAction::mFreeSpace [private]

Definition at line 25 of file DropAction.h.

Referenced by addUnit(), getRequestedUnits(), removeUnit(), and requestingExtraUnits().

Definition at line 23 of file DropAction.h.

Referenced by hasEnded(), and removeUnit().


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines