Наконец нашел время на живом погонять...
Вот, вроде это решение должно подойти (в стойках ставь тогда не десятую, а %, то есть не 0.05, а 5)
Код:
# если активна стойка, считаем плюсы и минусы с неё
def param_plus(param_id)
plus = equips.compact.inject(super) {|r, item| r += item.params[param_id] }
if last_stand != nil
case param_id
when 0
plus += last_stand.hp*param_base(0)/100
when 1
plus += last_stand.mp*param_base(1)/100
when 2
plus += last_stand.atk*param_base(2)/100
when 3
plus += last_stand.pdf*param_base(3)/100
when 4
plus += last_stand.mat*param_base(4)/100
when 5
plus += last_stand.mdf*param_base(5)/100
when 6
plus += last_stand.agi*param_base(6)/100
when 7
plus += last_stand.luk*param_base(7)/100
end
end
return plus
end
Социальные закладки