# @taroxd metadata 1.0
# @id item_usable
# @display 物品禁用
# @require taroxd_core
# @help 
#    <unusable x> 或 <usable -x> :当 x 号开关开启时,技能/道具禁止使用
#    <usable x> 或 <unusable -x> :当 x 号开关关闭时,技能/道具禁止使用

Taroxd::ItemUsable = true

class RPG::UsableItem < RPG::BaseItem
  # 获取开关 ID 构成的数组
  def unusable_switches
    @unusable_switches ||=
    @note.scan(/<(UN)?USABLE\s+(-*\d+)>/i).map { |(un, id)|
      un ? id.to_i : -id.to_i
    }.uniq
  end
end

class Game_BattlerBase
  id_ok = -> id { (id > 0) ^ $game_switches[id.abs] }
  ok = -> item { item.unusable_switches.all?(&id_ok) }
  def_and :usable_item_conditions_met?, ok
end