1 /* 2 SPDX-FileCopyrightText: 2003 Russell Steffen <rsteffen@bayarea.net> 3 SPDX-FileCopyrightText: 2003 Stephan Zehetner <s.zehetner@nevox.org> 4 SPDX-FileCopyrightText: 2006 Dmitry Suzdalev <dimsuz@gmail.com> 5 SPDX-FileCopyrightText: 2006 Inge Wallin <inge@lysator.liu.se> 6 SPDX-FileCopyrightText: 2006 Pierre Ducroquet <pinaraf@gmail.com> 7 8 SPDX-License-Identifier: GPL-2.0-or-later 9 */ 10 11 #ifndef KONQUEST_PLANET_H 12 #define KONQUEST_PLANET_H 13 14 #include <QObject> 15 #include "fleet.h" 16 17 class Sector; 18 class Player; 19 struct GameOptions; 20 21 //************************************************************** 22 // class Planet 23 //************************************************************** 24 25 class Planet : public QObject 26 { 27 Q_OBJECT 28 29 public: 30 Planet( const QString &planetName, Sector *sector, 31 Player *initialOwner, int newProd, 32 double newKillP ); 33 34 // FIXME: Nobody inherits Planet. Why virtual? /iw 35 ~Planet() override; 36 37 static Planet *createPlayerPlanet( Sector *sector, 38 Player *initialOwner, const QString &planetName ); 39 static Planet *createNeutralPlanet( Sector *sector, 40 Player *initialOwner, const QString &planetName ); 41 sector()42 Sector *sector() const { return m_sector; } player()43 Player *player() const { return m_owner; } name()44 const QString &name() const { return m_name; } fleet()45 DefenseFleet &fleet() { return m_homeFleet; } 46 killPercentage()47 double killPercentage() const { return m_killPercentage; } setKillPercentage(double value)48 void setKillPercentage(double value) { m_killPercentage = value; } 49 production()50 int production() const { return m_productionRate; } setProduction(int value)51 void setProduction(int value) 52 { 53 m_originalProductionRate = m_productionRate = value; 54 } 55 planetLook()56 int planetLook() const { return m_planetLook; } ships()57 int ships() const { return m_showCurShips ? m_homeFleet.shipCount() : m_oldShips; } 58 showOldShips()59 void showOldShips() { m_showCurShips=false; } 60 void conquer( AttackFleet *conqueringFleet ); setOwner(Player * player)61 void setOwner(Player* player) { m_owner = player; } 62 void turn(const GameOptions &); 63 64 //void select() { Q_ASSERT(false); } 65 Q_SIGNALS: 66 void update(); 67 68 private: 69 QString m_name; 70 Player *m_owner; 71 Sector *m_sector; 72 DefenseFleet m_homeFleet; 73 74 double m_killPercentage; 75 int m_productionRate, m_originalProductionRate; 76 int m_planetLook; 77 int m_oldShips; 78 bool m_showCurShips; 79 bool m_justconquered; 80 }; 81 82 #endif // KONQUEST_PLANET_H 83