mirror of
				https://github.com/KevinMidboe/linguist.git
				synced 2025-10-29 17:50:22 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			704 lines
		
	
	
		
			25 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			704 lines
		
	
	
		
			25 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
| #==============================================================================
 | ||
| # 
 | ||
| # <20>¥ Yanfly Engine Ace - Visual Battlers v1.01
 | ||
| # -- Last Updated: 2012.07.24
 | ||
| # -- Level: Easy
 | ||
| # -- Requires: n/a
 | ||
| #
 | ||
| # <20>¥ Modified by:
 | ||
| # -- Yami
 | ||
| # -- Kread-Ex
 | ||
| # -- Archeia_Nessiah
 | ||
| #==============================================================================
 | ||
| 
 | ||
| $imported = {} if $imported.nil?
 | ||
| $imported["YEA-VisualBattlers"] = true
 | ||
| 
 | ||
| #==============================================================================
 | ||
| # <20>¥ Updates
 | ||
| # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
 | ||
| # 2012.12.18 - Added preset views and able to change direction in-game.
 | ||
| # 2012.07.24 - Finished Script.
 | ||
| # 2012.01.05 - Started Script.
 | ||
| # 
 | ||
| #==============================================================================
 | ||
| # <20>¥ Introduction
 | ||
| # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
 | ||
| # This script provides a visual for all actors by default charsets. The actions
 | ||
| # and movements are alike Final Fantasy 1, only move forward and backward when 
 | ||
| # start and finish actions.
 | ||
| # 
 | ||
| #==============================================================================
 | ||
| # <20>¥ Instructions
 | ||
| # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
 | ||
| # To change the player direction in-game, use the snippet below in a script 
 | ||
| # call: 
 | ||
| # 
 | ||
| # $game_system.party_direction = n
 | ||
| #
 | ||
| # To install this script, open up your script editor and copy/paste this script
 | ||
| # to an open slot below <20>¥ Materials but above <20>¥ Main. Remember to save.
 | ||
| # 
 | ||
| #==============================================================================
 | ||
| # <20>¥ Compatibility
 | ||
| # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
 | ||
| # This script is made strictly for RPG Maker VX Ace. It is highly unlikely that
 | ||
| # it will run with RPG Maker VX without adjusting.
 | ||
| # 
 | ||
| #==============================================================================
 | ||
| 
 | ||
| module YEA
 | ||
|   module VISUAL_BATTLERS
 | ||
|     
 | ||
|     #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
 | ||
|     # - Party Location Setting -
 | ||
|     #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
 | ||
|     # These settings are adjusted for Party Location. Each Actor will have
 | ||
|     # coordinates calculated by below formula. There are two samples coordinates
 | ||
|     # below, change PARTY_DIRECTION to the base index you want to use.
 | ||
|     #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
 | ||
|     PARTY_DIRECTION = 6 # This direction is opposite from actual direction.
 | ||
|     
 | ||
|     PARTY_LOCATION_BASE_COORDINATES ={
 | ||
|     # Index => [base_x, base_y, mod_x, mod_y],
 | ||
|           2 => [   250,    290,    40,     0], #UP
 | ||
|           4 => [   150,    280,    20,   -20], #LEFT
 | ||
|           3 => [   460,    280,    30,   -10], #RIGHT
 | ||
|           6 => [   460,    230,    20,    20], #DEFAULT RIGHT
 | ||
|           8 => [   260,    230,    40,     0], #DOWN
 | ||
|     } # Do not remove this.
 | ||
|     
 | ||
|     PARTY_LOCATION_FORMULA_X = "base_x + index * mod_x"
 | ||
|     PARTY_LOCATION_FORMULA_Y = "base_y + index * mod_y"
 | ||
|     
 | ||
|   end # VISUAL_BATTLERS
 | ||
| end # YEA
 | ||
| 
 | ||
| #==============================================================================
 | ||
| #  <20>¥  Editting anything past this point may potentially result in causing
 | ||
