// Ryzom - MMORPG Framework // Copyright (C) 2010 Winch Gate Property Limited // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU Affero General Public License as // published by the Free Software Foundation, either version 3 of the // License, or (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU Affero General Public License for more details. // // You should have received a copy of the GNU Affero General Public License // along with this program. If not, see . #ifndef RY_OUTPOST_BUILDING_H #define RY_OUTPOST_BUILDING_H #include "entity_sheet.h" #include "client_sheets.h" /** * Outpost building definition for client side management (buy building upgrades ...) * * \author Matthieu 'Trap' Besson * \author Nevrax France * \date October 2005 */ class COutpostBuildingSheet : public CEntitySheet { public: enum TOBType { OB_Empty, OB_TownHall, OB_Driller }; static TOBType fromString( const std::string & str ); static std::string toString( TOBType type ); /// The type of the building TOBType OBType; /// cost of the building or upgrade in time (seconds) uint32 CostTime; /// cost in dapper uint32 CostDapper; /// Raw Material Level that has the highest extraction rate for the driller uint32 MPLevelOfHighestExtractRate; /// Mps generated by the driller std::vector Mps; /// To display a building in lists (like in a CItemSheet) /// icon file name for race type NLMISC::TSStringId IdIconBack; /// icon file name for main icon type NLMISC::TSStringId IdIconMain; /// icon file name for overlay NLMISC::TSStringId IdIconOver; /// icon Special Text (raw materials) NLMISC::TSStringId IdIconText; public: // ctor COutpostBuildingSheet(); /// From CEntitySheet virtual void build(const NLGEORGES::UFormElm &item); /// From CEntitySheet : serialize sheet into binary data file. virtual void serial(class NLMISC::IStream &f) throw(NLMISC::EStream); std::string getIconBack() const { return ClientSheetsStrings.get(IdIconBack); } std::string getIconMain() const { return ClientSheetsStrings.get(IdIconMain); } std::string getIconOver() const { return ClientSheetsStrings.get(IdIconOver); } std::string getIconText() const { return ClientSheetsStrings.get(IdIconText); } }; #endif