1. They also recalculate when you change any of the attributes they depend on, and NPC stats work the same. It seems a bit dangerous to work with, the game may break if it assumes too much.
Well, game works fine without HP being recalculated at every corner. Recalc of NPC and PC stats is a single piece of code? Are they not separated?
3. Self cast spells don't generate any checks of nearby objects at all, it applies directly to the caster's active spell effects. Maybe if touch spells hit yourself if you miss a target, but that means I have to change 300 if statements for checking the casting type. You see the problem.
Got it. Pity.
4. You will have to make up a lot of scenarios for easy/hard situations and play around, because it's mostly about getting the formula right.
You mean situations like "newbie rogue vs experienced merchant" or something more specific?
5. I don't know, is this to make all melee less powerful?
It is to make melee moddable. More specific to make influence of strength on damage moddable.
Current formula for melee damage: Damage dealt = weapon damage * (50 + Strength) / 100. These GMSTs are set by default (I checked just now) to 50 (Base) and 0.1 (Mult). So it should look like this: weapon damage * (fDamageStrengthBase + Strength) * fDamageStrengthMult / 10. This way it will not alter anything in the game just by turning this option on, but will allow modders to alter the impact of strength on melee.
6. Creatures don't have base AR, but I make any shield spell bonuses work properly.
How about shields (goblins, etc)? I don't remember if there are creatures with actual armor pieces. Still, shield spell would be pretty good and enough for modding.
7. Maybe, but it's probably better done in a mod.
I have a hard time imagining how one can make script that would affect traps in general and not just specific ones. Fail can be detected via sound, but can exact spell that should be cast on a player be determined at all?
I feel I have more energy now, your GMSTs will get documented.
2. Okay, will fix it in the next beta.
Thanks.