OSDN Git Service

[Implement] 一週間以上前のデバッグログの自動削除
[hengband/hengband.git] / src / monster-attack / monster-attack-describer.c
1 /*!
2  * @brief モンスターの打撃種別を記述すると共に、切り傷/朦朧値を追加する
3  * @date 2020/05/31
4  * @author Hourier
5  */
6
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-race/race-indice-types.h"
12
13 static void show_jaian_song(monap_type *monap_ptr)
14 {
15 #ifdef JP
16     switch (randint1(15)) {
17     case 1:
18     case 6:
19     case 11:
20         monap_ptr->act = "「♪お~れはジャイアン~~ガ~キだいしょう~」";
21         break;
22     case 2:
23         monap_ptr->act = "「♪て~んかむ~てきのお~とこだぜ~~」";
24         break;
25     case 3:
26         monap_ptr->act = "「♪の~び太スネ夫はメじゃないよ~~」";
27         break;
28     case 4:
29         monap_ptr->act = "「♪け~んかスポ~ツ~どんとこい~」";
30         break;
31     case 5:
32         monap_ptr->act = "「♪うた~も~~う~まいぜ~まかしとけ~」";
33         break;
34     case 7:
35         monap_ptr->act = "「♪ま~ちいちば~んのに~んきもの~~」";
36         break;
37     case 8:
38         monap_ptr->act = "「♪べんきょうしゅくだいメじゃないよ~~」";
39         break;
40     case 9:
41         monap_ptr->act = "「♪きはやさし~くて~ち~からもち~」";
42         break;
43     case 10:
44         monap_ptr->act = "「♪かお~も~~スタイルも~バツグンさ~」";
45         break;
46     case 12:
47         monap_ptr->act = "「♪がっこうい~ちの~あ~ばれんぼう~~」";
48         break;
49     case 13:
50         monap_ptr->act = "「♪ド~ラもドラミもメじゃないよ~~」";
51         break;
52     case 14:
53         monap_ptr->act = "「♪よじげんぽけっと~な~くたって~」";
54         break;
55     case 15:
56         monap_ptr->act = "「♪あし~の~~ながさ~は~まけないぜ~」";
57         break;
58     }
59 #else
60     monap_ptr->act = "horribly sings 'I AM GIAAAAAN. THE BOOOSS OF THE KIIIIDS.'";
61 #endif
62 }
63
64 static void monster_attack_show(monap_type *monap_ptr)
65 {
66 #ifdef JP
67     monap_ptr->abbreviate = -1;
68 #endif
69     if (monap_ptr->m_ptr->r_idx == MON_JAIAN) {
70         show_jaian_song(monap_ptr);
71     } else {
72         if (one_in_(3))
73             monap_ptr->act = _("は♪僕らは楽しい家族♪と歌っている。", "sings 'We are a happy family.'");
74         else
75             monap_ptr->act = _("は♪アイ ラブ ユー、ユー ラブ ミー♪と歌っている。", "sings 'I love you, you love me.'");
76     }
77
78     sound(SOUND_SHOW);
79 }
80
81 void describe_monster_attack_method(monap_type *monap_ptr)
82 {
83     switch (monap_ptr->method) {
84     case RBM_HIT: {
85         monap_ptr->act = _("殴られた。", "hits you.");
86         monap_ptr->do_cut = monap_ptr->do_stun = 1;
87         monap_ptr->touched = TRUE;
88         sound(SOUND_HIT);
89         break;
90     }
91     case RBM_TOUCH: {
92         monap_ptr->act = _("触られた。", "touches you.");
93         monap_ptr->touched = TRUE;
94         sound(SOUND_TOUCH);
95         break;
96     }
97     case RBM_PUNCH: {
98         monap_ptr->act = _("パンチされた。", "punches you.");
99         monap_ptr->touched = TRUE;
100         monap_ptr->do_stun = 1;
101         sound(SOUND_HIT);
102         break;
103     }
104     case RBM_KICK: {
105         monap_ptr->act = _("蹴られた。", "kicks you.");
106         monap_ptr->touched = TRUE;
107         monap_ptr->do_stun = 1;
108         sound(SOUND_HIT);
109         break;
110     }
111     case RBM_CLAW: {
112         monap_ptr->act = _("ひっかかれた。", "claws you.");
113         monap_ptr->touched = TRUE;
114         monap_ptr->do_cut = 1;
115         sound(SOUND_CLAW);
116         break;
117     }
118     case RBM_BITE: {
119         monap_ptr->act = _("噛まれた。", "bites you.");
120         monap_ptr->do_cut = 1;
121         monap_ptr->touched = TRUE;
122         sound(SOUND_BITE);
123         break;
124     }
125     case RBM_STING: {
126         monap_ptr->act = _("刺された。", "stings you.");
127         monap_ptr->touched = TRUE;
128         sound(SOUND_STING);
129         break;
130     }
131     case RBM_SLASH: {
132         monap_ptr->act = _("斬られた。", "slashes you.");
133         monap_ptr->touched = TRUE;
134         monap_ptr->do_cut = 1;
135         sound(SOUND_CLAW);
136         break;
137     }
138     case RBM_BUTT: {
139         monap_ptr->act = _("角で突かれた。", "butts you.");
140         monap_ptr->do_stun = 1;
141         monap_ptr->touched = TRUE;
142         sound(SOUND_HIT);
143         break;
144     }
145     case RBM_CRUSH: {
146         monap_ptr->act = _("体当たりされた。", "crushes you.");
147         monap_ptr->do_stun = 1;
148         monap_ptr->touched = TRUE;
149         sound(SOUND_CRUSH);
150         break;
151     }
152     case RBM_ENGULF: {
153         monap_ptr->act = _("飲み込まれた。", "engulfs you.");
154         monap_ptr->touched = TRUE;
155         sound(SOUND_CRUSH);
156         break;
157     }
158     case RBM_CHARGE: {
159 #ifdef JP
160         monap_ptr->abbreviate = -1;
161 #endif
162         monap_ptr->act = _("は請求書をよこした。", "charges you.");
163         monap_ptr->touched = TRUE;
164
165         /* このコメントはジョークが効いているので残しておく / Note! This is "charges", not "charges at". */
166         sound(SOUND_BUY);
167         break;
168     }
169     case RBM_CRAWL: {
170 #ifdef JP
171         monap_ptr->abbreviate = -1;
172 #endif
173         monap_ptr->act = _("が体の上を這い回った。", "crawls on you.");
174         monap_ptr->touched = TRUE;
175         sound(SOUND_SLIME);
176         break;
177     }
178     case RBM_DROOL: {
179         monap_ptr->act = _("よだれをたらされた。", "drools on you.");
180         sound(SOUND_SLIME);
181         break;
182     }
183     case RBM_SPIT: {
184         monap_ptr->act = _("唾を吐かれた。", "spits on you.");
185         sound(SOUND_SLIME);
186         break;
187     }
188     case RBM_EXPLODE: {
189 #ifdef JP
190         monap_ptr->abbreviate = -1;
191 #endif
192         monap_ptr->act = _("は爆発した。", "explodes.");
193         monap_ptr->explode = TRUE;
194         break;
195     }
196     case RBM_GAZE: {
197         monap_ptr->act = _("にらまれた。", "gazes at you.");
198         break;
199     }
200     case RBM_WAIL: {
201         monap_ptr->act = _("泣き叫ばれた。", "wails at you.");
202         sound(SOUND_WAIL);
203         break;
204     }
205     case RBM_SPORE: {
206         monap_ptr->act = _("胞子を飛ばされた。", "releases spores at you.");
207         sound(SOUND_SLIME);
208         break;
209     }
210     case RBM_XXX4: {
211 #ifdef JP
212         monap_ptr->abbreviate = -1;
213 #endif
214         monap_ptr->act = _("が XXX4 を発射した。", "projects XXX4's at you.");
215         break;
216     }
217     case RBM_BEG: {
218         monap_ptr->act = _("金をせがまれた。", "begs you for money.");
219         sound(SOUND_MOAN);
220         break;
221     }
222     case RBM_INSULT: {
223 #ifdef JP
224         monap_ptr->abbreviate = -1;
225 #endif
226         monap_ptr->act = desc_insult[randint0(monap_ptr->m_ptr->r_idx == MON_DEBBY ? 10 : 8)];
227         sound(SOUND_MOAN);
228         break;
229     }
230     case RBM_MOAN: {
231 #ifdef JP
232         monap_ptr->abbreviate = -1;
233 #endif
234         monap_ptr->act = desc_moan[randint0(4)];
235         sound(SOUND_MOAN);
236         break;
237     }
238     case RBM_SHOW: {
239         monster_attack_show(monap_ptr);
240         break;
241     }
242     }
243 }