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 endend#==============================================================================# ■ 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 endend#==============================================================================# ■ 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 endend#==============================================================================# ■ Game_Actors#==============================================================================class Game_Actors #-------------------------------------------------------------------------- # ● Make Data Readable #-------------------------------------------------------------------------- attr_reader :dataend