From: Hourier Date: Sat, 2 May 2020 13:09:55 +0000 (+0900) Subject: [Refactor] #39963 Separated effect-monster-lite-dark.c/h from effect-monster-switcher.c X-Git-Url: http://git.osdn.net/view?p=hengband%2Fhengband.git;a=commitdiff_plain;h=460eb1db956853aa7ff5fe1a5c95ec05a43e28b7 [Refactor] #39963 Separated effect-monster-lite-dark.c/h from effect-monster-switcher.c --- diff --git a/Hengband_vcs2017/Hengband/Hengband.vcxproj b/Hengband_vcs2017/Hengband/Hengband.vcxproj index 3dec2faef..6856aada7 100644 --- a/Hengband_vcs2017/Hengband/Hengband.vcxproj +++ b/Hengband_vcs2017/Hengband/Hengband.vcxproj @@ -176,6 +176,7 @@ + @@ -353,6 +354,7 @@ + diff --git a/Hengband_vcs2017/Hengband/Hengband.vcxproj.filters b/Hengband_vcs2017/Hengband/Hengband.vcxproj.filters index 141179941..8edcba25d 100644 --- a/Hengband_vcs2017/Hengband/Hengband.vcxproj.filters +++ b/Hengband_vcs2017/Hengband/Hengband.vcxproj.filters @@ -733,6 +733,9 @@ effect + + effect + @@ -1478,6 +1481,9 @@ effect + + effect + diff --git a/src/Makefile.am b/src/Makefile.am index ed5f981ce..6158332c7 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -176,6 +176,7 @@ hengband_SOURCES = \ effect/effect-monster-domination.c effect/effect-monster-domination.h \ effect/effect-monster-oldies.c effect/effect-monster-oldies.h \ effect/effect-monster-charm.c effect/effect-monster-charm.h \ + effect/effect-monster-lite-dark.c effect/effect-monster-lite-dark.h \ effect/effect-monster-switcher.c effect/effect-monster-switcher.h \ effect/effect-player-util.h \ effect/effect-player-switcher.c effect/effect-player-switcher.h \ diff --git a/src/effect/effect-monster-lite-dark.c b/src/effect/effect-monster-lite-dark.c new file mode 100644 index 000000000..7d4c274ff --- /dev/null +++ b/src/effect/effect-monster-lite-dark.c @@ -0,0 +1,68 @@ +#include "angband.h" +#include "effect/effect-monster-util.h" +#include "effect/effect-monster-lite-dark.h" + +gf_switch_result effect_monster_lite_weak(player_type *caster_ptr, effect_monster_type *em_ptr) +{ + if (!em_ptr->dam) + { + em_ptr->skipped = TRUE; + return GF_SWITCH_CONTINUE; + } + + if ((em_ptr->r_ptr->flags3 & RF3_HURT_LITE) == 0) + { + em_ptr->dam = 0; + return GF_SWITCH_CONTINUE; + } + + if (em_ptr->seen) em_ptr->obvious = TRUE; + + if (is_original_ap_and_seen(caster_ptr, em_ptr->m_ptr)) + em_ptr->r_ptr->r_flags3 |= (RF3_HURT_LITE); + + em_ptr->note = _("は光に身をすくめた!", " cringes from the light!"); + em_ptr->note_dies = _("は光を受けてしぼんでしまった!", " shrivels away in the light!"); + return GF_SWITCH_CONTINUE; +} + + +gf_switch_result effect_monster_lite(player_type *caster_ptr, effect_monster_type *em_ptr) +{ + if (em_ptr->seen) em_ptr->obvious = TRUE; + + if (em_ptr->r_ptr->flagsr & RFR_RES_LITE) + { + em_ptr->note = _("には耐性がある!", " resists!"); + em_ptr->dam *= 2; em_ptr->dam /= (randint1(6) + 6); + if (is_original_ap_and_seen(caster_ptr, em_ptr->m_ptr)) + em_ptr->r_ptr->r_flagsr |= (RFR_RES_LITE); + } + else if (em_ptr->r_ptr->flags3 & (RF3_HURT_LITE)) + { + if (is_original_ap_and_seen(caster_ptr, em_ptr->m_ptr)) + em_ptr->r_ptr->r_flags3 |= (RF3_HURT_LITE); + + em_ptr->note = _("は光に身をすくめた!", " cringes from the light!"); + em_ptr->note_dies = _("は光を受けてしぼんでしまった!", " shrivels away in the light!"); + em_ptr->dam *= 2; + } + + return GF_SWITCH_CONTINUE; +} + + +gf_switch_result effect_monster_dark(player_type *caster_ptr, effect_monster_type *em_ptr) +{ + if (em_ptr->seen) em_ptr->obvious = TRUE; + + if ((em_ptr->r_ptr->flagsr & RFR_RES_DARK) == 0) + return GF_SWITCH_CONTINUE; + + em_ptr->note = _("には耐性がある!", " resists!"); + em_ptr->dam *= 2; em_ptr->dam /= (randint1(6) + 6); + if (is_original_ap_and_seen(caster_ptr, em_ptr->m_ptr)) + em_ptr->r_ptr->r_flagsr |= (RFR_RES_DARK); + + return GF_SWITCH_CONTINUE; +} diff --git a/src/effect/effect-monster-lite-dark.h b/src/effect/effect-monster-lite-dark.h new file mode 100644 index 000000000..fb314cb8f --- /dev/null +++ b/src/effect/effect-monster-lite-dark.h @@ -0,0 +1,5 @@ +#pragma once + +gf_switch_result effect_monster_lite_weak(player_type *caster_ptr, effect_monster_type *em_ptr); +gf_switch_result effect_monster_lite(player_type *caster_ptr, effect_monster_type *em_ptr); +gf_switch_result effect_monster_dark(player_type *caster_ptr, effect_monster_type *em_ptr); diff --git a/src/effect/effect-monster-switcher.c b/src/effect/effect-monster-switcher.c index 4103b719f..9e621d15e 100644 --- a/src/effect/effect-monster-switcher.c +++ b/src/effect/effect-monster-switcher.c @@ -23,6 +23,7 @@ #include "effect/effect-monster-domination.h" #include "effect/effect-monster-oldies.h" #include "effect/effect-monster-charm.h" +#include "effect/effect-monster-lite-dark.h" gf_switch_result effect_monster_hypodynamia(player_type *caster_ptr, effect_monster_type *em_ptr) { @@ -124,31 +125,6 @@ gf_switch_result effect_monster_stun(effect_monster_type *em_ptr) } -gf_switch_result effect_monster_lite_weak(player_type *caster_ptr, effect_monster_type *em_ptr) -{ - if (!em_ptr->dam) - { - em_ptr->skipped = TRUE; - return GF_SWITCH_CONTINUE; - } - - if ((em_ptr->r_ptr->flags3 & RF3_HURT_LITE) == 0) - { - em_ptr->dam = 0; - return GF_SWITCH_CONTINUE; - } - - if (em_ptr->seen) em_ptr->obvious = TRUE; - - if (is_original_ap_and_seen(caster_ptr, em_ptr->m_ptr)) - em_ptr->r_ptr->r_flags3 |= (RF3_HURT_LITE); - - em_ptr->note = _("は光に身をすくめた!", " cringes from the light!"); - em_ptr->note_dies = _("は光を受けてしぼんでしまった!", " shrivels away in the light!"); - return GF_SWITCH_CONTINUE; -} - - /*! * @brief 魔法の効果によって様々なメッセーを出力したり与えるダメージの増減を行ったりする * @param em_ptr モンスター効果構造体への参照ポインタ @@ -265,37 +241,9 @@ gf_switch_result switch_effects_monster(player_type *caster_ptr, effect_monster_ case GF_LITE_WEAK: return effect_monster_lite_weak(caster_ptr, em_ptr); case GF_LITE: - { - if (em_ptr->seen) em_ptr->obvious = TRUE; - - if (em_ptr->r_ptr->flagsr & RFR_RES_LITE) - { - em_ptr->note = _("には耐性がある!", " resists!"); - em_ptr->dam *= 2; em_ptr->dam /= (randint1(6) + 6); - if (is_original_ap_and_seen(caster_ptr, em_ptr->m_ptr)) em_ptr->r_ptr->r_flagsr |= (RFR_RES_LITE); - } - else if (em_ptr->r_ptr->flags3 & (RF3_HURT_LITE)) - { - if (is_original_ap_and_seen(caster_ptr, em_ptr->m_ptr)) em_ptr->r_ptr->r_flags3 |= (RF3_HURT_LITE); - em_ptr->note = _("は光に身をすくめた!", " cringes from the light!"); - em_ptr->note_dies = _("は光を受けてしぼんでしまった!", " shrivels away in the light!"); - em_ptr->dam *= 2; - } - break; - } + return effect_monster_lite(caster_ptr, em_ptr); case GF_DARK: - { - if (em_ptr->seen) em_ptr->obvious = TRUE; - - if (em_ptr->r_ptr->flagsr & RFR_RES_DARK) - { - em_ptr->note = _("には耐性がある!", " resists!"); - em_ptr->dam *= 2; em_ptr->dam /= (randint1(6) + 6); - if (is_original_ap_and_seen(caster_ptr, em_ptr->m_ptr)) em_ptr->r_ptr->r_flagsr |= (RFR_RES_DARK); - } - - break; - } + return effect_monster_dark(caster_ptr, em_ptr); case GF_KILL_WALL: { if (em_ptr->r_ptr->flags3 & (RF3_HURT_ROCK))