00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00030 #if !defined(TempFleet_h)
00031 #define TempFleet_h
00032
00033 #include <string>
00034 #include <deque>
00035 using namespace std;
00036
00037 class Player;
00038
00039 #include "CargoHolder.h"
00040
00044 class TempFleet : public CargoHolder {
00045 public:
00046 TempFleet(int fleetID, Player * owner);
00047 TempFleet(const CargoHolder * ch, CargoHolder * ch2) : CargoHolder(*ch), mCargoHolder(ch2) { assert(ch2 == NULL || ch->IsWith(*ch2)); }
00048 virtual ~TempFleet();
00049
00050 void AddChaser(unsigned long p, unsigned long f);
00051
00052 virtual long GetContain(long ct) const { return mCargoHolder && mCargoHolder->CanLoadBy(GetOwner()) && ct != POPULATION ? mCargoHolder->GetContain(ct) : 0; }
00053 virtual long GetCargoCapacity() const { return mCargoHolder ? mCargoHolder->GetCargoCapacity() : -1; }
00054 virtual bool CanLoadBy(const Player * p) const { return mCargoHolder ? mCargoHolder->CanLoadBy(p) : true; }
00055
00056
00057 virtual long SeenBy(const Player *) const { assert(false); return 0; }
00058 virtual long SeenBy(unsigned long) const { assert(false); return 0; }
00059 virtual void SetSeenBy(long, long) { assert(false); }
00060 virtual long GetCloak(const Player *, bool) const { assert(false); return 0; }
00061 virtual double GetMaxTachyon() const { assert(false); return 0.0; }
00062 virtual long GetScanPen() const { assert(false); return -1; }
00063 virtual long GetScanSpace() const { assert(false); return -1; }
00064 virtual void ResetSeen() { assert(false); }
00065 virtual bool CanStealShip() const { assert(false); return false; }
00066 virtual bool CanStealPlanet() const { assert(false); return false; }
00067 virtual void SetCanLoadBy(const Player *) { assert(false); }
00068
00069 CargoHolder * GetRealCH() { return mCargoHolder; }
00070 long GetFuel() const { return mFuel; }
00071 void AdjustFuel(long fuel) { mFuel += fuel; }
00072
00073 private:
00074
00075
00076 CargoHolder * mCargoHolder;
00077 long mFuel;
00078 };
00079
00080 #endif // !defined(TempFleet_h)