1 résultat trouvé pour ------------------------------------------------------------------------

par mysterious
le Jeu 17 Juil 2014 - 19:25
 
Rechercher dans: Event et BDD
Sujet: Invocation en event / script
Réponses: 3
Vues: 478

Invocation en event / script

Mon systme est simple, une comptence permet de faire apparatre une entit sur le terrain qui combat avec vous jusqu' la mort de celle-ci ou jusqu' la fin du combat.

pour commencer crer dans la section hro un personnage ainsi qu'une classe votre invocation :
Spoiler:
Tag ------------------------------------------------------------------------ sur RPG Maker - La Communauté - v5 Numero11


l'avantage qu'il y a crer un hro et une classe pour chaque invocation est que votre invocation gagnera des niveaux et des capacits aux mme titre que vos hros.

Ensuite crer un vnement commun que vous appellerez par le nom de l'invocation ( pour plus de lisibilit), puis suivez l'ordre :
Spoiler:
Tag ------------------------------------------------------------------------ sur RPG Maker - La Communauté - v5 Numero12


( la condition n'est utile que si vous voulez ne pouvoir faire qu'une invocation par combat )

ensuite crer un deuxime vnement commun que vous monterez de cette faon-ci :
Spoiler:
Tag ------------------------------------------------------------------------ sur RPG Maker - La Communauté - v5 Numero14



(la dsactivation de l'interupteur ne sers que si vous voulez ne pouvoir faire qu'une invocation par combat)

cela fait crer une comptence du nom de l'invocation qui appelle le 1er vnement commun :
Spoiler:
Tag ------------------------------------------------------------------------ sur RPG Maker - La Communauté - v5 Numero15


le plus dur est fait, maintenant il va nous falloir un script pour pouvoir appel notre deuxime evenement commun chaque fin de combat et pour cela j'ai utiliser le script de Yanfly d'aprs combat;

insrez ce script au dessus de main :
Spoiler:
#==============================================================================
#
# Yanfly Engine Ace - Victoire AprsCombat v1.00
# -- Traduit par UltimaSasuke pour rpgmakervx-fr.com
# -- Drnire Mise Jour: 2011.12.16
# -- Niveaux: Easy, Normal, Hard
# -- Require : n/a
#
#==============================================================================

$imported = {} if $imported.nil?
$imported["YEA-VictoryAftermath"] = true

#==============================================================================
# Mise Jour
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# 2011.12.16 - Dbut et fin du script.
#
#==============================================================================
# Introduction
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# A la fin de chaque combat, RPG Maker VX Ace, par dfaut, affiche du texte
# pour chaque fin de combat en disant l'EXP gagn et les objets obtenue.
# Ce script sert rendre cette fin de combat plus visuel pour vos joueur.
# Vous pourrais voir tout ce que la fin de combat de base vous prsente mais
# en plus comprhensible et design. (Cf. Screens rpgmakervx-fr.com).
#
#==============================================================================
# Instructions
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# Pour installer ce script insr le en ouvrant l'diteur de script (F11)
# en dessous de Matrial et au dessus de Main.
#
# -----------------------------------------------------------------------------
# Instruction pour la citation de Acteurs - Ces Mots Cl vont dans les notes
# des acteurs dans la base de donnes.
# -----------------------------------------------------------------------------
#
# Corp
# Corp
#

# Dfinie la citation de l'acteur quand il gagne. Le corp du code
# est continue, vous pouvez utiliser les codes de texte. Utilisez \n pour faire
# un saut de ligne. Tapez ce que vous voulez que l'acteur dise pour la citation
# Utilisez [New Quote] entre les deux balises pour dmmarer une nouvelle citation.
#
# // EXEMPLE :
#
# "Je suis le meilleur!"
# [new quote]
# "Ils ne font pas le poid.\n Je resterais le meilleur!"
#

# FIN DE L'EXEMPLE \\
#
#
# Corp
# Corp
#

# Dfinie la citation de l'acteur quand il gagne des niveaux. Le corp du code
# est continue, vous pouvez utiliser les codes de texte. Utilisez
# \n pour faire un saut de ligne. Tapez ce que vous voulez que l'acteur dise pour
# la citation. Utilisez [New Quote] entre les deux balises pour dmmarer une
# nouvelle citation.
#
# //EXEMPLE :
#
# "Je suis plus puissant!"
# [new quote]
# "Dj que les combat sont simple, \n Maintenant sa va tre de la tarte!"
#

# FIN DE L'EXEMPLE \\
#
#
# Corp
# Corp
#

