A possible new accuracy system
Posted: 14 Oct 2018, 23:38
5 years ago a poll took place to decide what accuracy system should be used and an intense discussion ensued. The current accuracy system calculates the hit chance independent from the distance to the target. Although I know that I perhaps open Pandora's box, I want to introduce a system where the hit chance depends on the distance to the target.
So what I'm thinking about is a calculation like this:
hitChance(%) = 100 - resultMissChance(%)
resultMissChance = Distance in tiles x baseMissChance(%) x accuracy bonuses
An example for a baseMissChance of 2.5 and no bonuses
Distance hitChance
1 tile 97.5 %
2 tiles 95 %
10 tiles 75 %
To include accuracy bonuses for the player and the target
resultMissChance = Distance in tiles x baseMissChance x (1 - experience accuracy bonus to the weapon type(%)/100 + experience accuracy bonus dodge of target(%)/100) x (1 - accuracy upgrade of the attacker(%)/100)
An example for a hero unit with one accuracy upgrade shooting at a veteran unit in a distance of 10 tiles and a baseMissChance as above
resultMissChance = 10 x 2.5 x (1 - 0.4 + 0.25) x 0.9 = 10 x 2.5 x 0.85 x 0.9 = 19.1
The hitChance for a distance of 10 tiles would thereby increase from 75 % to 80.9 %
baseMissChance can replace longHit in the weapons.json file and thereby the accuracy of every weapon can be set individually. A baseMissChance of 2.5 can be set for direct firing weapons like cannons. For indirect firing weapons the value would be of course lower. E.g. for mortars 1.0 so that the hitChance for a shoot over 18 tiles would be 82 % and for Ripple Rockets e.g. to 0.3 so that the hitChance for a shoot over 80 tiles would be 76 %.
These changes could have a noticeable effect to the balance of the game. Therefore this idea should be soonest implemented to a master version after the next release so that it can be extensivly tested before implementation, if it ever get implemented into a release.
So what I'm thinking about is a calculation like this:
hitChance(%) = 100 - resultMissChance(%)
resultMissChance = Distance in tiles x baseMissChance(%) x accuracy bonuses
An example for a baseMissChance of 2.5 and no bonuses
Distance hitChance
1 tile 97.5 %
2 tiles 95 %
10 tiles 75 %
To include accuracy bonuses for the player and the target
resultMissChance = Distance in tiles x baseMissChance x (1 - experience accuracy bonus to the weapon type(%)/100 + experience accuracy bonus dodge of target(%)/100) x (1 - accuracy upgrade of the attacker(%)/100)
An example for a hero unit with one accuracy upgrade shooting at a veteran unit in a distance of 10 tiles and a baseMissChance as above
resultMissChance = 10 x 2.5 x (1 - 0.4 + 0.25) x 0.9 = 10 x 2.5 x 0.85 x 0.9 = 19.1
The hitChance for a distance of 10 tiles would thereby increase from 75 % to 80.9 %
baseMissChance can replace longHit in the weapons.json file and thereby the accuracy of every weapon can be set individually. A baseMissChance of 2.5 can be set for direct firing weapons like cannons. For indirect firing weapons the value would be of course lower. E.g. for mortars 1.0 so that the hitChance for a shoot over 18 tiles would be 82 % and for Ripple Rockets e.g. to 0.3 so that the hitChance for a shoot over 80 tiles would be 76 %.
These changes could have a noticeable effect to the balance of the game. Therefore this idea should be soonest implemented to a master version after the next release so that it can be extensivly tested before implementation, if it ever get implemented into a release.