From 6ffa01ab81f6967db3c5fd9f9625d9cb8e2b049c Mon Sep 17 00:00:00 2001 From: deskull Date: Thu, 2 Jan 2020 16:38:32 +0900 Subject: [PATCH] =?utf8?q?[Refactor]=20#38997=20teleport=5Fbarrier()=20?= =?utf8?q?=E3=81=AB=20player=5Ftype=20*=20=E5=BC=95=E6=95=B0=E3=82=92?= =?utf8?q?=E8=BF=BD=E5=8A=A0=EF=BC=8E=20/=20Add=20player=5Ftype=20*=20argu?= =?utf8?q?ment=20to=20teleport=5Fbarrier().?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- src/combat/melee1.c | 4 ++-- src/mspells4.c | 4 ++-- src/realm-hex.c | 6 +++--- src/realm-hex.h | 2 +- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/combat/melee1.c b/src/combat/melee1.c index 14255649a..53e72eade 100644 --- a/src/combat/melee1.c +++ b/src/combat/melee1.c @@ -4081,7 +4081,7 @@ bool make_attack_normal(player_type *target_ptr, MONSTER_IDX m_idx) /* Blink away */ if (blinked && alive && !target_ptr->is_dead) { - if (teleport_barrier(m_idx)) + if (teleport_barrier(target_ptr, m_idx)) { msg_print(_("泥棒は笑って逃げ...ようとしたがバリアに防がれた。", "The thief flees laughing...? But magic barrier obstructs it.")); } @@ -4713,7 +4713,7 @@ bool monst_attack_monst(player_type *subject_ptr, MONSTER_IDX m_idx, MONSTER_IDX /* Blink away */ if (blinked && m_ptr->r_idx) { - if (teleport_barrier(m_idx)) + if (teleport_barrier(subject_ptr, m_idx)) { if (see_m) { diff --git a/src/mspells4.c b/src/mspells4.c index c2e3fac6d..5b45b886a 100644 --- a/src/mspells4.c +++ b/src/mspells4.c @@ -1868,7 +1868,7 @@ void spell_RF6_BLINK(MONSTER_IDX m_idx, int TARGET_TYPE) if (TARGET_TYPE==MONSTER_TO_PLAYER) disturb(p_ptr, TRUE, TRUE); - if (teleport_barrier(m_idx)) + if (teleport_barrier(p_ptr, m_idx)) { if(see_monster(m_idx)) msg_format(_("魔法のバリアが%^sのテレポートを邪魔した。", @@ -1898,7 +1898,7 @@ void spell_RF6_TPORT(MONSTER_IDX m_idx, int TARGET_TYPE) if (TARGET_TYPE==MONSTER_TO_PLAYER) disturb(p_ptr, TRUE, TRUE); - if (teleport_barrier(m_idx)) + if (teleport_barrier(p_ptr, m_idx)) { if(see_monster(m_idx)) msg_format(_("魔法のバリアが%^sのテレポートを邪魔した。", diff --git a/src/realm-hex.c b/src/realm-hex.c index bc18f0699..f8385e419 100644 --- a/src/realm-hex.c +++ b/src/realm-hex.c @@ -290,13 +290,13 @@ void revenge_store(HIT_POINT dam) * @param m_idx 判定の対象となるモンスターID * @return 反テレポートの効果が適用されるならTRUEを返す */ -bool teleport_barrier(MONSTER_IDX m_idx) +bool teleport_barrier(player_type *caster_ptr, MONSTER_IDX m_idx) { - monster_type *m_ptr = &p_ptr->current_floor_ptr->m_list[m_idx]; + monster_type *m_ptr = &caster_ptr->current_floor_ptr->m_list[m_idx]; monster_race *r_ptr = &r_info[m_ptr->r_idx]; if (!hex_spelling(HEX_ANTI_TELE)) return FALSE; - if ((p_ptr->lev * 3 / 2) < randint1(r_ptr->level)) return FALSE; + if ((caster_ptr->lev * 3 / 2) < randint1(r_ptr->level)) return FALSE; return TRUE; } diff --git a/src/realm-hex.h b/src/realm-hex.h index ddf0d2281..2bba705b1 100644 --- a/src/realm-hex.h +++ b/src/realm-hex.h @@ -55,7 +55,7 @@ extern void check_hex(player_type *caster_ptr); extern bool hex_spell_fully(player_type *caster_ptr); 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 teleport_barrier(player_type *caster_ptr, 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); -- 2.11.0