RPG::UsableItem::Damage

伤害的数据类。

超类

调用者

属性

type

伤害类型。

element_id

属性编号。

formula

计算公式。

variance

离散度。

critical

允许必杀(true/false)。

方法

none?

判断伤害对象是否为空,当伤害类型为 0 时返回true。

to_hp?

判断伤害对象是否为 HP型为 1、3 或 5 时返回true。

to_mp?

判断伤害对象是否为 MP型为 2、4 或 6 时返回true。

recover?

判断伤害结果是否为恢复,当伤害类型为 3、4 时返回true。

drain?

判断伤害结果是否为吸收,当伤害类型为 5、6 时返回true。

sign

判断伤害结果,如果是恢复,则返回 -1 ,否则返回 1 。

eval(a, b, v)

根据参数执行计算公式,参数 a,b,v 分别指定了技能释放者所在队伍、技能承受者所在队伍以及所需的变量。

如果伤害结果是恢复,那么就会返回一个负值。

定义

class RPG::UsableItem::Damage
  def initialize
    @type = 0
    @element_id = 0
    @formula = '0'
    @variance = 20
    @critical = false
  end
  def none?
    @type == 0
  end
  def to_hp?
    [1,3,5].include?(@type)
  end
  def to_mp?
    [2,4,6].include?(@type)
  end
  def recover?
    [3,4].include?(@type)
  end
  def drain?
    [5,6].include?(@type)
  end
  def sign
    recover? ? -1 : 1
  end
  def eval(a, b, v)
    [Kernel.eval(@formula), 0].max * sign rescue 0
  end
  attr_accessor :type
  attr_accessor :element_id
  attr_accessor :formula
  attr_accessor :variance
  attr_accessor :critical
end