Наконец нашел время на живом погонять...
Вот, вроде это решение должно подойти (в стойках ставь тогда не десятую, а %, то есть не 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




Ответить с цитированием


Социальные закладки