OSDN Git Service

[Refactor] #39963 Separated effect_player_poison() and effect_player_nuke() from...
authorHourier <hourier@users.sourceforge.jp>
Sun, 3 May 2020 05:36:05 +0000 (14:36 +0900)
committerHourier <hourier@users.sourceforge.jp>
Sun, 3 May 2020 05:36:05 +0000 (14:36 +0900)
src/effect/effect-player-switcher.c

index 66d1c83..9add4f8 100644 (file)
@@ -23,6 +23,53 @@ void effect_player_elements(player_type *target_ptr, effect_player_type *ep_ptr,
 }
 
 
+void effect_player_poison(player_type *target_ptr, effect_player_type *ep_ptr)
+{
+       bool double_resist = is_oppose_pois(target_ptr);
+       if (target_ptr->blind) msg_print(_("\93Å\82Å\8dU\8c\82\82³\82ê\82½\81I", "You are hit by poison!"));
+
+       if (target_ptr->resist_pois) ep_ptr->dam = (ep_ptr->dam + 2) / 3;
+       if (double_resist) ep_ptr->dam = (ep_ptr->dam + 2) / 3;
+
+       if ((!(double_resist || target_ptr->resist_pois)) && one_in_(HURT_CHANCE) && !CHECK_MULTISHADOW(target_ptr))
+       {
+               do_dec_stat(target_ptr, A_CON);
+       }
+
+       ep_ptr->get_damage = take_hit(target_ptr, DAMAGE_ATTACK, ep_ptr->dam, ep_ptr->killer, ep_ptr->monspell);
+
+       if (!(double_resist || target_ptr->resist_pois) && !CHECK_MULTISHADOW(target_ptr))
+               set_poisoned(target_ptr, target_ptr->poisoned + randint0(ep_ptr->dam) + 10);
+}
+
+
+void effect_player_nuke(player_type *target_ptr, effect_player_type *ep_ptr)
+{
+       bool double_resist = is_oppose_pois(target_ptr);
+       if (target_ptr->blind) msg_print(_("\95ú\8eË\94\\82Å\8dU\8c\82\82³\82ê\82½\81I", "You are hit by radiation!"));
+
+       if (target_ptr->resist_pois) ep_ptr->dam = (2 * ep_ptr->dam + 2) / 5;
+       if (double_resist) ep_ptr->dam = (2 * ep_ptr->dam + 2) / 5;
+
+       ep_ptr->get_damage = take_hit(target_ptr, DAMAGE_ATTACK, ep_ptr->dam, ep_ptr->killer, ep_ptr->monspell);
+       if ((double_resist || target_ptr->resist_pois) || CHECK_MULTISHADOW(target_ptr))
+               return;
+
+       set_poisoned(target_ptr, target_ptr->poisoned + randint0(ep_ptr->dam) + 10);
+       if (one_in_(5)) /* 6 */
+       {
+               msg_print(_("\8aï\8c`\93I\82È\95Ï\90g\82ð\90\8b\82°\82½\81I", "You undergo a freakish metamorphosis!"));
+               if (one_in_(4)) /* 4 */
+                       do_poly_self(target_ptr);
+               else
+                       status_shuffle(target_ptr);
+       }
+
+       if (one_in_(6))
+               inventory_damage(target_ptr, set_acid_destroy, 2);
+}
+
+
 /*!
  * @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^
@@ -46,54 +93,11 @@ void switch_effects_player(player_type *target_ptr, effect_player_type *ep_ptr)
                effect_player_elements(target_ptr, ep_ptr, _("\93d\8c\82\82Å\8dU\8c\82\82³\82ê\82½\81I", "You are hit by lightning!"), elec_dam);
                return;
        case GF_POIS:
-       {
-               bool double_resist = is_oppose_pois(target_ptr);
-               if (target_ptr->blind) msg_print(_("\93Å\82Å\8dU\8c\82\82³\82ê\82½\81I", "You are hit by poison!"));
-
-               if (target_ptr->resist_pois) ep_ptr->dam = (ep_ptr->dam + 2) / 3;
-               if (double_resist) ep_ptr->dam = (ep_ptr->dam + 2) / 3;
-
-               if ((!(double_resist || target_ptr->resist_pois)) && one_in_(HURT_CHANCE) && !CHECK_MULTISHADOW(target_ptr))
-               {
-                       do_dec_stat(target_ptr, A_CON);
-               }
-
-               ep_ptr->get_damage = take_hit(target_ptr, DAMAGE_ATTACK, ep_ptr->dam, ep_ptr->killer, ep_ptr->monspell);
-
-               if (!(double_resist || target_ptr->resist_pois) && !CHECK_MULTISHADOW(target_ptr))
-                       set_poisoned(target_ptr, target_ptr->poisoned + randint0(ep_ptr->dam) + 10);
-
-               break;
-       }
+               effect_player_poison(target_ptr, ep_ptr);
+               return;
        case GF_NUKE:
-       {
-               bool double_resist = is_oppose_pois(target_ptr);
-               if (target_ptr->blind) msg_print(_("\95ú\8eË\94\\82Å\8dU\8c\82\82³\82ê\82½\81I", "You are hit by radiation!"));
-
-               if (target_ptr->resist_pois) ep_ptr->dam = (2 * ep_ptr->dam + 2) / 5;
-               if (double_resist) ep_ptr->dam = (2 * ep_ptr->dam + 2) / 5;
-               ep_ptr->get_damage = take_hit(target_ptr, DAMAGE_ATTACK, ep_ptr->dam, ep_ptr->killer, ep_ptr->monspell);
-               if ((double_resist || target_ptr->resist_pois) || CHECK_MULTISHADOW(target_ptr))
-                       break;
-
-               set_poisoned(target_ptr, target_ptr->poisoned + randint0(ep_ptr->dam) + 10);
-
-               if (one_in_(5)) /* 6 */
-               {
-                       msg_print(_("\8aï\8c`\93I\82È\95Ï\90g\82ð\90\8b\82°\82½\81I", "You undergo a freakish metamorphosis!"));
-                       if (one_in_(4)) /* 4 */
-                               do_poly_self(target_ptr);
-                       else
-                               status_shuffle(target_ptr);
-               }
-
-               if (one_in_(6))
-               {
-                       inventory_damage(target_ptr, set_acid_destroy, 2);
-               }
-
-               break;
-       }
+               effect_player_nuke(target_ptr, ep_ptr);
+               return;
        case GF_MISSILE:
        {
                if (target_ptr->blind) msg_print(_("\89½\82©\82Å\8dU\8c\82\82³\82ê\82½\81I", "You are hit by something!"));