1 #include "view/display-self-info.h"
2 #include "io/input-key-acceptor.h"
3 #include "player-info/avatar.h"
4 #include "player-info/self-info-util.h"
5 #include "player/player-race.h"
6 #include "player/player-status-table.h"
7 #include "term/screen-processor.h"
9 void display_life_rating(player_type *creature_ptr, self_info_type *si_ptr)
11 creature_ptr->knowledge |= KNOW_STAT | KNOW_HPRATE;
12 strcpy(si_ptr->plev_buf, "");
14 = (int)(((long)creature_ptr->player_hp[PY_MAX_LEVEL - 1] * 200L) / (2 * creature_ptr->hitdie + ((PY_MAX_LEVEL - 1 + 3) * (creature_ptr->hitdie + 1))));
15 sprintf(si_ptr->plev_buf, _("
\8c»
\8dÝ
\82Ì
\91Ì
\97Í
\83\89\83\93\83N : %d/100", "Your current Life Rating is %d/100."), percent);
16 strcpy(si_ptr->buf[0], si_ptr->plev_buf);
17 si_ptr->info[si_ptr->line++] = si_ptr->buf[0];
18 si_ptr->info[si_ptr->line++] = "";
21 void display_max_base_status(player_type *creature_ptr, self_info_type *si_ptr)
23 si_ptr->info[si_ptr->line++] = _("
\94\
\97Í
\82Ì
\8dÅ
\91å
\92l", "Limits of maximum stats");
24 for (base_status_type v_nr = 0; v_nr < A_MAX; v_nr++) {
26 sprintf(stat_desc, "%s 18/%d", stat_names[v_nr], creature_ptr->stat_max_max[v_nr] - 18);
27 strcpy(si_ptr->s_string[v_nr], stat_desc);
28 si_ptr->info[si_ptr->line++] = si_ptr->s_string[v_nr];
32 void display_virtue(player_type *creature_ptr, self_info_type *si_ptr)
34 si_ptr->info[si_ptr->line++] = "";
35 sprintf(si_ptr->plev_buf, _("
\8c»
\8dÝ
\82Ì
\91®
\90« : %s(%ld)", "Your alignment : %s(%ld)"), your_alignment(creature_ptr), (long int)creature_ptr->align);
36 strcpy(si_ptr->buf[1], si_ptr->plev_buf);
37 si_ptr->info[si_ptr->line++] = si_ptr->buf[1];
38 for (int v_nr = 0; v_nr < 8; v_nr++) {
39 GAME_TEXT vir_name[20];
41 int tester = creature_ptr->virtues[v_nr];
42 strcpy(vir_name, virtue[(creature_ptr->vir_types[v_nr]) - 1]);
43 sprintf(vir_desc, _("
\82¨
\82Á
\82Æ
\81B%s
\82Ì
\8fî
\95ñ
\82È
\82µ
\81B", "Oops. No info about %s."), vir_name);
45 sprintf(vir_desc, _("[%s]
\82Ì
\91Î
\8bÉ (%d)", "You are the polar opposite of %s (%d)."), vir_name, tester);
46 else if (tester < -80)
47 sprintf(vir_desc, _("[%s]
\82Ì
\91å
\93G (%d)", "You are an arch-enemy of %s (%d)."), vir_name, tester);
48 else if (tester < -60)
49 sprintf(vir_desc, _("[%s]
\82Ì
\8b
\93G (%d)", "You are a bitter enemy of %s (%d)."), vir_name, tester);
50 else if (tester < -40)
51 sprintf(vir_desc, _("[%s]
\82Ì
\93G (%d)", "You are an enemy of %s (%d)."), vir_name, tester);
52 else if (tester < -20)
53 sprintf(vir_desc, _("[%s]
\82Ì
\8dß
\8eÒ (%d)", "You have sinned against %s (%d)."), vir_name, tester);
55 sprintf(vir_desc, _("[%s]
\82Ì
\96À
\93¹
\8eÒ (%d)", "You have strayed from the path of %s (%d)."), vir_name, tester);
57 sprintf(vir_desc, _("[%s]
\82Ì
\92\86\97§
\8eÒ (%d)", "You are neutral to %s (%d)."), vir_name, tester);
59 sprintf(vir_desc, _("[%s]
\82Ì
\8f¬
\93¿
\8eÒ (%d)", "You are somewhat virtuous in %s (%d)."), vir_name, tester);
61 sprintf(vir_desc, _("[%s]
\82Ì
\92\86\93¿
\8eÒ (%d)", "You are virtuous in %s (%d)."), vir_name, tester);
63 sprintf(vir_desc, _("[%s]
\82Ì
\8d\82\93¿
\8eÒ (%d)", "You are very virtuous in %s (%d)."), vir_name, tester);
65 sprintf(vir_desc, _("[%s]
\82Ì
\94e
\8eÒ (%d)", "You are a champion of %s (%d)."), vir_name, tester);
66 else if (tester < 100)
67 sprintf(vir_desc, _("[%s]
\82Ì
\88Ì
\91å
\82È
\94e
\8eÒ (%d)", "You are a great champion of %s (%d)."), vir_name, tester);
69 sprintf(vir_desc, _("[%s]
\82Ì
\8bï
\8c»
\8eÒ (%d)", "You are the living embodiment of %s (%d)."), vir_name, tester);
71 strcpy(si_ptr->v_string[v_nr], vir_desc);
72 si_ptr->info[si_ptr->line++] = si_ptr->v_string[v_nr];
76 void display_mimic_race_ability(player_type *creature_ptr, self_info_type *si_ptr)
78 switch (creature_ptr->mimic_form) {
80 case MIMIC_DEMON_LORD:
81 sprintf(si_ptr->plev_buf, _("
\82 \82È
\82½
\82Í %d
\83_
\83\81\81[
\83W
\82Ì
\92n
\8d\96\82©
\89Î
\89\8a\82Ì
\83u
\83\8c\83X
\82ð
\93f
\82
\82±
\82Æ
\82ª
\82Å
\82«
\82é
\81B(%d MP)", "You can nether breathe, dam. %d (cost %d)."),
82 3 * creature_ptr->lev, 10 + creature_ptr->lev / 3);
84 si_ptr->info[si_ptr->line++] = si_ptr->plev_buf;
87 if (creature_ptr->lev <= 1)
90 sprintf(si_ptr->plev_buf, _("
\82 \82È
\82½
\82Í
\93G
\82©
\82ç %d-%d HP
\82Ì
\90¶
\96½
\97Í
\82ð
\8bz
\8eû
\82Å
\82«
\82é
\81B(%d MP)", "You can steal life from a foe, dam. %d-%d (cost %d)."),
91 creature_ptr->lev + MAX(1, creature_ptr->lev / 10), creature_ptr->lev + creature_ptr->lev * MAX(1, creature_ptr->lev / 10),
92 1 + (creature_ptr->lev / 3));
93 si_ptr->info[si_ptr->line++] = si_ptr->plev_buf;
98 void display_self_info(self_info_type *si_ptr)
101 for (int k = 1; k < 24; k++)
104 prt(_("
\82 \82È
\82½
\82Ì
\8fó
\91Ô:", " Your Attributes:"), 1, 15);
106 for (int j = 0; j < si_ptr->line; j++) {
107 prt(si_ptr->info[j], k++, 15);
109 /* Every 20 entries (lines 2 to 21), start over */
110 if ((k != 22) || (j + 1 >= si_ptr->line))
113 prt(_("--
\91±
\82 --", "-- more --"), k, 15);
119 prt(_("[
\89½
\82©
\83L
\81[
\82ð
\89\9f\82·
\82Æ
\83Q
\81[
\83\80\82É
\96ß
\82è
\82Ü
\82·]", "[Press any key to continue]"), k, 13);