Variable-Based Battle Themes v1.1
#1
Variable-Based Battle Themes
Version: 1.1

Introduction
This script allows developers to set battle themes depending on the value of a game variable. Useful if you want your project's battle theme changed when the player has progressed pretty far in the game.

Features
  • Set variable ID and control battle themes through the variable's value.

Screenshots
No screencaps.

Demo
No demo.

Script
If you are using my "Individual Troop Themes" script, place this script above it!

Code:
=begin
????????????????????????????????????????????????????????????????????????????????
? Variable-based Battle Themes v1.1                                            ?
? by PK8                                                                       ?
? September 29th, 2009                                                         ?
? http://rmvxp.com                                                             ?
????????????????????????????????????????????????????????????????????????????????
? ? Table of Contents                                                          ?
? ?? Author's Notes                - Line 17?19                                ?
? ?? Introduction & Description    - Line 21?24                                ?
? ?? Features                      - Line 26,27                                ?
? ?? How to Use                    - Line 29?37                                ?
? ?? Methods Aliased               - Line 39?41                                ?
? ?? Thanks                        - Line 43?46                                ?
? ?? Methods Aliased               - Line 48?50                                ?
????????????????????????????????????????????????????????????????????????????????
? ? Author's Notes                                                             ?
? After working on Individual Troop Themes, I wanted to work on this script. I ?
? was pretty bored so yeah.                                                    ?
????????????????????????????????????????????????????????????????????????????????
? ? Introduction & Description                                                 ?
? This script allows developers to set battle themes depending on the value of ?
? a game variable. Useful if you want your project's battle theme changed when ?
? the player has progressed pretty far in the game.                            ?
????????????????????????????????????????????????????????????????????????????????
? ? Features                                                                   ?
? ? Set variable ID and control battle themes through the variable's value.    ?
????????????????????????????????????????????????????????????????????????????????
? ? How to Use                                                                 ?
? Varba_Var: Set game variable ID.                                             ?
?                                                                              ?
? Varba_Theme[variable id value] = ["file", volume, pitch]                     ?
? ^ Sets battle theme based on the value of the variable ID (Varba_Theme).     ?
?                                                                              ?
? Note: If you're using Individual Troop Themes, please paste this script above?
?       Individual Troop Themes. It's so Individual Troop Themes can override  ?
?       the Variable-Based Battle Theme script.                                ?
????????????????????????????????????????????????????????????????????????????????
? ? Methods Aliased                                                            ?
? ? initialize of Spriteset_Battle (RMXP)                                      ?
? ? call_battle of Scene_Map (RMVX)                                            ?
????????????????????????????????????????????????????????????????????????????????
? ? Thanks                                                                     ?
? ? If it weren't for JoeYoung's original "Individual Troop Themes" request, I ?
?   wouldn't have worked on this script.                                       ?
? ? Lowell helping me out in terms of explaining this.                         ?
????????????????????????????????????????????????????????????????????????????????
? ? Changelog (MM/DD/YYYY)                                                     ?
? v1.0 (09/29/2009): Initial release.                                          ?
? v1.1 (11/24/2009): "Merged" the RMXP and RMVX versions of this script.       ?
????????????????????????????????????????????????????????????????????????????????
=end

#------------------------------------------------------------------------------
# * Customise
#------------------------------------------------------------------------------
class PK8
  Varba_Theme = {} # Do not touch this.
 
  Varba_RMXP = true # true if using RMXP, false if using RMVX.
  Varba_Var = 1 # Set variable ID.
 
  # The value of Varba_Var controls the battle theme.
  #          [id] = [Music File, Volume, Pitch]
  Varba_Theme[1] = ["003-Battle03", 100, 100]
  Varba_Theme[2] = ["009-LastBoss01", 100, 100]
end

