#============================================================================== # ■ VXAce-RGSS3-37 調合屋 [シーンクラス] by Claimh #============================================================================== #============================================================================== # ■ Scene_Mixture #============================================================================== class Scene_Mixture < Scene_MenuBase include Mixture::MesCmd #-------------------------------------------------------------------------- # ● 開始処理 #-------------------------------------------------------------------------- def start super create_help_window create_gold_window create_cmd_window create_info_window create_list_window create_num_window end #-------------------------------------------------------------------------- # ● ゴールドウィンドウの作成 #-------------------------------------------------------------------------- def create_gold_window @gold_window = Window_Gold.new @gold_window.viewport = @viewport @gold_window.x = Graphics.width - @gold_window.width @gold_window.y = @help_window.height end #-------------------------------------------------------------------------- # ● コマンドウィンドウ生成 #-------------------------------------------------------------------------- def create_cmd_window @cmd_window = Window_MixtureCmd.new(@help_window.height, Graphics.width - @gold_window.width) @cmd_window.viewport = @viewport @cmd_window.set_handler(:mix, method(:command_mix)) @cmd_window.set_handler(:cancel, method(:return_scene)) end #---------------------------------------------------------------------------- # ● コマンドウィンドウ : 選択 #---------------------------------------------------------------------------- def command_mix @list_window.select(0) if @list_window.index < 0 @list_window.activate end #-------------------------------------------------------------------------- # ● 基準位置 #-------------------------------------------------------------------------- def base_y @cmd_window.y + @cmd_window.height end #-------------------------------------------------------------------------- # ● 基準幅 #-------------------------------------------------------------------------- def base_width 320 end #-------------------------------------------------------------------------- # ● インフォウィンドウ生成 #-------------------------------------------------------------------------- def create_info_window @info_window = Window_MixtureInfo.new(base_width, base_y) @mes_window = Window_MixtureCaution.new end #-------------------------------------------------------------------------- # ● リストウィンドウ生成 #-------------------------------------------------------------------------- def create_list_window @list_window = Window_MixtureList.new(base_y, base_width) @list_window.viewport = @viewport @list_window.info_window = @info_window @list_window.help_window = @help_window @list_window.set_handler(:ok, method(:list_ok)) @list_window.set_handler(:alert, method(:list_alert)) @list_window.set_handler(:cancel, method(:list_cancel)) end #---------------------------------------------------------------------------- # ● リストウィンドウ : 選択 #---------------------------------------------------------------------------- def list_ok @num_window.set(@list_window.data) end #---------------------------------------------------------------------------- # ● リストウィンドウ : 警告 #---------------------------------------------------------------------------- def list_alert @mes_window.set_text(@list_window.data.message) end #---------------------------------------------------------------------------- # ● リストウィンドウ : キャンセル #---------------------------------------------------------------------------- def list_cancel @cmd_window.activate @help_window.set_text("") @info_window.data = nil end #-------------------------------------------------------------------------- # ● 個数ウィンドウ生成 #-------------------------------------------------------------------------- def create_num_window @num_window = Window_MixtureNumber.new(base_y, base_width) @num_window.viewport = @viewport @num_window.set_handler(:ok, method(:num_ok)) @num_window.set_handler(:cancel, method(:num_cancel)) end #---------------------------------------------------------------------------- # ● 個数ウィンドウ : 選択 #---------------------------------------------------------------------------- def num_ok @num_window.hide @mes_window.set_text(M_S_C, @list_window.data.obj) @list_window.data.execute(@num_window.number) @list_window.activate.data_refresh.refresh @info_window.refresh_num @gold_window.refresh end #---------------------------------------------------------------------------- # ● 個数ウィンドウ : キャンセル #---------------------------------------------------------------------------- def num_cancel @num_window.hide @list_window.activate @info_window.refresh_num end end