Why does someone always assume it is a user error. For gods sake.
The original equation:
(Math.floor((float)(If(cfdefr1a==0,0,If(10.0cfatkr1a/cfdefr1a>=5,0,2-1.0cfdefr1a/cfatkr1a))+drm1d10atkra+numdefrflippeda+If(hexcitya==“yes”&&hexfactsa>0&&engra>0,100.0,0.0)-If(hexcitya==“yes”&&hexfactsa>0&&engra<0,100.0,0.0)+If(hexweathera==“Fine”&&hexcitya==“no”&&(hexterraina==“clear”||hexterraina==“desert”)&&combatchoicea==“Blitz”&&numatkrarm1a>(numdefrarm1a+numdefrmech1a+numdefrataaunitsa),100.0,0.0)-If(hexweathera==“Fine”&&hexcitya==“no”&&(hexterraina==“clear”||hexterraina==“desert”)&&numatkrarm1a<numdefrarm1a,100.0,0.0)-If(hexcitya==“yes”&&hexfactsa>0,100.0,0.0)+If(nummapatkr>1,-100.0,0.0)-If((hexweathera==“Snow”||hexweathera==“Blizzard”)&&numdefrwintunits1a/numdefrunitsa>0.5,100.0,0.0)-If(numterratkrout==0,0,If(numatkrunitsa==numterratkrout,100.0,0.0))-If(hexterraina==“jungle”&&10*numatkrjungle1a/numatkrunitsa<5.0,100.0,0.0))))/100.0
The a?b:c equation (post adding the extra () for each a?b:c part of the equation:
(Math.floor((float)((cfdefr1a==0||cfatkr1a/cfdefr1a>=0.5?0:2-1.0*cfdefr1a/cfatkr1a)+drm1d10atkra+numdefrflippeda+(hexcitya==“yes”&&hexfactsa>0&&engra>0?100:0)-(hexcitya==“yes”&&hexfactsa>0&&engra<0?100:0)+(hexweathera==“Fine”&&hexcitya==“no”&&(hexterraina==“clear”||hexterraina==“desert”)&&combatchoicea==“Blitz”&&numatkrarm1a>(numdefrarm1a+numdefrmech1a+numdefrataaunitsa)?100:0)-(hexweathera==“Fine”&&hexcitya==“no”&&(hexterraina==“clear”||hexterraina==“desert”)&&numatkrarm1a<numdefrarm1a?100:0)-(hexcitya==“yes”&&hexfactsa>0?100:0)-(nummapatkr>1?100:0)-((hexweathera==“Snow”||hexweathera==“Blizzard”)&&numdefrwintunits1a/numdefrunitsa>0.5?100:0)-(numterratkrout==0?0:(numatkrunitsa==numterratkrout?100:0))-(hexterraina==“jungle”&&numatkrjungle1a/numatkrunitsa<0.5?100:0))))/100.0
The If,then,else equation worked. I replaced it with the a?b:c construct and it failed. I deduced that each set of a?b:c between each +,-,*,/ must be separated, thus the added (). If I had left it as an If,then,else it would continue to work. My changes to a?b:c failed and required more work to solve.
Thus, to reiterate, developers need both cases to exist, not ‘stop advertising it’, but both must coexist as tools within Vassal.
This, as happenstance fortuitously exists, relates to my other post on ditching all the maths within vassal to use an excel or equivalent to do the maths. Slimy’s post on that thread is just SOOO negative.
https://forum.vassalengine.org/t/thought-bubble-for-future-version/10805/1
Dear Slimy, have you ever been exposed to kaizan? Incremental improvement to the process. A part of the overall quality improvement evolution that should always be a part of doing business. Do not, EVER, subscribe to ‘it works why change’ philosophy. There is ALWAYS a better way of doing it and I, for one, will ALWAYS endeavour to try and achieve that.