return;
}
+ /* Hex */
+ if (p_ptr->realm1 == REALM_HEX)
+ {
+ if (hex_spell_fully())
+ {
+ bool flag = FALSE;
+#ifdef JP
+ msg_print("¤³¤ì°Ê¾å¿·¤·¤¤¼öʸ¤ò±Ó¾§¤¹¤ë¤³¤È¤Ï¤Ç¤¤Ê¤¤¡£");
+#else
+ msg_print("Can not spell new spells more.");
+#endif
+ flush();
+ if (p_ptr->lev >= 35) flag = stop_hex_spell();
+ if (!flag) return;
+ }
+ }
+
if (p_ptr->pclass == CLASS_FORCETRAINER)
{
if (player_has_no_spellbooks())
use_realm = tval2realm(o_ptr->tval);
+ /* Hex */
+ if (use_realm == REALM_HEX)
+ {
+ if (hex_spelling(spell))
+ {
+#ifdef JP
+ msg_print("¤½¤Î¼öʸ¤Ï¤¹¤Ç¤Ë±Ó¾§Ãæ¤À¡£");
+#else
+ msg_print("You are already casting it.");
+#endif
+ return;
+ }
+ }
+
if (!is_magic(use_realm))
{
s_ptr = &technic_info[use_realm - MIN_TECHNIC][spell];
case REALM_CRUSADE:
if (randint1(100) < chance) chg_virtue(V_JUSTICE, -1);
break;
+ case REALM_HEX:
+ if (randint1(100) < chance) chg_virtue(V_COMPASSION, -1);
+ break;
default:
if (randint1(100) < chance) chg_virtue(V_KNOWLEDGE, -1);
break;
chg_virtue(V_NATURE, 1);
chg_virtue(V_HARMONY, 1);
break;
+ case REALM_HEX:
+ chg_virtue(V_JUSTICE, -1);
+ chg_virtue(V_FAITH, -1);
+ chg_virtue(V_HONOUR, -1);
+ chg_virtue(V_COMPASSION, -1);
+ break;
default:
chg_virtue(V_KNOWLEDGE, 1);
break;
if (randint1(100 + p_ptr->lev) < need_mana) chg_virtue(V_NATURE, 1);
if (randint1(100 + p_ptr->lev) < need_mana) chg_virtue(V_HARMONY, 1);
break;
+ case REALM_HEX:
+ if (randint1(100 + p_ptr->lev) < need_mana) chg_virtue(V_JUSTICE, -1);
+ if (randint1(100 + p_ptr->lev) < need_mana) chg_virtue(V_FAITH, -1);
+ if (randint1(100 + p_ptr->lev) < need_mana) chg_virtue(V_HONOUR, -1);
+ if (randint1(100 + p_ptr->lev) < need_mana) chg_virtue(V_COMPASSION, -1);
+ break;
}
if (mp_ptr->spell_xtra & MAGIC_GAIN_EXP)
{
case REALM_CRUSADE:
chg_virtue(V_JUSTICE, -10);
break;
+ case REALM_HEX:
+ chg_virtue(V_COMPASSION, 10);
+ break;
default:
chg_virtue(V_KNOWLEDGE, -10);
break;