| # computer damage, incontinence, explosion of user's head, coma, death, and/or
 | ||
| # halitosis so edit at your own risk.
 | ||
| #==============================================================================
 | ||
| 
 | ||
| #==============================================================================
 | ||
| # ? <20>¥  Direction
 | ||
| #==============================================================================
 | ||
| 
 | ||
| module Direction
 | ||
|   
 | ||
|   #--------------------------------------------------------------------------
 | ||
|   # self.correct
 | ||
|   #--------------------------------------------------------------------------
 | ||
|   def self.correct(direction)
 | ||
|     case direction
 | ||
|     when 1; return 4
 | ||
|     when 3; return 6
 | ||
|     when 7; return 4
 | ||
|     when 9; return 6
 | ||
|     else; return direction
 | ||
|     end
 | ||
|   end
 | ||
|   
 | ||
|   #--------------------------------------------------------------------------
 | ||
|   # self.opposite
 | ||
|   #--------------------------------------------------------------------------
 | ||
|   def self.opposite(direction)
 | ||
|     case direction
 | ||
|     when 1; return 6
 | ||
|     when 2; return 8
 | ||
|     when 3; return 4
 | ||
|     when 4; return 6
 | ||
|     when 6; return 4
 | ||
|     when 7; return 6
 | ||
|     when 8; return 2
 | ||
|     when 9; return 4
 | ||
|     else; return direction
 | ||
|     end
 | ||
|   end
 | ||
|   
 | ||
| end # Direction
 | ||
| 
 | ||
| #==============================================================================
 | ||
| # ? <20>¥  Game_System
 | ||
| #==============================================================================
 | ||
| 
 | ||
| class Game_System; attr_accessor :party_direction; end
 | ||
| 
 | ||
| #==============================================================================
 | ||
| # ? <20>¥  Game_BattleCharacter
 | ||
| #==============================================================================
 | ||
| 
 | ||
| class Game_BattleCharacter < Game_Character
 | ||
|   
 | ||
|   #--------------------------------------------------------------------------
 | ||
|   # initialize
 | ||
|   #--------------------------------------------------------------------------
 | ||
|   def initialize(actor)
 | ||
|     super()
 | ||
|     setup_actor(actor)
 | ||
|     @move_x_rate = 0
 | ||
|     @move_y_rate = 0
 | ||
|   end
 | ||
|   
 | ||
|   #--------------------------------------------------------------------------
 | ||
|   # setup_actor
 | ||
|   #--------------------------------------------------------------------------
 | ||
|   def setup_actor(actor)
 | ||
|     @actor = actor
 | ||
|     @step_anime = true
 | ||
|     set_graphic(@actor.character_name, @actor.character_index)
 | ||
|     setup_coordinates
 | ||
|     dr = $game_system.party_direction || YEA::VISUAL_BATTLERS::PARTY_DIRECTION
 | ||
|     direction = Direction.opposite(dr)
 | ||
|     set_direction(Direction.correct(direction))
 | ||
|   end
 | ||
|   
 | ||
|   #--------------------------------------------------------------------------
 | ||
|   # sprite=
 | ||
|   #--------------------------------------------------------------------------
 | ||
|   def sprite=(sprite)
 | ||
|     @sprite = sprite
 | ||
|   end
 | ||
|   
 | ||
|   #--------------------------------------------------------------------------
 | ||
|   # setup_coordinates
 | ||
|   #--------------------------------------------------------------------------
 | ||
|   def setup_coordinates
 | ||
|     location = ($game_system.party_direction ||
 | ||
|     YEA::VISUAL_BATTLERS::PARTY_DIRECTION)
 | ||
|     base_x = YEA::VISUAL_BATTLERS::PARTY_LOCATION_BASE_COORDINATES[location][0]
 | ||
|     base_y = YEA::VISUAL_BATTLERS::PARTY_LOCATION_BASE_COORDINATES[location][1]
 | ||
