# --------------------------------------------------------------------------
# The following below will adjust the basic settings and vocabulary that
# will display throughout the script. Change them as you see fit.
#===========================================================================
# This is how many frames to wait before displaying the victory aftermath
# scene on the screen.
WAIT = 60
# The following adjusts the two switches that are associated with this
# script so bind them accordingly. Bypassing the BGM will cause no BGM
# change from battle start to end. Skip victory switch will cause the
# victory display portion to be ignored (but gaining EXP and such will
# still occur).
BYPASS_BGM_SWITCH = 4
SKIP_VICTORY_SWITCH = 5
# This hash adjusts the vocabulary used throughout the script.
VOCAB ={
:top_message => "Battle Results",
:gold_found => "Found %s Gold",
:exp_receive => "Earned %s EXP",
:percent_exp => "%1.2f%%",
:next_level => "To Level %s",
:max_level => "Max Level",
:next_exp => "%s EXP",
:level_up => "LEVELS UP",
:to_level => "to Level %s",
:level_msg => "%s has reached level %s!",
:next_stat => "?",
:new_skills => "Skills Acquired",
:spoils => "Victory Spoils",
:no_items => "No items were found.",
:found_items => "%s has found items!",
:item_amount => "×%2d",
} # Do not remove this.
# This determines the gauge information for the victory screens.
FACE_OPACITY = 200 # This adjusts the opacity of the actor's faces
EXP_TICKS = 10 # This is how many ticks it takes to fill the gauge.
EXP_GAUGE_1 = 28 # Experience gauge colour 1 for non-leveled characters.
EXP_GAUGE_2 = 29 # Experience gauge colour 2 for non-leveled characters.
EXP_FONT_SIZE = 18 # Font size used for experience gauge.
LVL_COLOUR = 6 # Text colour used for leveling up.
LVL_GAUGE_1 = 20 # Experience gauge colour 1 for leveled characters.
LVL_GAUGE_2 = 21 # Experience gauge colour 2 for leveled characters.
#===========================================================================
# Experience Settings
# --------------------------------------------------------------------------
# The following below allows you to adjust the amount of experience each
# actor will earn and the rules that govern the experience gained.
#===========================================================================
# If any allies are dead, are they allowed to gain EXP?
DEAD_ALLY_EXP = false
# Do you want the game to scale the experience based on how many actors are
# in the party? This means actors can earn more or less.
PARTY_SPLIT_EXP = false
PARTY_SIZE_SCALING ={
1 => 1.000, # If one actor is active.
2 => 0.500, # If two actors are active.
3 => 0.334, # If three actors are active.
4 => 0.250, # If four actors are active.
5 => 0.200, # If five actors are active.
6 => 0.167, # If six actors are active.
7 => 0.143, # If seven actors are active.
8 => 0.125, # If eight actors are active.
} # Do not remove this.
# The following will determine how HP and MP recovery is calculated upon
# leveling up. 0 - no change. 1 - difference from max. 2 - full recovery.
HP_RECOVERY = 2 # Adjusts HP Recovery Style
MP_RECOVERY = 1 # Adjusts MP Recovery Style
#===========================================================================
# Level Settings
# --------------------------------------------------------------------------
# The following below allows you to adjust the amount of experience each
# actor will earn and the rules that govern the experience gained.
#===========================================================================
# The following array determines which stats will be shown with level up
# increases and also what order. Only the following can be used.
# :maxhp, :maxmp, :atk, :def, :spi, :res, :dex, :agi
SHOWN_STATS = [:maxhp, :maxmp, :atk, :def, :spi, :res, :dex, :agi]
# The following hash adjusts the colours used to display each of the
# various objects inside of the level window.
LEVEL_COLOURS ={
:stat_name => 4, # The stat's name.
:arrow => 4, # Arrow in between the old and new stats.
:old_stat => 5, # The older unleveled stat.
:new_stat => 6, # The newer leveled stat.
} # Do not remove this.
# Changing the following value to an icon ID will change the ? arrow to use
# an icon instead. i.e. ARROW_ICON = 142
ARROW_ICON = nil
# Changing the following below will show the change in stat difference from
# the old stat to the new stat rather than just showing the new stat.
SHOW_DIFFERENCE = true
#===========================================================================
# Audio Settings
# --------------------------------------------------------------------------
# This part of the module adjusts everything that's audio related. Be sure
# to modify them accordingly.
#===========================================================================
# This victory BGM will play once the fanfare finishes.
BGM = RPG::BGM.new("Field1", 100, 100)
# This sound adjusts the ticking noise that occurs as the experience bar
# goes upward. Adjust it accordingly.
TICK_SOUND = RPG::SE.new("Decision1", 80, 100)
# The following adjusts how long to play the Victory ME after finishing
# battle in milliseconds (if it is still continuing).
FANFARE_FADE = 1000
# This is the level up sound that plays when an actor levels up.
LEVEL_SOUND = RPG::SE.new("Flash1", 100, 100)
# This is the sound that will play if items were found.
ITEM_SOUND = RPG::SE.new("Item1", 80, 100)
end
end
#===============================================================================
# Lunatic Mode - Victory Aftermath
# -----------------------------------------------------------------------------
# This mode allows you to add in a bit more of a personal touch to your game by
# adding in victory battle quotes. If they're on, actors who were participating
# in battle can brief the victory spoils and whatnot.
#
# To use this mode, bind each actor to a common event ID. Those common events
# will play out the messages written for them. However, to distinguish when to
# display each message, use conditional branches with a script value check.
# Insert the following into your script value checks:
#
# victory_quote("Main") Occurs at the first page of victory.
# victory_quote("JP") Requires YEZ Job System: Base.
# victory_quote("Level") Occurs when leveling up your character.
# victory_quote("Skill") Occurs when leveling up and learning a skill.
# victory_quote("Nothing") Occurs when no drops are found.
# victory_quote("Drops") Occurs if the enemy has left drops.
#
# When displaying the message events, a few new text shortcuts should be taken
# note of. They are the two following:
#
# \VN This displays the talking actor's name.
# \VF This displays the talking actor's face.
#
# Anything else in the common event will run normally.
#===============================================================================
module YEZ::VICTORY
# If this is enabled, victory quotes will occur instead of the typical
# battle end messages.
ENABLE_QUOTES = true
# The following hash determines which common event ID's are bound to which
# actors when their victory quotes are to be launched.
ACTOR_QUOTES ={ # Actor 0 is the actor used for unlisted actors.
# ActorID => Common Event ID
0 => 20, # Common Victory Quotes
1 => 21, # Ralph's Victory Quotes
2 => 22, # Ulrika's Victory Quotes
3 => 23, # Bennett's Victory Quotes
4 => 24, # Ylva's Victory Quotes
5 => 25, # Lawrence's Victory Quotes
6 => 26, # Oscar's Victory Quotes
7 => 27, # Vera's Victory Quotes
8 => 28, # Elmer's Victory Quotes
} # Do not remove this.
end # YEZ::VICTORY
#===============================================================================
# Editting anything past this point may potentially result in causing computer
# damage, incontinence, explosion of user's head, coma, death, and/or halitosis.
# Therefore, edit at your own risk.
#===============================================================================
#===============================================================================
# Game_Temp
#===============================================================================
class Game_Temp
#--------------------------------------------------------------------------
# public instance variables
#--------------------------------------------------------------------------
attr_accessor :victory_actor
attr_accessor :victory_quote
attr_accessor :victory_clone
end # Game_Temp
#===============================================================================
# Game_Actor
#===============================================================================
class Game_Actor < Game_Battler
#--------------------------------------------------------------------------
# new method: learned_skills
#--------------------------------------------------------------------------
def learned_skills
result = []
for i in @skills
result.push($data_skills[i])
end
return result
end
#--------------------------------------------------------------------------
# new method: now_exp
#--------------------------------------------------------------------------
def now_exp
return @exp - @exp_list[@level]
end
#--------------------------------------------------------------------------
# new method: next_exp
#--------------------------------------------------------------------------
def next_exp
return @exp_list[@level+1] > 0 ? @exp_list[@level+1] - @exp_list[@level] : 0
end
end # Game_Actor
#==============================================================================
# Game_Interpreter
#==============================================================================
class Game_Interpreter
#--------------------------------------------------------------------------
# victory_quote
#--------------------------------------------------------------------------
def victory_quote(text)
return false unless $game_temp.in_battle and $scene.is_a?(Scene_Battle)
return false if $game_temp.victory_quote == nil
return true if text.upcase == $game_temp.victory_quote
return false
end
end # Game_Interpreter
#===============================================================================
# Scene Map
#===============================================================================
class Scene_Map < Scene_Base
#--------------------------------------------------------------------------
# alias method: call battle
#--------------------------------------------------------------------------
alias call_battle_va call_battle unless $@
def call_battle
if $game_switches[YEZ::VICTORY::BYPASS_BGM_SWITCH]
@spriteset.update
Graphics.update
$game_player.make_encounter_count
$game_player.straighten
$game_temp.map_bgm = RPG::BGM.last
$game_temp.map_bgs = RPG::BGS.last
Sound.play_battle_start
$game_temp.next_scene = nil
$scene = Scene_Battle.new
else
call_battle_va
end
end
end # Scene Map
#===============================================================================
# Scene_Battle
#===============================================================================
class Scene_Battle < Scene_Base
#--------------------------------------------------------------------------
# alias method: terminate
#--------------------------------------------------------------------------
alias terminate_va terminate unless $@
def terminate
@top_window.dispose if @top_window != nil
@exp_window.dispose if @exp_window != nil
@gold_window.dispose if @gold_window != nil
@exp_back_window.dispose if @exp_back_window != nil
@exp_front_window.dispose if @exp_front_window != nil
@drops_window.dispose if @drops_window != nil
terminate_va
end
#--------------------------------------------------------------------------
# overwrite method: process_victory
#--------------------------------------------------------------------------
def process_victory
wait(YEZ::VICTORY::WAIT, true)
@info_viewport.visible = false
if $imported["BattleEngineZealous"]
@message_window.dispose
@message_window = Window_BattleMessage.new
elsif $imported["VictoryCompatibility"]
@message_window.dispose
@message_window = Window_BattleMessageCompatible.new
end
@message_window.visible = true
unless $game_switches[YEZ::VICTORY::BYPASS_BGM_SWITCH]
RPG::BGM.stop
$game_system.battle_end_me.play
YEZ::VICTORY::BGM.play unless YEZ::VICTORY::BGM == nil
end
create_victory_clones
create_victory_actor
display_exp_and_gold
display_level_up
display_drop_items
battle_end(0)
$game_temp.victory_actor = nil
$game_temp.victory_clone = nil
if $imported["BattleEngineZealous"] and
YEZ::BATTLE::ZEALOUS::COMMON_EVENTS[:battle_end] != nil
common_event = YEZ::BATTLE::ZEALOUS::COMMON_EVENTS[:battle_end]
$game_temp.common_event_id = common_event
end
victory_me = Thread.new {
time = YEZ::VICTORY::FANFARE_FADE
RPG::ME.fade(time)
sleep(time / 1000.0)
RPG::ME.stop }
battle_end(0)
end
#--------------------------------------------------------------------------
# overwrite method: display_exp_and_gold
#--------------------------------------------------------------------------
def display_exp_and_gold
unless $game_switches[YEZ::VICTORY::SKIP_VICTORY_SWITCH]
show_exp_and_gold
else
@exp = $game_troop.exp_total
if YEZ::VICTORY::PARTY_SPLIT_EXP
size = YEZ::VICTORY::DEAD_ALLY_EXP ?
$game_party.members.size : $game_party.existing_members.size
@exp = Integer(@exp * YEZ::VICTORY::PARTY_SIZE_SCALING[size])
end
$game_party.gain_gold($game_troop.gold_total)
end
end
#--------------------------------------------------------------------------
# overwrite method: display_level_up
#--------------------------------------------------------------------------
def display_level_up
unless $game_switches[YEZ::VICTORY::SKIP_VICTORY_SWITCH]
show_level_up
else
group = YEZ::VICTORY::DEAD_ALLY_EXP ?
$game_party.members : $game_party.existing_members
for actor in group
last_level = actor.level
last_skills = actor.learned_skills.clone
actor.gain_exp(@exp, false)
end
if $imported["PartySelectionSystem"]
@exp = Integer(@exp * YEZ::PARTY::BATTLE_RESERVE_EXP)
for actor in $game_party.reserve_members
last_level = actor.level
last_skills = actor.learned_skills.clone
actor.gain_exp(@exp, false) if actor.exist? or
YEZ::VICTORY::DEAD_ALLY_EXP
end
end
end
end
#--------------------------------------------------------------------------
# overwrite method: display_drop_items
#--------------------------------------------------------------------------
def display_drop_items
@active_battler = nil
unless $game_switches[YEZ::VICTORY::SKIP_VICTORY_SWITCH]
show_drop_items
else
drop_items = $game_troop.make_drop_items
for item in drop_items; $game_party.gain_item(item, 1); end
end
end
#--------------------------------------------------------------------------
# new method: create_victory_clones
#--------------------------------------------------------------------------
def create_victory_clones
$game_temp.victory_clone = {}
$game_temp.in_battle = false
for actor in $game_party.members
$game_temp.victory_clone[actor.id] = actor.clone
end
$game_temp.in_battle = true
end
#--------------------------------------------------------------------------
# new method: create_victory_actor
#--------------------------------------------------------------------------
def create_victory_actor
$game_temp.victory_actor = nil
@original_victory_actor = victory_actor
end
#--------------------------------------------------------------------------
# new method: victory_actor
#--------------------------------------------------------------------------
def victory_actor
if $game_temp.victory_actor == nil
roulette = []
for actor in $game_party.existing_members; roulette.push(actor); end
$game_temp.victory_actor = roulette.size > 0 ?
roulette[rand(roulette.size)] : nil
end
return $game_temp.victory_actor
end
#--------------------------------------------------------------------------
# new method: victory_actor_quote
#--------------------------------------------------------------------------
def victory_actor_quote(value)
$game_temp.victory_quote = value
if YEZ::VICTORY::ACTOR_QUOTES.include?(victory_actor.id)
$game_temp.common_event_id = YEZ::VICTORY::ACTOR_QUOTES[victory_actor.id]
else
$game_temp.common_event_id = YEZ::VICTORY::ACTOR_QUOTES[0]
end
@message_window.visible = true
process_victory_event
end
#--------------------------------------------------------------------------
# new method: process_victory_event
#--------------------------------------------------------------------------
def process_victory_event
loop do
$game_troop.interpreter.update
$game_troop.setup_battle_event
wait_for_message
return unless $game_troop.interpreter.running?
update_basic
end
end
#--------------------------------------------------------------------------
# new method: show_exp_and_gold
#--------------------------------------------------------------------------
def show_exp_and_gold
#--- Draw Victory Message
@top_window = Window_Help.new
text = YEZ::VICTORY::VOCAB[:top_message]
@top_window.set_text(text, 1)
#--- Draw EXP Window
@exp = $game_troop.exp_total
if YEZ::VICTORY::PARTY_SPLIT_EXP
size = YEZ::VICTORY::DEAD_ALLY_EXP ?
$game_party.members.size : $game_party.existing_members.size
@exp = Integer(@exp * YEZ::VICTORY::PARTY_SIZE_SCALING[size])
end
@exp_window = Window_Base.new(272, 56, 272, 56)
text = sprintf(YEZ::VICTORY::VOCAB[:exp_receive], @exp)
@exp_window.contents.draw_text(0, 0, 240, 24, text, 1)
#--- Draw Gold Window
@gold = $game_troop.gold_total
$game_party.gain_gold(@gold)
@gold_window = Window_Base.new(0, 56, 272, 56)
text = sprintf(YEZ::VICTORY::VOCAB[:gold_found], @gold)
@gold_window.contents.draw_text(0, 0, 240, 24, text, 1)
#--- Draw Party EXP Windows
@exp_back_window = Window_Party_Exp_Back.new
@exp_front_window = Window_Party_Exp_Front.new
fill_exp_gauge
#--- Battle Quotes
if YEZ::VICTORY::ENABLE_QUOTES
victory_actor_quote("MAIN")
else
text = sprintf(Vocab::Victory, $game_party.name)
$game_message.texts.push(text)
wait_for_message
end
end
#--------------------------------------------------------------------------
# new method: fill_exp_gauge
#--------------------------------------------------------------------------
def fill_exp_gauge
ticks = 0
percent = 0
increase = 100 / YEZ::VICTORY::EXP_TICKS
until ticks > YEZ::VICTORY::EXP_TICKS
ticks += 1
percent += increase
@exp_front_window.refresh(percent)
if @exp_front_window.full_actors != $game_party.existing_members.size
YEZ::VICTORY::TICK_SOUND.play if YEZ::VICTORY::TICK_SOUND != nil
end
update_basic
end
end
#--------------------------------------------------------------------------
# new method: show_level_up
#--------------------------------------------------------------------------
def show_level_up
@exp_window.visible = false
@gold_window.visible = false
@exp_back_window.visible = false
@exp_front_window.visible = false
group = YEZ::VICTORY::DEAD_ALLY_EXP ?
$game_party.members : $game_party.existing_members
for actor in group
last_level = actor.level
last_skills = actor.learned_skills.clone
actor.gain_exp(@exp, false)
create_level_up_windows(actor, last_skills) if actor.level > last_level
end
if $imported["PartySelectionSystem"]
@exp = Integer(@exp * YEZ::PARTY::BATTLE_RESERVE_EXP)
for actor in $game_party.reserve_members
last_level = actor.level
last_skills = actor.learned_skills.clone
actor.gain_exp(@exp, false) if actor.exist? or
YEZ::VICTORY::DEAD_ALLY_EXP
create_level_up_windows(actor, last_skills) if actor.level > last_level
end
end
wait_for_message
end
#--------------------------------------------------------------------------
# new method: create_level_up_windows
#--------------------------------------------------------------------------
def create_level_up_windows(actor, last_skills)
@active_battler = actor
#--- Basic Settings
YEZ::VICTORY::LEVEL_SOUND.play if YEZ::VICTORY::LEVEL_SOUND != nil
$game_temp.victory_actor = actor
new_skills = actor.learned_skills - last_skills
@top_window.contents.clear
text = sprintf(YEZ::VICTORY::VOCAB[:level_msg], actor.name, actor.level)
@top_window.set_text(text, 1)
case YEZ::VICTORY::HP_RECOVERY
when 1; actor.hp += actor.maxhp - $game_temp.victory_clone[actor.id].maxhp
when 2; actor.hp = actor.maxhp
end
case YEZ::VICTORY::MP_RECOVERY
when 1; actor.mp += actor.maxmp - $game_temp.victory_clone[actor.id].maxmp
when 2; actor.mp = actor.maxmp
end
#--- Create Windows
if new_skills != []
@levelup_window = Window_Level_Up.new(actor, 0, 56, 316, 232)
@skill_back_window = Window_Base.new(316, 56, 228, 232)
@skill_back_window.contents.font.color = @skill_back_window.system_color
text = YEZ::VICTORY::VOCAB[:new_skills]
@skill_back_window.contents.draw_text(0, 0, 196, 24, text, 1)
@skill_list_window = Window_New_Skills.new(new_skills)
else
@levelup_window = Window_Level_Up.new(actor, 0, 56, 544, 232)
end
if YEZ::VICTORY::ENABLE_QUOTES
value = (last_skills != actor.learned_skills) ? "SKILL" : "LEVEL"
victory_actor_quote(value)
else
text = sprintf(Vocab::LevelUp, actor.name, Vocab::level, actor.level)
$game_message.new_page
$game_message.texts.push(text)
if new_skills != []
for skill in new_skills
text = sprintf(Vocab::ObtainSkill, skill.name)
$game_message.texts.push(text)
end
end
wait_for_message
end
#--- Skill Window Scrolling
if new_skills.size > 7
@skill_list_window.index = 0
@skill_list_window.active = true
@skill_list_window.help_window = @top_window
loop do
update_basic
@skill_list_window.update
if Input.trigger?(Input::C)
Sound.play_decision; break
elsif Input.trigger?(Input::B)
Sound.play_cancel; break
elsif Input.press?(Input::A)
break
end
end
end
#--- Disposal of Windows
@levelup_window.dispose if @levelup_window != nil
@levelup_window = nil
@skill_back_window.dispose if @skill_back_window != nil
@skill_back_window = nil
@skill_list_window.dispose if @skill_list_window != nil
@skill_list_window = nil
#--- HP and MP Recovery
end
#--------------------------------------------------------------------------
# new method: show_drop_items
#--------------------------------------------------------------------------
def show_drop_items
@drop_items = $game_troop.make_drop_items
for item in @drop_items; $game_party.gain_item(item, 1); end
if @drop_items != []
@top_window.set_text(YEZ::VICTORY::VOCAB[:spoils],1)
YEZ::VICTORY::ITEM_SOUND.play if YEZ::VICTORY::ITEM_SOUND != nil
@drops_window = Window_BattleDrops.new(@drop_items)
else
@top_window.set_text(YEZ::VICTORY::VOCAB[:no_items],1)
@exp_window.visible = true
@gold_window.visible = true
@exp_back_window.visible = true
@exp_front_window.visible = true
@exp_front_window.refresh
end
if YEZ::VICTORY::ENABLE_QUOTES
$game_temp.victory_actor = @original_victory_actor
value = (@drop_items == []) ? "NOTHING" : "DROPS"
victory_actor_quote(value)
else
if @drop_items == []
text = YEZ::VICTORY::VOCAB[:no_items]
else
text = sprintf(YEZ::VICTORY::VOCAB[:found_items], $game_party.name)
end
$game_message.texts.push(text)
wait_for_message
end
if @drop_items != [] and @drops_window.item_max > 16
@drops_window.index = 0
@drops_window.active = true
@drops_window.help_window = @top_window
loop do
update_basic
@drops_window.update
if Input.trigger?(Input::C)
Sound.play_decision; break
elsif Input.trigger?(Input::B)
Sound.play_cancel; break
elsif Input.press?(Input::A)
break
end
end
end
end
end # Scene_Battle
#===============================================================================
# Window_Message
#===============================================================================
class Window_Message < Window_Selectable
#--------------------------------------------------------------------------
# alias method: convert_special_characters
#--------------------------------------------------------------------------
unless $imported["CustomMessageSystemZeal"]
alias convert_special_characters_va convert_special_characters unless $@
def convert_special_characters
@text.gsub!(/\\VF/i) { victory_face_art }
@text.gsub!(/\\VN/i) { victory_actor_name }
convert_special_characters_va
end
end
#--------------------------------------------------------------------------
# new method: victory_actor_name
#--------------------------------------------------------------------------
def victory_actor_name
return "" unless $scene.is_a?(Scene_Battle)
return $scene.victory_actor.name
end
#--------------------------------------------------------------------------
# new method: victory_face_art
#--------------------------------------------------------------------------
def victory_face_art
return "" unless $scene.is_a?(Scene_Battle)
$game_message.face_name = $scene.victory_actor.face_name
$game_message.face_index = $scene.victory_actor.face_index
return ""
end
end # Window_Message
#===============================================================================
# Window_Party_Exp_Back
#===============================================================================
class Window_Party_Exp_Back < Window_Base
#--------------------------------------------------------------------------
# initialize
#--------------------------------------------------------------------------
def initialize
super(0, 112, 544, 176)
refresh
end
#--------------------------------------------------------------------------
# refresh
#--------------------------------------------------------------------------
def refresh
self.contents.clear
sw = self.width - 32
dy = 0
dx = (sw/2) - $game_party.members.size*60
for actor in $game_party.members
opacity = YEZ::VICTORY::FACE_OPACITY
draw_party_face(actor, dx+12, dy, opacity)
self.contents.draw_text(dx+12, dy, 96, WLH, actor.name, 1)
dx += 120
end
end
#--------------------------------------------------------------------------
# Draw Party Face
#--------------------------------------------------------------------------
def draw_party_face(actor, x, y, opacity = 255, size = 96)
face_name = actor.face_name
face_index = actor.face_index
bitmap = Cache.face(face_name)
rect = Rect.new(0, 0, 0, 0)
rect.x = face_index % 4 * 96 + (96 - size) / 2
rect.y = face_index / 4 * 96 + (96 - size) / 2
rect.width = size
rect.height = size
self.contents.blt(x, y, bitmap, rect, opacity)
bitmap.dispose
end
end # Window_Party_Exp_Back
#===============================================================================
# Window_Party_Exp_Front
#===============================================================================
class Window_Party_Exp_Front < Window_Base
#--------------------------------------------------------------------------
# public instance variables
#--------------------------------------------------------------------------
attr_accessor :full_actors
#--------------------------------------------------------------------------
# initialize
#--------------------------------------------------------------------------
def initialize
super(0, 112, 544, 176)
self.opacity = 0
refresh
end
#--------------------------------------------------------------------------
# refresh
#--------------------------------------------------------------------------
def refresh(extra_per = 0)
self.contents.clear
@full_actors = 0
sw = self.width - 32
dy = WLH*4
dx = (sw/2) - $game_party.members.size*60
for actor in $game_party.members
self.contents.font.color = normal_color
self.contents.font.size = Font.default_size
draw_exp_gauge(actor, dx, dy, extra_per)
draw_exp_text(actor, dx, dy+WLH, extra_per)
dx += 120
end
end
#--------------------------------------------------------------------------
# draw_exp_gauge
#--------------------------------------------------------------------------
def draw_exp_gauge(actor, dx, dy, extra_per)
self.contents.font.size = YEZ::VICTORY::EXP_FONT_SIZE
gc1 = text_color(YEZ::VICTORY::EXP_GAUGE_1)
gc2 = text_color(YEZ::VICTORY::EXP_GAUGE_2)
if actor.level > $game_temp.victory_clone[actor.id].level
gc1 = text_color(YEZ::VICTORY::LVL_GAUGE_1)
gc2 = text_color(YEZ::VICTORY::LVL_GAUGE_2)
gw = 96
self.contents.font.color = text_color(YEZ::VICTORY::LVL_COLOUR)
text = YEZ::VICTORY::VOCAB[:level_up]
elsif actor.next_exp != 0
gw = 96 * (actor.now_exp + exp_gained(extra_per, actor))
gw /= actor.next_exp
gw = [[gw, 96].min, 0].max
text = sprintf(YEZ::VICTORY::VOCAB[:next_level], actor.level + 1)
if gw == 96
self.contents.font.color = text_color(YEZ::VICTORY::LVL_COLOUR)
gc1 = text_color(YEZ::VICTORY::LVL_GAUGE_1)
gc2 = text_color(YEZ::VICTORY::LVL_GAUGE_2)
text = YEZ::VICTORY::VOCAB[:level_up]
end
else
gw = 96
text = YEZ::VICTORY::VOCAB[:max_level]
end
self.contents.fill_rect(dx + 12, dy - 6, 96, 6, gauge_back_color)
self.contents.gradient_fill_rect(dx + 12, dy - 6, gw, 6, gc1, gc2)
self.contents.draw_text(dx, dy, 120, WLH, text, 1)
self.contents.font.color = normal_color
end
#--------------------------------------------------------------------------
# draw_exp_text
#--------------------------------------------------------------------------
def draw_exp_text(actor, dx, dy, extra_per)
if actor.level > $game_temp.victory_clone[actor.id].level
exp_percent = 100.0
text1 = sprintf(YEZ::VICTORY::VOCAB[:percent_exp], exp_percent)
text2 = sprintf(YEZ::VICTORY::VOCAB[:to_level], actor.level)
elsif actor.next_exp != 0
exp_percent = (actor.now_exp + exp_gained(extra_per, actor)) * 100.0
exp_percent /= actor.next_exp
exp_percent = [[exp_percent, 100.0].min, 0].max
@full_actors += 1 if exp_percent >= 100.0
value = [actor.next_rest_exp_s - exp_gained(extra_per, actor), 0].max
text1 = sprintf(YEZ::VICTORY::VOCAB[:percent_exp], exp_percent)
text2 = sprintf(YEZ::VICTORY::VOCAB[:next_exp], value)
else
exp_percent = 100.0
@full_actors += 1
text1 = sprintf(YEZ::VICTORY::VOCAB[:percent_exp], exp_percent)
text2 = ""
end
self.contents.draw_text(dx, dy - WLH * 2, 120, WLH, text1, 1)
self.contents.draw_text(dx, dy, 120, WLH, text2, 1)
end
#--------------------------------------------------------------------------
# exp_gained
#--------------------------------------------------------------------------
def exp_gained(extra_per, actor)
return 0 if actor.dead?
extra_per = 100 if extra_per > 100
exp = $game_troop.exp_total
members = $game_party.members.size
if YEZ::VICTORY::PARTY_SPLIT_EXP
size = YEZ::VICTORY::DEAD_ALLY_EXP ?
$game_party.members.size : $game_party.existing_members.size
exp = Integer(exp * YEZ::VICTORY::PARTY_SIZE_SCALING[size])
end
exp *= 2 if actor.double_exp_gain
exp *= extra_per
exp /= 100
return exp
end
end # Window_Party_Exp_Front
#===============================================================================
# Window_New_Skills
#===============================================================================
class Window_New_Skills < Window_Selectable
#--------------------------------------------------------------------------
# initialize
#--------------------------------------------------------------------------
def initialize(new_skills)
@new_skills = new_skills
super(316, 80, 228, 208)
self.index = -1
self.opacity = 0
refresh
end
#--------------------------------------------------------------------------
# skill
#--------------------------------------------------------------------------
def skill; return @data[self.index]; end
#--------------------------------------------------------------------------
# refresh
#--------------------------------------------------------------------------
def refresh
@data = []
for skill in @new_skills
@data.push(skill)
end
@item_max = @data.size
create_contents
for i in 0..(@item_max-1)
draw_item(i)
end
end
#--------------------------------------------------------------------------
# draw_item
#--------------------------------------------------------------------------
def draw_item(index)
rect = item_rect(index)
self.contents.clear_rect(rect)
skill = @data[index]
return if skill == nil
draw_item_name(skill, rect.x, rect.y)
end
#--------------------------------------------------------------------------
# update_help
#--------------------------------------------------------------------------
def update_help
@help_window.set_text(skill == nil ? "" : skill.description)
end
end # Window_New_Skills
#===============================================================================
# Window_BattleDrops
#===============================================================================
class Window_BattleDrops < Window_Selectable
#--------------------------------------------------------------------------
# initialize
#--------------------------------------------------------------------------
def initialize(drop_items)
super(0, 56, 544, 232)
@drop_items = drop_items
@column_max = 2
self.index = -1
refresh
end
#--------------------------------------------------------------------------
# item
#--------------------------------------------------------------------------
def item; return @data[self.index]; end
#--------------------------------------------------------------------------
# refrehs
#--------------------------------------------------------------------------
def refresh
@items = {}; @weapons = {}; @armours = {}; @goods = {}; @data = []
for item in @drop_items
case item
when RPG::Item
@items[item] = 0 if @items[item] == nil
@items[item] += 1
when RPG::Weapon
@weapons[item] = 0 if @weapons[item] == nil
@weapons[item] += 1
when RPG::Armor
@armours[item] = 0 if @armours[item] == nil
@armours[item] += 1
end
end
@items = @items.sort { |a,b| a[0].id <=> b[0].id }
@weapons = @weapons.sort { |a,b| a[0].id <=> b[0].id }
@armours = @armours.sort { |a,b| a[0].id <=> b[0].id }
for key in @items; @goods[key[0]] = key[1]; @data.push(key[0]); end
for key in @weapons; @goods[key[0]] = key[1]; @data.push(key[0]); end
for key in @armours; @goods[key[0]] = key[1]; @data.push(key[0]); end
@item_max = @data.size
create_contents
for i in 0..(@item_max-1); draw_item(i); end
end
#--------------------------------------------------------------------------
# draw_item
#--------------------------------------------------------------------------
def draw_item(index)
rect = item_rect(index)
self.contents.clear_rect(rect)
item = @data[index]
return if item == nil
number = @goods[item]
rect.width -= 4
draw_item_name(item, rect.x, rect.y)
self.contents.draw_text(rect, sprintf(YEZ::VICTORY::VOCAB[:item_amount],
number), 2)
end
#--------------------------------------------------------------------------
# update_help
#--------------------------------------------------------------------------
def update_help
@help_window.set_text(item == nil ? "" : item.description)
end
end # Window_BattleDrops
#===============================================================================
# Window_Level_Up
#===============================================================================
class Window_Level_Up < Window_Base
#--------------------------------------------------------------------------
# initialize
#--------------------------------------------------------------------------
def initialize(actor, dx, dy, dw, dh)
super(dx, dy, dw, dh)
@actor = actor
@clone = $game_temp.victory_clone[actor.id]
refresh
end
#--------------------------------------------------------------------------
# refresh
#--------------------------------------------------------------------------
def refresh
self.contents.clear
sw = self.width - 32
dy = 0; dx = sw/2 - 234/2
draw_stats(dx, dy)
end
#--------------------------------------------------------------------------
# draw_stats
#--------------------------------------------------------------------------
def draw_stats(dx, dy)
arrow = YEZ::VICTORY::VOCAB[:next_stat]
colours = YEZ::VICTORY::LEVEL_COLOURS
for stat in YEZ::VICTORY::SHOWN_STATS
case stat
when :maxhp
icon = $imported["Icons"] ? YEZ::ICONS[:hp] : 0
text = Vocab.hp
value1 = @clone.maxhp
value2 = @actor.maxhp
when :maxmp
icon = $imported["Icons"] ? YEZ::ICONS[:mp] : 0
text = Vocab.mp
value1 = @clone.maxmp
value2 = @actor.maxmp
when :atk
icon = $imported["Icons"] ? YEZ::ICONS[:atk] : 0
text = Vocab.atk
value1 = @clone.atk
value2 = @actor.atk
when :def
icon = $imported["Icons"] ? YEZ::ICONS[:def] : 0
text = Vocab.def
value1 = @clone.def
value2 = @actor.def
when :spi
icon = $imported["Icons"] ? YEZ::ICONS[:spi] : 0
text = Vocab.spi
value1 = @clone.spi
value2 = @actor.spi
when :agi
icon = $imported["Icons"] ? YEZ::ICONS[:agi] : 0
text = Vocab.agi
value1 = @clone.agi
value2 = @actor.agi
when :dex
next unless $imported["BattlerStatDEX"]
icon = $imported["Icons"] ? YEZ::ICONS[:dex] : 0
text = Vocab.dex
value1 = @clone.dex
value2 = @actor.dex
when :res
next unless $imported["BattlerStatRES"]
icon = $imported["Icons"] ? YEZ::ICONS[:res] : 0
text = Vocab.res
value1 = @clone.res
value2 = @actor.res
else; next
end
value2 = sprintf("%+d", value2 - value1) if YEZ::VICTORY::SHOW_DIFFERENCE
draw_icon(icon, dx, dy)
self.contents.font.color = text_color(colours[:stat_name])
self.contents.draw_text(dx+24, dy, 60, WLH, text, 0)
self.contents.font.color = text_color(colours[:old_stat])
self.contents.draw_text(dx+84, dy, 60, WLH, value1, 2)
if YEZ::VICTORY::ARROW_ICON.is_a?(Integer)
draw_icon(YEZ::VICTORY::ARROW_ICON, dx+147, dy)
else
self.contents.font.color = text_color(colours[:arrow])
self.contents.draw_text(dx+144, dy, 30, WLH, arrow, 1)
end
self.contents.font.color = text_color(colours[:new_stat])
self.contents.draw_text(dx+174, dy, 60, WLH, value2, 0)
dy += WLH
end
end
end # Window_Level_Up
#===============================================================================
#
# END OF FILE
#
#===============================================================================
Under the audio settings at the second end from the bottom is where it says the error is.