OSDN Git Service

[Refactor] #40481 Reshaped exe_blue_teleport_back()
authorHourier <hourier@users.sourceforge.jp>
Tue, 21 Jul 2020 10:17:08 +0000 (19:17 +0900)
committerHourier <hourier@users.sourceforge.jp>
Tue, 21 Jul 2020 10:17:08 +0000 (19:17 +0900)
src/blue-magic/blue-magic-caster.c

index 5b0b22e..8146ec9 100644 (file)
@@ -93,21 +93,25 @@ static bool exe_blue_teleport_back(player_type *caster_ptr, GAME_TEXT *m_name)
     m_ptr = &floor_ptr->m_list[floor_ptr->grid_array[target_row][target_col].m_idx];
     r_ptr = &r_info[m_ptr->r_idx];
     monster_desc(caster_ptr, m_name, m_ptr, 0);
-    if (r_ptr->flagsr & RFR_RES_TELE) {
-        if ((r_ptr->flags1 & RF1_UNIQUE) || (r_ptr->flagsr & RFR_RES_ALL)) {
-            if (is_original_ap_and_seen(caster_ptr, m_ptr))
-                r_ptr->r_flagsr |= RFR_RES_TELE;
-            msg_format(_("%sには効果がなかった!", "%s is unaffected!"), m_name);
-            return TRUE;
-        } else if (r_ptr->level > randint1(100)) {
-            if (is_original_ap_and_seen(caster_ptr, m_ptr))
-                r_ptr->r_flagsr |= RFR_RES_TELE;
-            msg_format(_("%sには耐性がある!", "%s resists!"), m_name);
-            return TRUE;
-        }
+    if ((r_ptr->flagsr & RFR_RES_TELE) == 0)
+        return FALSE;
+
+    if ((r_ptr->flags1 & RF1_UNIQUE) || (r_ptr->flagsr & RFR_RES_ALL)) {
+        if (is_original_ap_and_seen(caster_ptr, m_ptr))
+            r_ptr->r_flagsr |= RFR_RES_TELE;
+
+        msg_format(_("%sには効果がなかった!", "%s is unaffected!"), m_name);
+        return TRUE;
     }
+    
+    if (r_ptr->level <= randint1(100))
+        return FALSE;
 
-    return FALSE;
+    if (is_original_ap_and_seen(caster_ptr, m_ptr))
+        r_ptr->r_flagsr |= RFR_RES_TELE;
+
+    msg_format(_("%sには耐性がある!", "%s resists!"), m_name);
+    return TRUE;
 }
 
 /*!