BWAPI
|
00001 #pragma once 00002 00003 namespace BW { class Unit; }; 00004 00005 #include <BWAPI/Race.h> 00006 #include <BWAPI/Player.h> 00007 #include <BWAPI/PlayerType.h> 00008 #include <BWAPI/TechType.h> 00009 #include <BWAPI/WeaponType.h> 00010 #include <BWAPI/UpgradeType.h> 00011 #include <BWAPI/UnitType.h> 00012 #include "UnitImpl.h" 00013 #include "ForceImpl.h" 00014 #include <BWAPI/Client/PlayerData.h> 00015 #include <list> 00016 #include <set> 00017 #include <string> 00018 #include <Util/Types.h> 00019 00020 #include <BW/Offsets.h> 00021 #include <BW/Race.h> 00022 #include <BW/TilePosition.h> 00023 00024 namespace BWAPI 00025 { 00026 class Unit; 00027 class Force; 00029 class PlayerImpl : public Player 00030 { 00031 public : 00032 00037 virtual int getID() const; 00038 virtual std::string getName() const; 00039 virtual Race getRace() const; 00040 virtual PlayerType getType() const; 00041 virtual Force* getForce() const; 00042 00043 virtual bool isAlly(Player* player) const; 00044 virtual bool isEnemy(Player* player) const; 00045 virtual bool isNeutral() const; 00046 00047 virtual bool isVictorious() const; 00048 virtual bool isDefeated() const; 00049 virtual bool leftGame() const; 00050 00051 virtual const std::set<Unit*>& getUnits() const; 00052 virtual TilePosition getStartLocation() const; 00053 00054 virtual int minerals() const; 00055 virtual int gas() const; 00056 00057 virtual int gatheredMinerals() const; 00058 virtual int gatheredGas() const; 00059 virtual int repairedMinerals() const; 00060 virtual int repairedGas() const; 00061 virtual int refundedMinerals() const; 00062 virtual int refundedGas() const; 00063 virtual int spentMinerals() const; 00064 virtual int spentGas() const; 00065 00066 virtual int supplyTotal() const; 00067 virtual int supplyUsed() const; 00068 virtual int supplyTotal(Race race) const; 00069 virtual int supplyUsed(Race race) const; 00070 00071 virtual int allUnitCount(UnitType unit) const; 00072 virtual int visibleUnitCount(UnitType unit) const; 00073 virtual int completedUnitCount(UnitType unit) const; 00074 virtual int incompleteUnitCount(UnitType unit) const; 00075 virtual int deadUnitCount(UnitType unit) const; 00076 virtual int killedUnitCount(UnitType unit) const; 00077 00078 virtual int getUpgradeLevel(UpgradeType upgrade) const; 00079 virtual bool hasResearched(TechType tech) const; 00080 virtual bool isResearching(TechType tech) const; 00081 virtual bool isUpgrading(UpgradeType upgrade) const; 00082 00083 virtual BWAPI::Color getColor() const; 00084 virtual int getTextColor() const; 00085 00086 virtual int maxEnergy(UnitType unit) const; 00087 virtual double topSpeed(UnitType unit) const; 00088 virtual int groundWeaponMaxRange(UnitType unit) const; 00089 virtual int airWeaponMaxRange(UnitType unit) const; 00090 virtual int weaponMaxRange(WeaponType weapon) const; 00091 virtual int sightRange(UnitType unit) const; 00092 virtual int groundWeaponDamageCooldown(UnitType unit) const; 00093 virtual int armor(UnitType unit) const; 00094 00095 virtual int getUnitScore() const; 00096 virtual int getKillScore() const; 00097 virtual int getBuildingScore() const; 00098 virtual int getRazingScore() const; 00099 virtual int getCustomScore() const; 00100 00101 virtual bool isObserver() const; 00102 00103 virtual int getMaxUpgradeLevel(UpgradeType upgrade) const; 00104 virtual bool isResearchAvailable(TechType tech) const; 00105 virtual bool isUnitAvailable(UnitType unit) const; 00106 00107 //Internal BWAPI commands: 00112 PlayerImpl(u8 index); 00113 ~PlayerImpl(); 00114 int getIndex() const; 00116 char* getForceName() const; 00117 void setID(int newID); 00118 ForceImpl* force; 00119 00121 BW::Unit** selectedUnit(); 00126 void updateData(); 00127 PlayerData data; 00128 PlayerData* self; 00129 void onGameEnd(); 00130 std::set<Unit*> units; 00131 00132 s32 _repairedMinerals; 00133 s32 _repairedGas; 00134 s32 _refundedMinerals; 00135 s32 _refundedGas; 00136 00137 void setParticipating(bool isParticipating = true); 00138 void resetResources(); 00139 00140 bool wasSeenByBWAPIPlayer; 00141 private : 00142 int id; 00143 u8 index; 00144 }; 00145 };