From 242c1fff650cb59f008472f0f803e013024b2da8 Mon Sep 17 00:00:00 2001 From: Peisong Xiao Date: Wed, 17 Jul 2024 22:14:37 -0400 Subject: [PATCH] fixed bugs about throwing, added anger msg for merchants --- src/game.cc | 4 +++- src/level.cc | 4 ++-- src/player.cc | 3 ++- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/game.cc b/src/game.cc index 3f7d09e..a877c68 100644 --- a/src/game.cc +++ b/src/game.cc @@ -92,8 +92,10 @@ game_result game::run() { in->get_command()); msg = res.msg; - if (res.msg.find('M') != std::string::npos) + if (!hostile_merchants && res.msg.find('M') != std::string::npos) { hostile_merchants = true; + msg += "PC has angered the merchants. "; + } switch (res.res) { case result::terminate: diff --git a/src/level.cc b/src/level.cc index e976b49..9d1d20a 100644 --- a/src/level.cc +++ b/src/level.cc @@ -273,8 +273,8 @@ size_t level::what_is_at(const position &pos) const { if (!map.is_available(pos)) return WHAT_WALL; - for (size_t i = 0; i < plist.size(); ++i) - if (plist[i]->get_pos() == pos) + for (size_t i = 0; i < elist.size(); ++i) + if (elist[i]->get_pos() == pos) return WHAT_ENEMY | i; return WHAT_SPACE; diff --git a/src/player.cc b/src/player.cc index a70c836..d801532 100644 --- a/src/player.cc +++ b/src/player.cc @@ -128,7 +128,7 @@ void player_base::add_gold(int amount) { long_result player_base::throw_potion(level *lvl, std::unique_ptr p, direction dir) { if (p == nullptr) - return {thrown, "PC tried to throw a vial of air. "}; + return {fine, "PC tried to throw a vial of air. "}; position tmp{pos}; @@ -168,6 +168,7 @@ long_result player_base::interpret_command(level *lvl, game_command cmd) { return {result::thrown, "PC tried to throw a vial of air. "}; } else { + inv.enabled = false; return throw_potion(lvl, std::move(res.first), (direction)res.second); }