#==============================================================================
#                      「アイテム選択拡張」(ACE) Ver.1.0
#   製作者:奈々(なな)
#   へぷたなすくろーる http://heptanas.mamagoto.com/
#
#   ◇利用規約
#   この素材はフリーゲームにのみご利用頂けます。
#   シェアウェア、販売作品への利用は原則として禁止します。(詳細はブログ参照)
#   利用される場合はスクリプト作成者として「奈々」とURLを明記し
#   配布時にブログで利用規約の確認と、利用報告を行って下さい。
#
#------------------------------------------------------------------------------
#   
#   イベントコマンドの「アイテム選択の処理」は「大事なもの」限定ですが
#   これを通常アイテムや武器・防具を選択できるようにします。
#   また、メモ欄を使って特定のアイテムのみを表示させることもできます。
#   
#   使い方は、初期設定で変数番号を指定します。
#   指定した変数に入っている数値によって、アイテム選択のカテゴリーが変化します。
#   1:通常アイテム
#   2:武器
#   3:防具
#   それ以外:大事なもの
#   
#   アイテム選択の直前に、イベントコマンドの「スクリプト」で
#   
#   n7_item_keyword("キーワード")
#   
#   と記入するとキーワードがメモ欄に書いてあるアイテムのみを表示します。
#   
#==============================================================================
module Nana
module Item_List_Adv
  
  VARIABLE = 1        #カテゴリーを指定する変数のID
  
end
end

#==============================================================================
# ■ Window_KeyItem
#------------------------------------------------------------------------------
#  イベントコマンド[アイテム選択の処理]に使用するウィンドウです。
#==============================================================================

class Window_KeyItem < Window_ItemList
  #--------------------------------------------------------------------------
  # ● 入力処理の開始
  #--------------------------------------------------------------------------
  def start
    case $game_variables[Nana::Item_List_Adv::VARIABLE]
    when 1
      self.category = :item
    when 2
      self.category = :weapon
    when 3
      self.category = :armar
    else
      self.category = :key_item
    end
    update_placement
    refresh
    select(0)
    open
    activate
  end
  #--------------------------------------------------------------------------
  # ● アイテムをリストに含めるかどうか
  #--------------------------------------------------------------------------
  alias n7ila_include? include?
  def include?(item)
    if $game_temp.n7_item_keyword.empty? || (item && item.note.include?($game_temp.n7_item_keyword))
      n7ila_include?(item)
    else
      false
    end
  end
  #--------------------------------------------------------------------------
  # ● アイテムを許可状態で表示するかどうか
  #--------------------------------------------------------------------------
  def enable?(item)
    true
  end
  #--------------------------------------------------------------------------
  # ● ウィンドウを閉じる
  #--------------------------------------------------------------------------
  alias n7ila_close close
  def close
    $game_temp.n7_item_keyword = ""
    n7ila_close
  end
end

#==============================================================================
# ■ Game_Temp
#------------------------------------------------------------------------------
#  セーブデータに含まれない、一時的なデータを扱うクラスです。このクラスのイン
# スタンスは $game_temp で参照されます。
#==============================================================================

class Game_Temp
  #--------------------------------------------------------------------------
  # ● 公開インスタンス変数
  #--------------------------------------------------------------------------
  attr_accessor :n7_item_keyword          # アイテムキーワード
  #--------------------------------------------------------------------------
  # ● オブジェクト初期化
  #--------------------------------------------------------------------------
  alias n7ila_initialize initialize
  def initialize
    n7ila_initialize
    @n7_item_keyword = ""
  end
end

#==============================================================================
# ■ Game_Interpreter
#------------------------------------------------------------------------------
#  イベントコマンドを実行するインタプリタです。このクラスは Game_Map クラス、
# Game_Troop クラス、Game_Event クラスの内部で使用されます。
#==============================================================================

class Game_Interpreter
  #--------------------------------------------------------------------------
  # ● アイテムキーワードの指定
  #--------------------------------------------------------------------------
  def n7_item_keyword(s)
    $game_temp.n7_item_keyword = s.to_s
  end
end