OSDN Git Service

[Fix] #2172 重力属性で一つの効果が効かなければ全て効かなかったことになる不具合を修正
authorSlimebreath6078 <slimebreath6078@yahoo.co.jp>
Sun, 13 Feb 2022 10:08:48 +0000 (19:08 +0900)
committerSlimebreath6078 <slimebreath6078@yahoo.co.jp>
Wed, 23 Feb 2022 11:03:30 +0000 (20:03 +0900)
src/effect/effect-monster-resist-hurt.cpp

index ad01cb4..42c8e8d 100644 (file)
@@ -534,11 +534,8 @@ process_result effect_monster_time(PlayerType *player_ptr, effect_monster_type *
 
 static bool effect_monster_gravity_resist_teleport(PlayerType *player_ptr, effect_monster_type *em_ptr)
 {
-    if (em_ptr->seen) {
-        em_ptr->obvious = true;
-    }
-
     if (em_ptr->r_ptr->resistance_flags.has_not(MonsterResistanceType::RESIST_TELEPORT)) {
+        em_ptr->obvious = true;
         return false;
     }
 
@@ -552,6 +549,7 @@ static bool effect_monster_gravity_resist_teleport(PlayerType *player_ptr, effec
     }
 
     if (em_ptr->r_ptr->level <= randint1(100)) {
+        em_ptr->obvious = true;
         return false;
     }
 
@@ -575,6 +573,7 @@ static void effect_monster_gravity_slow(PlayerType *player_ptr, effect_monster_t
     if (set_monster_slow(player_ptr, em_ptr->g_ptr->m_idx, monster_slow_remaining(em_ptr->m_ptr) + 50)) {
         em_ptr->note = _("の動きが遅くなった。", " starts moving slower.");
     }
+    em_ptr->obvious = true;
 }
 
 static void effect_monster_gravity_stun(effect_monster_type *em_ptr)
@@ -584,9 +583,9 @@ static void effect_monster_gravity_stun(effect_monster_type *em_ptr)
     has_resistance |= (em_ptr->r_ptr->level > randint1(std::max(1, em_ptr->dam - 10)) + 10);
     if (has_resistance) {
         em_ptr->do_stun = 0;
-        em_ptr->note = _("には効果がなかった。", " is unaffected!");
-        em_ptr->obvious = false;
+        return;
     }
+    em_ptr->obvious = true;
 }
 
 /*
@@ -612,6 +611,8 @@ process_result effect_monster_gravity(PlayerType *player_ptr, effect_monster_typ
         return PROCESS_CONTINUE;
     }
 
+    em_ptr->note = _("には効果がなかった。", " is unaffected!");
+
     effect_monster_gravity_slow(player_ptr, em_ptr);
     effect_monster_gravity_stun(em_ptr);
     return PROCESS_CONTINUE;