Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Window_EquipSlot < Window_Selectable
- def col_max
- return 2
- end
- def update #ADDED
- super
- if index % 2 == 0
- SceneManager.scene.steady_infoview if SceneManager.scene_is?(Scene_Equip)
- @item_window.slot_id = index if @item_window
- else
- SceneManager.scene.reverse_infoview if SceneManager.scene_is?(Scene_Equip)
- @item_window.slot_id = index if @item_window
- end
- end
- end
- #==============================================================================
- # ■ Scene_Equip
- #------------------------------------------------------------------------------
- # 装備画面の処理を行うクラスです。
- #==============================================================================
- class Scene_Equip < Scene_MenuBase
- #--------------------------------------------------------------------------
- # ● 開始処理
- #--------------------------------------------------------------------------
- def start
- super
- create_help_window
- create_status_window
- create_info_viewport
- create_command_window
- create_slot_window
- create_item_window
- end
- def create_info_viewport
- @info_viewport = Viewport.new
- @info_viewport.rect.y = @help_window.height
- @info_viewport.rect.height = @status_window.height + 416
- @info_viewport.z = 100
- @info_viewport.ox = 0
- @status_window.viewport = @info_viewport
- end
- alias nel_updt update
- def update
- nel_updt
- update_info_viewport
- end
- def reverse_infoview
- return if !@slot_window.active
- move_info_viewport(208)
- end
- def steady_infoview
- return if !@slot_window.active
- move_info_viewport(-208)
- end
- #--------------------------------------------------------------------------
- # ● ステータスウィンドウの作成
- #--------------------------------------------------------------------------
- def create_status_window
- @status_window = Window_EquipStatus.new(-208, 0)#CHANGED
- # @status_window.viewport = @viewport
- @status_window.actor = @actor
- end
- def update_info_viewport
- #move_info_viewport(0) if @party_command_window.active
- #move_info_viewport(-208) if @slot_window.active #(-Graphics.width/2)
- if @info_viewport.ox != 0
- move_info_viewport(0) if !@slot_window.active && !@item_window.active
- end
- #move_info_viewport(64) if BattleManager.in_turn?
- end
- #--------------------------------------------------------------------------
- # ● 情報表示ビューポートの移動
- #--------------------------------------------------------------------------
- def move_info_viewport(ox)
- current_ox = @info_viewport.ox
- @info_viewport.ox = [ox, current_ox + 16].min if current_ox < ox
- @info_viewport.ox = [ox, current_ox - 16].max if current_ox > ox
- end
- #--------------------------------------------------------------------------
- # ● コマンドウィンドウの作成
- #--------------------------------------------------------------------------
- def create_command_window
- wx = @status_window.width/2 #CHANGED (@status_window.width)
- wy = @help_window.height
- ww = Graphics.width - @status_window.width
- @command_window = Window_EquipCommand.new(wx, 0, ww) #CHANGED
- @command_window.viewport = @info_viewport
- @command_window.help_window = @help_window
- @command_window.set_handler(:equip, method(:command_equip))
- @command_window.set_handler(:optimize, method(:command_optimize))
- @command_window.set_handler(:clear, method(:command_clear))
- @command_window.set_handler(:cancel, method(:return_scene))
- @command_window.set_handler(:pagedown, method(:next_actor))
- @command_window.set_handler(:pageup, method(:prev_actor))
- end
- #--------------------------------------------------------------------------
- # ● スロットウィンドウの作成
- #--------------------------------------------------------------------------
- def create_slot_window
- wx = @status_window.width
- wy = @command_window.height #@command_window.y
- ww = Graphics.width# - @status_window.width CHANGED
- @slot_window = Window_EquipSlot.new(0, wy, ww) #CHANGED
- @slot_window.viewport = @info_viewport #ADDED
- @slot_window.help_window = @help_window
- @slot_window.status_window = @status_window
- @slot_window.actor = @actor
- @slot_window.set_handler(:ok, method(:on_slot_ok))
- @slot_window.set_handler(:cancel, method(:on_slot_cancel))
- end
- #--------------------------------------------------------------------------
- # ● アイテムウィンドウの作成
- #--------------------------------------------------------------------------
- def create_item_window
- wx = 0
- wy = @slot_window.y + @help_window.height + @slot_window.height
- ww = Graphics.width
- wh = Graphics.height - wy
- @item_window = Window_EquipItem.new(wx, wy, ww, wh)
- @item_window.viewport = @viewport
- @item_window.help_window = @help_window
- @item_window.status_window = @status_window
- @item_window.actor = @actor
- @item_window.set_handler(:ok, method(:on_item_ok))
- @item_window.set_handler(:cancel, method(:on_item_cancel))
- @slot_window.item_window = @item_window
- end
- #--------------------------------------------------------------------------
- # ● コマンド[装備変更]
- #--------------------------------------------------------------------------
- def command_equip
- @slot_window.activate
- @slot_window.select(0)
- end
- #--------------------------------------------------------------------------
- # ● コマンド[最強装備]
- #--------------------------------------------------------------------------
- def command_optimize
- Sound.play_equip
- @actor.optimize_equipments
- @status_window.refresh
- @slot_window.refresh
- @command_window.activate
- end
- #--------------------------------------------------------------------------
- # ● コマンド[全て外す]
- #--------------------------------------------------------------------------
- def command_clear
- Sound.play_equip
- @actor.clear_equipments
- @status_window.refresh
- @slot_window.refresh
- @command_window.activate
- end
- #--------------------------------------------------------------------------
- # ● スロット[決定]
- #--------------------------------------------------------------------------
- def on_slot_ok
- #update_info_viewport
- @item_window.activate
- @item_window.select(0)
- end
- #--------------------------------------------------------------------------
- # ● スロット[キャンセル]
- #--------------------------------------------------------------------------
- def on_slot_cancel
- #update_info_viewport
- @slot_window.unselect
- @command_window.activate
- end
- #--------------------------------------------------------------------------
- # ● アイテム[決定]
- #--------------------------------------------------------------------------
- def on_item_ok
- Sound.play_equip
- @actor.change_equip(@slot_window.index, @item_window.item)
- @slot_window.activate
- @slot_window.refresh
- @item_window.unselect
- @item_window.refresh
- #update_info_viewport
- end
- #--------------------------------------------------------------------------
- # ● アイテム[キャンセル]
- #--------------------------------------------------------------------------
- def on_item_cancel
- @slot_window.activate
- @item_window.unselect
- #update_info_viewport
- end
- #--------------------------------------------------------------------------
- # ● アクターの切り替え
- #--------------------------------------------------------------------------
- def on_actor_change
- @status_window.actor = @actor
- @slot_window.actor = @actor
- @item_window.actor = @actor
- @command_window.activate
- end
- end
Add Comment
Please, Sign In to add comment