#============================================================================== # ■ XP-RGSS-68 鑑定屋[シーン] by Claimh #============================================================================== #============================================================================== # ■ Scene_Appraise #============================================================================== class Scene_Appraise include Appraise::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 @cmd_window = Window_AppraiseCmd.new @list_window = Window_AppraiseList.new @info_window = Window_AppraiseInfo.new @yn_window = Window_AppraiseYN.new @mes_window = Window_AppraiseCation.new @help_window = Window_Help.new @gold_window = Window_Gold.new @gold_window.x = 480 @gold_window.y = 64 # @list_window.help_window = @help_window end #-------------------------------------------------------------------------- # ● 終了処理 #-------------------------------------------------------------------------- def terminate @cmd_window.dispose @list_window.dispose @info_window.dispose @yn_window.dispose @mes_window.dispose @help_window.dispose @gold_window.dispose end #---------------------------------------------------------------------------- # ● フレーム更新 #---------------------------------------------------------------------------- def update if @mes_window.visible @mes_window.update elsif @cmd_window.active update_command elsif @list_window.active update_list elsif @yn_window.active update_yn end end #---------------------------------------------------------------------------- # ● シーン終了 #---------------------------------------------------------------------------- def exit_scene $scene = Scene_Map.new end #---------------------------------------------------------------------------- # ● フレーム更新 #---------------------------------------------------------------------------- def update_command @cmd_window.update if Input.trigger?(Input::B) $game_system.se_play($data_system.cancel_se) exit_scene elsif Input.trigger?(Input::C) $game_system.se_play($data_system.decision_se) case @cmd_window.index when 0 @cmd_window.active = false @list_window.active = true @list_window.index = 0 if @list_window.index < 0 when 1 # Exit exit_scene end end end #---------------------------------------------------------------------------- # ● フレーム更新 #---------------------------------------------------------------------------- def update_list @list_window.update if Input.trigger?(Input::B) $game_system.se_play($data_system.cancel_se) @cmd_window.active = true @list_window.active = false @help_window.set_text("") elsif Input.trigger?(Input::C) unless @list_window.enable? $game_system.se_play($data_system.buzzer_se) @mes_window.set_text(Appraise::MesCmd::M_N_C) unless @list_window.data.nil? return end $game_system.se_play($data_system.decision_se) @list_window.active = false @yn_window.enable @info_window.refresh end end #---------------------------------------------------------------------------- # ● フレーム更新 #---------------------------------------------------------------------------- def update_yn @yn_window.update if Input.trigger?(Input::B) $game_system.se_play($data_system.cancel_se) @yn_window.disable @info_window.clear @list_window.active = true elsif Input.trigger?(Input::C) if @yn_window.index == 1 $game_system.se_play($data_system.decision_se) else $game_system.se_play( Appraise::SUCCESS_SE.nil? ? $data_system.shop_se : Appraise::SUCCESS_SE) item = @list_window.data.appraise @mes_window.set_text(Appraise::MesCmd::M_S_C, @list_window.data.obj, item) @list_window.data_refresh @gold_window.refresh end @yn_window.disable @info_window.clear @list_window.active = true end end end