All pastes #20518 Raw Edit

Stuff

public ruby v1 · immutable
#20518 ·published 2005-08-20 05:20 UTC
rendered paste body
#==============================================================================# &#9632; Scene_Party#------------------------------------------------------------------------------# Minkoff's Party Switching System#==============================================================================class Scene_Party  #--------------------------------------------------------------------------  # &#9679; 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  #--------------------------------------------------------------------------  # &#9679; 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  #--------------------------------------------------------------------------  # &#9679; 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  #--------------------------------------------------------------------------  # &#9679; 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  #--------------------------------------------------------------------------  # &#9679; 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#==============================================================================# &#9632; Window_Party#==============================================================================class Window_Party < Window_Selectable  #--------------------------------------------------------------------------  # &#9679; 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  #--------------------------------------------------------------------------  # &#9679; 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  #--------------------------------------------------------------------------  # &#9679; 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#==============================================================================# &#9632; Window_Reserves#==============================================================================class Window_Reserves < Window_Selectable  #--------------------------------------------------------------------------  # &#9679; Make Reserves Readable  #--------------------------------------------------------------------------  attr_reader :reserves  #--------------------------------------------------------------------------  # &#9679; 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  #--------------------------------------------------------------------------  # &#9679; 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  #--------------------------------------------------------------------------  # &#9679; 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#==============================================================================# &#9632; Game_Actors#==============================================================================class Game_Actors  #--------------------------------------------------------------------------  # &#9679; Make Data Readable  #--------------------------------------------------------------------------  attr_reader :dataend