From 9d06e972339f526d24a0b7b3c280fe767ea1aca1 Mon Sep 17 00:00:00 2001 From: Hourier <66951241+Hourier@users.noreply.github.com> Date: Fri, 17 Sep 2021 23:53:05 +0900 Subject: [PATCH] [Refactor] #1498 Defined decrease_damage() in PlayerStun --- src/timed-effect/player-stun.cpp | 24 ++++++++++++++++++++++++ src/timed-effect/player-stun.h | 1 + 2 files changed, 25 insertions(+) diff --git a/src/timed-effect/player-stun.cpp b/src/timed-effect/player-stun.cpp index 7e28b8bbc..fa086f112 100644 --- a/src/timed-effect/player-stun.cpp +++ b/src/timed-effect/player-stun.cpp @@ -67,6 +67,30 @@ int PlayerStun::decrease_chance() const } } +/*! + * @brief 朦朧ランクに応じてダメージ量 or 命中率を下げる. + * @return 朦朧ならば5、ひどく朦朧ならば20. + * @details + * 呼び出し元で減算しているのでこのメソッドでは正値. + * 意識不明瞭ならばそもそも動けないのでこのメソッドを通らない. + * しかし今後の拡張を考慮して100としておく. + */ +short PlayerStun::decrease_damage() const +{ + switch (this->get_rank()) { + case StunRank::NONE: + return 0; + case StunRank::NORMAL: + return 5; + case StunRank::HARD: + return 20; + case StunRank::UNCONSCIOUS: + return 100; + default: + throw("Invalid stun rank is specified!"); + } +} + bool PlayerStun::is_stunned() const { return this->get_rank() > StunRank::NONE; diff --git a/src/timed-effect/player-stun.h b/src/timed-effect/player-stun.h index 3bd01ed65..a055e7fff 100644 --- a/src/timed-effect/player-stun.h +++ b/src/timed-effect/player-stun.h @@ -19,6 +19,7 @@ public: StunRank get_rank(short value) const; std::string_view get_stun_mes(StunRank stun_rank) const; int decrease_chance() const; + short decrease_damage() const; bool is_stunned() const; void reset(); void set(short value); -- 2.11.0