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;
}
/*!