BWAPI
Public Member Functions | Private Member Functions | Private Attributes
TrainTask Class Reference

#include <TrainTask.h>

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

List of all members.

Public Member Functions

 TrainTask (TaskType priority, BWAPI::UnitType type)
virtual int getEndTime () const
virtual int getEndTime (Unit unit) const
virtual int getPriority (Unit unit) const
virtual Position getStartLocation (Unit unit) const
virtual Position getEndLocation (Unit unit) const
virtual bool preUpdate ()
virtual bool update ()
virtual void updateRequirements ()
virtual bool waitingForUnit (Unit unit) const
virtual void giveUnit (Unit unit)
virtual void returnUnit (Unit unit)
virtual bool morph (Unit unit, BWAPI::UnitType previousType)
virtual UnitGroup getFinishedUnits ()
virtual std::string getTaskName () const
virtual std::string getOutputName () const
virtual void setRequiredSatisfyTime (RequirementGroup requirements, int time, int delay)
virtual int dispatchTime () const
virtual int startTime () const
virtual bool hasDispatched () const
virtual bool inProgress () const
BWAPI::UnitType getTrainType ()

Private Member Functions

void reserveResources ()
void freeResources ()

Private Attributes

BWAPI::UnitType mType
Unit mProductionBuilding
Unit mProducedUnit
int mRequiredSatisfyTime
bool mReservedResources
int mOrderTime

Detailed Description

Definition at line 7 of file TrainTask.h.


Constructor & Destructor Documentation

TrainTask::TrainTask ( TaskType  priority,
BWAPI::UnitType  type 
)

Definition at line 6 of file TrainTask.cpp.

        : Task(priority)
        , mType(type)
        , mReservedResources(false)
        , mRequiredSatisfyTime(BWAPI::Broodwar->getFrameCount())
        , mOrderTime(0)
{
}

Member Function Documentation

virtual int TrainTask::dispatchTime ( ) const [inline, virtual]

Reimplemented from Task.

Definition at line 36 of file TrainTask.h.

References mRequiredSatisfyTime.

void TrainTask::freeResources ( ) [private]
Position TrainTask::getEndLocation ( Unit  unit) const [virtual]

Implements Task.

Definition at line 39 of file TrainTask.cpp.

{
        return unit->getPosition();
}
int TrainTask::getEndTime ( ) const [virtual]

Implements Task.

Definition at line 15 of file TrainTask.cpp.

References BWAPI::Broodwar, BWAPI::UnitType::buildTime(), BWAPI::Game::getFrameCount(), Requirement::maxTime, mProducedUnit, mProductionBuilding, mRequiredSatisfyTime, and mType.

Referenced by getEndTime().

Here is the call graph for this function:

Here is the caller graph for this function:

int TrainTask::getEndTime ( Unit  unit) const [virtual]

Implements Task.

Definition at line 29 of file TrainTask.cpp.

References getEndTime().

{
        return getEndTime();
}

Here is the call graph for this function:

Implements Task.

Definition at line 117 of file TrainTask.cpp.

References UnitGroup::insert(), mProducedUnit, and mProductionBuilding.

{
        UnitGroup returnUnits;

        if(mProductionBuilding)
                returnUnits.insert(mProductionBuilding);
        if(mProducedUnit)
                returnUnits.insert(mProducedUnit);

        return returnUnits;
}

Here is the call graph for this function:

virtual std::string TrainTask::getOutputName ( ) const [inline, virtual]

Implements Task.

Definition at line 32 of file TrainTask.h.

References BWAPI::UnitType::getName(), and mType.

{ return mType.getName(); }

Here is the call graph for this function:

int TrainTask::getPriority ( Unit  unit) const [virtual]

Implements Task.

Definition at line 129 of file TrainTask.cpp.

{
        return 40;
}
Position TrainTask::getStartLocation ( Unit  unit) const [virtual]

Implements Task.

Definition at line 34 of file TrainTask.cpp.

{
        return unit->getPosition();
}
virtual std::string TrainTask::getTaskName ( ) const [inline, virtual]

Implements Task.

Definition at line 31 of file TrainTask.h.

