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

Dependencies:   armoured_vehicle enemy player

Dependents:   OOP_Review

Committer:
Nakor
Date:
Fri Apr 01 01:30:46 2011 +0000
Revision:
1:0b3582b2b45f
Parent:
0:cee9139ed454
Documentation.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Nakor 0:cee9139ed454 1 #include "life_entity.h"
Nakor 0:cee9139ed454 2
Nakor 0:cee9139ed454 3 int life_entity::lifeEntityCount = 0;
Nakor 0:cee9139ed454 4
Nakor 0:cee9139ed454 5 // Constructor
Nakor 0:cee9139ed454 6 // Sets up basic variables and adds to entity counter
Nakor 0:cee9139ed454 7 life_entity::life_entity()
Nakor 0:cee9139ed454 8 {
Nakor 0:cee9139ed454 9 _level = 0x01;
Nakor 0:cee9139ed454 10
Nakor 0:cee9139ed454 11 _health = _level * 100;
Nakor 0:cee9139ed454 12
Nakor 0:cee9139ed454 13 lifeEntityCount++;
Nakor 0:cee9139ed454 14 }
Nakor 0:cee9139ed454 15
Nakor 0:cee9139ed454 16 // Destructor (virtual)
Nakor 0:cee9139ed454 17 // Simply modifies the entity counter
Nakor 0:cee9139ed454 18 life_entity::~life_entity()
Nakor 0:cee9139ed454 19 {
Nakor 0:cee9139ed454 20 lifeEntityCount--;
Nakor 0:cee9139ed454 21 }
Nakor 0:cee9139ed454 22
Nakor 0:cee9139ed454 23
Nakor 0:cee9139ed454 24 // Return life entity count
Nakor 0:cee9139ed454 25 char life_entity::getLifeEntityCount()
Nakor 0:cee9139ed454 26 {
Nakor 0:cee9139ed454 27 return lifeEntityCount;
Nakor 0:cee9139ed454 28 }
Nakor 0:cee9139ed454 29
Nakor 0:cee9139ed454 30 // Returns the current health of the entity
Nakor 0:cee9139ed454 31 int life_entity::getHealth()
Nakor 0:cee9139ed454 32 {
Nakor 0:cee9139ed454 33 return _health;
Nakor 0:cee9139ed454 34 }
Nakor 0:cee9139ed454 35
Nakor 0:cee9139ed454 36 // Returns the level of the entity
Nakor 0:cee9139ed454 37 char life_entity::getLevel()
Nakor 0:cee9139ed454 38 {
Nakor 0:cee9139ed454 39 return _level;
Nakor 0:cee9139ed454 40 }
Nakor 0:cee9139ed454 41
Nakor 0:cee9139ed454 42 // Roll for damage
Nakor 0:cee9139ed454 43 // This is currently the same for all entities.
Nakor 0:cee9139ed454 44 // Different damage is currently applied in main (like one third damage that user takes)
Nakor 0:cee9139ed454 45 int life_entity::rollDamage()
Nakor 0:cee9139ed454 46 {
Nakor 0:cee9139ed454 47 int maxDmg = 7;
Nakor 0:cee9139ed454 48 srand ( time(NULL) );
Nakor 0:cee9139ed454 49
Nakor 0:cee9139ed454 50 int roll = (rand() % (maxDmg * _level) + 1);
Nakor 0:cee9139ed454 51
Nakor 0:cee9139ed454 52 srand ( time(NULL) );
Nakor 0:cee9139ed454 53
Nakor 0:cee9139ed454 54 int isCrit = ( rand() % 1000 + 1);
Nakor 0:cee9139ed454 55
Nakor 0:cee9139ed454 56 if(isCrit >= 800)
Nakor 0:cee9139ed454 57 {
Nakor 0:cee9139ed454 58 isCrit = 1;
Nakor 0:cee9139ed454 59 }
Nakor 0:cee9139ed454 60 else
Nakor 0:cee9139ed454 61 {
Nakor 0:cee9139ed454 62 isCrit = 0;
Nakor 0:cee9139ed454 63 }
Nakor 0:cee9139ed454 64
Nakor 0:cee9139ed454 65 if(isCrit)
Nakor 0:cee9139ed454 66 {
Nakor 0:cee9139ed454 67 printf("CRIT!\n");
Nakor 0:cee9139ed454 68 roll = (maxDmg * 2) - ( rand() % 4 + 1 );
Nakor 0:cee9139ed454 69 }
Nakor 0:cee9139ed454 70
Nakor 0:cee9139ed454 71 return roll;
Nakor 0:cee9139ed454 72 }