|     mod_x = YEA::VISUAL_BATTLERS::PARTY_LOCATION_BASE_COORDINATES[location][2]
 | ||
|     mod_y = YEA::VISUAL_BATTLERS::PARTY_LOCATION_BASE_COORDINATES[location][3]
 | ||
|     @actor.screen_x = eval(YEA::VISUAL_BATTLERS::PARTY_LOCATION_FORMULA_X)
 | ||
|     @actor.screen_y = eval(YEA::VISUAL_BATTLERS::PARTY_LOCATION_FORMULA_Y)
 | ||
|     @actor.origin_x = @actor.screen_x
 | ||
|     @actor.origin_y = @actor.screen_y
 | ||
|     @actor.create_move_to(screen_x, screen_y, 1)
 | ||
|   end
 | ||
|   
 | ||
|   #--------------------------------------------------------------------------
 | ||
|   # index
 | ||
|   #--------------------------------------------------------------------------
 | ||
|   def index
 | ||
|     return @actor.index
 | ||
|   end
 | ||
|   
 | ||
|   #--------------------------------------------------------------------------
 | ||
|   # screen_x
 | ||
|   #--------------------------------------------------------------------------
 | ||
|   def screen_x
 | ||
|     return @actor.screen_x
 | ||
|   end
 | ||
|   
 | ||
|   #--------------------------------------------------------------------------
 | ||
|   # screen_y
 | ||
|   #--------------------------------------------------------------------------
 | ||
|   def screen_y
 | ||
|     return @actor.screen_y
 | ||
|   end
 | ||
|   
 | ||
|   #--------------------------------------------------------------------------
 | ||
|   # screen_z
 | ||
|   #--------------------------------------------------------------------------
 | ||
|   def screen_z
 | ||
|     return @actor.screen_z
 | ||
|   end
 | ||
|   
 | ||
| end # Game_BattleCharacter
 | ||
| 
 | ||
| #==============================================================================
 | ||
| # ? <20>¥  Game_Battler
 | ||
| #==============================================================================
 | ||
| 
 | ||
| class Game_Battler < Game_BattlerBase
 | ||
|   
 | ||
|   #--------------------------------------------------------------------------
 | ||
|   # public instance variables
 | ||
|   #--------------------------------------------------------------------------
 | ||
|   attr_accessor :moved_back
 | ||
|   attr_accessor :origin_x
 | ||
|   attr_accessor :origin_y
 | ||
|   attr_accessor :screen_x
 | ||
|   attr_accessor :screen_y
 | ||
|   attr_accessor :started_turn
 | ||
|   
 | ||
|   #--------------------------------------------------------------------------
 | ||
|   # alias method: execute_damage
 | ||
|   #--------------------------------------------------------------------------
 | ||
|   alias game_battler_execute_damage_vb execute_damage
 | ||
|   def execute_damage(user)
 | ||
|     game_battler_execute_damage_vb(user)
 | ||
|     if @result.hp_damage > 0
 | ||
|       move_backward(24, 6) unless @moved_back
 | ||
|       @moved_back = true
 | ||
|     end
 | ||
|   end
 | ||
|   
 | ||
|   #--------------------------------------------------------------------------
 | ||
|   # face_opposing_party
 | ||
|   #--------------------------------------------------------------------------
 | ||
|   def face_opposing_party
 | ||
|     direction = ($game_system.party_direction ||
 | ||
|     YEA::VISUAL_BATTLERS::PARTY_DIRECTION)
 | ||
|     character.set_direction(Direction.correct(direction)) rescue 0
 | ||
|   end
 | ||
|   
 | ||
|   #--------------------------------------------------------------------------
 | ||
|   # new method: face_coordinate
 | ||
|   #--------------------------------------------------------------------------
 | ||
|   def face_coordinate(destination_x, destination_y)
 | ||
|     x1 = Integer(@screen_x)
 | ||
|     x2 = Integer(destination_x)
 | ||
|     y1 = Graphics.height - Integer(@screen_y)
 | ||
