OSDN Git Service

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

index 701f7d5..2996f79 100644 (file)
@@ -93,11 +93,7 @@ static void spell_damcalc(player_type *target_ptr, monster_type *m_ptr, EFFECT_I
             ignore_wraith_form = TRUE;
             break;
         }
-        dam = dam * calc_vuln_elec_rate(target_ptr) / 100;
-        if (target_ptr->resist_elec)
-            dam = (dam + 2) / 3;
-        if (is_oppose_elec(target_ptr))
-            dam = (dam + 2) / 3;
+        dam = dam * calc_elec_damage_rate(target_ptr) / 100;
         break;
 
     case GF_POIS:
index 242cf99..a815a1d 100644 (file)
@@ -199,14 +199,7 @@ HIT_POINT elec_dam(player_type *creature_ptr, HIT_POINT dam, concptr kb_str, int
         return 0;
     }
 
-    /* Vulnerability (Ouch!) */
-    dam = dam * calc_vuln_elec_rate(creature_ptr) / 100;
-
-    /* Resist the damage */
-    if (creature_ptr->resist_elec)
-        dam = (dam + 2) / 3;
-    if (double_resist)
-        dam = (dam + 2) / 3;
+    dam = dam * calc_elec_damage_rate(creature_ptr) / 100;
 
     if (aura || !check_multishadow(creature_ptr)) {
         if ((!(double_resist || creature_ptr->resist_elec)) && one_in_(HURT_CHANCE))
index 4780ce0..fa3f1bf 100644 (file)
@@ -56,7 +56,7 @@ PERCENTAGE calc_acid_damage_rate(player_type *creature_ptr)
 
 }
 
-PERCENTAGE calc_vuln_elec_rate(player_type *creature_ptr)
+PERCENTAGE calc_elec_damage_rate(player_type *creature_ptr)
 {
     PERCENTAGE per = 100;
     int i;
@@ -70,6 +70,12 @@ PERCENTAGE calc_vuln_elec_rate(player_type *creature_ptr)
             }
         }
     }
+
+    if (creature_ptr->resist_elec)
+        per = (per + 2) / 3;
+    if (is_oppose_elec(creature_ptr))
+        per = (per + 2) / 3;
+
     return per;
 }
 
index 1775467..92dfb85 100644 (file)
@@ -1,7 +1,7 @@
 #include "player/player-status.h"
 
 PERCENTAGE calc_acid_damage_rate(player_type *creature_ptr);
-PERCENTAGE calc_vuln_elec_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_vuln_cold_rate(player_type *creature_ptr);
 PERCENTAGE calc_vuln_lite_rate(player_type *creature_ptr);