OSDN Git Service

ba1d304b4b88085fb9d2c706f52583c75a7932d3
[hengband/hengband.git] / src / patron.c
1 #include "angband.h"
2 #include "cmd-pet.h"
3 #include "object-curse.h"
4 #include "monsterrace-hook.h"
5 #include "objectkind-hook.h"
6 #include "spells-summon.h"
7
8 void gain_level_reward(int chosen_reward)
9 {
10         object_type *q_ptr;
11         object_type forge;
12         char        wrath_reason[32] = "";
13         int         nasty_chance = 6;
14         OBJECT_TYPE_VALUE dummy = 0;
15         OBJECT_SUBTYPE_VALUE dummy2 = 0;
16         int         type, effect;
17         concptr        reward = NULL;
18         GAME_TEXT o_name[MAX_NLEN];
19
20         int count = 0;
21
22         if (!chosen_reward)
23         {
24                 if (multi_rew) return;
25                 else multi_rew = TRUE;
26         }
27
28
29         if (p_ptr->lev == 13) nasty_chance = 2;
30         else if (!(p_ptr->lev % 13)) nasty_chance = 3;
31         else if (!(p_ptr->lev % 14)) nasty_chance = 12;
32
33         if (one_in_(nasty_chance))
34                 type = randint1(20); /* Allow the 'nasty' effects */
35         else
36                 type = randint1(15) + 5; /* Or disallow them */
37
38         if (type < 1) type = 1;
39         if (type > 20) type = 20;
40         type--;
41
42
43         sprintf(wrath_reason, _("%sの怒り", "the Wrath of %s"), chaos_patrons[p_ptr->chaos_patron]);
44
45         effect = chaos_rewards[p_ptr->chaos_patron][type];
46
47         if (one_in_(6) && !chosen_reward)
48         {
49                 msg_format(_("%^sは褒美としてあなたを突然変異させた。", "%^s rewards you with a mutation!"), chaos_patrons[p_ptr->chaos_patron]);
50                 (void)gain_random_mutation(0);
51                 reward = _("変異した。", "mutation");
52         }
53         else
54         {
55                 switch (chosen_reward ? chosen_reward : effect)
56                 {
57
58                 case REW_POLY_SLF:
59
60                         msg_format(_("%sの声が響き渡った:", "The voice of %s booms out:"), chaos_patrons[p_ptr->chaos_patron]);
61                         msg_print(_("「汝、新たなる姿を必要とせり!」", "'Thou needst a new form, mortal!'"));
62
63                         do_poly_self();
64                         reward = _("変異した。", "polymorphing");
65                         break;
66
67                 case REW_GAIN_EXP:
68
69                         msg_format(_("%sの声が響き渡った:", "The voice of %s booms out:"), chaos_patrons[p_ptr->chaos_patron]);
70                         msg_print(_("「汝は良く行いたり!続けよ!」", "'Well done, mortal! Lead on!'"));
71
72                         if (p_ptr->prace == RACE_ANDROID)
73                         {
74                                 msg_print(_("しかし何も起こらなかった。", "But, nothing happen."));
75                         }
76                         else if (p_ptr->exp < PY_MAX_EXP)
77                         {
78                                 s32b ee = (p_ptr->exp / 2) + 10;
79                                 if (ee > 100000L) ee = 100000L;
80                                 msg_print(_("更に経験を積んだような気がする。", "You feel more experienced."));
81
82                                 gain_exp(ee);
83                                 reward = _("経験値を得た", "experience");
84                         }
85                         break;
86
87                 case REW_LOSE_EXP:
88
89                         msg_format(_("%sの声が響き渡った:", "The voice of %s booms out:"), chaos_patrons[p_ptr->chaos_patron]);
90                         msg_print(_("「下僕よ、汝それに値せず。」", "'Thou didst not deserve that, slave.'"));
91
92                         if (p_ptr->prace == RACE_ANDROID)
93                         {
94                                 msg_print(_("しかし何も起こらなかった。", "But, nothing happen."));
95                         }
96                         else
97                         {
98                                 lose_exp(p_ptr->exp / 6);
99                                 reward = _("経験値を失った。", "losing experience");
100                         }
101                         break;
102
103                 case REW_GOOD_OBJ:
104 #ifdef JP
105                         msg_format("%sの声がささやいた:",
106                                 chaos_patrons[p_ptr->chaos_patron]);
107 #else
108                         msg_format("The voice of %s whispers:",
109                                 chaos_patrons[p_ptr->chaos_patron]);
110 #endif
111
112                         msg_print(_("「我が与えし物を賢明に使うべし。」", "'Use my gift wisely.'"));
113
114                         acquirement(p_ptr->y, p_ptr->x, 1, FALSE, FALSE, FALSE);
115                         reward = _("上質なアイテムを手に入れた。", "a good item");
116                         break;
117
118                 case REW_GREA_OBJ:
119
120                         msg_format(_("%sの声が響き渡った:", "The voice of %s booms out:"), chaos_patrons[p_ptr->chaos_patron]);
121                         msg_print(_("「我が与えし物を賢明に使うべし。」", "'Use my gift wisely.'"));
122
123                         acquirement(p_ptr->y, p_ptr->x, 1, TRUE, FALSE, FALSE);
124                         reward = _("高級品のアイテムを手に入れた。", "an excellent item");
125                         break;
126
127                 case REW_CHAOS_WP:
128
129                         msg_format(_("%sの声が響き渡った:", "The voice of %s booms out:"), chaos_patrons[p_ptr->chaos_patron]);
130                         msg_print(_("「汝の行いは貴き剣に値せり。」", "'Thy deed hath earned thee a worthy blade.'"));
131                         q_ptr = &forge;
132                         dummy = TV_SWORD;
133                         switch (randint1(p_ptr->lev))
134                         {
135                         case 0: case 1:
136                                 dummy2 = SV_DAGGER;
137                                 break;
138                         case 2: case 3:
139                                 dummy2 = SV_MAIN_GAUCHE;
140                                 break;
141                         case 4:
142                                 dummy2 = SV_TANTO;
143                                 break;
144                         case 5: case 6:
145                                 dummy2 = SV_RAPIER;
146                                 break;
147                         case 7: case 8:
148                                 dummy2 = SV_SMALL_SWORD;
149                                 break;
150                         case 9: case 10:
151                                 dummy2 = SV_BASILLARD;
152                                 break;
153                         case 11: case 12: case 13:
154                                 dummy2 = SV_SHORT_SWORD;
155                                 break;
156                         case 14: case 15:
157                                 dummy2 = SV_SABRE;
158                                 break;
159                         case 16: case 17:
160                                 dummy2 = SV_CUTLASS;
161                                 break;
162                         case 18:
163                                 dummy2 = SV_WAKIZASHI;
164                                 break;
165                         case 19:
166                                 dummy2 = SV_KHOPESH;
167                                 break;
168                         case 20:
169                                 dummy2 = SV_TULWAR;
170                                 break;
171                         case 21:
172                                 dummy2 = SV_BROAD_SWORD;
173                                 break;
174                         case 22: case 23:
175                                 dummy2 = SV_LONG_SWORD;
176                                 break;
177                         case 24: case 25:
178                                 dummy2 = SV_SCIMITAR;
179                                 break;
180                         case 26:
181                                 dummy2 = SV_NINJATO;
182                                 break;
183                         case 27:
184                                 dummy2 = SV_KATANA;
185                                 break;
186                         case 28: case 29:
187                                 dummy2 = SV_BASTARD_SWORD;
188                                 break;
189                         case 30:
190                                 dummy2 = SV_GREAT_SCIMITAR;
191                                 break;
192                         case 31:
193                                 dummy2 = SV_CLAYMORE;
194                                 break;
195                         case 32:
196                                 dummy2 = SV_ESPADON;
197                                 break;
198                         case 33:
199                                 dummy2 = SV_TWO_HANDED_SWORD;
200                                 break;
201                         case 34:
202                                 dummy2 = SV_FLAMBERGE;
203                                 break;
204                         case 35:
205                                 dummy2 = SV_NO_DACHI;
206                                 break;
207                         case 36:
208                                 dummy2 = SV_EXECUTIONERS_SWORD;
209                                 break;
210                         case 37:
211                                 dummy2 = SV_ZWEIHANDER;
212                                 break;
213                         case 38:
214                                 dummy2 = SV_HAYABUSA;
215                                 break;
216                         default:
217                                 dummy2 = SV_BLADE_OF_CHAOS;
218                         }
219
220                         object_prep(q_ptr, lookup_kind(dummy, dummy2));
221                         q_ptr->to_h = 3 + randint1(dun_level) % 10;
222                         q_ptr->to_d = 3 + randint1(dun_level) % 10;
223                         one_resistance(q_ptr);
224                         q_ptr->name2 = EGO_CHAOTIC;
225                         (void)drop_near(q_ptr, -1, p_ptr->y, p_ptr->x);
226                         reward = _("(混沌)の武器を手に入れた。", "chaos weapon");
227                         break;
228
229                 case REW_GOOD_OBS:
230
231                         msg_format(_("%sの声が響き渡った:", "The voice of %s booms out:"), chaos_patrons[p_ptr->chaos_patron]);
232                         msg_print(_("「汝の行いは貴き報いに値せり。」", "'Thy deed hath earned thee a worthy reward.'"));
233
234                         acquirement(p_ptr->y, p_ptr->x, randint1(2) + 1, FALSE, FALSE, FALSE);
235                         reward = _("上質なアイテムを手に入れた。", "good items");
236                         break;
237
238                 case REW_GREA_OBS:
239
240                         msg_format(_("%sの声が響き渡った:", "The voice of %s booms out:"), chaos_patrons[p_ptr->chaos_patron]);
241                         msg_print(_("「下僕よ、汝の献身への我が惜しみ無き報いを見るがよい。」", "'Behold, mortal, how generously I reward thy loyalty.'"));
242
243                         acquirement(p_ptr->y, p_ptr->x, randint1(2) + 1, TRUE, FALSE, FALSE);
244                         reward = _("高級品のアイテムを手に入れた。", "excellent items");
245                         break;
246
247                 case REW_TY_CURSE:
248 #ifdef JP
249                         msg_format("%sの声が轟き渡った:", chaos_patrons[p_ptr->chaos_patron]);
250 #else
251                         msg_format("The voice of %s thunders:", chaos_patrons[p_ptr->chaos_patron]);
252 #endif
253
254                         msg_print(_("「下僕よ、汝傲慢なり。」", "'Thou art growing arrogant, mortal.'"));
255
256                         (void)activate_ty_curse(FALSE, &count);
257                         reward = _("禍々しい呪いをかけられた。", "cursing");
258                         break;
259
260                 case REW_SUMMON_M:
261
262                         msg_format(_("%sの声が響き渡った:", "The voice of %s booms out:"), chaos_patrons[p_ptr->chaos_patron]);
263                         msg_print(_("「我が下僕たちよ、かの傲慢なる者を倒すべし!」", "'My pets, destroy the arrogant mortal!'"));
264
265                         for (dummy = 0; dummy < randint1(5) + 1; dummy++)
266                         {
267                                 (void)summon_specific(0, p_ptr->y, p_ptr->x, dun_level, 0, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE | PM_NO_PET), '\0');
268                         }
269                         reward = _("モンスターを召喚された。", "summoning hostile monsters");
270                         break;
271
272
273                 case REW_H_SUMMON:
274
275                         msg_format(_("%sの声が響き渡った:", "The voice of %s booms out:"), chaos_patrons[p_ptr->chaos_patron]);
276                         msg_print(_("「汝、より強き敵を必要とせり!」", "'Thou needst worthier opponents!'"));
277
278                         activate_hi_summon(p_ptr->y, p_ptr->x, FALSE);
279                         reward = _("モンスターを召喚された。", "summoning many hostile monsters");
280                         break;
281
282
283                 case REW_DO_HAVOC:
284 #ifdef JP
285                         msg_format("%sの声が響き渡った:",
286                                 chaos_patrons[p_ptr->chaos_patron]);
287 #else
288                         msg_format("The voice of %s booms out:",
289                                 chaos_patrons[p_ptr->chaos_patron]);
290 #endif
291
292                         msg_print(_("「死と破壊こそ我が喜びなり!」", "'Death and destruction! This pleaseth me!'"));
293
294                         call_chaos();
295                         reward = _("カオスの力が渦巻いた。", "calling chaos");
296                         break;
297
298
299                 case REW_GAIN_ABL:
300 #ifdef JP
301                         msg_format("%sの声が鳴り響いた:",
302                                 chaos_patrons[p_ptr->chaos_patron]);
303 #else
304                         msg_format("The voice of %s rings out:",
305                                 chaos_patrons[p_ptr->chaos_patron]);
306 #endif
307
308                         msg_print(_("「留まるのだ、下僕よ。余が汝の肉体を鍛えん。」", "'Stay, mortal, and let me mold thee.'"));
309
310                         if (one_in_(3) && !(chaos_stats[p_ptr->chaos_patron] < 0))
311                                 do_inc_stat(chaos_stats[p_ptr->chaos_patron]);
312                         else
313                                 do_inc_stat(randint0(6));
314                         reward = _("能力値が上がった。", "increasing a stat");
315                         break;
316
317
318                 case REW_LOSE_ABL:
319 #ifdef JP
320                         msg_format("%sの声が響き渡った:",
321                                 chaos_patrons[p_ptr->chaos_patron]);
322 #else
323                         msg_format("The voice of %s booms out:",
324                                 chaos_patrons[p_ptr->chaos_patron]);
325 #endif
326
327                         msg_print(_("「下僕よ、余は汝に飽みたり。」", "'I grow tired of thee, mortal.'"));
328
329                         if (one_in_(3) && !(chaos_stats[p_ptr->chaos_patron] < 0))
330                                 do_dec_stat(chaos_stats[p_ptr->chaos_patron]);
331                         else
332                                 (void)do_dec_stat(randint0(6));
333                         reward = _("能力値が下がった。", "decreasing a stat");
334                         break;
335
336
337                 case REW_RUIN_ABL:
338
339 #ifdef JP
340                         msg_format("%sの声が轟き渡った:",
341                                 chaos_patrons[p_ptr->chaos_patron]);
342 #else
343                         msg_format("The voice of %s thunders:",
344                                 chaos_patrons[p_ptr->chaos_patron]);
345 #endif
346
347                         msg_print(_("「汝、謙虚たることを学ぶべし!」", "'Thou needst a lesson in humility, mortal!'"));
348                         msg_print(_("あなたは以前より弱くなった!", "You feel less powerful!"));
349
350                         for (dummy = 0; dummy < A_MAX; dummy++)
351                         {
352                                 (void)dec_stat(dummy, 10 + randint1(15), TRUE);
353                         }
354                         reward = _("全能力値が下がった。", "decreasing all stats");
355                         break;
356
357                 case REW_POLY_WND:
358
359                         msg_format(_("%sの力が触れるのを感じた。", "You feel the power of %s touch you."),
360                                 chaos_patrons[p_ptr->chaos_patron]);
361                         do_poly_wounds();
362                         reward = _("傷が変化した。", "polymorphing wounds");
363                         break;
364
365                 case REW_AUGM_ABL:
366
367                         msg_format(_("%sの声が響き渡った:", "The voice of %s booms out:"), chaos_patrons[p_ptr->chaos_patron]);
368
369                         msg_print(_("「我がささやかなる賜物を受けとるがよい!」", "'Receive this modest gift from me!'"));
370
371                         for (dummy = 0; dummy < A_MAX; dummy++)
372                         {
373                                 (void)do_inc_stat(dummy);
374                         }
375                         reward = _("全能力値が上がった。", "increasing all stats");
376                         break;
377
378                 case REW_HURT_LOT:
379
380                         msg_format(_("%sの声が響き渡った:", "The voice of %s booms out:"), chaos_patrons[p_ptr->chaos_patron]);
381                         msg_print(_("「苦しむがよい、無能な愚か者よ!」", "'Suffer, pathetic fool!'"));
382
383                         fire_ball(GF_DISINTEGRATE, 0, p_ptr->lev * 4, 4);
384                         take_hit(DAMAGE_NOESCAPE, p_ptr->lev * 4, wrath_reason, -1);
385                         reward = _("分解の球が発生した。", "generating disintegration ball");
386                         break;
387
388                 case REW_HEAL_FUL:
389
390                         msg_format(_("%sの声が響き渡った:", "The voice of %s booms out:"), chaos_patrons[p_ptr->chaos_patron]);
391                         (void)restore_level();
392                         (void)restore_all_status();
393                         (void)true_healing(5000);
394                         reward = _("体力が回復した。", "healing");
395                         break;
396
397                 case REW_CURSE_WP:
398
399                         if (!buki_motteruka(INVEN_RARM) && !buki_motteruka(INVEN_LARM)) break;
400                         msg_format(_("%sの声が響き渡った:", "The voice of %s booms out:"), chaos_patrons[p_ptr->chaos_patron]);
401                         msg_print(_("「汝、武器に頼ることなかれ。」", "'Thou reliest too much on thy weapon.'"));
402
403                         dummy = INVEN_RARM;
404                         if (buki_motteruka(INVEN_LARM))
405                         {
406                                 dummy = INVEN_LARM;
407                                 if (buki_motteruka(INVEN_RARM) && one_in_(2)) dummy = INVEN_RARM;
408                         }
409                         object_desc(o_name, &inventory[dummy], OD_NAME_ONLY);
410                         (void)curse_weapon(FALSE, dummy);
411                         reward = format(_("%sが破壊された。", "destroying %s"), o_name);
412                         break;
413
414                 case REW_CURSE_AR:
415
416                         if (!inventory[INVEN_BODY].k_idx) break;
417                         msg_format(_("%sの声が響き渡った:", "The voice of %s booms out:"), chaos_patrons[p_ptr->chaos_patron]);
418                         msg_print(_("「汝、防具に頼ることなかれ。」", "'Thou reliest too much on thine equipment.'"));
419
420                         object_desc(o_name, &inventory[INVEN_BODY], OD_NAME_ONLY);
421                         (void)curse_armor();
422                         reward = format(_("%sが破壊された。", "destroying %s"), o_name);
423                         break;
424                 case REW_PISS_OFF:
425
426                         msg_format(_("%sの声がささやいた:", "The voice of %s whispers:"), chaos_patrons[p_ptr->chaos_patron]);
427                         msg_print(_("「我を怒りしめた罪を償うべし。」", "'Now thou shalt pay for annoying me.'"));
428
429                         switch (randint1(4))
430                         {
431                         case 1:
432                                 (void)activate_ty_curse(FALSE, &count);
433                                 reward = _("禍々しい呪いをかけられた。", "cursing");
434                                 break;
435                         case 2:
436                                 activate_hi_summon(p_ptr->y, p_ptr->x, FALSE);
437                                 reward = _("モンスターを召喚された。", "summoning hostile monsters");
438                                 break;
439                         case 3:
440                                 if (one_in_(2))
441                                 {
442                                         if (!buki_motteruka(INVEN_RARM) && !buki_motteruka(INVEN_LARM)) break;
443                                         dummy = INVEN_RARM;
444                                         if (buki_motteruka(INVEN_LARM))
445                                         {
446                                                 dummy = INVEN_LARM;
447                                                 if (buki_motteruka(INVEN_RARM) && one_in_(2)) dummy = INVEN_RARM;
448                                         }
449                                         object_desc(o_name, &inventory[dummy], OD_NAME_ONLY);
450                                         (void)curse_weapon(FALSE, dummy);
451                                         reward = format(_("%sが破壊された。", "destroying %s"), o_name);
452                                 }
453                                 else
454                                 {
455                                         if (!inventory[INVEN_BODY].k_idx) break;
456                                         object_desc(o_name, &inventory[INVEN_BODY], OD_NAME_ONLY);
457                                         (void)curse_armor();
458                                         reward = format(_("%sが破壊された。", "destroying %s"), o_name);
459                                 }
460                                 break;
461                         default:
462                                 for (dummy = 0; dummy < A_MAX; dummy++)
463                                 {
464                                         (void)dec_stat(dummy, 10 + randint1(15), TRUE);
465                                 }
466                                 reward = _("全能力値が下がった。", "decreasing all stats");
467                                 break;
468                         }
469                         break;
470
471                 case REW_WRATH:
472
473                         msg_format(_("%sの声が轟き渡った:", "The voice of %s thunders:"), chaos_patrons[p_ptr->chaos_patron]);
474                         msg_print(_("「死ぬがよい、下僕よ!」", "'Die, mortal!'"));
475
476                         take_hit(DAMAGE_LOSELIFE, p_ptr->lev * 4, wrath_reason, -1);
477                         for (dummy = 0; dummy < A_MAX; dummy++)
478                         {
479                                 (void)dec_stat(dummy, 10 + randint1(15), FALSE);
480                         }
481                         activate_hi_summon(p_ptr->y, p_ptr->x, FALSE);
482                         (void)activate_ty_curse(FALSE, &count);
483                         if (one_in_(2))
484                         {
485                                 dummy = 0;
486
487                                 if (buki_motteruka(INVEN_RARM))
488                                 {
489                                         dummy = INVEN_RARM;
490                                         if (buki_motteruka(INVEN_LARM) && one_in_(2)) dummy = INVEN_LARM;
491                                 }
492                                 else if (buki_motteruka(INVEN_LARM)) dummy = INVEN_LARM;
493
494                                 if (dummy) (void)curse_weapon(FALSE, dummy);
495                         }
496                         if (one_in_(2)) (void)curse_armor();
497                         break;
498
499                 case REW_DESTRUCT:
500
501                         msg_format(_("%sの声が響き渡った:", "The voice of %s booms out:"), chaos_patrons[p_ptr->chaos_patron]);
502                         msg_print(_("「死と破壊こそ我が喜びなり!」", "'Death and destruction! This pleaseth me!'"));
503
504                         (void)destroy_area(p_ptr->y, p_ptr->x, 25, FALSE);
505                         reward = _("ダンジョンが*破壊*された。", "*destruct*ing dungeon");
506                         break;
507
508                 case REW_GENOCIDE:
509
510                         msg_format(_("%sの声が響き渡った:", "The voice of %s booms out:"), chaos_patrons[p_ptr->chaos_patron]);
511                         msg_print(_("「我、汝の敵を抹殺せん!」", "'Let me relieve thee of thine oppressors!'"));
512                         (void)symbol_genocide(0, FALSE);
513                         reward = _("モンスターが抹殺された。", "genociding monsters");
514                         break;
515
516                 case REW_MASS_GEN:
517
518                         msg_format(_("%sの声が響き渡った:", "The voice of %s booms out:"), chaos_patrons[p_ptr->chaos_patron]);
519                         msg_print(_("「我、汝の敵を抹殺せん!」", "'Let me relieve thee of thine oppressors!'"));
520
521                         (void)mass_genocide(0, FALSE);
522                         reward = _("モンスターが抹殺された。", "genociding nearby monsters");
523                         break;
524
525                 case REW_DISPEL_C:
526
527                         msg_format(_("%sの力が敵を攻撃するのを感じた!", "You can feel the power of %s assault your enemies!"), chaos_patrons[p_ptr->chaos_patron]);
528                         (void)dispel_monsters(p_ptr->lev * 4);
529                         break;
530
531                 case REW_IGNORE:
532
533                         msg_format(_("%sはあなたを無視した。", "%s ignores you."), chaos_patrons[p_ptr->chaos_patron]);
534                         break;
535
536                 case REW_SER_DEMO:
537
538                         msg_format(_("%sは褒美として悪魔の使いをよこした!", "%s rewards you with a demonic servant!"), chaos_patrons[p_ptr->chaos_patron]);
539
540                         if (!summon_specific(-1, p_ptr->y, p_ptr->x, dun_level, SUMMON_DEMON, PM_FORCE_PET, '\0'))
541                                 msg_print(_("何も現れなかった...", "Nobody ever turns up..."));
542                         else
543                                 reward = _("悪魔がペットになった。", "a demonic servant");
544
545                         break;
546
547                 case REW_SER_MONS:
548                         msg_format(_("%sは褒美として使いをよこした!", "%s rewards you with a servant!"), chaos_patrons[p_ptr->chaos_patron]);
549
550                         if (!summon_specific(-1, p_ptr->y, p_ptr->x, dun_level, 0, PM_FORCE_PET, '\0'))
551                                 msg_print(_("何も現れなかった...", "Nobody ever turns up..."));
552                         else
553                                 reward = _("モンスターがペットになった。", "a servant");
554
555                         break;
556
557                 case REW_SER_UNDE:
558                         msg_format(_("%sは褒美としてアンデッドの使いをよこした。", "%s rewards you with an undead servant!"), chaos_patrons[p_ptr->chaos_patron]);
559
560                         if (!summon_specific(-1, p_ptr->y, p_ptr->x, dun_level, SUMMON_UNDEAD, PM_FORCE_PET, '\0'))
561                                 msg_print(_("何も現れなかった...", "Nobody ever turns up..."));
562                         else
563                                 reward = _("アンデッドがペットになった。", "an undead servant");
564
565                         break;
566
567                 default:
568                         msg_format(_("%sの声がどもった:", "The voice of %s stammers:"),
569
570                                 chaos_patrons[p_ptr->chaos_patron]);
571                         msg_format(_("「あー、あー、答えは %d/%d。質問は何?」", "'Uh... uh... the answer's %d/%d, what's the question?'"), type, effect);
572
573                 }
574         }
575         if (reward)
576         {
577                 do_cmd_write_nikki(NIKKI_BUNSHOU, 0, format(_("パトロンの報酬で%s", "The patron rewards you with %s."), reward));
578         }
579 }
580