Код:
 # если активна стойка, считаем плюсы и минусы с неё
  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
        when 1
          plus += last_stand.mp
        when 2 
          plus += last_stand.atk
        when 3 
          plus += last_stand.pdf
        when 4 
          plus += last_stand.mat
        when 5 
          plus += last_stand.mdf
        when 6 
          plus += last_stand.agi
        when 7 
          plus += last_stand.luk
      end
    end
    return plus
  end
тут можно считать так:
1) Это параметры баттлера, и героя тоже
Код:
  def mhp;  param(0);   end               # MHP  Maximum Hit Points
  def mmp;  param(1);   end               # MMP  Maximum Magic Points
  def atk;  param(2);   end               # ATK  ATtacK power
  def def;  param(3);   end               # DEF  DEFense power
  def mat;  param(4);   end               # MAT  Magic ATtack power
  def mdf;  param(5);   end               # MDF  Magic DeFense power
  def agi;  param(6);   end               # AGI  AGIlity
  def luk;  param(7);   end               # LUK  LUcK
2) таким образом, для hp в процентах делаем не
when 0
plus += last_stand.hp
а
when 0
plus += last_stand.hp*mhp
задавая в стойке % (типа 0.05 или 0.25)