From 3d7b154639f15740d787602c8cd88afe8176efb0 Mon Sep 17 00:00:00 2001 From: mogami Date: Sun, 16 Jun 2002 01:49:05 +0000 Subject: [PATCH] =?utf8?q?=E3=82=B5=E3=83=96=E3=82=A6=E3=82=A3=E3=83=B3?= =?utf8?q?=E3=83=89=E3=82=A6=E3=81=AE=E5=91=AA=E6=96=87=E3=83=AA=E3=82=B9?= =?utf8?q?=E3=83=88=E3=82=92=E8=A1=A8=E7=A4=BA=E3=81=99=E3=82=8B=E3=81=A8?= =?utf8?q?=E9=9D=92=E9=AD=94=E9=81=93=E5=B8=AB=E3=81=A8=E9=8F=A1=E4=BD=BF?= =?utf8?q?=E3=81=84=E3=81=A7=20=E3=82=AF=E3=83=A9=E3=83=83=E3=82=B7?= =?utf8?q?=E3=83=A5=E3=81=97=E3=81=A6=E3=81=84=E3=81=9F=E3=83=90=E3=82=B0?= =?utf8?q?=E4=BF=AE=E6=AD=A3=E3=80=82=E5=90=8C=E6=99=82=E3=81=AB=E7=8B=82?= =?utf8?q?=E6=88=A6=E5=A3=AB=E3=80=81=E9=8F=A1=E4=BD=BF=E3=81=84=E3=80=81?= =?utf8?q?=E5=BF=8D=E8=80=85=E3=81=A7=20=E5=91=AA=E6=96=87=E3=83=AA?= =?utf8?q?=E3=82=B9=E3=83=88=E3=82=92=E3=81=A1=E3=82=83=E3=82=93=E3=81=A8?= =?utf8?q?=E8=A1=A8=E7=A4=BA=E3=81=99=E3=82=8B=E3=82=88=E3=81=86=E3=81=AB?= =?utf8?q?=E3=81=97=E3=81=9F=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- src/spells3.c | 44 +++++++++++++++++++++++++++++++++----------- 1 file changed, 33 insertions(+), 11 deletions(-) diff --git a/src/spells3.c b/src/spells3.c index f9bde6985..e1fce55f7 100644 --- a/src/spells3.c +++ b/src/spells3.c @@ -3722,13 +3722,16 @@ void display_spell_list(void) /* Erase window */ clear_from(0); - /* Warriors are illiterate */ - if (!mp_ptr->spell_book) return; + /* They have too many spells to list */ if (p_ptr->pclass == CLASS_SORCERER) return; if (p_ptr->pclass == CLASS_RED_MAGE) return; - /* Mindcrafter spell-list */ - if ((p_ptr->pclass == CLASS_MINDCRAFTER) || (p_ptr->pclass == CLASS_FORCETRAINER)) + /* mind.c type classes */ + if ((p_ptr->pclass == CLASS_MINDCRAFTER) || + (p_ptr->pclass == CLASS_BERSERKER) || + (p_ptr->pclass == CLASS_NINJA) || + (p_ptr->pclass == CLASS_MIRROR_MASTER) || + (p_ptr->pclass == CLASS_FORCETRAINER)) { int i; int y = 1; @@ -3740,6 +3743,7 @@ void display_spell_list(void) char comment[80]; char psi_desc[80]; int use_mind; + bool use_hp = FALSE; /* Display a list of spells */ prt("", y, x); @@ -3753,9 +3757,12 @@ put_str("Lv MP switch(p_ptr->pclass) { - case CLASS_MINDCRAFTER: use_mind = MIND_MINDCRAFTER;break; - case CLASS_FORCETRAINER: use_mind = MIND_KI;break; - default: use_mind = 0;break; + case CLASS_MINDCRAFTER: use_mind = MIND_MINDCRAFTER;break; + case CLASS_FORCETRAINER: use_mind = MIND_KI;break; + case CLASS_BERSERKER: use_mind = MIND_BERSERKER; use_hp = TRUE; break; + case CLASS_MIRROR_MASTER: use_mind = MIND_MIRROR_MASTER; break; + case CLASS_NINJA: use_mind = MIND_NINJUTSU; use_hp = TRUE; break; + default: use_mind = 0;break; } /* Dump the spells */ @@ -3776,11 +3783,23 @@ put_str("Lv MP /* Reduce failure rate by INT/WIS adjustment */ chance -= 3 * (adj_mag_stat[p_ptr->stat_ind[mp_ptr->spell_stat]] - 1); - /* Not enough mana to cast */ - if (spell.mana_cost > p_ptr->csp) + if (!use_hp) { - chance += 5 * (spell.mana_cost - p_ptr->csp); - a = TERM_ORANGE; + /* Not enough mana to cast */ + if (spell.mana_cost > p_ptr->csp) + { + chance += 5 * (spell.mana_cost - p_ptr->csp); + a = TERM_ORANGE; + } + } + else + { + /* Not enough hp to cast */ + if (spell.mana_cost > p_ptr->chp) + { + chance += 100; + a = TERM_RED; + } } /* Extract the minimum failure rate */ @@ -3809,6 +3828,9 @@ put_str("Lv MP return; } + /* Cannot read spellbooks */ + if (REALM_NONE == p_ptr->realm1) return; + /* Normal spellcaster with books */ /* Scan books */ -- 2.11.0