Advertisement
TheoAllen

YEA - VisBattler mod

May 17th, 2014
417
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 26.01 KB | None | 0 0
  1. #==============================================================================
  2. #
  3. # ¥ Yanfly Engine Ace - Visual Battlers v1.01
  4. # -- Last Updated: 2012.07.24
  5. # -- Level: Easy
  6. # -- Requires: n/a
  7. #
  8. # ¥ Modified by:
  9. # -- TheoAllen (Compatibility with Theo - Basic Modules)
  10. # -- Yami
  11. # -- Kread-Ex
  12. # -- Archeia_Nessiah
  13. #==============================================================================
  14.  
  15. $imported = {} if $imported.nil?
  16. $imported["YEA-VisualBattlers"] = true
  17.  
  18. #==============================================================================
  19. # ¥ Updates
  20. # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  21. # 2012.12.18 - Added preset views and able to change direction in-game.
  22. # 2012.07.24 - Finished Script.
  23. # 2012.01.05 - Started Script.
  24. #
  25. #==============================================================================
  26. # ¥ Introduction
  27. # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  28. # This script provides a visual for all actors by default charsets. The actions
  29. # and movements are alike Final Fantasy 1, only move forward and backward when
  30. # start and finish actions.
  31. #
  32. #==============================================================================
  33. # ¥ Instructions
  34. # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  35. # To change the player direction in-game, use the snippet below in a script
  36. # call:
  37. #
  38. # $game_system.party_direction = n
  39. #
  40. # To install this script, open up your script editor and copy/paste this script
  41. # to an open slot below ¥ Materials but above ¥ Main. Remember to save.
  42. #
  43. #==============================================================================
  44. # ¥ Compatibility
  45. # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  46. # This script is made strictly for RPG Maker VX Ace. It is highly unlikely that
  47. # it will run with RPG Maker VX without adjusting.
  48. #
  49. #==============================================================================
  50.  
  51. module YEA
  52.   module VISUAL_BATTLERS
  53.    
  54.     #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  55.     # - Party Location Setting -
  56.     #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  57.     # These settings are adjusted for Party Location. Each Actor will have
  58.     # coordinates calculated by below formula. There are two samples coordinates
  59.     # below, change PARTY_DIRECTION to the base index you want to use.
  60.     #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  61.     PARTY_DIRECTION = 2 # This direction is opposite from actual direction.
  62.    
  63.     PARTY_LOCATION_BASE_COORDINATES ={
  64.     # Index => [base_x, base_y, mod_x, mod_y],
  65.           2 => [ 250, 290, 40, 0], #UP
  66.           4 => [ 150, 280, 20, -20], #LEFT
  67.           3 => [ 460, 280, 30, -10], #RIGHT
  68.           6 => [ 460, 230, 20, 20], #DEFAULT RIGHT
  69.           8 => [ 260, 230, 40, 0], #DOWN
  70.     } # Do not remove this.
  71.    
  72.     PARTY_LOCATION_FORMULA_X = "base_x + index * mod_x"
  73.     PARTY_LOCATION_FORMULA_Y = "base_y + index * mod_y"
  74.    
  75.   end # VISUAL_BATTLERS
  76. end # YEA
  77.  
  78. #==============================================================================
  79. # ¥ Editting anything past this point may potentially result in causing
  80. # computer damage, incontinence, explosion of user's head, coma, death, and/or
  81. # halitosis so edit at your own risk.
  82. #==============================================================================
  83.  
  84. #==============================================================================
  85. # ? ¥ Direction
  86. #==============================================================================
  87.  
  88. module Direction
  89.  
  90.   #--------------------------------------------------------------------------
  91.   # self.correct
  92.   #--------------------------------------------------------------------------
  93.   def self.correct(direction)
  94.     case direction
  95.     when 1; return 4
  96.     when 3; return 6
  97.     when 7; return 4
  98.     when 9; return 6
  99.     else; return direction
  100.     end
  101.   end
  102.  
  103.   #--------------------------------------------------------------------------
  104.   # self.opposite
  105.   #--------------------------------------------------------------------------
  106.   def self.opposite(direction)
  107.     case direction
  108.     when 1; return 6
  109.     when 2; return 8
  110.     when 3; return 4
  111.     when 4; return 6
  112.     when 6; return 4
  113.     when 7; return 6
  114.     when 8; return 2
  115.     when 9; return 4
  116.     else; return direction
  117.     end
  118.   end
  119.  
  120. end # Direction
  121.  
  122. #==============================================================================
  123. # ? ¥ Game_System
  124. #==============================================================================
  125.  
  126. class Game_System; attr_accessor :party_direction; end
  127.  
  128. #==============================================================================
  129. # ? ¥ Game_BattleCharacter
  130. #==============================================================================
  131.  
  132. class Game_BattleCharacter < Game_Character
  133.  
  134.   #--------------------------------------------------------------------------
  135.   # initialize
  136.   #--------------------------------------------------------------------------
  137.   def initialize(actor)
  138.     super()
  139.     setup_actor(actor)
  140.     @move_x_rate = 0
  141.     @move_y_rate = 0
  142.   end
  143.  
  144.   #--------------------------------------------------------------------------
  145.   # setup_actor
  146.   #--------------------------------------------------------------------------
  147.   def setup_actor(actor)
  148.     @actor = actor
  149.     @step_anime = true
  150.     set_graphic(@actor.character_name, @actor.character_index)
  151.     setup_coordinates
  152.     dr = $game_system.party_direction || YEA::VISUAL_BATTLERS::PARTY_DIRECTION
  153.     direction = Direction.opposite(dr)
  154.     set_direction(Direction.correct(direction))
  155.   end
  156.  
  157.   #--------------------------------------------------------------------------
  158.   # sprite=
  159.   #--------------------------------------------------------------------------
  160.   def sprite=(sprite)
  161.     @sprite = sprite
  162.   end
  163.  
  164.   #--------------------------------------------------------------------------
  165.   # setup_coordinates
  166.   #--------------------------------------------------------------------------
  167.   def setup_coordinates
  168.     location = ($game_system.party_direction ||
  169.     YEA::VISUAL_BATTLERS::PARTY_DIRECTION)
  170.     base_x = YEA::VISUAL_BATTLERS::PARTY_LOCATION_BASE_COORDINATES[location][0]
  171.     base_y = YEA::VISUAL_BATTLERS::PARTY_LOCATION_BASE_COORDINATES[location][1]
  172.     mod_x = YEA::VISUAL_BATTLERS::PARTY_LOCATION_BASE_COORDINATES[location][2]
  173.     mod_y = YEA::VISUAL_BATTLERS::PARTY_LOCATION_BASE_COORDINATES[location][3]
  174.     @actor.screen_x = eval(YEA::VISUAL_BATTLERS::PARTY_LOCATION_FORMULA_X)
  175.     @actor.screen_y = eval(YEA::VISUAL_BATTLERS::PARTY_LOCATION_FORMULA_Y)
  176.     @actor.origin_x = @actor.screen_x
  177.     @actor.origin_y = @actor.screen_y
  178.     @actor.create_move_to(screen_x, screen_y, 1)
  179.   end
  180.  
  181.   #--------------------------------------------------------------------------
  182.   # index
  183.   #--------------------------------------------------------------------------
  184.   def index
  185.     return @actor.index
  186.   end
  187.  
  188.   #--------------------------------------------------------------------------
  189.   # screen_x
  190.   #--------------------------------------------------------------------------
  191.   def screen_x
  192.     return @actor.screen_x
  193.   end
  194.  
  195.   #--------------------------------------------------------------------------
  196.   # screen_y
  197.   #--------------------------------------------------------------------------
  198.   def screen_y
  199.     return @actor.screen_y
  200.   end
  201.  
  202.   #--------------------------------------------------------------------------
  203.   # screen_z
  204.   #--------------------------------------------------------------------------
  205.   def screen_z
  206.     return @actor.screen_z
  207.   end
  208.  
  209. end # Game_BattleCharacter
  210.  
  211. #==============================================================================
  212. # ? ¥ Game_Battler
  213. #==============================================================================
  214.  
  215. class Game_Battler < Game_BattlerBase
  216.  
  217.   #--------------------------------------------------------------------------
  218.   # public instance variables
  219.   #--------------------------------------------------------------------------
  220.   attr_accessor :moved_back
  221.   attr_accessor :origin_x
  222.   attr_accessor :origin_y
  223.   attr_accessor :screen_x
  224.   attr_accessor :screen_y
  225.   attr_accessor :started_turn
  226.  
  227.   #--------------------------------------------------------------------------
  228.   # alias method: execute_damage
  229.   #--------------------------------------------------------------------------
  230.   alias game_battler_execute_damage_vb execute_damage
  231.   def execute_damage(user)
  232.     game_battler_execute_damage_vb(user)
  233.     if @result.hp_damage > 0
  234.       move_backward(24, 6) unless @moved_back
  235.       @moved_back = true
  236.     end
  237.   end
  238.  
  239.   #--------------------------------------------------------------------------
  240.   # face_opposing_party
  241.   #--------------------------------------------------------------------------
  242.   def face_opposing_party
  243.     direction = ($game_system.party_direction ||
  244.     YEA::VISUAL_BATTLERS::PARTY_DIRECTION)
  245.     character.set_direction(Direction.correct(direction)) rescue 0
  246.   end
  247.  
  248.   #--------------------------------------------------------------------------
  249.   # new method: face_coordinate
  250.   #--------------------------------------------------------------------------
  251.   def face_coordinate(destination_x, destination_y)
  252.     x1 = Integer(@screen_x)
  253.     x2 = Integer(destination_x)
  254.     y1 = Graphics.height - Integer(@screen_y)
  255.     y2 = Graphics.height - Integer(destination_y)
  256.     return if x1 == x2 and y1 == y2
  257.     #---
  258.     angle = Integer(Math.atan2((y2-y1),(x2-x1)) * 1800 / Math::PI)
  259.     if (0..225) === angle or (-225..0) === angle
  260.       direction = 6
  261.     elsif (226..675) === angle
  262.       direction = 9
  263.     elsif (676..1125) === angle
  264.       direction = 8
  265.     elsif (1126..1575) === angle
  266.       direction = 7
  267.     elsif (1576..1800) === angle or (-1800..-1576) === angle
  268.       direction = 4
  269.     elsif (-1575..-1126) === angle
  270.       direction = 1
  271.     elsif (-1125..-676) === angle
  272.       direction = 2
  273.     elsif (-675..-226) === angle
  274.       direction = 3
  275.     end
  276.     #---
  277.     character.set_direction(Direction.correct(direction)) rescue 0
  278.   end
  279.  
  280.   #--------------------------------------------------------------------------
  281.   # create_move_to
  282.   #--------------------------------------------------------------------------
  283.   def create_move_to(destination_x, destination_y, frames = 12)
  284.     @destination_x = destination_x
  285.     @destination_y = destination_y
  286.     frames = [frames, 1].max
  287.     @move_x_rate = [(@screen_x - @destination_x).abs / frames, 2].max
  288.     @move_y_rate = [(@screen_y - @destination_y).abs / frames, 2].max
  289.   end
  290.  
  291.   #--------------------------------------------------------------------------
  292.   # update_move_to
  293.   #--------------------------------------------------------------------------
  294.   def update_move_to
  295.     @move_x_rate = 0 if @screen_x == @destination_x || @move_x_rate.nil?
  296.     @move_y_rate = 0 if @screen_y == @destination_y || @move_y_rate.nil?
  297.     value = [(@screen_x - @destination_x).abs, @move_x_rate].min
  298.     @screen_x += (@destination_x > @screen_x) ? value : -value
  299.     value = [(@screen_y - @destination_y).abs, @move_y_rate].min
  300.     @screen_y += (@destination_y > @screen_y) ? value : -value
  301.   end
  302.  
  303.   #--------------------------------------------------------------------------
  304.   # move_forward
  305.   #--------------------------------------------------------------------------
  306.   def move_forward(distance = 24, frames = 12)
  307.     direction = forward_direction
  308.     move_direction(direction, distance, frames)
  309.   end
  310.  
  311.   #--------------------------------------------------------------------------
  312.   # move_backward
  313.   #--------------------------------------------------------------------------
  314.   def move_backward(distance = 24, frames = 12)
  315.     direction = Direction.opposite(forward_direction)
  316.     move_direction(direction, distance, frames)
  317.   end
  318.  
  319.   #--------------------------------------------------------------------------
  320.   # move_direction
  321.   #--------------------------------------------------------------------------
  322.   def move_direction(direction, distance = 24, frames = 12)
  323.     case direction
  324.     when 1; move_x = distance / -2; move_y = distance / 2
  325.     when 2; move_x = distance * 0; move_y = distance * 1
  326.     when 3; move_x = distance / -2; move_y = distance / 2
  327.     when 4; move_x = distance * -1; move_y = distance * 0
  328.     when 6; move_x = distance * 1; move_y = distance * 0
  329.     when 7; move_x = distance / -2; move_y = distance / -2
  330.     when 8; move_x = distance * 0; move_y = distance * -1
  331.     when 9; move_x = distance / 2; move_y = distance / -2
  332.     else; return
  333.     end
  334.     destination_x = @screen_x + move_x
  335.     destination_y = @screen_y + move_y
  336.     create_move_to(destination_x, destination_y, frames)
  337.   end
  338.  
  339.   #--------------------------------------------------------------------------
  340.   # forward_direction
  341.   #--------------------------------------------------------------------------
  342.   def forward_direction
  343.     return ($game_system.party_direction ||
  344.     YEA::VISUAL_BATTLERS::PARTY_DIRECTION)
  345.   end
  346.  
  347.   #--------------------------------------------------------------------------
  348.   # move_origin
  349.   #--------------------------------------------------------------------------
  350.   def move_origin
  351.     create_move_to(@origin_x, @origin_y)
  352.     face_coordinate(@origin_x, @origin_y)
  353.     @moved_back = false
  354.   end
  355.  
  356.   #--------------------------------------------------------------------------
  357.   # visbattler_moving?
  358.   #--------------------------------------------------------------------------
  359.   def visbattler_moving?
  360.     return false if dead? || !exist?
  361.     return @move_x_rate != 0 || @move_y_rate != 0
  362.   end
  363.  
  364. end # Game_Battler
  365.  
  366. #==============================================================================
  367. # ? ¥ Game_Actor
  368. #==============================================================================
  369.  
  370. class Game_Actor < Game_Battler
  371.  
  372.   #--------------------------------------------------------------------------
  373.   # overwrite method: use_sprite?
  374.   #--------------------------------------------------------------------------
  375.   def use_sprite?
  376.     return true
  377.   end
  378.  
  379.   #--------------------------------------------------------------------------
  380.   # new method: screen_x
  381.   #--------------------------------------------------------------------------
  382.   def screen_x
  383.     return @screen_x rescue 0
  384.   end
  385.  
  386.   #--------------------------------------------------------------------------
  387.   # new method: screen_y
  388.   #--------------------------------------------------------------------------
  389.   def screen_y
  390.     return @screen_y rescue 0
  391.   end
  392.  
  393.   #--------------------------------------------------------------------------
  394.   # new method: screen_z
  395.   #--------------------------------------------------------------------------
  396.   def screen_z
  397.     return 100
  398.   end
  399.  
  400.   #--------------------------------------------------------------------------
  401.   # new method: sprite
  402.   #--------------------------------------------------------------------------
  403.   def sprite
  404.     index = $game_party.battle_members.index(self)
  405.     return SceneManager.scene.spriteset.actor_sprites[index]
  406.   end
  407.  
  408.   #--------------------------------------------------------------------------
  409.   # new method: character
  410.   #--------------------------------------------------------------------------
  411.   def character
  412.     return sprite.character_base
  413.   end
  414.  
  415.   #--------------------------------------------------------------------------
  416.   # face_opposing_party
  417.   #--------------------------------------------------------------------------
  418.   def face_opposing_party
  419.     dr = $game_system.party_direction || YEA::VISUAL_BATTLERS::PARTY_DIRECTION
  420.     direction = Direction.opposite(dr)
  421.     character.set_direction(Direction.correct(direction)) rescue 0
  422.   end
  423.  
  424.   #--------------------------------------------------------------------------
  425.   # forward_direction
  426.   #--------------------------------------------------------------------------
  427.   def forward_direction
  428.     return Direction.opposite(($game_system.party_direction ||
  429.     YEA::VISUAL_BATTLERS::PARTY_DIRECTION))
  430.   end
  431.  
  432. end # Game_Actor
  433.  
  434. #==============================================================================
  435. # ? ¥ Game_Enemy
  436. #==============================================================================
  437.  
  438. class Game_Enemy < Game_Battler
  439.  
  440.   #--------------------------------------------------------------------------
  441.   # new method: sprite
  442.   #--------------------------------------------------------------------------
  443.   def sprite
  444.     return SceneManager.scene.spriteset.enemy_sprites.reverse[self.index]
  445.   end
  446.  
  447.   #--------------------------------------------------------------------------
  448.   # new method: character
  449.   #--------------------------------------------------------------------------
  450.   def character
  451.     return sprite
  452.   end
  453.  
  454. end # Game_Enemy
  455.  
  456. #==============================================================================
  457. # ? ¥ Game_Troop
  458. #==============================================================================
  459.  
  460. class Game_Troop < Game_Unit
  461.  
  462.   #--------------------------------------------------------------------------
  463.   # alias method: setup
  464.   #--------------------------------------------------------------------------
  465.   alias game_troop_setup_vb setup
  466.   def setup(troop_id)
  467.     game_troop_setup_vb(troop_id)
  468.     set_coordinates
  469.   end
  470.  
  471.   #--------------------------------------------------------------------------
  472.   # new method: set_coordinates
  473.   #--------------------------------------------------------------------------
  474.   def set_coordinates
  475.     for member in members
  476.       member.origin_x = member.screen_x
  477.       member.origin_y = member.screen_y
  478.       member.create_move_to(member.screen_x, member.screen_y, 1)
  479.     end
  480.   end
  481.  
  482. end # Game_Troop
  483.  
  484. #==============================================================================
  485. # ? ¥ Sprite_Battler
  486. #==============================================================================
  487.  
  488. class Sprite_Battler < Sprite_Base
  489.  
  490.   #--------------------------------------------------------------------------
  491.   # public instance_variable
  492.   #--------------------------------------------------------------------------
  493.   attr_accessor :character_base
  494.   attr_accessor :character_sprite
  495.  
  496.   #--------------------------------------------------------------------------
  497.   # alias method: dispose
  498.   #--------------------------------------------------------------------------
  499.   alias sprite_battler_dispose_vb dispose
  500.   def dispose
  501.     dispose_character_sprite
  502.     sprite_battler_dispose_vb
  503.   end
  504.  
  505.   #--------------------------------------------------------------------------
  506.   # new method: dispose_character_sprite
  507.   #--------------------------------------------------------------------------
  508.   def dispose_character_sprite
  509.     @character_sprite.dispose unless @character_sprite.nil?
  510.   end
  511.  
  512.   #--------------------------------------------------------------------------
  513.   # alias method: update
  514.   #--------------------------------------------------------------------------
  515.   alias sprite_battler_update_vb update
  516.   def update
  517.     sprite_battler_update_vb
  518.     return if @battler.nil?
  519.     update_move_to
  520.     update_character_base
  521.     update_character_sprite
  522.   end
  523.  
  524.   #--------------------------------------------------------------------------
  525.   # new method: update_character_base
  526.   #--------------------------------------------------------------------------
  527.   def update_character_base
  528.     return if @character_base.nil?
  529.     @character_base.update
  530.   end
  531.  
  532.   #--------------------------------------------------------------------------
  533.   # new method: update_character_sprite
  534.   #--------------------------------------------------------------------------
  535.   def update_character_sprite
  536.     return if @character_sprite.nil?
  537.     @character_sprite.update
  538.   end
  539.  
  540.   #--------------------------------------------------------------------------
  541.   # new method: update_move_to
  542.   #--------------------------------------------------------------------------
  543.   def update_move_to
  544.     @battler.update_move_to
  545.   end
  546.  
  547.   #--------------------------------------------------------------------------
  548.   # new method: visbattler_moving?
  549.   #--------------------------------------------------------------------------
  550.   def visbattler_moving?
  551.     return false if @battler.nil?
  552.     return @battler.visbattler_moving?
  553.   end
  554.  
  555. end # Sprite_Battler
  556.  
  557. #==============================================================================
  558. # ? ¥ Sprite_BattleCharacter
  559. #==============================================================================
  560.  
  561. class Sprite_BattleCharacter < Sprite_Character
  562.  
  563.   #--------------------------------------------------------------------------
  564.   # initialize
  565.   #--------------------------------------------------------------------------
  566.   def initialize(viewport, character = nil)
  567.     super(viewport, character)
  568.     character.sprite = self
  569.   end
  570.  
  571. end # Sprite_BattleCharacter
  572.  
  573. #==============================================================================
  574. # ? ¥ Spriteset_Battle
  575. #==============================================================================
  576.  
  577. class Spriteset_Battle
  578.  
  579.   #--------------------------------------------------------------------------
  580.   # public instance_variable
  581.   #--------------------------------------------------------------------------
  582.   attr_accessor :actor_sprites
  583.   attr_accessor :enemy_sprites
  584.  
  585.   #--------------------------------------------------------------------------
  586.   # overwrite method: create_actors
  587.   #--------------------------------------------------------------------------
  588.   def create_actors
  589.     total = $game_party.max_battle_members
  590.     @current_party = $game_party.battle_members.clone
  591.     @actor_sprites = Array.new(total) { Sprite_Battler.new(@viewport1) }
  592.     for actor in $game_party.battle_members
  593.       @actor_sprites[actor.index].battler = actor
  594.       create_actor_sprite(actor)
  595.     end
  596.   end
  597.  
  598.   #--------------------------------------------------------------------------
  599.   # new method: create_actor_sprite
  600.   #--------------------------------------------------------------------------
  601.   def create_actor_sprite(actor)
  602.     character = Game_BattleCharacter.new(actor)
  603.     character_sprite = Sprite_BattleCharacter.new(@viewport1, character)
  604.     @actor_sprites[actor.index].character_base = character
  605.     @actor_sprites[actor.index].character_sprite = character_sprite
  606.     actor.face_opposing_party
  607.   end
  608.  
  609.   #--------------------------------------------------------------------------
  610.   # alias method: update_actors
  611.   #--------------------------------------------------------------------------
  612.   alias spriteset_battle_update_actors_vb update_actors
  613.   def update_actors
  614.     if @current_party != $game_party.battle_members
  615.       dispose_actors
  616.       create_actors
  617.     end
  618.     spriteset_battle_update_actors_vb
  619.   end
  620.  
  621.   #--------------------------------------------------------------------------
  622.   # new method: visbattler_moving?
  623.   #--------------------------------------------------------------------------
  624.   def visbattler_moving?
  625.     return battler_sprites.any? {|sprite| sprite.visbattler_moving? }
  626.   end
  627.  
  628. end # Spriteset_Battle
  629.  
  630. #==============================================================================
  631. # ? ¥ Scene_Battle
  632. #==============================================================================
  633.  
  634. class Scene_Battle < Scene_Base
  635.  
  636.   #--------------------------------------------------------------------------
  637.   # public instance variables
  638.   #--------------------------------------------------------------------------
  639.   attr_accessor :spriteset
  640.  
  641.   #--------------------------------------------------------------------------
  642.   # alias method: process_action_end
  643.   #--------------------------------------------------------------------------
  644.   alias scene_battle_process_action_end_vb process_action_end
  645.   def process_action_end
  646.     start_battler_move_origin
  647.     scene_battle_process_action_end_vb
  648.   end
  649.  
  650.   #--------------------------------------------------------------------------
  651.   # alias method: execute_action
  652.   #--------------------------------------------------------------------------
  653.   alias scene_battle_execute_action_vb execute_action
  654.   def execute_action
  655.     start_battler_move_forward
  656.     scene_battle_execute_action_vb
  657.   end
  658.  
  659.   #--------------------------------------------------------------------------
  660.   # new method: start_battler_move_forward
  661.   #--------------------------------------------------------------------------
  662.   def start_battler_move_forward
  663.     return if @subject.started_turn
  664.     @subject.started_turn = true
  665.     @subject.move_forward
  666.     wait_for_moving
  667.   end
  668.  
  669.   #--------------------------------------------------------------------------
  670.   # new method: start_battler_move_origin
  671.   #--------------------------------------------------------------------------
  672.   def start_battler_move_origin
  673.     @subject.started_turn = nil
  674.     move_battlers_origin
  675.     wait_for_moving
  676.     @subject.face_opposing_party rescue 0
  677.   end
  678.  
  679.   #--------------------------------------------------------------------------
  680.   # new method: move_battlers_origin
  681.   #--------------------------------------------------------------------------
  682.   def move_battlers_origin
  683.     for member in all_battle_members
  684.       next if member.dead?
  685.       next unless member.exist?
  686.       member.move_origin
  687.     end
  688.   end
  689.  
  690.   #--------------------------------------------------------------------------
  691.   # new method: wait_for_moving
  692.   #--------------------------------------------------------------------------
  693.   def wait_for_moving
  694.     update_for_wait
  695.     update_for_wait while @spriteset.visbattler_moving?
  696.   end
  697.  
  698. end # Scene_Battle
  699.  
  700. #==============================================================================
  701. #
  702. # ¥ End of File
  703. #
  704. #==============================================================================
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement