Life entity (base class). Written for OOP Review.
Dependencies: armoured_vehicle enemy player
life_entity.cpp@1:0b3582b2b45f, 2011-04-01 (annotated)
- Committer:
- Nakor
- Date:
- Fri Apr 01 01:30:46 2011 +0000
- Revision:
- 1:0b3582b2b45f
- Parent:
- 0:cee9139ed454
Documentation.
Who changed what in which revision?
User | Revision | Line number | New 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 | } |