#==============================================================================#
# ▼ Yanfly Engine Ace - Ace Core Engine v1.00 - Versão Traduzida
# -- Última Atualização: 01.12.2011
# -- Nível: Fácil, Normal
# -- Requer: n/a
# -- Data da Última Tradução: 04.12.2011
# -- Tradutor:
http://makercafe.blogspot.com/
# *O que está entre colchetes [] foi adicionado pelo tradutor para facilitar
# a compreensão da linha de script ou fazer um comentário.
#==============================================================================
$imported = {} if $imported.nil?
$imported["YEA-CoreEngine"] = true
puts "Load: Yanfly Engine Ace - Ace Core Engine v1.00"
#==============================================================================
# ▼ Atualizações
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# 01.12.2011 - Script Iniciado e Acabado.
#
#==============================================================================
# ▼ Introdução
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# Este é o mecanismo central para a Yanfly Engine Ace, feito para RPG Maker VX
# Ace. Este script fornece várias alterações feitas no mecanismo central,
# incluindo correções de erros e atualizações da GUI (Interface Gráfica do
# Usuário).
#
# -----------------------------------------------------------------------------
# Correção de Erro: Sobreposição da Animação
# -----------------------------------------------------------------------------
# - É o mesmo erro do VX. Quando uma animação de tela inteira é reproduzida
# contra um grupo de inimigos, o bitmap da animação é na verdade reproduzido
# várias vezes, causando uma extrema sobreposição quando há muitos inimigos na
# tela.
# Essa correção fará com que a animação se reproduza apenas uma vez.
#
# -----------------------------------------------------------------------------
# Correção de Erro: Correção da Ordem do Turno da Batalha
# -----------------------------------------------------------------------------
# - Mesmo erro do VX. Para aqueles que usam o sistema de batalha padrão, uma vez
# que um turno começou, a ordem de ação se configura e é inalterada durante o
# restante do turno. Quaisquer alterações na AGI do combatente não serão feitas,
# mesmo que o combatente receba um acréscimo ou decréscimo na AGI.
# Essa correção faz com que a AGI seja atualizada corretamente a cada ação.
#
# -----------------------------------------------------------------------------
# Correção de Erro: Correção da Sobreposição dos Medidores
# -----------------------------------------------------------------------------
# - Mesmo erro do VX. Quando algumas variáveis excedem determinados valores, os
# medidores podem extrapolar a largura para a qual eles foram originalmente
# projetados. Essa correção irá evitar que os medidores passem da largura
# máxima.
#
# -----------------------------------------------------------------------------
# Correção de Erro: Rolagem do Menu Segurando L e R
# -----------------------------------------------------------------------------
# - Antes, no VX, você podia navegar através de menus rapidamente pressionando
# os botões L e R (Q e W no teclado). Essa correção recupera a capacidade de
# percorrer os menus dessa forma. Desative-a no module, se desejar.
#
# -----------------------------------------------------------------------------
# Nova Funcionalidade: Tamanho da Resolução da Tela
# -----------------------------------------------------------------------------
# - A tela agora pode ser redimensionada, alterando o tamanho de 544x416 com
# facilidade, e ainda suporta mapas menores que 544x416 que são centrados na
# tela sem ter sprites pulando em todo lugar.
#
# -----------------------------------------------------------------------------
# Nova Funcionalidade: Ajustar Velocidade da Animação
# -----------------------------------------------------------------------------
# - Por definição, o RPG Maker VX Ace reproduz animações a uma taxa de 15 FPS.
# Acelere as animações alterando uma simples constante no module.
#
# -----------------------------------------------------------------------------
# Nova Funcionalidade: Modificações da GUI
# -----------------------------------------------------------------------------
# - Há um monte de modificações diferentes que você pode fazer para a GUI.
# Esta inclui a adição de contornos aos seus medidores, mudando as cores de cada
# aspecto individual da fonte, e muito mais. Além disso, aqui você pode mudar a
# configuração padrão da fonte para seus jogos.
#
# -----------------------------------------------------------------------------
# Nova Funcionalidade: Agrupamento de Dígitos Numéricos
# -----------------------------------------------------------------------------
# Isto irá mudar várias cenas para exibir números em grupos onde são separados
# por uma vírgula a cada três dígitos. Assim, um número como 1234567 irá
# aparecer como 1,234,567. Isso permite aos jogadores lerem os números mais
# rápido.
#
# E isso é tudo para as funcionalidades e correções de erros!
#
#==============================================================================
# ▼ Instruções
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# Para instalar este script, abra seu editor de scripts copie e cole este script
# em um slot aberto abaixo de ▼Materials/素材, mas acima de Main. Lembre-se de
# salvar.
#
#==============================================================================
# ▼ Compatibilidade
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# Este script é feito estritamente para o RPG Maker VX Ace. É improvável que
# seja executado com o RPG Maker VX sem que precise de ajustes.
#
#==============================================================================
module YEA
module CORE
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
# - Tamanho da Resolução da Tela -
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
# O RPG Maker VX Ace oferece a opção de ter maior largura e altura para seus
# jogos. Redimensionar a largura e altura terá estas alterações:
# Padrão Redimensionada Padrão Mín de Tiles Novo Mín de Tiles
# Largura 544 640 17 20
# Altura 416 480 13 15
#
# * Nota: a largura máxima é de 640, enquanto a altura máxima é de 480.
# A largura mínima é de 110, enquanto a altura mínima* é de 10.
# Estes são limitações impostas pela engine do RPG Maker VX Ace.
#
# Ao selecionar "redimensionar", todos os menus padrão terão suas janelas
# ajustadas, mas scripts fornecidos por outras fontes (não-Yanfly Engine)
# podem ou não se ajustar adequadamente.
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
RESIZE_WIDTH = 544 # [Redimensiona a largura]
RESIZE_HEIGHT = 416 # [Redimensiona a altura]
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
# - Ajustar Velocidade da Animação -
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
# Por padrão, a velocidade da animação reproduzida em batalhas opera a
# 15 FPS (frames por segundo). Para aqueles que gostariam de acelerar, basta
# mudar esta constante para um dos seguintes valores:
# TAXA Velocidade
# 4 15 fps
# 3 20 fps
# 2 30 fps
# 1 60 fps
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
ANIMATION_RATE = 3
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
# - Agrupamento de Dígitos -
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
# Ajustando isto para true fará com que os números sejam agrupados quando
# são maiores do que mil. Por exemplo, 12345 será exibido como 12,345.
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-#--------------------------------------------------------------------------
GROUP_DIGITS = true
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
# - Configurações da Fonte -
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
# Ajuste as configurações da fonte padrão para o seu jogo aqui. As várias
# configurações serão explicadas a seguir.
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
FONT_NAME = ["VL Gothic", "Verdan", "Arial", "Courier"]
# Isto ajusta as fontes usadas para o seu jogo. Se a fonte no início da
# matriz não existe no computador do jogador, a próxima será utilizada.
FONT_SIZE = 24 # Ajusta o tamanho da fonte. Padrão: 24
FONT_BOLD = false # Fonte em Negrito. Padrão: false
FONT_ITALIC = false # Fonte em Itálico. Padrão: false
FONT_SHADOW = false # Adiciona uma sombra à fonte. Padrão: false
FONT_OUTLINE = true # Adiciona um contorno à fonte. Padrão: true
FONT_COLOUR = Color.new(255, 255, 255, 255) # Padrão: 255, 255, 255, 255
#[Cor da fonte]
FONT_OUTLINE_COLOUR = Color.new(0, 0, 0, 128) # Padrão: 0, 0, 0, 128
#[Cor do contorno]
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
# - Configurações da Aparência dos Medidores -
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
# Você pode modificar a maneira como seus medidores aparecem no jogo. Se
# você deseja que eles tenham um contorno, é possível. Você também pode
# ajustar a altura dos medidores.
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
GAUGE_OUTLINE = true #[Contorno dos medidores]
GAUGE_HEIGHT = 12 #[Altura dos medidores]
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
# - Rolagem do Menu Segurando L e R -
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
# O VX deu a capacidade de percorrer menus rapidamente segurando os botões
# L e R (Q e W no teclado). O VX Ace desativou essa funcionalidade. Agora,
# você pode reativá-la definindo esta constante como true. Para desativá-la,
# defina a constante como false.
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
QUICK_SCROLLING = true
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
# - Cores dos Textos do Sistema -
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
# Às vezes, as cores de texto do sistema são chatos apenas como laranja para
# HP, azul para MP, e verde para TP. Altere os valores aqui. Cada número
# corresponde ao índice da cor da skin da Window.png encontrada em
# Graphics\System.
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
COLOURS ={
# :texto => ID
:normal => 0, # Padrão: 0
:system => 16, # Padrão: 16
:crisis => 17, # Padrão: 17
:knockout => 18, # Padrão: 18
:gauge_back => 19, # Padrão: 19
:hp_gauge1 => 28, # Padrão: 20
:hp_gauge2 => 29, # Padrão: 21
:mp_gauge1 => 22, # Padrão: 22
:mp_gauge2 => 23, # Padrão: 23
:mp_cost => 23, # Padrão: 23
ower_up => 24, # Padrão: 24
ower_down => 25, # Padrão: 25
:tp_gauge1 => 10, # Padrão: 28
:tp_gauge2 => 2, # Padrão: 29
:tp_cost => 2, # Padrão: 29
} # Não remova isso.
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
# - Opções dos Textos do Sistema -
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
# Aqui, você pode ajustar a transparência usada para itens desativados, o %
# necessário para o HP e MP entrarem no modo "crisis".
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
TRANSPARENCY = 160 # Ajusta a transparência dos itens desativados.
# Padrão: 160
HP_CRISIS = 0.25 # Quando o HP é considerado crítico. Padrão: 0,25
MP_CRISIS = 0.25 # Quando o MP é considerado crítico. Padrão: 0,25
ITEM_AMOUNT = "×%s" # O prefixo usado para as quantidades dos itens.
end # CORE
end # YEA
#==============================================================================
# ▼ Não edite nada além deste ponto. [Os termos encontrados em inglês abaixo
# deste ponto fazem parte da linguagem de programação. Traduzi-los pode causar
# dúvidas aos programadores.]
#==============================================================================
Graphics.resize_screen(YEA::CORE::RESIZE_WIDTH, YEA::CORE::RESIZE_HEIGHT)
Font.default_name = YEA::CORE::FONT_NAME
Font.default_size = YEA::CORE::FONT_SIZE
Font.default_bold = YEA::CORE::FONT_BOLD
Font.default_italic = YEA::CORE::FONT_ITALIC
Font.default_shadow = YEA::CORE::FONT_SHADOW
Font.default_outline = YEA::CORE::FONT_OUTLINE
Font.default_color = YEA::CORE::FONT_COLOUR
Font.default_out_color = YEA::CORE::FONT_OUTLINE_COLOUR
#==============================================================================
# ■ Numeric
#==============================================================================
class Numeric
#--------------------------------------------------------------------------
# new method: group_digits
#--------------------------------------------------------------------------
def group(decimal = 2)
return self unless YEA::CORE::GROUP_DIGITS
n1 = self.abs
string = ""
n4 = n1 - n1.to_i
n2 = (n1.to_i.to_s.size - 1) / 3
n2.times do
n3 = n1 % 1000
n1 /= 1000
string = sprintf(",%03d%s", n3, string)
end
string = sprintf("%d%s", n1, string)
if n4 > 0 or self.is_a?(Float)
sp = "%." + decimal.to_s + "f"
n4 = sprintf(sp, n4)
n4.gsub!("0.", "")
string = sprintf("%s.%s", string, n4)
end
string = "-" + string if self < 0
return string
end
end # Numeric
#==============================================================================
# ■ BattleManager
#==============================================================================
module BattleManager
#--------------------------------------------------------------------------
# overwrite method: turn_start
#--------------------------------------------------------------------------
def self.turn_start
@phase = :turn
clear_actor
$game_troop.increase_turn
@performed_battlers = []
make_action_orders
end
#--------------------------------------------------------------------------
# overwrite method: next_subject
#--------------------------------------------------------------------------
def self.next_subject
@performed_battlers = [] if @performed_battlers.nil?
loop do
@action_battlers -= @performed_battlers
battler = @action_battlers.shift
return nil unless battler
next unless battler.index && battler.alive?
return battler
end
end
end # BattleManager
#==============================================================================
# ■ Game_Battler
#==============================================================================
class Game_Battler < Game_BattlerBase
#--------------------------------------------------------------------------
# public instance variables
#--------------------------------------------------------------------------
attr_accessor seudo_ani_id
#--------------------------------------------------------------------------
# alias method: clear_sprite_effects
#--------------------------------------------------------------------------
alias game_battler_clear_sprite_effects_ace clear_sprite_effects
def clear_sprite_effects
game_battler_clear_sprite_effects_ace
@pseudo_ani_id = 0
end
end # Game_Battler
#==============================================================================
# ■ Game_Troop
#==============================================================================
class Game_Troop < Game_Unit
#--------------------------------------------------------------------------
# overwrite method: setup
#--------------------------------------------------------------------------
def setup(troop_id)
clear
@troop_id = troop_id
@enemies = []
troop.members.each do |member|
next unless $data_enemies[member.enemy_id]
enemy = Game_Enemy.new(@enemies.size, member.enemy_id)
enemy.hide if member.hidden
enemy.screen_x = member.x + (Graphics.width - 544)/2
enemy.screen_y = member.y + (Graphics.height - 416)
@enemies.push(enemy)
end
init_screen_tone
make_unique_names
end
end # Game_Troop
#==============================================================================
# ■ Game_Map
#==============================================================================
class Game_Map
#--------------------------------------------------------------------------
# overwrite method: scroll_down
#--------------------------------------------------------------------------
def scroll_down(distance)
if loop_vertical?
@display_y += distance
@display_y %= @map.height * 256
@parallax_y += distance
else
last_y = @display_y
dh = Graphics.height > height * 32 ? height : (Graphics.height / 32)
@display_y = [@display_y + distance, (height - dh) * 256].min
@parallax_y += @display_y - last_y
end
end
#--------------------------------------------------------------------------
# overwrite method: scroll_right
#--------------------------------------------------------------------------
def scroll_right(distance)
if loop_horizontal?
@display_x += distance
@display_x %= @map.width * 256
@parallax_x += distance
else
last_x = @display_x
dw = Graphics.width > width * 32 ? width : (Graphics.width / 32)
@display_x = [@display_x + distance, (width - dw) * 256].min
@parallax_x += @display_x - last_x
end
end
end # Game_Map
#==============================================================================
# ■ Game_Event
#==============================================================================
class Game_Event < Game_Character
#--------------------------------------------------------------------------
# overwrite method: near_the_screen?
#--------------------------------------------------------------------------
def near_the_screen?(dx = nil, dy = nil)
dx = [Graphics.width, $game_map.width * 256].min/32 - 5 if dx.nil?
dy = [Graphics.height, $game_map.height * 256].min/32 - 5 if dy.nil?
ax = $game_map.adjust_x(@real_x) - Graphics.width / 2 / 32
ay = $game_map.adjust_y(@real_y) - Graphics.height / 2 / 32
ax >= -dx && ax <= dx && ay >= -dy && ay <= dy
end
end # Game_Event
#==============================================================================
# ■ Sprite_Base
#==============================================================================
class Sprite_Base < Sprite
#--------------------------------------------------------------------------
# overwrite method: set_animation_rate
#--------------------------------------------------------------------------
def set_animation_rate
@ani_rate = YEA::CORE::ANIMATION_RATE
end
#--------------------------------------------------------------------------
# new method: start_pseudo_animation
#--------------------------------------------------------------------------
def start_pseudo_animation(animation, mirror = false)
dispose_animation
@animation = animation
return if @animation.nil?
@ani_mirror = mirror
set_animation_rate
@ani_duration = @animation.frame_max * @ani_rate + 1
@ani_sprites = []
end
end # Sprite_Base
#==============================================================================
# ■ Sprite_Battler
#==============================================================================
class Sprite_Battler < Sprite_Base
#--------------------------------------------------------------------------
# alias method: setup_new_animation
#--------------------------------------------------------------------------
alias sprite_battler_setup_new_animation_ace setup_new_animation
def setup_new_animation
sprite_battler_setup_new_animation_ace
return if @battler.pseudo_ani_id <= 0
animation = $data_animations[@battler.pseudo_ani_id]
mirror = @battler.animation_mirror
start_pseudo_animation(animation, mirror)
@battler.pseudo_ani_id = 0
end
end # Sprite_Battler
#==============================================================================
# ■ Spriteset_Map
#==============================================================================
class Spriteset_Map
#--------------------------------------------------------------------------
# overwrite method: create_viewports
#--------------------------------------------------------------------------
def create_viewports
if Graphics.width > $game_map.width * 32 and !$game_map.loop_horizontal?
dx = (Graphics.width - $game_map.width * 32) / 2
else
dx = 0
end
dw = [Graphics.width, $game_map.width * 32].min
dw = Graphics.width if $game_map.loop_horizontal?
if Graphics.height > $game_map.height * 32 and !$game_map.loop_vertical?
dy = (Graphics.height - $game_map.height * 32) / 2
else
dy = 0
end
dh = [Graphics.height, $game_map.height * 32].min
dh = Graphics.height if $game_map.loop_vertical?
@viewport1 = Viewport.new(dx, dy, dw, dh)
@viewport2 = Viewport.new(dx, dy, dw, dh)
@viewport3 = Viewport.new(dx, dy, dw, dh)
@viewport2.z = 50
@viewport3.z = 100
end
end # Spriteset_Map
#==============================================================================
# ■ Window_Base
#==============================================================================
class Window_Base < Window
#--------------------------------------------------------------------------
# overwrite methods: color
#--------------------------------------------------------------------------
def normal_color; text_color(YEA::CORE::COLOURS[:normal]); end;
def system_color; text_color(YEA::CORE::COLOURS[:system]); end;
def crisis_color; text_color(YEA::CORE::COLOURS[:crisis]); end;
def knockout_color; text_color(YEA::CORE::COLOURS[:knockout]); end;
def gauge_back_color; text_color(YEA::CORE::COLOURS[:gauge_back]); end;
def hp_gauge_color1; text_color(YEA::CORE::COLOURS[:hp_gauge1]); end;
def hp_gauge_color2; text_color(YEA::CORE::COLOURS[:hp_gauge2]); end;
def mp_gauge_color1; text_color(YEA::CORE::COLOURS[:mp_gauge1]); end;
def mp_gauge_color2; text_color(YEA::CORE::COLOURS[:mp_gauge2]); end;
def mp_cost_color; text_color(YEA::CORE::COLOURS[:mp_cost]); end;
def power_up_color; text_color(YEA::CORE::COLOURS[ower_up]); end;
def power_down_color; text_color(YEA::CORE::COLOURS[ower_down]); end;
def tp_gauge_color1; text_color(YEA::CORE::COLOURS[:tp_gauge1]); end;
def tp_gauge_color2; text_color(YEA::CORE::COLOURS[:tp_gauge2]); end;
def tp_cost_color; text_color(YEA::CORE::COLOURS[:tp_cost]); end;
#--------------------------------------------------------------------------
# overwrite method: translucent_alpha
#--------------------------------------------------------------------------
def translucent_alpha
return YEA::CORE::TRANSPARENCY
end
#--------------------------------------------------------------------------
# overwrite method: hp_color
#--------------------------------------------------------------------------
def hp_color(actor)
return knockout_color if actor.hp == 0
return crisis_color if actor.hp < actor.mhp * YEA::CORE::HP_CRISIS
return normal_color
end
#--------------------------------------------------------------------------
# overwrite method: mp_color
#--------------------------------------------------------------------------
def mp_color(actor)
return crisis_color if actor.mp < actor.mmp * YEA::CORE::MP_CRISIS
return normal_color
end
#--------------------------------------------------------------------------
# overwrite method: draw_gauge
#--------------------------------------------------------------------------
def draw_gauge(dx, dy, dw, rate, color1, color2)
dw -= 2 if YEA::CORE::GAUGE_OUTLINE
fill_w = [(dw * rate).to_i, dw].min
gauge_h = YEA::CORE::GAUGE_HEIGHT
gauge_y = dy + line_height - 2 - gauge_h
if YEA::CORE::GAUGE_OUTLINE
outline_colour = gauge_back_color
outline_colour.alpha = translucent_alpha
contents.fill_rect(dx, gauge_y-1, dw+2, gauge_h+2, outline_colour)
dx += 1
end
contents.fill_rect(dx, gauge_y, dw, gauge_h, gauge_back_color)
contents.gradient_fill_rect(dx, gauge_y, fill_w, gauge_h, color1, color2)
end
#--------------------------------------------------------------------------
# overwrite method: draw_actor_level
#--------------------------------------------------------------------------
def draw_actor_level(actor, dx, dy)
change_color(system_color)
draw_text(dx, dy, 32, line_height, Vocab::level_a)
change_color(normal_color)
draw_text(dx + 32, dy, 24, line_height, actor.level.group, 2)
end
#--------------------------------------------------------------------------
# overwrite method: draw_current_and_max_values
#--------------------------------------------------------------------------
def draw_current_and_max_values(dx, dy, dw, current, max, color1, color2)
total = current.group + "/" + max.group
if dw < text_size(total).width + text_size(Vocab.hp).width
change_color(color1)
draw_text(dx, dy, dw, line_height, current.group, 2)
else
xr = dx + text_size(Vocab.hp).width
dw -= text_size(Vocab.hp).width
change_color(color2)
text = "/" + max.group
draw_text(xr, dy, dw, line_height, text, 2)
dw -= text_size(text).width
change_color(color1)
draw_text(xr, dy, dw, line_height, current.group, 2)
end
end
#--------------------------------------------------------------------------
# overwrite method: draw_actor_tp
#--------------------------------------------------------------------------
def draw_actor_tp(actor, x, y, width = 124)
draw_gauge(x, y, width, actor.tp_rate, tp_gauge_color1, tp_gauge_color2)
change_color(system_color)
draw_text(x, y, 30, line_height, Vocab::tp_a)
change_color(tp_color(actor))
draw_text(x + width - 42, y, 42, line_height, actor.tp.to_i.group, 2)
end
#--------------------------------------------------------------------------
# overwrite method: draw_actor_param
#--------------------------------------------------------------------------
def draw_actor_param(actor, x, y, param_id)
change_color(system_color)
draw_text(x, y, 120, line_height, Vocab:aram(param_id))
change_color(normal_color)
draw_text(x + 120, y, 36, line_height, actor.param(param_id).group, 2)
end
#--------------------------------------------------------------------------
# overwrite method: draw_currency_value
#--------------------------------------------------------------------------
def draw_currency_value(value, unit, x, y, width)
cx = text_size(unit).width
change_color(normal_color)
draw_text(x, y, width - cx - 2, line_height, value.group, 2)
change_color(system_color)
draw_text(x, y, width, line_height, unit, 2)
end
end # Window_Base
#==============================================================================
# ■ Window_ItemList
#==============================================================================
class Window_ItemList < Window_Selectable
#--------------------------------------------------------------------------
# overwrite method: draw_item_number
#--------------------------------------------------------------------------
def draw_item_number(rect, item)
text = sprintf(YEA::CORE::ITEM_AMOUNT, $game_party.item_number(item).group)
draw_text(rect, text, 2)
end
end # Window_ItemList
#==============================================================================
# ■ Window_Selectable
#==============================================================================
class Window_Selectable < Window_Base
#--------------------------------------------------------------------------
# overwrite method: process_cursor_move
#--------------------------------------------------------------------------
if YEA::CORE::QUICK_SCROLLING
def process_cursor_move
return unless cursor_movable?
last_index = @index
cursor_down (Input.trigger?DOWN)) if Input.repeat?DOWN)
cursor_up (Input.trigger?UP)) if Input.repeat?UP)
cursor_right(Input.trigger?RIGHT)) if Input.repeat?RIGHT)
cursor_left (Input.trigger?LEFT)) if Input.repeat?LEFT)
cursor_pagedown if !handle?pagedown) && Input.repeat?R)
cursor_pageup if !handle?pageup) && Input.repeat?L)
Sound.play_cursor if @index != last_index
end
end # YEA::CORE::QUICK_SCROLLING
end # Window_Selectable
#==============================================================================
# ■ Window_MenuStatus
#==============================================================================
class Window_MenuStatus < Window_Selectable
#--------------------------------------------------------------------------
# new method: draw_actor_simple_status
#--------------------------------------------------------------------------
def draw_actor_simple_status(actor, dx, dy)
draw_actor_name(actor, dx, dy)
draw_actor_level(actor, dx, dy + line_height * 1)
draw_actor_icons(actor, dx, dy + line_height * 2)
draw_actor_class(actor, dx + 120, dy)
dw = contents.width - dx - 124
draw_actor_hp(actor, dx + 120, dy + line_height * 1, dw)
draw_actor_mp(actor, dx + 120, dy + line_height * 2, dw)
end
end # Window_MenuStatus
#==============================================================================
# ■ Window_Status
#==============================================================================
class Window_Status < Window_Selectable
#--------------------------------------------------------------------------
# overwrite method: draw_exp_info
#--------------------------------------------------------------------------
def draw_exp_info(x, y)
s1 = @actor.max_level? ? "-------" : @actor.exp
s2 = @actor.max_level? ? "-------" : @actor.next_level_exp - @actor.exp
s_next = sprintf(Vocab::ExpNext, Vocab::level)
change_color(system_color)
draw_text(x, y + line_height * 0, 180, line_height, Vocab::ExpTotal)
draw_text(x, y + line_height * 2, 180, line_height, s_next)
change_color(normal_color)
s1 = s1.group if s1.is_a?(Integer)
s2 = s2.group if s2.is_a?(Integer)
draw_text(x, y + line_height * 1, 180, line_height, s1, 2)
draw_text(x, y + line_height * 3, 180, line_height, s2, 2)
end
end # Window_Status
#==============================================================================
# ■ Window_ShopBuy
#==============================================================================
class Window_ShopBuy < Window_Selectable
#--------------------------------------------------------------------------
# overwrite method: draw_item
#--------------------------------------------------------------------------
def draw_item(index)
item = @data[index]
rect = item_rect(index)
draw_item_name(item, rect.x, rect.y, enable?(item))
rect.width -= 4
draw_text(rect, price(item).group, 2)
end
end # Window_ShopBuy
#==============================================================================
# ■ Scene_Battle
#==============================================================================
class Scene_Battle < Scene_Base
#--------------------------------------------------------------------------
# public instance variables
#--------------------------------------------------------------------------
attr_accessor :spriteset
#--------------------------------------------------------------------------
# overwrite method: show_normal_animation
#--------------------------------------------------------------------------
def show_normal_animation(targets, animation_id, mirror = false)
animation = $data_animations[animation_id]
return if animation.nil?
ani_check = false
targets.each do |target|
if ani_check
target.pseudo_ani_id = animation_id
else
target.animation_id = animation_id
end
target.animation_mirror = mirror
abs_wait_short unless animation.to_screen?
ani_check = true if animation.to_screen?
end
abs_wait_short if animation.to_screen?
end
end # Scene_Battle
#==============================================================================
#
# ▼ Fim do Arquivo
#
#==============================================================================