#include "vampire.h" vampire::vampire(RNG *rng, const position &pos): character{rng, race::rvampire, pos} { gold = 0; hostile = true; } result vampire::attack(const direction dir, character_list &chlist) { position tmp{pos + MOVE[dir]}; for (auto &ch : chlist) if (tmp == ch->get_position()) { auto res = ch->get_hit(race, ATK, base_hit_rate); if (res != result::miss) { HP += GAIN_HP; } return res; } return result::fine; } result vampire::get_hit(const enum race &race, const int atk, const fraction hitrate) { if (rng->trial(hitrate)) HP = std::max(HP - calc_dmg(atk, DEF), 0); if (HP == 0) return result::died; return result::hit; }