barreytor

Yanfly Visual Battlers + mods

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