|     y2 = Graphics.height - Integer(destination_y)
 | ||
|     return if x1 == x2 and y1 == y2
 | ||
|     #---
 | ||
|     angle = Integer(Math.atan2((y2-y1),(x2-x1)) * 1800 / Math::PI)
 | ||
|     if (0..225) === angle or (-225..0) === angle
 | ||
|       direction = 6
 | ||
|     elsif (226..675) === angle
 | ||
|       direction = 9
 | ||
|     elsif (676..1125) === angle
 | ||
|       direction = 8
 | ||
|     elsif (1126..1575) === angle
 | ||
|       direction = 7
 | ||
|     elsif (1576..1800) === angle or (-1800..-1576) === angle
 | ||
|       direction = 4
 | ||
|     elsif (-1575..-1126) === angle
 | ||
|       direction = 1
 | ||
|     elsif (-1125..-676) === angle
 | ||
|       direction = 2
 | ||
|     elsif (-675..-226) === angle
 | ||
|       direction = 3
 | ||
|     end
 | ||
|     #---
 | ||
|     character.set_direction(Direction.correct(direction)) rescue 0
 | ||
|   end
 | ||
|   
 | ||
|   #--------------------------------------------------------------------------
 | ||
|   # create_move_to
 | ||
|   #--------------------------------------------------------------------------
 | ||
|   def create_move_to(destination_x, destination_y, frames = 12)
 | ||
|     @destination_x = destination_x
 | ||
|     @destination_y = destination_y
 | ||
|     frames = [frames, 1].max
 | ||
|     @move_x_rate = [(@screen_x - @destination_x).abs / frames, 2].max
 | ||
|     @move_y_rate = [(@screen_y - @destination_y).abs / frames, 2].max
 | ||
|   end
 | ||
|   
 | ||
|   #--------------------------------------------------------------------------
 | ||
|   # update_move_to
 | ||
|   #--------------------------------------------------------------------------
 | ||
|   def update_move_to
 | ||
|     @move_x_rate = 0 if @screen_x == @destination_x || @move_x_rate.nil?
 | ||
|     @move_y_rate = 0 if @screen_y == @destination_y || @move_y_rate.nil?
 | ||
|     value = [(@screen_x - @destination_x).abs, @move_x_rate].min
 | ||
|     @screen_x += (@destination_x > @screen_x) ? value : -value
 | ||
|     value = [(@screen_y - @destination_y).abs, @move_y_rate].min
 | ||
|     @screen_y += (@destination_y > @screen_y) ? value : -value
 | ||
|   end
 | ||
|   
 | ||
|   #--------------------------------------------------------------------------
 | ||
|   # move_forward
 | ||
|   #--------------------------------------------------------------------------
 | ||
|   def move_forward(distance = 24, frames = 12)
 | ||
|     direction = forward_direction
 | ||
|     move_direction(direction, distance, frames)
 | ||
|   end
 | ||
|   
 | ||
|   #--------------------------------------------------------------------------
 | ||
|   # move_backward
 | ||
|   #--------------------------------------------------------------------------
 | ||
|   def move_backward(distance = 24, frames = 12)
 | ||
|     direction = Direction.opposite(forward_direction)
 | ||
|     move_direction(direction, distance, frames)
 | ||
|   end
 | ||
|   
 | ||
|   #--------------------------------------------------------------------------
 | ||
|   # move_direction
 | ||
|   #--------------------------------------------------------------------------
 | ||
|   def move_direction(direction, distance = 24, frames = 12)
 | ||
|     case direction
 | ||
|     when 1; move_x = distance / -2; move_y = distance /  2
 | ||
|     when 2; move_x = distance *  0; move_y = distance *  1
 | ||
|     when 3; move_x = distance / -2; move_y = distance /  2
 | ||
|     when 4; move_x = distance * -1; move_y = distance *  0
 | ||
|     when 6; move_x = distance *  1; move_y = distance *  0
 | ||
|     when 7; move_x = distance / -2; move_y = distance / -2
 | ||
|     when 8; move_x = distance *  0; move_y = distance * -1
 | ||
|     when 9; move_x = distance /  2; move_y = distance / -2
 | ||
|     else; return
 | ||
|     end
 | ||
|     destination_x = @screen_x + move_x
 | ||
|     destination_y = @screen_y + move_y
 | ||
|     create_move_to(destination_x, destination_y, frames)
 | ||
|   end
 | ||
|   
 | ||
|   #--------------------------------------------------------------------------
 | ||
|   # forward_direction
 | ||
|   #--------------------------------------------------------------------------
 | ||
|   def forward_direction
 | ||
|     return ($game_system.party_direction ||
 | ||
|     YEA::VISUAL_BATTLERS::PARTY_DIRECTION)
 | ||
|   end
 | ||
|   
 | ||
|   #--------------------------------------------------------------------------
 | ||
|   # move_origin
 | ||
|   #--------------------------------------------------------------------------
 | ||
|   def move_origin
 | ||
|     create_move_to(@origin_x, @origin_y)
 | ||
|     face_coordinate(@origin_x, @origin_y)
 | ||
|     @moved_back = false
 | ||
|   end
 | ||
|   
 | ||
|   #--------------------------------------------------------------------------
 | ||
|   # moving?
 | ||
|   #--------------------------------------------------------------------------
 | ||
|   def moving?
 | ||
|     return false if dead? || !exist?
 | ||
|     return @move_x_rate != 0 || @move_y_rate != 0
 | ||
|   end
 | ||
|   
 | ||
| end # Game_Battler
 | ||
| 
 | ||
| #==============================================================================
 | ||
| # ? <20>¥  Game_Actor
 | ||
| #==============================================================================
 | ||
| 
 | ||
| class Game_Actor < Game_Battler
 | ||
|   
 | ||
|   #--------------------------------------------------------------------------
 | ||
|   # overwrite method: use_sprite?
 | ||
|   #--------------------------------------------------------------------------
 | ||
|   def use_sprite?
 | ||
|     return true
 | ||
|   end
 | ||
|   
 | ||
|   #--------------------------------------------------------------------------
 | ||
|   # new method: screen_x
 | ||
|   #--------------------------------------------------------------------------
 | ||
|   def screen_x
 | ||
|     return @screen_x rescue 0
 | ||
|   end
 | ||
|   
 | ||
|   #--------------------------------------------------------------------------
 | ||
|   # new method: screen_y
 | ||
|   #--------------------------------------------------------------------------
 | ||
|   def screen_y
 | ||
|     return @screen_y rescue 0
 | ||
|   end
 | ||
|   
 | ||
|   #--------------------------------------------------------------------------
 | ||
|   # new method: screen_z
 | ||
|   #--------------------------------------------------------------------------
 | ||
|   def screen_z
 | ||
|     return 100
 | ||
|   end
 | ||
|   
 | ||
|   #--------------------------------------------------------------------------
 | ||
|   # new method: sprite
 | ||
|   #--------------------------------------------------------------------------
 | ||
|   def sprite
 | ||
|     index = $game_party.battle_members.index(self)
 | ||
|     return SceneManager.scene.spriteset.actor_sprites[index]
 | ||
|   end
 | ||
|   
 | ||
|   #--------------------------------------------------------------------------
 | ||
|   # new method: character
 | ||
|   #--------------------------------------------------------------------------
 | ||
|   def character
 | ||
|     return sprite.character_base
 | ||
|   end
 | ||
|   
 | ||
|   #--------------------------------------------------------------------------
 | ||
|   # face_opposing_party
 | ||
|   #--------------------------------------------------------------------------
 | ||
|   def face_opposing_party
 | ||
|     dr = $game_system.party_direction || YEA::VISUAL_BATTLERS::PARTY_DIRECTION
 | ||
|     direction = Direction.opposite(dr)
 | ||
