From 7cc757f00348264f5b97fdc50b8e48053cbf504c Mon Sep 17 00:00:00 2001 From: Peisong Xiao Date: Thu, 18 Jul 2024 18:55:23 -0400 Subject: [PATCH] fixed issue leprechauns not dropping enough gold --- src/enemies/leprechaun.cc | 10 +++++++++- src/enemies/leprechaun.h | 3 ++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/enemies/leprechaun.cc b/src/enemies/leprechaun.cc index e82dbba..552d7e1 100644 --- a/src/enemies/leprechaun.cc +++ b/src/enemies/leprechaun.cc @@ -2,11 +2,13 @@ #include "../constants.h" #include "../player.h" +#include "../level.h" leprechaun::leprechaun(RNG *rng, const feature enabled_features, const position &pos, const int gen_room_num): - enemy_base{rng, enabled_features, rleprechaun, pos, gen_room_num, "l"} {} + enemy_base{rng, enabled_features, rleprechaun, pos, gen_room_num, "l"}, + gold_cnt{0} {} const char *leprechaun::get_race_name() const { return "Leprechaun"; @@ -25,8 +27,14 @@ long_result leprechaun::attack(character *ch) { res.msg += "l steals " + std::to_string(STEAL_GOLD) + " pieces of gold from PC. "; static_cast(ch)->add_gold(-STEAL_GOLD); + gold_cnt += STEAL_GOLD; } } return res; } + +int leprechaun::dies(level *lvl) { + lvl->add_gold(gold{pos, gold_cnt}); + return 0; +} diff --git a/src/enemies/leprechaun.h b/src/enemies/leprechaun.h index c102a15..e3fc694 100644 --- a/src/enemies/leprechaun.h +++ b/src/enemies/leprechaun.h @@ -12,7 +12,8 @@ public: leprechaun(RNG *rng, const feature enabled_features, const position &pos, const int gen_room_num); const char *get_race_name() const override; - virtual long_result attack(character *ch) override; + long_result attack(character *ch) override; + int dies(level *lvl) override; }; #endif