From 577a67eed110384d77b8d12e4a15f55a845c71cf Mon Sep 17 00:00:00 2001 From: Deskull Date: Fri, 28 Sep 2018 20:32:44 +0900 Subject: [PATCH] =?utf8?q?#37353=20=E7=8B=82=E6=88=A6=E5=A3=AB=E5=8C=96?= =?utf8?q?=E3=81=AE=E5=8A=B9=E6=9E=9C=E3=82=92berserk()=E3=81=AB=E3=81=BE?= =?utf8?q?=E3=81=A8=E3=82=81=E3=82=8B=E3=80=82=20Integrate=20effect=20of?= =?utf8?q?=20heroism=20to=20berserk().?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- src/artifact.c | 1 + src/cmd-activate.c | 7 +------ src/cmd-quaff.c | 4 +--- src/effects.c | 4 ++-- src/externs.h | 1 + src/mutation.c | 4 +--- src/racial.c | 8 ++------ src/realm-craft.c | 4 +--- src/realm-death.c | 8 ++------ src/spells2.c | 9 +++++++++ 10 files changed, 21 insertions(+), 29 deletions(-) diff --git a/src/artifact.c b/src/artifact.c index 3f8f3efc0..37f82a2ba 100644 --- a/src/artifact.c +++ b/src/artifact.c @@ -2307,6 +2307,7 @@ bool create_named_art(int a_idx, int y, int x) /* Drop the artifact from heaven */ return drop_near(q_ptr, -1, y, x) ? TRUE : FALSE; } + /*対邪平均ダメージの計算処理*/ int calc_arm_avgdamage(object_type *o_ptr) { diff --git a/src/cmd-activate.c b/src/cmd-activate.c index f6b847662..9df9853e9 100644 --- a/src/cmd-activate.c +++ b/src/cmd-activate.c @@ -1167,12 +1167,7 @@ bool activate_artifact(object_type *o_ptr) case ACT_BERSERK: { - (void)set_afraid(0); - (void)set_shero(randint1(25) + 25, FALSE); - /* (void)set_afraid(0); - (void)set_hero(randint1(50) + 50, FALSE); - (void)set_blessed(randint1(50) + 50, FALSE); - o_ptr->timeout = 100 + randint1(100); */ + (void)berserk(randint1(25) + 25); break; } diff --git a/src/cmd-quaff.c b/src/cmd-quaff.c index f4fb7da16..c56e1fef0 100644 --- a/src/cmd-quaff.c +++ b/src/cmd-quaff.c @@ -329,9 +329,7 @@ void do_cmd_quaff_potion_aux(int item) break; case SV_POTION_BESERK_STRENGTH: - if (set_afraid(0)) ident = TRUE; - if (set_shero(p_ptr->shero + randint1(25) + 25, FALSE)) ident = TRUE; - if (hp_player(30)) ident = TRUE; + ident = berserk(randint1(25) + 25); break; case SV_POTION_CURE_LIGHT: diff --git a/src/effects.c b/src/effects.c index 8bb17b86a..122351de9 100644 --- a/src/effects.c +++ b/src/effects.c @@ -1282,8 +1282,8 @@ bool set_hero(TIME_EFFECT v, bool do_dec) /*! * @brief 狂戦士化の継続時間をセットする / Set "p_ptr->shero", notice observable changes - * @param v 継続時間 - * @param do_dec 現在の継続時間より長い値のみ上書きする + * @param v 継続時間/ 0ならば無条件にリセット + * @param do_dec FALSEの場合現在の継続時間より長い値のみ上書きする * @return ステータスに影響を及ぼす変化があった場合TRUEを返す。 */ bool set_shero(TIME_EFFECT v, bool do_dec) diff --git a/src/externs.h b/src/externs.h index bebb5934c..40eab3a75 100644 --- a/src/externs.h +++ b/src/externs.h @@ -1173,6 +1173,7 @@ extern void cast_invoke_spirits(int dir); extern void cast_shuffle(void); extern bool_hack life_stream(bool_hack message, bool_hack virtue); extern bool_hack heroism(int base); +extern bool_hack berserk(int base); extern bool_hack cure_light_wounds(int dice, int sides); extern bool_hack cure_serious_wounds(int dice, int sides); extern bool_hack cure_critical_wounds(HIT_POINT pow); diff --git a/src/mutation.c b/src/mutation.c index 44845c7e2..d1619535b 100644 --- a/src/mutation.c +++ b/src/mutation.c @@ -2320,9 +2320,7 @@ bool mutation_power_aux(u32b power) break; case MUT1_BERSERK: - (void)set_shero(randint1(25) + 25, FALSE); - (void)hp_player(30); - (void)set_afraid(0); + (void)berserk(randint1(25) + 25); break; case MUT1_POLYMORPH: diff --git a/src/racial.c b/src/racial.c index 46f7511e2..cd6ab9f73 100644 --- a/src/racial.c +++ b/src/racial.c @@ -1317,9 +1317,7 @@ static bool cmd_racial_power_aux(s32b command) case RACE_HALF_TROLL: msg_print(_("うがぁぁ!", "RAAAGH!")); - (void)set_afraid(0); - (void)set_shero(10 + randint1(plev), FALSE); - (void)hp_player(30); + (void)berserk(10 + randint1(plev)); break; case RACE_AMBERITE: @@ -1340,9 +1338,7 @@ static bool cmd_racial_power_aux(s32b command) case RACE_BARBARIAN: msg_print(_("うぉぉおお!", "Raaagh!")); - (void)set_afraid(0); - (void)set_shero(10 + randint1(plev), FALSE); - (void)hp_player(30); + (void)berserk(10 + randint1(plev)); break; case RACE_HALF_OGRE: diff --git a/src/realm-craft.c b/src/realm-craft.c index c768d91eb..29aca14ee 100644 --- a/src/realm-craft.c +++ b/src/realm-craft.c @@ -208,9 +208,7 @@ cptr do_craft_spell(SPELL_IDX spell, BIT_FLAGS mode) if (cast) { - set_shero(randint1(base) + base, FALSE); - hp_player(30); - set_afraid(0); + (void)berserk(base + randint1(base)); } } break; diff --git a/src/realm-death.c b/src/realm-death.c index 3a93d7b45..cef8d87c7 100644 --- a/src/realm-death.c +++ b/src/realm-death.c @@ -370,9 +370,7 @@ cptr do_death_spell(SPELL_IDX spell, BIT_FLAGS mode) if (cast) { - set_shero(randint1(base) + base, FALSE); - hp_player(30); - set_afraid(0); + (void)berserk(base + randint1(base)); } } break; @@ -426,9 +424,7 @@ cptr do_death_spell(SPELL_IDX spell, BIT_FLAGS mode) if (cast) { - set_shero(randint1(25) + 25, FALSE); - hp_player(30); - set_afraid(0); + (void)berserk(b_base + randint1(b_base)); set_fast(randint1(sp_sides) + sp_base, FALSE); } } diff --git a/src/spells2.c b/src/spells2.c index 43f710d82..0a7ceece3 100644 --- a/src/spells2.c +++ b/src/spells2.c @@ -5010,6 +5010,15 @@ bool_hack heroism(int base) return ident; } +bool_hack berserk(int base) +{ + bool_hack ident = FALSE; + if (set_afraid(0)) ident = TRUE; + if (set_shero(p_ptr->hero + randint1(base) + base, FALSE)) ident = TRUE; + if (hp_player(30)) ident = TRUE; + return ident; +} + bool_hack cure_light_wounds(int dice, int sides) { bool_hack ident = FALSE; -- 2.11.0