Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members  

subfleet.h

00001 // $Id: subfleet_8h-source.html,v 1.2 2002/06/20 17:09:51 mkrohn5 Exp $
00002 //
00003 // subfleet Header File
00004 // Written by: Marco Krohn
00005 //             Ralf Laue
00006 //
00007 // Copyright (C) 2001 - , Marco Krohn, <marco.krohn@gmx.de>
00008 //                        Ralf Laue <ralf.laue@gmx.de>
00009 //
00010 // This program is free software; you can redistribute it and/or modify
00011 // it under the terms of the GNU General Public License as published by
00012 // the Free Software Foundation; either version 1, or (at your option)
00013 // any later version.
00014 //
00015 // This program is distributed in the hope that it will be useful,
00016 // but WITHOUT ANY WARRANTY; without even the implied warranty of
00017 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00018 // GNU General Public License for more details.
00019 
00020 #ifndef __SUBFLEET_INCLUDED
00021 #define __SUBFLEET_INCLUDED
00022 
00023 #include "gamelogic/action.h"
00024 #include "common/defs.h"
00025 #include "gamelogic/item.h"
00026 #include "common/osval.h"
00027 
00028 class TFleet;
00029 class TShipDesign;
00030 
00031 /****************************** class TSubFleet ********************************/
00032 
00033 
00048 class TSubFleet : public TActionObject
00049 {
00050   public:
00057     TSubFleet( TShipDesign* ShipDesign, int2 NumberOfShips );
00065     TSubFleet( TSubFleet& OldSubFleet );
00069     virtual ~TSubFleet();
00070 
00075     virtual int2 getType() const;
00080     virtual const string& getTypeName() const;
00084     virtual const TFleet* getFleet() const;
00088     virtual const TShipDesign* getShipDesign() const;
00092     virtual void AddShips( int4 NumberOfShips );
00098     virtual void SubstractShips( int4 NumberOfShips );
00101     virtual int4 getNumberOfShips() const;
00108     virtual void setAutoUpgrade( TShipDesign* UpgradeDesign );
00114     virtual TShipDesign* getUpgradeDesign() const;
00119     virtual void CancelAutoUpgrade();
00128     virtual bool getUpgradeCosts( TSubstanceSet* UpgradeCosts ) const = 0;
00138     virtual bool CommitAutoUpgrade();
00145     virtual void setAutoRetire();
00150     virtual void CancelAutoRetire();
00156     virtual bool IsAutoRetire() const;
00163     virtual void getRepairCost( TSubstanceSet* RepairCost ) const = 0;
00167     virtual void RepairSubfleet() = 0;
00172     virtual void setExperience( int4 Experience );
00176     virtual int4 getExperience() const;
00180     virtual int4 getMaxHullHP() const;
00185     virtual int4 getMaxArmorHP() const;
00190     virtual int4 getMaxShieldHP() const;
00195     virtual int4 getActualHullHP() const = 0;
00203     virtual int4 getFTLFuelConsumption( double Speed, double Distance=1 ) const = 0;
00207     virtual double getFTLMaxSpeed() const = 0;
00213     virtual double getFTLMovementDistance( double dSpeed ) const = 0;
00220     virtual double getFTLBreakDownProbability( double Speed ) const = 0;
00225     virtual double getLongScannerRange( TScanner::tScannerType ScannerType ) const = 0;
00229     virtual void setFuel( int4 Fuel ) = 0;
00233     virtual int4 getFuel() const = 0;
00237     virtual int4 getCargoSpace() const;
00245     virtual bool IsColonizer() const = 0;
00250     virtual int2 getMiningRate() const;
00259     virtual bool load( TDataPackageList* in );
00267     virtual bool save( TDataPackageList* out ) const;
00273     virtual TSubFleet& operator=( const TSubFleet& SubFleet );
00274 
00275   protected:
00276     friend class TFleet;
00282     virtual void setFleet( TFleet* NewFleet );
00284     TLink<TFleet> fFleet;
00286     TLink<TShipDesign> fShipDesign;
00288     TLink<TShipDesign> fUpgradeDesign;
00290     int4 fNumberOfShips;
00292     int4 fExperience;
00294     bool fAutoRetire;
00295 };
00296 
00297 
00298 #endif        // __SUB_FLEET_INCLUDED

Generated on Thu Jun 20 18:13:16 2002 for Stellar Legacy by doxygen1.2.13.1 written by Dimitri van Heesch, © 1997-2001