if PK8::Varba_RMXP == true # If using RMXP
  #=============================================================================
  # ** Spriteset_Battle
  #-----------------------------------------------------------------------------
  #  This class brings together battle screen sprites. It's used within
  #  the Scene_Battle class.
  #=============================================================================

  class Spriteset_Battle
    #--------------------------------------------------------------------------
    # * Alias Listings
    #--------------------------------------------------------------------------
    alias_method(:pk8_var_battle_theme_initialize, :initialize)
   
    #---------------------------------------------------------------------------
    # * Object Initialization
    #---------------------------------------------------------------------------
    def initialize
      pk8_var_battle_theme_initialize
      start_var_battle_theme
    end
 
    #---------------------------------------------------------------------------
    # * Start Variable-based Battle Theme
    #---------------------------------------------------------------------------
    def start_var_battle_theme
      PK8::Varba_Theme.each_key { | i |
      # If Variable ID Value equals the key.
      if $game_variables[PK8::Varba_Var] == i
        # If specified BGM isn't nil or empty.
        if PK8::Varba_Theme[i][0] != nil and !PK8::Varba_Theme[i][0].empty?
          # Sets BGM volume to 100 if nil.
          PK8::Varba_Theme[i][1] = 100 if PK8::Varba_Theme[i][1] == nil
          # Sets BGM pitch to 100 if nil.
          PK8::Varba_Theme[i][2] = 100 if PK8::Varba_Theme[i][2] == nil
          # Plays BGM.
          Audio.bgm_play("Audio/BGM/#{PK8::Varba_Theme[i][0]}",
          PK8::Varba_Theme[i][1], PK8::Varba_Theme[i][2])
        end
        break
      end }
    end
  end
end

if PK8::Varba_RMXP == false # If using RMVX
  #=============================================================================
  # ** Scene_Map
  #-----------------------------------------------------------------------------
  #  This class performs the map screen processing.
  #=============================================================================

  class Scene_Map
    #---------------------------------------------------------------------------
    # * Alias Listings
    #---------------------------------------------------------------------------
    alias_method(:pk8_var_battle_theme_call_battle, :call_battle)
   
    #---------------------------------------------------------------------------
    # * Switch to Battle Screen
    #---------------------------------------------------------------------------
    def call_battle
      pk8_var_battle_theme_call_battle
      start_var_battle_theme
    end
   
    #---------------------------------------------------------------------------
    # * Start Variable-based Battle Theme
    #---------------------------------------------------------------------------
    def start_var_battle_theme
      PK8::Varba_Theme.each_key { | i |
      # If Variable ID Value equals the key.
      if $game_variables[PK8::Varba_Var] == i
        # If specified BGM isn't nil or empty.
        if PK8::Varba_Theme[i][0] != nil and !PK8::Varba_Theme[i][0].empty?
          # Sets BGM volume to 100 if nil.
          PK8::Varba_Theme[i][1] = 100 if PK8::Varba_Theme[i][1] == nil
          # Sets BGM pitch to 100 if nil.
          PK8::Varba_Theme[i][2] = 100 if PK8::Varba_Theme[i][2] == nil
          # Plays BGM.
          Audio.bgm_play("Audio/BGM/#{PK8::Varba_Theme[i][0]}",
          PK8::Varba_Theme[i][1], PK8::Varba_Theme[i][2])
        end
        break
      end }
    end
  end
end

Instructions
Instructions are in the script. Pretty much set the game variable ID and set battle themes based on the value of the variable ID.

FAQ
Awaiting question.

Compatibility
I'm not sure if it's SDK compatible. It aliases Spriteset_Battle's initialize method.

Credits and Thanks
If it weren't for JoeYoung's original "Individual Troop Themes" request, I wouldn't have worked on this script.
Lowell helping me out in terms of explaining this.

Author's Notes
After working on Individual Troop Themes, I wanted to work on this script. I was pretty bored so yeah.

Terms and Conditions
Credit me, please? :3
Reply }


Possibly Related Threads…
Thread Author Replies Views Last Post
   Name Game Switch & Variable VX + ACE kyonides 0 82 10-28-2024, 01:39 AM
Last Post: kyonides
   Battle Item Count VX + ACE kyonides 1 207 10-17-2024, 08:01 PM
Last Post: kyonides
   DoubleX RMVXA Variable Pointers DoubleX 0 4,152 06-01-2015, 03:45 PM
Last Post: DoubleX
   Theolized Sideview Battle System TheoAllen 5 14,676 09-15-2014, 04:30 AM
Last Post: TheoAllen
   Yanfly Battle Status Helladen 3 8,345 04-20-2013, 04:40 AM
Last Post: Helladen
   Victor Engine - Active Time Battle Victor Sant 0 5,513 12-16-2012, 08:17 PM
Last Post: Victor Sant
   Skip Battle Messages Helladen 1 6,034 08-06-2012, 01:34 AM
Last Post: Helladen
   Skip Battle Log Helladen 0 4,801 08-02-2012, 10:49 AM
Last Post: Helladen
   Debug Battle Add-on Helladen 0 4,111 07-27-2012, 06:41 AM
Last Post: Helladen
   Victor Engine - Map Turn Battle Victor Sant 1 6,238 07-21-2012, 11:47 PM
Last Post: xnadvance



Users browsing this thread: 2 Guest(s)