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.., maybe not..
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
47 * \param iRace the race is represented with a integer.
49 void setRace(int iRace);
50 /** Used to get what type of race this is
51 * \returns returns the race as an integer
55 /** Sets the class for the unittype
56 * \param sClass the class represented as a string
58 void setUnitClass(std::string sClass);
59 /** used to get what type of class this unit is
60 * \returns the class as a string
62 std::string unitClass() const;
64 /** Sets the classes that this unittype targets
65 * \param Target the target list, as a vector of strings
67 void setTarget(std::vector<std::string> Target);
69 /** This function adds a target class to the end of the target list.
70 * \param target the target you want to add, as a string.
72 void addTarget(std::string target);
74 /** This function inserts a target class into the target list. The default is in the beginning.
75 * \param iTarget an integer that represents the target's class.
76 * \param index where to place the target. 0 being the default and first place.
78 void insTarget(std::string iTarget, int index = 0);
79 /** Used to get the full target list.
80 * \returns all targets as a vector of strings.
82 std::vector<std::string> target() const;
83 /** Returns a specific target
84 * \param index An index value that represents the target. 0 being the first
86 std::string target(int index) const;
88 /** Used to set the initiatve, the lower it is the earlier the unit shots
89 * \param iInit the initiative as an int
91 void setInitiative(int iInit);
92 /** Used to get the initiative this unittype got, lower shots first.
93 * \returns the initiative as an int
95 int initiative() const;
97 /** Used to set the agility, the higher it is the harder it is to hit the unit
98 * \param iAgil the agility represnted as an int
100 void setAgility (int iAgil);
101 /** used to get this unittype's agility, higher is equal to hard to hit.
102 * \returns the agility as an int
106 /** Used to set the weaponspeed.. Higher is equal to better at hitting
107 * \param iWPSP the weaponspeed represented as an int.
109 void setWeaponSpeed(int iWPSP);
110 /** Used to get what weaponspeed this unittype has
111 * \returns the weaponspeed as an int
113 int weaponSpeed() const;
115 /** Sets the number of guns for this unittype
116 * \param iGuns the number of guns represented as an int
118 void setGuns(int iGuns);
119 /** used to get the number of guns this unittype has
120 * \returns the number of guns as an int
124 /** Sets the how much power the guns have.. or in other words: the damage they do. */
125 void setPower(int iPower);
128 /** Sets the armor, this is how much damage the unittype can take before it's destroyed */
129 void setArmor(int iArmor);
132 /** Sets the emp resistance, the lower value the easier it is to block it */
133 void setEMP(int iEMP);
136 /** Sets the resource cost for this unittype. Used for example for score calculation and so on. */
137 void setTotalResources(int iTR);
138 /** Returns the number of total resources this unittype cost. */
141 /** Sets the fuelcost for this unittype */
142 void setFuel(int iFuel);
143 /** Returns the fuelcost */
146 /** Sets the ETA, the speed in a sort of inverted form.. the lower ETA, the faster is the unit */
147 void setETA(int iETA);
150 /** Sets the type of the unit. What the types do must be specified in the real battle engine (Fleet) though.
151 * \param iType An integer to symbolise the type. */
152 void setType(std::string type);
153 /** What type of ship this is. */
154 std::string type() const;
158 int m_iRace; //!< Not really the race, but an indiaction on what race can use it..
159 std::string m_sClass;
160 std::vector<std::string> m_vTarget;
168 int m_iTotalResources;
169 std::string m_sType; //!< normal,emp,cloak,steal,pod