lib/smite/god_stats.rb in smite_ruby-1.4.5 vs lib/smite/god_stats.rb in smite_ruby-1.4.6
- old
+ new
@@ -4,11 +4,11 @@
def initialize(god_name, data, params = { level: 1 })
super(data)
@name = god_name
@items = params[:items] || []
- @level = (params[:level].to_i - 1) % 20
+ @level = [[(params[:level].to_i - 1), 19].min, 0].max
end
def at_level(new_level)
GodStats.new(name, @data, { level: new_level, items: items })
end
@@ -16,81 +16,90 @@
def with_items(new_items)
GodStats.new(name, @data, { level: level, items: new_items })
end
def movement_speed
- from_items = item_bonus[:movement_speed]
+ from_items = bonus_from_items[:movement_speed]
base = data['movement_speed']
+ scaling = movement_speed_per_level * level
- from_items + base
+ from_items + base + scaling
end
def health
- from_items = item_bonus[:health]
+ from_items = bonus_from_items[:health]
base = data['health']
scaling = health_per_level * level
from_items + base + scaling
end
def mana
- from_items = item_bonus[:mana]
+ from_items = bonus_from_items[:mana]
base = data['mana']
scaling = mana_per_level * level
from_items + base + scaling
end
def mp5
- from_items = item_bonus[:mp5]
+ from_items = bonus_from_items[:mp5]
base = data['mp5']
scaling = (mp5_per_level * level.to_f).to_i
from_items + base + scaling
end
def hp5
- from_items = item_bonus[:hp5]
+ from_items = bonus_from_items[:hp5]
base = data['hp5']
scaling = (hp5_per_level * level.to_f).to_i
from_items + base + scaling
end
def attack_speed
- from_items = item_bonus[:attack_speed]
+ from_items = bonus_from_items[:attack_speed]
base = data['attack_speed']
scaling = (attack_speed_per_level * level.to_f).to_i
from_items + base + scaling
end
- def magic_power
- from_items = item_bonus[:magic_power]
- base = data['magic_power']
- scaling = magic_power_per_level * level
+ def magical_power
+ from_items = bonus_from_items[:magical_power]
+ base = data['magical_power']
+ scaling = magical_power_per_level * level
from_items + base + scaling
end
def magic_protection
- from_items = item_bonus[:magic_protection]
+ from_items = bonus_from_items[:magic_protection]
base = data['magic_protection']
scaling = (magic_protection_per_level * level.to_f).to_i
from_items + base + scaling
end
+ def physical_power
+ from_items = bonus_from_items[:physical_power]
+ base = data['physical_power']
+ scaling = physical_power_per_level * level
+
+ from_items + base + scaling
+ end
+
def physical_protection
- from_items = item_bonus[:physical_protection]
+ from_items = bonus_from_items[:physical_protection]
base = data['physical_protection']
scaling = (physical_protection_per_level * level.to_f).to_i
from_items + base + scaling
end
- def item_bonus
+ def bonus_from_items
return @item_bonus unless @item_bonus.nil?
@item_bonus = default_bonus
items.map(&:effects).flatten.select do |effect|
next unless attributes.include?(effect.attribute)
@@ -112,8 +121,12 @@
private
def default_bonus
@default_bonus ||= attributes.each_with_object({}) { |attr, hash| hash[attr.to_sym] = 0 }
+ end
+
+ def movement_speed_per_level
+ 0
end
end
end
\ No newline at end of file