#============================================================================== # ■ XP-RGSS-57 調合屋 [シーンクラス] by Claimh #============================================================================== #============================================================================== # ■ Scene_Mixture #============================================================================== class Scene_Mixture include Mixture::MesCmd #-------------------------------------------------------------------------- # ● メイン処理 #-------------------------------------------------------------------------- def main start # 開始処理 Graphics.transition # トランジション実行 loop do Graphics.update # ゲーム画面を更新 Input.update # 入力情報を更新 update # フレーム更新 break if $scene != self # 画面が切り替わったらループを中断 end Graphics.update Graphics.freeze # トランジション準備 terminate # 終了処理 end #-------------------------------------------------------------------------- # ● 開始処理 #-------------------------------------------------------------------------- def start @select_window = Window_MixtureCmd.new @help_window = Window_Help.new @gold_window = Window_Gold.new @gold_window.x = 480 @gold_window.y = 64 # @list_window = Window_MixtureList.new @info_window = Window_MixtureInfo.new @number_window = Window_MixtureNumber.new @mes_window = Window_MixtureCaution.new # @list_window.help_window = @help_window @list_window.info_window = @info_window @help_window.set_text("") end #-------------------------------------------------------------------------- # ● 終了処理 #-------------------------------------------------------------------------- def terminate @select_window.dispose @help_window.dispose @gold_window.dispose @list_window.dispose @info_window.dispose @number_window.dispose @mes_window.dispose end #---------------------------------------------------------------------------- # ● フレーム更新 #---------------------------------------------------------------------------- def update if @mes_window.visible @mes_window.update elsif @select_window.active update_select elsif @list_window.active update_list elsif @number_window.visible update_num end end #---------------------------------------------------------------------------- # ● フレーム更新 #---------------------------------------------------------------------------- def update_select @select_window.update if Input.trigger?(Input::B) $game_system.se_play($data_system.cancel_se) $scene = Scene_Map.new elsif Input.trigger?(Input::C) $game_system.se_play($data_system.decision_se) case @select_window.index when 0 @select_window.active = false @list_window.active = true @list_window.index = 0 when 1 $scene = Scene_Map.new end end end #---------------------------------------------------------------------------- # ● フレーム更新 #---------------------------------------------------------------------------- def update_list @list_window.update if Input.trigger?(Input::B) $game_system.se_play($data_system.cancel_se) @list_window.index = -1 @list_window.active = false @select_window.active = true @help_window.set_text("") elsif Input.trigger?(Input::C) unless @list_window.data.enable? $game_system.se_play($data_system.buzzer_se) @mes_window.set_text(@list_window.data.message) return end $game_system.se_play($data_system.decision_se) @list_window.active = false @number_window.set(@list_window.data) end end #---------------------------------------------------------------------------- # ● フレーム更新 #---------------------------------------------------------------------------- def update_num @number_window.update @info_window.num = @number_window.number if Input.trigger?(Input::B) $game_system.se_play($data_system.cancel_se) @number_window.visible = false @list_window.active = true @list_window.visible = true @info_window.refresh_num elsif Input.trigger?(Input::C) $game_system.se_play(Mixture::SUCCESS_SE.nil? ? $data_system.shop_se : Mixture::SUCCESS_SE) @mes_window.set_text(M_S_C, @list_window.data.obj) @list_window.data.execute(@number_window.number) @info_window.refresh_num @number_window.visible = false @list_window.active = true @list_window.visible = true @list_window.data_refresh @gold_window.refresh end end end