#==============================================================================
#                   「裸禁止」(ACE) Ver.1.0
#   製作者:奈々(なな)
#   へぷたなすくろーる http://heptanas.mamagoto.com/
#
#   ◇利用規約
#   この素材はフリーゲームにのみご利用頂けます。
#   シェアウェア、販売作品への利用は原則として禁止します。(詳細はブログ参照)
#   利用される場合はスクリプト作成者として「奈々」とURLを明記し
#   配布時にブログで利用規約の確認と、利用報告を行って下さい。
#
#------------------------------------------------------------------------------
#   
#   装備を外して何も装備していない状態にすることを禁止します。
#   封印と違い、装備の付け替えは可能です。
#   
#   初期設定から禁止する装備スロット、装備タイプの指定ができます。
#   またデータベースの「アクター、クラス」のメモ欄に
#   
#   <裸禁止 n>
#   
#   と入れることで、アクター毎にn番の装備スロットを禁止できます。
#   
#==============================================================================
#初期設定
module Nana
module Anti_Naked
  
  E_SLOT = [0,1]        #無装備にできない装備スロットの指定
  
  E_TYPE = [0,1]        #無装備にできない装備タイプの指定
  
end
end

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

class Game_Actor < Game_Battler
  #--------------------------------------------------------------------------
  # ● 装備の変更
  #     slot_id : 装備スロット ID
  #     item    : 武器/防具(nil なら装備解除)
  #--------------------------------------------------------------------------
  alias change_equip_nan change_equip
  def change_equip(slot_id, item)
    
    nan_list = Nana::Anti_Naked::E_SLOT
    Nana::Anti_Naked::E_TYPE.each do |et|
      nan_list |= slot_list(et)
    end
    nan_list |= self.actor.nan_list
    nan_list |= self.class.nan_list
    
    unless item == nil && nan_list.include?(slot_id)
      change_equip_nan(slot_id, item)
    end
  end
end

#==============================================================================
# ■ RPG::BaseItem
#------------------------------------------------------------------------------
#  アクター、職業、スキル、アイテム、武器、防具、敵キャラ、およびステートのスーパークラス。
#==============================================================================
class RPG::BaseItem
  #--------------------------------------------------------------------------
  # ● 裸禁止スロット
  #--------------------------------------------------------------------------
  def nan_list
    list = []
    @note.scan(/<\s*裸禁止\s*(\d+)\s*>/) {|s| list.push($1.to_i) if $1}
    return list
  end
end