OSDN Git Service

[Fix] 剣術「幻惑」で混乱の効果が発生しない #440
authoriks <iks3@users.noreply.github.com>
Sun, 7 Mar 2021 10:01:49 +0000 (19:01 +0900)
committeriks <iks3@users.noreply.github.com>
Sun, 7 Mar 2021 10:01:49 +0000 (19:01 +0900)
src/effect/effect-monster-switcher.cpp

index 39e1057..b26489f 100644 (file)
@@ -172,7 +172,7 @@ process_result effect_monster_engetsu(player_type *caster_ptr, effect_monster_ty
         if (em_ptr->r_ptr->level > power)
             continue;
 
-        switch (randint0(3)) {
+        switch (randint0(4)) {
         case 0:
             if (!any_bits(em_ptr->r_ptr->flags1, RF1_UNIQUE)) {
                 if (set_monster_slow(caster_ptr, em_ptr->g_ptr->m_idx, monster_slow_remaining(em_ptr->m_ptr) + 50)) {
@@ -189,6 +189,20 @@ process_result effect_monster_engetsu(player_type *caster_ptr, effect_monster_ty
                 done = TRUE;
             }
             break;
+        case 2:
+            if (any_bits(em_ptr->r_ptr->flags1, RF1_UNIQUE) || any_bits(em_ptr->r_ptr->flags3, RF3_NO_CONF)) {
+                if (any_bits(em_ptr->r_ptr->flags3, RF3_NO_CONF)) {
+                    if (is_original_ap_and_seen(caster_ptr, em_ptr->m_ptr))
+                        set_bits(em_ptr->r_ptr->r_flags3, RF3_NO_CONF);
+                }
+                em_ptr->do_conf = 0;
+            } else {
+                /* Go to sleep (much) later */
+                em_ptr->note = _("は混乱したようだ。", " looks confused.");
+                em_ptr->do_conf = 10 + randint1(15);
+                done = TRUE;
+            }
+            break;
         default:
             if (any_bits(em_ptr->r_ptr->flags1, RF1_UNIQUE) || any_bits(em_ptr->r_ptr->flags3, RF3_NO_SLEEP)) {
                 if (any_bits(em_ptr->r_ptr->flags3, RF3_NO_SLEEP)) {