Guest User

Untitled

a guest
Aug 10th, 2018
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 7.87 KB | None | 0 0
  1. class Window_EquipSlot < Window_Selectable
  2.  
  3.   def col_max
  4.     return 2
  5.   end
  6.  
  7. def update  #ADDED
  8.     super
  9.     if index % 2 == 0
  10.       SceneManager.scene.steady_infoview if SceneManager.scene_is?(Scene_Equip)
  11.       @item_window.slot_id = index if @item_window
  12.     else
  13.       SceneManager.scene.reverse_infoview if SceneManager.scene_is?(Scene_Equip)
  14.       @item_window.slot_id = index if @item_window
  15.     end
  16.   end
  17. end
  18.  
  19.  
  20.  
  21. #==============================================================================
  22. # ■ Scene_Equip
  23. #------------------------------------------------------------------------------
  24. #  装備画面の処理を行うクラスです。
  25. #==============================================================================
  26.  
  27. class Scene_Equip < Scene_MenuBase
  28.   #--------------------------------------------------------------------------
  29.   # ● 開始処理
  30.   #--------------------------------------------------------------------------
  31.   def start
  32.     super
  33.     create_help_window
  34.     create_status_window
  35.     create_info_viewport
  36.     create_command_window
  37.     create_slot_window
  38.     create_item_window
  39.   end
  40.  
  41.   def create_info_viewport
  42.     @info_viewport = Viewport.new
  43.     @info_viewport.rect.y = @help_window.height
  44.     @info_viewport.rect.height = @status_window.height + 416
  45.     @info_viewport.z = 100
  46.     @info_viewport.ox = 0
  47.     @status_window.viewport = @info_viewport
  48.   end
  49.  
  50.   alias nel_updt update
  51.   def update
  52.     nel_updt
  53.     update_info_viewport
  54.   end
  55.   def reverse_infoview
  56.    return if !@slot_window.active
  57.    move_info_viewport(208)
  58.  end
  59.  
  60.  def steady_infoview
  61.    return if !@slot_window.active
  62.    move_info_viewport(-208)
  63.  end
  64.   #--------------------------------------------------------------------------
  65.   # ● ステータスウィンドウの作成
  66.   #--------------------------------------------------------------------------
  67.   def create_status_window
  68.     @status_window = Window_EquipStatus.new(-208, 0)#CHANGED
  69.    # @status_window.viewport = @viewport
  70.     @status_window.actor = @actor
  71.   end
  72.  
  73.   def update_info_viewport
  74.     #move_info_viewport(0)   if @party_command_window.active
  75.     #move_info_viewport(-208) if @slot_window.active #(-Graphics.width/2)
  76.     if @info_viewport.ox != 0
  77.       move_info_viewport(0) if !@slot_window.active && !@item_window.active
  78.     end
  79.     #move_info_viewport(64)  if BattleManager.in_turn?
  80.   end
  81.   #--------------------------------------------------------------------------
  82.   # ● 情報表示ビューポートの移動
  83.   #--------------------------------------------------------------------------
  84.   def move_info_viewport(ox)
  85.     current_ox = @info_viewport.ox
  86.     @info_viewport.ox = [ox, current_ox + 16].min if current_ox < ox
  87.     @info_viewport.ox = [ox, current_ox - 16].max if current_ox > ox
  88.   end
  89.   #--------------------------------------------------------------------------
  90.   # ● コマンドウィンドウの作成
  91.   #--------------------------------------------------------------------------
  92.   def create_command_window
  93.     wx = @status_window.width/2 #CHANGED (@status_window.width)
  94.     wy = @help_window.height
  95.     ww = Graphics.width - @status_window.width
  96.     @command_window = Window_EquipCommand.new(wx, 0, ww) #CHANGED
  97.     @command_window.viewport = @info_viewport
  98.     @command_window.help_window = @help_window
  99.     @command_window.set_handler(:equip,    method(:command_equip))
  100.     @command_window.set_handler(:optimize, method(:command_optimize))
  101.     @command_window.set_handler(:clear,    method(:command_clear))
  102.     @command_window.set_handler(:cancel,   method(:return_scene))
  103.     @command_window.set_handler(:pagedown, method(:next_actor))
  104.     @command_window.set_handler(:pageup,   method(:prev_actor))
  105.   end
  106.   #--------------------------------------------------------------------------
  107.   # ● スロットウィンドウの作成
  108.   #--------------------------------------------------------------------------
  109.   def create_slot_window
  110.     wx = @status_window.width
  111.     wy = @command_window.height #@command_window.y
  112.     ww = Graphics.width# - @status_window.width CHANGED
  113.     @slot_window = Window_EquipSlot.new(0, wy, ww) #CHANGED
  114.     @slot_window.viewport = @info_viewport #ADDED
  115.     @slot_window.help_window = @help_window
  116.     @slot_window.status_window = @status_window
  117.     @slot_window.actor = @actor
  118.     @slot_window.set_handler(:ok,       method(:on_slot_ok))
  119.     @slot_window.set_handler(:cancel,   method(:on_slot_cancel))
  120.   end
  121.   #--------------------------------------------------------------------------
  122.   # ● アイテムウィンドウの作成
  123.   #--------------------------------------------------------------------------
  124.   def create_item_window
  125.     wx = 0
  126.     wy = @slot_window.y + @help_window.height + @slot_window.height
  127.     ww = Graphics.width
  128.     wh = Graphics.height - wy
  129.     @item_window = Window_EquipItem.new(wx, wy, ww, wh)
  130.     @item_window.viewport = @viewport
  131.     @item_window.help_window = @help_window
  132.     @item_window.status_window = @status_window
  133.     @item_window.actor = @actor
  134.     @item_window.set_handler(:ok,     method(:on_item_ok))
  135.     @item_window.set_handler(:cancel, method(:on_item_cancel))
  136.     @slot_window.item_window = @item_window
  137.   end
  138.   #--------------------------------------------------------------------------
  139.   # ● コマンド[装備変更]
  140.   #--------------------------------------------------------------------------
  141.   def command_equip
  142.     @slot_window.activate
  143.     @slot_window.select(0)
  144.   end
  145.   #--------------------------------------------------------------------------
  146.   # ● コマンド[最強装備]
  147.   #--------------------------------------------------------------------------
  148.   def command_optimize
  149.     Sound.play_equip
  150.     @actor.optimize_equipments
  151.     @status_window.refresh
  152.     @slot_window.refresh
  153.     @command_window.activate
  154.   end
  155.   #--------------------------------------------------------------------------
  156.   # ● コマンド[全て外す]
  157.   #--------------------------------------------------------------------------
  158.   def command_clear
  159.     Sound.play_equip
  160.     @actor.clear_equipments
  161.     @status_window.refresh
  162.     @slot_window.refresh
  163.     @command_window.activate
  164.   end
  165.   #--------------------------------------------------------------------------
  166.   # ● スロット[決定]
  167.   #--------------------------------------------------------------------------
  168.   def on_slot_ok
  169.     #update_info_viewport
  170.     @item_window.activate
  171.     @item_window.select(0)
  172.   end
  173.   #--------------------------------------------------------------------------
  174.   # ● スロット[キャンセル]
  175.   #--------------------------------------------------------------------------
  176.   def on_slot_cancel
  177.     #update_info_viewport
  178.     @slot_window.unselect
  179.     @command_window.activate
  180.   end
  181.   #--------------------------------------------------------------------------
  182.   # ● アイテム[決定]
  183.   #--------------------------------------------------------------------------
  184.   def on_item_ok
  185.     Sound.play_equip
  186.     @actor.change_equip(@slot_window.index, @item_window.item)
  187.     @slot_window.activate
  188.     @slot_window.refresh
  189.     @item_window.unselect
  190.     @item_window.refresh
  191.     #update_info_viewport
  192.   end
  193.   #--------------------------------------------------------------------------
  194.   # ● アイテム[キャンセル]
  195.   #--------------------------------------------------------------------------
  196.   def on_item_cancel
  197.     @slot_window.activate
  198.     @item_window.unselect
  199.     #update_info_viewport
  200.   end
  201.   #--------------------------------------------------------------------------
  202.   # ● アクターの切り替え
  203.   #--------------------------------------------------------------------------
  204.   def on_actor_change
  205.     @status_window.actor = @actor
  206.     @slot_window.actor = @actor
  207.     @item_window.actor = @actor
  208.     @command_window.activate
  209.   end
  210. end
Add Comment
Please, Sign In to add comment