class Game_Actor
alias_method :consume_item_s20131209, :consume_item
def consume_item(item)
pay_item_cost(item)
consume_item_s20131209(item)
end
def pay_item_cost(item)
return unless $game_party.in_battle
note = item.note.downcase
self.hp -= $1.to_i if note =~ /cost.hp.(\d+)/
self.mp -= $1.to_i if note =~ /cost.mp.(\d+)/
self.tp -= $1.to_i if note =~ /cost.tp.(\d+)/
end
def enough_item_cost?(item)
note = item.note.downcase
return false if note =~ /cost.hp.(\d+)/ && hp <= $1.to_i
return false if note =~ /cost.mp.(\d+)/ && mp < $1.to_i
return false if note =~ /cost.tp.(\d+)/ && tp < $1.to_i
return true
end
end
class Window_BattleItem
def actor=(actor)
return if @actor == actor
@actor = actor
refresh
self.oy = 0
end
def enable?(item)
super && @actor.enough_item_cost?(item)
end
end
class Scene_Battle
alias_method :s20131209_command_item, :command_item
def command_item
@item_window.actor = BattleManager.actor
s20131209_command_item
end
end[/pre]