#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
# Tons of Add-ons by Blizzard
# Version: 6.02b
# Type: Add-on Collection Control Script
# Date v1.00b: 14.11.2006
# Date v1.10b: 17.11.2006
# Date v1.60b: 4.12.2006
# Date v1.62b: 6.12.2006
# Date v1.70b: 13.12.2006
# Date v1.87b: 12.01.2007
# Date v2.20b: 16.01.2007
# Date v2.30b: 22.01.2007
# Date v2.31b: 24.01.2007
# Date v2.40b: 1.02.2007
# Date v2.50b: 4.02.2007
# Date v2.70b: 7.02.2007
# Date v2.71b: 12.02.2007
# Date v2.80b: 17.02.2007
# Date v3.70b: 19.02.2007
# Date v3.71b: 23.02.2007
# Date v3.80b: 7.03.2007
# Date v4.00b: 7.03.2007
# Date v4.01b: 9.03.2007
# Date v4.02b: 11.03.2007
# Date v4.30b: 12.03.2007
# Date v4.32b: 18.03.2007
# Date v4.50b: 24.03.2007
# Date v4.70b: 30.04.2007
# Date v4.80b: 4.05.2007
# Date v4.81b: 8.05.2007
# Date v4.85b: 7.07.2007
# Date v4.86b: 8.08.2007
# Date v4.90b: 12.07.2007
# Date v4.91b: 14.07.2007
# Date v4.97b: 31.07.2007
# Date v4.98b: 7.08.2007
# Date v5.40b: 20.10.2007
# Date v5.80b: 22.10.2007
# Date v5.81b: 23.10.2007
# Date v5.83b: 25.10.2007
# Date v5.90b: 28.10.2007
# Date v5.91b: 5.11.2007
# Date v5.98b: 13.11.2007
# Date v5.99b: 19.11.2007
# Date v6.00b: 7.12.2007
# Date v6.02b: 10.12.2007
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
#
# VERY IMPORTANT NOTE:
#
# For any new add-on the version will increase by 0.1, for any update of the
# collection or any update on an add-on the version will increase by 0.01.
# Also from v3.71b on there is a recognition global variable available which
# will make the Tons of Add-ons much more compatible with many of my scripts.
# I noticed serious issues with several of my older scripts.
#
#
# Important note:
#
# All Add-ons are initially turned off in any later version than 1.87b!
# Multi-Drop is
# Also note that "Full Reflection System" is BELOW HP/SP Absorbtion, because
# of incompatibility issues.
#
#
# Compatibility:
#
# 80% compatible with SDK v1.x. 40% compatible with SDK v2.x. Some add-ons
# will corrupt your old savegames. If you experience the "Stack level too
# deep" error, you might already use one of these add-ons. All of these
# add-ons here work with each other with a success rate of 99%. This add-on
# collection itself WILL corrupt your old savegames. May cause
# incompatibility issues with following systems:
#
# - exotic CBS-ex
# - exotic CMS-es
# - skill learning systems
# - exotic graphic systems on the map
# - weapon/armor changing systems
#
# This add-on collection is semantically compatible with RTAB v1.16 with all
# Plugins, though, several add-ons will not work:
#
# - Center Battler - will cause a crash (it's rather useless in Side-View
# RTAB anyway)
# - Lagless HUD - will cause a crash at the end of the map scene due to
# the immeasurable stupidity of the SDK (aka automatic
# disposal)
# - Map as Battleback - will cause a crash at the end of the battle due to
# the immeasurable stupidity of the SDK (aka automatic
# disposal)
# - Multi-Hit - will not react at all if RTAB is being used due to
# the heavy changes in the methods supported by the DBS
# - Charge Skill - the countdown will be executed instantly and the
# skill will be executed right away
#
# It is possible that more add-ons don't work, but it is very unlikely.
#
#
# Featured add-ons so far:
#
# 57 add-ons by Blizzard
# + 1 add-on by Zan
# + 1 add-on by Fantasist
# + 1 add-on by NAMKCOR
# = 60 add-ons altogether
#
# Ideas:
#
# - Blizzard
# - GuardianAngelX72
# - BanisherOfEden
# - italianstal1ion
# - indinera
# - Yami
# - blazinhandle
# - Arrow-1
# - Dark Angel Sion
# - Zan
# - shahafyz57
# - Echo
# - Cid
# - Fantasist
# - Ceaon
# - NAMKCOR
#
#
# Features:
#
# ----> Graphic (make your game look nice):
# - Better Tilemap update (will update autotiles faster)
# - Animated Title (have an animated title screen without .gifs)
# - Center Battler (they will be centered instead of lined next to each other)
# - HP/SP/EXP gradient/slant bars (including 7 styles, opacity and least lag)
# - Location Names (shows pictures or names of the location the player visits)
# - Black Fade (shows a black screen when changing the map or before battle)
# - Simple Shaded Text (draws a shadow behind your text)
# - Blizz-Art lagless HUD (Heads Up Display using either HP/SP/EXP or simple)
# - Screen Tremble (makes your screen shake vertically, too)
# - Animation Stack (shows animation of all inflicted status effects)
# - Simple Facesets (shows a face instead of the spriteset in the main menu)
# - Caterpillar (party members follow you on the map)
# - Arrow over Player (shows arrow over player's head if he's "behind")
# - Animated Battle Background (animates battle backgrounds)
# - Map as Battleback (map is the battle backgrounds)
# - Facesets for DSS (shows a face instead of the spriteset in the status menu)
# - Status Effects as Icons (displays status effects as icons)
# - Animated Battlers Non-Action BS (animates battlers in battle systems)
# - Enhanced Battle Cursor (plays animations upon cursors in battle)
#
# ----> Utility (make your game more unique and better/help you during debug):
# - Custom Game Controls (set up your own game controls)
# - FPS Modulator (increase the fps rate up 3 times like in an emulator)
# - Speed Modulator (change the main character's speed on the map)
# - Fullscreen? (asks the player at game start if he wishes to switch to full)
# - Death Toll (counts killed enemies and actor deaths)
# - Multi-Drop (makes enemies drop more than just one item)
# - Window_BattleResult (displays gained items in a different, but better way)
# - Unique Skill Commands (different name for the Skill command for each class)
# - Ultimate Font Override (will override the font from any RMXP version)
# - Heal at LvlUp (heals characters who level up)
# - Weapon/Armor HP/SP Plus (max HP and max SP can also be increased)
# - EQUAP Skills (equipment skills, equip to learn + AP system like FF9)
# - Picture Movie Scene (easily create picture based cutscenes)
# - Target 'em all! (make skills target all battlers)
# - Quick Passability Test (let's you debug maps faster and more convenient)
# - Dynamic Passability Minimap (never was a minimap so easy to use)
# - Enemy Status in Battle (displays enemies' HP, SP and state)
# - Different Difficulties (like "Easy", "Normal", "Hard")
# - Skill Separation System (like "White Magic", "Black Magic", "Technic", etc.)
# - Multi-Hit (make weapons/skills/enemies hit more than once)
# - Scene_Item calling Items (make items call special item scenes)
# - Plug-in Save Point (create your own save point system within minutes)
# - Equipment Requirement System (Diablo II style requirements)
# - Item Requirement for Skills (skills require and consume items upon use)
#
# ----> Status Effect (non-standard status effects):
# - Zombie (Healing items will hurt and light attacks are effective)
# - Regen (progressive healing aka poison, but the other way)
# - Auto-Revive (or Auto-Life, will be automatically revived after dieing)
# - Fury Status (if a specific character dies, another one will become Fury)
# - Invincible Status (this status will nullify ANY DAMAGE done by enemies)
# - SP Cost Mod (this status will change SP cost to percentages or fixed values)
# - Frozen (dies instantly if getting damaged)
#
# ----> Skill (non-standard skills):
# - Absorb HP/SP (with considering undead enemies)
# - Death Roulette (kills a random target)
# - Blue Magic Skill (can learn enemy's skills)
# - EMP Skill (paralyze machine enemies)
# - Demi Skill (deals damage equal to a percentage of the remaining HP)
# - Doom Skill (countdown to death)
# - Revenge Skill (does damage equal to MAX_HP - CURRENT_HP)
# - Destructor Skill (kills self to achieve various effects)
# - SP Damage Skill (skills that damage / heal SP instead of HP)
# - Charge Skill (skills that count down before usage)
#
#
# Version history:
#
# v1.10b:
# -> added Black Fade by Blizzard
#
# v1.60b:
# -> added Ultimate Font Override by Blizzard
# -> added Simple Shaded Text by Blizzard
# -> added Heal at LvlUp by Blizzard
# -> added Fury Status by Blizzard
# -> added Invincible Status by Blizzard
#
# v1.62b:
# -> upgraded Death Toll by Blizzard to v1.2b
#
# v1.70b:
# -> added Half SP by Blizzard
#
# v1.87b:
# -> added Blizz-Art lagless HUD by Blizzard
# -> upgraded Animated Title by Blizzard to v1.33b
# -> upgraded Centered Battlers by Blizzard to v2.1b
# -> upgraded HP/SP/EXP bars by Blizzard to v4.11b
# -> upgraded Speed Modulator by Blizzard to v1.01b
# -> upgraded Regen Status Effect by Blizzard to v1.1b
# -> upgraded Auto-Revive by Blizzard to v1.21b
# -> updated FPS Modulator by Blizzard
#
# v2.20b:
# -> added Weapon/Armor HP/SP Plus by Blizzard
# -> added Full Reflection System by Blizzard
# -> added EQ Skills by Blizzard
# -> added Picture Movie Scene by Blizzard
#
# v2.30b:
# -> added Screen Tremble by Blizzard
#
# v2.31b:
# -> updated Screen Tremble by Blizzard
# -> updated Better Tilemap update by Blizzard
#
# v2.40b:
# -> added Animation Stack by Blizzard
# -> upgraded Picture Movie Scene by Blizzard to v2.02b
# -> updated Screen Tremble by Blizzard
#
# v2.50b:
# -> added Target 'em all! by Blizzard
# -> upgraded Unique Skill Commands by Blizzard to v1.11b
#
# v2.70b:
# -> added Quick Passability Test by Blizzard
# -> added Dynamic Passability Minimap by Blizzard
# -> upgraded Picture Movie Scene by Blizzard to v2.03b
#
# v2.71b:
# -> upgraded Dynamic Passability Minimap by Blizzard to v1.01b
#
# v2.80b:
# -> added Enemy Status in Battle by Blizzard
#
# v3.70b:
# -> added Simple Facesets by Blizzard
# -> changed EQ Skills by Blizzard to EQUAP Skills and upgraded to v3.0b
# -> upgraded Unique Skill Commands by Blizzard to v1.2b
# -> updated Center Battler by Blizzard
# -> updated Weapon/Armor HP/SP Plus by Blizzard
# -> added constant for recognition by other scripts to improve compatibility
# -> Why suddenly v3.7b? 37 add-ons are featured so far!
#
# v3.71b:
# -> upgraded Simple Facesets by Blizzard to v1.01b
# -> fixed a problem with the compatibility recognition
#
# v3.80b:
# -> added Caterpillar by Blizzard
#
# v4.00b:
# -> added Arrow over Player by Blizzard
# -> added EMP Skill by Blizzard
# -> upgraded Caterpillar by Blizzard to v1.01b
# -> upgraded EQUAP Skills by Blizzard to v3.02b
#
# v4.01b:
# -> upgraded Black Fade by Blizzard to v1.1b
#
# v4.02b:
# -> upgraded Window_BattleResult by Blizzard to v1.1b
#
# v4.30b:
# -> added Animated Battle Background by Blizzard
# -> added Map as Battleback by Blizzard
# -> added 1 SP by Blizzard
# -> upgraded HP/SP/EXP gradient/slant bars by Blizzard to v4.2b
# -> upgraded Blizz-Art lagless HUD by Blizzard to v1.2b
# -> upgraded Weapon/Armor HP/SP Plus by Blizzard to v1.01b
# -> upgraded Full Reflection System by Blizzard to v2.0b
# -> upgraded EMP Skill by Blizzard to v1.01b
#
# v4.32b:
# -> upgraded Zombie Status Effect by Blizzard to v1.1b
# -> updated Arrow over Player by Blizzard
#
# v4.50b:
# -> added Different Difficulties by Blizzard
# -> added Skill Separation System by Blizzard
# -> upgraded Half SP by Blizzard to v1.4b
# -> upgraded 1 SP by Blizzard to v1.1b
# -> updated Center Battler by Blizzard
# -> updated Blizz-Art lagless HUD by Blizzard
# -> updated Death Roulette by Blizzard
# -> updated EMP Skill by Blizzard
#
# v4.70b:
# -> added Facesets for DSS by Zan
# -> added Status Effects as Icons for DSS by Blizzard
# -> now compatible with Blizz-ABS 1.0.0.1 and higher
#
# v4.80b:
# -> added Animated Battlers for DBS by Blizzard
# -> fixed the HUD lag problem with Blizz-ABS 1.0.0.1 and higher
#
# v4.81b:
# -> updated Skill Separation System by Blizzard
#
# v4.85b:
# -> upgraded Weapon/Armor HP/SP Plus by Blizzard to v2.0
# -> upgraded Location Names by Blizzard to v2.1b
# -> upgraded Blizz-Art lagless HUD by Blizzard to v1.3b
# -> improved overall coding of Tons of Add-ons and fixed incompatibility bugs
#
# v4.86b:
# -> upgraded Fullscreen? by Blizzard to v1.22b
#
# v4.9b:
# -> added Demi Skill by Blizzard
#
# v4.91b:
# -> upgraded HP/SP/EXP gradient/slant bars by Blizzard to v4.4b
#
# v4.97b:
# -> due to a bug Ultimate Font Override can't be turned on/off ingame now
# -> upgraded Location Names by Blizzard to v2.11b
# -> upgraded Arrow over Player by Blizzard to v1.01b
# -> upgraded Weapon/Armor HP/SP Plus by Blizzard to v2.0b
# -> upgraded Death Toll by Blizzard to v1.3b
# -> updated ABSEAL by Blizzard
#
# v4.98b:
# -> upgraded Caterpillar by Blizzard to v2.0
#
# v5.40b:
# -> added Multi-Hit by Blizzard
# -> added Scene_Item calling Items by Blizzard
# -> added Custom Game Controls by Blizzard
# -> added Plug-in Save Point by Blizzard
# -> added Frozen Status Effect by Blizzard
# -> added Doom Skill by Blizzard
# -> upgraded Caterpillar by Blizzard to v2.0b
# -> upgraded Animated Battle Background by Blizzard to v1.1b
# -> upgraded Map as Battleback by Blizzard to v1.5b
# -> upgraded Unique Skill Commands by Blizzard to 1.3b
# -> upgraded 1 SP by Blizzard to v1.11b
# -> upgraded Absorbing HP/SP by Blizzard to v1.72b
# -> upgraded Animated Battlers for Non-Action BS by Blizzard to v1.3b
# -> removed Blizz-ASBEAL for convenience, now available separately
# -> rewritten conditions using classic syntax to avoid RGSS conditioning bug
# -> now compatible with RTAB v1.16 + Plug-ins
#
# v5.80b:
# -> added Revenge Skill by Blizzard
# -> added Destructor Skill by Blizzard
# -> added SP Damage Skill by Blizzard
# -> added Enhanced Battle Cursor by Fantasist
# -> upgraded Regen Status by Blizzard to v2.0
#
# v5.81b:
# -> upgraded HP/SP/EXP gradient/slant bars by Blizzard to v4.41b
#
# v5.83b:
# -> upgraded HP/SP/EXP gradient/slant bars by Blizzard to v4.5b
# -> upgraded Location Names by Blizzard to v2.12b
# -> commented code down to Blizz-Art lagless HUD
#
# v5.90b:
# -> added Equipment Requirement System by NAMKCOR
# -> upgraded Doom Skill by Blizzard to v1.0b
# -> upgraded Destructor Skill by Blizzard to v1.0b
# -> upgraded Enhanced Battle Cursor by Fantasist to v2.1 beta
#
# v5.91b:
# -> upgraded Location Names by Blizzard to v2.13b
#
# v5.98b:
# -> added SP Cost Mod Status Effect by Blizzard
# -> added Multi-Drop by Blizzard
# -> upgraded Window_BattleResult by Blizzard to 1.2b
# -> upgraded Status Effects as Icons by Blizzard to 1.0b
# -> upgraded Zombie Status by Blizzard to 1.2b
# -> upgraded Regen Status by Blizzard to 2.0b
# -> upgraded Auto-Revive Status by Blizzard to 1.22b
# -> upgraded Invincible Status by Blizzard to 2.0b
# -> upgraded Frozen Status by Blizzard to 1.0b
# -> removed Half SP by Blizzard
# -> removed 1 SP by Blizzard
# -> removed Full Reflection System by Blizzard
# -> updated all skill add-ons to work without Reflect
# -> THIS VERSION HAS ONLY 58 ADD-ONS!
#
# v5.99b:
# -> upgraded Auto-Revive Status by Blizzard to 1.23b
# -> updated Frozen Status by Blizzard
# -> THIS VERSION HAS ONLY 58 ADD-ONS!
#
# v6.00b:
# -> added Item Requirement for Skills by Blizzard
# -> added Charge Skill by Blizzard
# -> upgraded Skill Separation System by Blizzard to 1.1b
# -> updated SP Cost Mod Status Effect by Blizzard
# -> updated Revenge Skill by Blizzard
#
# v6.02b:
# -> upgraded Target 'em all! by Blizzard to 1.1b
# -> upgraded Auto-Revive by Blizzard to 1.24b
# -> updated Charge Skill by Blizzard
#
#
# Instructions:
#
# - Explanation:
#
# Every Add-on has its own instructions. Please read and follow them.
#
# - Configuration:
#
# Configure the part just below to define which add-ons you want to use and
# which not. The configuration is split into two part for reason, don't
# change this. It will work fine if you leave it as it is.
#
# - For scripters:
#
# If you have any ideas how to improve this collection, just say so. I will
# add you into the credits of this add-on collection if you have an own
# add-on. I will not add any add-ons made by somebody else than yourself, you
# can't ask me for somebody else to add an add-on. The creator has to ask me
# himself.
#
#
# Side note:
#
# These add-ons were mostly tested in a different enviroment or not at all.
#
#
# Useless facts:
#
# - Tons of Add-ons already exceeds many CMS-es and even several CBS-es in
# number of lines of code.
# - The version history of Tons of Add-ons has more lines than several
# add-ons themselves in Tons of Add-ons.
# - Chaos Project uses only about 60% of the Tons of Add-ons.
# - A good code is a short code that does what it is supposed to, not the
# "Microsoft" way where you have many actually redundant lines of code.
# Simple, short and straight, nothing more than necessary, that's what
# makes codes efficient!
# - Russian Reversal on Croatian Blizzards:
# "In Russia Blizzard makes his scripts SDK compatible with YOU!"
#
#
# If you find any bugs, please report them here:
# http://www.chaosproject.co.nr
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
$tons_version = 6.02
#:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::#
# #
# ### ### # # ##### # #### # # #### ### ##### # ### # # #
# # # # # ## # # # # # # # # # # # # # # ## # #
# # # # # # # #### # # ## # # #### # # # # # # # # # #
# # # # # # ## # # # # # # # # ##### # # # # # ## #
# ### ### # # # # #### ### # # # # # # ### # # #
# #
#:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::#
$DUMMY_ELEMENTS = [] # add any dummy element IDs other scripts might use
$DUMMY_STATES = [] # add any dummy state IDs other scripts might use
module TONS_OF_ADDONS
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
# START Configuration 1
#
# You can enable/disable any add-on here if you wish. Set the value to false
# to disable it. These features CANNOT be turned on/off during the game.
#
# NAME_OF_THE_ADDON = true
# NAME_OF_THE_ADDON = false
#
# where NAME_OF_THE_ADDON is the same variable as the one used below.
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
# the graphic add-ons
ANIMATED_TITLE = false
# the utility add-ons
CUSTOM_CONTROLS = false
FULLSCREEN = false
MULTI_DROP = false
ULTIMATE_FONT_OVERRIDE = false
EQUAP_SKILLS = false
DIFFICULTY = false
ITEMCALL = false
SAVEPOINT = false
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
# END Configuration 1
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
end
#==============================================================================
# Game_System
#==============================================================================
class Game_System
alias init_tons_of_addons_later initialize
def initialize
init_tons_of_addons_later
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
# START Configuration 2
#
# You can enable/disable any add-on here if you wish. Set the value to false
# to disable it initially. To turn it on/off ingame, just use the Call script
# command with one of these syntaxes:
#
# $game_system.NAME_OF_THE_ADDON = true
# $game_system.NAME_OF_THE_ADDON = false
#
# where NAME_OF_THE_ADDON is the same variable as the one used below.
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
# the GRAPHIC add-ons
@BETTER_TILEMAP_UPDATE = false
@CENTER_BATTLER = false
@BARS = false
@LOCATION_NAMES = false
@BLACKFADE = false
@SHADED_TEXT = false
@HUD = false
@TREMBLE = false
@ANIMATION_STACK = false
@FACESETS = false
@CATERPILLAR = true
@ARROW_OVER_PLAYER = false
@ANIMATED_BATTLE_BACKGROUND = false
@MAP_AS_BATTLEBACK = false
@FACESETS_DSS = false
@STATUS_ICONS = false
@ANIMATED_BATTLERS_NON_ACTION_BS = false
@BATTLE_CURSORS = false
# the UTILITY add-ons
@FPS_MODULATOR = false
@SPEED_MODULATOR = false
@DEATH_TOLL = false
@WINDOW_BATTLERESULT = false
@UNIQUE_SKILL_COMMANDS = false
@HEAL_AT_LVLUP = false
@HPSPPLUS = false
@TARGET_EM_ALL = false
@QUICK_PASSABILITY_TEST = false
@MINIMAP = false
@ENEMY_STATUS = false
@SKILL_SEPARATION = false
@MULTI_HIT = false
@EQUIPMENT_REQUIREMENT_SYSTEM = false
@ITEM_REQUIREMENT = false
# the STATUS EFFECT add-ons
@ZOMBIE_STATUS = false
@REGEN_STATUS = true
@AUTO_REVIVE = true#false
@FURY_STATUS = false
@INVINCIBLE_STATUS = false
@SP_COST_MOD = false
@FROZEN = false
# the SKILL add-ons
@ABSORB_HP_SP = false
@DEATH_ROULETTE = false
@BLUE_MAGIC_SKILL = false
@EMP_SKILL = false
@DEMI_SKILL = false
@DOOM_SKILL = false
@REVENGE_SKILL = false
@DESTRUCTOR_SKILL = false
@SP_DAMAGE_SKILL = false
@CHARGE_SKILL = false
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
# END Configuration 2
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
end
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
# I suggest you don't edit anything below this line except for the
# configurations for the add-ons.
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
attr_accessor :BETTER_TILEMAP_UPDATE
attr_accessor :CENTER_BATTLER
attr_accessor :BARS
attr_accessor :LOCATION_NAMES
attr_accessor :BLACKFADE
attr_accessor :SHADED_TEXT
attr_accessor :HUD
attr_accessor :TREMBLE
attr_accessor :ANIMATION_STACK
attr_accessor :FACESETS
attr_accessor :CATERPILLAR
attr_accessor :ARROW_OVER_PLAYER
attr_accessor :ANIMATED_BATTLE_BACKGROUND
attr_accessor :MAP_AS_BATTLEBACK
attr_accessor :FACESETS_DSS
attr_accessor :STATUS_ICONS
attr_accessor :ANIMATED_BATTLERS_NON_ACTION_BS
attr_accessor :BATTLE_CURSORS
attr_accessor :FPS_MODULATOR
attr_accessor :SPEED_MODULATOR
attr_accessor :DEATH_TOLL
attr_accessor :WINDOW_BATTLERESULT
attr_accessor :UNIQUE_SKILL_COMMANDS
attr_accessor :HEAL_AT_LVLUP
attr_accessor :HPSPPLUS
attr_accessor :TARGET_EM_ALL
attr_accessor :QUICK_PASSABILITY_TEST
attr_accessor :MINIMAP
attr_accessor :ENEMY_STATUS
attr_accessor :SKILL_SEPARATION
attr_accessor :MULTI_HIT
attr_accessor :EQUIPMENT_REQUIREMENT_SYSTEM
attr_accessor :ITEM_REQUIREMENT
attr_accessor :ZOMBIE_STATUS
attr_accessor :REGEN_STATUS
attr_accessor :AUTO_REVIVE
attr_accessor :FURY_STATUS
attr_accessor :INVINCIBLE_STATUS
attr_accessor :SP_COST_MOD
attr_accessor :FROZEN
attr_accessor :ABSORB_HP_SP
attr_accessor :DEATH_ROULETTE
attr_accessor :BLUE_MAGIC_SKILL
attr_accessor :EMP_SKILL
attr_accessor :DEMI_SKILL
attr_accessor :DOOM_SKILL
attr_accessor :REVENGE_SKILL
attr_accessor :DESTRUCTOR_SKILL
attr_accessor :SP_DAMAGE_SKILL
attr_accessor :CHARGE_SKILL
end
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
# Caterpillar by Blizzard
# Version: 2.0b
# Type: Game Experience Improvement
# Date: 7.3.2007
# Date v1.01b: 7.3.2007
# Date v2.0: 7.8.2007
# Date v2.0b: 8.8.2007
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
#
# new in v1.01b:
# - now events can't go through your party members anymore
#
# new in v2.0:
# - completely overworked and improved
#
# new in v2.0b:
# - improved coding and made it work more convenient
# - fixed a few glitches
# - added DEAD_DISPLAY option
# - removed stop animation override upon the player character
#
#
# Compatibility:
#
# 93% compatible with SDK v1.x. 60% compatible with SDK v2.x. You might
# experience problems with pixel movement scripts or map graphic manipulating
# scripts. Blizz-ABS disables this add-on automatically and uses the
# Blizz-ABS Caterpillar system.
#
#
# Features:
#
# - your party members follow you on the map
# - less code than other caterpillar scripts
# - use $game_player.update_buffer('reset') if you need all party members to
# gather around the player
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
# START Configuration
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
# max number of party members
MAX_PARTY = 4
# actor IDs where the actor is animated even when not walking
ANIMATED_IDS = []
# 0 - shows all characters; 1 - shows "ghosts"; 2 - removes from caterpillar
DEAD_DISPLAY = 0
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
# END Configuration
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
#==============================================================================
# Game_Character
#==============================================================================
class Game_Character
alias passable_caterpillar_later? passable?
def passable?(x, y, d)
result = passable_caterpillar_later?(x, y, d)
return result if $BlizzABS && BlizzABS::Static::VERSION >= 1.001
return result if self.is_a?(Game_Player) || self.is_a?(Game_Member)
new_x = x + (d == 6 ? 1 : d == 4 ? -1 : 0)
new_y = y + (d == 2 ? 1 : d == 8 ? -1 : 0)
unless @through
$game_player.members.each {|member|
if member.character_name != '' && member.x == new_x && member.y == new_y
return false
end}
end
return result
end
end
#==============================================================================
# Game_Player
#==============================================================================
class Game_Player < Game_Character
attr_reader :members
attr_reader :move_speed
alias init_caterpillar_later initialize
def initialize
init_caterpillar_later
@members = []
(1...MAX_PARTY).each {|i| @members.push(Game_Member.new(i))}
end
alias upd_caterpillar_later update
def update
upd_caterpillar_later
refresh if DEAD_DISPLAY > 0
@members.each {|member| member.update}
@step_anime = true if ANIMATED_IDS.include?(actor.id)
end
alias straighten_caterpillar_later straighten
def straighten
straighten_caterpillar_later
@members.each {|member| member.straighten}
end
alias refresh_caterpillar refresh
def refresh
act = $game_party.actors[0]
$game_party.actors[0] = actor
refresh_caterpillar
$game_party.actors[0] = act
if actor.dead? && DEAD_DISPLAY == 1
@opacity = Graphics.frame_count % 2 * 255
@blend_type = 1
end
end
def actor
if DEAD_DISPLAY > 0
$game_party.actors.each {|actor| return actor unless actor.dead?}
end
return $game_party.actors[0]
end
def update_buffer(next_move)
if next_move == nil
@members.each {|member| member.buffer = []}
else
@members.each {|member| member.update_buffer(
next_move == 'reset' ? nil : next_move)}
end
end
alias move_down_caterpillar_later move_down
def move_down(turn_enabled = true)
update_buffer(2) if passable?(@x, @y, 2)
move_down_caterpillar_later
end
alias move_left_caterpillar_later move_left
def move_left(turn_enabled = true)
update_buffer(4) if passable?(@x, @y, 4)
move_left_caterpillar_later
end
alias move_right_caterpillar_later move_right
def move_right(turn_enabled = true)
update_buffer(6) if passable?(@x, @y, 6)
move_right_caterpillar_later
end
alias move_up_caterpillar_later move_up
def move_up(turn_enabled = true)
update_buffer(8) if passable?(@x, @y, 8)
move_up_caterpillar_later
end
alias move_lower_left_caterpillar_later move_lower_left
def move_lower_left
if passable?(@x, @y, 2) && passable?(@x, @y + 1, 4) ||
passable?(@x, @y, 4) && passable?(@x - 1, @y, 2)
update_buffer(1)
end
move_lower_left_caterpillar_later
end
alias move_lower_right_caterpillar_later move_lower_right
def move_lower_right
if passable?(@x, @y, 2) && passable?(@x, @y + 1, 6) ||
passable?(@x, @y, 6) && passable?(@x + 1, @y, 2)
update_buffer(3)
end
move_lower_right_caterpillar_later
end
alias move_upper_left_caterpillar_later move_upper_left
def move_upper_left
if passable?(@x, @y, 8) && passable?(@x, @y - 1, 4) ||
passable?(@x, @y, 4) && passable?(@x - 1, @y, 8)
update_buffer(7)
end
move_upper_left_caterpillar_later
end
alias move_upper_right_caterpillar_later move_upper_right
def move_upper_right
if passable?(@x, @y, 8) && passable?(@x, @y - 1, 6) ||
passable?(@x, @y, 6) && passable?(@x + 1, @y, 8)
update_buffer(9)
end
move_upper_right_caterpillar_later
end
alias jump_caterpillar_later jump
def jump(x_plus, y_plus)
if (x_plus != 0 || y_plus != 0) && passable?(@x + x_plus, @y + y_plus, 0)
update_buffer([x_plus, y_plus])
end
jump_caterpillar_later(x_plus, y_plus)
end
alias moveto_caterpillar moveto
def moveto(x, y)
update_buffer(nil)
moveto_caterpillar(x, y)
@members.each {|member|
member.moveto(x, y)
case @direction
when 2 then member.turn_down
when 4 then member.turn_left
when 6 then member.turn_right
when 8 then member.turn_up
end}
end
end
#==============================================================================
# Game_Member
#==============================================================================
class Game_Member < Game_Character
attr_accessor :buffer
def initialize(index)
super()
@index, @force_movement, @buffer, @through = index, 0, [], true
end
def refresh
unless $game_system.CATERPILLAR && actor != nil
@character_name, @character_hue = '', 0
return
end
@character_name = actor.character_name
@character_hue = actor.character_hue
if actor.dead? && DEAD_DISPLAY == 1
@opacity, @blend_type = Graphics.frame_count % 2 * 255, 1
else
@opacity, @blend_type = 255, 0
end
end
def actor
case DEAD_DISPLAY
when 0
return $game_party.actors[@index]
when 1
alive = 0
$game_party.actors.each {|actor| alive += 1 unless actor.dead?}
if @index >= alive
ind = @index - alive
$game_party.actors.each_index {|i|
ind -= 1 if $game_party.actors[i].dead?
return $game_party.actors[i] if ind < 0}
else
ind = @index
$game_party.actors.each_index {|i|
ind -= 1 unless $game_party.actors[i].dead?
return $game_party.actors[i] if ind < 0}
end
when 2
ind = @index
$game_party.actors.each_index {|i|
ind -= 1 unless $game_party.actors[i].dead?
return $game_party.actors[i] if ind < 0}
end
return nil
end
def update
refresh
@transparent = $game_player.transparent
@move_speed = $game_player.move_speed
unless moving? || @buffer.size <= @index && @force_movement <= 0
if @buffer.size > 0
move = @buffer.shift
if move.is_a?(Array)
jump(move[0], move[1])
else
case move
when 1 then move_lower_left
when 2 then move_down(true)
when 3 then move_lower_right
when 4 then move_left(true)
when 6 then move_right(true)
when 7 then move_upper_left
when 8 then move_up(true)
when 9 then move_upper_right
end
end
@force_movement -= 1 if @force_movement > 0
end
end
super
@step_anime = (ANIMATED_IDS.include?($game_party.actors[@index].id))
end
def update_buffer(next_move)
if next_move == nil
@force_movement = @buffer.size
else
@buffer.push(next_move)
@force_movement = @buffer.size if next_move.is_a?(Array)
end
end
def check_event_trigger_touch(x, y) # don't remove this, it's necessary...
end
def screen_z(height = 0)
return (super - @index)
end
end
#==============================================================================
# Spriteset_Map
#==============================================================================
class Spriteset_Map
alias init_caterpillar_later initialize
def initialize
init_caterpillar_later
return if $BlizzABS && BlizzABS::VERSION >= 1.001
$game_player.members.each {|member|
sprite = Sprite_Character.new(@viewport1, member)
sprite.update
@character_sprites.push(sprite)}
end
end
#==============================================================================
# Scene_Map
#==============================================================================
class Scene_Map
alias transfer_player_caterpillar_later transfer_player
def transfer_player
transfer_player_caterpillar_later
return if $BlizzABS
case $game_temp.player_new_direction
when 2 then $game_player.members.each {|member| member.turn_down}
when 4 then $game_player.members.each {|member| member.turn_left}
when 6 then $game_player.members.each {|member| member.turn_right}
when 8 then $game_player.members.each {|member| member.turn_up}
end
end
end