Soul Engine Ace - Sprites and Character Effects
Version: 1.0
Author: Soulpour777
Date: February 10, 2014
Version History
- <Version 1> Initial Release - Handles Walk, Dash, Strafe and Breath
Description
SEA - Sprites and Character Effects are included under the Sprite / Character Related Scripts. For more information about the complete lists of scripts, please refer to this page (
http://infinitytears.wordpress.com/wall-of-rgss/soul-engine-ace/). These series of scripts also include the first version of my Soul_Character_Effects Core Script, which lets you handle the effects easily rather than going on to searching bit by bit of the script.
Features
- Add / Remove Sprite / Character Shadows - The developer can cast or remove shadows for their players, sprites or events.
- Change Walking and Running Speed
- Breath Effect - Creates a Breathing Effect when your character is idle.
- Strafe Effect - Let's you activate and deactivate the Strafe Mode.
Screenshots^ Shadows, right? You can also notice that I added the breathing effect, so once you test the demo, you can actually change the way you want the breathing to happen. It has both X and Y elements, so you can do both zooming effect.
Instructions
All instructions are inside the script.
Script
Character Effects Core Script# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# SEA - Soul Character Effects
# Author: Soulpour777
# Category: ? Core Script
# Version 1.0 - Holds Character Speed, Strafe and Breath Only. Other scripts
# under the Character Effects are independent.
# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# Description: This core script handles all effects for the sprites and
# for the game characters.
# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# This is a pre-requisite to some Character Related Scripts.
# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# All SEA scripts are bound under my Terms of Use.
# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# This module holds all character effects clusters.
# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$imported = {} if $imported.nil?
$imported["Soul_Character_Effects"] = true
module Soul_Character_Effects
# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# Character Strafe
# Set this up for the Strafing Mechanics.
# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
module StrafeKey
STRAFE = Input::R # Key to Activate Strafing (W)
CANCEL_STRAFE = Input::L # Key to Deactivate Strafing (Q)
end
# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# Character Animation - Breath Effect
# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
module CharacterAnimation
ZOOM_WAIT = 0 # zoom wait time initial
ZOOM_Y_ADD = 0.010 # this is the zoom y (upwards) set up
ZOOM_WAIT = 20 #zooming waiting time
ZOOM_Y_COMPARE = 1.0 #
ZOOM_Y_DEC = 0.005 #decreasing zoom for breathing effect
ZOOM_WAIT_IF_ONE = 60 # if the zoom_y is lesser than 1.0...
ZOOM_EQUAL_TIME = 1.05
BREATH_MOVE = false # do you wish for the character to breath while moving?
end
# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# Dash Speed
# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
module DashSpeed
# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# Variables - Start Editing Here
# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
D_Speed = 20 # Speed of Dashing
Dash_Key = Input::SHIFT # Key for Dashing
StandardSpeed = 4 # Walking Speed
# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# Run is On
# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
def self.run_is_on
$game_system.run_is_allowed = true
end
# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# Run is Off
# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
def self.run_is_off
$game_system.run_is_allowed = false
$game_player.move_speed = DashSpeed::D_Speed
end
# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# Running Method
# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
def self.is_running?
if Input.press?(DashSpeed::Dash_Key)
return true
else
return false
end
end
# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# Run is Off
# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
def self.run_is_off
$game_system.run_is_allowed = false
end
# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# Run is On
# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
def self.run_is_on
$game_system.run_is_allowed = true
end
end
end
Character Speed:# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# SEA - Character Speed
# Author: Soulpout777
# Version 1.0
# Script Type: Character Related
# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# Description: This script changes the actual movement of dashing and walking.
# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# Pre-requisites: Soul_Character_Effects Core Script
# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# All SEA scripts are bound under my terms of use. Please preserve this
# script banner.
# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$imported = {} if $imported.nil?
$imported["Character_Speed"] = true
#==============================================================================
# ** Game_System
#------------------------------------------------------------------------------
# This class handles system data. It saves the disable state of saving and
# menus. Instances of this class are referenced by $game_system.
#==============================================================================
class Game_System
# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
attr_accessor :run_is_allowed
attr_accessor :run_is_on
# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# Alias Listings
# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
alias dash_character_init initialize
# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# Initialize (aliased)
# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
def initialize
@run_is_allowed = true
@run_is_on = true
dash_character_init() #Call Original Method
end
# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
end
#==============================================================================
# ** Game_Character
#------------------------------------------------------------------------------
# A character class with mainly movement route and other such processing
# added. It is used as a super class of Game_Player, Game_Follower,
# GameVehicle, and Game_Event.
#==============================================================================
class Game_Character < Game_CharacterBase
# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
attr_accessor :move_speed
# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
end
#==============================================================================
# ** Scene_Map
#------------------------------------------------------------------------------
# This class performs the map screen processing.
#==============================================================================
class Scene_Map < Scene_Base
# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# Alias Listings
# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
alias dash_upd update
# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# Update Method (aliased)
# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
def update
if $game_system.run_is_allowed
if Input.press?(Soul_Character_Effects::DashSpeed::Dash_Key) && $game_system.run_is_on
$game_player.move_speed = Soul_Character_Effects::DashSpeed::D_Speed
else
$game_player.move_speed = Soul_Character_Effects::DashSpeed::StandardSpeed
end
end
dash_upd()
end
# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
end
Character Shadow:# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# SEA - Upgraded Character Shadow
# Author: SoulPour777
# Version 3
# Category: Sprite / Character Related
# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# Version History:
# Version 1 - First release, buggy and undisposed sprites located.
# Version 2 - Does not support Animated Parallax EX and lags. Used global
# variables instead of placing them in Game System.
# Version 3 - Created variables and accessors from inside Game System for
# better configuration.
# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# Pre-requisites: None
# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# Description: Adds a standard / custom shadow to sprites and your character.
# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# All SEA scripts are bound under my terms of Use. Please preserve this script
# banner.
# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$imported = {} if $imported.nil?
$imported["Character_Shadow"] = true
class Game_System
# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# Variable Handlers in Game System
# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
attr_accessor :custom_sprite_shadow
attr_accessor :player_sprite_shadow
attr_accessor :player_z_level
attr_accessor :jump_pixel_shadow
# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# Alias Listings
# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
alias setup_shadow initialize
# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
def initialize
@custom_sprite_shadow = "" # Custom Shadow Image Name
@player_sprite_shadow = true # Would you like to display a Shadow?
@player_z_level = 1 # Zoom Level of Player's Sprite
@jump_pixel_shadow = 20 # Shadow Zoom Level
setup_shadow # Call Original Method
end
end
# -----------------------------------------------------------------------------#
# Game Character Class
# -----------------------------------------------------------------------------#
class Game_Character
attr_reader :jump_x_plus, :jump_y_plus, :jump_count
alias :soul_jump :jump unless $@
# ----------------------------------
# Jump
# ----------------------------------
def jump(x_plus, y_plus)
@jump_x_plus = x_plus
@jump_y_plus = y_plus
soul_jump(x_plus, y_plus)
end
end
# -----------------------------------------------------------------------------#
# Game Event Class
# -----------------------------------------------------------------------------#
class Game_Event
attr_reader :erased, :event
end
# -----------------------------------------------------------------------------#
# class Soul_Spr_Shadow
# -----------------------------------------------------------------------------#
class Soul_Spr_Shadow < Sprite
def initialize(viewport, event, zoom_level = 1.0)
super(viewport)
@event = event
unless (shadow_name = $game_system.custom_sprite_shadow).empty?
self.bitmap = Bitmap.new("Graphics//Pictures//#{shadow_name}")
else
self.bitmap = Cache.system("Shadow")
end
self.x = @event.screen_x
self.y = @event.screen_y
self.ox = self.bitmap.width / 2
self.oy = self.bitmap.height - self.bitmap.height / 6
self.zoom_x = zoom_level
self.zoom_y = zoom_level
end
def update
# ---------------------------------------------------------------------------- #
# ** if the event is inactive
# ---------------------------------------------------------------------------- #
unless @event == $game_player
if @event.erased or @event.list.nil?
self.visible = false
return
end
end
self.z = @event.screen_z - 1 # ** shadow drawn below the sprite
self.visible = !@event.transparent
self.opacity = @event.opacity
jump_x = @event.jump_x_plus
jump_y = @event.jump_y_plus
screen_y = @event.screen_y
screen_x = @event.screen_x
jump_count = @event.jump_count
if @event.jumping?
# ---------------------------------------------------------------------------- #
# Y Lock
# ---------------------------------------------------------------------------- #
if jump_y == 0
self.x = screen_x
self.y = soul_coords(@event.y)
# ---------------------------------------------------------------------------- #
# ** if the character is jumping straight down.
# ---------------------------------------------------------------------------- #
elsif jump_y > 0 and jump_x == 0
self.x = screen_x
y_offset_per_tile = $game_system.jump_pixel_shadow / 5
if jump_y > 3
self.y = screen_y + y_offset_per_tile * 4
else
self.y = screen_y + jump_y * y_offset_per_tile + 1
end
#==============================================================================
# ** Jump
#------------------------------------------------------------------------------
else
self.x = screen_x
self.y = screen_y
end
#==============================================================================
# ** No Jump
#------------------------------------------------------------------------------
else
self.x = screen_x
self.y = screen_y
end
end
#==============================================================================
# ** Coords
#------------------------------------------------------------------------------
def soul_coords(y)
real_y = y * 256
($game_map.adjust_y(real_y) + 8007) / 8 - 1000 + 32 - 4
end
end
#==============================================================================
# ** Spriteset_Map
#------------------------------------------------------------------------------
# This class brings together map screen sprites, tilemaps, etc. It's used
# within the Scene_Map class.
#==============================================================================
class Spriteset_Map
alias :soul_old_upd :update unless $@
def update
create_Soul_Spr_Shadow_sprites unless @Soul_Spr_Shadow_sprites
soul_old_upd
update_Soul_Spr_Shadows
end
def create_Soul_Spr_Shadow_sprites
shadow_events = $game_map.events.select do |index, game_event|
unless game_event.erased
game_event.event.pages.first.list.first.parameters.first =~ /<soul_shadow(.+?>|>)/
end
end.flatten.select { |x| x.is_a?(Game_Event) }
# ---------------------------------------------------------------------------- #
# Zoom Level
# ---------------------------------------------------------------------------- #
@Soul_Spr_Shadow_sprites = shadow_events.map do |shadow_event|
command = shadow_event.event.pages.first.list.first.parameters.first
match = command.match(/<soul_shadow:(\d+?)>/)
if match
zoom_level = match[1].to_f / 100
else
zoom_level = 1.0
end
Soul_Spr_Shadow.new(@viewport1, shadow_event, zoom_level)
end
# ---------------------------------------------------------------------------- #
# Determine the function of the Shadow is turned On.
# ---------------------------------------------------------------------------- #
if $game_system.player_sprite_shadow
@Soul_Spr_Shadow_sprites << Soul_Spr_Shadow.new(@viewport1, $game_player, $game_system.player_z_level)
end
end
def update_Soul_Spr_Shadows
@Soul_Spr_Shadow_sprites.each do |sprite|
sprite.update
end
end
end
Character Strafe# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# SEA - Character Strafe
# Author: Soulpour777
# Version 1.0
# Category: Character Effects Related
# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# Description: Let's you strafe from a desired position.
# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# Prerequisites: Soul Character Effects Core Script
# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
class Game_Player < Game_Character
# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# Alias Listings
# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
alias character_strafe_move_by_input move_by_input
# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
def move_by_input
if Input.trigger?(Soul_Character_Effects::StrafeKey::STRAFE)
@old_dir_fix = @direction_fix if !@old_dir_fix
@direction_fix = true
elsif @old_dir_fix
@direction_fix = @old_dir_fix
@old_dir_fix = nil
elsif Input.trigger?(Soul_Character_Effects::StrafeKey::CANCEL_STRAFE)
@direction_fix = @old_dir_fix
@old_dir_fix = nil
end
character_strafe_move_by_input
end
end
Breath Script# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# SEA - Breath Effect
# Author: Soulpour777
# Version 1.0
# Category: Character Related
# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# Description: Creates a breathing effect when idle.
# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# Pre-requisites: Soul Character Core Script
# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
class Sprite_Character < Sprite_Base
# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# Alias Listings
# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
alias character_effects_upd update
# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
def update
character_effects_upd #Call Original Method
update_breath
end
# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# update breath effect
# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
def update_breath
if sprite_is_controllable?(@character)
@zoom_wait,b = [(@zoom_wait||0)-1,0].max, Soul_Character_Effects::CharacterAnimation::ZOOM_EQUAL_TIME
if self.zoom_y < b && !@up && @zoom_wait == 0
self.zoom_y += Soul_Character_Effects::CharacterAnimation::ZOOM_Y_ADD
@up, @zoom_wait = true, Soul_Character_Effects::CharacterAnimation::ZOOM_WAIT if self.zoom_y >= b
elsif self.zoom_y >= Soul_Character_Effects::CharacterAnimation::ZOOM_Y_COMPARE && @up && @zoom_wait == 0
self.zoom_y -= Soul_Character_Effects::CharacterAnimation::ZOOM_Y_DEC
@up, @zoom_wait = false,Soul_Character_Effects::CharacterAnimation::ZOOM_WAIT_IF_ONE if self.zoom_y <= Soul_Character_Effects::CharacterAnimation::ZOOM_Y_COMPARE
end
else
self.zoom_y = @character.instance_variable_get(:@zoom_y) || 1
end
end
# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# Sprite Controllable?
# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
def sprite_is_controllable?(character)
return false if $game_map.interpreter.running?
return false if character.move_route_forcing
return Soul_Character_Effects::CharacterAnimation::BREATH_MOVE if character.moving?
return false if character.transparent
return false if !character.is_a?(Game_Player)
return true
end
end
Credit
Thanks
- LittleDrago - original idea for the breath effect
- Xzygon - for the original idea of the strafe
Support
If there are any questions, comments, suggestions or anything about the script, please don't hesitate to comment or PM me here at RMRK. I will answer immediately as soon as I read your message.
Known Compatibility Issues
- Breathing Effect: Only for one player games and suitable for ABSes, such as XAS Hero Edition Ace or SAS4.
Demo
Demo Link Here:
https://dl.dropboxusercontent.com/u/36246420/Soul%20Engine%20Ace/DEMOS/SEA%20-%20Character%20Effects.exeAuthor's Notes
Please do note that my breath as of the moment only supports one character. It is mostly used for games that only uses one character or that, for ABSes such as XAS or Sapphire Action System IV.
Terms of Use
All SEA scripts are bound under my terms of use. If any terms of use from RMRK are present and does not contradict any of my terms or is not on my terms, please do add those.