Wizards learn about spellbooks as they enhance their spell skills
Previously, Wizards got a boost to the chance of writing unknown spellbooks based purely on being a Wizard (with the chance still luck-based), leading to a very large power spike when the Wizard gained access to a luckstone and the ability to max out luck. This had two main issues: this power spike came *after* the major early-game difficulty spike, often leaving Wizards forced to deal with it without having appropriate spells; and it promotes grinding (for Luck and for Magicbane) at an early point in the game, meaning that the Wizard early game effectively followed a sequence of extreme difficulty -> grinding -> minimal difficulty, which isn't very good balance-wise. With this commit, Wizards lose their advantage to writing unknown spellbooks by guessing, and instead learn spellbook IDs based on their spell skills (advancing a skill gives knowledge of higher- level spellbooks). This means that writing unknown spellbooks becomes guaranteed with sufficient skill, but has no advantage over non-Wizards in schools where the Wixard does not have sufficient skill. Due to Wizards' skill caps, there are two spells which they can't ever write guaranteed: create familiar and charm monster. Create familiar is a fairly niche spell (that doesn't match the Wizard playstyle that well) and being unable to write it is not a major problem. The inability to easily write charm monster is intentional.
This commit is contained in:
@@ -1136,6 +1136,8 @@ skill_advance(int skill)
|
||||
You("are now %s skilled in %s.",
|
||||
P_SKILL(skill) >= P_MAX_SKILL(skill) ? "most" : "more",
|
||||
P_NAME(skill));
|
||||
|
||||
skill_based_spellbook_id();
|
||||
}
|
||||
|
||||
static const struct skill_range {
|
||||
@@ -1689,6 +1691,8 @@ skill_init(const struct def_skill *class_skill)
|
||||
/* each role has a special spell; allow at least basic for its type
|
||||
(despite the function name, this works for spell skills too) */
|
||||
unrestrict_weapon_skill(spell_skilltype(gu.urole.spelspec));
|
||||
|
||||
skill_based_spellbook_id();
|
||||
}
|
||||
|
||||
void
|
||||
|
||||
Reference in New Issue
Block a user