OSDN Git Service

[Refactor] #39963 Separated several effect_player_*() functions from switch_effects_p...
authorHourier <hourier@users.sourceforge.jp>
Sun, 3 May 2020 07:15:09 +0000 (16:15 +0900)
committerHourier <hourier@users.sourceforge.jp>
Sun, 3 May 2020 07:15:09 +0000 (16:15 +0900)
src/effect/effect-player-switcher.c

index 1617727..151bc75 100644 (file)
@@ -271,6 +271,91 @@ void effect_player_sound(player_type *target_ptr, effect_player_type *ep_ptr)
 }
 
 
+void effect_player_confusion(player_type *target_ptr, effect_player_type *ep_ptr)
+{
+       if (target_ptr->blind) msg_print(_("\89½\82©\8d¬\97\90\82·\82é\82à\82Ì\82Å\8dU\8c\82\82³\82ê\82½\81I", "You are hit by something puzzling!"));
+       if (target_ptr->resist_conf)
+       {
+               ep_ptr->dam *= 5; ep_ptr->dam /= (randint1(4) + 7);
+       }
+       else if (!CHECK_MULTISHADOW(target_ptr))
+       {
+               (void)set_confused(target_ptr, target_ptr->confused + randint1(20) + 10);
+       }
+
+       ep_ptr->get_damage = take_hit(target_ptr, DAMAGE_ATTACK, ep_ptr->dam, ep_ptr->killer, ep_ptr->monspell);
+}
+
+
+void effect_player_disenchant(player_type *target_ptr, effect_player_type *ep_ptr)
+{
+       if (target_ptr->blind) msg_print(_("\89½\82©\82³\82¦\82È\82¢\82à\82Ì\82Å\8dU\8c\82\82³\82ê\82½\81I", "You are hit by something static!"));
+       if (target_ptr->resist_disen)
+       {
+               ep_ptr->dam *= 6; ep_ptr->dam /= (randint1(4) + 7);
+       }
+       else if (!CHECK_MULTISHADOW(target_ptr))
+       {
+               (void)apply_disenchant(target_ptr, 0);
+       }
+
+       ep_ptr->get_damage = take_hit(target_ptr, DAMAGE_ATTACK, ep_ptr->dam, ep_ptr->killer, ep_ptr->monspell);
+}
+
+
+void effect_player_nexus(player_type *target_ptr, effect_player_type *ep_ptr)
+{
+       if (target_ptr->blind) msg_print(_("\89½\82©\8aï\96­\82È\82à\82Ì\82Å\8dU\8c\82\82³\82ê\82½\81I", "You are hit by something strange!"));
+       if (target_ptr->resist_nexus)
+       {
+               ep_ptr->dam *= 6; ep_ptr->dam /= (randint1(4) + 7);
+       }
+       else if (!CHECK_MULTISHADOW(target_ptr))
+       {
+               apply_nexus(ep_ptr->m_ptr, target_ptr);
+       }
+
+       ep_ptr->get_damage = take_hit(target_ptr, DAMAGE_ATTACK, ep_ptr->dam, ep_ptr->killer, ep_ptr->monspell);
+}
+
+void effect_player_force(player_type *target_ptr, effect_player_type *ep_ptr)
+{
+       if (target_ptr->blind) msg_print(_("\89^\93®\83G\83l\83\8b\83M\81[\82Å\8dU\8c\82\82³\82ê\82½\81I", "You are hit by kinetic force!"));
+       if (!target_ptr->resist_sound && !CHECK_MULTISHADOW(target_ptr))
+       {
+               (void)set_stun(target_ptr, target_ptr->stun + randint1(20));
+       }
+
+       ep_ptr->get_damage = take_hit(target_ptr, DAMAGE_ATTACK, ep_ptr->dam, ep_ptr->killer, ep_ptr->monspell);
+}
+
+
+void effect_player_rocket(player_type *target_ptr, effect_player_type *ep_ptr)
+{
+       if (target_ptr->blind) msg_print(_("\94\9a\94­\82ª\82 \82Á\82½\81I", "There is an explosion!"));
+       if (!target_ptr->resist_sound && !CHECK_MULTISHADOW(target_ptr))
+       {
+               (void)set_stun(target_ptr, target_ptr->stun + randint1(20));
+       }
+
+       if (target_ptr->resist_shard)
+       {
+               ep_ptr->dam /= 2;
+       }
+       else if (!CHECK_MULTISHADOW(target_ptr))
+       {
+               (void)set_cut(target_ptr, target_ptr->cut + (ep_ptr->dam / 2));
+       }
+
+       if (!target_ptr->resist_shard || one_in_(12))
+       {
+               inventory_damage(target_ptr, set_cold_destroy, 3);
+       }
+
+       ep_ptr->get_damage = take_hit(target_ptr, DAMAGE_ATTACK, ep_ptr->dam, ep_ptr->killer, ep_ptr->monspell);
+}
+
+
 /*!
  * @brief \96\82\96@\82Ì\8cø\89Ê\82É\82æ\82Á\82Ä\97l\81X\82È\83\81\83b\83Z\81[\82ð\8fo\97Í\82µ\82½\82è\97^\82¦\82é\83_\83\81\81[\83W\82Ì\91\9d\8c¸\82ð\8ds\82Á\82½\82è\82·\82é
  * @param target_ptr \83v\83\8c\81[\83\84\81[\82Ö\82Ì\8eQ\8fÆ\83|\83C\83\93\83^
@@ -330,84 +415,19 @@ void switch_effects_player(player_type *target_ptr, effect_player_type *ep_ptr)
                effect_player_sound(target_ptr, ep_ptr);
                return;
        case GF_CONFUSION:
-       {
-               if (target_ptr->blind) msg_print(_("\89½\82©\8d¬\97\90\82·\82é\82à\82Ì\82Å\8dU\8c\82\82³\82ê\82½\81I", "You are hit by something puzzling!"));
-               if (target_ptr->resist_conf)
-               {
-                       ep_ptr->dam *= 5; ep_ptr->dam /= (randint1(4) + 7);
-               }
-               else if (!CHECK_MULTISHADOW(target_ptr))
-               {
-                       (void)set_confused(target_ptr, target_ptr->confused + randint1(20) + 10);
-               }
-               ep_ptr->get_damage = take_hit(target_ptr, DAMAGE_ATTACK, ep_ptr->dam, ep_ptr->killer, ep_ptr->monspell);
-               break;
-       }
+               effect_player_confusion(target_ptr, ep_ptr);
+               return;
        case GF_DISENCHANT:
-       {
-               if (target_ptr->blind) msg_print(_("\89½\82©\82³\82¦\82È\82¢\82à\82Ì\82Å\8dU\8c\82\82³\82ê\82½\81I", "You are hit by something static!"));
-               if (target_ptr->resist_disen)
-               {
-                       ep_ptr->dam *= 6; ep_ptr->dam /= (randint1(4) + 7);
-               }
-               else if (!CHECK_MULTISHADOW(target_ptr))
-               {
-                       (void)apply_disenchant(target_ptr, 0);
-               }
-               ep_ptr->get_damage = take_hit(target_ptr, DAMAGE_ATTACK, ep_ptr->dam, ep_ptr->killer, ep_ptr->monspell);
-               break;
-       }
+               effect_player_disenchant(target_ptr, ep_ptr);
+               return;
        case GF_NEXUS:
-       {
-               if (target_ptr->blind) msg_print(_("\89½\82©\8aï\96­\82È\82à\82Ì\82Å\8dU\8c\82\82³\82ê\82½\81I", "You are hit by something strange!"));
-               if (target_ptr->resist_nexus)
-               {
-                       ep_ptr->dam *= 6; ep_ptr->dam /= (randint1(4) + 7);
-               }
-               else if (!CHECK_MULTISHADOW(target_ptr))
-               {
-                       apply_nexus(ep_ptr->m_ptr, target_ptr);
-               }
-
-               ep_ptr->get_damage = take_hit(target_ptr, DAMAGE_ATTACK, ep_ptr->dam, ep_ptr->killer, ep_ptr->monspell);
-               break;
-       }
+               effect_player_nexus(target_ptr, ep_ptr);
+               return;
        case GF_FORCE:
-       {
-               if (target_ptr->blind) msg_print(_("\89^\93®\83G\83l\83\8b\83M\81[\82Å\8dU\8c\82\82³\82ê\82½\81I", "You are hit by kinetic force!"));
-               if (!target_ptr->resist_sound && !CHECK_MULTISHADOW(target_ptr))
-               {
-                       (void)set_stun(target_ptr, target_ptr->stun + randint1(20));
-               }
-
-               ep_ptr->get_damage = take_hit(target_ptr, DAMAGE_ATTACK, ep_ptr->dam, ep_ptr->killer, ep_ptr->monspell);
-               break;
-       }
+               effect_player_force(target_ptr, ep_ptr);
+               return;
        case GF_ROCKET:
-       {
-               if (target_ptr->blind) msg_print(_("\94\9a\94­\82ª\82 \82Á\82½\81I", "There is an explosion!"));
-               if (!target_ptr->resist_sound && !CHECK_MULTISHADOW(target_ptr))
-               {
-                       (void)set_stun(target_ptr, target_ptr->stun + randint1(20));
-               }
-
-               if (target_ptr->resist_shard)
-               {
-                       ep_ptr->dam /= 2;
-               }
-               else if (!CHECK_MULTISHADOW(target_ptr))
-               {
-                       (void)set_cut(target_ptr, target_ptr->cut + (ep_ptr->dam / 2));
-               }
-
-               if (!target_ptr->resist_shard || one_in_(12))
-               {
-                       inventory_damage(target_ptr, set_cold_destroy, 3);
-               }
-
-               ep_ptr->get_damage = take_hit(target_ptr, DAMAGE_ATTACK, ep_ptr->dam, ep_ptr->killer, ep_ptr->monspell);
-               break;
-       }
+               effect_player_rocket(target_ptr, ep_ptr);
        case GF_INERTIAL:
        {
                if (target_ptr->blind) msg_print(_("\89½\82©\92x\82¢\82à\82Ì\82Å\8dU\8c\82\82³\82ê\82½\81I", "You are hit by something slow!"));