#==============================================================================#
#===================?===Party Changing Script by Xk8===?=====================#
#==============================================================================#
#=====Special Thanks to Minkoff and Prexus for helping out with coding and=====#
#============teaching me more knowledge to complete this script.===============#
#==============================================================================#
#######
# added by Blizzard:
# find "for i in 1...XXXXX" and change XXXXX to the number of your partymembers
# game variable 100 is used for party change during battle
# set it to 1 before calling this script from a battle
#######
#?installation instructions: #
# 1.paste script above Main #
# 2.paste this in Scene_Save, in it's appropiate place: #
# Marshal.dump($party_variables, file) <- above line 83, #
# below Marshal.dump($game_player, file) #
# 3.paste this in Scene_Load, in it's appropiate place: #
# $party_variables = Marshal.load(file) <- above line 83, #
# below $game_player = Marshal.load(file) #
#4.add this definition in Game_Actors, above the last 'end': #
# def size #
# return @data.size #
# end #
#==============================================================================#
#?hero 1 is automaticallly mandatory, meaning, you can't remove him/her from #
#the party. to change this, enter this line somewhere in the scene or a map: #
# $party_variables.mandatory[0] = false #
#or, change this line : #
#@mandatory = [true, false, false, false, false, false, false, false] #
#into this line: #
#@mandatory = [false, false, false, false, false, false, false, false] #
#same goes for other heroes. #
#==============================================================================#
#?heroes 1-5 are automatically available, because in a 4 member party, member #
#5 should trigger the party switching event. #
#to make other actors available, enter this line in a Call Script, whenever you#
#want the hero to be available: #
# $party_variables.available[actor_id] = true #
#where actor_id is the id of the hero, starting at 0, where 0 is hero 1. #
#to remove a hero from the reserves, enter this line, like the above: #
# $party_variables.available[actor_id] = false #
#==============================================================================#
#?the script contains all the heroes in the database, lining them up from hero#
#1 to the last hero, in the same order as the database, so there is no need to #
#modify the script when you add heroes to the game #
#==============================================================================#
#?The script can be called using this line: #
# $scene = Scene_Change.new #
#this line must be pasted in either a 'Call Script' command of in another #
#Scene_ (e.g. Scene_Menu) #
#IMPORTANTIMPORTANTIMPORTANTIMPORTANTIMPORTANTIMPORTANTIMPORTANTIMPORTANT======#
#ooh ooh something important....at the very BOTTOM of the script, you'll see
#the variables @mandatory and @available...
#each value represents an actor, so you understand that, when you have 12 #
#heroes in your party, those variables should also have 12 true/false values. #
#IMPORTANTIMPORTANTIMPORTANTIMPORTANTIMPORTANTIMPORTANTIMPORTANTIMPORTANT======#
#==============================================================================#
#?I hope you enjoy this script.. #
# -Xk8 #
#==============================================================================#
#==============================================================================#
class Window_Change < Window_Base
def initialize(actor)
super(0, 0, 480, 264)
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.font.name = $fontface
self.contents.font.size = $fontsize
@actor = actor
refresh
end
def refresh
# Minkoff Label
@actor = $game_party.actors[0] if !@actor.is_a?(Game_Actor)
# /Minkoff Label
self.contents.clear
self.contents.font.size = $fontsize
draw_actor_graphicx(@actor, 420, 50)
draw_actor_namex(@actor, 2, 0)
draw_actor_level(@actor, 152 - 64, 0)
draw_actor_class(@actor, 222 - 64, 0)
draw_actor_hp(@actor, 0, 32, 172)
draw_actor_sp(@actor, 0, 64, 172)
self.contents.font.color = system_color
self.contents.draw_text(240, 0, 80, 32, "EXP")
self.contents.draw_text(240, 32, 80, 32, "NEXT")
self.contents.font.color = normal_color
self.contents.draw_text(240 + 80, 0, 84, 32, @actor.exp_s, 2)
self.contents.draw_text(240 + 80, 32, 84, 32, @actor.next_rest_exp_s, 2)
self.contents.draw_text(240, 34, 180, 32, "______________")
self.contents.draw_text(0, 66, 180, 32, "______________")
draw_actor_parameter(@actor, 0, 96, 0)
draw_actor_parameter(@actor, 0, 128, 1)
draw_actor_parameter(@actor, 0, 160, 2)
draw_actor_parameter(@actor, 240, 64, 3)
draw_actor_parameter(@actor, 240, 96, 4)
draw_actor_parameter(@actor, 240, 128, 5)
draw_actor_parameter(@actor, 240, 160, 6)
draw_item_namex($data_weapons[@actor.weapon_id], 0, 192)
draw_item_namex($data_armors[@actor.armor1_id], 0, 210)
draw_item_namex($data_armors[@actor.armor2_id], 128, 192)
draw_item_namex($data_armors[@actor.armor3_id], 128, 210)
draw_item_namex($data_armors[@actor.armor4_id], 256, 192)
if $game_party.actors.include?(@actor)
status = "In party"
statuscolor = Color.new(255, 0, 0, 255)
$addable = 0
else
status = "Not in party"
statuscolor = Color.new(0, 255, 0, 255)
$addable = 1
end
self.contents.font.color = normal_color
self.contents.font.size = 14
self.contents.draw_text(256 + 50, 194, 120, 32, "____________")
self.contents.draw_text(256 + 50, 208, 120, 32, "Status:")
self.contents.font.color = statuscolor
self.contents.draw_text(300 + 64, 208, 120, 32, status)
self.contents.font.size = 24
end
def draw_actor_namex(actor, x, y)
self.contents.font.color = Color.new(255, 0, 0, 255)
self.contents.draw_text(x + 2, y, 120, 32, actor.name)
self.contents.draw_text(x - 2, y, 120, 32, actor.name)
self.contents.draw_text(x, y + 2, 120, 32, actor.name)
self.contents.draw_text(x, y - 2, 120, 32, actor.name)
self.contents.font.color = normal_color
self.contents.draw_text(x, y, 120, 32, actor.name)
end
def draw_item_namex(item, x, y)
if item == nil
return
end
self.contents.font.size = 16
self.contents.font.color = normal_color
self.contents.draw_text(x, y, 212, 32, item.name)
end
def draw_actor_graphicx(actor, x, y)
bitmap = RPG::Cache.character(actor.character_name, actor.character_hue)
cw = bitmap.width / 4
ch = bitmap.height / 4
src_rect = Rect.new(0, 0, cw, ch)
self.contents.blt(x - cw / 2, y - ch, bitmap, src_rect, 180)
end
end
class Window_Unlocked < Window_Base
def initialize
super(0, 0, 480, 264)
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.font.name = $fontface
self.contents.font.size = $fontsize
refresh
end
def refresh
self.contents.clear
self.contents.font.size = 72
self.contents.font.color = Color.new(255, 0, 0, 255)
self.contents.draw_text(2, 71, 480, 80, "Character Locked")
self.contents.draw_text(-2, 71, 480, 80, "Character Locked")
self.contents.draw_text(0, 73, 480, 80, "Character Locked")
self.contents.draw_text(0, 69, 480, 80, "Character Locked")
self.contents.draw_text(2, 69, 480, 80, "___________________")
self.contents.draw_text(-2, 69, 480, 80, "___________________")
self.contents.draw_text(0, 71, 480, 80, "___________________")
self.contents.draw_text(0, 67, 480, 80, "___________________")
self.contents.draw_text(2, 10, 480, 80, "___________________")
self.contents.draw_text(-2, 10, 480, 80, "___________________")
self.contents.draw_text(0, 12, 480, 80, "___________________")
self.contents.draw_text(0, 8, 480, 80, "___________________")
self.contents.font.color = normal_color
self.contents.draw_text(0, 71, 480, 80, "Character Locked")
self.contents.draw_text(0, 69, 480, 80, "___________________")
self.contents.draw_text(0, 10, 480, 80, "___________________")
self.contents.font.size = 16
self.contents.font.color = normal_color
self.contents.draw_text(256 + 50, 194, 120, 32, "_________________")
self.contents.draw_text(256 + 50, 208, 120, 32, "Status:")
self.contents.font.color = system_color
self.contents.draw_text(300 + 50, 208, 120, 32, "Not Available")
end
end
class Window_Reserve < Window_Selectable
def initialize(width, commands)
super(0, 0, width, 296)
@item_max = commands.size
@commands = commands
self.contents = Bitmap.new(width - 32, @item_max * 18 + 64)
self.contents.font.name = $fontface
self.contents.font.size = 16
refresh
self.index = -1
end
def refresh
self.contents.clear
for i in 0...@item_max
draw_item(i, normal_color)
end
end
def draw_item(index, color)
self.contents.font.color = color
rect = Rect.new(4, 22 * index, self.contents.width - 8, 18)
self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
self.contents.draw_text(rect, @commands[index])
end
def update_cursor_rect
if @index < 0
self.cursor_rect.empty
return
end
row = @index / @column_max
if row < self.top_row
self.top_row = row
end
if row > self.top_row + (self.page_row_max - 1)
self.top_row = row - (self.page_row_max - 1)
end
cursor_width = self.width / @column_max - 32
x = @index % @column_max * (cursor_width + 32)
y = @index / @column_max * 22 - self.oy
self.cursor_rect.set(x, y, cursor_width, 18)
end
def disable_item(index)
draw_item(index, disabled_color)
end
end
class Window_Prompt < Window_Selectable
def initialize(width, commands)
super(0, 0, width, 96)
@item_max = commands.size
@commands = commands
self.contents = Bitmap.new(width - 32, @item_max * 32 + 32)
self.contents.font.name = $fontface
self.contents.font.size = $fontsize
refresh
self.index = 0
end
def refresh
self.contents.clear
for i in 0...@item_max
draw_item(i, normal_color)
end
end
def draw_item(index, color)
self.contents.font.color = Color.new(255, 0, 0, 255)
if $prompt_text == 0
text = " Party is full.."
elsif $prompt_text == 1
text = " Can't Empty party.."
elsif $prompt_text == 2
text = " Member is mandatory.."
else
text = ""
end
self.contents.draw_text(2, 0, 320, 32, text)
self.contents.draw_text(-2, 0, 320, 32, text)
self.contents.draw_text(0, 2, 320, 32, text)
self.contents.draw_text(0, -2, 320, 32, text)
self.contents.font.color = color
self.contents.draw_text(0, 0, 320, 32, text)
rect = Rect.new(134, 32 * index + 32, self.contents.width - 8, 32)
self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
self.contents.draw_text(rect, @commands[index])
end
def disable_item(index)
draw_item(index, disabled_color)
end
def update_cursor_rect
if @index < 0
self.cursor_rect.empty
else
self.cursor_rect.set(130, @index * 32 + 32, 36, 32)
end
end
end
class Window_Prompt2 < Window_Selectable
def initialize(width, commands)
super(0, 0, width, 128)
@item_max = commands.size
@commands = commands
self.contents = Bitmap.new(width - 32, @item_max * 32 + 32)
self.contents.font.name = $fontface
self.contents.font.size = $fontsize
refresh
self.index = 0
end
def refresh
self.contents.clear
for i in 0...@item_max
draw_item(i, normal_color)
end
end
def draw_item(index, color)
self.contents.font.color = Color.new(255, 0, 0, 255)
text = " Add Partymember?"
self.contents.draw_text(2, 0, 320, 32, text)
self.contents.draw_text(-2, 0, 320, 32, text)
self.contents.draw_text(0, 2, 320, 32, text)
self.contents.draw_text(0, -2, 320, 32, text)
self.contents.font.color = color
self.contents.draw_text(0, 0, 320, 32, text)
rect = Rect.new(134, 32 * index + 32, self.contents.width - 8, 32)
self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
self.contents.draw_text(rect, @commands[index])
end
def disable_item(index)
draw_item(index, disabled_color)
end
def update_cursor_rect
if @index < 0
self.cursor_rect.empty
else
self.cursor_rect.set(0, @index * 32 + 32, self.width - 32, 32)
end
end
end
class Window_Title < Window_Base
def initialize
super(0, 0, 640, 480)
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.font.name = $fontface
self.contents.font.size = 36
self.opacity = 0
refresh
end
def refresh
self.contents.clear
self.contents.font.color = Color.new(255, 0, 0, 255)
self.contents.draw_text(4, 0, 180, 50, "Change Party")
self.contents.draw_text(0, 0, 180, 50, "Change Party")
self.contents.draw_text(2, 2, 180, 50, "Change Party")
self.contents.draw_text(2, -2, 180, 50, "Change Party")
self.contents.font.color = normal_color
self.contents.draw_text(2, 0, 180, 50, "Change Party")
self.contents.font.size = $fontsize
self.contents.font.color = Color.new(0, 0, 0, 255)
self.contents.draw_text(17, 51, 120, 32, "Options")
self.contents.draw_text(15, 51, 120, 32, "Options")
self.contents.draw_text(16, 52, 120, 32, "Options")
self.contents.draw_text(16, 50, 120, 32, "Options")
self.contents.draw_text(17, 203, 120, 32, "Reserves")
self.contents.draw_text(15, 203, 120, 32, "Reserves")
self.contents.draw_text(16, 204, 120, 32, "Reserves")
self.contents.draw_text(16, 202, 120, 32, "Reserves")
self.contents.draw_text(176, 203, 130, 32, "Reserve Status")
self.contents.draw_text(174, 203, 130, 32, "Reserve Status")
self.contents.draw_text(175, 204, 130, 32, "Reserve Status")
self.contents.draw_text(175, 202, 130, 32, "Reserve Status")
self.contents.font.color = normal_color
self.contents.draw_text(16, 51, 120, 32, "Options")
self.contents.draw_text(16, 203, 120, 32, "Reserves")
self.contents.draw_text(175, 203, 130, 32, "Reserve Status")
end
end
class Window_CurrentParty < Window_Selectable
def initialize
super(0, 0, 480, 200)
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.font.name = $fontface
self.contents.font.size = $fontsize
self.opacity = 0
refresh
self.active = false
self.index = -1
end
def refresh
self.contents.clear
@item_max = $game_party.actors.size
for i in 0...$game_party.actors.size
x = i * 116 + 2
y = 32
actor = $game_party.actors[i]
self.contents.font.color = Color.new(0, 0, 0, 255)
self.contents.draw_text(2 + 15, 0, 120, 32, "Current Party")
self.contents.draw_text(-2 + 15, 0, 120, 32, "Current Party")
self.contents.draw_text(15, 2, 120, 32, "Current Party")
self.contents.draw_text(15, -2, 120, 32, "Current Party")
self.contents.font.color = normal_color
self.contents.draw_text(15, 0, 120, 32, "Current Party")
draw_actor_graphicx(actor, x + 20, y + 82)
draw_actor_namex(actor, x, y)
draw_actor_hpx(actor, x - 40, y + 32)
draw_actor_spx(actor, x - 40, y + 64)
end
end
def draw_actor_hpx(actor, x, y, width = 144)
if width - 32 >= 108
hp_x = x + width - 108
flag = true
elsif width - 32 >= 48
hp_x = x + width - 48
flag = false
end
self.contents.font.size = 16
self.contents.font.color = Color.new(0, 0, 0, 255)
self.contents.draw_text(hp_x + 2, y, 48, 32, actor.hp.to_s, 2)
self.contents.draw_text(hp_x - 2, y, 48, 32, actor.hp.to_s, 2)
self.contents.draw_text(hp_x, y + 2, 48, 32, actor.hp.to_s, 2)
self.contents.draw_text(hp_x, y - 2, 48, 32, actor.hp.to_s, 2)
self.contents.font.color = actor.hp == 0 ? knockout_color :
actor.hp <= actor.maxhp / 4 ? crisis_color : normal_color
self.contents.draw_text(hp_x, y, 48, 32, actor.hp.to_s, 2)
if flag
self.contents.font.color = Color.new(0, 0, 0, 255)
self.contents.draw_text(hp_x + 50, y, 12, 32, "/", 1)
self.contents.draw_text(hp_x + 62, y, 48, 32, actor.maxhp.to_s)
self.contents.draw_text(hp_x + 46, y, 12, 32, "/", 1)
self.contents.draw_text(hp_x + 58, y, 48, 32, actor.maxhp.to_s)
self.contents.draw_text(hp_x + 48, y + 2, 12, 32, "/", 1)
self.contents.draw_text(hp_x + 60, y + 2, 48, 32, actor.maxhp.to_s)
self.contents.draw_text(hp_x + 48, y - 2, 12, 32, "/", 1)
self.contents.draw_text(hp_x + 60, y - 2, 48, 32, actor.maxhp.to_s)
self.contents.font.color = normal_color
self.contents.draw_text(hp_x + 48, y, 12, 32, "/", 1)
self.contents.draw_text(hp_x + 60, y, 48, 32, actor.maxhp.to_s)
end
end
def draw_actor_spx(actor, x, y, width = 144)
if width - 32 >= 108
sp_x = x + width - 108
flag = true
elsif width - 32 >= 48
sp_x = x + width - 48
flag = false
end
self.contents.font.size = 16
self.contents.font.color = Color.new(0, 0, 0, 255)
self.contents.draw_text(sp_x + 2, y, 48, 32, actor.sp.to_s, 2)
self.contents.draw_text(sp_x - 2, y, 48, 32, actor.sp.to_s, 2)
self.contents.draw_text(sp_x, y + 2, 48, 32, actor.sp.to_s, 2)
self.contents.draw_text(sp_x, y - 2, 48, 32, actor.sp.to_s, 2)
self.contents.font.color = actor.sp == 0 ? knockout_color :
actor.sp <= actor.maxsp / 4 ? crisis_color : normal_color
self.contents.draw_text(sp_x, y, 48, 32, actor.sp.to_s, 2)
if flag
self.contents.font.color = Color.new(0, 0, 0, 255)
self.contents.draw_text(sp_x + 50, y, 12, 32, "/", 1)
self.contents.draw_text(sp_x + 62, y, 48, 32, actor.maxsp.to_s)
self.contents.draw_text(sp_x + 46, y, 12, 32, "/", 1)
self.contents.draw_text(sp_x + 58, y, 48, 32, actor.maxsp.to_s)
self.contents.draw_text(sp_x + 48, y + 2, 12, 32, "/", 1)
self.contents.draw_text(sp_x + 60, y - 2, 48, 32, actor.maxsp.to_s)
self.contents.draw_text(sp_x + 48, y - 2, 12, 32, "/", 1)
self.contents.draw_text(sp_x + 60, y + 2, 48, 32, actor.maxsp.to_s)
self.contents.font.color = normal_color
self.contents.draw_text(sp_x + 48, y, 12, 32, "/", 1)
self.contents.draw_text(sp_x + 60, y, 48, 32, actor.maxsp.to_s)
self.contents.font.size = $fontsize
end
end
def draw_actor_graphicx(actor, x, y)
bitmap = RPG::Cache.character(actor.character_name, actor.character_hue)
cw = bitmap.width / 4
ch = bitmap.height / 4
src_rect = Rect.new(0, 0, cw, ch)
self.contents.blt(x - cw / 2, y - ch, bitmap, src_rect, 180)
end
def draw_actor_namex(actor, x, y)
self.contents.font.color = Color.new(0, 0, 0, 255)
self.contents.draw_text(x + 2, y, 120, 32, actor.name)
self.contents.draw_text(x - 2, y, 120, 32, actor.name)
self.contents.draw_text(x, y + 2, 120, 32, actor.name)
self.contents.draw_text(x, y - 2, 120, 32, actor.name)
self.contents.font.color = normal_color
self.contents.draw_text(x, y, 120, 32, actor.name)
end
def update_cursor_rect
if @index < 0
self.cursor_rect.empty
else
self.cursor_rect.set(@index * 116 - 2, 33, 100, 32)
end
end
def update
super
if self.active and @item_max > 0 and @index >= 0
if Input.repeat?(Input::RIGHT)
if (@column_max == 1 and Input.trigger?(Input::RIGHT)) or
@index < @item_max - @column_max
$game_system.se_play($data_system.cursor_se)
@index = (@index + @column_max) % @item_max
end
end
if Input.repeat?(Input::LEFT)
if (@column_max == 1 and Input.trigger?(Input::LEFT)) or
@index >= @column_max
$game_system.se_play($data_system.cursor_se)
@index = (@index - @column_max + @item_max) % @item_max
end
end
end
end
end
class Scene_Change
def initialize(menu_index = 0)
@menu_index = menu_index
end
def main
@spriteset = Spriteset_Map.new
s1 = "add member"
s2 = "remove member"
s3 = "cancel"
@command_window = Window_Command.new(160, [s1, s2, s3])
@command_window.index = @menu_index
@command_window.opacity = 0
@command_window.y = 64
@command_window.back_opacity = 180
@prompt_window = Window_Prompt.new(320, ["Ok"])
@prompt_window.active = false
@prompt_window.visible = false
@prompt_window.x = 320 - @prompt_window.width / 2
@prompt_window.y = 240 - @prompt_window.height / 2
@prompt_window.z = 9999
@prompt_window2 = Window_Prompt2.new(320, ["Yes", "No"])
@prompt_window2.active = false
@prompt_window2.index = -1
@prompt_window2.visible = false
@prompt_window2.x = 320 - @prompt_window.width / 2
@prompt_window2.y = 240 - @prompt_window.height / 2
@prompt_window2.z = 9999
array = []
for i in 1...8 # number of heros! edit required!
actor = $game_actors[i]
if actor != nil
name = actor.name
if $party_variables.available[i - 1] == true
array.push(i.to_s + ". " + name.to_s)
else
array.push("Character Locked")
end
end
end
@reserve_window = Window_Reserve.new(160, array)
@reserve_window.y = 184 + 32
@reserve_window.height = 264
@reserve_window.active = false
@reserve_window.back_opacity = 180
@current_party_window = Window_CurrentParty.new
@current_party_window.x = 160
@current_party_window.y = 32
@current_party_window.active = false
@current_party_window.back_opacity = 180
@actor = $game_actors[@reserve_window.index + 1]
@change_window = Window_Change.new(@actor)
@change_window.x = 160
@change_window.y = 216
@change_window.back_opacity = 180
@dummy_party_window1 = Window_Base.new(160, 64, 480, 120)
@dummy_party_window2 = Window_Base.new(180, 32 + 16, 130, 32)
@dummy_party_window3 = Window_Base.new(0, 64, 160, 120)
@dummy_party_window4 = Window_Base.new(20, 48, 120, 32)
@dummy_party_window5 = Window_Base.new(20, 200, 120, 32)
@dummy_party_window6 = Window_Base.new(180, 200, 144, 32)
@dummy_party_window1.back_opacity = 180
@dummy_party_window3.back_opacity = 180
@title_window = Window_Title.new
@title_window.x = 0
@title_window.y = -20
Graphics.transition
loop do
Graphics.update
Input.update
update
if $scene != self
break
end
end
Graphics.freeze
@spriteset.dispose
@dummy_party_window1.dispose
@dummy_party_window2.dispose
@dummy_party_window3.dispose
@dummy_party_window4.dispose
@dummy_party_window5.dispose
@dummy_party_window6.dispose
@change_window.dispose
@reserve_window.dispose
@prompt_window.dispose
@title_window.dispose
@current_party_window.dispose
@command_window.dispose
end
def update
@change_window.update
@reserve_window.update
@current_party_window.update
@prompt_window2.update
@prompt_window.update
@command_window.update
if @current_party_window.active
update_party
return
end
if @command_window.active
update_command
return
end
if @reserve_window.active
update_reserve
return
end
if @prompt_window.active
update_prompt
return
end
if @prompt_window2.active
update_prompt2
return
end
end
def update_command
if Input.trigger?(Input::B)
$game_system.se_play($data_system.cancel_se)
if $game_variables[100]==1
$game_variables[100]=0
$scene = Scene_Battle.new
else
$game_variables[100]=0
$scene = Scene_Map.new
end
return
end
if Input.trigger?(Input::C)
case @command_window.index
when 0
if $game_party.actors.size == 4
$game_system.se_play($data_system.buzzer_se)
@prompt_window.visible = true
@prompt_window.active = true
$prompt_text = 0
@prompt_window.refresh
@command_window.active = false
else
$game_system.se_play($data_system.decision_se)
@command_window.active = false
@reserve_window.active = true
@reserve_window.index = 0
end
when 1
$game_system.se_play($data_system.decision_se)
@command_window.active = false
@current_party_window.active = true
@current_party_window.index = 0
when 2
$game_system.se_play($data_system.decision_se)
if $game_variables[100]==1
$game_variables[100]=0
$scene = Scene_Battle.new
else
$game_variables[100]=0
$scene = Scene_Map.new
end
end
end
return
end
def update_party
if Input.trigger?(Input::B)
$game_system.se_play($data_system.cancel_se)
@command_window.active = true
@current_party_window.active = false
@current_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)
@current_party_window.active = false
@current_party_window.index = -1
@prompt_window.visible = true
@prompt_window.active = true
$prompt_text = 1
@prompt_window.refresh
else
if $party_variables.mandatory[@current_party_window.index] == true
$game_system.se_play($data_system.buzzer_se)
@current_party_window.active = false
@current_party_window.index = -1
@prompt_window.visible = true
@prompt_window.active = true
$prompt_text = 2
@prompt_window.refresh
else
$game_system.se_play($data_system.decision_se)
$game_party.remove_actor($game_party.actors[@current_party_window.index].id)
end
@current_party_window.refresh
@change_window.refresh
end
return
end
end
def update_prompt
if Input.trigger?(Input::C)
$game_system.se_play($data_system.decision_se)
@command_window.active = true
@prompt_window.active = false
@prompt_window.visible = false
return
end
end
def update_prompt2
if Input.trigger?(Input::C)
case @prompt_window2.index
when 0
$game_system.se_play($data_system.decision_se)
$game_party.add_actor(@reserve_window.index + 1)
@change_window.refresh
@current_party_window.refresh
if $game_party.actors.size == 4
@prompt_window2.visible = false
@prompt_window2.active = false
@prompt_window2.index = -1
@command_window.active = true
else
@prompt_window2.active = false
@prompt_window2.visible = false
@prompt_window2.index = -1
@reserve_window.active = true
end
when 1
$game_system.se_play($data_system.buzzer_se)
@prompt_window2.active = false
@prompt_window2.visible = false
@prompt_window2.index = -1
@reserve_window.active = true
return
end
end
if Input.trigger?(Input::B)
$game_system.se_play($data_system.buzzer_se)
@prompt_window2.active = false
@prompt_window2.visible = false
@reserve_window.active = true
@prompt_window2.index = -1
end
end
def update_reserve
@change_window.dispose
if $party_variables.available[@reserve_window.index] == true
changewindow = Window_Change.new($game_actors[@reserve_window.index + 1])
else
changewindow = Window_Unlocked.new
end
@change_window = changewindow
@change_window.back_opacity = 180
@change_window.x = 160
@change_window.y = 216
@old_reserve_window_index = @reserve_window.index
@change_window.refresh if @old_reserve_window_index != @reserve_window.index
@dummy_party_window6.z = 999
@title_window.z = 9990
@prompt_window.z = 9999
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
end
if Input.trigger?(Input::C)
if changewindow.is_a?(Window_Unlocked)
$game_system.se_play($data_system.buzzer_se)
else
if $addable == 1
$game_system.se_play($data_system.decision_se)
@reserve_window.active = false
@prompt_window2.visible = true
@prompt_window2.active = true
@prompt_window2.index = 0
$prompt_text = 3
@prompt_window2.z = 9999
else
$game_system.se_play($data_system.buzzer_se)
end
end
end
end
end
class Scene_Title
alias xk8_s_title_main main
def main
xk8_s_title_main
$party_variables = Party_Variables.new
end
end
class Party_Variables
attr_accessor :mandatory
attr_accessor :available
def initialize
@mandatory = [true, false, false, false, false, false, false, false]
@available = [true, true, true, true, true, false, false, false]
end
end