rendered paste body#==============================================================================
# ■ Scene_Party
#------------------------------------------------------------------------------
# Minkoff's Party Switching System
#==============================================================================
class Scene_Party
#--------------------------------------------------------------------------
# ● Main
#--------------------------------------------------------------------------
def main
s1 = "Add Member"
s2 = "Del Member"
s3 = "Cancel"
@command_window = Window_Command.new(160, [s1, s2, s3])
@command_window.back_opacity = 180
@command_window.index = 0
@party_window = Window_Party.new
@party_window.back_opacity = 180
@party_window.x = 0
@party_window.y = 128
@reserve_window = Window_Reserves.new
@reserve_window.back_opacity = 180
@reserve_window.x = 160
@reserve_window.y = 0
@spriteset = Spriteset_Map.new
Graphics.transition
loop do
Graphics.update
Input.update
update
if $scene != self
break
end
end
Graphics.freeze
@command_window.dispose
@party_window.dispose
@reserve_window.dispose
@spriteset.dispose
end
#--------------------------------------------------------------------------
# ● Update
#--------------------------------------------------------------------------
def update
@command_window.update
@party_window.update
@reserve_window.update
@spriteset.update
if @command_window.active
update_command
return
end
if @party_window.active
update_party
return
end
if @reserve_window.active
update_reserve
return
end
end
#--------------------------------------------------------------------------
# ● Update Command Window
#--------------------------------------------------------------------------
def update_command
if Input.trigger?(Input::B)
$game_system.se_play($data_system.cancel_se)
$scene = Scene_Map.new
return
end
if Input.trigger?(Input::C)
case @command_window.index
when 0
$game_system.se_play($data_system.decision_se)
@command_window.active = false
@reserve_window.active = true
@reserve_window.index = 0
when 1
$game_system.se_play($data_system.decision_se)
@command_window.active = false
@party_window.active = true
@party_window.index = 0
when 2
$game_system.se_play($data_system.cancel_se)
$scene = Scene_Map.new
end
return
end
end
#--------------------------------------------------------------------------
# ● Update Party Window
#--------------------------------------------------------------------------
def update_party
if Input.trigger?(Input::B)
$game_system.se_play($data_system.cancel_se)
@command_window.active = true
@party_window.active = false
@party_window.index = -1
return
end
if Input.trigger?(Input::C)
if $game_party.actors.size == 1
$game_system.se_play($data_system.buzzer_se)
else
$game_system.se_play($data_system.decision_se)
$game_party.remove_actor($game_party.actors[@party_window.index].id)
@reserve_window.refresh
@party_window.refresh
end
return
end
end
#--------------------------------------------------------------------------
# ● Update Reserve Window
#--------------------------------------------------------------------------
def update_reserve
if Input.trigger?(Input::B)
$game_system.se_play($data_system.cancel_se)
@command_window.active = true
@reserve_window.active = false
@reserve_window.index = -1
return
end
if Input.trigger?(Input::C)
if $game_party.actors.size == 4
$game_system.se_play($data_system.buzzer_se)
else
$game_system.se_play($data_system.decision_se)
$game_party.add_actor(@reserve_window.reserves[@reserve_window.index].id)
@reserve_window.refresh
@party_window.refresh
end
return
end
end
end
#==============================================================================
# ■ Window_Party
#==============================================================================
class Window_Party < Window_Selectable
#--------------------------------------------------------------------------
# ● Initialize
#--------------------------------------------------------------------------
def initialize
super(0, 0, 160, 352)
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.font.name = $fontface
self.contents.font.size = $fontsize
refresh
self.active = false
self.index = -1
end
#--------------------------------------------------------------------------
# ● Refresh
#--------------------------------------------------------------------------
def refresh
self.contents.clear
@item_max = $game_party.actors.size
for i in 0...$game_party.actors.size
x = 8
y = i * 84
actor = $game_party.actors[i]
draw_actor_graphic(actor, x + 96, y + 56)
draw_actor_name(actor, x, y)
draw_actor_level(actor, x, y + 24)
end
end
#--------------------------------------------------------------------------
# ● Update Cursor
#--------------------------------------------------------------------------
def update_cursor_rect
if @index < 0
self.cursor_rect.empty
else
self.cursor_rect.set(0, @index * 84, 128, 64)
end
end
end
#==============================================================================
# ■ Window_Reserves
#==============================================================================
class Window_Reserves < Window_Selectable
#--------------------------------------------------------------------------
# ● Make Reserves Readable
#--------------------------------------------------------------------------
attr_reader :reserves
#--------------------------------------------------------------------------
# ● Initialize
#--------------------------------------------------------------------------
def initialize
super(0, 0, 480, 480)
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.font.name = $fontface
self.contents.font.size = $fontsize
refresh
self.active = false
self.index = -1
end
#--------------------------------------------------------------------------
# ● Refresh
#--------------------------------------------------------------------------
def refresh
self.contents.clear
@reserves = []
for i in 1...$game_actors.data.size
@reserves.push($game_actors[i]) unless $game_party.actors.include?($game_actors[i])
end
@item_max = @reserves.size
for i in 0...@reserves.size
x = 64
y = i * 116
actor = @reserves[i]
draw_actor_graphic(actor, x - 40, y + 80)
draw_actor_name(actor, x, y)
draw_actor_class(actor, x + 144, y)
draw_actor_level(actor, x, y + 32)
draw_actor_state(actor, x + 90, y + 32)
draw_actor_exp(actor, x, y + 64)
draw_actor_hp(actor, x + 236, y + 32)
draw_actor_sp(actor, x + 236, y + 64)
end
end
#--------------------------------------------------------------------------
# ● Update Cursor
#--------------------------------------------------------------------------
def update_cursor_rect
if @index < 0
self.cursor_rect.empty
else
self.cursor_rect.set(0, @index * 116, self.width - 32, 96)
end
end
end
#==============================================================================
# ■ Game_Actors
#==============================================================================
class Game_Actors
#--------------------------------------------------------------------------
# ● Make Data Readable
#--------------------------------------------------------------------------
attr_reader :data
end