Saving throws in reverse. Id like to make attributes have alot more impact on the game. Is there a way to do the following:?
- Make your higher DEX lower your opponents hitroll when they are fighting you
- Make your higher INT lower your opponents save_spell when it tries to save against your spell
- Make your higher WIS increase your own save vs. spell
In this way, every melee attack becomes a balance between the attacker's STR and defender's DEX, and every spell cast becomes a fight between the caster's INT and the victim's WIS.
Of course there is a way that it can be done, but since it hasn't been done that way before (that I know of), you'd have to come up with the code to do it yourself. For the most part, it should eb fairly easy changes, but make sure you use grep to ensure you haven't missed anything.
Erm, isn't it already that way when you get right down to it?
Your Dex affects both your Armor Class and your Ranged attack, while your Str affects your Melee attack?
It isn't really a Saving Throw in reverse, but don't those attributes (stats) affect those things already?
Yeah when it comes to the Dex vs. Str thing it really is a question of semantics. Whether your dex lowers opponents hitroll or increases the chance they miss by Thac0 really amounts to the same thing. The part im really more interested in is when it comes to spells.
Id like when you cast an offensive spell such as fireball, your int reduces their chance to save. Likewise with a spell such as charm, your Cha reduces their chance to save. Finally I could make Cha important and valuable
This should be pretty easy since IIRC the saving throws are implemented as functions. You would need to add a parameter to the saving throw functions that is the character causing the saving throw. That character's stats will add a modifier to the roll.
If that character is NULL, the modifier is 0.
If the character is non-null, you get the appropriate attribute from the character and apply it in whatever way is appropriate to the saving throw.
Ahh hehe. Well I was scanning through some things tonight looking for how I might do that, its on the back burner for the moment while I work on the stat gains for level advancement. But Im thinking Im going to have to call up the caster's Int or Cha or whatever for each particular spell that I want this to effect, so that it only applies a +save_spell (bad) to the victim at the time the spell is cast. Otherwise it seems like it would permanently effect the victim's saves.
I'm not sure what you mean by it permanently affecting the victim's saving throws. If you call the save function with a NULL "actor" parameter, it does the normal thing. Therefore, whenever you want the new system, you add the actor parameter; otherwise, you leave it as NULL.
Here's a hint: take the old version of the function and add the parameter and do the appropriate stuff. Then recreate the old function prototype, and have it be a wrapper to the new function with a NULL parameter. This way, by default, there will be no 'actor', and you get to decide exactly when to use the actor.
But on the other hand, not having the old function lying around will cause compiler errors everywhere the saving throw functions are called, which might be good because it lets you make individual decisions about each and every one of them.
All this said, I think you are quite correct to focus on one thing at a time... :-)