|     character.set_direction(Direction.correct(direction)) rescue 0
 | ||
|   end
 | ||
|   
 | ||
|   #--------------------------------------------------------------------------
 | ||
|   # forward_direction
 | ||
|   #--------------------------------------------------------------------------
 | ||
|   def forward_direction
 | ||
|     return Direction.opposite(($game_system.party_direction ||
 | ||
|     YEA::VISUAL_BATTLERS::PARTY_DIRECTION))
 | ||
|   end
 | ||
|   
 | ||
| end # Game_Actor
 | ||
| 
 | ||
| #==============================================================================
 | ||
| # ? <20>¥  Game_Enemy
 | ||
| #==============================================================================
 | ||
| 
 | ||
| class Game_Enemy < Game_Battler
 | ||
|   
 | ||
|   #--------------------------------------------------------------------------
 | ||
|   # new method: sprite
 | ||
|   #--------------------------------------------------------------------------
 | ||
|   def sprite
 | ||
|     return SceneManager.scene.spriteset.enemy_sprites.reverse[self.index]
 | ||
|   end
 | ||
|   
 | ||
|   #--------------------------------------------------------------------------
 | ||
|   # new method: character
 | ||
|   #--------------------------------------------------------------------------
 | ||
|   def character
 | ||
|     return sprite
 | ||
|   end
 | ||
|   
 | ||
| end # Game_Enemy
 | ||
| 
 | ||
| #==============================================================================
 | ||
| # ? <20>¥  Game_Troop
 | ||
| #==============================================================================
 | ||
| 
 | ||
| class Game_Troop < Game_Unit
 | ||
|   
 | ||
|   #--------------------------------------------------------------------------
 | ||
|   # alias method: setup
 | ||
|   #--------------------------------------------------------------------------
 | ||
|   alias game_troop_setup_vb setup
 | ||
|   def setup(troop_id)
 | ||
|     game_troop_setup_vb(troop_id)
 | ||
|     set_coordinates
 | ||
|   end
 | ||
|   
 | ||
|   #--------------------------------------------------------------------------
 | ||
|   # new method: set_coordinates
 | ||
|   #--------------------------------------------------------------------------
 | ||
|   def set_coordinates
 | ||
|     for member in members
 | ||
|       member.origin_x = member.screen_x
 | ||
|       member.origin_y = member.screen_y
 | ||
|       member.create_move_to(member.screen_x, member.screen_y, 1)
 | ||
|     end
 | ||
|   end
 | ||
|   
 | ||
| end # Game_Troop
 | ||
| 
 | ||
| #==============================================================================
 | ||
| # ? <20>¥  Sprite_Battler
 | ||
| #==============================================================================
 | ||
| 
 | ||
| class Sprite_Battler < Sprite_Base
 | ||
|   
 | ||
|   #--------------------------------------------------------------------------
 | ||
|   # public instance_variable
 | ||
|   #--------------------------------------------------------------------------
 | ||
|   attr_accessor :character_base
 | ||
|   attr_accessor :character_sprite
 | ||
|   
 | ||
|   #--------------------------------------------------------------------------
 | ||
|   # alias method: dispose
 | ||
|   #--------------------------------------------------------------------------
 | ||
|   alias sprite_battler_dispose_vb dispose
 | ||
|   def dispose
 | ||
|     dispose_character_sprite
 | ||
|     sprite_battler_dispose_vb
 | ||
|   end
 | ||
|   
 | ||
|   #--------------------------------------------------------------------------
 | ||
|   # new method: dispose_character_sprite
 | ||
|   #--------------------------------------------------------------------------
 | ||
|   def dispose_character_sprite
 | ||
|     @character_sprite.dispose unless @character_sprite.nil?
 | ||
|   end
 | ||
|   
 | ||
|   #--------------------------------------------------------------------------
 | ||
|   # alias method: update
 | ||
|   #--------------------------------------------------------------------------
 | ||
|   alias sprite_battler_update_vb update
 | ||
