From 684fb25c6141101112209bcfca46bb5bdeed2d37 Mon Sep 17 00:00:00 2001 From: Hourier Date: Mon, 20 Jul 2020 22:42:24 +0900 Subject: [PATCH] [Refactor] #40481 Separated cast_blue_ball_*() (others) from cast_learned_spell() --- src/blue-magic/blue-magic-breath.c | 2 +- src/blue-magic/blue-magic-caster.c | 71 +++++++++++++++++++++++++++++--------- 2 files changed, 56 insertions(+), 17 deletions(-) diff --git a/src/blue-magic/blue-magic-breath.c b/src/blue-magic/blue-magic-breath.c index 83a846423..a40d99b88 100644 --- a/src/blue-magic/blue-magic-breath.c +++ b/src/blue-magic/blue-magic-breath.c @@ -240,7 +240,7 @@ bool cast_blue_breath_nuke(player_type *caster_ptr, bmc_type *bmc_ptr) } /*! - * @brief + * @brief 分解のブレスの青魔法 * @param caster_ptr プレーヤーへの参照ポインタ * @param bmc_ptr 青魔法詠唱への参照ポインタ * @details 永久の刻は過ぎ去れリ. diff --git a/src/blue-magic/blue-magic-caster.c b/src/blue-magic/blue-magic-caster.c index 2daddd278..b805b51b3 100644 --- a/src/blue-magic/blue-magic-caster.c +++ b/src/blue-magic/blue-magic-caster.c @@ -157,6 +157,57 @@ bool cast_blue_ball_chaos(player_type *caster_ptr, bmc_type *bmc_ptr) } /*! + * @brief ウォーター・ボールの青魔法 + * @brief 分解のブレスの青魔法 + * @param caster_ptr プレーヤーへの参照ポインタ + * @param bmc_ptr 青魔法詠唱への参照ポインタ + * @details All my worries are blown away. + */ +bool cast_blue_ball_water(player_type *caster_ptr, bmc_type *bmc_ptr) +{ + if (!get_aim_dir(caster_ptr, &bmc_ptr->dir)) + return FALSE; + + msg_print(_("流れるような身振りをした。", "You gesture fluidly.")); + bmc_ptr->damage = monspell_bluemage_damage(caster_ptr, (MS_BALL_WATER), bmc_ptr->plev, DAM_ROLL); + fire_ball(caster_ptr, GF_WATER, bmc_ptr->dir, bmc_ptr->damage, 4); + return TRUE; +} + +bool cast_blue_ball_star_burst(player_type *caster_ptr, bmc_type *bmc_ptr) +{ + if (!get_aim_dir(caster_ptr, &bmc_ptr->dir)) + return FALSE; + + msg_print(_("スターバーストの呪文を念じた。", "You invoke a starburst.")); + bmc_ptr->damage = monspell_bluemage_damage(caster_ptr, (MS_STARBURST), bmc_ptr->plev, DAM_ROLL); + fire_ball(caster_ptr, GF_LITE, bmc_ptr->dir, bmc_ptr->damage, 4); + return TRUE; +} + +bool cast_blue_ball_dark_storm(player_type *caster_ptr, bmc_type *bmc_ptr) +{ + if (!get_aim_dir(caster_ptr, &bmc_ptr->dir)) + return FALSE; + + msg_print(_("暗黒の嵐の呪文を念じた。", "You invoke a darkness storm.")); + bmc_ptr->damage = monspell_bluemage_damage(caster_ptr, (MS_BALL_DARK), bmc_ptr->plev, DAM_ROLL); + fire_ball(caster_ptr, GF_DARK, bmc_ptr->dir, bmc_ptr->damage, 4); + return TRUE; +} + +bool cast_blue_ball_mana_storm(player_type *caster_ptr, bmc_type *bmc_ptr) +{ + if (!get_aim_dir(caster_ptr, &bmc_ptr->dir)) + return FALSE; + + msg_print(_("魔力の嵐の呪文を念じた。", "You invoke a mana storm.")); + bmc_ptr->damage = monspell_bluemage_damage(caster_ptr, (MS_BALL_MANA), bmc_ptr->plev, DAM_ROLL); + fire_ball(caster_ptr, GF_MANA, bmc_ptr->dir, bmc_ptr->damage, 4); + return TRUE; +} + +/*! * @brief 青魔法の発動 / * do_cmd_cast calls this function if the player's class is 'blue-mage'. * @param spell 発動するモンスター攻撃のID @@ -344,36 +395,24 @@ bool cast_learned_spell(player_type *caster_ptr, int spell, const bool success) break; case MS_BALL_WATER: - if (!get_aim_dir(caster_ptr, &bmc_ptr->dir)) + if (!cast_blue_ball_water(caster_ptr, bmc_ptr)) return FALSE; - msg_print(_("流れるような身振りをした。", "You gesture fluidly.")); - bmc_ptr->damage = monspell_bluemage_damage(caster_ptr, (MS_BALL_WATER), bmc_ptr->plev, DAM_ROLL); - fire_ball(caster_ptr, GF_WATER, bmc_ptr->dir, bmc_ptr->damage, 4); break; case MS_STARBURST: - if (!get_aim_dir(caster_ptr, &bmc_ptr->dir)) + if (!cast_blue_ball_star_burst(caster_ptr, bmc_ptr)) return FALSE; - msg_print(_("スターバーストの呪文を念じた。", "You invoke a starburst.")); - bmc_ptr->damage = monspell_bluemage_damage(caster_ptr, (MS_STARBURST), bmc_ptr->plev, DAM_ROLL); - fire_ball(caster_ptr, GF_LITE, bmc_ptr->dir, bmc_ptr->damage, 4); break; case MS_BALL_DARK: - if (!get_aim_dir(caster_ptr, &bmc_ptr->dir)) + if (!cast_blue_ball_dark_storm(caster_ptr, bmc_ptr)) return FALSE; - msg_print(_("暗黒の嵐の呪文を念じた。", "You invoke a darkness storm.")); - bmc_ptr->damage = monspell_bluemage_damage(caster_ptr, (MS_BALL_DARK), bmc_ptr->plev, DAM_ROLL); - fire_ball(caster_ptr, GF_DARK, bmc_ptr->dir, bmc_ptr->damage, 4); break; case MS_BALL_MANA: - if (!get_aim_dir(caster_ptr, &bmc_ptr->dir)) + if (!cast_blue_ball_mana(caster_ptr, bmc_ptr)) return FALSE; - msg_print(_("魔力の嵐の呪文を念じた。", "You invoke a mana storm.")); - bmc_ptr->damage = monspell_bluemage_damage(caster_ptr, (MS_BALL_MANA), bmc_ptr->plev, DAM_ROLL); - fire_ball(caster_ptr, GF_MANA, bmc_ptr->dir, bmc_ptr->damage, 4); break; case MS_DRAIN_MANA: if (!get_aim_dir(caster_ptr, &bmc_ptr->dir)) -- 2.11.0