From e5d8b73b780f13e0238639b7658a1c6840e4e37a Mon Sep 17 00:00:00 2001 From: Hourier Date: Sat, 22 Feb 2020 23:49:34 +0900 Subject: [PATCH] =?utf8?q?[Refactor]=20#40020=20horror-descriptions.c/h=20?= =?utf8?q?=E3=81=AB=E3=80=81=E4=B8=AD=E7=AB=8B=E3=83=A2=E3=83=B3=E3=82=B9?= =?utf8?q?=E3=82=BF=E3=83=BC=E3=81=AE=E5=BD=A2=E5=AE=B9=E8=A9=9E=E3=82=92?= =?utf8?q?=E8=BF=BD=E5=8A=A0=E3=81=97=E3=80=81=E9=82=AA=E6=82=AA=E3=83=A2?= =?utf8?q?=E3=83=B3=E3=82=B9=E3=82=BF=E3=83=BC=E3=81=AE=E5=BD=A2=E5=AE=B9?= =?utf8?q?=E8=A9=9E=E3=82=92=E4=B8=80=E9=83=A8=E4=BF=AE=E6=AD=A3=20/=20Add?= =?utf8?q?ed=20adjectives=20of=20Eldritch=20horror=20for=20neutral=20monst?= =?utf8?q?er=20and=20fixed=20partially=20for=20evil=20monsters?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- src/horror-descriptions.c | 103 ++++++++++++++++++++++++++++++++++++---------- src/horror-descriptions.h | 7 +++- src/player-status.c | 30 +++++++++++--- 3 files changed, 112 insertions(+), 28 deletions(-) diff --git a/src/horror-descriptions.c b/src/horror-descriptions.c index a3de967d5..cffe01a16 100644 --- a/src/horror-descriptions.c +++ b/src/horror-descriptions.c @@ -1,66 +1,127 @@ +/*! + * @file horror-descriptions.c + * @brief ƒGƒ‹ƒhƒŠƒbƒ`ƒzƒ‰[‚ÌŒ`—eŽŒƒe[ƒuƒ‹’è‹` / Definitions of adjectives on + * @date 2020/02/21 + * @author Hourier + */ + #include "h-type.h" #include "horror-descriptions.h" /*! - * @var horror_desc - * @brief ELDRITCH HORRORŒø‰ÊŽž‚̃‚ƒ“ƒXƒ^[‚ÌŒ`—eƒƒbƒZ[ƒWi’ʏ펞j + * @var horror_desc_common + * @brief ELDRITCH HORRORŒø‰ÊŽž‚̃‚ƒ“ƒXƒ^[‚ÌŒ`—eƒƒbƒZ[ƒW (³íŽžAŽ×ˆ«E’†—§‹¤’Ê) */ -concptr horror_desc[MAX_SAN_HORROR] = +concptr horror_desc_common[MAX_SAN_HORROR_COMMON] = { #ifdef JP - "Šõ‚܂킵‚¢", "’ê’m‚ê‚Ê", - "‚¼‚Á‚Æ‚·‚é", "”j–Å“I‚È", - "–`“À“I‚È", + "—eŽÍ‚Ì‚È‚¢", + "ˆ«–²‚̂悤‚È", + "–¼‘O‚ðŒû‚É‚Å‚«‚È‚¢", +#else + "abysmal", + "baleful", + "grisly", + "nightmarish", + "unspeakable", +#endif +}; +/*! + * @var horror_desc_evil + * @brief ELDRITCH HORRORŒø‰ÊŽž‚̃‚ƒ“ƒXƒ^[‚ÌŒ`—eƒƒbƒZ[ƒW (³íŽžAŽ×ˆ«) + */ +concptr horror_desc_evil[MAX_SAN_HORROR_EVIL] = +{ +#ifdef JP + "Šõ‚܂킵‚¢", + "‚¼‚Á‚Æ‚·‚é", + "–`“À“I‚È", "‚¢‚â‚È", "‹°‚낵‚¢", + "•sŒ‰‚È", - "—eŽÍ‚Ì‚È‚¢", "‚¨‚¼‚Ü‚µ‚¢", - - "’n–‚Ì", + "”ñ“¹‚È‚é", "g‚Ì–Ñ‚à‚悾‚Â", "’n–‚Ì", - "Šõ‚܂킵‚¢", - "ˆ«–²‚̂悤‚È", + "‚Þ‚©‚Þ‚©‚·‚é", "Œ™ˆ«‚ðŠ´‚¶‚é", "”±“–‚½‚è‚È", "‹°‚¢", "•sò‚È", - "Œ¾‚¤‚à‚¨‚¼‚Ü‚µ‚¢", #else "abominable", - "abysmal", "appalling", - "baleful", "blasphemous", - "disgusting", "dreadful", + "filthy", - "grisly", "hideous", - "hellish", "horrible", "infernal", - "loathsome", - "nightmarish", + "loathsome", "repulsive", "sacrilegious", "terrible", "unclean", - "unspeakable", +#endif +}; + +/* + * @var horror_desc_neutral + * @brief ELDRITCH HORRORŒø‰ÊŽž‚̃‚ƒ“ƒXƒ^[‚ÌŒ`—eƒƒbƒZ[ƒW (³íŽžA’†—§) + */ +concptr horror_desc_neutral[MAX_SAN_HORROR_NEUTRAL] = +{ +#ifdef JP + "‘å‚¢‚È‚éˆØ•|‚É•ï‚܂ꂽ", + "—d‚µ‚°‚ȏ΂݂Ì", + "‚¢‚é‚Í‚¸‚Ì‚È‚¢", + "‹z‚¢ž‚Ü‚ê‚»‚¤‚È", + "ŒÜŠ´‚ð’´‰z‚µ‚½", + + "•ÊŽŸŒ³‚É•‚‚©‚яオ‚Á‚½", + "Œ¶Šo‚ÆŒ©•´‚¤‚悤‚È", + "‚ä‚ç‚ä‚ç‚Æ—h‚ç‚ß‚¢‚½", + "Ž©‚ç‚ÌŽÀÝ‚ð‹^‚¤‚قLj³“|“I‚È", + "—‰ð‚Å‚«‚È‚¢", + + "ƒTƒCƒPƒfƒŠƒbƒN‚È", + "¶‹C‚ª‹z‚¢Žæ‚ç‚ê‚é‚悤‚È", + "ƒgƒŠƒbƒvŠ´‚É–ž‚¿‚½", + "“ª‚ª^‚Á”’‚É‚È‚é‚悤‚È", + "–³ŒÀ‚ɉÁ‘¬‚µ‚½", +#else + "causing great awe", + "laughing insanely", + "SHOULD NOT be there", + "about to be sucked", + "transcending senses", + + "rising on the another dimension", + "hallucinating", + "swaying and swaying", + "overwhelming enough to doubt your own existence", + "unintelligible", + + "psychedelic", + "spoiling your life", + "trippy", + "going blank", + "unlimitedly accelerated", #endif }; /*! * @var funny_desc - * @brief ELDRITCH HORRORŒø‰ÊŽž‚̃‚ƒ“ƒXƒ^[‚ÌŒ`—eƒƒbƒZ[ƒW(Œ¶Šoó‘ÔŽž) + * @brief ELDRITCH HORRORŒø‰ÊŽž‚̃‚ƒ“ƒXƒ^[‚ÌŒ`—eƒƒbƒZ[ƒW (Œ¶Šoó‘ÔŽž) */ concptr funny_desc[MAX_SAN_FUNNY] = { diff --git a/src/horror-descriptions.h b/src/horror-descriptions.h index ef9be768e..b03df3853 100644 --- a/src/horror-descriptions.h +++ b/src/horror-descriptions.h @@ -1,10 +1,13 @@ #pragma once /* ELDRITCH_HORROR‚É‚æ‚ésanity blastˆ—‚ÉŠÖ‚·‚郁ƒbƒZ[ƒW‚̍ő吔 / Number of entries in the sanity-blast descriptions */ -#define MAX_SAN_HORROR 20 /*!< ‹°‚낵‚¢‘Ώۂ̌`—e”(³íŽž) */ +#define MAX_SAN_HORROR_COMMON 5 /*!< ‹°‚낵‚¢‘Ώۂ̌`—e”(³íŽžAŽ×ˆ«E’†—§‹¤’Ê) */ +#define MAX_SAN_HORROR_EVIL 15 /*!< ‹°‚낵‚¢‘Ώۂ̌`—e”(³íŽžAŽ×ˆ«) */ +#define MAX_SAN_HORROR_NEUTRAL 15 /*!< ‹°‚낵‚¢‘Ώۂ̌`—e”(³íŽžA’†—§) */ #define MAX_SAN_FUNNY 22 /*!< ‹°‚낵‚¢‘Ώۂ̌`—e”(Œ¶ŠoŽž) */ #define MAX_SAN_COMMENT 5 /*!< ‹°‚낵‚¢‘ÎÛ‚ðŒ©‚½‚Æ‚«‚̐⋩ƒƒbƒZ[ƒW”(Œ¶ŠoŽž) */ -concptr horror_desc[MAX_SAN_HORROR]; +concptr horror_desc_common[MAX_SAN_HORROR_COMMON]; +concptr horror_desc_evil[MAX_SAN_HORROR_EVIL]; concptr funny_desc[MAX_SAN_FUNNY]; concptr funny_comments[MAX_SAN_COMMENT]; diff --git a/src/player-status.c b/src/player-status.c index ce0e8d222..7750d0306 100644 --- a/src/player-status.c +++ b/src/player-status.c @@ -4520,7 +4520,7 @@ void wreck_the_pattern(player_type *creature_ptr) /*! * @brief ELDRITCH_HORRORによるプレイヤーの精神破壊処理 - * @param m_ptr ELDRITCH_HORRORを引き起こしたモンスターの参照ポインタ + * @param m_ptr ELDRITCH_HORRORを引き起こしたモンスターの参照ポインタ。薬・罠・魔法の影響ならNULL * @param necro 暗黒領域魔法の詠唱失敗によるものならばTRUEを返す * @return なし */ @@ -4574,7 +4574,7 @@ void sanity_blast(player_type *creature_ptr, monster_type *m_ptr, bool necro) } msg_format(_("%s%sの顔を見てしまった!", "You behold the %s visage of %s!"), - horror_desc[randint0(MAX_SAN_HORROR)], m_name); + horror_desc_evil[randint0(MAX_SAN_HORROR_EVIL)], m_name); r_ptr->r_flags2 |= RF2_ELDRITCH_HORROR; if (PRACE_IS_(creature_ptr, RACE_IMP) || PRACE_IS_(creature_ptr, RACE_DEMON) || @@ -4635,7 +4635,7 @@ void sanity_blast(player_type *creature_ptr, monster_type *m_ptr, bool necro) } msg_format(_("%s%sの顔を見てしまった!", "You behold the %s visage of %s!"), - horror_desc[randint0(MAX_SAN_HORROR)], desc); + horror_desc_evil[randint0(MAX_SAN_HORROR_EVIL)], desc); r_ptr->r_flags2 |= RF2_ELDRITCH_HORROR; @@ -4677,8 +4677,7 @@ void sanity_blast(player_type *creature_ptr, monster_type *m_ptr, bool necro) && saving_throw(creature_ptr->skill_sav - power) && saving_throw(creature_ptr->skill_sav - power) && saving_throw(creature_ptr->skill_sav - power) - && saving_throw(creature_ptr->skill_sav - power) - ) + && saving_throw(creature_ptr->skill_sav - power)) { return; } @@ -4686,6 +4685,7 @@ void sanity_blast(player_type *creature_ptr, monster_type *m_ptr, bool necro) switch (randint1(22)) { case 1: + { if (!(creature_ptr->muta3 & MUT3_MORONIC)) { if ((creature_ptr->stat_use[A_INT] < 4) && (creature_ptr->stat_use[A_WIS] < 4)) @@ -4702,10 +4702,14 @@ void sanity_blast(player_type *creature_ptr, monster_type *m_ptr, bool necro) msg_print(_("あなたの脳は生体コンピュータではなくなった。", "Your brain is no longer a living computer.")); creature_ptr->muta3 &= ~(MUT3_HYPER_INT); } + creature_ptr->muta3 |= MUT3_MORONIC; } + break; + } case 2: + { if (!(creature_ptr->muta2 & MUT2_COWARDICE) && !creature_ptr->resist_fear) { msg_print(_("あなたはパラノイアになった!", "You become paranoid!")); @@ -4717,21 +4721,29 @@ void sanity_blast(player_type *creature_ptr, monster_type *m_ptr, bool necro) creature_ptr->muta2 |= MUT2_COWARDICE; } + break; + } case 3: + { if (!(creature_ptr->muta2 & MUT2_HALLU) && !creature_ptr->resist_chaos) { msg_print(_("幻覚をひき起こす精神錯乱に陥った!", "You are afflicted by a hallucinatory insanity!")); creature_ptr->muta2 |= MUT2_HALLU; } + break; + } case 4: + { if (!(creature_ptr->muta2 & MUT2_BERS_RAGE) && !creature_ptr->resist_conf) { msg_print(_("激烈な感情の発作におそわれるようになった!", "You become subject to fits of berserk rage!")); creature_ptr->muta2 |= MUT2_BERS_RAGE; } + break; + } case 5: case 6: case 7: @@ -4740,6 +4752,7 @@ void sanity_blast(player_type *creature_ptr, monster_type *m_ptr, bool necro) case 10: case 11: case 12: + { if (!creature_ptr->resist_conf) { (void)set_confused(creature_ptr, creature_ptr->confused + randint0(4) + 4); @@ -4753,9 +4766,11 @@ void sanity_blast(player_type *creature_ptr, monster_type *m_ptr, bool necro) /* todo いつからかは不明だがreturnとbreakが同時に存在している。どちらがデッドコードか不明瞭なので保留 */ return; break; + } case 13: case 14: case 15: + { if (!creature_ptr->resist_conf) { (void)set_confused(creature_ptr, creature_ptr->confused + randint0(4) + 4); @@ -4780,19 +4795,24 @@ void sanity_blast(player_type *creature_ptr, monster_type *m_ptr, bool necro) } while (randint0(100) > creature_ptr->skill_sav && one_in_(2)); break; + } case 16: case 17: + { if (lose_all_info(creature_ptr)) msg_print(_("あまりの恐怖に全てのことを忘れてしまった!", "You forget everything in your utmost terror!")); break; + } case 18: case 19: case 20: case 21: case 22: + { do_dec_stat(creature_ptr, A_INT); do_dec_stat(creature_ptr, A_WIS); break; + } default: break; } -- 2.11.0