Enemy class. Written for OOP Review. Derived from life_entity.

Dependents:   life_entity

enemy.h

Committer:
Nakor
Date:
2011-04-01
Revision:
1:59274d3772ec
Parent:
0:91a68e5fd4b8

File content as of revision 1:59274d3772ec:

#ifndef _ENEMYENTITY_
#define _ENEMYENTITY_

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

#define DEBUG_ENEMY 0x01
#define DEBUG_ENEMY_VERBOSE 0x00

/** Enemy class (basic 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 enemy(user);
 * }
 * @endcode
 */
class enemy : public life_entity
{

public:

    /** Enemy 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 enemy(user);
     * }
     * @endcode
     */
    enemy(player *thePlayer);
    
    /** Enemy 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 enemy(user);
     *
     *     delete currentEnemy;
     * }
     * @endcode
     */
    virtual ~enemy();
    
    /** Take damage from apponent.
    *
    * This applies the player's damage roll to the enemy's health after a dodge roll
    * is performed.
    * 
    * @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 enemy(user);
    *     
    *     // User rolls for damage
    *     int roll = user->rollDamage();
    *     // Current enemy takes the hit
    *     currentEnemy->takeDamage(roll);
    * }
    * @endcode
    */
    virtual void takeDamage(int roll);
    
        
protected:
    
};

#endif