Armoured vehicle class. For OOP Review. Derived from life_entity.

Dependents:   life_entity

Committer:
Nakor
Date:
Fri Apr 01 01:28:35 2011 +0000
Revision:
1:f0201a296a0d
Parent:
0:915b6c03bd04
Documentation.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Nakor 0:915b6c03bd04 1 #ifndef _ARMOUREDENTITY_
Nakor 0:915b6c03bd04 2 #define _ARMOUREDENTITY_
Nakor 0:915b6c03bd04 3
Nakor 0:915b6c03bd04 4 #include "mbed.h"
Nakor 0:915b6c03bd04 5 #include "life_entity.h"
Nakor 0:915b6c03bd04 6 #include "player.h"
Nakor 0:915b6c03bd04 7
Nakor 0:915b6c03bd04 8 #define DEBUG_ARMOURED 0x01
Nakor 0:915b6c03bd04 9 #define DEBUG_ARMOURED_VERBOSE 0x00
Nakor 0:915b6c03bd04 10
Nakor 1:f0201a296a0d 11
Nakor 1:f0201a296a0d 12 /** Armoured Vehicle class (elite enemy) derived from life_entity.
Nakor 1:f0201a296a0d 13 *
Nakor 1:f0201a296a0d 14 * This class is derived from life_entity.
Nakor 1:f0201a296a0d 15 *
Nakor 1:f0201a296a0d 16 * Example:
Nakor 1:f0201a296a0d 17 * @code
Nakor 1:f0201a296a0d 18 * // Create a pointer to a life_entity object.
Nakor 1:f0201a296a0d 19 * life_entity *currentEnemy;
Nakor 1:f0201a296a0d 20 *
Nakor 1:f0201a296a0d 21 * int main()
Nakor 1:f0201a296a0d 22 * {
Nakor 1:f0201a296a0d 23 * // Use the pointer to create a new armoured_vehicle (derived class)
Nakor 1:f0201a296a0d 24 * currentEnemy = new armoured_vehicle(user);
Nakor 1:f0201a296a0d 25 * }
Nakor 1:f0201a296a0d 26 * @endcode
Nakor 1:f0201a296a0d 27 */
Nakor 0:915b6c03bd04 28 class armoured_vehicle : public life_entity
Nakor 0:915b6c03bd04 29 {
Nakor 0:915b6c03bd04 30
Nakor 0:915b6c03bd04 31 public:
Nakor 0:915b6c03bd04 32
Nakor 1:f0201a296a0d 33 /** Armoured Vehicle class constructor.
Nakor 1:f0201a296a0d 34 *
Nakor 1:f0201a296a0d 35 * This class is derived from life_entity.
Nakor 1:f0201a296a0d 36 *
Nakor 1:f0201a296a0d 37 * @param *thePlayer Pointer to the player's class.
Nakor 1:f0201a296a0d 38 *
Nakor 1:f0201a296a0d 39 * Example:
Nakor 1:f0201a296a0d 40 * @code
Nakor 1:f0201a296a0d 41 * // Create a pointer to a life_entity object.
Nakor 1:f0201a296a0d 42 * life_entity *currentEnemy; // Life entity object
Nakor 1:f0201a296a0d 43 *
Nakor 1:f0201a296a0d 44 * int main()
Nakor 1:f0201a296a0d 45 * {
Nakor 1:f0201a296a0d 46 * // Use the pointer to create a new armoured_vehicle (derived class)
Nakor 1:f0201a296a0d 47 * currentEnemy = new armoured_vehicle(user);
Nakor 1:f0201a296a0d 48 * }
Nakor 1:f0201a296a0d 49 * @endcode
Nakor 1:f0201a296a0d 50 */
Nakor 0:915b6c03bd04 51 armoured_vehicle(player *thePlayer);
Nakor 0:915b6c03bd04 52
Nakor 1:f0201a296a0d 53 /** Armoured Vehicle class destructor.
Nakor 1:f0201a296a0d 54 *
Nakor 1:f0201a296a0d 55 * This class is derived from life_entity.
Nakor 1:f0201a296a0d 56 *
Nakor 1:f0201a296a0d 57 * Example:
Nakor 1:f0201a296a0d 58 * @code
Nakor 1:f0201a296a0d 59 * // Create a pointer to a life_entity object.
Nakor 1:f0201a296a0d 60 * life_entity *currentEnemy;
Nakor 1:f0201a296a0d 61 *
Nakor 1:f0201a296a0d 62 * int main()
Nakor 1:f0201a296a0d 63 * {
Nakor 1:f0201a296a0d 64 * // Use the pointer to create a new armoured_vehicle (derived class)
Nakor 1:f0201a296a0d 65 * currentEnemy = new armoured_vehicle(user);
Nakor 1:f0201a296a0d 66 *
Nakor 1:f0201a296a0d 67 * delete currentEnemy;
Nakor 1:f0201a296a0d 68 * }
Nakor 1:f0201a296a0d 69 * @endcode
Nakor 1:f0201a296a0d 70 */
Nakor 0:915b6c03bd04 71 virtual ~armoured_vehicle();
Nakor 0:915b6c03bd04 72
Nakor 1:f0201a296a0d 73 /** Take damage from apponent.
Nakor 1:f0201a296a0d 74 *
Nakor 1:f0201a296a0d 75 * A dodge roll is performed. If the dodge roll succeeds the damage is avoided.
Nakor 1:f0201a296a0d 76 * This applies the player's damage roll to the armoured vehicle's armour,
Nakor 1:f0201a296a0d 77 * and after the armour is destroyed it applies it to the vehicle's health.
Nakor 1:f0201a296a0d 78 *
Nakor 1:f0201a296a0d 79 * @param roll The damage roll to be passed in (most likely from rollDamage()).
Nakor 1:f0201a296a0d 80 *
Nakor 1:f0201a296a0d 81 * Example:
Nakor 1:f0201a296a0d 82 * @code
Nakor 1:f0201a296a0d 83 *
Nakor 1:f0201a296a0d 84 * player *user = new player();
Nakor 1:f0201a296a0d 85 * life_entity *currentEnemy;
Nakor 1:f0201a296a0d 86 *
Nakor 1:f0201a296a0d 87 * int main()
Nakor 1:f0201a296a0d 88 * {
Nakor 1:f0201a296a0d 89 * // Use the pointer to create a new armoured_vehicle (derived class)
Nakor 1:f0201a296a0d 90 * currentEnemy = new armoured_vehicle(user);
Nakor 1:f0201a296a0d 91 *
Nakor 1:f0201a296a0d 92 * // User rolls for damage
Nakor 1:f0201a296a0d 93 * int roll = user->rollDamage();
Nakor 1:f0201a296a0d 94 * // Current enemy takes the hit
Nakor 1:f0201a296a0d 95 * currentEnemy->takeDamage(roll);
Nakor 1:f0201a296a0d 96 * }
Nakor 1:f0201a296a0d 97 * @endcode
Nakor 1:f0201a296a0d 98 */
Nakor 0:915b6c03bd04 99 virtual void takeDamage(int roll);
Nakor 0:915b6c03bd04 100
Nakor 0:915b6c03bd04 101
Nakor 0:915b6c03bd04 102 protected:
Nakor 0:915b6c03bd04 103
Nakor 1:f0201a296a0d 104 /**
Nakor 1:f0201a296a0d 105 * Variable to hold armour amount.
Nakor 1:f0201a296a0d 106 */
Nakor 0:915b6c03bd04 107 int _armour;
Nakor 1:f0201a296a0d 108 /**
Nakor 1:f0201a296a0d 109 * Variable flag to indicate if armour is broken or not.
Nakor 1:f0201a296a0d 110 */
Nakor 0:915b6c03bd04 111 char _armourBroken;
Nakor 0:915b6c03bd04 112
Nakor 0:915b6c03bd04 113 };
Nakor 0:915b6c03bd04 114
Nakor 0:915b6c03bd04 115 #endif