BWAPI
|
00001 #pragma once 00002 #include "Resources.h" 00003 #include <map> 00004 00005 //Timeline of resources. Enables queries on when resources will be available 00006 class ResourceTimeline 00007 { 00008 public: 00009 ResourceTimeline(); 00010 void reset(const Resources &r, int supplyTotal, double mgr, double ggr); 00011 Resources getActualResourcesAtTime(int frame); 00012 Resources getAvailableResourcesAtTime(int frame); 00013 int getSupplyTotalAtTime(int frame); 00014 int getFinalSupplyAvailable(); 00015 int getFinalSupplyTotal(); 00016 bool reserveResources(int frame, const Resources &r); 00017 int getFirstValidTime(const Resources &r); 00018 int getFirstTimeWhenSupplyIsNoGreaterThan(int supplyAmount); 00019 enum ErrorCode 00020 { 00021 None, 00022 Insufficient_Minerals, 00023 Insufficient_Gas, 00024 Insufficient_Supply 00025 }; 00026 ErrorCode getLastError() const; 00027 bool registerSupplyIncrease(int frame, int supply); 00028 bool unregisterSupplyIncrease(int frame, int supply); 00029 // private: 00030 ErrorCode lastError; 00031 double mineralGatherRate; 00032 double gasGatherRate; 00033 Resources currentResources; 00034 int currentSupplyTotal; 00035 std::map<int, Resources > resourceEvents; 00036 std::map<int, int > supplyIncreaseEvents; 00037 };