1 /***************************************************************************
2 unittype.h - description
4 begin : Tue Jan 22 2002
5 copyright : (C) 2002 by Michael Andreen
7 ***************************************************************************/
9 /***************************************************************************
11 * This program is free software; you can redistribute it and/or modify *
12 * it under the terms of the GNU General Public License as published by *
13 * the Free Software Foundation; either version 2 of the License, or *
14 * (at your option) any later version. *
16 ***************************************************************************/
25 //!This class contains a unittype, with all it's attributes + the number you got.
27 /**This class contains a unittype, with all it's attributes + the number you got.
28 * Maybe this actually should be a struct, since this class doen't have much to do, since i want it to be as generic as possible.
29 * It got some data need need to be taken care of which makes me put it as a class.
30 * \todo need to add some more constructors..
31 *@author Michael Andreen <whale@linux.nu>
41 /*! This function sets the name for this unittype (ie. interceptor) */
42 void setName(std::string sName);
43 /** Returns the name of this unittype */
44 std::string Name() const;
46 /** This functions sets which race this unittype is, the race is represented with a integer. */
47 void setRace(int iRace);
48 /** Returns the race this unittype belongs to*/
51 /** Sets the class for the unittype, it's represented as a integer */
52 void setUnitClass(std::string sClass);
53 std::string unitClass() const;
55 /** Sets the classes that this unittype targets. a vector is used. */
56 void setTarget(std::vector<std::string> Target);
57 /** This function adds a target class to the end of the target list. */
58 void addTarget(std::string target);
59 /** This function inserts a target class into the target list. The default is in the beginning.
60 * \param iTarget an integer that represents the target's class.
61 * \param index where to place the target. 0 being the default and first place. */
62 void insTarget(std::string iTarget, int index = 0);
63 /** Returns all targets from the target list */
64 std::vector<std::string> target() const;
65 /** Returns a specific target
66 * \param index An index value that represents the target. 0 being the first*/
67 std::string target(int index) const;
69 /** Sets the initiatve, the lower it is the earlier the unit shots */
70 void setInitiative(int iInit);
71 int initiative() const;
73 /** Sets the agility, the higher it is the harder it is to hit the unit */
74 void setAgility (int iAgil);
77 /** Sets the weaponspeed.. just a simple integer that shows how good it is at hitting things */
78 void setWeaponSpeed(int iWPSP);
79 int weaponSpeed() const;
81 /** Sets the number of guns. */
82 void setGuns(int iGuns);
85 /** Sets the how much power the guns have.. or in other words: the damage they do. */
86 void setPower(int iPower);
89 /** Sets the armor, this is how much damage the unittype can take before it's destroyed */
90 void setArmor(int iArmor);
93 /** Sets the emp resistance, the lower value the easier it is to block it */
94 void setEMP(int iEMP);
97 /** Sets the resource cost for this unittype. Used for example for score calculation and so on. */
98 void setTotalResources(int iTR);
99 /** Returns the number of total resources this unittype cost. */
102 /** Sets the fuelcost for this unittype */
103 void setFuel(int iFuel);
104 /** Returns the fuelcost */
107 /** Sets the ETA, the speed in a sort of inverted form.. the lower ETA, the faster is the unit */
108 void setETA(int iETA);
111 /** Sets the type of the unit. What the types do must be specified in the real battle engine (Fleet) though.
112 * \param iType An integer to symbolise the type. */
113 void setType(std::string type);
114 /** What type of ship this is. */
115 std::string type() const;
119 int m_iRace; //!< Not really the race, but an indiaction on what race can use it..
120 std::string m_sClass;
121 std::vector<std::string> m_vTarget;
129 int m_iTotalResources;
130 std::string m_sType; //!< normal,emp,cloak,steal,pod