+ /** Kill some ships of the specified type in the current fleet.
+ * \param unittype the name of the unit to kill
+ * \param number how many ships to kill
+ * \param tick what tick they where killed.
+ */
+ void killFleet(std::string unittype, int number, int tick = 0);
+
+ /**Block some ships of the specified type in the current fleet.
+ * \param unittype the name of the unit to block
+ * \param number how many ships to block
+ * \param tick what tick they where blocked.
+ */
+ void blockFleet(std::string unittype, int number, int tick = 0);
+
+ /** Set the resources of the specified type for the tick.
+ *
+ * \param type The name of the resource (in pa: metal,
+ * crystal and eonium (+ uninit for roids).
+ * \param number just simply the number of the specified resource.
+ * \param tick what tick to set
+ * \sa resource
+ */
+ void setResource(std::string type, int number, int tick = 0);
+
+ /** Adds a number ot the specified resource type.
+ * \param type The name of the resource (in pa: metal,
+ * crystal and eonium (+ uninit for roids).
+ * \param number just simply the number of the specified resource.
+ * \param tick what tick to set
+ * \sa resource
+ */
+ void addResource(std::string type, int number, int tick = 0);
+
+ /** Looks up the how much of a specific resource type the current fleet has.
+ *
+ * Resources is a kinda vague word, in general it's used as roid capping
+ * for hostile fleet and as salvage for friendly.
+ * \param type The name of the resource (in pa: metal,
+ * crystal and eonium (+ uninit for roids).
+ * \param tick what tick to set
+ * \returns simply returns the number of the specific resource this fleet
+ * has.
+ */
+ int resource(std::string type, int tick = 0)const;
+
+ void resetResources();
+
+ /** This function tells how many ticks the fleet stays at it's target.
+ * \returns the number of ticks as an int.
+ */
+ int stays() const;
+ void setStays(int ticks);
+
+ /** This is a little more advanced function. It makes a a number of units
+ * of a specific unittype shoot at the current fleet and calculates the
+ * losses.
+ *
+ * Atm all calculations are done for tick 0/1
+ * \param unittype The name of the unit that shots at the current fleet.
+ * \param number The number of the specific unittype that shoot.
+ * \param hitunits a map to count the number of killed units, just if the
+ * rest of the program needs it.
+ * \todo add a parameter to specify what tick to calc for and move out as
+ * much of the code as possible because it's kinda crowded atm and lots of
+ * very similar stuff in both the take* functions.
+ * \sa takeEMP
+ */
+ void takeShoot(std::string unittype, int number, std::map<std::string, int>& hitunits);
+
+ /**This is a little more advanced function. It makes a a number of units
+ * of a specific unittype shoot at the current fleet and calculates how
+ * many got blocked..
+ *
+ * Atm all calculations are done for tick 0/1
+ * \param unittype The name of the unit that shots at the current fleet.
+ * \param number The number of the specific unittype that shoot.
+ * \todo add a parameter to specify what tick to calc for and move out as
+ * much of the code as possible because it's kinda crowded atm and lots of
+ * very similar stuff in both the take* functions.
+ * \sa takeShoot
+ */
+ void takeEMP(std::string unittype, int number);
+
+ void calculateLostStealships(std::string unittype, std::map<std::string, int> stolen, int tick = 1);
+
+ void distributeStolenShips(std::map<std::string, std::map<std::string, int> > stolen, std::vector<Fleet*> fleets, int tick = 0);
+
+ void calculateSalvage();
+ /** This function prints out all the ships in the fleet to stderr,
+ * mainly used for debugging.
+ */
+ void printFleet();
+
+ void resetTicks();
+ //static functions
+ //
+ /** This function is used to set the different races used.
+ * \param races a Simple RaceList which holds all the info
+ */
+ static void setRaces(RaceList& races);
+
+ /** This function is used to set all the units used in the game.
+ * \param units This is a simple UnitList holding all info needed.
+ */
+ static void setUnits(UnitList& units);
+
+ /** This function is used to get the list of races used.
+ * \returns it returns a simple RaceList just like the one that set it.
+ */
+ static const RaceList& Races();
+
+ /** This function is used to get the list of all the units in the game
+ * \returns a simple UnitList holding everything.
+ */
+ static const UnitList& Units();
+