00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00029 #ifndef BOMBING_H
00030 #define BOMBING_H
00031
00037 class Bombing : public Location
00038 {
00039 public:
00040 Bombing(const Location & loc);
00041 ~Bombing();
00042
00043 void SetPlanet(Planet* targetPlanet);
00044 void AddFleets();
00045 void AddTerraFleet(Fleet* f){mTerraBombingFleets.push_back(f);}
00046 void AddSmartFleet(Fleet* f){mSmartBombingFleets.push_back(f);}
00047 void AddNormalFleet(Fleet* f){mNormalBombingFleets.push_back(f);}
00048 void Resolve();
00049
00050 private:
00051 void SendMessages(){SendSmartMessages();SendTerraMessages();SendNormalMessages();}
00052 void SendSmartMessages();
00053 void SendTerraMessages();
00054 void SendNormalMessages();
00055 void DoPopulationLosses(const double& normal_killper, const long& normal_minimum , const double& smart_killper);
00056 void DoInstallationLosses(const long& installation_loss);
00057 void DoTerraTransforming();
00058 double GetSmartKillper() const;
00059
00060 Planet* mTargetPlanet;
00061
00062 deque<Player*> mSmartBombingPlayers;
00063 deque<Player*> mNormalBombingPlayers;
00064 deque<Player*> mTerraBombingPlayers;
00065
00066 deque<Fleet*> mSmartBombingFleets;
00067 deque<Fleet*> mNormalBombingFleets;
00068 deque<Fleet*> mTerraBombingFleets;
00069
00070
00071 long mPopulationLoss;
00072 long mDefensesLoss, mMinesLoss, mFactoriesLoss;
00073 bool mKilledAll;
00074 double mNormalPercentageStopped;
00075 double mSmartPercentageStopped;
00076
00077 };
00078
00079
00080 #endif