I've started rewriting some of the spells to make them more friendly when bad arguments are provided. For example:
- Hermetic resonance rewritten to make sure a valid spell name is entered. Also found rebirth exploit and removed it.
- Supplication rewritten to make sure a valid supplication type or name was entered.
- Summon undead rewritten to make sure the summon creature is valid. I also modified it so that if the player gives a number of undead that is too big, the parsing function figures it out and reduces the number. So if I try to summon 3 and I can only summon 2, it summons the 2, charges only the mana required for the 2 and spits out a message that I can't handle any more than 2. It's also smarter with how the total mana cost is calculated - the cost still increases as the number of undead increases but if the total ends up being too much, the spell fails and no mana is deducted. I feel like this breaks realism in some way (like I should still charge mana for attempting) but in the end it's just a better user experience. Also scrolls/wands/charms that cast this spell would still cost mana per undead and that should not be the case any longer.
- Clan keys should no longer work when non-clan members attempt to use them. Currently Legends is the only clan where I have set the key so we'll have a limited test before we move forward. I ended up rewriting most of the open/close/lock/unlock code for doors so I could create a proc intercept for those commands. There was a bug filed against the skeleton key in the Tower in Grv - I'm curious if the skeleton key works better now.
I'm open to suggestions on other spells that need rewritten to handle bad arguments better.