Advertisement
Raizen

Akea Active Time Battle

Mar 30th, 2015
768
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 24.72 KB | None | 0 0
  1. #=======================================================
  2. #        Akea Active Time Battle
  3. # Author: Raizen
  4. # Community: http://www.centrorpg.com/
  5. # Compatibility: RMVXAce
  6. #
  7. #=======================================================
  8. # Instruções: Coloque acima dos outros add-ons de batalha
  9. # O script modifica o sistema padrão por turnos por um ativo!
  10.  
  11. # =========================Don't Modify==============================
  12.  
  13. $imported ||= Hash.new
  14. $imported[:lune_active_battle] = true
  15. module Akea_Active_Battle
  16. Atb_Bar_Pos = []
  17. # =========================Don't Modify==============================
  18. # Você pode adicionar um custo de atb fixo para uma habilidade,
  19. # basta colocar ou no item, ou na habilidade o seguinte.
  20. # <use_atb cost> aonde cost é o custo de atb, (lembrando que o atb máximo é 1000)
  21. # <use_atb 500> em um skill do Banco de dados, fará com que o personagem
  22. # gaste apenas 500 dos 1000 de atb ao invés da barra inteira.
  23.  
  24.  
  25.  
  26.  
  27. # Essa é a taxa de atualização da barra, quanto menor, mais preciso
  28. # porém pode ter impacto maior na performance da batalha
  29. Update_Rate = 10
  30.  
  31. # Cofigure aqui as barras de atb
  32.  
  33. # Coloque Atb_Bar = 'nome_da_imagem' SE for utilizar uma imagem
  34. # no lugar da barra de atb padrão, caso utilise a padrão basta
  35. # colocar tb_Bar = ""
  36. Atb_Bar = ""
  37.  
  38. # Configure a posição das barras de atb para cada personagem na
  39. # batalha, CASO utilize imagens para as barras de atb
  40. # seguindo a posição [x, y, z]
  41. Atb_Bar_Pos[0] = [200, 200, 10]
  42. Atb_Bar_Pos[1] = [200, 240, 10]
  43. Atb_Bar_Pos[2] = [200, 280, 10]
  44. Atb_Bar_Pos[3] = [200, 320, 10]
  45.  
  46.  
  47. # Esse é o quanto pode variar a barra de atb no inicio de uma batalha,
  48. # por exemplo Base_Atb_Range = 100, significa que cada battler pode iniciar
  49. # com 0 até 100 de atb preenchido(máximo é 1000)
  50. Base_Atb_Range = 200
  51.  
  52. # Coloque aqui a quantidade de atb que o battler terá caso entre no modo
  53. # "surpresa", por exemplo se os personagens pegarem um inimigo de surpresa
  54. # o atb de todos os personagens da party iniciarão com esse valor
  55. Base_Atb_Preemptive = 1000
  56.  
  57.  
  58.  
  59. # ========================Configurações de Fuga==============================
  60. # Permitir fuga? Caso selecione true(sim), configure o que está abaixo
  61. Allow_Flee = true
  62.  
  63. # Tecla de fuga, seguindo o mesmo padrão do RPG Maker VX Ace
  64. #--------------------------------------------------------
  65. # Mapeamento de Teclas do RPG Maker VX Ace, para auxiliar na configuração
  66. # X = Tecla A  ;  Y = Tecla S  ;  Z = Tecla D
  67. # L = Tecla Q  ;  R = Tecla W  ;  SHIFT
  68. # RIGHT = Direcional(Direita) ; LEFT Direcional(Esquerda)
  69. # Up = Direcional(Cima) ; DOWN = Direcional(Baixo)
  70. Flee_Input = :SHIFT
  71.  
  72. # Imagem que ficará na frente da barra
  73. Flee_Back = "base_input_hud"
  74.  
  75. # Imagem da Barra
  76. Flee_Bar = "bar_input"
  77.  
  78. # Selecione caso use algum sistema que visualiza os battlers,
  79. # Isso permite o script buscar a posição dele para colocar as barras de fuga
  80. Has_Ator = true
  81.  
  82. # Posição das barras de fuga em [x, y]
  83. # Perceba que caso coloque true acima, a posição é em relação aos battlers
  84. # Caso coloque false, é a posição absoluta da tela
  85. Flee_Back_Pos = [-60, -80]
  86. Flee_Bar_Pos = [-55, -75]
  87.  
  88.  
  89. # ======================== Configurações de Fórmulas ==============================
  90.  
  91. # IMPORTANTE!!:
  92. # Essa configuração é considerada relativamente avançada, salve os valores
  93. # padrões antes, e depois modifique-os como desejar, lembrando que a tabela
  94. # de parametro está no Game_BattlerBase, e o param(6) é a agilidade!
  95.  
  96. # Fórmula de velocidade de escape
  97.   def self.flee_formula(actor, enemy)
  98.     (actor.param(6)/enemy.param(6))/500.0
  99.   end
  100.  
  101. # Fórmula do preenchimento da barra de atb, lembrando que 1000 é o valor
  102. # máximo de atb!!
  103.   def self.atb_formula(subject)
  104.     30 + subject.param(6)/5
  105.   end
  106.  
  107. end
  108.  
  109.  
  110.  
  111.  
  112. #==============================================================================
  113. # Aqui começa o Script!!!
  114. #==============================================================================
  115. #==============================================================================
  116. # ** Game_BattlerBase
  117. #------------------------------------------------------------------------------
  118. #  Esta classe gerencia os battlers. Contém os principais método de
  119. # cálculo da características especiais.
  120. # Esta classe é usada como superclasse da classe Game_Battler.
  121. #==============================================================================
  122.  
  123. class Game_BattlerBase
  124. alias :akea_atb_initialize :initialize
  125.   #--------------------------------------------------------------------------
  126.   # * Variáveis públicas
  127.   #--------------------------------------------------------------------------
  128.   attr_accessor :atb
  129.   def matb;  1000;   end    # MP Máximo
  130.   #--------------------------------------------------------------------------
  131.   # * Inicialização do objeto
  132.   #     actor_id : ID do herói
  133.   #--------------------------------------------------------------------------
  134.   def initialize(*args, &block)
  135.     akea_atb_initialize(*args, &block)
  136.     @atb = 0
  137.   end
  138.   #--------------------------------------------------------------------------
  139.   # * Taxa da barra de atb
  140.   #--------------------------------------------------------------------------
  141.   def atb_rate
  142.     @atb.to_f / matb
  143.   end
  144. end
  145. #==============================================================================
  146. # ** Game_Actor
  147. #------------------------------------------------------------------------------
  148. #  Esta classe gerencia os heróis. Ela é utilizada internamente pela classe
  149. # Game_Actors ($game_actors). A instância desta classe é referenciada
  150. # pela classe Game_Party ($game_party).
  151. #==============================================================================
  152.  
  153. class Game_Actor < Game_Battler
  154. alias :akea_atb_next_command :next_command
  155.   #--------------------------------------------------------------------------
  156.   # * Próxima entrada de comandos
  157.   #--------------------------------------------------------------------------
  158.   def next_command
  159.     return false if @atb < matb
  160.     akea_atb_next_command
  161.   end
  162. end
  163. #==============================================================================
  164. # ** Window_BattleStatus
  165. #------------------------------------------------------------------------------
  166. #  Esta janela exibe as condições de todos membros do grupo na tela de batalha.
  167. #==============================================================================
  168.  
  169. class Window_BattleStatus < Window_Selectable
  170. alias :akea_atb_initialize :initialize
  171. alias :akea_atb_dispose :dispose
  172.   #--------------------------------------------------------------------------
  173.   # * Inicialização do objeto
  174.   #--------------------------------------------------------------------------
  175.   def initialize
  176.     create_sprite_bars unless Akea_Active_Battle::Atb_Bar == ''
  177.     akea_atb_initialize
  178.     refresh_atb
  179.   end
  180.   #--------------------------------------------------------------------------
  181.   # * Criação dos objetos
  182.   #--------------------------------------------------------------------------
  183.   def create_sprite_bars
  184.     @atb_bars = Array.new
  185.     for n in 0...$game_party.battle_members.size
  186.       @atb_bars[n] = Sprite.new
  187.       @atb_bars[n].bitmap = Cache.akea(Akea_Active_Battle::Atb_Bar)
  188.       @atb_bars[n].x = Akea_Active_Battle::Atb_Bar_Pos[n][0]
  189.       @atb_bars[n].y = Akea_Active_Battle::Atb_Bar_Pos[n][1]
  190.       @atb_bars[n].z = Akea_Active_Battle::Atb_Bar_Pos[n][2]
  191.     end
  192.   end
  193.   #--------------------------------------------------------------------------
  194.   # * Atualização da barra de atb
  195.   #--------------------------------------------------------------------------
  196.   def refresh_atb
  197.     Akea_Active_Battle::Atb_Bar == '' ? refresh : refresh_sprite_bars
  198.   end
  199.   #--------------------------------------------------------------------------
  200.   # * Atualização das imagens de atb
  201.   #--------------------------------------------------------------------------
  202.   def refresh_sprite_bars
  203.     $game_party.battle_members.each{|actor| draw_actor_atb_sprite(actor)}
  204.   end
  205.   #--------------------------------------------------------------------------
  206.   # * Atualização da barra por personagem
  207.   #--------------------------------------------------------------------------
  208.   def draw_actor_atb_sprite(actor)
  209.     @atb_bars[$game_party.battle_members.index(actor)].zoom_x = actor.atb_rate
  210.   end
  211.   #--------------------------------------------------------------------------
  212.   # * Aquisição da largura da janela
  213.   #--------------------------------------------------------------------------
  214.   def window_width
  215.     Graphics.width
  216.   end
  217.   #--------------------------------------------------------------------------
  218.   # * Aquisição da largura da área do medidor
  219.   #--------------------------------------------------------------------------
  220.   def gauge_area_width
  221.     return 348
  222.   end
  223.   #--------------------------------------------------------------------------
  224.   # * Desenho da área do medidor (com TP)
  225.   #     rect  : retângulo
  226.   #     actor : herói
  227.   #--------------------------------------------------------------------------
  228.   def draw_gauge_area_with_tp(rect, actor)
  229.     draw_actor_hp(actor, rect.x + 0, rect.y, 72)
  230.     draw_actor_mp(actor, rect.x + 82, rect.y, 64)
  231.     draw_actor_tp(actor, rect.x + 156, rect.y, 64)
  232.     draw_actor_atb(actor, rect.x + 230, rect.y, 64)
  233.   end
  234.   #--------------------------------------------------------------------------
  235.   # * Desenho da área do medidor (sem TP)
  236.   #     rect  : retângulo
  237.   #     actor : herói
  238.   #--------------------------------------------------------------------------
  239.   def draw_gauge_area_without_tp(rect, actor)
  240.     draw_actor_hp(actor, rect.x + 0, rect.y, 134)
  241.     draw_actor_mp(actor, rect.x + 120,  rect.y, 76)
  242.     draw_actor_atb(actor, rect.x + 240, rect.y, 76)
  243.   end
  244.   #--------------------------------------------------------------------------
  245.   # * Desenho do MP
  246.   #     actor  : herói
  247.   #     x      : coordenada X
  248.   #     y      : coordenada Y
  249.   #     width  : largura
  250.   #--------------------------------------------------------------------------
  251.   def draw_actor_atb(actor, x, y, width = 124)
  252.     draw_gauge(x, y, width, actor.atb_rate, atb_gauge_color1, atb_gauge_color2)
  253.     change_color(system_color)
  254.     draw_text(x, y, 30, line_height, "ATB")
  255.   end
  256.   def atb_gauge_color1;      Color.new(200, 50, 150, 255);  end;    # Sistema
  257.   def atb_gauge_color2;      Color.new(250, 50, 200, 255);  end;    # Perigo
  258.   #--------------------------------------------------------------------------
  259.   # * Dispose dos objetos
  260.   #--------------------------------------------------------------------------
  261.   def dispose
  262.     @atb_bars.each{|bar| bar.bitmap.dispose; bar.dispose} if @atb_bars
  263.     akea_atb_dispose
  264.   end
  265. end
  266.  
  267. #==============================================================================
  268. # ** Scene_Battle
  269. #------------------------------------------------------------------------------
  270. #  Esta classe executa o processamento da tela de batalha.
  271. #==============================================================================
  272.  
  273. class Scene_Battle < Scene_Base
  274. alias :akea_atb_update :update
  275. alias :akea_atb_start :start
  276. alias :akea_atb_start_actor_command_selection :start_actor_command_selection
  277. alias :akea_atb_next_command :next_command
  278. alias :akea_atb_turn_end :turn_end
  279. alias :akea_atb_terminate :terminate
  280.   #--------------------------------------------------------------------------
  281.   # * Fim de turno
  282.   #--------------------------------------------------------------------------
  283.   def turn_end
  284.     if !@actor_atb_array.empty? && $game_party.members[@actor_atb_array.first].dead?
  285.       @actor_atb_array.shift
  286.       @back_flee_atb.opacity = 0
  287.       @bar_flee_atb.opacity = 0  
  288.       @start_flee = true
  289.     end
  290.     akea_atb_turn_end
  291.   end
  292.   #--------------------------------------------------------------------------
  293.   # * Inicialização da cena
  294.   #--------------------------------------------------------------------------
  295.   def start
  296.     akea_initialize_atb_variables
  297.     akea_initialize_atb_states
  298.     akea_atb_start
  299.   end
  300.   #--------------------------------------------------------------------------
  301.   # * Inicialização das variáveis
  302.   #--------------------------------------------------------------------------
  303.   def akea_initialize_atb_variables
  304.     @actor_atb_array = []
  305.     @enemy_atb_array = -1
  306.     @back_flee_atb = Sprite.new
  307.     @back_flee_atb.bitmap = Cache.akea(Akea_Active_Battle::Flee_Back)
  308.     @back_flee_atb.x = Akea_Active_Battle::Flee_Back_Pos[0]
  309.     @back_flee_atb.y = Akea_Active_Battle::Flee_Back_Pos[1]
  310.     @back_flee_atb.opacity = 0
  311.     @back_flee_atb.z = 200
  312.     @bar_flee_atb = Sprite.new
  313.     @bar_flee_atb.bitmap = Cache.akea(Akea_Active_Battle::Flee_Bar)
  314.     @bar_flee_atb.x = Akea_Active_Battle::Flee_Bar_Pos[0]
  315.     @bar_flee_atb.y = Akea_Active_Battle::Flee_Bar_Pos[1]
  316.     @bar_flee_atb.opacity = 0
  317.     @bar_flee_atb.zoom_x = 0
  318.     @start_flee = true
  319.   end
  320.   #--------------------------------------------------------------------------
  321.   # * Inicialização de status do atb
  322.   #--------------------------------------------------------------------------
  323.   def akea_initialize_atb_states
  324.     if BattleManager.get_preemptive
  325.       $game_party.battle_members.each{|member| member.atb = Akea_Active_Battle::Base_Atb_Preemptive}
  326.       $game_troop.members.each{|member| member.atb = rand(Akea_Active_Battle::Base_Atb_Range)}
  327.     elsif BattleManager.get_surprise
  328.       $game_troop.members.each{|member| member.atb = Akea_Active_Battle::Base_Atb_Preemptive}
  329.       $game_party.battle_members.each{|member| member.atb = rand(Akea_Active_Battle::Base_Atb_Range)}
  330.     else
  331.       all_battle_members.each{|member| member.atb = rand(Akea_Active_Battle::Base_Atb_Range)}
  332.     end
  333.   end
  334.   #--------------------------------------------------------------------------
  335.   # * Atualização da tela
  336.   #--------------------------------------------------------------------------
  337.   def update
  338.     call_update_flee if Akea_Active_Battle::Allow_Flee
  339.     call_update_atb_bar if Graphics.frame_count % Akea_Active_Battle::Update_Rate == 0
  340.     akea_atb_update
  341.   end
  342.   #--------------------------------------------------------------------------
  343.   # * Atualização de fuga
  344.   #--------------------------------------------------------------------------
  345.   def call_update_flee
  346.     return unless BattleManager.can_escape?
  347.     return if @actor_atb_array.empty?
  348.     if Input.press?(Akea_Active_Battle::Flee_Input)
  349.       if @start_flee
  350.         if $imported[:lune_animated_battle]
  351.           for n in 0...$game_party.members.size
  352.             change_character_animation(n, Lune_Anime_Battle::Standard['Escape']) if $game_party.members[n].alive?
  353.           end
  354.         end
  355.         if Akea_Active_Battle::Has_Ator
  356.           @back_flee_atb.x = Akea_Active_Battle::Flee_Back_Pos[0] + $game_party.members[@actor_atb_array.first].screen_x
  357.           @back_flee_atb.y = Akea_Active_Battle::Flee_Back_Pos[1] + $game_party.members[@actor_atb_array.first].screen_y
  358.           @bar_flee_atb.x = Akea_Active_Battle::Flee_Bar_Pos[0] + $game_party.members[@actor_atb_array.first].screen_x
  359.           @bar_flee_atb.y = Akea_Active_Battle::Flee_Bar_Pos[1] + $game_party.members[@actor_atb_array.first].screen_y
  360.         end
  361.         @back_flee_atb.opacity = 255
  362.         @bar_flee_atb.opacity = 255
  363.         @bar_flee_atb.zoom_x = 0
  364.       else
  365.         @bar_flee_atb.zoom_x += Akea_Active_Battle.flee_formula($game_party.members[@actor_atb_array.first], $game_troop.alive_members[0])
  366.         @bar_flee_atb.zoom_x = [@bar_flee_atb.zoom_x, 1.0].min
  367.         BattleManager.process_escape if @bar_flee_atb.zoom_x >= 1.0
  368.       end
  369.     else
  370.       if $imported[:lune_animated_battle] && !@start_flee
  371.         for n in 0...$game_party.members.size
  372.           $game_party.battle_members[n].update_current_condition(0)
  373.           change_character_animation(n, $game_party.battle_members[n].current_hp_condition)
  374.         end
  375.       end
  376.       @back_flee_atb.opacity = 0
  377.       @bar_flee_atb.opacity = 0    
  378.     end
  379.     @start_flee = !Input.press?(Akea_Active_Battle::Flee_Input)
  380.   end
  381.   #--------------------------------------------------------------------------
  382.   # * Entrada de comandos para o próximo herói
  383.   #--------------------------------------------------------------------------
  384.   def next_command
  385.     if BattleManager.actor
  386.       if Input.press?(Akea_Active_Battle::Flee_Input)
  387.         akea_atb_next_command
  388.         return
  389.       end
  390.       @actor_atb_array.shift
  391.       BattleManager.add_actor_order
  392.     end
  393.      BattleManager.make_actor_index(@actor_atb_array.first) unless @actor_atb_array.empty?
  394.     akea_atb_next_command
  395.   end
  396.   #--------------------------------------------------------------------------
  397.   # * Inicialização da seleção de comandos do grupo
  398.   #--------------------------------------------------------------------------
  399.   def start_party_command_selection
  400.     refresh_status
  401.     @status_window.unselect
  402.     @status_window.open
  403.     if @actor_atb_array.empty?
  404.       return
  405.     end
  406.     if BattleManager.input_start
  407.       next_command
  408.     else
  409.       @party_command_window.deactivate
  410.       turn_start
  411.     end
  412.   end
  413.   #--------------------------------------------------------------------------
  414.   # * Método de atualização do ATB
  415.   #--------------------------------------------------------------------------
  416.   def call_update_atb_bar
  417.     return if (!@actor_atb_array.empty? && !Input.press?(Akea_Active_Battle::Flee_Input)) || BattleManager.has_action?
  418.     $game_troop.alive_members.each{|member|
  419.     member.atb = increment_atb(member)
  420.     if member.atb >= 1000
  421.       @enemy_atb_array = $game_troop.members.index(member)
  422.        BattleManager.add_enemy_order(@enemy_atb_array)
  423.        Akea_Active_Battle.atb_formula(member)
  424.        BattleManager.input_start
  425.       turn_start
  426.       return
  427.     end
  428.     }
  429.     return unless @actor_atb_array.empty?
  430.     $game_party.alive_members.each{|member|
  431.     member.atb = increment_atb(member)
  432.     if member.atb >= 1000
  433.       @actor_atb_array << $game_party.members.index(member)
  434.       @status_window.refresh_atb
  435.       start_party_command_selection
  436.       return
  437.     end
  438.     }
  439.     @status_window.refresh_atb
  440.   end
  441.   #--------------------------------------------------------------------------
  442.   # * Método de incrementação do atb
  443.   #--------------------------------------------------------------------------
  444.   def increment_atb(subject)
  445.     return [subject.atb + Akea_Active_Battle.atb_formula(subject), 1000].min
  446.   end
  447.   #--------------------------------------------------------------------------
  448.   # * Inicialização da seleção de comandos do herói
  449.   #--------------------------------------------------------------------------
  450.   def start_actor_command_selection
  451.     return turn_start if BattleManager.has_action?
  452.     akea_atb_start_actor_command_selection
  453.   end
  454.   def prior_command
  455.     start_actor_command_selection
  456.   end
  457.   #--------------------------------------------------------------------------
  458.   # * Atualização do viewport de informações
  459.   #--------------------------------------------------------------------------
  460.   def update_info_viewport
  461.     move_info_viewport(128)
  462.   end
  463.   #--------------------------------------------------------------------------
  464.   # * Finalização da batalha
  465.   #--------------------------------------------------------------------------
  466.   def terminate
  467.     @back_flee_atb.bitmap.dispose
  468.     @bar_flee_atb.bitmap.dispose
  469.     @back_flee_atb.dispose
  470.     @bar_flee_atb.dispose
  471.     akea_atb_terminate
  472.   end
  473. end
  474. #==============================================================================
  475. # ** BattleManager
  476. #------------------------------------------------------------------------------
  477. #  Este módulo gerencia o andamento da batalha.
  478. #==============================================================================
  479.  
  480. module BattleManager
  481.   #--------------------------------------------------------------------------
  482.   # * Retorna a variável preemptive
  483.   #--------------------------------------------------------------------------
  484.   def self.get_preemptive
  485.     return @preemptive
  486.   end
  487.   #--------------------------------------------------------------------------
  488.   # * Retorna a variável surprise
  489.   #--------------------------------------------------------------------------
  490.   def self.get_surprise
  491.     return @surprise
  492.   end
  493.   #--------------------------------------------------------------------------
  494.   # * Criação da seqüencia de ações
  495.   #--------------------------------------------------------------------------
  496.   def self.add_enemy_order(id)
  497.     @action_battlers = [] unless @action_battlers.is_a?(Array)  
  498.     @action_battlers << $game_troop.members[id]
  499.   end
  500.   #--------------------------------------------------------------------------
  501.   # * Adiciona ordem aos battlers
  502.   #--------------------------------------------------------------------------
  503.   def self.add_actor_order
  504.     @action_battlers = [] unless @action_battlers.is_a?(Array)  
  505.     @action_battlers << self.actor
  506.   end
  507.   #--------------------------------------------------------------------------
  508.   # * Verifica se há ações
  509.   #--------------------------------------------------------------------------
  510.   def self.has_action?
  511.     @action_battlers.empty? ? false : true
  512.   end
  513.   #--------------------------------------------------------------------------
  514.   # * Criação da seqüencia de ações
  515.   #--------------------------------------------------------------------------
  516.   def self.make_action_orders
  517.     return
  518.   end
  519.   #--------------------------------------------------------------------------
  520.   # * Próximo comando
  521.   #--------------------------------------------------------------------------
  522.   def self.next_command
  523.     return true
  524.   end
  525.   #--------------------------------------------------------------------------
  526.   # * Comando Anterior
  527.   #--------------------------------------------------------------------------
  528.   def self.prior_command
  529.     return true
  530.   end
  531.   #--------------------------------------------------------------------------
  532.   # * Retorna o índice do ator
  533.   #--------------------------------------------------------------------------
  534.   def self.actor_index
  535.     @actor_index
  536.   end
  537.   #--------------------------------------------------------------------------
  538.   # * Força um ator a ser o próximo
  539.   #--------------------------------------------------------------------------
  540.   def self.make_actor_index(index)
  541.     @actor_index = index
  542.   end
  543.   #--------------------------------------------------------------------------
  544.   # * Processar fuga
  545.   #--------------------------------------------------------------------------
  546.   def self.process_escape
  547.     $game_message.add(sprintf(Vocab::EscapeStart, $game_party.name))
  548.     success = true
  549.     Sound.play_escape
  550.     if success
  551.       process_abort
  552.     else
  553.       @escape_ratio += 0.1
  554.       $game_message.add('\.' + Vocab::EscapeFailure)
  555.       $game_party.clear_actions
  556.     end
  557.     wait_for_message
  558.     return success
  559.   end
  560. end
  561.  
  562. #==============================================================================
  563. # ** Game_Battler
  564. #------------------------------------------------------------------------------
  565. #  Esta classe gerencia os battlers. Controla a adição de sprites e ações
  566. # dos lutadores durante o combate.
  567. # É usada como a superclasse das classes Game_Enemy e Game_Actor.
  568. #==============================================================================
  569.  
  570. class Game_Battler < Game_BattlerBase
  571. alias :akea_atb_use_Item :use_item
  572.   #--------------------------------------------------------------------------
  573.   # ? Usando habilidade/item
  574.   #     item :  habilidade/item
  575.   #--------------------------------------------------------------------------
  576.   def use_item(item)
  577.     note = /<use_atb *(\d+)?>/i
  578.     item.note =~ note ? @atb -= $1.to_i : @atb = 0
  579.     akea_atb_use_Item(item)
  580.   end
  581. end
  582.  
  583. #==============================================================================
  584. # ** Cache
  585. #------------------------------------------------------------------------------
  586. #  Este modulo carrega cada gráfico, cria um objeto de Bitmap e retém ele.
  587. # Para acelerar o carregamento e preservar memória, este módulo matém o
  588. # objeto de Bitmap em uma Hash interna, permitindo que retorne objetos
  589. # pré-existentes quando mesmo Bitmap é requerido novamente.
  590. #==============================================================================
  591.  
  592. module Cache
  593.   #--------------------------------------------------------------------------
  594.   # * Carregamento dos gráficos de animação
  595.   #     filename : nome do arquivo
  596.   #     hue      : informações da alteração de tonalidade
  597.   #--------------------------------------------------------------------------
  598.   def self.akea(filename)
  599.     load_bitmap("Graphics/Akea/", filename)
  600.   end
  601. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement