Skip to content

Instantly share code, notes, and snippets.

@brailsmt
Last active June 11, 2016 18:52
Show Gist options
  • Save brailsmt/2339c387e0f10f1a307f030f43156651 to your computer and use it in GitHub Desktop.
Save brailsmt/2339c387e0f10f1a307f030f43156651 to your computer and use it in GitHub Desktop.
Print min/max values of a given stat
#!/usr/bin/env ruby
require 'pp'
max_possible = {
:ghost => [25, 10],
:class => [25, 10],
:helm => [46, 19],
:gloves => [41, 17],
:chest => [61, 25],
:boots => [56, 23],
:artifact => [38, 42],
}
DEFENSE_FINAL=335
def fitValue(defense)
if defense > 300
(0.2546 * defense) - 23.825
elsif defense>200
(0.1801 * defense) - 1.4612
else
-1;
end
end
init_defense = ARGV[0].to_f
init_stats = []
init_stats << ARGV[1].to_f
init_stats << ARGV[2].to_f
min = []
max = []
min << (init_stats[0] ) * fitValue(DEFENSE_FINAL) / fitValue(init_defense)
min << (init_stats[1] ) * fitValue(DEFENSE_FINAL) / fitValue(init_defense)
max << (init_stats[0]+1.0) * fitValue(DEFENSE_FINAL) / fitValue(init_defense)
max << (init_stats[1]+1.0) * fitValue(DEFENSE_FINAL) / fitValue(init_defense)
puts "Stat1 Min #{((init_stats[0] ) * fitValue(DEFENSE_FINAL) / fitValue(init_defense)).floor}"
puts "Stat1 Max #{((init_stats[0]+1.0) * fitValue(DEFENSE_FINAL) / fitValue(init_defense)).floor}"
puts "Stat2 Min #{((init_stats[1] ) * fitValue(DEFENSE_FINAL) / fitValue(init_defense)).floor}"
puts "Stat2 Max #{((init_stats[1]+1.0) * fitValue(DEFENSE_FINAL) / fitValue(init_defense)).floor}"
puts "If item is: roll%"
max_possible.each { |k,vs|
min_pct = (min[0]/max_possible[k].first * 100)
max_pct = (min[1]/max_possible[k].first * 100)
next if min_pct > 100
next if max_pct > 100
#puts "#{k}: #{min[0]/max_possible[k].first} - #{max[1]/max_possible[k].first}"
puts "#{k}: #{min_pct} - #{max_pct}"
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment