BWAPI
Skynet/Skynet/BuildOrder.cpp
Go to the documentation of this file.
00001 #include "BuildOrder.h"
00002 
00003 BuildOrder::BuildOrder(BuildOrderID id, std::string name)
00004         : mItemCounter(0)
00005         , mRace(BWAPI::Races::Unknown)
00006         , mID(id)
00007         , mName(name)
00008         , mFallbackBuild(BuildOrderID::None)
00009         , mFallbackTime(0)
00010         , mArmyBehaiour(ArmyBehaviour::Default)
00011 {
00012 }
00013 
00014 BuildOrder::BuildOrder(BWAPI::Race race, BuildOrderID id, std::string name)
00015         : mItemCounter(0)
00016         , mRace(race)
00017         , mID(id)
00018         , mName(name)
00019         , mFallbackBuild(BuildOrderID::None)
00020         , mFallbackTime(0)
00021         , mArmyBehaiour(ArmyBehaviour::Default)
00022 {
00023 }
00024 
00025 int BuildOrder::addItem(BWAPI::UnitType type, std::list<CallBack> &callBacks, int count, BuildingLocation position)
00026 {
00027         return addItem(type, TaskType::BuildOrder, callBacks, count, position);
00028 }
00029 
00030 int BuildOrder::addItem(BWAPI::TechType type, std::list<CallBack> &callBacks)
00031 {
00032         return addItem(type, TaskType::BuildOrder, callBacks);
00033 }
00034 
00035 int BuildOrder::addItem(BWAPI::UpgradeType type, int level, std::list<CallBack> &callBacks)
00036 {
00037         return addItem(type, level, TaskType::BuildOrder, callBacks);
00038 }
00039 
00040 int BuildOrder::addItem(BWAPI::UnitType type, int count, BuildingLocation position, TaskType taskType)
00041 {
00042         return addItem(type, taskType, std::list<CallBack>(), count, position);
00043 }
00044 
00045 int BuildOrder::addItem(BWAPI::UnitType type, int count, TaskType taskType, BuildingLocation position)
00046 {
00047         return addItem(type, taskType, std::list<CallBack>(), count, position);
00048 }
00049 
00050 int BuildOrder::addItem(BWAPI::UnitType type, TaskType taskType, std::list<CallBack> &callBacks, int count, BuildingLocation position)
00051 {
00052         mItems.push_back(BuildItem(type, count, ++mItemCounter, taskType, position, callBacks));
00053 
00054         return mItemCounter;
00055 }
00056 
00057 int BuildOrder::addItem(BWAPI::TechType type, TaskType taskType, std::list<CallBack> &callBacks)
00058 {
00059         mItems.push_back(BuildItem(type, ++mItemCounter, taskType, callBacks));
00060 
00061         return mItemCounter;
00062 }
00063 
00064 int BuildOrder::addItem(BWAPI::UpgradeType type, int level, TaskType taskType, std::list<CallBack> &callBacks)
00065 {
00066         mItems.push_back(BuildItem(type, level, ++mItemCounter, taskType, callBacks));
00067 
00068         return mItemCounter;
00069 }
00070 
00071 int BuildOrder::addOrder(Order orderType, std::list<CallBack> &callBacks)
00072 {
00073         mOrders.push_back(OrderItem(orderType, ++mItemCounter, callBacks));
00074 
00075         return mItemCounter;
00076 }
00077 
00078 void BuildOrder::addProduce(BWAPI::UnitType type, int weight, int priority, const Condition &unitCond, const Condition &factoryCond)
00079 {
00080         mProduces.push_back(UnitToProduce(type, weight, priority, unitCond, factoryCond));
00081 }
00082 
00083 void BuildOrder::addNextBuild(BuildOrderID id, Condition condition)
00084 {
00085         mNextBuilds[id] = condition;
00086 }
00087 
00088 void BuildOrder::addSquad(SquadType type, int count)
00089 {
00090         mSquads[type] += count;
00091 }
00092 
00093 void BuildOrder::setDefaultBuild(BuildOrderID fallbackBuild, int fallbackTime)
00094 {
00095         mFallbackBuild = fallbackBuild;
00096         mFallbackTime = fallbackTime;
00097 }
00098 
00099 void BuildOrder::setArmyBehaviour(ArmyBehaviour armyBehaiour)
00100 {
00101         mArmyBehaiour = armyBehaiour;
00102 }
00103 
00104 void BuildOrder::setStartingCondition(Condition condition)
00105 {
00106         mStartingCondition = condition;
00107 }
00108 
00109 std::list<CallBack> CB(int buildID, CallBackType type, std::list<CallBack> &cb)
00110 {
00111         cb.push_back(CallBack(buildID, type));
00112 
00113         return cb;
00114 }
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines