Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #=======================================================
- # Akea Advanced Battle Pop-up
- # Author: Raizen
- # Community: http://www.centrorpg.com/
- # Compatibility: RMVXAce
- #
- #=======================================================
- # Instruções e Funcionalidades:
- # O script adiciona a função de pop-up de estados/dano/buffs,
- # O script permite TOTAL configuração das animações
- # =========================Don't Modify==============================
- $included ||= Hash.new
- $included[:akea_battlepopup] = true
- module Akea_BattlePop
- # =========================Don't Modify==============================
- # Instancias de imagens abertas, coloque quantas achar necessário, isso
- # significa o máximo de imagens de pop-up que serão exibidas simultaneamente
- Instances = 4
- # Mostrar o Log?
- Show_log = false
- # Tamanho total da imagem [largura, altura]
- Popup_Size = [100, 50]
- # Espaço entre os números por imagens SE utilizar numeração por imagens
- Popup_Spacing = 12
- # Tempo entre um pop-up e outro
- # (Time_Pop = 60 é igual a 1 segundo)
- Time_Pop = 18
- BattlePop = []
- # Mostrar ganho de experiência e gold ao derrotar inimigos?
- Show_Gold_Exp = true
- # Nomenclatura de gold
- Gold = " G"
- # Nomenclatura de Exp
- Exp = " Exp"
- # Pop-up que subirá caso se recupere de um estado
- Recover_Name = 'Recuperado'
- # Estados que não serão considerados como "recuperado"
- States_No_Pop = ['Defendendo']
- # Aqui será configurado o padrão de Battle Pop-ups,
- # LEIA ATENTAMENTE, é possível adicionar TUDO por imagens,
- # mas deve se atentar a alguns pontos.
- # 6 palavras estão RESERVADAS,
- # num_dmg é para a numeração de dano CASO queira utilizar
- # num_rec é para a numeração de recuperação CASO queira utilizar
- # num_mp_dmg é para a numeração de dano mágico CASO queira utilizar
- # num_mp_rec é para a numeração de recuperação de mana CASO queira utilizar
- # num_tp_dmg é para a numeração de dano TP CASO queira utilizar
- # num_tp_rec é para a numeração de recuperação de TP CASO queira utilizar
- # Todos seguem o seguinte padrão
- # 'num_dmg' => ['nome_da_imagem', id_do_Pop],
- # id_do_pop segue o padrão configurado abaixo, você pode optar por usar
- # uma imagem no lugar de 'nome_da_imagem' só colocar o gráfico na pasta
- # Graphics/Akea
- # Se optar por usar o desenho padrão do RPG Maker, basta colocar '' no
- # lugar do nome da imagem.
- # Para os outros que não sejam a numeração coloque
- # 'texto' => ['nome_da_imagem', id_do_Pop],
- # Por exemplo o estado envenenado
- #Ex: 'Envenenado' => ['Poison', 9],
- # O exemplo acima faria toda vez que o texto for Envenenado(o nome do estado),
- # ele chamaria a configuração do pop-up 9 e a imagem seria a "Poison.png"
- BattlePic = {
- 'num_dmg' => ['', 0],
- 'num_rec' => ['', 1],
- 'num_mp_dmg' => ['', 2],
- 'num_mp_rec' => ['', 3],
- 'num_tp_dmg' => ['', 2],
- 'num_tp_rec' => ['', 3],
- 'evaded' => ['', 5],
- 'Envenenado' => ['', 9],
- }
- #--------------------------------------------------------------------------
- # * BattlePop[id] -> Pode adicionar quantas achar necessário
- #--------------------------------------------------------------------------
- # Instruções, aqui é configurado TODOS os movimentos de pop-ups e suas
- # configurações, PRESTE bastante atenção na configuração.
- #:base_set aqui não é necessário modificar:
- #:movement => aqui é configurado TODOS os movimentos do pop-up, os
- # movimentos são sequenciais e configurados da seguinte maneira.
- # [movimento em x, movimento em y, opacidade]
- # sendo que o primeiro é em relação a posição do ALVO do pop-up
- # Pode adicionar quando quiser, separados por vírgulas
- # :color => [R, G, B] sendo 255 o valor máximo
- # :font => nome da fonte('' usa a fonte padrão do RPG Maker)
- # :size => tamanho da fonte
- # :bold => true/false
- # :italic => true/false
- # :text => texto do pop-up, fará efeito em algumas situações apenas
- #--------------------------------------------------------------------------
- # * BattlePop[0] => Pop up padrão de dano
- #--------------------------------------------------------------------------
- BattlePop[0] = {
- :base_set => 'subject',
- :movement => [[-10, -50, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
- [0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
- [0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
- [0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
- [0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
- [0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
- [0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
- [0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
- [0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
- [0, -1, 255], [0, -1, 255], [0, -1, 200], [0, -1, 150], [0, -1, 50],
- [0, -1, 0]],
- :color => [255, 0, 0],
- :font => '',
- :size => 24,
- :bold => false,
- :italic => false,
- :text => '',
- }
- #--------------------------------------------------------------------------
- # * BattlePop[1] => Pop up padrão de recuperação de vida
- #--------------------------------------------------------------------------
- BattlePop[1] = {
- :base_set => 'subject',
- :movement => [[-10, -50, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
- [0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
- [0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
- [0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
- [0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
- [0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
- [0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
- [0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
- [0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
- [0, -1, 255], [0, -1, 255], [0, -1, 200], [0, -1, 150], [0, -1, 50],
- [0, -1, 0]],
- :color => [0, 255, 0],
- :font => '',
- :size => 24,
- :bold => false,
- :italic => false,
- :text => '',
- }
- #--------------------------------------------------------------------------
- # * BattlePop[2] => Pop up padrão de dano(mana)
- #--------------------------------------------------------------------------
- BattlePop[2] = {
- :base_set => 'subject',
- :movement => [[-10, -50, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
- [0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
- [0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
- [0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
- [0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
- [0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
- [0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
- [0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
- [0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
- [0, -1, 255], [0, -1, 255], [0, -1, 200], [0, -1, 150], [0, -1, 50],
- [0, -1, 0]],
- :color => [0, 0, 255],
- :font => '',
- :size => 24,
- :bold => false,
- :italic => false,
- :text => '',
- }
- #--------------------------------------------------------------------------
- # * BattlePop[3] => Pop up padrão de recuperação de mana
- #--------------------------------------------------------------------------
- BattlePop[3] = {
- :base_set => 'subject',
- :movement => [[-10, -50, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
- [0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
- [0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
- [0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
- [0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
- [0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
- [0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
- [0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
- [0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
- [0, -1, 255], [0, -1, 255], [0, -1, 200], [0, -1, 150], [0, -1, 50],
- [0, -1, 0]],
- :color => [0, 255, 255],
- :font => '',
- :size => 24,
- :bold => false,
- :italic => false,
- :text => '',
- }
- #--------------------------------------------------------------------------
- # * BattlePop[0] => Pop up padrão de erro(miss)
- #--------------------------------------------------------------------------
- BattlePop[4] = {
- :base_set => 'subject',
- :movement => [[-10, -50, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
- [0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
- [0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
- [0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
- [0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
- [0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
- [0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
- [0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
- [0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
- [0, -1, 255], [0, -1, 255], [0, -1, 200], [0, -1, 150], [0, -1, 50],
- [0, -1, 0]],
- :color => [255, 0, 255],
- :font => '',
- :size => 24,
- :bold => false,
- :italic => false,
- :text => 'miss',
- }
- #--------------------------------------------------------------------------
- # * BattlePop[0] => Pop up padrão de desvio(evade)
- #--------------------------------------------------------------------------
- BattlePop[5] = {
- :base_set => 'subject',
- :movement => [[-10, -50, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
- [0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
- [0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
- [0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
- [0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
- [0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
- [0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
- [0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
- [0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
- [0, -1, 255], [0, -1, 255], [0, -1, 200], [0, -1, 150], [0, -1, 50],
- [0, -1, 0]],
- :color => [255, 0, 255],
- :font => '',
- :size => 24,
- :bold => false,
- :italic => false,
- :text => 'evaded',
- }
- #--------------------------------------------------------------------------
- # * BattlePop[0] => Pop up padrão para os estados
- #--------------------------------------------------------------------------
- BattlePop[6] = {
- :base_set => 'subject',
- :movement => [[-10, -50, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
- [0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
- [0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
- [0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
- [0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
- [0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
- [0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
- [0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
- [0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
- [0, -1, 255], [0, -1, 255], [0, -1, 200], [0, -1, 150], [0, -1, 50],
- [0, -1, 0]],
- :color => [255, 0, 255],
- :font => '',
- :size => 24,
- :bold => false,
- :italic => false,
- :text => '',
- }
- #--------------------------------------------------------------------------
- # * BattlePop[0] => Pop up padrão de experiencia
- #--------------------------------------------------------------------------
- BattlePop[7] = {
- :base_set => 'subject',
- :movement => [[-10, -50, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
- [0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
- [0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
- [0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
- [0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
- [0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
- [0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
- [0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
- [0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
- [0, -1, 255], [0, -1, 255], [0, -1, 200], [0, -1, 150], [0, -1, 50],
- [0, -1, 0]],
- :color => [54, 128, 255],
- :font => '',
- :size => 24,
- :bold => false,
- :italic => false,
- :text => 'exp',
- }
- #--------------------------------------------------------------------------
- # * BattlePop[0] => Pop up padrão de gold
- #--------------------------------------------------------------------------
- BattlePop[8] = {
- :base_set => 'subject',
- :movement => [[-10, -50, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
- [0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
- [0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
- [0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
- [0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
- [0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
- [0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
- [0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
- [0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
- [0, -1, 255], [0, -1, 255], [0, -1, 200], [0, -1, 150], [0, -1, 50],
- [0, -1, 0]],
- :color => [204, 204, 0],
- :font => '',
- :size => 24,
- :bold => false,
- :italic => false,
- :text => 'gold',
- }
- #--------------------------------------------------------------------------
- # * BattlePop[0] => Pop up customizado de envenenamento
- #--------------------------------------------------------------------------
- BattlePop[9] = {
- :base_set => 'subject',
- :movement => [[-10, -50, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
- [0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
- [0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
- [0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
- [0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
- [0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
- [0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
- [0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
- [0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
- [0, -1, 255], [0, -1, 255], [0, -1, 200], [0, -1, 150], [0, -1, 50],
- [0, -1, 0]],
- :color => [20, 255, 30],
- :font => '',
- :size => 24,
- :bold => false,
- :italic => false,
- :text => '',
- }
- end
- #==============================================================================
- #------------------------------------------------------------------------------
- # AQUI COMEÇA O SCRIPT
- #------------------------------------------------------------------------------
- #==============================================================================
- #==============================================================================
- # ** Scene_Battle
- #------------------------------------------------------------------------------
- # Esta classe executa o processamento da tela de batalha.
- #==============================================================================
- class Scene_Battle < Scene_Base
- alias :akea_abp_start :start
- alias :akea_abp_update_basic :update_basic
- alias :akea_abp_terminate :terminate
- #--------------------------------------------------------------------------
- # * Inicialização do processo
- #--------------------------------------------------------------------------
- def start
- akea_abp_start
- create_popup_sprites
- end
- #--------------------------------------------------------------------------
- # * Atualização do pop_up
- #--------------------------------------------------------------------------
- def update_akea_popup
- for n in 0...@abp_sprite_movement.size
- next if @abp_sprite_movement[n].empty?
- update_abp_movement(n)
- end
- end
- #--------------------------------------------------------------------------
- # * Atualização do movimento do pop-up
- #--------------------------------------------------------------------------
- def update_abp_movement(n)
- @abp_sprite[n].x += @abp_sprite_movement[n].first[0]
- @abp_sprite[n].y += @abp_sprite_movement[n].first[1]
- @abp_sprite[n].opacity = @abp_sprite_movement[n].first[2]
- @abp_sprite_movement[n].shift
- end
- #--------------------------------------------------------------------------
- # * Atualização geral da tela
- #--------------------------------------------------------------------------
- def update_basic
- update_akea_popup
- akea_abp_update_basic
- end
- #--------------------------------------------------------------------------
- # * Criação da tela de pop-ups
- #--------------------------------------------------------------------------
- def create_popup_sprites
- @abp_sprite = Array.new
- @abp_sprite_movement = Array.new(Akea_BattlePop::Instances, [])
- @abp_instance = 0
- for n in 0...Akea_BattlePop::Instances
- @abp_sprite[n] = Sprite.new
- @abp_sprite[n].bitmap = Bitmap.new(Akea_BattlePop::Popup_Size[0], Akea_BattlePop::Popup_Size[1])
- end
- end
- #--------------------------------------------------------------------------
- # * Rotacionar as instancias
- #--------------------------------------------------------------------------
- def rotate_abp_instances
- if @abp_instance < Akea_BattlePop::Instances - 1
- @abp_instance += 1
- else
- @abp_instance = 0
- end
- return @abp_instance
- end
- #--------------------------------------------------------------------------
- # * Desenhar a imagem de pop-up
- #--------------------------------------------------------------------------
- def draw_akea_popup(id, text, subject = false, type = '')
- n = rotate_abp_instances
- @abp_sprite[n].bitmap.dispose
- @abp_sprite[n].bitmap = Bitmap.new(Akea_BattlePop::Popup_Size[0], Akea_BattlePop::Popup_Size[1])
- text = text.to_s if type == '' || Akea_BattlePop::BattlePic[type][0] == ''
- if type != ''
- id = Akea_BattlePop::BattlePic[type][1] if Akea_BattlePop::BattlePic[type]
- end
- if text.is_a?(Integer)
- var = Cache.akea(Akea_BattlePop::BattlePic[type][0])
- hp = text
- spacing_num = 0
- hp_array = []
- until hp == 0
- rest = hp % 10
- hp = hp/10
- hp_array.unshift(rest)
- end
- for i in 0...hp_array.size
- @abp_sprite[n].bitmap.rect.set((@abp_sprite[n].bitmap.width*hp_array[i])/10, 0, @abp_sprite[n].bitmap.width/10, @abp_sprite[n].bitmap.height)
- rect = Rect.new((@abp_sprite[n].bitmap.width*hp_array[i])/10, 0, @abp_sprite[n].bitmap.width/10, @abp_sprite[n].bitmap.height)
- @abp_sprite[n].bitmap.blt(spacing_num, 0, var, rect, 255)
- spacing_num += Akea_BattlePop::Popup_Spacing
- end
- elsif Akea_BattlePop::BattlePic[text] && Akea_BattlePop::BattlePic[text][0] != ''
- @abp_sprite[n].bitmap = Cache.akea(Akea_BattlePop::BattlePic[text][0])
- else
- if Akea_BattlePop::BattlePic[text]
- id = Akea_BattlePop::BattlePic[text][1]
- end
- if Akea_BattlePop::BattlePop[id][:font] == ''
- @abp_sprite[n].bitmap.font.name = Font.default_name
- else
- @abp_sprite[n].bitmap.font.name = Akea_BattlePop::BattlePop[id][:font]
- end
- @abp_sprite[n].bitmap.font.color.set(*Akea_BattlePop::BattlePop[id][:color])
- @abp_sprite[n].bitmap.font.size = Akea_BattlePop::BattlePop[id][:size]
- @abp_sprite[n].bitmap.font.bold = Akea_BattlePop::BattlePop[id][:bold]
- @abp_sprite[n].bitmap.font.italic = Akea_BattlePop::BattlePop[id][:italic]
- @abp_sprite[n].bitmap.draw_text(0, 0, Akea_BattlePop::Popup_Size[0], Akea_BattlePop::Popup_Size[1], text)
- end
- @abp_sprite_movement[n] = Akea_BattlePop::BattlePop[id][:movement].dup
- @abp_sprite[n].x = subject.screen_x
- @abp_sprite[n].y = subject.screen_y
- end
- #--------------------------------------------------------------------------
- # * Retorna o tipo de popup
- #--------------------------------------------------------------------------
- def get_abp_type(target, item = nil, text = '', id = false)
- if text != ''
- id ? draw_akea_popup(id, text, target) : draw_akea_popup(6, text, target)
- elsif target.result.hp_damage > 0
- value = target.result.hp_damage
- draw_akea_popup(0, value.to_i, target, 'num_dmg')
- target.perform_damage_effect
- Sound.play_actor_damage
- elsif target.result.hp_damage < 0
- value = target.result.hp_damage
- draw_akea_popup(1, value.to_i.abs, target, 'num_rec')
- Sound.play_recovery
- elsif target.result.mp_damage > 0
- value = target.result.mp_damage
- draw_akea_popup(2, value.to_i, target, 'num_mp_dmg')
- elsif target.result.mp_damage < 0
- value = target.result.mp_damage
- draw_akea_popup(3, value.to_i.abs, target, 'num_mp_rec')
- Sound.play_recovery
- elsif target.result.tp_damage > 0
- value = target.result.tp_damage
- draw_akea_popup(2, value.to_i, target, 'num_tp_dmg')
- elsif target.result.tp_damage < 0
- value = target.result.tp_damage
- draw_akea_popup(3, value.to_i.abs, target, 'num_tp_rec')
- Sound.play_recovery
- elsif target.result.missed
- value = Akea_BattlePop::BattlePop[4][:text]
- draw_akea_popup(4, value, target)
- Sound.play_miss
- elsif target.result.evaded
- value = Akea_BattlePop::BattlePop[5][:text]
- draw_akea_popup(5, value, target)
- Sound.play_evasion
- end
- end
- #--------------------------------------------------------------------------
- # * Dispoe as imagens
- #--------------------------------------------------------------------------
- def dispose_akea_popup
- @abp_sprite.each{|sprt| sprt.bitmap.dispose; sprt.dispose}
- end
- #--------------------------------------------------------------------------
- # * Finalização de Scene
- #--------------------------------------------------------------------------
- def terminate
- dispose_akea_popup
- akea_abp_terminate
- end
- end
- #==============================================================================
- # ** Window_BattleLog
- #------------------------------------------------------------------------------
- # Esta janela exibe o progresso da luta. Não exibe o quadro da
- # janela, é tratado como uma janela por conveniência.
- #==============================================================================
- class Window_BattleLog < Window_Selectable
- alias :akea_abp_display_use_item :display_use_item
- alias :akea_abp_display_action_results :display_action_results
- alias :akea_abp_display_damage :display_damage
- alias :akea_abp_display_added_states :display_added_states
- alias :akea_abp_display_removed_states :display_removed_states
- alias :akea_abp_display_buffs :display_buffs
- alias :akea_abp_display_critical :display_critical
- alias :akea_abp_display_failure :display_failure
- #--------------------------------------------------------------------------
- # * Exibição de uso de habilidade/item
- # subject : lutador
- # item : habilidade/item
- #--------------------------------------------------------------------------
- def display_use_item(subject, item)
- akea_abp_display_use_item(subject, item)
- end
- #--------------------------------------------------------------------------
- # * Exibição de dano
- # target : alvo
- # item : habilidade/item
- #--------------------------------------------------------------------------
- def display_damage(target, item)
- SceneManager.scene.get_abp_type(target, item)
- unless Akea_BattlePop::Show_log
- @num_wait += 1
- @get_all_pop_wait = (Akea_BattlePop::BattlePop[0][:movement].size - Akea_BattlePop::Time_Pop)
- @method_wait.call(Akea_BattlePop::Time_Pop) if @method_wait
- return
- end
- akea_abp_display_damage(target, item)
- end
- #--------------------------------------------------------------------------
- # * Exibição de resultados da ação
- # target : alvo
- # item : habilidade/item
- #--------------------------------------------------------------------------
- def display_action_results(target, item)
- @get_all_pop_wait = 0
- akea_abp_display_action_results(target, item)
- @num_wait += 1
- @method_wait.call(@get_all_pop_wait)
- end
- #--------------------------------------------------------------------------
- # * Exibição de estados adicionados
- # target : alvo
- #--------------------------------------------------------------------------
- def display_added_states(target)
- target.result.added_state_objects.each do |state|
- target.perform_collapse_effect if state.id == target.death_state_id
- SceneManager.scene.get_abp_type(target, nil, state.name)
- @method_wait.call(Akea_BattlePop::Time_Pop)
- @get_all_pop_wait = (Akea_BattlePop::BattlePop[6][:movement].size - Akea_BattlePop::Time_Pop)
- if Akea_BattlePop::Show_Gold_Exp && target.enemy? && state.id == target.death_state_id
- SceneManager.scene.get_abp_type(target, nil, target.gold.to_s + Akea_BattlePop::Gold, 8)
- @method_wait.call(Akea_BattlePop::Time_Pop)
- @get_all_pop_wait = (Akea_BattlePop::BattlePop[6][:movement].size - Akea_BattlePop::Time_Pop)
- SceneManager.scene.get_abp_type(target, nil, target.exp.to_s + Akea_BattlePop::Exp, 7)
- @method_wait.call(Akea_BattlePop::Time_Pop)
- @get_all_pop_wait = (Akea_BattlePop::BattlePop[6][:movement].size - Akea_BattlePop::Time_Pop)
- end
- end
- akea_abp_display_added_states(target) if Akea_BattlePop::Show_log
- end
- #--------------------------------------------------------------------------
- # * Exibição de estados removidos
- # target : alvo
- #--------------------------------------------------------------------------
- def display_removed_states(target)
- target.result.removed_state_objects.each do |state|
- next if Akea_BattlePop::States_No_Pop.include?(state.name)
- SceneManager.scene.get_abp_type(target, nil, Akea_BattlePop::Recover_Name)
- @method_wait.call(Akea_BattlePop::Time_Pop)
- @get_all_pop_wait = (Akea_BattlePop::BattlePop[6][:movement].size - Akea_BattlePop::Time_Pop)
- end
- akea_abp_display_removed_states(target) if Akea_BattlePop::Show_log
- end
- #--------------------------------------------------------------------------
- # * Exibição de fortalecimentos/enfraquecimentos(individual)
- # target : alvo
- # buffs : lista de enfraquicimentos/fortalecimentos
- # fmt : mensagem
- #--------------------------------------------------------------------------
- def display_buffs(target, buffs, fmt)
- buffs.each do |param_id|
- SceneManager.scene.get_abp_type(target, nil, Vocab::param(param_id))
- @method_wait.call(Akea_BattlePop::Time_Pop)
- @get_all_pop_wait = (Akea_BattlePop::BattlePop[6][:movement].size - Akea_BattlePop::Time_Pop)
- end
- akea_abp_display_buffs(target, buffs, fmt) if Akea_BattlePop::Show_log
- end
- #--------------------------------------------------------------------------
- # * Exibição de acerto crítico
- # target : alvo
- # item : habilidade/item
- #--------------------------------------------------------------------------
- def display_critical(target, item)
- if target.result.critical
- text = target.actor? ? Vocab::CriticalToActor : Vocab::CriticalToEnemy
- SceneManager.scene.get_abp_type(target, item, text)
- @method_wait.call(Akea_BattlePop::Time_Pop)
- @get_all_pop_wait = (Akea_BattlePop::BattlePop[6][:movement].size - Akea_BattlePop::Time_Pop)
- end
- akea_abp_display_critical(target, item) if Akea_BattlePop::Show_log
- end
- #--------------------------------------------------------------------------
- # * Exibição de falha
- # target : alvo
- # item : habilidade/item
- #--------------------------------------------------------------------------
- def display_failure(target, item)
- if target.result.hit? && !target.result.success
- SceneManager.scene.get_abp_type(target, item, Vocab::ActionFailure)
- @method_wait.call(Akea_BattlePop::Time_Pop)
- @get_all_pop_wait = (Akea_BattlePop::BattlePop[6][:movement].size - Akea_BattlePop::Time_Pop)
- end
- akea_abp_display_failure(target, item) if Akea_BattlePop::Show_log
- end
- end
- #==============================================================================
- # ** Cache
- #------------------------------------------------------------------------------
- # Este modulo carrega cada gráfico, cria um objeto de Bitmap e retém ele.
- # Para acelerar o carregamento e preservar memória, este módulo matém o
- # objeto de Bitmap em uma Hash interna, permitindo que retorne objetos
- # pré-existentes quando mesmo Bitmap é requerido novamente.
- #==============================================================================
- module Cache
- #--------------------------------------------------------------------------
- # * Carregamento dos gráficos de animação
- # filename : nome do arquivo
- # hue : informações da alteração de tonalidade
- #--------------------------------------------------------------------------
- def self.akea(filename)
- load_bitmap("Graphics/Akea/", filename)
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement