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