# Dfinie la citation de l'acteur quand il gagne des objets. Le corp du code
# est continue, vous pouvez utiliser les codes de texte. Utilisez
# \n pour faire un saut de ligne. Tapez ce que vous voulez que l'acteur dise pour
# la citation. Utilisez [New Quote] entre les deux balises pour dmmarer une
# nouvelle citation.
#
# //EXEMPLE :
#
# "Intrssant ce qu'il y a!"
# [new quote]
# "Tout a rien que pour moi. \n Je vais vite devenir riche!!"
#

# FIN DE L'EXEMPLE \\
#
# -----------------------------------------------------------------------------
# Instruction pour la citation des classes - Ces Mots Cl vont dans les notes
# des classes dans la base de donnes.
# -----------------------------------------------------------------------------
#
# corp
# corp
#

# Dfinie la citation de la classe quand elle gagne. Le corp du code
# est continue, vous pouvez utiliser les codes de texte. Utilisez \n pour faire
# un saut de ligne. Tapez ce que vous voulez que l'acteur dise pour la citation
# Utilisez [New Quote] entre les deux balises pour dmmarer une nouvelle citation.
#
# // EXEMPLE :
#
# "Les Chevaliers sont les meilleurs!"
# [new quote]
# "Ils ne font pas le poid.\n Les Chevaliers en font des confties!"
#

# FIN DE L'EXEMPLE \\
#
#
# corp
# corp
#

# Dfinie la citation de la classe quand elle gagne des niveaux. Le corp du code
# est continue, vous pouvez utiliser les codes de texte. Utilisez
# \n pour faire un saut de ligne. Tapez ce que vous voulez que l'acteur dise pour
# la citation. Utilisez [New Quote] entre les deux balises pour dmmarer une
# nouvelle citation.
#
# //EXEMPLE :
#
# "Les chevaliers deviennent plus puissant!"
# [new quote]
# "Dj que les combat sont simple, \n Maintenant sa va tre de la tarte!"
#

# FIN DE L'EXEMPLE \\
#
#
# corp
# corp
#

# Dfinie la citation de la classe quand elle gagne des objets. Le corp du code
# est continue, vous pouvez utiliser les codes de texte. Utilisez
# \n pour faire un saut de ligne. Tapez ce que vous voulez que l'acteur dise pour
# la citation. Utilisez [New Quote] entre les deux balises pour dmmarer une
# nouvelle citation.
#
# //EXEMPLE :
#
# "Intrssant ce qu'il y a!"
# [new quote]
# "Tout a rien que pour nous. \n Nous allons vite devenir riche!!"
#

# FIN DE L'EXEMPLE \\
#
#==============================================================================
# ▼ Compatibility
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# Ce script est fait pour RPG Maker VX Ace et il est peut probable qu'il
# fonction sous RPG Maker VX sans ajustement.
#
#==============================================================================

