/* base/platform.h This file is part of the Osirion project and is distributed under the terms and conditions of the GNU General Public License version 2 */ #ifndef __INCLUDED_BASE_PLATFORM_H__ #define __INCLUDED_BASE_PLATFORM_H__ #include "base/weapon.h" namespace game { /** * @brief a weapons platform * This class also serves as base class for the Station class, **/ class Platform : public core::Entity { public: /** * @brief constructor * */ Platform(); /** * @brief destructor * */ virtual ~Platform(); /* -- inspectors ------------------------------------------- */ /** * @brief the type of cannons the Platform will use * */ inline const Weapon *cannon() const { return platform_cannon; } /** * @brief the type of turrets the Platform will use * */ inline const Weapon *turret() const { return platform_turret; } /* -- mutators --------------------------------------------- */ /** * @brief set the type of cannons the Platform will use * */ void set_cannon(const Weapon *cannon); /** * @brief set the type of turrets the Platform will use * */ void set_turret(const Weapon *turret); /** * @brief run a game frame * */ virtual void frame(const unsigned long elapsed); private: const Weapon *platform_cannon; const Weapon *platform_turret; }; } #endif // __INCLUDED_BASE_SHIPDEALER_H__