#==============================================================================
#                   「必要防具タイプ」(ACE) ver1.00  by奈々
#
#   ◇使用規約
#   使用される場合はスクリプト作成者として「奈々」を明記して下さい。
#   このスクリプトを改変したり、改変したものを配布するなどは自由ですが
#   その場合も元のスクリプトの作成者として名前は載せて下さい。
#
#------------------------------------------------------------------------------
#
#   スキルのメモ欄に<必要防具タイプ n>と書くことで
#   必要武器と同じようにn番の防具タイプの防具を装備していないと
#   使えないスキルを作成できます。
#
#   武器タイプと一緒に設定した場合、どちらか1つでも装備していれば使えます。
#   (武器タイプを2つ設定した場合と同じ仕様です)
#   
#==============================================================================

#==============================================================================
# ■ Game_Actor
#------------------------------------------------------------------------------
#  アクターを扱うクラスです。このクラスは Game_Actors クラス($game_actors)
# の内部で使用され、Game_Party クラス($game_party)からも参照されます。
#==============================================================================

class Game_Actor < Game_Battler
  #--------------------------------------------------------------------------
  # ● スキルの必要武器と防具を装備しているか(再定義)
  #--------------------------------------------------------------------------
  def skill_wtype_ok?(skill)
    wtype_id1 = skill.required_wtype_id1
    wtype_id2 = skill.required_wtype_id2
    atype_id = skill.required_atype_id
    return true if wtype_id1 == 0 && wtype_id2 == 0 && atype_id == 0
    return true if wtype_id1 > 0 && wtype_equipped?(wtype_id1)
    return true if wtype_id2 > 0 && wtype_equipped?(wtype_id2)
    return true if atype_id > 0 && atype_equipped?(atype_id)
    return false
  end
  #--------------------------------------------------------------------------
  # ● 特定のタイプの防具を装備しているか(新規メソッド)
  #--------------------------------------------------------------------------
  def atype_equipped?(atype_id)
    armors.any? {|armors| armors.atype_id == atype_id }
  end
end

class RPG::Skill < RPG::UsableItem
  #--------------------------------------------------------------------------
  # ☆ 必要防具タイプの定義(追加定義)
  #--------------------------------------------------------------------------  
  def required_atype_id
    @note.scan(/<必要防具タイプ\s?(\d+)>/)
    return $1.to_i if $1
    return 0
  end
end