(April 27th, 2023, 09:06)Seravy Wrote: Heroes are normal units and in fact the Annihilate spell takes advantage of this fact. This will require a separate HeroPenalty parameter.
No it won't. I'm NOT suggesting Heroes be unaffected by "Normal Only" spells. I'm only suggesting they be differentiated from Normal units when it comes to how "NormalPenalty" works.
The example you mention, Annihilate, is the ONLY spell that uses NormalPenalty. Its save penalties are set as follows by default:
SavePenalty=-5
NormalPenalty=-2
(Heroes -7, Normal -7, Fantastic -5)
If NormalPenalty had no effect on Hero saves, then the numbers could be set like this to have the exact same effect:
SavePenalty=-7
FantasticPenalty=2 <== notice positive save penalty
(Heroes -7, Normal -7, Fantastic -5)
Any possible combination of new save penalty settings necessary to duplicate existing save penalty settings remains intact with such a change. (Apparently Annihilate is the ONLY spell that would be effected and need these minor tweaks to its settings.)
As things are now, it's impossible to differentiate Hero saves from other normal units. They're inextricably combined together. I find this uncomfortable from a spell balance perspective with common level "kill" spells in particular such as: Confusion, Black Sleep, etc. For example, I'd like to set the save penalties on Confusion as follows:
SavePenalty=0
NormalPenalty=-2
FantasticPenalty=-2
(Heroes 0, Normal -2, Fantastic -2)
or maybe even:
SavePenalty=-1
NormalPenalty=-2
FantasticPenalty=-1
(Heroes -1, Normal -3, Fantastic -2)
Basically save settings would become fully relative to Heroes. (Which they already are except for 1 spell)
(The impetus for this was a game I played where my Hero had Confusion land on him. I had a superior force and easily won the combat but I noticed my Hero was gone after the fight and I was like WTF... my Hero just got 1-shotted by a Common spell?! I'm now aware of the CCIrrecoverable setting in MODDING.INI and have since set it to 0 but I still feel Confusion needs toning done when used against units as important as Heroes.)
(April 27th, 2023, 09:06)Seravy Wrote: You should already be able to do that by using UnitCalc.CAS, either directly or by creating a new custom enchantment ID and redirecting Weakness to cast that spell.
I was able to figure out how to get a custom implementation of Weakness working. Thanks for putting this functionality in the game, though I would note it was not a trivial amount of effort getting it working. I should be able to re-implement other spells much faster now that I know how it all works.