BWAPI
Public Member Functions | Private Attributes
UpgradeTask Class Reference

#include <UpgradeTask.h>

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

List of all members.

Public Member Functions

 UpgradeTask (TaskType priority, BWAPI::UpgradeType type, int level)
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

Private Attributes

BWAPI::UpgradeType mType
int mLevel
Unit mUnit
int mRequiredSatisfyTime
bool mReservedResources

Detailed Description

Definition at line 7 of file UpgradeTask.h.


Constructor & Destructor Documentation

UpgradeTask::UpgradeTask ( TaskType  priority,
BWAPI::UpgradeType  type,
int  level 
)

Definition at line 5 of file UpgradeTask.cpp.

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

Member Function Documentation

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

Reimplemented from Task.

Definition at line 36 of file UpgradeTask.h.

References mRequiredSatisfyTime.

Position UpgradeTask::getEndLocation ( Unit  unit) const [virtual]

Implements Task.

Definition at line 35 of file UpgradeTask.cpp.

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

Implements Task.

Definition at line 14 of file UpgradeTask.cpp.

References BWAPI::Broodwar, BWAPI::Game::getFrameCount(), Requirement::maxTime, mLevel, mRequiredSatisfyTime, mType, mUnit, and BWAPI::UpgradeType::upgradeTime().

Referenced by getEndTime().

Here is the call graph for this function:

Here is the caller graph for this function:

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

Implements Task.

Definition at line 25 of file UpgradeTask.cpp.

References getEndTime().

{
        return getEndTime();
}

Here is the call graph for this function:

Implements Task.

Definition at line 114 of file UpgradeTask.cpp.

References UnitGroup::insert(), and mUnit.

{
        UnitGroup returnUnits;

        if(mUnit)
                returnUnits.insert(mUnit);

        return returnUnits;
}

Here is the call graph for this function:

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

Implements Task.

Definition at line 32 of file UpgradeTask.h.

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

{ return mType.getName(); }

Here is the call graph for this function:

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

Implements Task.

Definition at line 124 of file UpgradeTask.cpp.

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

Implements Task.

Definition at line 30 of file UpgradeTask.cpp.

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

Implements Task.

Definition at line 31 of file UpgradeTask.h.

{ return "Upgrading"; }
void UpgradeTask::giveUnit ( Unit  unit) [virtual]
virtual bool UpgradeTask::hasDispatched ( ) const [inline, virtual]

Reimplemented from Task.

Definition at line 39 of file UpgradeTask.h.

References mUnit.

{ return mUnit; }
virtual bool UpgradeTask::inProgress ( ) const [inline, virtual]

Reimplemented from Task.

Definition at line 40 of file UpgradeTask.h.

References mUnit.

{ return mUnit && mUnit->isUpgrading(); }
bool UpgradeTask::morph ( Unit  unit,
BWAPI::UnitType  previousType 
) [virtual]

Implements Task.

Definition at line 109 of file UpgradeTask.cpp.

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

Implements Task.

Definition at line 40 of file UpgradeTask.cpp.

References BWAPI::Broodwar, Task::complete(), Task::isCanceled(), Task::isCompleted(), Task::isStopped(), mLevel, mType, mUnit, and updateRequirements().

{
        if(BWAPI::Broodwar->self()->getUpgradeLevel(mType) >= mLevel)
                complete();

        if((isStopped() || isCanceled() || isCompleted()) && mUnit && !mUnit->isUpgrading())
                return true;
        
        updateRequirements();

        return false;
}

Here is the call graph for this function:

void UpgradeTask::returnUnit ( Unit  unit) [virtual]
virtual void UpgradeTask::setRequiredSatisfyTime ( RequirementGroup  requirements,
int  time,
int  delay 
) [inline, virtual]

Reimplemented from Task.

Definition at line 34 of file UpgradeTask.h.

References mRequiredSatisfyTime.

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

Reimplemented from Task.

Definition at line 37 of file UpgradeTask.h.

References mRequiredSatisfyTime.

bool UpgradeTask::update ( ) [virtual]

Implements Task.

Definition at line 53 of file UpgradeTask.cpp.

References BWAPI::UpgradeType::gasPrice(), Task::hasEnded(), Singleton< T >::Instance(), Task::isCanceled(), Task::isPaused(), Task::isStopped(), BWAPI::UpgradeType::mineralPrice(), mLevel, mRequiredSatisfyTime, mReservedResources, mType, mUnit, and Task::shouldReturnUnit().

{
        if(mUnit)
        {
                if(mUnit->isUpgrading())
                {
                        if(mUnit->getUpgrade() != mType || isStopped() || isPaused() || isCanceled())
                                mUnit->cancel();
                        else if(mReservedResources)
                        {
                                ResourceTracker::Instance().releaseCurrentMinerals(mRequiredSatisfyTime, mType.mineralPrice(mLevel));
                                ResourceTracker::Instance().releaseCurrentGas(mRequiredSatisfyTime, mType.gasPrice(mLevel));
                                mReservedResources = false;
                        }
                }
                else if(!shouldReturnUnit())
                        mUnit->upgrade(mType);
        }

        return hasEnded() && !mUnit;
}

Here is the call graph for this function:

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

Implements Task.

Definition at line 75 of file UpgradeTask.cpp.

{
        return false;
}

Member Data Documentation

int UpgradeTask::mLevel [private]

Definition at line 44 of file UpgradeTask.h.

Referenced by getEndTime(), giveUnit(), preUpdate(), returnUnit(), update(), and updateRequirements().

Definition at line 50 of file UpgradeTask.h.

Referenced by giveUnit(), returnUnit(), update(), and updateRequirements().


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