From: Hourier <66951241+Hourier@users.noreply.github.com> Date: Fri, 24 Sep 2021 01:17:01 +0000 (+0900) Subject: [Refactor] #1599 Defined mod_poison() and replaced the calls X-Git-Tag: vmacos3.0.0-alpha52~75^2~12^2~7 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=91c0aef610f45cf65b8f161a55bd525b48290da3;p=hengbandforosx%2Fhengbandosx.git [Refactor] #1599 Defined mod_poison() and replaced the calls --- diff --git a/src/cmd-item/cmd-eat.cpp b/src/cmd-item/cmd-eat.cpp index 4d9e02e21..e97726ed4 100644 --- a/src/cmd-item/cmd-eat.cpp +++ b/src/cmd-item/cmd-eat.cpp @@ -64,7 +64,7 @@ bool exe_eat_food_type_object(player_type *player_ptr, object_type *o_ptr) BadStatusSetter bss(player_ptr); switch (o_ptr->sval) { case SV_FOOD_POISON: - return (!(has_resist_pois(player_ptr) || is_oppose_pois(player_ptr))) && bss.poison(player_ptr->poisoned + randint0(10) + 10); + return (!(has_resist_pois(player_ptr) || is_oppose_pois(player_ptr))) && bss.mod_poison(randint0(10) + 10); case SV_FOOD_BLINDNESS: return !has_resist_blind(player_ptr) && bss.mod_blindness(randint0(200) + 200); case SV_FOOD_PARANOIA: diff --git a/src/core/magic-effects-timeout-reducer.cpp b/src/core/magic-effects-timeout-reducer.cpp index 7bb0807c7..d8b04842a 100644 --- a/src/core/magic-effects-timeout-reducer.cpp +++ b/src/core/magic-effects-timeout-reducer.cpp @@ -212,7 +212,7 @@ void reduce_magic_effects_timeout(player_type *player_ptr) if (player_ptr->poisoned) { int adjust = adj_con_fix[player_ptr->stat_index[A_CON]] + 1; - (void)bss.poison(player_ptr->poisoned - adjust); + (void)bss.mod_poison(-adjust); } auto player_stun = effects->stun(); diff --git a/src/effect/effect-player-resist-hurt.cpp b/src/effect/effect-player-resist-hurt.cpp index 1a50fc8ae..5f0f5e8f7 100644 --- a/src/effect/effect-player-resist-hurt.cpp +++ b/src/effect/effect-player-resist-hurt.cpp @@ -61,7 +61,7 @@ void effect_player_poison(player_type *player_ptr, effect_player_type *ep_ptr) ep_ptr->get_damage = take_hit(player_ptr, DAMAGE_ATTACK, ep_ptr->dam, ep_ptr->killer); if (!(double_resist || has_resist_pois(player_ptr)) && !check_multishadow(player_ptr)) { - (void)BadStatusSetter(player_ptr).poison(player_ptr->poisoned + randint0(ep_ptr->dam) + 10); + (void)BadStatusSetter(player_ptr).mod_poison(randint0(ep_ptr->dam) + 10); } } @@ -77,7 +77,7 @@ void effect_player_nuke(player_type *player_ptr, effect_player_type *ep_ptr) if ((double_resist || has_resist_pois(player_ptr)) || check_multishadow(player_ptr)) return; - (void)BadStatusSetter(player_ptr).poison(player_ptr->poisoned + randint0(ep_ptr->dam) + 10); + (void)BadStatusSetter(player_ptr).mod_poison(randint0(ep_ptr->dam) + 10); if (one_in_(5)) /* 6 */ { msg_print(_("奇形的な変身を遂げた!", "You undergo a freakish metamorphosis!")); diff --git a/src/grid/trap.cpp b/src/grid/trap.cpp index 666b5606f..0c9a0b4c4 100644 --- a/src/grid/trap.cpp +++ b/src/grid/trap.cpp @@ -337,7 +337,7 @@ static void hit_trap_pit(player_type *player_ptr, enum trap_type trap_feat_type) } dam = dam * 2; - (void)bss.poison(player_ptr->poisoned + randint1(dam)); + (void)bss.mod_poison(randint1(dam)); take_hit(player_ptr, DAMAGE_NOESCAPE, dam, trap_name); } @@ -515,7 +515,7 @@ void hit_trap(player_type *player_ptr, bool break_trap) case TRAP_POISON: { msg_print(_("刺激的な緑色のガスに包み込まれた!", "A pungent green gas surrounds you!")); if (has_resist_pois(player_ptr) == 0) { - (void)BadStatusSetter(player_ptr).poison(player_ptr->poisoned + (TIME_EFFECT)randint0(20) + 10); + (void)BadStatusSetter(player_ptr).mod_poison((TIME_EFFECT)randint0(20) + 10); } break; diff --git a/src/hpmp/hp-mp-processor.cpp b/src/hpmp/hp-mp-processor.cpp index 2b064fbfa..a918b387c 100644 --- a/src/hpmp/hp-mp-processor.cpp +++ b/src/hpmp/hp-mp-processor.cpp @@ -187,7 +187,7 @@ void process_player_hp_mp(player_type *player_ptr) if (deal_damege_by_feat(player_ptr, g_ptr, _("毒気を吸い込んだ!", "The gas poisons you!"), _("に毒された!", "poisons you!"), calc_acid_damage_rate, [](player_type *player_ptr, int damage) { if (!has_resist_pois(player_ptr)) - (void)BadStatusSetter(player_ptr).poison(player_ptr->poisoned + damage); + (void)BadStatusSetter(player_ptr).mod_poison(static_cast(damage)); })) { cave_no_regen = true; sound(SOUND_TERRAIN_DAMAGE); diff --git a/src/monster-attack/monster-attack-lose.cpp b/src/monster-attack/monster-attack-lose.cpp index c65fb77e9..185381727 100644 --- a/src/monster-attack/monster-attack-lose.cpp +++ b/src/monster-attack/monster-attack-lose.cpp @@ -29,7 +29,7 @@ void calc_blow_disease(player_type *player_ptr, monap_type *monap_ptr) if (player_ptr->is_dead || check_multishadow(player_ptr)) return; - if (!(has_resist_pois(player_ptr) || is_oppose_pois(player_ptr)) && BadStatusSetter(player_ptr).poison(player_ptr->poisoned + randint1(monap_ptr->rlev) + 5)) + if (!(has_resist_pois(player_ptr) || is_oppose_pois(player_ptr)) && BadStatusSetter(player_ptr).mod_poison(randint1(monap_ptr->rlev) + 5)) monap_ptr->obvious = true; bool disease_possibility = randint1(100) > calc_nuke_damage_rate(player_ptr); diff --git a/src/monster-attack/monster-attack-switcher.cpp b/src/monster-attack/monster-attack-switcher.cpp index 91698bf65..8186af9bf 100644 --- a/src/monster-attack/monster-attack-switcher.cpp +++ b/src/monster-attack/monster-attack-switcher.cpp @@ -42,7 +42,7 @@ static void calc_blow_poison(player_type *player_ptr, monap_type *monap_ptr) return; if (!(has_resist_pois(player_ptr) || is_oppose_pois(player_ptr)) && !check_multishadow(player_ptr) - && BadStatusSetter(player_ptr).poison(player_ptr->poisoned + randint1(monap_ptr->rlev) + 5)) + && BadStatusSetter(player_ptr).mod_poison(randint1(monap_ptr->rlev) + 5)) monap_ptr->obvious = true; monap_ptr->damage = monap_ptr->damage * calc_nuke_damage_rate(player_ptr) / 100; diff --git a/src/object-use/quaff-execution.cpp b/src/object-use/quaff-execution.cpp index e9e6164f4..d8f5b99f7 100644 --- a/src/object-use/quaff-execution.cpp +++ b/src/object-use/quaff-execution.cpp @@ -199,7 +199,7 @@ void exe_quaff_potion(player_type *player_ptr, INVENTORY_IDX item) } case SV_POTION_POISON: if (!(has_resist_pois(player_ptr) || is_oppose_pois(player_ptr))) { - if (BadStatusSetter(player_ptr).poison(player_ptr->poisoned + randint0(15) + 10)) { + if (BadStatusSetter(player_ptr).mod_poison(randint0(15) + 10)) { ident = true; } } diff --git a/src/specific-object/chest.cpp b/src/specific-object/chest.cpp index 6c7dab020..676cfeb34 100644 --- a/src/specific-object/chest.cpp +++ b/src/specific-object/chest.cpp @@ -184,7 +184,7 @@ void chest_trap(player_type *player_ptr, POSITION y, POSITION x, OBJECT_IDX o_id if (trap & (CHEST_POISON)) { msg_print(_("突如吹き出した緑色のガスに包み込まれた!", "A puff of green gas surrounds you!")); if (!(has_resist_pois(player_ptr) || is_oppose_pois(player_ptr))) { - (void)BadStatusSetter(player_ptr).poison(player_ptr->poisoned + 10 + randint1(20)); + (void)BadStatusSetter(player_ptr).mod_poison(10 + randint1(20)); } } diff --git a/src/status/bad-status-setter.cpp b/src/status/bad-status-setter.cpp index 89e813e19..35c534d58 100644 --- a/src/status/bad-status-setter.cpp +++ b/src/status/bad-status-setter.cpp @@ -210,6 +210,11 @@ bool BadStatusSetter::poison(const TIME_EFFECT tmp_v) return true; } +bool BadStatusSetter::mod_poison(const TIME_EFFECT tmp_v) +{ + return this->poison(this->player_ptr->poisoned + tmp_v); +} + /*! * @brief 恐怖の継続時間をセットする / Set "afraid", notice observable changes * @param v 継続時間 diff --git a/src/status/bad-status-setter.h b/src/status/bad-status-setter.h index 012415d7d..885528e15 100644 --- a/src/status/bad-status-setter.h +++ b/src/status/bad-status-setter.h @@ -19,6 +19,7 @@ public: bool confusion(const TIME_EFFECT tmp_v); bool mod_confusion(const TIME_EFFECT tmp_v); bool poison(const TIME_EFFECT tmp_v); + bool mod_poison(const TIME_EFFECT tmp_v); bool afraidness(const TIME_EFFECT tmp_v); bool paralysis(const TIME_EFFECT tmp_v); bool hallucination(const TIME_EFFECT tmp_v);