
Originally Posted by
Coyopa
OK. What I can't understand, as a programmer, is why it was impossible fix the order of operations (the order in which crit range effects were applied). Clearly, they are currently (on live) being applied using this kind of an equation:
Code:
(baseWeapon + enhancements + destinies + whateverElseNotAFeat) * 2
I can't understand why it is so hard to change the equation to this:
Code:
(baseWeapon*2) + enhancements + destinies + whateverElseNotAFeat
If they'd done that, the problem would have been solved. Yet, for some reason, they seem to have been incapable of ever making this change, while at the same time being able to completely gut that code and replace it.

Originally Posted by
walkin_dude
Definitely a good question. My inclination is that, for some reason, it's more complicated than that.

Originally Posted by
Coyopa
I don't know. In the end, the changes to crit ranges are all mathematics. So, at some point, there has to be an equation and that means you can change the order of operations. Maybe they just couldn't be bothered to actually find that part of the code and straighten it out.
I think its something like
Code:
obj Weapon {
threat = 0.30%
void increaseThreat(number){
threat += number;
}
getThreat(){
return threat
}
}
obj Character{
mainHand = new Weapon();
feats = [...,Improved Crtical,...]
onLoad(){
ApplyEnhancments()
ApplyFeats(feats);
}
}
ApplyFeats(){
forEach(feat){
feat.applyeffect(){
ImprovedCritcalFeat.applyEffect{
this.character.mainHand.getThreat = improvedCrticalGetThreat; // function is changed
}
}
}
}
That's one option for coding this with out actually having the equation you are talking about.
Now this is really simple example it can be changed with out consequence and only effect the base weapon threat but if its not this simple this kind of code can create a life cycle issue where there is no easy way to get to the pre enchantment applied threat range.