From 68e4793d6e6ecc20a1fa8e22afeb1546994b744a Mon Sep 17 00:00:00 2001 From: Hourier Date: Mon, 13 Jan 2020 22:05:30 +0900 Subject: [PATCH] =?utf8?q?[Refactor]=20#38997=20curse=5Fequipment()=20?= =?utf8?q?=E3=81=ABplayer=5Ftype=20*=20=E5=BC=95=E6=95=B0=E3=82=92?= =?utf8?q?=E8=BF=BD=E5=8A=A0=20/=20Added=20player=5Ftype=20*=20argument=20?= =?utf8?q?to=20curse=5Fequipment()?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- src/monster-status.c | 2 +- src/object-curse.c | 7 ++++--- src/object-curse.h | 2 +- src/spells1.c | 8 ++++---- 4 files changed, 10 insertions(+), 9 deletions(-) diff --git a/src/monster-status.c b/src/monster-status.c index 9f26c4c38..85eb59d35 100644 --- a/src/monster-status.c +++ b/src/monster-status.c @@ -1169,7 +1169,7 @@ bool mon_take_hit(player_type *target_ptr, MONSTER_IDX m_idx, HIT_POINT dam, boo int count = 0; msg_format(_("%^sは恐ろしい血の呪いをあなたにかけた!", "%^s puts a terrible blood curse on you!"), m_name); - curse_equipment(100, 50); + curse_equipment(target_ptr, 100, 50); do { diff --git a/src/object-curse.c b/src/object-curse.c index 7191d9b94..9897f4949 100644 --- a/src/object-curse.c +++ b/src/object-curse.c @@ -38,17 +38,18 @@ BIT_FLAGS get_curse(int power, object_type *o_ptr) /*! * @brief 装備への呪い付加判定と付加処理 + * @param owner_ptr プレーヤーへの参照ポインタ * @param chance 呪いの基本確率 * @param heavy_chance さらに重い呪いとなる確率 * @return なし */ -void curse_equipment(PERCENTAGE chance, PERCENTAGE heavy_chance) +void curse_equipment(player_type *owner_ptr, PERCENTAGE chance, PERCENTAGE heavy_chance) { bool changed = FALSE; int curse_power = 0; BIT_FLAGS new_curse; BIT_FLAGS oflgs[TR_FLAG_SIZE]; - object_type *o_ptr = &p_ptr->inventory_list[INVEN_RARM + randint0(12)]; + object_type *o_ptr = &owner_ptr->inventory_list[INVEN_RARM + randint0(12)]; GAME_TEXT o_name[MAX_NLEN]; if (randint1(100) > chance) return; @@ -97,6 +98,6 @@ void curse_equipment(PERCENTAGE chance, PERCENTAGE heavy_chance) msg_format(_("悪意に満ちた黒いオーラが%sをとりまいた...", "There is a malignant black aura surrounding %s..."), o_name); o_ptr->feeling = FEEL_NONE; } - p_ptr->update |= (PU_BONUS); + owner_ptr->update |= (PU_BONUS); } diff --git a/src/object-curse.h b/src/object-curse.h index fb2b0b237..7fcd47b12 100644 --- a/src/object-curse.h +++ b/src/object-curse.h @@ -1,2 +1,2 @@ extern BIT_FLAGS get_curse(int power, object_type *o_ptr); -extern void curse_equipment(PERCENTAGE chance, PERCENTAGE heavy_chance); +extern void curse_equipment(player_type *owner_ptr, PERCENTAGE chance, PERCENTAGE heavy_chance); diff --git a/src/spells1.c b/src/spells1.c index a9a553fb7..19205069a 100644 --- a/src/spells1.c +++ b/src/spells1.c @@ -4965,7 +4965,7 @@ static bool project_p(MONSTER_IDX who, player_type *target_ptr, concptr who_name } else { - if (!CHECK_MULTISHADOW(target_ptr)) curse_equipment(15, 0); + if (!CHECK_MULTISHADOW(target_ptr)) curse_equipment(target_ptr, 15, 0); get_damage = take_hit(target_ptr, DAMAGE_ATTACK, dam, killer, monspell); } break; @@ -4981,7 +4981,7 @@ static bool project_p(MONSTER_IDX who, player_type *target_ptr, concptr who_name } else { - if (!CHECK_MULTISHADOW(target_ptr)) curse_equipment(25, MIN(rlev / 2 - 15, 5)); + if (!CHECK_MULTISHADOW(target_ptr)) curse_equipment(target_ptr, 25, MIN(rlev / 2 - 15, 5)); get_damage = take_hit(target_ptr, DAMAGE_ATTACK, dam, killer, monspell); } break; @@ -4997,7 +4997,7 @@ static bool project_p(MONSTER_IDX who, player_type *target_ptr, concptr who_name } else { - if (!CHECK_MULTISHADOW(target_ptr)) curse_equipment(33, MIN(rlev / 2 - 15, 15)); + if (!CHECK_MULTISHADOW(target_ptr)) curse_equipment(target_ptr, 33, MIN(rlev / 2 - 15, 15)); get_damage = take_hit(target_ptr, DAMAGE_ATTACK, dam, killer, monspell); } break; @@ -5032,7 +5032,7 @@ static bool project_p(MONSTER_IDX who, player_type *target_ptr, concptr who_name if (!CHECK_MULTISHADOW(target_ptr)) { msg_print(_("あなたは命が薄まっていくように感じた!", "You feel your life fade away!")); - curse_equipment(40, 20); + curse_equipment(target_ptr, 40, 20); } get_damage = take_hit(target_ptr, DAMAGE_ATTACK, dam, m_name, monspell); -- 2.11.0