EconomyFreeMarket.h

Go to the documentation of this file.
00001 ////////////////////////////////////////////////////////////////////////////////
00002 //    Scorched3D (c) 2000-2009
00003 //
00004 //    This file is part of Scorched3D.
00005 //
00006 //    Scorched3D is free software; you can redistribute it and/or modify
00007 //    it under the terms of the GNU General Public License as published by
00008 //    the Free Software Foundation; either version 2 of the License, or
00009 //    (at your option) any later version.
00010 //
00011 //    Scorched3D is distributed in the hope that it will be useful,
00012 //    but WITHOUT ANY WARRANTY; without even the implied warranty of
00013 //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00014 //    GNU General Public License for more details.
00015 //
00016 //    You should have received a copy of the GNU General Public License
00017 //    along with Scorched3D; if not, write to the Free Software
00018 //    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00019 ////////////////////////////////////////////////////////////////////////////////
00020 
00021 #if !defined(__INCLUDE_EconomyFreeMarketh_INCLUDE__)
00022 #define __INCLUDE_EconomyFreeMarketh_INCLUDE__
00023 
00024 #include <weapons/Economy.h>
00025 #include <map>
00026 
00027 /**
00028 This economy changes the prices of the weapons depending
00029 on how many have been bought.  The more popular accessories
00030 rise in price and the less popular accessories fall.
00031 Thus making people choose different weapons from time to time
00032 (perhaps).
00033 */
00034 class Accessory;
00035 class EconomyFreeMarket : public Economy
00036 {
00037 public:
00038         EconomyFreeMarket();
00039         virtual ~EconomyFreeMarket();
00040 
00041         virtual bool loadPrices();
00042         virtual bool savePrices();
00043         virtual void calculatePrices();
00044 
00045         virtual void accessoryBought(Tank *tank, 
00046                 const char *accessoryName);
00047         virtual void accessorySold(Tank *tank, 
00048                 const char *accessoryName);
00049 
00050 REGISTER_CLASS_HEADER(EconomyFreeMarket);
00051 
00052 protected:
00053         std::map<unsigned int, int> economyPrices_;
00054 
00055         void setPrice(Accessory *accessory, int price);
00056 };
00057 
00058 #endif

Generated on Mon Feb 16 15:14:52 2009 for Scorched3D by  doxygen 1.5.3