OSDN Git Service

[Refactor] #1599 Defined mod_confusion() and replaced the calls
authorHourier <66951241+Hourier@users.noreply.github.com>
Fri, 24 Sep 2021 01:10:47 +0000 (10:10 +0900)
committerHourier <66951241+Hourier@users.noreply.github.com>
Fri, 24 Sep 2021 01:11:33 +0000 (10:11 +0900)
16 files changed:
src/cmd-action/cmd-mind.cpp
src/cmd-item/cmd-eat.cpp
src/core/magic-effects-timeout-reducer.cpp
src/effect/effect-monster-charm.cpp
src/effect/effect-monster-psi.cpp
src/effect/effect-player-resist-hurt.cpp
src/effect/effect-player-spirit.cpp
src/grid/trap.cpp
src/monster-attack/monster-attack-switcher.cpp
src/mspell/mspell-status.cpp
src/mutation/mutation-processor.cpp
src/player/eldritch-horror.cpp
src/spell/spells-object.cpp
src/spell/spells-summon.cpp
src/status/bad-status-setter.cpp
src/status/bad-status-setter.h

index 25761ff..90fec67 100644 (file)
@@ -213,7 +213,7 @@ static void check_mind_mindcrafter(player_type *player_ptr, cm_type *cm_ptr)
 
     if (cm_ptr->b < 45) {
         msg_print(_("あなたの頭は混乱した!", "Your brain is addled!"));
-        (void)bss.confusion(player_ptr->confused + randint1(8));
+        (void)bss.mod_confusion(randint1(8));
         return;
     }
 
index 8f124d0..4d9e02e 100644 (file)
@@ -70,7 +70,7 @@ bool exe_eat_food_type_object(player_type *player_ptr, object_type *o_ptr)
     case SV_FOOD_PARANOIA:
         return !has_resist_fear(player_ptr) && bss.afraidness(player_ptr->afraid + randint0(10) + 10);
     case SV_FOOD_CONFUSION:
-        return !has_resist_conf(player_ptr) && bss.confusion(player_ptr->confused + randint0(10) + 10);
+        return !has_resist_conf(player_ptr) && bss.mod_confusion(randint0(10) + 10);
     case SV_FOOD_HALLUCINATION:
         return !has_resist_chaos(player_ptr) && bss.hallucination(player_ptr->hallucinated + randint0(250) + 250);
     case SV_FOOD_PARALYSIS:
index 74e886b..7bb0807 100644 (file)
@@ -131,7 +131,7 @@ void reduce_magic_effects_timeout(player_type *player_ptr)
     }
 
     if (player_ptr->confused) {
-        (void)bss.confusion(player_ptr->confused - dec_count);
+        (void)bss.mod_confusion(-dec_count);
     }
 
     if (player_ptr->afraid) {
index 1cea781..851b7cb 100644 (file)
@@ -220,7 +220,7 @@ static void effect_monster_domination_corrupted_addition(player_type *player_ptr
         (void)bss.stun(player_ptr->effects()->stun()->current() + em_ptr->dam / 2);
         return;
     case 2:
-        (void)bss.confusion(player_ptr->confused + em_ptr->dam / 2);
+        (void)bss.mod_confusion(em_ptr->dam / 2);
         return;
     default:
         if (any_bits(em_ptr->r_ptr->flags3, RF3_NO_FEAR)) {
index df135a3..c4f67fe 100644 (file)
@@ -104,7 +104,7 @@ static void effect_monster_psi_reflect_extra_effect(player_type *player_ptr, eff
     BadStatusSetter bss(player_ptr);
     switch (randint1(4)) {
     case 1:
-        (void)bss.confusion(player_ptr->confused + 3 + randint1(em_ptr->dam));
+        (void)bss.mod_confusion(3 + randint1(em_ptr->dam));
         return;
     case 2:
         (void)bss.stun(player_ptr->effects()->stun()->current() + randint1(em_ptr->dam));
index 64007ea..1a50fc8 100644 (file)
@@ -213,7 +213,7 @@ void effect_player_water(player_type *player_ptr, effect_player_type *ep_ptr)
         }
 
         if (!has_resist_conf(player_ptr) && !has_res_water) {
-            (void)bss.confusion(player_ptr->confused + randint1(5) + 5);
+            (void)bss.mod_confusion(randint1(5) + 5);
         }
 
         if (one_in_(5) && !has_res_water) {
@@ -238,7 +238,7 @@ void effect_player_chaos(player_type *player_ptr, effect_player_type *ep_ptr)
 
     BadStatusSetter bss(player_ptr);
     if (!has_resist_conf(player_ptr)) {
-        (void)bss.confusion(player_ptr->confused + randint0(20) + 10);
+        (void)bss.mod_confusion(randint0(20) + 10);
     }
 
     if (!has_resist_chaos(player_ptr)) {
@@ -304,7 +304,7 @@ void effect_player_confusion(player_type *player_ptr, effect_player_type *ep_ptr
     ep_ptr->dam = ep_ptr->dam * calc_conf_damage_rate(player_ptr, CALC_RAND) / 100;
     BadStatusSetter bss(player_ptr);
     if (!has_resist_conf(player_ptr) && !check_multishadow(player_ptr)) {
-        (void)bss.confusion(player_ptr->confused + randint1(20) + 10);
+        (void)bss.mod_confusion(randint1(20) + 10);
     }
 
     ep_ptr->get_damage = take_hit(player_ptr, DAMAGE_ATTACK, ep_ptr->dam, ep_ptr->killer);
@@ -687,7 +687,7 @@ void effect_player_abyss(player_type *player_ptr, effect_player_type *ep_ptr)
     }
 
     if (!has_resist_conf(player_ptr)) {
-        (void)bss.confusion(player_ptr->confused + randint1(10));
+        (void)bss.mod_confusion(randint1(10));
     }
 
     if (!has_resist_fear(player_ptr)) {
index ffe1f30..75b3e5d 100644 (file)
@@ -78,7 +78,7 @@ void effect_player_mind_blast(player_type *player_ptr, effect_player_type *ep_pt
     msg_print(_("霊的エネルギーで精神が攻撃された。", "Your mind is blasted by psionic energy."));
     BadStatusSetter bss(player_ptr);
     if (!has_resist_conf(player_ptr)) {
-        (void)bss.confusion(player_ptr->confused + randint0(4) + 4);
+        (void)bss.mod_confusion(randint0(4) + 4);
     }
 
     if (!has_resist_chaos(player_ptr) && one_in_(3)) {
@@ -123,7 +123,7 @@ void effect_player_brain_smash(player_type *player_ptr, effect_player_type *ep_p
     }
 
     if (!has_resist_conf(player_ptr)) {
-        (void)bss.confusion(player_ptr->confused + randint0(4) + 4);
+        (void)bss.mod_confusion(randint0(4) + 4);
     }
 
     if (!player_ptr->free_act) {
index 5f15eda..666b560 100644 (file)
@@ -506,7 +506,7 @@ void hit_trap(player_type *player_ptr, bool break_trap)
     case TRAP_CONFUSE: {
         msg_print(_("きらめくガスに包み込まれた!", "A gas of scintillating colors surrounds you!"));
         if (has_resist_conf(player_ptr) == 0) {
-            (void)BadStatusSetter(player_ptr).confusion(player_ptr->confused + (TIME_EFFECT)randint0(20) + 10);
+            (void)BadStatusSetter(player_ptr).mod_confusion((TIME_EFFECT)randint0(20) + 10);
         }
 
         break;
index 6edcb91..91698bf 100644 (file)
@@ -146,7 +146,7 @@ static void calc_blow_confusion(player_type *player_ptr, monap_type *monap_ptr)
         return;
     }
 
-    if (!has_resist_conf(player_ptr) && !check_multishadow(player_ptr) && BadStatusSetter(player_ptr).confusion(player_ptr->confused + 3 + randint1(monap_ptr->rlev))) {
+    if (!has_resist_conf(player_ptr) && !check_multishadow(player_ptr) && BadStatusSetter(player_ptr).mod_confusion(3 + randint1(monap_ptr->rlev))) {
         monap_ptr->obvious = true;
     }
 
index 140730f..d5e321b 100644 (file)
@@ -352,7 +352,7 @@ MonsterSpellResult spell_RF5_CONF(MONSTER_IDX m_idx, player_type *player_ptr, MO
             _("しかし幻覚にはだまされなかった。", "You disbelieve the feeble spell."), resist, saving_throw, TARGET_TYPE);
 
         if (!resist && !saving_throw) {
-            (void)BadStatusSetter(player_ptr).confusion(player_ptr->confused + randint0(4) + 4);
+            (void)BadStatusSetter(player_ptr).mod_confusion(randint0(4) + 4);
         }
 
         update_smart_learn(player_ptr, m_idx, DRS_CONF);
index aceb394..c066d30 100644 (file)
@@ -152,7 +152,7 @@ void process_world_aux_mutation(player_type *player_ptr)
         }
 
         if (!has_resist_conf(player_ptr)) {
-            (void)bss.confusion(player_ptr->confused + randint0(20) + 15);
+            (void)bss.mod_confusion(randint0(20) + 15);
         }
 
         if (!has_resist_chaos(player_ptr)) {
index 9666a95..03e90cc 100644 (file)
@@ -260,7 +260,7 @@ void sanity_blast(player_type *player_ptr, monster_type *m_ptr, bool necro)
     case 12: {
         BadStatusSetter bss(player_ptr);
         if (!has_resist_conf(player_ptr)) {
-            (void)bss.confusion(player_ptr->confused + randint0(4) + 4);
+            (void)bss.mod_confusion(randint0(4) + 4);
         }
 
         if (!has_resist_chaos(player_ptr) && one_in_(3)) {
@@ -276,7 +276,7 @@ void sanity_blast(player_type *player_ptr, monster_type *m_ptr, bool necro)
     case 15: {
         BadStatusSetter bss(player_ptr);
         if (!has_resist_conf(player_ptr)) {
-            (void)bss.confusion(player_ptr->confused + randint0(4) + 4);
+            (void)bss.mod_confusion(randint0(4) + 4);
         }
         if (!player_ptr->free_act) {
             (void)bss.paralysis(player_ptr->paralyzed + randint0(4) + 4);
index 02e2298..1a71050 100644 (file)
@@ -380,7 +380,7 @@ bool perilous_secrets(player_type *player_ptr)
             player_ptr->csp_frac = 0;
             msg_print(_("石を制御できない!", "You are too weak to control the stone!"));
             (void)bss.paralysis(player_ptr->paralyzed + randint1(5 * oops + 1));
-            (void)bss.confusion(player_ptr->confused + randint1(5 * oops + 1));
+            (void)bss.mod_confusion(randint1(5 * oops + 1));
         }
 
         player_ptr->redraw |= (PR_MANA);
@@ -389,7 +389,7 @@ bool perilous_secrets(player_type *player_ptr)
     take_hit(player_ptr, DAMAGE_LOSELIFE, damroll(1, 12), _("危険な秘密", "perilous secrets"));
 
     if (one_in_(5))
-        (void)bss.confusion(player_ptr->confused + randint1(10));
+        (void)bss.mod_confusion(randint1(10));
 
     if (one_in_(20))
         take_hit(player_ptr, DAMAGE_LOSELIFE, damroll(4, 10), _("危険な秘密", "perilous secrets"));
index cf9d51a..e2f3447 100644 (file)
@@ -459,7 +459,7 @@ void cast_invoke_spirits(player_type *player_ptr, DIRECTION dir)
         (void)bss.afraidness(player_ptr->afraid + randint1(4) + 4);
     } else if (die < 26) {
         msg_print(_("あなたの頭に大量の幽霊たちの騒々しい声が押し寄せてきた...", "Your head is invaded by a horde of gibbering spectral voices..."));
-        (void)bss.confusion(player_ptr->confused + randint1(4) + 4);
+        (void)bss.mod_confusion(randint1(4) + 4);
     } else if (die < 31) {
         poly_monster(player_ptr, dir, plev);
     } else if (die < 36) {
index 0274e93..89e813e 100644 (file)
@@ -166,6 +166,11 @@ bool BadStatusSetter::confusion(const TIME_EFFECT tmp_v)
     return true;
 }
 
+bool BadStatusSetter::mod_confusion(const TIME_EFFECT tmp_v)
+{
+    return this->confusion(this->player_ptr->confused + tmp_v);
+}
+
 /*!
  * @brief 毒の継続時間をセットする / Set "poisoned", notice observable changes
  * @param v 継続時間
index 57878c7..012415d 100644 (file)
@@ -17,6 +17,7 @@ public:
     bool blindness(const TIME_EFFECT tmp_v);
     bool mod_blindness(const TIME_EFFECT tmp_v);
     bool confusion(const TIME_EFFECT tmp_v);
+    bool mod_confusion(const TIME_EFFECT tmp_v);
     bool poison(const TIME_EFFECT tmp_v);
     bool afraidness(const TIME_EFFECT tmp_v);
     bool paralysis(const TIME_EFFECT tmp_v);