}
/* Hex: Anti Magic Barrier */
- if (!spell_is_inate(thrown_spell) && magic_barrier(m_idx))
+ if (!spell_is_inate(thrown_spell) && magic_barrier(p_ptr, m_idx))
{
msg_format(_("反魔法バリアが%^sの呪文をかき消した。", "Anti magic barrier cancels the spell which %^s casts."), m_name);
return (TRUE);
}
/* Hex: Anti Magic Barrier */
- if (!spell_is_inate(thrown_spell) && magic_barrier(m_idx))
+ if (!spell_is_inate(thrown_spell) && magic_barrier(p_ptr, m_idx))
{
if (see_m) msg_format(_("反魔法バリアが%^sの呪文をかき消した。",
"Anti magic barrier cancels the spell which %^s casts."), m_name);
* @param m_idx 判定の対象となるモンスターID
* @return 反魔法の効果が適用されるならTRUEを返す
*/
-bool magic_barrier(MONSTER_IDX m_idx)
+bool magic_barrier(player_type *target_ptr, MONSTER_IDX m_idx)
{
- monster_type *m_ptr = &p_ptr->current_floor_ptr->m_list[m_idx];
+ monster_type *m_ptr = &target_ptr->current_floor_ptr->m_list[m_idx];
monster_race *r_ptr = &r_info[m_ptr->r_idx];
if (!hex_spelling(HEX_ANTI_MAGIC)) return FALSE;
- if ((p_ptr->lev * 3 / 2) < randint1(r_ptr->level)) return FALSE;
+ if ((target_ptr->lev * 3 / 2) < randint1(r_ptr->level)) return FALSE;
return TRUE;
}
extern void revenge_spell(player_type *caster_ptr);
extern void revenge_store(HIT_POINT dam);
extern bool teleport_barrier(MONSTER_IDX m_idx);
-extern bool magic_barrier(MONSTER_IDX m_idx);
+extern bool magic_barrier(player_type *target_ptr, MONSTER_IDX m_idx);
extern bool multiply_barrier(MONSTER_IDX m_idx);
extern concptr do_hex_spell(player_type *caster_ptr, SPELL_IDX spell, BIT_FLAGS mode);