|   def update
 | ||
|     sprite_battler_update_vb
 | ||
|     return if @battler.nil?
 | ||
|     update_move_to
 | ||
|     update_character_base
 | ||
|     update_character_sprite
 | ||
|   end
 | ||
|   
 | ||
|   #--------------------------------------------------------------------------
 | ||
|   # new method: update_character_base
 | ||
|   #--------------------------------------------------------------------------
 | ||
|   def update_character_base
 | ||
|     return if @character_base.nil?
 | ||
|     @character_base.update
 | ||
|   end
 | ||
|   
 | ||
|   #--------------------------------------------------------------------------
 | ||
|   # new method: update_character_sprite
 | ||
|   #--------------------------------------------------------------------------
 | ||
|   def update_character_sprite
 | ||
|     return if @character_sprite.nil?
 | ||
|     @character_sprite.update
 | ||
|   end
 | ||
|   
 | ||
|   #--------------------------------------------------------------------------
 | ||
|   # new method: update_move_to
 | ||
|   #--------------------------------------------------------------------------
 | ||
|   def update_move_to
 | ||
|     @battler.update_move_to
 | ||
|   end
 | ||
|   
 | ||
|   #--------------------------------------------------------------------------
 | ||
|   # new method: moving?
 | ||
|   #--------------------------------------------------------------------------
 | ||
|   def moving?
 | ||
|     return false if @battler.nil?
 | ||
|     return @battler.moving?
 | ||
|   end
 | ||
|   
 | ||
| end # Sprite_Battler
 | ||
| 
 | ||
| #==============================================================================
 | ||
| # ? <20>¥  Sprite_BattleCharacter
 | ||
| #==============================================================================
 | ||
| 
 | ||
| class Sprite_BattleCharacter < Sprite_Character
 | ||
|   
 | ||
|   #--------------------------------------------------------------------------
 | ||
|   # initialize
 | ||
|   #--------------------------------------------------------------------------
 | ||
|   def initialize(viewport, character = nil)
 | ||
|     super(viewport, character)
 | ||
|     character.sprite = self
 | ||
|   end
 | ||
|   
 | ||
| end # Sprite_BattleCharacter
 | ||
| 
 | ||
| #==============================================================================
 | ||
| # ? <20>¥  Spriteset_Battle
 | ||
| #==============================================================================
 | ||
| 
 | ||
| class Spriteset_Battle
 | ||
|   
 | ||
|   #--------------------------------------------------------------------------
 | ||
|   # public instance_variable
 | ||
|   #--------------------------------------------------------------------------
 | ||
|   attr_accessor :actor_sprites
 | ||
|   attr_accessor :enemy_sprites
 | ||
|   
 | ||
|   #--------------------------------------------------------------------------
 | ||
|   # overwrite method: create_actors
 | ||
|   #--------------------------------------------------------------------------
 | ||
|   def create_actors
 | ||
|     total = $game_party.max_battle_members
 | ||
|     @current_party = $game_party.battle_members.clone
 | ||
|     @actor_sprites = Array.new(total) { Sprite_Battler.new(@viewport1) }
 | ||
|     for actor in $game_party.battle_members
 | ||
|       @actor_sprites[actor.index].battler = actor
 | ||
|       create_actor_sprite(actor)
 | ||
|     end
 | ||
|   end
 | ||
|   
 | ||
|   #--------------------------------------------------------------------------
 | ||
|   # new method: create_actor_sprite
 | ||
|   #--------------------------------------------------------------------------
 | ||
|   def create_actor_sprite(actor)
 | ||
|     character = Game_BattleCharacter.new(actor)
 | ||
|     character_sprite = Sprite_BattleCharacter.new(@viewport1, character)
 | ||
|     @actor_sprites[actor.index].character_base = character
 | ||
|     @actor_sprites[actor.index].character_sprite = character_sprite
 | ||
|     actor.face_opposing_party
 | ||
|   end
 | ||
|   
 | ||