{ return "Training"; }

Definition at line 42 of file TrainTask.h.

References mType.

{ return mType; }
void TrainTask::giveUnit ( Unit  unit) [virtual]

Implements Task.

Definition at line 82 of file TrainTask.cpp.

References freeResources(), mProducedUnit, mProductionBuilding, mType, reserveResources(), and BWAPI::UnitType::whatBuilds().

{
        if(unit->getType() == mType.whatBuilds().first)
        {
                reserveResources();
                mProductionBuilding = unit;
        }
        else
        {
                freeResources();
                mProducedUnit = unit;
        }
}

Here is the call graph for this function:

virtual bool TrainTask::hasDispatched ( ) const [inline, virtual]

Reimplemented from Task.

Definition at line 39 of file TrainTask.h.

References mProductionBuilding.

{ return mProductionBuilding; }
virtual bool TrainTask::inProgress ( ) const [inline, virtual]

Reimplemented from Task.

Definition at line 40 of file TrainTask.h.

References mProducedUnit.

{ return mProducedUnit; }
bool TrainTask::morph ( Unit  unit,
BWAPI::UnitType  previousType 
) [virtual]

Implements Task.

Definition at line 112 of file TrainTask.cpp.

{
        return true;
}
bool TrainTask::preUpdate ( ) [virtual]

Implements Task.

Definition at line 44 of file TrainTask.cpp.

References Task::complete(), mProducedUnit, mProductionBuilding, and Task::shouldReturnUnit().

{
        if(mProducedUnit && mProducedUnit->isCompleted())
        {
                complete();
                return true;
        }

        if(mProductionBuilding && shouldReturnUnit())
                return true;

        return false;
}

Here is the call graph for this function:

void TrainTask::reserveResources ( ) [private]

Definition at line 156 of file TrainTask.cpp.

References BWAPI::UnitType::gasPrice(), Task::hasEnded(), Singleton< T >::Instance(), BWAPI::UnitType::mineralPrice(), mRequiredSatisfyTime, mReservedResources, mType, and BWAPI::UnitType::supplyRequired().

Referenced by giveUnit().

Here is the call graph for this function:

Here is the caller graph for this function:

void TrainTask::returnUnit ( Unit  unit) [virtual]

Implements Task.

Definition at line 96 of file TrainTask.cpp.

References freeResources(), mProducedUnit, mProductionBuilding, and StaticUnits::nullunit.

Here is the call graph for this function:

virtual void TrainTask::setRequiredSatisfyTime ( RequirementGroup  requirements,
int  time,
int  delay 
) [inline, virtual]

Reimplemented from Task.

Definition at line 34 of file TrainTask.h.

References mRequiredSatisfyTime.

virtual int TrainTask::startTime ( ) const [inline, virtual]

Reimplemented from Task.

Definition at line 37 of file TrainTask.h.

References mRequiredSatisfyTime.

bool TrainTask::update ( ) [virtual]

Implements Task.

Definition at line 58 of file TrainTask.cpp.

References Task::hasEnded(), mProducedUnit, mProductionBuilding, and mType.

{
        if(mProductionBuilding)
        {
                if(!mProducedUnit)
                {
                        if(!mProductionBuilding->isTraining())
                                mProductionBuilding->train(mType);
                }
                else if(mProducedUnit->getType() != mType)
                        mProductionBuilding->cancel();
        }

        return hasEnded() && !mProductionBuilding && !mProducedUnit;
}

Here is the call graph for this function:

void TrainTask::updateRequirements ( ) [virtual]
bool TrainTask::waitingForUnit ( Unit  unit) const [virtual]

Implements Task.

Definition at line 74 of file TrainTask.cpp.

References mProductionBuilding, and Task::shouldReturnUnit().

{
        if(!shouldReturnUnit() && mProductionBuilding && mProductionBuilding->getBuildUnit() == unit)
                return true;

        return false;
}

Here is the call graph for this function:


Member Data Documentation

int TrainTask::mOrderTime [private]

Definition at line 54 of file TrainTask.h.

Definition at line 52 of file TrainTask.h.

Referenced by freeResources(), and reserveResources().


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