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)