Life entity (base class). Written for OOP Review.

Dependencies:   armoured_vehicle enemy player

Dependents:   OOP_Review

Revision:
0:cee9139ed454
Child:
1:0b3582b2b45f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/life_entity.h	Thu Mar 31 19:56:40 2011 +0000
@@ -0,0 +1,149 @@
+#ifndef _LIFEENTITY_
+#define _LIFEENTITY_
+
+#include "mbed.h"
+
+/** Base life entity class.
+ * 
+ * This class is inherited by all life entities (user, enemies, anything you can think of that 
+ * is supposed to live).
+ *
+ * Example:
+ * @code
+ * // Create a pointer to a life_entity object.
+ * #include "mbed.h"
+ * #include "uOLED.h"
+ *
+ * life_entity *currentEnemy; 
+ *
+ * int main()
+ * {    
+ *     // Use the pointer to create a new armoured_vehicle (derived class)
+ *     currentEnemy = new armoured_vehicle(user);
+ * }
+ * @endcode
+ */
+class life_entity
+{
+
+public:
+    /** Base life entity class constructor.
+     * 
+     * This class is inherited by all life entities (user, enemies, anything you can think of that 
+     * is supposed to live).
+     *
+     * Example:
+     * @code
+     * // Create a pointer to a life_entity object.
+     * #include "mbed.h"
+     * #include "uOLED.h"
+     *
+     * life_entity *currentEnemy; // Life entity object
+     *
+     * int main()
+     * {    
+     *     // Use the pointer to create a new armoured_vehicle (derived class)
+     *     currentEnemy = new armoured_vehicle(user);
+     * }
+     * @endcode
+     */
+    life_entity();
+    
+    /** Base life entity class destructor.
+     * 
+     * This class is inherited by all life entities (user, enemies, anything you can think of that 
+     * is supposed to live).
+     *
+     * Example:
+     * @code
+     * // Create a pointer to a life_entity object.
+     * #include "mbed.h"
+     * #include "uOLED.h"
+     *
+     * life_entity *currentEnemy; 
+     *
+     * int main()
+     * {    
+     *     // Use the pointer to create a new armoured_vehicle (derived class)
+     *     currentEnemy = new armoured_vehicle(user);
+     *
+     *     delete currentEnemy;
+     * }
+     * @endcode
+     */
+     virtual ~life_entity();
+    
+    /** Get number of life entities currently spawned.
+    * 
+    *
+    * Example:
+    * @code
+    * char count = getLifeEntityCount();
+    * @endcode
+    */
+    char getLifeEntityCount();
+    
+    /** Returns the current status of the entity's life points.
+    * 
+    *
+    * Example:
+    * @code
+    * int lifePoints = getHealth();
+    * @endcode
+    */
+    int getHealth();
+    
+    /** Get the current level of the entity.
+    * 
+    * No error checking is performed.  If you wish to use this you
+    * should consider adding a check or two.
+    * The level is currently stored in a char, and therefore maxes
+    * out at 255 (0xFF).
+    *
+    * Example:
+    * @code
+    * char currentLevel = getLevel();
+    * @endcode
+    */
+    char getLevel();
+    
+    /** Entity rolls for damage.
+    * 
+    * All entities use this to roll for damage (against thier opponent).
+    *
+    * Example:
+    * @code
+    * int roll = rollDamage();
+    * @endcode
+    */
+    int rollDamage();
+    
+    /** Take damage from apponent.
+    *
+    * Derived classes set this up on specific to thier needs.
+    * 
+    * @param roll The damage roll to be passed in (most likely from rollDamage()).
+    *
+    */
+    virtual void takeDamage(int) { };
+    
+        
+protected:
+    /**
+    * Entity health variable (int).
+    */
+    int _health;
+    
+    /**
+    * Entity level variable (char).
+    */
+    char _level;
+    
+    /**
+    * Static entity count variable (int).
+    */
+    static int lifeEntityCount;
+    
+};
+
+#endif
\ No newline at end of file