BWAPI
Skynet/Skynet/Goal.cpp
Go to the documentation of this file.
00001 #include "Goal.h"
00002 
00003 Goal::Goal()
00004         : mGoalType(GoalType::None)
00005         , mActionType(ActionType::None)
00006         , mPosition()
00007         , mUnit()
00008         , mBase()
00009         , mAvoidUnits()
00010         , mEngageUnits()
00011 {
00012 }
00013 
00014 Goal::Goal(ActionType type, Position position, UnitGroup engageUnits, UnitGroup avoidUnits)
00015         : mGoalType(GoalType::Position)
00016         , mActionType(type)
00017         , mPosition(position)
00018         , mUnit()
00019         , mBase()
00020         , mAvoidUnits(avoidUnits)
00021         , mEngageUnits(engageUnits)
00022 {
00023 }
00024 
00025 Goal::Goal(ActionType type, Unit unit, UnitGroup engageUnits, UnitGroup avoidUnits)
00026         : mGoalType(GoalType::Unit)
00027         , mActionType(type)
00028         , mPosition(BWAPI::Positions::None)
00029         , mUnit(unit)
00030         , mBase()
00031         , mAvoidUnits(avoidUnits)
00032         , mEngageUnits(engageUnits)
00033 {
00034 }
00035 
00036 Goal::Goal(ActionType type, UnitGroup engageUnits, UnitGroup avoidUnits)
00037         : mGoalType(GoalType::UnitGroup)
00038         , mActionType(type)
00039         , mPosition(BWAPI::Positions::None)
00040         , mUnit()
00041         , mBase()
00042         , mAvoidUnits(avoidUnits)
00043         , mEngageUnits(engageUnits)
00044 {
00045 }
00046 
00047 Goal::Goal(ActionType type, Base base, UnitGroup engageUnits, UnitGroup avoidUnits)
00048         : mGoalType(GoalType::Base)
00049         , mActionType(type)
00050         , mPosition(BWAPI::Positions::None)
00051         , mUnit()
00052         , mBase(base)
00053         , mAvoidUnits(avoidUnits)
00054         , mEngageUnits(engageUnits)
00055 {
00056 }
00057 
00058 Position Goal::getPositionForMerge() const
00059 {
00060         switch(mGoalType.underlying())
00061         {
00062         case GoalType::Position:
00063                 return mPosition;
00064         case GoalType::Base:
00065                 return mBase->getCenterLocation();
00066         case GoalType::Unit:
00067                 return mUnit->getPosition();
00068         case GoalType::UnitGroup:
00069                 return mEngageUnits.getCenter();
00070         }
00071 
00072         return Position(BWAPI::Broodwar->mapWidth()*16, BWAPI::Broodwar->mapHeight()*16);
00073 }
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines