@@ -30,20 +30,29 @@ var AvoidanceDRByClass = map[proto.Class]DiminishingReturnsConstants{
3030func (unit * Unit ) GetDiminishedDodgeChance () float64 {
3131 // undiminished Dodge % = D
3232 // diminished Dodge % = (D * Cd)/((k*Cd) + D)
33+ if unit .avoidanceParams .c_d == 0 {
34+ return 0
35+ }
3336 dodgePercent := unit .stats [stats .DodgeRating ] / DodgeRatingPerDodgePercent
34- return (dodgePercent * unit .avoidanceParams .c_d ) / (unit .avoidanceParams .k * unit .avoidanceParams .c_d + dodgePercent ) / 100
37+ return (dodgePercent * unit .avoidanceParams .c_d ) / (unit .avoidanceParams .k * unit .avoidanceParams .c_d + dodgePercent ) / 100
3538}
3639
3740func (unit * Unit ) GetDiminishedParryChance () float64 {
3841 // undiminished Parry % = P
3942 // diminished Parry % = (P * Cp)/((k*Cp) + P)
43+ if unit .avoidanceParams .c_p == 0 {
44+ return 0
45+ }
4046 parryPercent := unit .stats [stats .ParryRating ] / ParryRatingPerParryPercent
41- return (parryPercent * unit .avoidanceParams .c_p ) / (unit .avoidanceParams .k * unit .avoidanceParams .c_p + parryPercent ) / 100
47+ return (parryPercent * unit .avoidanceParams .c_p ) / (unit .avoidanceParams .k * unit .avoidanceParams .c_p + parryPercent ) / 100
4248}
4349
4450func (unit * Unit ) GetDiminishedBlockChance () float64 {
4551 // undiminished Block % = B
4652 // diminished Block % = (B * Cb)/((k*Cb) + B)
53+ if unit .avoidanceParams .c_b == 0 {
54+ return 0
55+ }
4756 blockPercent := unit .stats [stats .BlockPercent ]
48- return (blockPercent * unit .avoidanceParams .c_b ) / (unit .avoidanceParams .k * unit .avoidanceParams .c_b + blockPercent ) / 100
57+ return (blockPercent * unit .avoidanceParams .c_b ) / (unit .avoidanceParams .k * unit .avoidanceParams .c_b + blockPercent ) / 100
4958}
0 commit comments