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

Dependencies:   armoured_vehicle enemy player

Dependents:   OOP_Review

Committer:
Nakor
Date:
Thu Mar 31 19:56:40 2011 +0000
Revision:
0:cee9139ed454
Child:
1:0b3582b2b45f
Documentation complete (I think).

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Nakor 0:cee9139ed454 1 #ifndef _LIFEENTITY_
Nakor 0:cee9139ed454 2 #define _LIFEENTITY_
Nakor 0:cee9139ed454 3
Nakor 0:cee9139ed454 4 #include "mbed.h"
Nakor 0:cee9139ed454 5
Nakor 0:cee9139ed454 6 /** Base life entity class.
Nakor 0:cee9139ed454 7 *
Nakor 0:cee9139ed454 8 * This class is inherited by all life entities (user, enemies, anything you can think of that
Nakor 0:cee9139ed454 9 * is supposed to live).
Nakor 0:cee9139ed454 10 *
Nakor 0:cee9139ed454 11 * Example:
Nakor 0:cee9139ed454 12 * @code
Nakor 0:cee9139ed454 13 * // Create a pointer to a life_entity object.
Nakor 0:cee9139ed454 14 * #include "mbed.h"
Nakor 0:cee9139ed454 15 * #include "uOLED.h"
Nakor 0:cee9139ed454 16 *
Nakor 0:cee9139ed454 17 * life_entity *currentEnemy;
Nakor 0:cee9139ed454 18 *
Nakor 0:cee9139ed454 19 * int main()
Nakor 0:cee9139ed454 20 * {
Nakor 0:cee9139ed454 21 * // Use the pointer to create a new armoured_vehicle (derived class)
Nakor 0:cee9139ed454 22 * currentEnemy = new armoured_vehicle(user);
Nakor 0:cee9139ed454 23 * }
Nakor 0:cee9139ed454 24 * @endcode
Nakor 0:cee9139ed454 25 */
Nakor 0:cee9139ed454 26 class life_entity
Nakor 0:cee9139ed454 27 {
Nakor 0:cee9139ed454 28
Nakor 0:cee9139ed454 29 public:
Nakor 0:cee9139ed454 30 /** Base life entity class constructor.
Nakor 0:cee9139ed454 31 *
Nakor 0:cee9139ed454 32 * This class is inherited by all life entities (user, enemies, anything you can think of that
Nakor 0:cee9139ed454 33 * is supposed to live).
Nakor 0:cee9139ed454 34 *
Nakor 0:cee9139ed454 35 * Example:
Nakor 0:cee9139ed454 36 * @code
Nakor 0:cee9139ed454 37 * // Create a pointer to a life_entity object.
Nakor 0:cee9139ed454 38 * #include "mbed.h"
Nakor 0:cee9139ed454 39 * #include "uOLED.h"
Nakor 0:cee9139ed454 40 *
Nakor 0:cee9139ed454 41 * life_entity *currentEnemy; // Life entity object
Nakor 0:cee9139ed454 42 *
Nakor 0:cee9139ed454 43 * int main()
Nakor 0:cee9139ed454 44 * {
Nakor 0:cee9139ed454 45 * // Use the pointer to create a new armoured_vehicle (derived class)
Nakor 0:cee9139ed454 46 * currentEnemy = new armoured_vehicle(user);
Nakor 0:cee9139ed454 47 * }
Nakor 0:cee9139ed454 48 * @endcode
Nakor 0:cee9139ed454 49 */
Nakor 0:cee9139ed454 50 life_entity();
Nakor 0:cee9139ed454 51
Nakor 0:cee9139ed454 52 /** Base life entity class destructor.
Nakor 0:cee9139ed454 53 *
Nakor 0:cee9139ed454 54 * This class is inherited by all life entities (user, enemies, anything you can think of that
Nakor 0:cee9139ed454 55 * is supposed to live).
Nakor 0:cee9139ed454 56 *
Nakor 0:cee9139ed454 57 * Example:
Nakor 0:cee9139ed454 58 * @code
Nakor 0:cee9139ed454 59 * // Create a pointer to a life_entity object.
Nakor 0:cee9139ed454 60 * #include "mbed.h"
Nakor 0:cee9139ed454 61 * #include "uOLED.h"
Nakor 0:cee9139ed454 62 *
Nakor 0:cee9139ed454 63 * life_entity *currentEnemy;
Nakor 0:cee9139ed454 64 *
Nakor 0:cee9139ed454 65 * int main()
Nakor 0:cee9139ed454 66 * {
Nakor 0:cee9139ed454 67 * // Use the pointer to create a new armoured_vehicle (derived class)
Nakor 0:cee9139ed454 68 * currentEnemy = new armoured_vehicle(user);
Nakor 0:cee9139ed454 69 *
Nakor 0:cee9139ed454 70 * delete currentEnemy;
Nakor 0:cee9139ed454 71 * }
Nakor 0:cee9139ed454 72 * @endcode
Nakor 0:cee9139ed454 73 */
Nakor 0:cee9139ed454 74 virtual ~life_entity();
Nakor 0:cee9139ed454 75
Nakor 0:cee9139ed454 76 /** Get number of life entities currently spawned.
Nakor 0:cee9139ed454 77 *
Nakor 0:cee9139ed454 78 *
Nakor 0:cee9139ed454 79 * Example:
Nakor 0:cee9139ed454 80 * @code
Nakor 0:cee9139ed454 81 * char count = getLifeEntityCount();
Nakor 0:cee9139ed454 82 * @endcode
Nakor 0:cee9139ed454 83 */
Nakor 0:cee9139ed454 84 char getLifeEntityCount();
Nakor 0:cee9139ed454 85
Nakor 0:cee9139ed454 86 /** Returns the current status of the entity's life points.
Nakor 0:cee9139ed454 87 *
Nakor 0:cee9139ed454 88 *
Nakor 0:cee9139ed454 89 * Example:
Nakor 0:cee9139ed454 90 * @code
Nakor 0:cee9139ed454 91 * int lifePoints = getHealth();
Nakor 0:cee9139ed454 92 * @endcode
Nakor 0:cee9139ed454 93 */
Nakor 0:cee9139ed454 94 int getHealth();
Nakor 0:cee9139ed454 95
Nakor 0:cee9139ed454 96 /** Get the current level of the entity.
Nakor 0:cee9139ed454 97 *
Nakor 0:cee9139ed454 98 * No error checking is performed. If you wish to use this you
Nakor 0:cee9139ed454 99 * should consider adding a check or two.
Nakor 0:cee9139ed454 100 * The level is currently stored in a char, and therefore maxes
Nakor 0:cee9139ed454 101 * out at 255 (0xFF).
Nakor 0:cee9139ed454 102 *
Nakor 0:cee9139ed454 103 * Example:
Nakor 0:cee9139ed454 104 * @code
Nakor 0:cee9139ed454 105 * char currentLevel = getLevel();
Nakor 0:cee9139ed454 106 * @endcode
Nakor 0:cee9139ed454 107 */
Nakor 0:cee9139ed454 108 char getLevel();
Nakor 0:cee9139ed454 109
Nakor 0:cee9139ed454 110 /** Entity rolls for damage.
Nakor 0:cee9139ed454 111 *
Nakor 0:cee9139ed454 112 * All entities use this to roll for damage (against thier opponent).
Nakor 0:cee9139ed454 113 *
Nakor 0:cee9139ed454 114 * Example:
Nakor 0:cee9139ed454 115 * @code
Nakor 0:cee9139ed454 116 * int roll = rollDamage();
Nakor 0:cee9139ed454 117 * @endcode
Nakor 0:cee9139ed454 118 */
Nakor 0:cee9139ed454 119 int rollDamage();
Nakor 0:cee9139ed454 120
Nakor 0:cee9139ed454 121 /** Take damage from apponent.
Nakor 0:cee9139ed454 122 *
Nakor 0:cee9139ed454 123 * Derived classes set this up on specific to thier needs.
Nakor 0:cee9139ed454 124 *
Nakor 0:cee9139ed454 125 * @param roll The damage roll to be passed in (most likely from rollDamage()).
Nakor 0:cee9139ed454 126 *
Nakor 0:cee9139ed454 127 */
Nakor 0:cee9139ed454 128 virtual void takeDamage(int) { };
Nakor 0:cee9139ed454 129
Nakor 0:cee9139ed454 130
Nakor 0:cee9139ed454 131 protected:
Nakor 0:cee9139ed454 132 /**
Nakor 0:cee9139ed454 133 * Entity health variable (int).
Nakor 0:cee9139ed454 134 */
Nakor 0:cee9139ed454 135 int _health;
Nakor 0:cee9139ed454 136
Nakor 0:cee9139ed454 137 /**
Nakor 0:cee9139ed454 138 * Entity level variable (char).
Nakor 0:cee9139ed454 139 */
Nakor 0:cee9139ed454 140 char _level;
Nakor 0:cee9139ed454 141
Nakor 0:cee9139ed454 142 /**
Nakor 0:cee9139ed454 143 * Static entity count variable (int).
Nakor 0:cee9139ed454 144 */
Nakor 0:cee9139ed454 145 static int lifeEntityCount;
Nakor 0:cee9139ed454 146
Nakor 0:cee9139ed454 147 };
Nakor 0:cee9139ed454 148
Nakor 0:cee9139ed454 149 #endif