adding cs142 code
This commit is contained in:
@@ -0,0 +1,59 @@
|
||||
#include "FighterInterface.h"
|
||||
#include "cleric.h"
|
||||
|
||||
cleric::cleric(string name, int max_hp, int strength, int speed, int magic) :
|
||||
fighter(name, max_hp, strength, speed, magic), mana(5*magic) {}
|
||||
|
||||
int cleric::getDamage() {
|
||||
return magic;
|
||||
}
|
||||
|
||||
void cleric::reset() {
|
||||
hp = max_hp;
|
||||
mana = 5 * magic;
|
||||
}
|
||||
|
||||
void cleric::regenerate() {
|
||||
fighter::regenerate();
|
||||
|
||||
int increase = magic / 5;
|
||||
|
||||
if(increase < 0) {
|
||||
increase = 0;
|
||||
}
|
||||
else if(increase == 0) {
|
||||
increase = 1;
|
||||
}
|
||||
if(mana + increase < magic * 5) {
|
||||
mana += increase;
|
||||
}
|
||||
else {
|
||||
mana = 5 * magic;
|
||||
}
|
||||
}
|
||||
|
||||
bool cleric::useAbility() {
|
||||
// a.k.a. Healing light
|
||||
if(mana - CLERIC_ABILITY_COST >= 0) {
|
||||
int increase = magic / 3;
|
||||
if(increase < 0) {
|
||||
increase = 0;
|
||||
}
|
||||
else if(increase == 0) {
|
||||
increase = 1;
|
||||
}
|
||||
if(hp + increase < max_hp) {
|
||||
hp += increase;
|
||||
}
|
||||
else {
|
||||
hp = max_hp;
|
||||
}
|
||||
mana -= CLERIC_ABILITY_COST;
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
int cleric::get_mana() {
|
||||
return mana;
|
||||
}
|
||||
Reference in New Issue
Block a user