#==============================================================================
# □ Scene_Party_Organization_System [class]
#==============================================================================
class Scene_Party_Organization_System < Scene_Base
#--------------------------------------------------------------------------
# ○ モジュールの設定
#--------------------------------------------------------------------------
RGSSLAB_028 = RGSSLAB::Party_Organization_System
#--------------------------------------------------------------------------
# ○ 開始処理
#--------------------------------------------------------------------------
def start
super
create_windows
@temporary_actor = nil
end
#--------------------------------------------------------------------------
# ○ ウィンドウの作成
#--------------------------------------------------------------------------
def create_windows
@help_window = Window_Party_Organization_Help.new
@party_member_window = Window_Party_Member.new
@standby_member_window = Window_Standby_Member.new
@information_window = Window_Actor_Information.new($game_party.all_members[0])
@organization_window = Window_Party_Organization.new
@party_member_window.active = true
end
#--------------------------------------------------------------------------
# ○ フレーム更新
#--------------------------------------------------------------------------
def update
super
if @party_member_window.active
update_party_member_window
return
end
if @standby_member_window.active
update_standby_member_window
return
end
end
#--------------------------------------------------------------------------
# ○ フレーム更新:パーティメンバーウィンドウ
#--------------------------------------------------------------------------
def update_party_member_window
@information_window.refresh($game_party.members[@party_member_window.index])
if Input.trigger?(Input::B)
Sound.play_cancel
SceneManager.return
return
end
if Input.trigger?(Input::C)
if $game_system.rgsslab028.impossibillity.include?($game_party.members[@party_member_window.index])
Sound.play_buzzer
return
end
Sound.play_ok
@temporary_actor = $game_party.members[@party_member_window.index]
@party_member_window.active = false
@standby_member_window.active = true
@standby_member_window.index = 0
@help_window.text_index = 1
@help_window.refresh
return
end
end
#--------------------------------------------------------------------------
# ○ フレーム更新:待機メンバーウィンドウ
#--------------------------------------------------------------------------
def update_standby_member_window
@information_window.refresh($game_party.standby[@standby_member_window.index])
if Input.trigger?(Input::B)
Sound.play_cancel
return_party_member_process
return
end
if Input.trigger?(Input::C)
temp = $game_party.standby[@standby_member_window.index]
if @temporary_actor != nil
if $game_party.standby[@standby_member_window.index] != nil
$game_party.standby[@standby_member_window.index] = @temporary_actor.id
temp_members = []
for i in $game_party.all_members
temp_members.push(i.id)
end
temp_members[@party_member_window.index] = temp
$game_party.all_members = temp_members
else
if $game_party.members.size == 1
Sound.play_buzzer
return
end
temp = $game_party.members[@party_member_window.index]
$game_party.remove_actor($game_party.members[@party_member_window.index].id)
$game_party.add_actor_organization_system(temp.id)
end
else
if $game_party.standby[@standby_member_window.index] == nil
Sound.play_buzzer
return
end
$game_party.add_actor($game_party.standby[@standby_member_window.index])
$game_party.remove_actor_organization_system($game_party.standby[@standby_member_window.index])
end
Sound.play_ok
$game_party.standby_sort
$game_player.refresh
@party_member_window.refresh
@standby_member_window.refresh
return_party_member_process
return
end
end
#--------------------------------------------------------------------------
# ○ パーティメンバーウィンドウ復帰処理
#--------------------------------------------------------------------------
def return_party_member_process
@temporary_actor = nil
@party_member_window.active = true
@standby_member_window.active = false
@standby_member_window.index = -1
@party_member_window.max_reset
@standby_member_window.max_reset
@help_window.text_index = 0
@help_window.refresh
end
end
end
class Game_Unit
def battle_party_change?
if $game_party.standby.size >= 1
return true
else
return false
end
end
end
class Scene_Battle
alias saba_kiseki_party_create_party_command_window create_party_command_window
def create_party_command_window
saba_kiseki_party_create_party_command_window
@party_command_window.set_handler(:party, method(:command_party))
end
class Window_PartyCommand
alias saba_kiseki_party_make_command_list make_command_list
def make_command_list
saba_kiseki_party_make_command_list
add_party_command
end
def add_party_command
text="候补"
add_command(text, :party, $game_party.battle_party_change?)
end
end