Skip to content

Commit e840218

Browse files
authored
Merge pull request #111 from wowsims/fix/avoid-dr-nan
Fix/avoid dr nan
2 parents b84334c + f9b4125 commit e840218

4 files changed

Lines changed: 15 additions & 5 deletions

File tree

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
saved_version_number: 1

sim/core/avoid_dr.go

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,20 +30,29 @@ var AvoidanceDRByClass = map[proto.Class]DiminishingReturnsConstants{
3030
func (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

3740
func (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

4450
func (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
}

sim/monk/brewmaster/TestBrewmaster.results

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ character_stats_results: {
3232
final_stats: 22.54412
3333
final_stats: 38.74531
3434
final_stats: 19.035
35-
final_stats: 5
35+
final_stats: 0
3636
}
3737
}
3838
dps_results: {

sim/monk/windwalker/TestWindwalker.results

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ character_stats_results: {
3232
final_stats: 14.91471
3333
final_stats: 31.01271
3434
final_stats: 13.22
35-
final_stats: 5
35+
final_stats: 0
3636
}
3737
}
3838
dps_results: {

0 commit comments

Comments
 (0)