OSDN Git Service

[Refactor] #40514 calc_vuln_fire_rate() を calc_fire_damage_rate() に改名して耐性処理反映. /...
authordeskull <deskull@users.sourceforge.jp>
Sat, 12 Sep 2020 16:17:46 +0000 (01:17 +0900)
committerdeskull <deskull@users.sourceforge.jp>
Sat, 12 Sep 2020 16:17:46 +0000 (01:17 +0900)
src/effect/effect-player-resist-hurt.c
src/object/warning.c
src/player/player-damage.c
src/player/player-status-resist.c
src/player/player-status-resist.h

index df66710..292349a 100644 (file)
@@ -366,7 +366,7 @@ void effect_player_lite(player_type *target_ptr, effect_player_type *ep_ptr)
         (void)set_blind(target_ptr, target_ptr->blind + randint1(5) + 2);
     }
 
-    ep_ptr->dam = ep_ptr->dam * calc_vuln_fire_rate(target_ptr) / 100;
+    ep_ptr->dam = ep_ptr->dam * calc_fire_damage_rate(target_ptr) / 100;
 
     if (is_specific_player_race(target_ptr, RACE_VAMPIRE) || (target_ptr->mimic_form == MIMIC_VAMPIRE)) {
         if (!check_multishadow(target_ptr))
index 2996f79..0c32e01 100644 (file)
@@ -133,12 +133,7 @@ static void spell_damcalc(player_type *target_ptr, monster_type *m_ptr, EFFECT_I
             ignore_wraith_form = TRUE;
             break;
         }
-        dam = dam * calc_vuln_fire_rate(target_ptr) / 100;
-        if (target_ptr->resist_fire)
-            dam = (dam + 2) / 3;
-        if (is_oppose_fire(target_ptr))
-            dam = (dam + 2) / 3;
-        break;
+        dam = dam * calc_fire_damage_rate(target_ptr) / 100;
 
     case GF_PSY_SPEAR:
         ignore_wraith_form = TRUE;
index a815a1d..2ba2c18 100644 (file)
@@ -237,14 +237,7 @@ HIT_POINT fire_dam(player_type *creature_ptr, HIT_POINT dam, concptr kb_str, int
         return 0;
     }
 
-    /* Vulnerability (Ouch!) */
-    dam = dam * calc_vuln_fire_rate(creature_ptr) / 100;
-
-    /* Resist the damage */
-    if (creature_ptr->resist_fire)
-        dam = (dam + 2) / 3;
-    if (double_resist)
-        dam = (dam + 2) / 3;
+    dam = dam * calc_fire_damage_rate(creature_ptr) / 100;
 
     if (aura || !check_multishadow(creature_ptr)) {
         if ((!(double_resist || creature_ptr->resist_fire)) && one_in_(HURT_CHANCE))
index fa3f1bf..1c4a3a2 100644 (file)
@@ -79,7 +79,7 @@ PERCENTAGE calc_elec_damage_rate(player_type *creature_ptr)
     return per;
 }
 
-PERCENTAGE calc_vuln_fire_rate(player_type *creature_ptr)
+PERCENTAGE calc_fire_damage_rate(player_type *creature_ptr)
 {
     PERCENTAGE per = 100;
     int i;
@@ -93,6 +93,13 @@ PERCENTAGE calc_vuln_fire_rate(player_type *creature_ptr)
             }
         }
     }
+
+    /* Resist the damage */
+    if (creature_ptr->resist_fire)
+        per = (per + 2) / 3;
+    if (is_oppose_fire(creature_ptr))
+        per = (per + 2) / 3;
+
     return per;
 }
 
index 92dfb85..9e74549 100644 (file)
@@ -2,6 +2,6 @@
 
 PERCENTAGE calc_acid_damage_rate(player_type *creature_ptr);
 PERCENTAGE calc_elec_damage_rate(player_type *creature_ptr);
-PERCENTAGE calc_vuln_fire_rate(player_type *creature_ptr);
+PERCENTAGE calc_fire_damage_rate(player_type *creature_ptr);
 PERCENTAGE calc_vuln_cold_rate(player_type *creature_ptr);
 PERCENTAGE calc_vuln_lite_rate(player_type *creature_ptr);