module YEA
 module VICTORY_AFTERMATH
   
   #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
   # - Paramétre Général -
   #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
   # Ce sont des paramétre différent utilisé par le script, modifiez les
   # comme bon vous sembles.
   #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
   VICTORY_BGM  = RPG::BGM.new("Field1", 100, 100)    # Effet de Victoire (BGM)
   VICTORY_TICK = RPG::SE.new("Decision1", 100, 150)  # Effet d'EXP (SE)
   LEVEL_SOUND  = RPG::SE.new("Up4", 80, 150)         # Effet de niveaux (SE)
   SKILLS_TEXT  = "Nouvelle compétence!"              # Nouvelles compétences
   
   #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
   # - Paramétre important -
   #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
   # Ce sont des paramétres important, configurez les correctement. Il y a
   # un intérupteur qui permet de sauté la phase de script après le combat.
   # (pour ne plus voir la phase de résumé de victoire) et vous permet
   # d'appeller un évenement commun après chaque combat. Si vous ne souhaitez
   # pas faire appelle à ces fonctionalité, les mettre à 0. L'événement se
   # déroulera indépendamment de gagner ou s'échapper.
   #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
   SKIP_AFTERMATH_SWITCH  = 0  # Si l'intérupteur est activé, cela sautera la
        # phase de résumé de victoire après le combat. Mettre à 0 pour
        # désactiver cette fonctionalité.
   AFTERMATH_COMMON_EVENT = 6  # Appelle un évenement commun après le combat.
        # Mettre à 0 pour désactiver cette fonctionalité.
   #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
   # - Paramétre du texte du haut -
   #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
   # Ici, vous pouvez ajuster les différents textes qui s'affiche dans la
   # fenêtre qui apparaît en haut de l'écran.
   #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
   TOP_TEAM         = "Equipe de %s"           # Nom de l'équipe utilisé.
   TOP_VICTORY_TEXT = "%s sort victorieuse!"   # Texte de victoire.
   TOP_LEVEL_UP     = "%s a monté de niveau!"  # Text de niveau gagné.
   TOP_SPOILS       = "Butin gagné!"           # Texte pour le butins.
   
   #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
   # - Paramétre de la jauge d'EXP -
   #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
   # Ajustez la façon que la Jauge d'EXP apparaît pour le script. Ca comprend
   # l'affichage du texte, la taille de la police, la couleur des jauges, et
   # plus encore. Réglez tout ça ici.
   #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
   VICTORY_EXP  = "+%sEXP"      # Texte affiché pour l'EXP
   EXP_PERCENT  = "%1.2f%%"     # L'EXP en % affiché.
   LEVELUP_TEXT = "Niveau Gagné!"   # Texte qui remplace le % d'EXP quand le
                                    # le niveau monte.
   MAX_LVL_TEXT = "Niveau Maximum Atteint!"   # Texte pour dire que le niveau
                                              # max est atteint
   FONTSIZE_EXP = 20            # Taille de la police pour l'EXP
   EXP_TICKS    = 15            # Ticks to full EXP
   EXP_GAUGE1   = 12            # "Fenêtre" Couleur de la texture du text
                                # pour la jauge.
   EXP_GAUGE2   = 4             # "Fenêtre" Couleur de la texture du text
                                # pour la jauge.
   LEVEL_GAUGE1 = 13            # "Fenêtre" Couleur de la texture du text
                                # pour le gain de niveau.
   LEVEL_GAUGE2 = 5             # "Fenêtre" Couleur de la texture du text
                                # pour le gain de niveau.
   
   #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
   # - Messages de victoire -
   #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
   # Dans ce script, les acteurs peuvent avoir des citations unique. Ceci est
   # "bassin" de citation utilisé par les acteurs qui n'ont pas de citations
   # personel (voir instruction sur les citations d'acteurs). Sachez que les
   # citations personalisé au acteurs est prioritaire sur les citations de
   # classe qui elle sont prioritaire sur les citations par défaut
   # (ci-dessous). Utilisez \n pour un saut de ligne dans les citations.
   #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
   HEADER_TEXT = "\e>\eC[6]%s\eC[0]\e<\n"  # Toujours au début des messages.
   FOOTER_TEXT = ""                        # Toujours à la fin des messages.
   
   # Les citations par défauts, ce que les acteurs disent quand ils gagnent.
   VICTORY_QUOTES ={
   # :type   => Citations
#------------------------------------------------------------------------
     :win    => [ # Survient au dbut de la citation de victoire.
'"Nous avons gagn! C\'tait un beau combat."',
'"Je ne suis mme pas fatigu."',
'"Ce n\'tait pas si difficile."',
'"Allons chercher plus fort!"',
],# Ne pas enlever a.
#------------------------------------------------------------------------
     :level  => [ # Survient au dbut de la citation de victoire.
'"Oui! Niveau gagn!"',
'"Je deviens plus fort!"',
'"Essayez de me suivre!"',
'"Je deviens encore plus fort!"',
],# Ne pas enlever a.
#------------------------------------------------------------------------
     :drops  => [ # Survient au dbut de la citation de victoire.
'"Je vais prendre a."',
'"Il y a le butin pour le vainqueur."',
'"Les ennemies ont fait tomber quelque chose!"',
'"Hey! C\'est quoi a?!"',
],# Ne pas enlever a.
#------------------------------------------------------------------------
} # Ne pas enlever a.

end # VICTORY_AFTERMATH
end # YEA

#==============================================================================
# Ne pas ditez ce qu'il y a plus bas, sinon vous pourrez rentre dans le coma
# et/ou mourrir. (Petite touche d'humour du scripteur).
#==============================================================================

module YEA
module REGEXP
module BASEITEM

NEW_QUOTE = /\[(?:NEW_QUOTE|new quote)\]/i

WIN_QUOTE_ON = /<(?:WIN_QUOTES|win quote)>/i
WIN_QUOTE_OFF = /<\/(?:WIN_QUOTES|win quote)>/i
LEVEL_QUOTE_ON = /<(?:LEVEL_QUOTES|level quote)>/i
LEVEL_QUOTE_OFF = /<\/(?:LEVEL_QUOTES|level quote)>/i
DROPS_QUOTE_ON = /<(?:DROPS_QUOTES|drops quote)>/i
DROPS_QUOTE_OFF = /<\/(?:DROPS_QUOTES|drops quote)>/i

end # BASEITEM
end # REGEXP
end # YEA

#==============================================================================
# Switch
#==============================================================================

module Switch

