lunariafantasia/Scripts/_.38.rb
2024-01-12 03:12:38 -06:00

128 lines
No EOL
5.1 KiB
Ruby
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#==============================================================================
# ■ Window_SkillCommand
#------------------------------------------------------------------------------
#  スキル画面で、コマンド(特技や魔法など)を選択するウィンドウです。
#==============================================================================
class Window_OptimizeCommand < Window_Command
#--------------------------------------------------------------------------
# オブジェクト初期化
#--------------------------------------------------------------------------
def initialize(x, y)
super(x, y)
@actor = nil
self.openness = 0
deactivate
end
#--------------------------------------------------------------------------
# ウィンドウ幅の取得
#--------------------------------------------------------------------------
def window_width
return 134
end
#--------------------------------------------------------------------------
# アクターの設定
#--------------------------------------------------------------------------
def actor=(actor)
return if @actor == actor
@actor = actor
refresh
select_last
end
#--------------------------------------------------------------------------
# 表示行数の取得
#--------------------------------------------------------------------------
def visible_line_number
return @actor ? @actor.optimize_pattern.size : 2
end
#--------------------------------------------------------------------------
# コマンドリストの作成
#--------------------------------------------------------------------------
def make_command_list
return unless @actor
@actor.optimize_pattern.each do |k, v|
add_command(k, :optimize, true, v)
end
end
#--------------------------------------------------------------------------
# 前回の選択位置を復帰
#--------------------------------------------------------------------------
def select_last
select(0)
end
#--------------------------------------------------------------------------
# ○ リフレッシュ
#--------------------------------------------------------------------------
def refresh
self.height = window_height
self.y = @help_window.height + fitting_height(1) - window_height if @help_window
super
end
end
#==============================================================================
# ■ Scene_Equip
#------------------------------------------------------------------------------
#  装備画面の処理を行うクラスです。
#==============================================================================
class Scene_Equip < Scene_MenuBase
#--------------------------------------------------------------------------
# ● 開始処理
#--------------------------------------------------------------------------
alias optimize_start start
def start
optimize_start
create_optimize_window
end
#--------------------------------------------------------------------------
# 最適装備ウィンドウの作成
#--------------------------------------------------------------------------
def create_optimize_window
wx = @command_window.x + @command_window.width / 2 - 67
wy = @command_window.y - @command_window.height / 2
@optimize_window = Window_OptimizeCommand.new(wx, wy)
@optimize_window.viewport = @viewport
@optimize_window.help_window = @help_window
@optimize_window.set_handler(:optimize, method(:optimize_equip))
@optimize_window.set_handler(:cancel, method(:optimize_cancel))
@optimize_window.actor = @actor
end
#--------------------------------------------------------------------------
# ● コマンド[最強装備]
#--------------------------------------------------------------------------
def command_optimize
@optimize_window.open.activate.select_last
#update until @optimize_window.open?
end
#--------------------------------------------------------------------------
# 最強装備決定
#--------------------------------------------------------------------------
def optimize_equip
Sound.play_equip
@actor.optimize_equipments(@optimize_window.current_ext)
@status_window.refresh
@slot_window.refresh
@optimize_window.activate
#@optimize_window.close
#update until @optimize_window.close?
#@command_window.activate
end
#--------------------------------------------------------------------------
# 最強装備キャンセル
#--------------------------------------------------------------------------
def optimize_cancel
@optimize_window.deactivate#unselect
@optimize_window.close
update until @optimize_window.close?
@command_window.activate
end
#--------------------------------------------------------------------------
# ● アクターの切り替え
#--------------------------------------------------------------------------
alias optimize_on_actor_change on_actor_change
def on_actor_change
optimize_on_actor_change
@optimize_window.actor = @actor
end
end