BWAPI
trunk/bwapi/BWAPI/Source/BWAPI/PlayerImpl.h
Go to the documentation of this file.
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 };
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines