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

Dependents:   life_entity

armoured_vehicle.h

Committer:
Nakor
Date:
2011-04-01
Revision:
1:f0201a296a0d
Parent:
0:915b6c03bd04

File content as of revision 1:f0201a296a0d:

#ifndef _ARMOUREDENTITY_
#define _ARMOUREDENTITY_

#include "mbed.h"
#include "life_entity.h"
#include "player.h"

#define DEBUG_ARMOURED 0x01
#define DEBUG_ARMOURED_VERBOSE 0x00


/** Armoured Vehicle class (elite enemy) derived from life_entity.
 * 
 * This class is derived from life_entity.
 *
 * Example:
 * @code
 * // Create a pointer to a life_entity object.
 * life_entity *currentEnemy; 
 *
 * int main()
 * {    
 *     // Use the pointer to create a new armoured_vehicle (derived class)
 *     currentEnemy = new armoured_vehicle(user);
 * }
 * @endcode
 */
class armoured_vehicle : public life_entity
{

public:

    /** Armoured Vehicle class constructor.
     * 
     * This class is derived from life_entity.
     *
     * @param *thePlayer Pointer to the player's class.
     *
     * Example:
     * @code
     * // Create a pointer to a life_entity object.
     * 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
     */
    armoured_vehicle(player *thePlayer);
    
    /** Armoured Vehicle class destructor.
     * 
     * This class is derived from life_entity.
     *
     * Example:
     * @code
     * // Create a pointer to a life_entity object.
     * 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 ~armoured_vehicle();
    
    /** Take damage from apponent.
    *
    * A dodge roll is performed.  If the dodge roll succeeds the damage is avoided.
    * This applies the player's damage roll to the armoured vehicle's armour,
    * and after the armour is destroyed it applies it to the vehicle's health.
    * 
    * @param roll The damage roll to be passed in (most likely from rollDamage()).
    *
    * Example:
    * @code
    *
    * player *user = new player();
    * life_entity *currentEnemy; 
    *
    * int main()
    * {    
    *     // Use the pointer to create a new armoured_vehicle (derived class)
    *     currentEnemy = new armoured_vehicle(user);
    *     
    *     // User rolls for damage
    *     int roll = user->rollDamage();
    *     // Current enemy takes the hit
    *     currentEnemy->takeDamage(roll);
    * }
    * @endcode
    */
    virtual void takeDamage(int roll);
    
        
protected:

    /**
    * Variable to hold armour amount.
    */
    int _armour;
    /**
    * Variable flag to indicate if armour is broken or not.
    */
    char _armourBroken;
    
};

#endif