#============================================================================== # ■ VX-RGSS2-20 解体屋[シーン] by Claimh #============================================================================== #============================================================================== # ■ Scene_Dismantle #============================================================================== class Scene_Dismantle include Dismantle::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_DismantleCmd.new @list_window = Window_DismantleList.new @item_window = Window_DismantleItems.new @num_window = Window_DismantleNumber.new @mes_window = Window_DismantleCation.new @help_window = Window_Help.new @gold_window = Window_Gold.new(384, 56) # @cmd_window.help_window = @list_window @item_window.help_window = @help_window @list_window.help_window = @item_window @num_window.help_window = @item_window @item_window.set_item(nil) end #-------------------------------------------------------------------------- # ● 終了処理 #-------------------------------------------------------------------------- def terminate @cmd_window.dispose @list_window.dispose @item_window.dispose @num_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 @num_window.visible update_number end end #---------------------------------------------------------------------------- # ● フレーム更新 #---------------------------------------------------------------------------- def update_command @cmd_window.update if Input.trigger?(Input::B) Sound.play_cancel $scene = Scene_Map.new elsif Input.trigger?(Input::C) Sound.play_decision case Dismantle::COMMAND[@cmd_window.index] when 0..2 @cmd_window.active = false @list_window.enable when 3 # Exit $scene = Scene_Map.new end end end #---------------------------------------------------------------------------- # ● フレーム更新 #---------------------------------------------------------------------------- def update_list @list_window.update if Input.trigger?(Input::B) Sound.play_cancel @cmd_window.active = true @list_window.disable @help_window.set_text("") @item_window.set_item(nil) elsif Input.trigger?(Input::C) unless @list_window.enable? Sound.play_buzzer @mes_window.set_text(@list_window.data.message) unless @list_window.data.nil? return end Sound.play_decision @list_window.active = false @num_window.set(@list_window.data) @num_window.visible = true end end #---------------------------------------------------------------------------- # ● フレーム更新 #---------------------------------------------------------------------------- def update_number if Input.trigger?(Input::B) Sound.play_cancel @list_window.active = true @num_window.visible = false @item_window.set_num(1) elsif Input.trigger?(Input::C) Dismantle::SUCCESS_SE.nil? ? Sound.play_shop : Dismantle::SUCCESS_SE.play @mes_window.set_text(M_S_C, @list_window.data.obj) @list_window.dismantle(@num_window.number) @list_window.active = true @num_window.visible = false @gold_window.refresh else @num_window.update end end end