OSDN Git Service

Changed to match the For2.2.2-Refactoring-Cocoa2 branch. Put se_maoudamashii_voice_m...
[hengbandforosx/hengbandosx.git] / src / player-damage.c
index 05e2ac0..393ebac 100644 (file)
@@ -1,5 +1,9 @@
 #include "angband.h"
 #include "player-damage.h"
+#include "artifact.h"
+#include "object-hook.h"
+#include "object-broken.h"
+#include "player-status.h"
 
 
 /*!
@@ -254,7 +258,7 @@ int inven_damage(inven_func typ, int perc)
        INVENTORY_IDX i;
        int j, k, amt;
        object_type *o_ptr;
-       char o_name[MAX_NLEN];
+       GAME_TEXT o_name[MAX_NLEN];
 
        if (CHECK_MULTISHADOW()) return 0;
 
@@ -334,16 +338,16 @@ int inven_damage(inven_func typ, int perc)
 /*!
 * @brief 酸攻撃による装備のAC劣化処理 /
 * Acid has hit the player, attempt to affect some armor.
-* @return ACが実際に劣化したらTRUEを返す
+* @return 装備による軽減があったならTRUEを返す
 * @details
 * Note that the "base armor" of an object never changes.
 * If any armor is damaged (or resists), the player takes less damage.
 */
-static bool minus_ac(void)
+static bool acid_minus_ac(void)
 {
        object_type *o_ptr = NULL;
        BIT_FLAGS flgs[TR_FLAG_SIZE];
-       char o_name[MAX_NLEN];
+       GAME_TEXT o_name[MAX_NLEN];
 
        /* Pick a (possibly empty) inventory slot */
        switch (randint1(7))
@@ -357,17 +361,17 @@ static bool minus_ac(void)
        case 7: o_ptr = &inventory[INVEN_FEET]; break;
        }
 
-       /* Nothing to damage */
        if (!o_ptr->k_idx) return (FALSE);
-
        if (!object_is_armour(o_ptr)) return (FALSE);
 
-       /* No damage left to be done */
-       if (o_ptr->ac + o_ptr->to_a <= 0) return (FALSE);
        object_desc(o_name, o_ptr, (OD_OMIT_PREFIX | OD_NAME_ONLY));
-
-       /* Extract the flags */
        object_flags(o_ptr, flgs);
+       /* No damage left to be done */
+       if (o_ptr->ac + o_ptr->to_a <= 0)
+       {
+               msg_format(_("%sは既にボロボロだ!", "Your %s is already fully corroded!"), o_name);
+               return (FALSE);
+       }
 
        /* Object resists */
        if (have_flag(flgs, TR_IGNORE_ACID))
@@ -376,7 +380,7 @@ static bool minus_ac(void)
                return (TRUE);
        }
 
-       msg_format(_("%sがダメージを受けた!", "Your %s is damaged!"), o_name);
+       msg_format(_("%sが酸で腐食した!", "Your %s is corroded!"), o_name);
 
        /* Damage the item */
        o_ptr->to_a--;
@@ -401,7 +405,7 @@ static bool minus_ac(void)
 * @param aura オーラよるダメージが原因ならばTRUE
 * @return 修正HPダメージ量
 */
-HIT_POINT acid_dam(HIT_POINT dam, cptr kb_str, int monspell, bool aura)
+HIT_POINT acid_dam(HIT_POINT dam, concptr kb_str, int monspell, bool aura)
 {
        HIT_POINT get_damage;
        int inv = (dam < 30) ? 1 : (dam < 60) ? 2 : 3;
@@ -429,7 +433,7 @@ HIT_POINT acid_dam(HIT_POINT dam, cptr kb_str, int monspell, bool aura)
                        (void)do_dec_stat(A_CHR);
 
                /* If any armor gets hit, defend the player */
-               if (minus_ac()) dam = (dam + 1) / 2;
+               if (acid_minus_ac()) dam = (dam + 1) / 2;
        }
 
        get_damage = take_hit(aura ? DAMAGE_NOESCAPE : DAMAGE_ATTACK, dam, kb_str, monspell);
@@ -450,7 +454,7 @@ HIT_POINT acid_dam(HIT_POINT dam, cptr kb_str, int monspell, bool aura)
 * @param aura オーラよるダメージが原因ならばTRUE
 * @return 修正HPダメージ量
 */
-HIT_POINT elec_dam(HIT_POINT dam, cptr kb_str, int monspell, bool aura)
+HIT_POINT elec_dam(HIT_POINT dam, concptr kb_str, int monspell, bool aura)
 {
        HIT_POINT get_damage;
        int inv = (dam < 30) ? 1 : (dam < 60) ? 2 : 3;
@@ -498,7 +502,7 @@ HIT_POINT elec_dam(HIT_POINT dam, cptr kb_str, int monspell, bool aura)
 * @param aura オーラよるダメージが原因ならばTRUE
 * @return 修正HPダメージ量
 */
-HIT_POINT fire_dam(HIT_POINT dam, cptr kb_str, int monspell, bool aura)
+HIT_POINT fire_dam(HIT_POINT dam, concptr kb_str, int monspell, bool aura)
 {
        HIT_POINT get_damage;
        int inv = (dam < 30) ? 1 : (dam < 60) ? 2 : 3;
@@ -546,7 +550,7 @@ HIT_POINT fire_dam(HIT_POINT dam, cptr kb_str, int monspell, bool aura)
 * @param aura オーラよるダメージが原因ならばTRUE
 * @return 修正HPダメージ量
 */
-HIT_POINT cold_dam(HIT_POINT dam, cptr kb_str, int monspell, bool aura)
+HIT_POINT cold_dam(HIT_POINT dam, concptr kb_str, int monspell, bool aura)
 {
        HIT_POINT get_damage;
        int inv = (dam < 30) ? 1 : (dam < 60) ? 2 : 3;