#--------------------------------------------------------------------------
# self.skip_aftermath
#--------------------------------------------------------------------------
def self.skip_aftermath
return false if YEA::VICTORY_AFTERMATH::SKIP_AFTERMATH_SWITCH <= 0
return &#36;game_switches[YEA::VICTORY_AFTERMATH::SKIP_AFTERMATH_SWITCH]
end

end # Switch

#==============================================================================
# Numeric
#==============================================================================

class Numeric

#--------------------------------------------------------------------------
# new method: group_digits
#--------------------------------------------------------------------------
unless &#36;imported["YEA-CoreEngine"]
def group; return self.to_s; end
end # &#36;imported["YEA-CoreEngine"]

end # Numeric

#==============================================================================
# DataManager
#==============================================================================

module DataManager

#--------------------------------------------------------------------------
# alias method: load_database
#--------------------------------------------------------------------------
class <
alias load_database_va load_database; end
def self.load_database
load_database_va
load_notetags_va
end

#--------------------------------------------------------------------------
# new method: load_notetags_va
#--------------------------------------------------------------------------
def self.load_notetags_va
groups = [&#36;data_actors, &#36;data_classes]
for group in groups
for obj in group
next if obj.nil?
obj.load_notetags_va
end
end
end

end # DataManager

#==============================================================================
# RPG::BaseItem
#==============================================================================

class RPG::BaseItem

#--------------------------------------------------------------------------
# public instance variables
#--------------------------------------------------------------------------
attr_accessor :win_quotes
attr_accessor :level_quotes
attr_accessor :drops_quotes

#--------------------------------------------------------------------------
# common cache: load_notetags_va
#--------------------------------------------------------------------------
def load_notetags_va
@win_quotes = [""]
@level_quotes = [""]
@drops_quotes = [""]
@victory_quote_type = nil
#---
self.note.split(/[\r\n]+/).each { |line|
case line
#---
when YEA::REGEXP::BASEITEM::WIN_QUOTE_ON
@victory_quote_type = :win_quote
when YEA::REGEXP::BASEITEM::WIN_QUOTE_OFF
@victory_quote_type = nil
when YEA::REGEXP::BASEITEM::LEVEL_QUOTE_ON
@victory_quote_type = :level_quote
when YEA::REGEXP::BASEITEM::LEVEL_QUOTE_OFF
@victory_quote_type = nil
when YEA::REGEXP::BASEITEM::DROPS_QUOTE_ON
@victory_quote_type = :drops_quote
when YEA::REGEXP::BASEITEM::DROPS_QUOTE_OFF
@victory_quote_type = nil
#---
when YEA::REGEXP::BASEITEM::NEW_QUOTE
case @victory_quote_type
when nil; next
when :win_quote; @win_quotes.push("")
when :level_quote; @level_quotes.push("")
when :drops_quote; @drops_quotes.push("")
end
#---
else
case @victory_quote_type
when nil; next
when :win_quote; @win_quotes[@win_quotes.size-1] += line.to_s
when :level_quote; @level_quotes[@level_quotes.size-1] += line.to_s
when :drops_quote; @drops_quotes[@drops_quotes.size-1] += line.to_s
end
end
} # self.note.split
#---
return unless self.is_a?(RPG::Class)
quotes = YEA::VICTORY_AFTERMATH::VICTORY_QUOTES
@win_quotes = quotes[:win].clone if @win_quotes == [""]
@level_quotes = quotes[:level].clone if @level_quotes == [""]
@drops_quotes = quotes[:drops].clone if @drops_quotes == [""]
end

end # RPG::BaseItem

#==============================================================================
# BattleManager
#==============================================================================

module BattleManager

#--------------------------------------------------------------------------
# overwrite method: self.process_victory
#--------------------------------------------------------------------------
def self.process_victory
if Switch.skip_aftermath
skip_aftermath
return
end
play_battle_end_me
display_exp
gain_exp
gain_gold
gain_drop_items
close_windows
SceneManager.return
replay_bgm_and_bgs
battle_end(0)
return true
end

#--------------------------------------------------------------------------
# new method: self.skip_aftermath
#--------------------------------------------------------------------------
def self.skip_aftermath
&#36;game_party.all_members.each do |actor|
actor.gain_exp(&#36;game_troop.exp_total)
end
&#36;game_party.gain_gold(&#36;game_troop.gold_total)
&#36;game_troop.make_drop_items.each do |item|
&#36;game_party.gain_item(item, 1)
end
close_windows
SceneManager.return
replay_bgm_and_bgs
battle_end(0)
end

#--------------------------------------------------------------------------
# overwrite method: self.play_battle_end_me
#--------------------------------------------------------------------------
def self.play_battle_end_me
&#36;game_system.battle_end_me.play
YEA::VICTORY_AFTERMATH::VICTORY_BGM.play
end

#--------------------------------------------------------------------------
# new method: self.set_victory_text
#--------------------------------------------------------------------------
def self.set_victory_text(actor, type)
text = "" + sprintf(YEA::VICTORY_AFTERMATH::HEADER_TEXT, actor.name)
text += actor.victory_quotes(type)[rand(actor.victory_quotes(type).size)]
text += YEA::VICTORY_AFTERMATH::FOOTER_TEXT
&#36;game_message.face_name = actor.face_name
&#36;game_message.face_index = actor.face_index
&#36;game_message.add(text)
wait_for_message
end

#--------------------------------------------------------------------------
# overwrite method: self.display_exp
#--------------------------------------------------------------------------
def self.display_exp
SceneManager.scene.show_victory_display_exp
actor = &#36;game_party.random_target
@victory_actor = actor
set_victory_text(@victory_actor, :win)
end

#--------------------------------------------------------------------------
# overwrite method: self.gain_exp
#--------------------------------------------------------------------------
def self.gain_exp
&#36;game_party.all_members.each do |actor|
temp_actor = Marshal.load(Marshal.dump(actor))
actor.gain_exp(&#36;game_troop.exp_total)
next if actor.level == temp_actor.level
SceneManager.scene.show_victory_level_up(actor, temp_actor)
set_victory_text(actor, :level)
wait_for_message
end
end

#--------------------------------------------------------------------------
# overwrite method: self.gain_gold
#--------------------------------------------------------------------------
def self.gain_gold
&#36;game_party.gain_gold(&#36;game_troop.gold_total)
end

#--------------------------------------------------------------------------
# overwrite method: self.gain_drop_items
#--------------------------------------------------------------------------
def self.gain_drop_items
drops = []
&#36;game_troop.make_drop_items.each do |item|
&#36;game_party.gain_item(item, 1)
drops.push(item)
end
SceneManager.scene.show_victory_spoils(&#36;game_troop.gold_total, drops)
set_victory_text(@victory_actor, :drops)
wait_for_message
end

#--------------------------------------------------------------------------
# new method: self.close_windows
#--------------------------------------------------------------------------
def self.close_windows
SceneManager.scene.close_victory_windows
end

#--------------------------------------------------------------------------
# alias method: load_database
#--------------------------------------------------------------------------
class < alias battle_end_va battle_end; end
def self.battle_end(result)
battle_end_va(result)
return if result == 2
return if YEA::VICTORY_AFTERMATH::AFTERMATH_COMMON_EVENT <= 0
event_id = YEA::VICTORY_AFTERMATH::AFTERMATH_COMMON_EVENT
&#36;game_temp.reserve_common_event(event_id)
end

end # BattleManager

#==============================================================================
# Game_Actor
#==============================================================================

class Game_Actor < Game_Battler

#--------------------------------------------------------------------------
# overwrite method: gain_exp
#--------------------------------------------------------------------------
def gain_exp(exp)
enabled = !SceneManager.scene_is?(Scene_Battle)
change_exp(self.exp + (exp * final_exp_rate).to_i, enabled)
end

#--------------------------------------------------------------------------
# new method: victory_quotes
#--------------------------------------------------------------------------
def victory_quotes(type)
case type
when :win
return self.actor.win_quotes if self.actor.win_quotes != [""]
return self.class.win_quotes
when :level
return self.actor.level_quotes if self.actor.level_quotes != [""]
return self.class.level_quotes
when :drops
return self.actor.drops_quotes if self.actor.drops_quotes != [""]
return self.class.drops_quotes
else
return ["NOTEXT"]
end
end

end # Game_Actor

#==============================================================================
# Window_VictoryTitle
#==============================================================================

class Window_VictoryTitle < Window_Base

#--------------------------------------------------------------------------
# initialize
#--------------------------------------------------------------------------
def initialize
super(0, 0, Graphics.width, fitting_height(1))
self.z = 200
self.openness = 0
end

#--------------------------------------------------------------------------
# refresh
#--------------------------------------------------------------------------
def refresh(message = "")
contents.clear
draw_text(0, 0, contents.width, line_height, message, 1)
end

end # Window_VictoryTitle

#==============================================================================
# Window_VictoryEXP_Back
#==============================================================================

class Window_VictoryEXP_Back < Window_Selectable

#--------------------------------------------------------------------------
# initialize
#--------------------------------------------------------------------------
def initialize
super(0, fitting_height(1), Graphics.width, window_height)
self.z = 200
self.openness = 0
end

#--------------------------------------------------------------------------
# window_height
#--------------------------------------------------------------------------
def window_height
return Graphics.height - fitting_height(4) - fitting_height(1)
end

#--------------------------------------------------------------------------
# col_max
#--------------------------------------------------------------------------
def col_max; return item_max; end

#--------------------------------------------------------------------------
# spacing
#--------------------------------------------------------------------------
def spacing; return 8; end

#--------------------------------------------------------------------------
# item_max
#--------------------------------------------------------------------------
def item_max; return &#36;game_party.battle_members.size; end

#--------------------------------------------------------------------------
# open
#--------------------------------------------------------------------------
def open
@exp_total = &#36;game_troop.exp_total
super
end

#--------------------------------------------------------------------------
# item_rect
#--------------------------------------------------------------------------
def item_rect(index)
rect = Rect.new
rect.width = item_width
rect.height = contents.height
rect.x = index % col_max * (item_width + spacing)
rect.y = index / col_max * item_height
return rect
end

#--------------------------------------------------------------------------
# draw_item
#--------------------------------------------------------------------------
def draw_item(index)
actor = &#36;game_party.battle_members[index]
return if actor.nil?
rect = item_rect(index)
reset_font_settings
draw_actor_name(actor, rect)
draw_exp_gain(actor, rect)
draw_actor_face(actor, rect)
end

#--------------------------------------------------------------------------
# draw_actor_name
#--------------------------------------------------------------------------
def draw_actor_name(actor, rect)
name = actor.name
draw_text(rect.x, rect.y+line_height, rect.width, line_height, name, 1)
end

#--------------------------------------------------------------------------
# draw_actor_face
#--------------------------------------------------------------------------
def draw_actor_face(actor, rect)
face_name = actor.face_name
face_index = actor.face_index
bitmap = Cache.face(face_name)
rw = [rect.width, 96].min
face_rect = Rect.new(face_index % 4 * 96, face_index / 4 * 96, rw, 96)
rx = (rect.width - rw) / 2 + rect.x
contents.blt(rx, rect.y + line_height * 2, bitmap, face_rect, 255)
end

#--------------------------------------------------------------------------
# draw_exp_gain
#--------------------------------------------------------------------------
def draw_exp_gain(actor, rect)
dw = rect.width - (rect.width - [rect.width, 96].min) / 2
dy = rect.y + line_height * 3 + 96
fmt = YEA::VICTORY_AFTERMATH::VICTORY_EXP
text = sprintf(fmt, actor_exp_gain(actor).group)
contents.font.size = YEA::VICTORY_AFTERMATH::FONTSIZE_EXP
change_color(power_up_color)
draw_text(rect.x, dy, dw, line_height, text, 2)
end

#--------------------------------------------------------------------------
# actor_exp_gain
#--------------------------------------------------------------------------
def actor_exp_gain(actor)
n = @exp_total * actor.final_exp_rate
return n.to_i
end

end # Window_VictoryEXP_Back

#==============================================================================
# Window_VictoryEXP_Front
#==============================================================================

class Window_VictoryEXP_Front < Window_VictoryEXP_Back
 
 #--------------------------------------------------------------------------
 # initialize
 #--------------------------------------------------------------------------
 def initialize
   super
   self.back_opacity = 0
   @ticks = 0
   @counter = 30
   contents.font.size = YEA::VICTORY_AFTERMATH::FONTSIZE_EXP
 end
 
 #--------------------------------------------------------------------------
 # update
 #--------------------------------------------------------------------------
 def update
   super
   update_tick
 end
 
 #--------------------------------------------------------------------------
 # update_tick
 #--------------------------------------------------------------------------
 def update_tick
   return unless self.openness >= 255
return if complete_ticks?
@counter -= 1
return unless @counter <= 0
   return if @ticks >= YEA::VICTORY_AFTERMATH::EXP_TICKS
YEA::VICTORY_AFTERMATH::VICTORY_TICK.play
@counter = 4
@ticks += 1
refresh
end

#--------------------------------------------------------------------------
# complete_ticks?
#--------------------------------------------------------------------------
def complete_ticks?
for actor in &#36;game_party.battle_members
total_ticks = YEA::VICTORY_AFTERMATH::EXP_TICKS
bonus_exp = actor_exp_gain(actor) * @ticks / total_ticks
now_exp = actor.exp - actor.current_level_exp + bonus_exp
next_exp = actor.next_level_exp - actor.current_level_exp
rate = now_exp * 1.0 / next_exp
return false if rate < 1.0
   end
   return true
 end
 
 #--------------------------------------------------------------------------
 # draw_item
 #--------------------------------------------------------------------------
 def draw_item(index)
   actor = $game_party.battle_members[index]
   return if actor.nil?
   rect = item_rect(index)
   draw_actor_exp(actor, rect)
 end
 
 #--------------------------------------------------------------------------
 # exp_gauge1
 #--------------------------------------------------------------------------
 def exp_gauge1; return text_color(YEA::VICTORY_AFTERMATH::EXP_GAUGE1); end
 
 #--------------------------------------------------------------------------
 # exp_gauge2
 #--------------------------------------------------------------------------
 def exp_gauge2; return text_color(YEA::VICTORY_AFTERMATH::EXP_GAUGE2); end
 
 #--------------------------------------------------------------------------
 # lvl_gauge1
 #--------------------------------------------------------------------------
 def lvl_gauge1; return text_color(YEA::VICTORY_AFTERMATH::LEVEL_GAUGE1); end
 
 #--------------------------------------------------------------------------
 # lvl_gauge2
 #--------------------------------------------------------------------------
 def lvl_gauge2; return text_color(YEA::VICTORY_AFTERMATH::LEVEL_GAUGE2); end
 
 #--------------------------------------------------------------------------
 # draw_actor_exp
 #--------------------------------------------------------------------------
 def draw_actor_exp(actor, rect)
   if actor.max_level?
     draw_exp_gauge(actor, rect, 1.0)
     return
   end
   total_ticks = YEA::VICTORY_AFTERMATH::EXP_TICKS
   bonus_exp = actor_exp_gain(actor) * @ticks / total_ticks
   now_exp = actor.exp - actor.current_level_exp + bonus_exp
   next_exp = actor.next_level_exp - actor.current_level_exp
   rate = now_exp * 1.0 / next_exp
   draw_exp_gauge(actor, rect, rate)
 end
 
 #--------------------------------------------------------------------------
 # draw_exp_gauge
 #--------------------------------------------------------------------------
 def draw_exp_gauge(actor, rect, rate)
   dx = (rect.width - [rect.width, 96].min) / 2 + rect.x
   dy = rect.y + line_height * 2 + 96
   dw = [rect.width, 96].min
   colour1 = rate >= 1.0 ? lvl_gauge1 : exp_gauge1
   colour2 = rate >= 1.0 ? lvl_gauge2 : exp_gauge2
draw_gauge(dx, dy, dw, rate, colour1, colour2)
fmt = YEA::VICTORY_AFTERMATH::EXP_PERCENT
text = sprintf(fmt, [rate * 100, 100.00].min)
if [rate * 100, 100.00].min == 100.00
text = YEA::VICTORY_AFTERMATH::LEVELUP_TEXT
text = YEA::VICTORY_AFTERMATH::MAX_LVL_TEXT if actor.max_level?
end
draw_text(dx, dy, dw, line_height, text, 1)
end

end # Window_VictoryEXP_Front

#==============================================================================
# Window_VictoryLevelUp
#==============================================================================

class Window_VictoryLevelUp < Window_Base

#--------------------------------------------------------------------------
# initialize
#--------------------------------------------------------------------------
def initialize
super(0, fitting_height(1), Graphics.width, window_height)
self.z = 200
hide
end

#--------------------------------------------------------------------------
# window_height
#--------------------------------------------------------------------------
def window_height
return Graphics.height - fitting_height(4) - fitting_height(1)
end

#--------------------------------------------------------------------------
# refresh
#--------------------------------------------------------------------------
def refresh(actor, temp_actor)
contents.clear
reset_font_settings
YEA::VICTORY_AFTERMATH::LEVEL_SOUND.play
draw_actor_changes(actor, temp_actor)
end

#--------------------------------------------------------------------------
# draw_actor_changes
#--------------------------------------------------------------------------
def draw_actor_changes(actor, temp_actor)
dx = contents.width / 16
draw_actor_image(actor, temp_actor, dx)
draw_param_names(actor, dx)
draw_former_stats(temp_actor)
draw_arrows
draw_newer_stats(actor, temp_actor)
draw_new_skills(actor, temp_actor)
end

#--------------------------------------------------------------------------
# draw_actor_image
#--------------------------------------------------------------------------
def draw_actor_image(actor, temp_actor, dx)
draw_text(dx, line_height, 96, line_height, actor.name, 1)
draw_actor_face(actor, dx, line_height * 2)
exp = actor.exp - temp_actor.exp
text = sprintf(YEA::VICTORY_AFTERMATH::VICTORY_EXP, exp.group)
change_color(power_up_color)
contents.font.size = YEA::VICTORY_AFTERMATH::FONTSIZE_EXP
draw_text(0, line_height * 2 + 96, dx + 96, line_height, text, 2)
reset_font_settings
end

#--------------------------------------------------------------------------
# draw_param_names
#--------------------------------------------------------------------------
def draw_param_names(actor, dx)
dx += 108
change_color(system_color)
text = Vocab.level
draw_text(dx, 0, contents.width - dx, line_height, text)
dy = 0
for i in 0...8
dy += line_height
text = Vocab.param(i)
draw_text(dx, dy, contents.width - dx, line_height, text)
end
end

#--------------------------------------------------------------------------
# draw_former_stats
#--------------------------------------------------------------------------
def draw_former_stats(actor)
dw = contents.width / 2 - 12
dy = 0
change_color(normal_color)
draw_text(0, dy, dw, line_height, actor.level.group, 2)
for i in 0...8
dy += line_height
draw_text(0, dy, dw, line_height, actor.param(i).group, 2)
end
end

#--------------------------------------------------------------------------
# draw_arrows
#--------------------------------------------------------------------------
def draw_arrows
dx = contents.width / 2 - 12
dy = 0
change_color(system_color)
for i in 0..8
draw_text(dx, dy, 24, line_height, "", 1)
dy += line_height
end
end

#--------------------------------------------------------------------------
# draw_newer_stats
#--------------------------------------------------------------------------
def draw_newer_stats(actor, temp_actor)
dx = contents.width / 2 + 12
dw = contents.width - dx
dy = 0
change_color(param_change_color(actor.level - temp_actor.level))
draw_text(dx, dy, dw, line_height, actor.level.group, 0)
for i in 0...8
dy += line_height
change_color(param_change_color(actor.param(i) - temp_actor.param(i)))
draw_text(dx, dy, dw, line_height, actor.param(i).group, 0)
end
end

#--------------------------------------------------------------------------
# draw_new_skills
#--------------------------------------------------------------------------
def draw_new_skills(actor, temp_actor)
return if temp_actor.skills.size == actor.skills.size
dw = 172 + 24
dx = contents.width - dw
change_color(system_color)
text = YEA::VICTORY_AFTERMATH::SKILLS_TEXT
draw_text(dx, 0, dw, line_height, text, 0)
end

end # Window_VictoryLevelUp

#==============================================================================
# Window_VictorySkills
#==============================================================================

class Window_VictorySkills < Window_Selectable
 
 #--------------------------------------------------------------------------
 # initialize
 #--------------------------------------------------------------------------
 def initialize
   dy = fitting_height(1) + 24
   dw = 172 + 24 + 24
   dh = Graphics.height - fitting_height(4) - fitting_height(1) - 24
   super(Graphics.width - dw, dy, dw, dh)
   self.opacity = 0
   self.z = 200
   hide
 end
 
 #--------------------------------------------------------------------------
 # item_max
 #--------------------------------------------------------------------------
 def item_max; return @data.nil? ? 0 : @data.size; end
 
 #--------------------------------------------------------------------------
 # refresh
 #--------------------------------------------------------------------------
 def refresh(actor, temp_actor)
   contents.clear
   if actor.skills.size == temp_actor.skills.size
     unselect
     @data = []
     create_contents
     return
   end
   @data = actor.skills - temp_actor.skills
   if @data.size > 8
select(0)
activate
else
unselect
deactivate
end
create_contents
draw_all_items
end

#--------------------------------------------------------------------------
# refresh
#--------------------------------------------------------------------------
def draw_item(index)
rect = item_rect(index)
skill = @data[index]
return if skill.nil?
rect.width -= 4
draw_item_name(skill, rect.x, rect.y, true)
end

end # Window_VictorySkills

#==============================================================================
# Window_VictorySpoils
#==============================================================================

class Window_VictorySpoils < Window_ItemList

#--------------------------------------------------------------------------
# initialize
#--------------------------------------------------------------------------
def initialize
super(0, fitting_height(1), Graphics.width, window_height)
self.z = 200
hide
end

#--------------------------------------------------------------------------
# window_height
#--------------------------------------------------------------------------
def window_height
return Graphics.height - fitting_height(4) - fitting_height(1)
end

#--------------------------------------------------------------------------
# spacing
#--------------------------------------------------------------------------
def spacing; return 32; end

#--------------------------------------------------------------------------
# make
#--------------------------------------------------------------------------
def make(gold, drops)
@gold = gold
@drops = drops
refresh
select(0)
activate
end

#--------------------------------------------------------------------------
# make_item_list
#--------------------------------------------------------------------------
def make_item_list
@data = [nil]
items = {}
weapons = {}
armours = {}
@goods = {}
for item in @drops
case item
when RPG::Item
items[item] = 0 if items[item]