2 * @brief モンスターの打撃種別を記述すると共に、切り傷/朦朧値を追加する
7 #include "monster-attack/monster-attack-describer.h"
8 #include "main/sound-definitions-table.h"
9 #include "main/sound-of-music.h"
10 #include "monster-attack/insults-moans.h"
11 #include "monster-attack/monster-attack-player.h"
12 #include "monster-attack/monster-attack-table.h"
13 #include "monster-race/race-indice-types.h"
14 #include "system/angband.h"
15 #include "system/monster-entity.h"
17 static void show_jaian_song(MonsterAttackPlayer *monap_ptr)
20 constexpr static auto songs = {
21 "「♪お~れはジャイアン~~ガ~キだいしょう~」",
22 "「♪て~んかむ~てきのお~とこだぜ~~」",
23 "「♪の~び太スネ夫はメじゃないよ~~」",
25 "「♪うた~も~~う~まいぜ~まかしとけ~」",
26 "「♪お~れはジャイアン~~ガ~キだいしょう~」",
27 "「♪ま~ちいちば~んのに~んきもの~~」",
28 "「♪べんきょうしゅくだいメじゃないよ~~」",
29 "「♪きはやさし~くて~ち~からもち~」",
30 "「♪かお~も~~スタイルも~バツグンさ~」",
31 "「♪お~れはジャイアン~~ガ~キだいしょう~」",
32 "「♪がっこうい~ちの~あ~ばれんぼう~~」",
33 "「♪ド~ラもドラミもメじゃないよ~~」",
34 "「♪よじげんぽけっと~な~くたって~」",
35 "「♪あし~の~~ながさ~は~まけないぜ~」",
38 monap_ptr->act = rand_choice(songs);
40 monap_ptr->act = "horribly sings 'I AM GIAAAAAN. THE BOOOSS OF THE KIIIIDS.'";
44 static void monster_attack_show(MonsterAttackPlayer *monap_ptr)
47 monap_ptr->abbreviate = -1;
49 if (monap_ptr->m_ptr->r_idx == MonsterRaceId::JAIAN) {
50 show_jaian_song(monap_ptr);
53 monap_ptr->act = _("は♪僕らは楽しい家族♪と歌っている。", "sings 'We are a happy family.'");
55 monap_ptr->act = _("は♪アイ ラブ ユー、ユー ラブ ミー♪と歌っている。", "sings 'I love you, you love me.'");
62 void describe_monster_attack_method(MonsterAttackPlayer *monap_ptr)
64 switch (monap_ptr->method) {
65 case RaceBlowMethodType::HIT: {
66 monap_ptr->act = _("殴られた。", "hits you.");
67 monap_ptr->do_cut = monap_ptr->do_stun = 1;
68 monap_ptr->touched = true;
69 sound(SOUND_ENEMY_HIT);
72 case RaceBlowMethodType::TOUCH: {
73 monap_ptr->act = _("触られた。", "touches you.");
74 monap_ptr->touched = true;
78 case RaceBlowMethodType::PUNCH: {
79 monap_ptr->act = _("パンチされた。", "punches you.");
80 monap_ptr->touched = true;
81 monap_ptr->do_stun = 1;
82 sound(SOUND_ENEMY_HIT);
85 case RaceBlowMethodType::KICK: {
86 monap_ptr->act = _("蹴られた。", "kicks you.");
87 monap_ptr->touched = true;
88 monap_ptr->do_stun = 1;
89 sound(SOUND_ENEMY_HIT);
92 case RaceBlowMethodType::CLAW: {
93 monap_ptr->act = _("ひっかかれた。", "claws you.");
94 monap_ptr->touched = true;
95 monap_ptr->do_cut = 1;
99 case RaceBlowMethodType::BITE: {
100 monap_ptr->act = _("噛まれた。", "bites you.");
101 monap_ptr->do_cut = 1;
102 monap_ptr->touched = true;
106 case RaceBlowMethodType::STING: {
107 monap_ptr->act = _("刺された。", "stings you.");
108 monap_ptr->touched = true;
112 case RaceBlowMethodType::SLASH: {
113 monap_ptr->act = _("斬られた。", "slashes you.");
114 monap_ptr->touched = true;
115 monap_ptr->do_cut = 1;
119 case RaceBlowMethodType::BUTT: {
120 monap_ptr->act = _("角で突かれた。", "butts you.");
121 monap_ptr->do_stun = 1;
122 monap_ptr->touched = true;
123 sound(SOUND_ENEMY_HIT);
126 case RaceBlowMethodType::CRUSH: {
127 monap_ptr->act = _("体当たりされた。", "crushes you.");
128 monap_ptr->do_stun = 1;
129 monap_ptr->touched = true;
133 case RaceBlowMethodType::ENGULF: {
134 monap_ptr->act = _("飲み込まれた。", "engulfs you.");
135 monap_ptr->touched = true;
139 case RaceBlowMethodType::CHARGE: {
141 monap_ptr->abbreviate = -1;
143 monap_ptr->act = _("は請求書をよこした。", "charges you.");
144 monap_ptr->touched = true;
146 /* このコメントはジョークが効いているので残しておく / Note! This is "charges", not "charges at". */
150 case RaceBlowMethodType::CRAWL: {
152 monap_ptr->abbreviate = -1;
154 monap_ptr->act = _("が体の上を這い回った。", "crawls on you.");
155 monap_ptr->touched = true;
159 case RaceBlowMethodType::DROOL: {
160 monap_ptr->act = _("よだれをたらされた。", "drools on you.");
164 case RaceBlowMethodType::SPIT: {
165 monap_ptr->act = _("唾を吐かれた。", "spits on you.");
169 case RaceBlowMethodType::EXPLODE: {
171 monap_ptr->abbreviate = -1;
173 monap_ptr->act = _("は爆発した。", "explodes.");
174 monap_ptr->explode = true;
177 case RaceBlowMethodType::GAZE: {
178 monap_ptr->act = _("にらまれた。", "gazes at you.");
181 case RaceBlowMethodType::WAIL: {
182 monap_ptr->act = _("泣き叫ばれた。", "wails at you.");
186 case RaceBlowMethodType::SPORE: {
187 monap_ptr->act = _("胞子を飛ばされた。", "releases spores at you.");
191 case RaceBlowMethodType::XXX4: {
193 monap_ptr->abbreviate = -1;
195 monap_ptr->act = _("が XXX4 を発射した。", "projects XXX4's at you.");
198 case RaceBlowMethodType::BEG: {
199 monap_ptr->act = _("金をせがまれた。", "begs you for money.");
203 case RaceBlowMethodType::INSULT: {
205 monap_ptr->abbreviate = -1;
207 monap_ptr->act = desc_insult[randint0(monap_ptr->m_ptr->r_idx == MonsterRaceId::DEBBY ? 10 : 8)];
211 case RaceBlowMethodType::MOAN: {
213 monap_ptr->abbreviate = -1;
215 monap_ptr->act = rand_choice(desc_moan);
219 case RaceBlowMethodType::SHOW: {
220 monster_attack_show(monap_ptr);
224 case RaceBlowMethodType::NONE:
225 case RaceBlowMethodType::SHOOT:
226 case RaceBlowMethodType::MAX: