KINGARTHUR'S PROFILE

KingArthur
( ̄▽ ̄)ノ De-facto operator of the unofficial RMN IRC channel.
1217
Just your average game and anime loving computer addict who idles a lot on IRC. ;D

class Scene_Battle
  
  def create_info_viewport
    @info_viewport = Viewport.new(0, 288, 544, 128)
    @info_viewport.z = 100
    @status_window = Window_BattleStatus.new
    @party_command_window = Window_PartyCommand.new
#~     @actor_command_window = Window_ActorCommand.new
    $data_system        = load_data("Data/System.rvdata")
    @animate = false
    @actor_command_window = Ring_Menu.new(80,10,[Graphics.width/2,Graphics.height/2-60], create_options)
    @actor_command_window.reso = 16
    @status_window.viewport = @info_viewport
    @party_command_window.viewport = @info_viewport
    #@actor_command_window.viewport = @info_viewport
    @status_window.x = 128
    @actor_command_window.x = 200
    @info_viewport.visible = false
  end

  def create_options
    # Create empty options with no graphics, with just block of instructions
    opt = [
    RMenu_Option.new("Attack", 1)  ,
    RMenu_Option.new("Skill", 2)  ,
    RMenu_Option.new("Guard", 3)  ,
    RMenu_Option.new("Item", 4)  ,
    ]
    
    
    # You can access each option graphics, and change them if needed
#~     opt[0].sprite.bitmap = Bitmap.new(64,32)
#~     opt[0].sprite.bitmap.draw_text(0,0,64,32, "Move/Stop me!",1)
#~     
#~     opt[1].sprite.bitmap = Bitmap.new(64,32)
#~     opt[1].sprite.bitmap.draw_text(0,0,64,32, "Say...",1)
#~     
#~     opt[2].sprite.bitmap = Bitmap.new(64,32)
#~     opt[2].sprite.bitmap.draw_text(0,0,64,32, "Do nothing",1)
#~     
#~     opt[3].sprite.bitmap = Bitmap.new(64,32)
#~     opt[3].sprite.bitmap.draw_text(0,0,64,32, "Go to title Screen",1)
#~     
#~     #opt[4].sprite.bitmap = Bitmap.new(64,32)
#~     #opt[4].sprite.bitmap.draw_text(0,0,64,32, "Exit the demo",1)
#~     
#~     opt[5].sprite.bitmap = Bitmap.new(64,32)
#~     opt[5].sprite.bitmap.draw_text(0,0,64,32, "I'M DISABLED",1)
#~     opt[5].disabled = true 
#~     
#~     opt
  end
  
  alias old_terminate terminate
  def terminate
    old_terminate
    @actor_command_window.dispose
  end
  #-----------------------------------------------
  alias old_update update
  def update
    old_update
    
    animate_menu if @animate
    
    #@actor_command_window.update
    @actor_command_window.selected.call if Input.trigger? Input::C
  end
  #-----------------------------------------------
  def animate_menu
     if Graphics.frame_count < 120 
      @actor_command_window.x +=2
      @actor_command_window.y -=1
    end
    if Graphics.frame_count.between?(120,240)
      @actor_command_window.x -= 2
      @actor_command_window.y +=1      
    end
    
    if Graphics.frame_count.between?(400,500)
      @actor_command_window.opacity -=2
    else
      @actor_command_window.opacity +=2
    end
    
    Graphics.frame_count %= 500
  end
  
  def start_actor_command_selection
    @party_command_window.active = false
    #@actor_command_window.setup(@active_battler)
    @actor_command_window.active = true
    @actor_command_window.index = 0
  end
  
  def start_skill_selection
    @help_window = Window_Help.new
    @skill_window = Window_Skill.new(0, 56, 544, 232, @active_battler)
    @skill_window.help_window = @help_window
    @actor_command_window.active = false
    @actor_command_window.visible = false
  end
  
  def end_skill_selection
    if @skill_window != nil
      @skill_window.dispose
      @skill_window = nil
      @help_window.dispose
      @help_window = nil
    end
    @actor_command_window.active = true
    @actor_command_window.visible = true
  end
  
  def start_item_selection
    @help_window = Window_Help.new
    @item_window = Window_Item.new(0, 56, 544, 232)
    @item_window.help_window = @help_window
    @actor_command_window.active = false
    @actor_command_window.visible = false
  end

  def end_item_selection
    if @item_window != nil
      @item_window.dispose
      @item_window = nil
      @help_window.dispose
      @help_window = nil
    end
    @actor_command_window.active = true
    @actor_command_window.visible = true
  end
  
  def update_actor_command_selection
    if Input.trigger?(Input::B)
      Sound.play_cancel
      prior_actor
    elsif Input.trigger?(Input::C)
      case @actor_command_window.index
      when 0  # Attack
        Sound.play_decision
        @active_battler.action.set_attack
        start_target_enemy_selection
      when 1  # Skill
        Sound.play_decision
        start_skill_selection
      when 2  # Guard
        Sound.play_decision
        @active_battler.action.set_guard
        next_actor
      when 3  # Item
        Sound.play_decision
        start_item_selection
      end
    end
  end

end