|   #--------------------------------------------------------------------------
 | ||
|   # alias method: update_actors
 | ||
|   #--------------------------------------------------------------------------
 | ||
|   alias spriteset_battle_update_actors_vb update_actors
 | ||
|   def update_actors
 | ||
|     if @current_party != $game_party.battle_members
 | ||
|       dispose_actors
 | ||
|       create_actors
 | ||
|     end
 | ||
|     spriteset_battle_update_actors_vb
 | ||
|   end
 | ||
|   
 | ||
|   #--------------------------------------------------------------------------
 | ||
|   # new method: moving?
 | ||
|   #--------------------------------------------------------------------------
 | ||
|   def moving?
 | ||
|     return battler_sprites.any? {|sprite| sprite.moving? }
 | ||
|   end
 | ||
|   
 | ||
| end # Spriteset_Battle
 | ||
| 
 | ||
| #==============================================================================
 | ||
| # ? <20>¥  Scene_Battle
 | ||
| #==============================================================================
 | ||
| 
 | ||
| class Scene_Battle < Scene_Base
 | ||
|   
 | ||
|   #--------------------------------------------------------------------------
 | ||
|   # public instance variables
 | ||
|   #--------------------------------------------------------------------------
 | ||
|   attr_accessor :spriteset
 | ||
|   
 | ||
|   #--------------------------------------------------------------------------
 | ||
|   # alias method: process_action_end
 | ||
|   #--------------------------------------------------------------------------
 | ||
|   alias scene_battle_process_action_end_vb process_action_end
 | ||
|   def process_action_end
 | ||
|     start_battler_move_origin
 | ||
|     scene_battle_process_action_end_vb
 | ||
|   end
 | ||
|   
 | ||
|   #--------------------------------------------------------------------------
 | ||
|   # alias method: execute_action
 | ||
|   #--------------------------------------------------------------------------
 | ||
|   alias scene_battle_execute_action_vb execute_action
 | ||
|   def execute_action
 | ||
|     start_battler_move_forward
 | ||
|     scene_battle_execute_action_vb
 | ||
|   end
 | ||
|   
 | ||
|   #--------------------------------------------------------------------------
 | ||
|   # new method: start_battler_move_forward
 | ||
|   #--------------------------------------------------------------------------
 | ||
|   def start_battler_move_forward
 | ||
|     return if @subject.started_turn
 | ||
|     @subject.started_turn = true
 | ||
|     @subject.move_forward
 | ||
|     wait_for_moving
 | ||
|   end
 | ||
|   
 | ||
|   #--------------------------------------------------------------------------
 | ||
|   # new method: start_battler_move_origin
 | ||
|   #--------------------------------------------------------------------------
 | ||
|   def start_battler_move_origin
 | ||
|     @subject.started_turn = nil
 | ||
|     move_battlers_origin
 | ||
|     wait_for_moving
 | ||
|     @subject.face_opposing_party rescue 0
 | ||
|   end
 | ||
|   
 | ||
|   #--------------------------------------------------------------------------
 | ||
|   # new method: move_battlers_origin
 | ||
|   #--------------------------------------------------------------------------
 | ||
|   def move_battlers_origin
 | ||
|     for member in all_battle_members
 | ||
|       next if member.dead?
 | ||
|       next unless member.exist?
 | ||
|       member.move_origin
 | ||
|     end
 | ||
|   end
 | ||
|   
 | ||
|   #--------------------------------------------------------------------------
 | ||
|   # new method: wait_for_moving
 | ||
|   #--------------------------------------------------------------------------
 | ||
|   def wait_for_moving
 | ||
|     update_for_wait
 | ||
|     update_for_wait while @spriteset.moving?
 | ||
|   end
 | ||
|   
 | ||
| end # Scene_Battle
 | ||
| 
 | ||
| #==============================================================================
 | ||
| # 
 | ||
| #  <20>¥  End of File
 | ||
| # 
 | ||
| #==============================================================================
 |