//=============================================================================
// VisuStella MZ - Battle Core
// VisuMZ_1_BattleCore.js
//=============================================================================

var Imported = Imported || {};
Imported.VisuMZ_1_BattleCore = true;

var VisuMZ = VisuMZ || {};
VisuMZ.BattleCore = VisuMZ.BattleCore || {};
VisuMZ.BattleCore.version = 1.90;

//=============================================================================
 /*:
 * @target MZ
 * @plugindesc [RPG Maker MZ] [Tier 1] [Version 1.90] [BattleCore]
 * @author VisuStella
 * @url http://www.yanfly.moe/wiki/Battle_Core_VisuStella_MZ
 * @orderAfter VisuMZ_0_CoreEngine
 *
 * @help
 * ============================================================================
 * Introduction
 * ============================================================================
 *
 * The Battle Core plugin revamps the battle engine provided by RPG Maker MZ to
 * become more flexible, streamlined, and support a variety of features. The
 * updated battle engine allows for custom Action Sequences, battle layout
 * styles, and a lot of control over the battle mechanics, too.
 *
 * Features include all (but not limited to) the following:
 * 
 * * Action Sequence Plugin Commands to give you full control over what happens
 *   during the course of a skill or item.
 * * Animated Sideview Battler support for enemies!
 * * Auto Battle options for party-wide and actor-only instances.
 * * Base Troop Events to quickly streamline events for all Troop events.
 * * Battle Command control to let you change which commands appear for actors.
 * * Battle Layout styles to change the way the battle scene looks.
 * * Casting animation support for skills.
 * * Critical Hit control over the success rate formula and damage multipliers.
 * * Custom target scopes added for skills and items.
 * * Damage formula control, including Damage Styles.
 * * Damage caps, both hard caps and soft caps.
 * * Damage traits such Armor Penetration/Reduction to bypass defenses.
 * * Elements & Status Menu Core support for traits.
 * * Multitude of JavaScript notetags and global Plugin Parameters to let you
 *   make a variety of effects across various instances during battle.
 * * Party Command window can be skipped/disabled entirely.
 * * Weather effects now show in battle.
 * * Streamlined Battle Log to remove redundant information and improve the
 *   flow of battle.
 * * Visual HP Gauges can be displayed above the heads of actors and/or enemies
 *   with a possible requirement for enemies to be defeated at least once first
 *   in order for them to show.
 *
 * ============================================================================
 * Requirements
 * ============================================================================
 *
 * This plugin is made for RPG Maker MZ. This will not work in other iterations
 * of RPG Maker.
 *
 * ------ Tier 1 ------
 *
 * This plugin is a Tier 1 plugin. Place it under other plugins of lower tier
 * value on your Plugin Manager list (ie: 0, 1, 2, 3, 4, 5). This is to ensure
 * that your plugins will have the best compatibility with the rest of the
 * VisuStella MZ library.
 *
 * ============================================================================
 * Major Changes
 * ============================================================================
 *
 * This plugin will overwrite some core parts of the RPG Maker MZ base code in
 * order to ensure the Battle Core plugin will work at full capacity. The
 * following are explanations of what has been changed.
 *
 * ---
 *
 * Action Sequences
 *
 * - Action sequences are now done either entirely by the Battle Log Window or
 * through common events if the <Custom Action Sequence> notetag is used.
 * In RPG Maker MZ by default, Action Sequences would be a mixture of using the
 * Battle Log Window, the Battle Manager, and the Battle Scene, making it hard
 * to fully grab control of the situation.
 *
 * ---
 *
 * Action Speed
 *
 * - Action speeds determine the turn order in the default battle system. The
 * AGI of a battle unit is also taken into consideration. However, the random
 * variance applied to the action speed system makes the turn order extremely
 * chaotic and hard for the player to determine. Thus, the random variance
 * aspect of it has been turned off. This can be reenabled by default through
 * Plugin Parameters => Mechanics Settings => Allow Random Speed?
 *
 * ---
 *
 * Animated Sideview Battler Support For Enemies
 *
 * - Enemies can now use Sideview Actor sprites for themselves! They will
 * behave like actors and can even carry their own set of weapons for physical
 * attacks. These must be set up using notetags. More information can be found
 * in the notetag section.
 *
 * - As the sprites are normally used for actors, some changes have been made
 * to Sprite_Actor to be able to support both actors and enemies. These changes
 * should have minimal impact on other plugins.
 *
 * ---
 *
 * Battle Sprite Updates
 *
 * - A lot of functions in Sprite_Battler, Sprite_Actor, and Sprite_Enemy have
 * been overwritten to make the new Action Sequence system added by this plugin
 * possible. These changes make it possible for the sprites to move anywhere on
 * the screen, jump, float, change visibility, and more.
 *
 * ---
 *
 * Change Battle Back in Battle
 * 
 * - By default, the Change Battle Back event command does not work in battle.
 * Any settings made to it will only reflect in the following battle. Now, if
 * the battle back event command is used during battle, it will reflect upon
 * any new changes immediately.
 *
 * ---
 *
 * Critical Hit - LUK Influence
 *
 * - The LUK Buffs now affect the critical hit rate based off how the formula
 * is now calculated. Each stack of a LUK Buff will double the critical hit
 * rate and compound upon that. That means a x1 LUK Buff stack will raise it by
 * x2, a x2 LUK Buff stack will raise the critical hit rate by x4, a x3 LUK
 * Buff Stack will raise the critical hit rate stack by x8, and so on.
 *
 * - LUK also plays a role in how much damage is dealt with critical hits. The
 * default critical hit multiplier has been reduced from x3 to x2. However, a
 * percentage of LUK will added on (based off the user's CRI rate) onto the
 * finalized critical damage. If the user's CRI rate is 4%, then 4% of the user
 * LUK value will also be added onto the damage.
 *
 * - This change can be altered through Plugin Parameters => Damage Settings =>
 * Critical Hits => JS: Rate Formula and JS: Damage Formula.
 *
 * ---
 * 
 * Damage Popups
 * 
 * - Damage popups are now formatted with + and - to determine healing and
 * damage. MP Damage will also include "MP" at the back. This is to make it
 * clearer what each colored variant of the damage popup means as well as help
 * color blind players read the on-screen data properly.
 * 
 * - Damage popups have also been rewritten to show all changed aspects instead
 * of just one. Previously with RPG Maker MZ, if an action would deal both HP
 * and MP damage, only one of them would show. Now, everything is separated and
 * both HP and MP changes will at a time.
 * 
 * ---
 * 
 * Dual Wielding
 * 
 * - Previously, RPG Maker MZ had "Dual Wielding" attack using both weapon
 * animations at once, with the combined ATK of each weapon. It's confusing to
 * look at and does not portray the nature of "Dual Wielding".
 * 
 * - Dual Wielding, or in the case of users adding in third and fourth weapons,
 * Multi Wielding is now changed. Each weapon is displayed individually, each
 * producing its own attack animation, showing each weapon type, and applying
 * only that weapon's ATK, Traits, and related effects. It is no longer a
 * combined effect to display everything at once like RPG Maker MZ default.
 * 
 * - If an actor has multiple weapon slots but some of them are unequipped,
 * then the action will treat the attack as a single attack. There will be no
 * barehanded attack to add on top of it. This is to match RPG Maker MZ's
 * decision to omit a second animation if the same scenario is applied.
 * 
 * ---
 *
 * Force Action
 *
 * - Previously, Forced Actions would interrupt the middle of an event to
 * perform an action. However, with the addition of more flexible Action
 * Sequences, the pre-existing Force Action system would not be able to exist
 * and would require being remade.
 *
 * - Forced Actions now are instead, added to a separate queue from the action
 * battler list. Whenever an action and/or common event is completed, then if
 * there's a Forced Action battler queued, then the Forced Action battler will
 * have its turn. This is the cleanest method available and avoids the most
 * conflicts possible.
 *
 * - This means if you planned to make cinematic sequences with Forced Actions,
 * you will need to account for the queued Force Actions. However, in the case
 * of battle cinematics, we would highly recommend that you use the newly added
 * Action Sequence Plugin Commands instead as those give you more control than
 * any Force Action ever could.
 *
 * ---
 *
 * Random Scope
 *
 * - The skill and item targeting scopes for Random Enemy, 2 Random Enemies,
 * 3 Random Enemies, 4 Random Enemies will now ignore TGR and utilize true
 * randomness.
 *
 * ---
 *
 * Spriteset_Battle Update
 *
 * - The spriteset now has extra containers to separate battlers (actors and
 * enemies), animations, and damage. This is to make actors and enemy battler
 * sprites more efficient to sort (if enabled), so that animations won't
 * interfere with and cover damage sprites, and to make sure damage sprites are
 * unaffected by screen tints in order to ensure the player will always have a
 * clear read on the information relaying sprites.
 *
 * ---
 * 
 * TPB/ATB Active Battle Actor Shifting
 * 
 * - Pressing cancel on the Actor Command Window no longer switches between
 * actors with a full TPB/ATB gauge before reaching the Party Command Window.
 * This is to accomplish a couple of things: 1) reduce the number of button
 * presses to reach the Party Command Window and 2) to prevent motion resets
 * and disrupting action sequences. If this feature is vital to your battle
 * system, we recommend that you do not use this plugin or any of the Battle
 * Core-required plugins.
 * 
 * ---
 *
 * Weather Displayed in Battle
 *
 * - Previously, weather has not been displayed in battle. This means that any
 * weather effects placed on the map do not transfer over to battle and causes
 * a huge disconnect for players. The Battle Core plugin will add weather
 * effects to match the map's weather conditions. Any changes made to weather
 * through event commands midway through battle will also be reflected.
 *
 * ---
 *
 * ============================================================================
 * Base Troops
 * ============================================================================
 *
 * Base Troops can be found, declared, and modified in the Plugin Parameters =>
 * Mechanics Settings => Base Troop ID's. All of the listed Troop ID's here
 * will have their page events replicated and placed under all other troops
 * found in the database.
 *
 * ---
 *
 * This means that if you have an event that runs on Turn 1 of a Base Troop,
 * then for every troop out there, that same event will also run on Turn 1,
 * as well. This is useful for those who wish to customize their battle system
 * further and to reduce the amount of work needed to copy/paste said event
 * pages into every database troop object manually.
 *
 * ---
 *
 * ============================================================================
 * Damage Styles
 * ============================================================================
 *
 * Damage Styles are a new feature added through the Battle Core plugin. When
 * using certain Battle Styles, you can completely ignore typing in the whole
 * damage formula inside the damage formula input box, and instead, insert
 * either a power amount or a multiplier depending on the Damage Style. The
 * plugin will then automatically calculate damage using that value factoring
 * in ATK, DEF, MAT, MDF values.
 *
 * ---
 *
 * Here is a list of the Damage Styles that come with this plugin by default.
 * You can add in your own and even edit them to your liking.
 * Or just remove them if you want.
 *
 * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
 * Style          Use Formula As   PH/MA Disparity   Stat Scale   Damage Scale
 * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
 * Standard       Formula          No                Varies       Varies
 * ArmorScaling   Formula          No                Varies       Varies
 * CT             Multiplier       Yes               Low          Normal
 * D4             Multiplier       No                High         Normal
 * DQ             Multiplier       No                Low          Low
 * FF7            Power            Yes               Low          High
 * FF8            Power            Yes               Medium       Normal
 * FF9            Power            Yes               Low          Normal
 * FF10           Power            Yes               Medium       High
 * MK             Multiplier       No                Medium       Low
 * MOBA           Multiplier       No                Medium       Normal
 * PKMN           Power            No                Low          Normal
 *
 * Use the above chart to figure out which Damage Style best fits your game,
 * if you plan on using them.
 *
 * The 'Standard' style is the same as the 'Manual' formula input, except that
 * it allows for the support of <Armor Penetration> and <Armor Reduction>
 * notetags.
 *
 * The 'Armor Scaling' style allows you to type in the base damage calculation
 * without the need to type in any defending modifiers.
 *
 * NOTE: While these are based off the damage formulas found in other games,
 * not all of them are exact replicas. Many of them are adapted for use in
 * RPG Maker MZ since not all RPG's use the same set of parameters and not all
 * external multipliers function the same way as RPG Maker MZ.
 * 
 * ---
 *
 * Style:
 * - This is what the Damage Style is.
 *
 * Use Formula As:
 * - This is what you insert into the formula box.
 * - Formula: Type in the formula for the action just as you would normally.
 * - Multiplier: Type in the multiplier for the action.
 *     Use float values. This means 250% is typed out as 2.50
 * - Power: Type in the power constant for the action.
 *     Use whole numbers. Type in something like 16 for a power constant.
 * 
 * PH/MA Disparity:
 * - Is there a disparity between how Physical Attacks and Magical Attacks
 *   are calculated?
 * - If yes, then physical attacks and magical attacks will have different
 *   formulas used.
 * - If no, then physical attacks and magical attacks will share similar
 *   formulas for how they're calculated.
 *
 * Stat Scale:
 * - How much should stats scale throughout the game?
 * - Low: Keep them under 100 for the best results.
 * - Medium: Numbers work from low to mid 400's for best results.
 * - High: The numbers really shine once they're higher.
 *
 * Damage Scale:
 * - How much does damage vary depending on small parameter changes?
 * - Low: Very little increase from parameter changes.
 * - Normal: Damage scales close to proportionally with parameter changes.
 * - High: Damage can boost itself drastically with parameter changes.
 *
 * ---
 *
 * To determine what kind of parameters are used for the Damage Styles, they
 * will depend on two things: the action's 'Hit Type' (ie Physical Attack,
 * Magical Attack, and Certain Hit) and the action's 'Damage Type' (ie. Damage,
 * Recovery, or Drain).
 *
 * Certain Hit tends to use whichever value is higher: ATK or MAT, and then
 * ignores the target's defense values. Use Certain Hits for 'True Damage'.
 *
 * Use the chart below to figure out everything else:
 * 
 * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
 * Hit Type      Damage Type   Attacker Parameter   Defender Parameter
 * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
 * Physical      Damage        ATK                  DEF
 * Magical       Damage        MAT                  MDF
 * Certain Hit   Damage        Larger (ATK, MAT)    -Ignores-
 * Physical      Recover       DEF                  -Ignores-
 * Magical       Recover       MDF                  -Ignores-
 * Certain Hit   Recover       Larger (ATK, MAT)    -Ignores-
 * Physical      Drain         ATK                  DEF
 * Magical       Drain         MAT                  MDF
 * Certain Hit   Drain         Larger (ATK, MAT)    -Ignores-
 *
 * These can be modified within the Plugin Parameters in the individual
 * Damage Styles themselves.
 *
 * ---
 *
 * Skills and Items can use different Damage Styles from the setting you've
 * selected in the Plugin Parameters. They can be altered to have different
 * Damage Styles through the usage of a notetag:
 *
 * <Damage Style: name>
 *
 * This will use whichever style is found in the Plugin Parameters.
 *
 * If "Manual" is used, then no style will be used and all calculations will be
 * made strictly based off the formula found inside the formula box.
 *
 * ---
 *
 * ============================================================================
 * VisuStella MZ Compatibility
 * ============================================================================
 *
 * While this plugin is compatible with the majority of the VisuStella MZ
 * plugin library, it is not compatible with specific plugins or specific
 * features. This section will highlight the main plugins/features that will
 * not be compatible with this plugin or put focus on how the make certain
 * features compatible.
 *
 * ---
 * 
 * VisuMZ_1_BattleCore
 * 
 * When using Action Sequences, Boost effects for damage, turn extensions,
 * analyze, etc. will not occur for anything other than the Action Sequence:
 * "MECH: Action Effect" in order to maintain controlled effects. However, if
 * you do want to apply bonuses for Boosts, utilize "MECH: Boost Store Data" to
 * store inside a variable how many times Boosts were used. This can be used
 * however which way you want it to as long as it is manageable through events
 * and Common Events.
 * 
 * ---
 *
 * ============================================================================
 * Notetags
 * ============================================================================
 *
 * The following are notetags that have been added through this plugin. These
 * notetags will not work with your game if this plugin is OFF or not present.
 * 
 * ---
 * 
 * === HP Gauge-Related Notetags ===
 * 
 * The following notetags allow you to set whether or not HP Gauges can be
 * displayed by enemies regardless of Plugin Parameter settings.
 * 
 * ---
 *
 * <Show HP Gauge>
 *
 * - Used for: Enemy Notetags
 * - Will always show the HP Gauge for the enemy regardless of the defeat
 *   requirement setting.
 * - This does not bypass the player's Options preferences.
 * - This does not bypass disabling enemy HP Gauges as a whole.
 * 
 * ---
 *
 * <Hide HP Gauge>
 *
 * - Used for: Enemy Notetags
 * - Will always hide the HP Gauge for the enemy regardless of the defeat
 *   requirement setting.
 * - This does not bypass the player's Options preferences.
 * 
 * ---
 * 
 * <Battle UI Offset: +x, +y>
 * <Battle UI Offset: -x, -y>
 * 
 * <Battle UI Offset X: +x>
 * <Battle UI Offset X: -x>
 * 
 * <Battle UI Offset Y: +y>
 * <Battle UI Offset Y: -y>
 * 
 * - Used for: Actor and Enemy Notetags
 * - Adjusts the offset of HP Gauges and State Icons above the heads of actors
 *   and enemies.
 * - Replace 'x' with a number value that offsets the x coordinate.
 * - Negative x values offset left. Positive x values offset right.
 * - Replace 'y' with a number value that offsets the y coordinate.
 * - Negative y values offset up. Positive x values offset down.
 * 
 * ---
 *
 * === Animation-Related Notetags ===
 *
 * The following notetags allow you to set animations to play at certain
 * instances and/or conditions.
 *
 * ---
 *
 * <Slip Animation: x>
 *
 * - Requires VisuMZ_0_CoreEngine!
 * - Used for: Actor, Class, Weapon, Armor, Enemy, State Notetags
 * - During the phase at which the user regenerates HP, MP, or TP, this
 *   animation will play as long as the user is alive and visible.
 * - Replace 'x' with a number value representing the Animation ID to play.
 *
 * ---
 *
 * <Cast Animation: x>
 *
 * - Used for: Skill Notetags
 * - Plays a battle animation at the start of the skill.
 * - Replace 'x' with a number value representing the Animation ID to play.
 *
 * ---
 *
 * <Attack Animation: x>
 *
 * - Used for: Enemy Notetags
 * - Gives an enemy an attack animation to play for its basic attack.
 * - Replace 'x' with a number value representing the Animation ID to play.
 *
 * ---
 * 
 * <Under>
 * 
 * - Used for: Animation Name Tags
 * - If this tag is found in an animation's name, the animation will appear
 *   under battlers while in battle.
 * - This effect only applies to battlers in the battle scene.
 * - Under effect is NOT applied to status window portraits.
 * - Under effect is NOT applied to projectile animations.
 * 
 * ---
 *
 * === Battleback-Related Notetags ===
 *
 * You can apply these notetags to have some control over the battlebacks that
 * appear in different regions of the map for random or touch encounters.
 *
 * ---
 *
 * <Region x Battleback1: filename>
 * <Region x Battleback2: filename>
 * 
 * - Used for: Map Notetags
 * - If the player starts a battle while standing on 'x' region, then the
 *   'filename' battleback will be used.
 * - Replace 'x' with a number representing the region ID you wish to use.
 * - Replace 'filename' with the filename of the graphic to use. Do not insert
 *   any extensions. This means the file 'Castle1.png' will be only inserted
 *   as 'Castle1' without the '.png' at the end.
 * - *NOTE: This will override any specified battleback settings.
 *
 * ---
 *
 * === Battle Command-Related Notetags ===
 *
 * You can use notetags to change how the battle commands of playable
 * characters appear in battle as well as whether or not they can be used.
 *
 * ---
 *
 * <Seal Attack>
 * <Seal Guard>
 * <Seal Item>
 *
 * - Used for: Actor, Class, Weapon, Armor, Enemy, State Notetags
 * - Prevents specific battle commands from being able to be used.
 *
 * ---
 *
 * <Battle Commands>
 *  Attack
 *  Skills
 *  SType: x
 *  SType: name
 *  All Skills
 *  Skill: x
 *  Skill: name
 *  Guard
 *  Item
 *  Status
 *  Party
 *  Escape
 *  Auto Battle
 *  Boost
 *  Unboost
 *  Combat Log
 *  Talk
 *  Weapon Swap
 * </Battle Commands>
 *
 * - Used for: Class Notetags
 * - Changes which commands appear in the Actor Command Window in battle.
 *   If this notetag is not used, then the default commands determined in
 *   Plugin Parameters => Actor Command Window => Command List will be used.
 * - Add/remove/modify entries as needed.
 *
 * - Attack 
 *   - Adds the basic attack command.
 * 
 * - Skills
 *   - Displays all the skill types available to the actor.
 * 
 * - SType: x
 * - Stype: name
 *   - Adds in a specific skill type.
 *   - Replace 'x' with the ID of the skill type.
 *   - Replace 'name' with the name of the skill type (without text codes).
 *
 * - All Skills
 *   - Adds all usable battle skills as individual actions.
 * 
 * - Skill: x
 * - Skill: name
 *   - Adds in a specific skill as a usable action.
 *   - Replace 'x' with the ID of the skill.
 *   - Replace 'name' with the name of the skill.
 * 
 * - Guard
 *   - Adds the basic guard command.
 * 
 * - Item
 *   - Adds the basic item command.
 * 
 * - Status
 *   - Adds a status command to view the current inputting actor's status.
 *
 * - Party
 *   - Requires VisuMZ_2_PartySystem.
 *   - Allows this actor to switch out with a different party member.
 * 
 * - Escape
 *   - Adds the escape command.
 * 
 * - Auto Battle
 *   - Adds the auto battle command.
 * 
 * - Boost
 *   - Requires VisuMZ_3_BoostAction.js.
 *   - Adds the Boost battle command.
 * 
 * - Unboost
 *   - Requires VisuMZ_3_BoostAction.js.
 *   - Adds the Unboost battle command.
 * 
 * - Combat Log
 *   - Requires VisuMZ_4_CombatLog.
 *   - Opens up the combat log.
 * 
 * - Talk
 *   - Requires VisuMZ_3_BattleCmdTalk!
 *   - Shows talk command if applicable.
 * 
 * - Weapon Swap
 *   - Requires VisuMZ_2_WeaponSwapSystem.
 *   - Swaps the current weapon.
 *
 * Example:
 *
 * <Battle Commands>
 *  Attack
 *  Skill: Heal
 *  Skills
 *  Guard
 *  Item
 *  Escape
 * </Battle Commands>
 *
 * ---
 *
 * <Command Text: x>
 *
 * - Used for: Skill Notetags
 * - When a skill is used in a <Battle Commands> notetag set, you can change
 *   the skill name text that appears to something else.
 * - Replace 'x' with the skill's name you want to shown in the Actor Battle
 *   Command window.
 * - Recommended Usage: Shorten skill names that are otherwise too big to fit
 *   inside of the Actor Battle Command window.
 *
 * ---
 *
 * <Command Icon: x>
 *
 * - Used for: Skill Notetags
 * - When a skill is used in a <Battle Commands> notetag set, you can change
 *   the skill icon that appears to something else.
 * - Replace 'x' with the ID of icon you want shown in the Actor Battle Command
 *   window to represent the skill.
 * 
 * ---
 * 
 * <Command Require Learn>
 * 
 * - Used for: Skill Notetags
 * - Determines if a battle command is visible or not by whether the actor has
 *   learned the skill.
 * - Learning the skill is a requirement. Acquiring the skill through traits
 *   does not count as learning the skill.
 * 
 * ---
 * 
 * <Command Require Access>
 * 
 * - Used for: Skill Notetags
 * - Determines if a battle command is visible or not by whether the actor has
 *   access to the skill.
 * - Having access to the skill can come through either learning the skill or
 *   temporarily acquiring it through trait objects.
 * 
 * ---
 * 
 * <Command Show Switch: x>
 * 
 * <Command Show All Switches: x,x,x>
 * <Command Show Any Switches: x,x,x>
 * 
 * - Used for: Skill Notetags
 * - Determines if a battle command is visible or not through switches.
 * - Replace 'x' with the switch ID to determine the skill's visibility.
 * - If 'All' notetag variant is used, item will be hidden until all
 *   switches are ON. Then, it would be shown.
 * - If 'Any' notetag variant is used, item will be shown if any of the
 *   switches are ON. Otherwise, it would be hidden.
 * - This can be applied to Attack and Guard commands, too.
 * 
 * ---
 * 
 * <Command Hide Switch: x>
 * 
 * <Command Hide All Switches: x,x,x>
 * <Command Hide Any Switches: x,x,x>
 * 
 * - Used for: Skill Notetags
 * - Determines if a battle command is visible or not through switches.
 * - Replace 'x' with the switch ID to determine the skill's visibility.
 * - If 'All' notetag variant is used, item will be shown until all
 *   switches are ON. Then, it would be hidden.
 * - If 'Any' notetag variant is used, item will be hidden if any of the
 *   switches are ON. Otherwise, it would be shown.
 * - This can be applied to Attack and Guard commands, too.
 * 
 * ---
 * 
 * <Battle Portrait: filename>
 *
 * - Used for: Actor
 * - This is used with the "Portrait" Battle Layout.
 * - Sets the battle portrait image for the actor to 'filename'.
 * - Replace 'filename' with a picture found within your game project's
 *   img/pictures/ folder. Filenames are case sensitive. Leave out the filename
 *   extension from the notetag.
 * - This will override any menu images used for battle only.
 * 
 * ---
 * 
 * <Battle Portrait Offset: +x, +y>
 * <Battle Portrait Offset: -x, -y>
 * 
 * <Battle Portrait Offset X: +x>
 * <Battle Portrait Offset X: -x>
 * 
 * <Battle Portrait Offset Y: +y>
 * <Battle Portrait Offset Y: -y>
 *
 * - Used for: Actor
 * - This is used with the "Portrait" and "Border" Battle Layouts.
 * - Offsets the X and Y coordinates for the battle portrait.
 * - Replace 'x' with a number value that offsets the x coordinate.
 * - Negative x values offset left. Positive x values offset right.
 * - Replace 'y' with a number value that offsets the y coordinate.
 * - Negative y values offset up. Positive x values offset down.
 * 
 * ---
 *
 * <Help Description>
 *  text
 *  text
 * </Help Description>
 *
 * - Used for: State Notetags
 * - Assigns a help description for the state that's displayed under the
 *   "Status" actor command.
 * - Replace 'text' with text you want displayed for the help window.
 * - This best works with one line for compatibility with other plugins.
 * - Insert %1 into the help description to show any data that would otherwise
 *   be shown as the state display, such as Absorption Barrier count.
 * - This is used as a common notetag between Battle Core's state descriptions
 *   and State Tooltips' state descriptions.
 * 
 * ---
 * 
 * <In-Battle Status Description>
 *  text
 *  text
 * </In-Battle Status Description>
 * - Assigns a help description for the state that's displayed under the
 *   "Status" actor command.
 * - Replace 'text' with text you want displayed for the help window.
 * - This best works with one line for compatibility with other plugins.
 * - Insert %1 into the help description to show any data that would otherwise
 *   be shown as the state display, such as Absorption Barrier count.
 * - The description used here will not be used for State Tooltips.
 * - If both <Help Description> and <In-Battle Status Description> notetags
 *   exist in the same state, priority will be given to this one for the
 *   In-Battle Status Window.
 *
 * ---
 * 
 * <Exclude From Status Listing>
 * 
 * - Used for: State Notetags
 * - Excludes the state from being displayed in the status listing.
 * 
 * ---
 * 
 * === JavaScript Notetag: Battle Command-Related ===
 *
 * The following are notetags made for users with JavaScript knowledge to
 * determine if skill-based battle commands are visible or hidden.
 * 
 * ---
 * 
 * <JS Command Visible>
 *  code
 *  code
 *  visible = code;
 * </JS Command Visible>
 * 
 * - Used for: Skill Notetags
 * - The 'visible' variable is the final returned variable to determine the
 *   skill's visibility in the Battle Command Window.
 * - Replace 'code' with JavaScript code to determine the skill's visibility in
 *   the Battle Command Window.
 * - The 'user' variable represents the user who will perform the skill.
 * - The 'skill' variable represents the skill to be used.
 * 
 * ---
 *
 * === Targeting-Related Notetags ===
 *
 * The following notetags are related to the targeting aspect of skills and
 * items and may adjust the scope of how certain skills/items work.
 *
 * ---
 *
 * <Always Hit>
 *
 * <Always Hit Rate: x%>
 *
 * - Used for: Skill, Item Notetags
 * - Causes the action to always hit or to always have a hit rate of exactly
 *   the marked x%.
 * - Replace 'x' with a number value representing the hit success percentage.
 *
 * ---
 *
 * <Repeat Hits: x>
 *
 * - Used for: Skill, Item Notetags
 * - Changes the number of hits the action will produce.
 * - Replace 'x' with a number value representing the number of hits to incur.
 *
 * ---
 *
 * <Target: x Random Any>
 *
 * - Used for: Skill, Item Notetags
 * - Makes the skill pick 'x' random targets when used.
 * - Targets can be both actors and enemies.
 * - This will overwrite the existing database scope and ignore the database's
 *   existing scope in favor of this.
 * - Replace 'x' with a number value representing the number of random targets.
 *
 * ---
 *
 * <Target: x Random Enemies>
 *
 * - Used for: Skill, Item Notetags
 * - Makes the skill pick 'x' random targets when used.
 * - This will overwrite the existing database scope and ignore the database's
 *   existing scope in favor of this.
 * - Targets are only enemies.
 * - Replace 'x' with a number value representing the number of random targets.
 *
 * ---
 *
 * <Target: x Random Allies>
 *
 * - Used for: Skill, Item Notetags
 * - Makes the skill pick 'x' random targets when used.
 * - This will overwrite the existing database scope and ignore the database's
 *   existing scope in favor of this.
 * - Targets are only actors.
 * - Replace 'x' with a number value representing the number of random targets.
 *
 * ---
 *
 * <Target: All Allies But User>
 *
 * - Used for: Skill, Item Notetags
 * - Targets all allies with the exception of the user.
 * - This will overwrite the existing database scope and ignore the database's
 *   existing scope in favor of this.
 *
 * ---
 * 
 * <Target: Ally or Enemy>
 * 
 * - Used for: Skill, Item Notetags
 * - Allows the player to target allies or enemies with the skill/item.
 *   - Keep in mind this does NOT allow you to select dead party members.
 * - This will overwrite the existing database scope and ignore the database's
 *   existing scope in favor of this.
 * - Target selection emphasis will go to allies first.
 * - Ignored when used by enemies and will be treated as an ally scope.
 * - Auto-battle actors will also treat this action as an ally scope.
 * - For certain battle layouts in frontview, this will open the Actor Select
 *   window in order for Touch Input to be able to select actors.
 * 
 * ---
 * 
 * <Target: Enemy or Ally>
 * 
 * - Used for: Skill, Item Notetags
 * - Allows the player to target enemies or allies with the skill/item.
 *   - Keep in mind this does NOT allow you to select dead party members.
 * - This will overwrite the existing database scope and ignore the database's
 *   existing scope in favor of this.
 * - Target selection emphasis will go to enemies first.
 * - Ignored when used by enemies and will be treated as an enemy scope.
 * - Auto-battle actors will also treat this action as an enemy scope.
 * - For certain battle layouts in frontview, this will open the Actor Select
 *   window in order for Touch Input to be able to select actors.
 * 
 * ---
 * 
 * <Single or Multiple Select>
 * 
 * - Used for: Skill, Item Notetags
 * - Requires an original scope that can select individual targets.
 * - This will allow the skill/item to be able to select either single targets
 *   or multiple targets at once.
 *   - In order to select "all enemies", the player must press the "Page Up"
 *     keyboard button or the visual on screen "All Enemies" button.
 *   - In order to select "all allies", the player must press the "Page Down"
 *     keyboard button or the visual on screen "All Allies" button.
 *   - Those wondering why this isn't regulated to a command left or right of
 *     the enemies and actors is because mouse controls and touch controls
 *     would not be able to select all enemies or all allies that way.
 *   - This can NOT be used with single dead ally scopes.
 * - If there is an enemy with Taunt or Provoke, the option to select
 *   "All Enemies" does not become possible.
 * - The enemy AI and Auto-Battle actor AI will NOT make use of the ability to
 *   toggle between single and multiple target scopes. They will only use the
 *   single target versions of these skills.
 * 
 * ---
 * 
 * <Disperse Damage>
 * 
 * - Used for: Skill, Item Notetags
 * - This will cause any damage dealt by this skill to be split equally amongst
 *   all targets of the skill including repeats.
 *   - For basic attacks, any damage reduction added attack trait totals will
 *     by reverted.
 * - This does NOT have to be used with <Single or Multiple Select> notetag and
 *   can be used by itself for an "All" scope, making the skill/item deal less
 *   damage if there's more enemies and more damage if there's less enemies.
 * 
 * ---
 * 
 * <Cannot Target User>
 * 
 * - Used for: Skill, Item Notetags
 * - This will cause the action to be unable to select the user as the target.
 * - This is not a targeting scope. Instead, it is used in addition to any
 *   other targeting scopes out there.
 * - When used with "All" scopes, the user is removed from the target pool.
 * - This is also applied outside of battle.
 * - If the user somehow enters the target pool, the user is then replaced by
 *   a random ally found in the party.
 * 
 * ---
 *
 * === JavaScript Notetag: Targeting-Related ===
 *
 * ---
 * 
 * <JS Accuracy>
 *  code
 *  code
 *  rate = code;
 * </JS Accuracy>
 * 
 * - Used for: Skill, Item Notetags
 * - Only applies during battle.
 * - The 'rate' variable is the final returned amount to determine the
 *   accuracy hit success rate.
 *   - Base value comes from Game_Action.itemHit
 *   - Skill/Item <JS Accuracy> runs
 *   - Then <JS Accuracy as User/Target> notetags run
 * - Replace 'code' with JavaScript code to determine the final 'rate' to be
 *   returned as the accuracy hit success rate.
 * - The 'user' variable represents the one using the skill/item.
 * - The 'target' variable represents the one receiving the skill/item hit.
 * - Works best with VisuMZ Core Engine's "Improved Accuracy" QoL formula in
 *   order to consolidate both HIT and EVA.
 * 
 * ---
 * 
 * <JS Accuracy as User>
 *  code
 *  code
 *  rate = code;
 * </JS Accuracy as User>
 * 
 * <JS Accuracy as Target>
 *  code
 *  code
 *  rate = code;
 * </JS Accuracy as Target>
 * 
 * - Used for: Actor, Class, Weapon, Armor, Enemy, State Notetags
 * - Only applies during battle.
 * - The 'rate' variable is the final returned amount to determine the
 *   accuracy hit success rate.
 *   - Base value comes from Game_Action.itemHit
 *   - Skill/Item <JS Accuracy> runs
 *   - Then <JS Accuracy as User/Target> notetags run
 * - If used on trait objects, this will apply to any skills/items used as long
 *   as the unit affected by the trait object has access to the trait object.
 * - If the 'as User' notetag variant is used, this code will be run as a
 *   response to the action from the action user end.
 * - If the 'as Target' notetag variant is used, this code will be run as a
 *   response to the action from the action target end.
 * - Replace 'code' with JavaScript code to run desired effects.
 * - The 'user' variable represents the one using the skill/item.
 * - The 'target' variable represents the one receiving the skill/item hit.
 * 
 * ---
 * 
 * <JS Targets>
 *  code
 *  code
 *  targets = [code];
 * </JS Targets>
 *
 * - Used for: Skill, Item Notetags
 * - The 'targets' variable is an array that is returned to be used as a
 *   container for all the valid action targets.
 *   - This is NOT used for filtering out who the player can or cannot select.
 *   - This determines a final result.
 * - The 'targets' variable will include the original set of targets determined
 *   by the skill/item's original scale.
 * - If you wish to clear it out, simply do 'targets = []' first.
 * - Replace 'code' with JavaScript code to determine valid targets.
 *
 * ---
 *
 * === Damage-Related Notetags ===
 *
 * ---
 *
 * <Damage Style: name>
 *
 * - Used for: Skill, Item Notetags
 * - Replace 'name' with a Damage Style name to change the way calculations are
 *   made using the damage formula input box.
 * - Names can be found in Plugin Parameters => Damage Settings => Style List
 *
 * ---
 * 
 * <Damage Flinch>
 * 
 * - Used for: Skill, Item Notetags
 * - Normally, MP and TP actions do not cause damage flinching. However,
 *   skills and items with this notetag will cause damage flinching if they
 *   hurt the target's MP or TP.
 * - HP damage will always be affected and cause target to flinch.
 * 
 * ---
 *
 * <Armor Reduction: x>
 * <Armor Reduction: x%>
 * - Used for: Actor, Class, Skill, Item, Weapon, Armor, Enemy, State Notetags
 * - If used on skills and/or items, sets the current skill/item's armor
 *   reduction properties to 'x' and/or 'x%'.
 * - If used on trait objects, adds 'x' and/or 'x%' armor reduction properties
 *   when calculating one's own armor.
 * - This applies to physical attacks.
 * - Use the 'x' notetag variant to determine a flat reduction value.
 * - Use the 'x%' notetag variant to determine a percentile reduction value.
 *
 * ---
 *
 * <Armor Penetration: x>
 * <Armor Penetration: x%>
 * - Used for: Actor, Class, Skill, Item, Weapon, Armor, Enemy, State Notetags
 * - If used on skills and/or items, sets the current skill/item's armor
 *   penetration properties to 'x' and/or 'x%'.
 * - If used on trait objects, adds 'x' and/or 'x%' armor penetration
 *   properties when calculating a target's armor.
 * - This applies to physical attacks.
 * - Use the 'x' notetag variant to determine a flat penetration value.
 * - Use the 'x%' notetag variant to determine a percentile penetration value.
 *
 * ---
 *
 * <Magic Reduction: x>
 * <Magic Reduction: x%>
 * - Used for: Actor, Class, Skill, Item, Weapon, Armor, Enemy, State Notetags
 * - If used on skills and/or items, sets the current skill/item's armor
 *   reduction properties to 'x' and/or 'x%'.
 * - If used on trait objects, adds 'x' and/or 'x%' armor reduction properties
 *   when calculating one's own armor.
 * - This applies to magical attacks.
 * - Use the 'x' notetag variant to determine a flat reduction value.
 * - Use the 'x%' notetag variant to determine a percentile reduction value.
 *
 * ---
 *
 * <Magic Penetration: x>
 * <Magic Penetration: x%>
 * - Used for: Actor, Class, Skill, Item, Weapon, Armor, Enemy, State Notetags
 * - If used on skills and/or items, sets the current skill/item's armor
 *   penetration properties to 'x' and/or 'x%'.
 * - If used on trait objects, adds 'x' and/or 'x%' armor penetration
 *   properties when calculating a target's armor.
 * - This applies to magical attacks.
 * - Use the 'x' notetag variant to determine a flat penetration value.
 * - Use the 'x%' notetag variant to determine a percentile penetration value.
 *
 * ---
 *
 * <Bypass Damage Cap>
 * 
 * - Used for: Actor, Class, Skill, Item, Weapon, Armor, Enemy, State Notetags
 * - If used on skills and/or items, this will cause the action to never have
 *   its damage capped.
 * - If used on trait objects, this will cause the affected unit to never have
 *   its damage capped.
 *
 * ---
 *
 * <Damage Cap: x>
 *
 * - Used for: Actor, Class, Skill, Item, Weapon, Armor, Enemy, State Notetags
 * - If used on skills and/or items, this will declare the hard damage cap to
 *   be the 'x' value.
 * - If used on trait objects, this will raise the affect unit's hard damage
 *   cap to 'x' value. If another trait object has a higher value, use that
 *   value instead.
 *
 * ---
 *
 * <Bypass Soft Damage Cap>
 *
 * - Used for: Actor, Class, Skill, Item, Weapon, Armor, Enemy, State Notetags
 * - If used on skills and/or items, this will cause the action to never have
 *   its damage scaled downward to the soft cap.
 * - If used on trait objects, this will cause the affected unit to never have
 *   its damage scaled downward to the soft cap.
 *
 * ---
 *
 * <Soft Damage Cap: +x%>
 * <Soft Damage Cap: -x%>
 *
 * - Used for: Actor, Class, Skill, Item, Weapon, Armor, Enemy, State Notetags
 * - If used on skills and/or items, this will increase/decrease the action's
 *   soft cap by x% where 'x' is a percentage value representing the increment
 *   changed by the hard cap value.
 * - If used on trait objects, this will raise the affect unit's soft damage
 *   limit by x% where 'x' is a percentage value representing the increment
 *   changed by the hard cap value.
 *
 * ---
 *
 * <Unblockable>
 *
 * - Used for: Skill, Item Notetags
 * - Using "Guard" against this skill will not reduce any damage.
 *
 * ---
 * 
 * <Popup Position: Head>
 * <Popup Position: Center>
 * <Popup Position: Base>
 * 
 * - Used for: Enemy Notetags
 * - Determines the popup starting position for this enemy.
 *   - Head makes the popups start at the top of the ennemy.
 *   - Center makes the popups start at the center of the ennemy.
 *   - Base makes the popups start at the bottom of the ennemy.
 * - If this notetag is not used, refer to the default Plugin Parameter setting
 *   found in Damage Settings.
 * 
 * ---
 * 
 * <Popup Offset X: +x>
 * <Popup Offset X: -x>
 * <Popup Offset Y: +y>
 * <Popup Offset Y: -y>
 * 
 * - Used for: Enemy Notetags
 * - Alters the popup x/y position offset for this enemy.
 * - Replace 'x' with a number representing the horizontal position x offset.
 *   - Negative: left. Positive: right.
 * - Replace 'y' with a number representing the vertical position y offset.
 *   - Negative: up. Positive: down.
 * - If these notetags are not used, refer to the default Plugin Parameter
 *   settings found in Damage Settings.
 * 
 * ---
 *
 * === Critical-Related Notetags ===
 *
 * The following notetags affect skill and item critical hit rates and the
 * critical damage multiplier.
 *
 * ---
 *
 * <Always Critical>
 *
 * - Used for: Skill, Item Notetags
 * - This skill/item will always land a critical hit regardless of the
 *   user's CRI parameter value.
 *
 * ---
 *
 * <Set Critical Rate: x%>
 *
 * - Used for: Skill, Item Notetags
 * - This skill/item will always have a x% change to land a critical hit
 *   regardless of user's CRI parameter value.
 * - Replace 'x' with a percerntage value representing the success rate.
 *
 * ---
 *
 * <Modify Critical Rate: x%>
 * <Modify Critical Rate: +x%>
 * <Modify Critical Rate: -x%>
 *
 * - Used for: Skill, Item Notetags
 * - Modifies the user's CRI parameter calculation for this skill/item.
 * - The 'x%' notetag variant will multiply the user's CRI parameter value
 *   for this skill/item.
 * - The '+x%' and '-x%' notetag variants will incremenetally increase/decrease
 *   the user's CRI parameter value for this skill/item.
 *
 * ---
 *
 * <Modify Critical Multiplier: x%>
 * <Modify Critical Multiplier: +x%>
 * <Modify Critical Multiplier: -x%>
 *
 * - Used for: Skill, Item Notetags
 * - These notetags determine the damage multiplier when a critical hit lands.
 * - The 'x%' notetag variant multiply the multiplier to that exact percentage.
 * - The '+x%' and '-x%' notetag variants will change the multiplier with an
 *   incremenetal rate for this skill/item.
 *
 * ---
 *
 * <Modify Critical Bonus Damage: x%>
 * <Modify Critical Bonus Damage: +x%>
 * <Modify Critical Bonus Damage: -x%>
 *
 * - Used for: Skill, Item Notetags
 * - These notetags determine the bonus damage added when a critical hit lands.
 * - The 'x%' notetag variant multiply the damage to that exact percentage.
 * - The '+x%' and '-x%' notetag variants will change the bonus damage with an
 *   incremenetal rate for this skill/item.
 *
 * ---
 *
 * === JavaScript Notetags: Critical-Related ===
 *
 * The following are notetags made for users with JavaScript knowledge to
 * determine how critical hit-related aspects are calculated.
 *
 * ---
 *
 * <JS Critical Rate>
 *  code
 *  code
 *  rate = code;
 * </JS Critical Rate>
 *
 * - Used for: Skill, Item Notetags
 * - The 'rate' variable is the final returned amount to determine the
 *   critical hit success rate.
 *   - Base value comes from Game_Action.itemCri
 *   - Skill/Item <JS Critical Rate> runs
 *   - Then <JS Critical Rate as User/Target> notetags run
 * - Replace 'code' with JavaScript code to determine the final 'rate' to be
 *   returned as the critical hit success rate.
 * - The 'user' variable represents the one using the skill/item.
 * - The 'target' variable represents the one receiving the skill/item hit.
 *
 * ---
 *
 * <JS Critical Rate as User>
 *  code
 *  code
 *  rate = code;
 * </JS Critical Rate as User>
 *
 * <JS Critical Rate as Target>
 *  code
 *  code
 *  rate = code;
 * </JS Critical Rate as Target>
 *
 * - Used for: Actor, Class, Weapon, Armor, Enemy, State Notetags
 * - Only applies during battle.
 * - The 'rate' variable is the final returned amount to determine the
 *   critical hit success rate.
 *   - Base value comes from Game_Action.itemCri
 *   - Skill/Item <JS Critical Rate> runs
 *   - Then <JS Critical Rate as User/Target> notetags run
 * - Replace 'code' with JavaScript code to determine the final 'rate' to be
 *   returned as the critical hit success rate.
 * - If used on trait objects, this will apply to any skills/items used as long
 *   as the unit affected by the trait object has access to the trait object.
 * - If the 'as User' notetag variant is used, this code will be run as a
 *   response to the action from the action user end.
 * - If the 'as Target' notetag variant is used, this code will be run as a
 *   response to the action from the action target end.
 * - Replace 'code' with JavaScript code to run desired effects.
 * - The 'user' variable represents the one using the skill/item.
 * - The 'target' variable represents the one receiving the skill/item hit.
 *
 * ---
 *
 * <JS Critical Damage>
 *  code
 *  code
 *  multiplier = code;
 *  bonusDamage = code;
 * </JS Critical Damage>
 *
 * - Used for: Skill, Item Notetags
 * - The 'multiplier' variable is returned later and used as the damage
 *   multiplier used to amplify the critical damage amount.
 * - The 'bonusDamage' variable is returned later and used as extra added
 *   damage for the critical damage amount.
 * - Replace 'code' with JavaScript code to determine how the 'multiplier' and
 *   'bonusDamage' variables are calculated.
 * - The 'user' variable represents the one using the skill/item.
 * - The 'target' variable represents the one receiving the skill/item hit.
 *
 * ---
 * 
 * === Life Steal-Related Notetags ===
 * 
 * ---
 * 
 * <HP Life Steal: x%>
 * <MP Life Steal: x%>
 * 
 * - Used for: Skill, Item Notetags
 * - Causes this skill/item to have Life Steal properties, allowing the user to
 *   take x% of the HP/MP Damage as recovered HP/MP.
 *   - HP Life Steal can only take HP from dealt HP damage.
 *   - MP Life Steal can only take MP from dealt MP damage.
 * - Replace 'x' with a number representing the percentage of the dealt damage
 *   used as HP/MP recovery.
 * - This cannot be used with skills/items with HP Drain/MP Drain. Life Steal
 *   is a different mechanic from HP Drain/MP Drain.
 * 
 * ---
 * 
 * <HP Life Steal Certain Hit: +x%>
 * <HP Life Steal Physical Hit: +x%>
 * <HP Life Steal Magical Hit: +x%>
 * 
 * <HP Life Steal Certain Hit: -x%>
 * <HP Life Steal Physical Hit: -x%>
 * <HP Life Steal Magical Hit: -x%>
 * 
 * <MP Life Steal Certain Hit: +x%>
 * <MP Life Steal Physical Hit: +x%>
 * <MP Life Steal Magical Hit: +x%>
 * 
 * <MP Life Steal Certain Hit: -x%>
 * <MP Life Steal Physical Hit: -x%>
 * <MP Life Steal Magical Hit: -x%>
 * 
 * - Used for: Used for: Actor, Class, Armor, Enemy, State Notetags
 * - The related battler's various trait properties can have passive life steal
 *   properties that will trigger upon using skills/items with matching hit
 *   types regardless of whether or not the skill/item innately has Life Steal.
 *   - Notetag variants with "Certain Hit" will only trigger from "Certain Hit"
 *     skill and item types. Same with "Physical" and "Magical" variants.
 *   - HP Life Steal can only take HP from dealt HP damage.
 *   - MP Life Steal can only take HP from dealt MP damage.
 * - Replace 'x' with a number representing the additive stacking percentage
 *   boost of the dealt damage used as HP/MP recovery. The effects will stack
 *   additively with other trait objects.
 * - This cannot be used with skills/items with HP Drain/MP Drain. Life Steal
 *   is a different mechanic from HP Drain/MP Drain.
 * 
 * ---
 * 
 * <Cancel Life Steal>
 * 
 * <Cancel HP Life Steal>
 * <Cancel MP Life Steal>
 * 
 * - Used for: Skill, Item Notetags
 * - Prevents this skill from allowing Life Steal effects to occur including
 *   the passive life steal calculators from the skill/item user.
 * - This does not affect HP Drain/MP Drain. Life Steal is a different mechanic
 *   from HP Drain/MP Drain.
 * 
 * ---
 * 
 * <Guard Life Steal>
 * 
 * <Guard HP Life Steal>
 * <Guard MP Life Steal>
 * 
 * - Used for: Used for: Actor, Class, Armor, Enemy, State Notetags
 * - If the related battler becomes the target of Life Steal, this will prevent
 *   the Life Steal effects from taking effect.
 * - This does not affect HP Drain/MP Drain. Life Steal is a different mechanic
 *   from HP Drain/MP Drain.
 * 
 * ---
 * 
 * <Disarm Life Steal>
 * 
 * <Disarm HP Life Steal>
 * <Disarm MP Life Steal>
 * 
 * - Used for: Used for: Actor, Class, Armor, Enemy, State Notetags
 * - Makes the related battler unable to HP/MP Life Steal regardless of the
 *   skill/item and its related properties like equipment.
 * - This does not prevent skills/items with innate Life Steal from being used.
 *   Only the Life Steal part of the skill/item will have no effect.
 * - This does not affect HP Drain/MP Drain. Life Steal is a different mechanic
 *   from HP Drain/MP Drain.
 * 
 * ---
 * 
 * <Negative Life Steal>
 * 
 * <Negative HP Life Steal>
 * <Negative MP Life Steal>
 * 
 * - Used for: Used for: Actor, Class, Armor, Enemy, State Notetags
 * - If the related battler becomes the target of Life Steal, this will invert
 *   the healing properties of Life Steal, causing the Life Steal user to
 *   instead take HP/MP damage.
 *   - This does NOT heal the target related battler.
 * - This does not prevent skills/items with innate Life Steal from being used.
 *   Only the Life Steal part of the skill/item will have no effect.
 * - This does not affect HP Drain/MP Drain. Life Steal is a different mechanic
 *   from HP Drain/MP Drain.
 * 
 * ---
 *
 * === Action Sequence-Related Notetags ===
 *
 * Action Sequences allow you full control over how a skill and/or item plays
 * through its course. These notetags give you control over various aspects of
 * those Action Sequences. More information is found in the Action Sequences
 * help section.
 *
 * ---
 *
 * <Custom Action Sequence>
 *
 * - Used for: Skill, Item Notetags
 * - Removes all automated Action Sequence parts from the skill.
 * - Everything Action Sequence-related will be done by Common Events.
 * - Insert Common Event(s) into the skill/item's effects list to make use of
 *   the Custom Action Sequences.
 * - This will prevent common events from loading in the Item Scene and Skill
 *   Scene when used outside of battle.
 *
 * ---
 * 
 * <Auto Action Sequence>
 * 
 * - Used for: Skill, Item Notetags
 * - If the Action Sequence Plugin Parameter "Auto Notetag" is enabled, this
 *   plugin will prevent custom action sequences from happening for the skill
 *   or item, and instead, use an Automatic Action Sequence instead.
 * - Ignore this if you have "Auto Notetag" disabled or set to false. By
 *   default, this setting is set to false. Please be aware of the changes
 *   you've made to your game before using it.
 * 
 * ---
 * 
 * <Bypass Auto Action Sequence>
 * 
 * - Used for: Skill, Item Notetags
 * - This notetag is used for the game devs that have the Action Sequence
 *   Plugin Parameter "Auto Notetag" on for applying <Custom Action Sequence>
 *   to everything.
 * - This will allow items and skills to be able to launch their common
 *   events from the menu scene regardless of the inherent restriction to
 *   prevent action sequence based skills/items with common events from
 *   launching.
 * - Ignore this if you have "Auto Notetag" disabled or set to false. By
 *   default, this setting is set to false. Please be aware of the changes
 *   you've made to your game before using it.
 * 
 * ---
 * 
 * <Common Event: name>
 *
 * - Used for: Skill, Item Notetags
 * - Battle only: calls forth a Common Event of a matching name.
 * - Replace 'name' with the name of a Common Event to call from when this
 *   skill/item is used in battle.
 *   - Remove any \I[x] in the name.
 * - Insert multiple notetags to call multiple Common Events in succession.
 * - This will occur after any Common Event Trait Effects for the skill/item's
 *   database entry.
 * - This is primarily used for users who are reorganizing around their Common
 *   Events and would still like to have their skills/items perform the correct
 *   Action Sequences in case the ID's are different.
 * 
 * ---
 *
 * <Display Icon: x>
 * <Display Text: string>
 *
 * - Used for: Skill, Item Notetags
 * - When displaying the skill/item name in the Action Sequence, determine the
 *   icon and/or text displayed.
 * - Replace 'x' with a number value representing the icon ID to be displayed.
 * - Replace 'string' with a text value representing the displayed name.
 * - If used with Skills & States Core's <Command Text: x>, the Command Text
 *   notetag will take priority in the command window, but the List Name 
 *   notetag will appear in the skill list.
 * - This does not affect the display text atop the screen. To change that, use
 *   the Battle Core's <Display Text: x> notetag to change how it's displayed.
 *
 * ---
 * 
 * <Common Event Key: name>
 * <Common Event Keys: name, name, name>
 * 
 * <Common Event Keys>
 *  key
 *  key
 *  key
 * </Common Event Keys>
 * 
 * - Used for: Skill, Item Notetags
 * - Will generate Common Events for the skill/item with a corresponding key.
 * - Replace 'name' with the name of the Common Event's key that you want to
 *   reference. That key will be converted into a Common Event effect for the
 *   skill/item and be treated as an action sequence.
 *   - The notetag variants that use multiple keys will have the keys added in
 *     the order they are listed.
 *   - If keys do not reference any Common Events, no Common Events will be
 *     added for that key.
 * - To mark a Common Event with a key, insert inside a Common Event's name the
 *   [ and ] brackets around the text that will be used as the Common Event's
 *   key text.
 *   - For example, if Common Event's name is "Penta Slash [PENTA]", then the
 *     key used is "PENTA" without the quotes.
 *   - This key could then be referenced by <Common Event Key: PENTA> notetag.
 *   - Do not use commas (,) inside the key text as it will be automatically
 *     removed for the sake of consistency.
 * - This feature is made for make the process of sharing Action Sequences to
 *   become easier without needing to line up Common Event ID's.
 * 
 * ---
 *
 * === Animated Sideview Battler-Related Notetags ===
 *
 * Enemies can use Animated Sideview Actor graphics thanks to this plugin.
 * These notetags give you control over that aspect. Some of these also affect
 * actors in addition to enemies.
 *
 * ---
 *
 * <Sideview Battler: filename>
 *
 * <Sideview Battlers>
 *  filename: weight
 *  filename: weight
 *  filename: weight
 * </Sideview Battlers>
 *
 * - Used for: Enemy Notetags
 * - Replaces the enemy's battler graphic with an animated Sideview Actor
 *   graphic found in the img/sv_actors/ folder.
 * - Replace 'filename' with the filename of the graphic to use. Do not insert
 *   any extensions. This means the file 'Actor1_1.png' will be only inserted
 *   as 'Actor1_1' without the '.png' at the end.
 * - If the multiple notetag vaiant is used, then a random filename is selected
 *   from the list upon the enemy's creation.
 * - Replace 'weight' with a number value representing how often the 'filename'
 *   would come up. The higher the weight, the more often. You may omit this
 *   and the colon(:) and just type in the 'filename' instead.
 * - Add/remove lines as you see fit.
 *
 * Example:
 *
 * <Sideview Battlers>
 *  Actor1_1: 25
 *  Actor1_3: 10
 *  Actor1_5
 *  Actor1_7
 * </Sideview Battlers>
 *
 * ---
 *
 * <Sideview Anchor: x, y>
 *
 * - Used for: Actor, Enemy Notetags
 * - Sets the sprite anchor positions for the sideview sprite.
 * - Replace 'x' and 'y' with numbers depicting where the anchors should be for
 *   the sideview sprite.
 * - By default, the x and y anchors are 0.5 and 1.0.
 *
 * ---
 * 
 * <Sideview Home Offset: +x, +y>
 * <Sideview Home Offset: -x, -y>
 * 
 * - Used for: Actor, Class, Weapon, Armor, State Notetags
 * - Offsets the sideview actor sprite's home position by +/-x, +/-y.
 * - Replace 'x' and 'y' with numbers depicting how much to offset each of the
 *   coordinates by. For '0' values, use +0 or -0.
 * - This notetag will not work if you remove it from the JavaScript code in
 *   Plugin Parameters > Actor > JS:  Home Position
 * 
 * ---
 * 
 * <Sideview Weapon Offset: +x, +y>
 * <Sideview Weapon Offset: -x, -y>
 * 
 * - Used for: Actor, Class, Weapon, Armor, Enemy State Notetags
 * - Offsets the sideview weapon sprite's position by +/-x, +/-y.
 * - Replace 'x' and 'y' with numbers depicting how much to offset each of the
 *   coordinates by. For '0' values, use +0 or -0.
 * 
 * ---
 *
 * <Sideview Show Shadow>
 * <Sideview Hide Shadow>
 *
 * - Used for: Actor, Enemy Notetags
 * - Sets it so the sideview battler's shadow will be visible or hidden.
 *
 * ---
 * 
 * <Sideview Shadow Scale: x%>
 * <Sideview Shadow Scale: x.y>
 * 
 * - Used for: Actor, Enemy Notetags
 * - Adjusts the scaling size of the sideview battler's shadow.
 * - This affects both the X and Y scale.
 * 
 * ---
 * 
 * <Sideview Shadow Scale X: x%>
 * <Sideview Shadow Scale X: x.y>
 * 
 * <Sideview Shadow Scale Y: x%>
 * <Sideview Shadow Scale Y: x.y>
 * 
 * - Used for: Actor, Enemy Notetags
 * - Adjusts the scaling size of the sideview battler's shadow.
 * - These affect their respective X and Y scales separately.
 * 
 * ---
 *
 * <Sideview Collapse>
 * <Sideview No Collapse>
 *
 * - Used for: Enemy Notetags
 * - Either shows the collapse graphic or does not show the collapse graphic.
 * - Collapse graphic means the enemy will 'fade away' once it's defeated.
 * - No collapse graphic means the enemy's corpse will remain on the screen.
 *
 * ---
 *
 * <Sideview Idle Motion: name>
 *
 * <Sideview Idle Motions>
 *  name: weight
 *  name: weight
 *  name: weight
 * </Sideview Idle Motions>
 *
 * - Used for: Enemy Notetags
 * - Changes the default idle motion for the enemy.
 * - Replace 'name' with any of the following motion names:
 *   - 'walk', 'wait', 'chant', 'guard', 'damage', 'evade', 'thrust', 'swing',
 *     'missile', 'skill', 'spell', 'item', 'escape', 'victory', 'dying',
 *     'abnormal', 'sleep', 'dead'
 * - If the multiple notetag vaiant is used, then a random motion name is
 *   selected from the list upon the enemy's creation.
 * - Replace 'weight' with a number value representing how often the 'name'
 *   would come up. The higher the weight, the more often. You may omit this
 *   and the colon(:) and just type in the 'name' instead.
 * - Add/remove lines as you see fit.
 *
 * Example:
 *
 * <Sideview Idle Motions>
 *  walk: 25
 *  wait: 50
 *  guard
 *  victory
 *  abnormal
 * </Sideview Idle Motions>
 *
 * ---
 *
 * <Sideview Size: width, height>
 *
 * - Used for: Enemy Notetags
 * - When using a sideview battler, its width and height will default to the
 *   setting made in Plugin Parameters => Enemy Settings => Size: Width/Height.
 * - This notetag lets you change that value to something else.
 * - Replace 'width' and 'height' with numbers representing how many pixels
 *   wide/tall the sprite will be treated as.
 * - This does NOT change the image size. This only changes the HITBOX size.
 *
 * ---
 *
 * <Sideview Weapon: weapontype>
 *
 * <Sideview Weapons>
 *  weapontype: weight
 *  weapontype: weight
 *  weapontype: weight
 * </Sideview Weapons>
 *
 * - Used for: Enemy Notetags
 * - Give your sideview enemies weapons to use.
 * - Replace 'weapontype' with the name of the weapon type found under the
 *   Database => Types => Weapon Types list (without text codes).
 * - If the multiple notetag vaiant is used, then a random weapon type is
 *   selected from the list upon the enemy's creation.
 * - Replace 'weight' with a number value representing how often the weapontype
 *   would come up. The higher the weight, the more often. You may omit this
 *   and the colon(:) and just type in the 'weapontype' instead.
 * - Add/remove lines as you see fit.
 *
 * Example:
 *
 * <Sideview Weapons>
 *  Dagger: 25
 *  Sword: 25
 *  Axe
 * </Sideview Weapons>
 *
 * ---
 *
 * <traitname Sideview Battler: filename>
 *
 * <traitname Sideview Battlers>
 *  filename: weight
 *  filename: weight
 *  filename: weight
 * </traitname Sideview Battlers>
 *
 * - Used for: Enemy Notetags
 * - Requires VisuMZ_1_ElementStatusCore
 * - Allows certain Trait Sets to cause battlers to have a unique appearance.
 * - Replace 'filename' with the filename of the graphic to use. Do not insert
 *   any extensions. This means the file 'Actor1_1.png' will be only inserted
 *   as 'Actor1_1' without the '.png' at the end.
 * - If the multiple notetag vaiant is used, then a random filename is selected
 *   from the list upon the enemy's creation.
 * - Replace 'weight' with a number value representing how often the 'filename'
 *   would come up. The higher the weight, the more often. You may omit this
 *   and the colon(:) and just type in the 'filename' instead.
 * - Add/remove lines as you see fit.
 *
 * Examples:
 *
 * <Male Sideview Battlers>
 *  Actor1_1: 25
 *  Actor1_3: 10
 *  Actor1_5
 *  Actor1_7
 * </Male Sideview Battlers>
 *
 * <Female Sideview Battlers>
 *  Actor1_2: 25
 *  Actor1_4: 10
 *  Actor1_6
 *  Actor1_8
 * </Female Sideview Battlers>
 *
 * ---
 *
 * <traitname Sideview Idle Motion: name>
 *
 * <traitname Sideview Idle Motions>
 *  name: weight
 *  name: weight
 *  name: weight
 * </traitname Sideview Idle Motions>
 *
 * - Used for: Enemy Notetags
 * - Requires VisuMZ_1_ElementStatusCore
 * - Allows certain Trait Sets to cause battlers to have unique idle motions.
 * - Replace 'name' with any of the following motion names:
 *   - 'walk', 'wait', 'chant', 'guard', 'damage', 'evade', 'thrust', 'swing',
 *     'missile', 'skill', 'spell', 'item', 'escape', 'victory', 'dying',
 *     'abnormal', 'sleep', 'dead'
 * - If the multiple notetag vaiant is used, then a random motion name is
 *   selected from the list upon the enemy's creation.
 * - Replace 'weight' with a number value representing how often the 'name'
 *   would come up. The higher the weight, the more often. You may omit this
 *   and the colon(:) and just type in the 'name' instead.
 * - Add/remove lines as you see fit.
 *
 * Examples:
 *
 * <Jolly Sideview Idle Motions>
 *  wait: 25
 *  victory: 10
 *  walk
 * </Jolly Sideview Idle Motions>
 *
 * <Serious Sideview Idle Motions>
 *  walk: 25
 *  guard: 10
 *  wait
 * </Jolly Sideview Idle Motions>
 *
 * ---
 *
 * <traitname Sideview Weapon: weapontype>
 *
 * <traitname Sideview Weapons>
 *  weapontype: weight
 *  weapontype: weight
 *  weapontype: weight
 * </traitname Sideview Weapons>
 *
 * - Used for: Enemy Notetags
 * - Requires VisuMZ_1_ElementStatusCore
 * - Allows certain Trait Sets to cause battlers to have unique weapons.
 * - Replace 'weapontype' with the name of the weapon type found under the
 *   Database => Types => Weapon Types list (without text codes).
 * - If the multiple notetag vaiant is used, then a random weapon type is
 *   selected from the list upon the enemy's creation.
 * - Replace 'weight' with a number value representing how often the weapontype
 *   would come up. The higher the weight, the more often. You may omit this
 *   and the colon(:) and just type in the 'weapontype' instead.
 * - Add/remove lines as you see fit.
 *
 * Examples:
 *
 * <Male Sideview Weapons>
 *  Dagger: 25
 *  Sword: 25
 *  Axe
 * </Male Sideview Weapons>
 *
 * <Female Sideview Weapons>
 *  Dagger: 25
 *  Spear: 25
 *  Cane
 * </Female Sideview Weapons>
 *
 * ---
 *
 * === Enemy-Related Notetags ===
 *
 * ---
 *
 * <Battler Sprite Cannot Move>
 *
 * - Used for: Enemy Notetags
 * - Prevents the enemy from being able to move, jump, and/or float due to
 *   Action Sequences. Useful for rooted enemies.
 *
 * ---
 * 
 * <Battler Sprite Grounded>
 *
 * - Used for: Enemy Notetags
 * - Prevents the enemy from being able to jumping and/or floating due to
 *   Action Sequences but still able to move. Useful for rooted enemies.
 * 
 * ---
 *
 * <Swap Enemies>
 *  name: weight
 *  name: weight
 *  name: weight
 * </Swap Enemies>
 *
 * - Used for: Enemy Notetags
 * - Causes this enemy database object to function as a randomizer for any of
 *   the listed enemies inside the notetag. When the enemy is loaded into the
 *   battle scene, the enemy is immediately replaced with one of the enemies
 *   listed. The randomization is based off the 'weight' given to each of the
 *   enemy 'names'.
 * - Replace 'name' with the database enemy of the enemy you wish to replace
 *   the enemy with.
 * - Replace 'weight' with a number value representing how often the 'name'
 *   would come up. The higher the weight, the more often. You may omit this
 *   and the colon(:) and just type in the 'name' instead.
 * - Add/remove lines as you see fit.
 *
 * Example:
 *
 * <Swap Enemies>
 *  Bat: 50
 *  Slime: 25
 *  Orc
 *  Minotaur
 * </Swap Enemies>
 *
 * ---
 * 
 * <Aspect Name: name>
 * 
 * - Used for: Enemy Notetags
 * - Changes enemy's aspect name shown in the In-Battle Status and other
 *   supported plugin menus.
 *   - Requires <Aspect Description> in order to show.
 * - Replace 'name' with text for how enemy aspect should be renamed.
 * 
 * ---
 * 
 * <Aspect Color: color>
 * 
 * - Used for: Enemy Notetags
 * - Changes enemy's aspect name color shown in the In-Battle Status and other
 *   supported plugin menus.
 *   - Requires <Aspect Description> in order to show.
 * - Replace 'color' with either a number from 0 to 31 representing the text
 *   color or in the format of '#rrggbb' to custom pick a hex color.
 * 
 * ---
 * 
 * <Aspect Icon: x>
 * 
 * - Used for: Enemy Notetags
 * - Changes enemy's aspect icon shown in the In-Battle Status and other
 *   supported plugin menus.
 *   - Requires <Aspect Description> in order to show.
 * - Replace 'x' with a number representing the icon index used to represent
 *   the enemy aspect.
 * 
 * ---
 * 
 * <Aspect Description>
 *  text
 *  text
 * </Aspect Description>
 * 
 * - Used for: Enemy Notetags
 * - Changes enemy's aspect description shown in the In-Battle Status and other
 *   supported plugin menus.
 * - Replace 'text' with the text you would like to appear as a description for
 *   the enemy's aspect.
 * 
 * ---
 *
 * === JavaScript Notetags: Mechanics-Related ===
 *
 * These JavaScript notetags allow you to run code at specific instances during
 * battle provided that the unit has that code associated with them in a trait
 * object (actor, class, weapon, armor, enemy, or state). How you use these is
 * entirely up to you and will depend on your ability to understand the code
 * used and driven for each case.
 *
 * ---
 *
 * <JS Pre-Start Battle>
 *  code
 *  code
 *  code
 * </JS Pre-Start Battle>
 *
 * <JS Post-Start Battle>
 *  code
 *  code
 *  code
 * </JS Post-Start Battle>
 * 
 * - Used for: Actor, Class, Weapon, Armor, Enemy, State Notetags
 * - Runs JavaScript code at the start of battle aimed at the function:
 *   BattleManager.startBattle()
 *   - 'Pre' runs before the function runs.
 *   - 'Post' runs after the function runs.
 * - Replace 'code' with JavaScript code to run desired effects.
 * - The 'user' variable represents the one affected by the trait object.
 *
 * ---
 *
 * <JS Pre-Start Turn>
 *  code
 *  code
 *  code
 * </JS Pre-Start Turn>
 *
 * <JS Post-Start Turn>
 *  code
 *  code
 *  code
 * </JS Post-Start Turn>
 * 
 * - Used for: Actor, Class, Weapon, Armor, Enemy, State Notetags
 * - Runs JavaScript code at the start of a turn aimed at the function:
 *   BattleManager.startTurn()
 *   - 'Pre' runs before the function runs.
 *   - 'Post' runs after the function runs.
 * - Replace 'code' with JavaScript code to run desired effects.
 * - The 'user' variable represents the one affected by the trait object.
 *
 * ---
 *
 * <JS Pre-Start Action>
 *  code
 *  code
 *  code
 * </JS Pre-Start Action>
 *
 * <JS Post-Start Action>
 *  code
 *  code
 *  code
 * </JS Post-Start Action>
 * 
 * - Used for: Actor, Class, Skill, Item, Weapon, Armor, Enemy, State Notetags
 * - Runs JavaScript code at the start of an action aimed at the function:
 *   BattleManager.startAction()
 *   - 'Pre' runs before the function runs.
 *   - 'Post' runs after the function runs.
 * - If used on skills and/or items, this will only apply to the skill/item
 *   being used and does not affect other skills and items.
 * - If used on trait objects, this will apply to any skills/items used as long
 *   as the unit affected by the trait object has access to the trait object.
 * - Replace 'code' with JavaScript code to run desired effects.
 * - The 'user' variable represents the one affected by the trait object.
 *
 * ---
 *
 * <JS Pre-Apply>
 *  code
 *  code
 *  code
 * </JS Pre-Apply>
 * 
 * - Used for: Skill, Item Notetags
 * - Runs JavaScript code at the start of an action hit aimed at the function:
 *   Game_Action.prototype.apply()
 *   - 'Pre' runs before the function runs.
 * - If used on skills and/or items, this will only apply to the skill/item
 *   being used and does not affect other skills and items.
 * - Replace 'code' with JavaScript code to run desired effects.
 * - The 'user' variable represents the one using the skill/item.
 * - The 'target' variable represents the one receiving the skill/item hit.
 *
 * ---
 *
 * <JS Pre-Apply as User>
 *  code
 *  code
 *  code
 * </JS Pre-Apply as User>
 *
 * <JS Pre-Apply as Target>
 *  code
 *  code
 *  code
 * </JS Pre-Apply as Target>
 * 
 * - Used for: Actor, Class, Weapon, Armor, Enemy, State Notetags
 * - Runs JavaScript code at the start of an action hit aimed at the function:
 *   Game_Action.prototype.apply()
 *   - 'Pre' runs before the function runs.
 * - If used on trait objects, this will apply to any skills/items used as long
 *   as the unit affected by the trait object has access to the trait object.
 * - If the 'as User' notetag variant is used, this code will be run as a
 *   response to the action from the action user end.
 * - If the 'as Target' notetag variant is used, this code will be run as a
 *   response to the action from the action target end.
 * - Replace 'code' with JavaScript code to run desired effects.
 * - The 'user' variable represents the one using the skill/item.
 * - The 'target' variable represents the one receiving the skill/item hit.
 *
 * ---
 *
 * <JS Pre-Damage>
 *  code
 *  code
 *  code
 * </JS Pre-Damage>
 * 
 * - Used for: Skill, Item Notetags
 * - Runs JavaScript code before damage is dealt aimed at the function:
 *   Game_Action.prototype.executeDamage()
 *   - 'Pre' runs before the function runs.
 * - If used on skills and/or items, this will only apply to the skill/item
 *   being used and does not affect other skills and items.
 * - Replace 'code' with JavaScript code to run desired effects.
 * - The 'user' variable represents the one using the skill/item.
 * - The 'target' variable represents the one receiving the skill/item hit.
 * - The 'value' variable represents the damage being calculated up to this
 *   point (if any) and any changes made to the 'value' variable will reflect
 *   on the damage dealt/healed, too.
 *
 * ---
 *
 * <JS Pre-Damage as User>
 *  code
 *  code
 *  code
 * </JS Pre-Damage as User>
 *
 * <JS Pre-Damage as Target>
 *  code
 *  code
 *  code
 * </JS Pre-Damage as Target>
 * 
 * - Used for: Actor, Class, Weapon, Armor, Enemy, State Notetags
 * - Runs JavaScript code before damage is dealt aimed at the function:
 *   Game_Action.prototype.executeDamage()
 *   - 'Pre' runs before the function runs.
 * - If used on trait objects, this will apply to any skills/items used as long
 *   as the unit affected by the trait object has access to the trait object.
 * - If the 'as User' notetag variant is used, this code will be run as a
 *   response to the action from the action user end.
 * - If the 'as Target' notetag variant is used, this code will be run as a
 *   response to the action from the action target end.
 * - Replace 'code' with JavaScript code to run desired effects.
 * - The 'user' variable represents the one using the skill/item.
 * - The 'target' variable represents the one receiving the skill/item hit.
 * - The 'value' variable represents the damage being calculated up to this
 *   point (if any) and any changes made to the 'value' variable will reflect
 *   on the damage dealt/healed, too.
 *
 * ---
 *
 * <JS Post-Damage>
 *  code
 *  code
 *  code
 * </JS Post-Damage>
 * 
 * - Used for: Skill, Item Notetags
 * - Runs JavaScript code after damage is dealt aimed at the function:
 *   Game_Action.prototype.executeDamage()
 *   - 'Post' runs after the function runs.
 * - If used on skills and/or items, this will only apply to the skill/item
 *   being used and does not affect other skills and items.
 * - Replace 'code' with JavaScript code to run desired effects.
 * - The 'user' variable represents the one using the skill/item.
 * - The 'target' variable represents the one receiving the skill/item hit.
 * - The 'value' variable represents the damage/healing that has been last
 *   dealt through this action.
 *
 * ---
 *
 * <JS Post-Damage as User>
 *  code
 *  code
 *  code
 * </JS Post-Damage as User>
 *
 * <JS Post-Damage as Target>
 *  code
 *  code
 *  code
 * </JS Post-Damage as Target>
 * 
 * - Used for: Actor, Class, Weapon, Armor, Enemy, State Notetags
 * - Runs JavaScript code after damage is dealt aimed at the function:
 *   Game_Action.prototype.executeDamage()
 *   - 'Post' runs after the function runs.
 * - If used on trait objects, this will apply to any skills/items used as long
 *   as the unit affected by the trait object has access to the trait object.
 * - If the 'as User' notetag variant is used, this code will be run as a
 *   response to the action from the action user end.
 * - If the 'as Target' notetag variant is used, this code will be run as a
 *   response to the action from the action target end.
 * - Replace 'code' with JavaScript code to run desired effects.
 * - The 'user' variable represents the one using the skill/item.
 * - The 'target' variable represents the one receiving the skill/item hit.
 * - The 'value' variable represents the damage/healing that has been last
 *   dealt through this action.
 *
 * ---
 *
 * <JS Post-Apply>
 *  code
 *  code
 *  code
 * </JS Post-Apply>
 * 
 * - Used for: Skill, Item Notetags
 * - Runs JavaScript code at the end of an action hit aimed at the function:
 *   Game_Action.prototype.apply()
 *   - 'Post' runs after the function runs.
 * - If used on skills and/or items, this will only apply to the skill/item
 *   being used and does not affect other skills and items.
 * - Replace 'code' with JavaScript code to run desired effects.
 * - The 'user' variable represents the one using the skill/item.
 * - The 'target' variable represents the one receiving the skill/item hit.
 *
 * ---
 *
 * <JS Post-Apply as User>
 *  code
 *  code
 *  code
 * </JS Post-Apply as User>
 *
 * <JS Post-Apply as Target>
 *  code
 *  code
 *  code
 * </JS Post-Apply as Target>
 * 
 * - Used for: Actor, Class, Weapon, Armor, Enemy, State Notetags
 * - Runs JavaScript code at the end of an action hit aimed at the function:
 *   Game_Action.prototype.apply()
 *   - 'Post' runs after the function runs.
 * - If used on trait objects, this will apply to any skills/items used as long
 *   as the unit affected by the trait object has access to the trait object.
 * - If the 'as User' notetag variant is used, this code will be run as a
 *   response to the action from the action user end.
 * - If the 'as Target' notetag variant is used, this code will be run as a
 *   response to the action from the action target end.
 * - Replace 'code' with JavaScript code to run desired effects.
 *
 * ---
 *
 * <JS Pre-End Action>
 *  code
 *  code
 *  code
 * </JS Pre-End Action>
 *
 * <JS Post-End Action>
 *  code
 *  code
 *  code
 * </JS Post-End Action>
 * 
 * - Used for: Actor, Class, Weapon, Armor, Enemy, State Notetags
 * - Runs JavaScript code at the end of an action aimed at the function:
 *   BattleManager.endAction()
 *   - 'Pre' runs before the function runs.
 *   - 'Post' runs after the function runs.
 * - If used on trait objects, this will apply to any skills/items used as long
 *   as the unit affected by the trait object has access to the trait object.
 * - Replace 'code' with JavaScript code to run desired effects.
 * - The 'user' variable represents the one affected by the trait object.
 *
 * ---
 *
 * <JS Pre-End Turn>
 *  code
 *  code
 *  code
 * </JS Pre-End Turn>
 *
 * <JS Post-End Turn>
 *  code
 *  code
 *  code
 * </JS Post-End Turn>
 * 
 * - Used for: Actor, Class, Weapon, Armor, Enemy, State Notetags
 * - Runs JavaScript code at the end of a turn aimed at the function:
 *   Game_Battler.prototype.onTurnEnd()
 *   - 'Pre' runs before the function runs.
 *   - 'Post' runs after the function runs.
 * - Replace 'code' with JavaScript code to run desired effects.
 * - The 'user' variable represents the one affected by the trait object.
 *
 * ---
 *
 * <JS Pre-Regenerate>
 *  code
 *  code
 *  code
 * </JS Pre-Regenerate>
 *
 * <JS Post-Regenerate>
 *  code
 *  code
 *  code
 * </JS Post-Regenerate>
 * 
 * - Used for: Actor, Class, Weapon, Armor, Enemy, State Notetags
 * - Runs JavaScript code when a unit regenerates HP/MP aimed at the function:
 *   Game_Battler.prototype.regenerateAll()
 *   - 'Pre' runs before the function runs.
 *   - 'Post' runs after the function runs.
 * - Replace 'code' with JavaScript code to run desired effects.
 * - The 'user' variable represents the one affected by the trait object.
 *
 * ---
 *
 * <JS Battle Victory>
 *  code
 *  code
 *  code
 * </JS Battle Victory>
 * 
 * - Used for: Actor, Class, Weapon, Armor, Enemy, State Notetags
 * - Runs JavaScript code when a battle is won aimed at the function:
 *   BattleManager.processVictory()
 * - Replace 'code' with JavaScript code to run desired effects.
 * - The 'user' variable represents the one affected by the trait object.
 *
 * ---
 *
 * <JS Escape Success>
 *  code
 *  code
 *  code
 * </JS Escape Success>
 * 
 * - Used for: Actor, Class, Weapon, Armor, Enemy, State Notetags
 * - Runs JavaScript code when escaping succeeds aimed at the function:
 *   BattleManager.onEscapeSuccess()
 * - Replace 'code' with JavaScript code to run desired effects.
 * - The 'user' variable represents the one affected by the trait object.
 *
 * ---
 *
 * <JS Escape Failure>
 *  code
 *  code
 *  code
 * </JS Escape Failure>
 * 
 * - Used for: Actor, Class, Weapon, Armor, Enemy, State Notetags
 * - Runs JavaScript code when escaping fails aimed at the function:
 *   BattleManager.onEscapeFailure()
 * - Replace 'code' with JavaScript code to run desired effects.
 * - The 'user' variable represents the one affected by the trait object.
 *
 * ---
 *
 * <JS Battle Defeat>
 *  code
 *  code
 *  code
 * </JS Battle Defeat>
 * 
 * - Used for: Actor, Class, Weapon, Armor, Enemy, State Notetags
 * - Runs JavaScript code when a battle is lost aimed at the function:
 *   BattleManager.processDefeat()
 * - Replace 'code' with JavaScript code to run desired effects.
 * - The 'user' variable represents the one affected by the trait object.
 *
 * ---
 *
 * <JS Pre-End Battle>
 *  code
 *  code
 *  code
 * </JS Pre-End Battle>
 *
 * <JS Post-End Battle>
 *  code
 *  code
 *  code
 * </JS Post-End Battle>
 * 
 * - Used for: Actor, Class, Weapon, Armor, Enemy, State Notetags
 * - Runs JavaScript code when the battle is over aimed at the function:
 *   BattleManager.endBattle()
 *   - 'Pre' runs before the function runs.
 *   - 'Post' runs after the function runs.
 * - Replace 'code' with JavaScript code to run desired effects.
 * - The 'user' variable represents the one affected by the trait object.
 *
 * ---
 * 
 * === Battle Layout-Related Notetags ===
 * 
 * These tags will change the battle layout for a troop regardless of how the
 * plugin parameters are set up normally. Insert these tags in either the
 * noteboxes of maps or the names of troops for them to take effect. If both
 * are present for a specific battle, then priority goes to the setting found
 * in the troop name.
 * 
 * ---
 * 
 * <Layout: type>
 * <Battle Layout: type>
 * 
 * - Used for: Map Notetags, Troop Name Tags, and Troop Comment Tags
 * - Changes the battle layout style used for this specific map or battle.
 * - Replace 'type' with 'default', 'list', 'xp', 'portrait', or 'border'.
 * - Those with VisuMZ_3_FrontviewBattleUI can use 'frontview'.
 * - Those with VisuMZ_3_SideviewBattleUI can use 'sideview'.
 * - If using Troop Comment Tags, then as long as the tag appears in a comment
 *   found on any of the Troop's pages (even if they don't run), the tag will
 *   be considered in effect.
 * 
 * ---
 * 
 * === Troop Size Tags ===
 * 
 * ---
 * 
 * <Extend: x>
 * <Extend: x, x, x>
 * 
 * - Used for: Troop Name Tags and Troop Comment Tags
 * - Adds enemies from another troop to the current troop.
 * - Enemies from another troop will retain their database positions.
 * - Replace 'x' with the ID of the database troop entry you wish to add enemy
 *   members from.
 *   - Insert multiple x's to add from more troops.
 * - Extended troop members will be added in the order they're listed.
 * - Be cautious of how many enemies you add as too many will lag the battle
 *   system. We are not responsible for frame drops due to this.
 * 
 * ---
 * 
 * === Troop Comment Tags ===
 * 
 * Place these tags inside of a comment found in a troop page's event list.
 * 
 * ---
 * 
 * <Once Parallel When Start Battle>
 * 
 * - Used for: Troop Page Comment Tags
 * - Causes the troop page to immediately load the moment the battle scene
 *   begins to fade in (not after it fades in). This is faster than a turn 0
 *   condition troop page. Troop page conditions are ignored.
 * - This can be used for things like the Action Sequence Camera plugin, the
 *   Visual Battle Environment plugin, and/or initial battle poses and such in
 *   order to provide a near seamless battle transition experience.
 * - This does NOT trigger when coming out of the options menu or party menu.
 * - This WILL trigger when going from battle to battle nonstop via plugins
 *   like VisuStella MZ's Chain Battles.
 * - When actors are moving towards their home positions, it will take around
 *   30 frames by default. Use this information however you like.
 * 
 * ---
 *
 * ============================================================================
 * Action Sequence - Plugin Commands
 * ============================================================================
 *
 * Skills and items, when used in battle, have a pre-determined series of
 * actions to display to the player as a means of representing what's going on
 * with the action. For some game devs, this may not be enough and they would
 * like to get more involved with the actions themselves.
 *
 * Action Sequences, added through this plugin, enable this. To give a skill or
 * item a Custom Action Sequence, a couple of steps must be followed:
 *
 * ---
 *
 * 1. Insert the <Custom Action Sequence> notetag into the skill or item's
 *    notebox (or else this would not work as intended).
 * 2. Give that skill/item a Common Event through the Effects box. The selected
 *    Common Event will contain all the Action Sequence data.
 * 3. Create the Common Event with Action Sequence Plugin Commands and/or event
 *    commands to make the skill/item do what you want it to do.
 *
 * ---
 *
 * The Plugin Commands added through the Battle Core plugin focus entirely on
 * Action Sequences. However, despite the fact that they're made for skills and
 * items, some of these Action Sequence Plugin Commands can still be used for
 * regular Troop events and Common Events.
 *
 * ---
 *
 * === Action Sequence - Action Sets ===
 *
 * Action Sequence Action Sets are groups of commonly used
 * Action Sequence Commands put together for more efficient usage.
 *
 * ---
 *
 * ACSET: Setup Action Set
 * - The generic start to most actions.
 *
 *   Display Action:
 *   Immortal: On:
 *   Battle Step:
 *   Wait For Movement:
 *   Cast Animation:
 *   Wait For Animation:
 *   - Use this part of the action sequence?
 *
 * ---
 *
 * ACSET: All Targets Action Set
 * - Affects all targets simultaneously performing the following.
 *
 *   Dual/Multi Wield?
 *   - Add times struck based on weapon quantity equipped?
 * 
 *   Perform Action:
 *   Wait Count:
 *   Action Animation:
 *   Wait For Animation:
 *   Action Effect:
 *   Immortal: Off:
 *   - Use this part of the action sequence?
 *   - Insert values for the Wait Count(s).
 *
 * ---
 *
 * ACSET: Each Target Action Set
 * - Goes through each target one by one to perform the following.
 *
 *   Dual/Multi Wield?
 *   - Add times struck based on weapon quantity equipped?
 *
 *   Perform Action:
 *   Wait Count:
 *   Action Animation:
 *   Wait Count:
 *   Action Effect:
 *   Immortal: Off:
 *   - Use this part of the action sequence?
 *   - Insert values for the Wait Count(s).
 *
 * ---
 *
 * ACSET: Finish Action
 * - The generic ending to most actions.
 *
 *   Wait For New Line:
 *   Wait For Effects:
 *   Clear Battle Log:
 *   Home Reset:
 *   Wait For Movement:
 *   - Use this part of the action sequence?
 *
 * ---
 * 
 * === Action Sequences - Angle ===
 * 
 * These action sequences allow you to have control over the camera angle.
 * Requires VisuMZ_3_ActSeqCamera!
 * 
 * ---
 *
 * ANGLE: Change Angle
 * - Changes the camera angle.
 * - Requires VisuMZ_3_ActSeqCamera!
 *
 *   Angle:
 *   - Change the camera angle to this many degrees.
 *
 *   Duration:
 *   - Duration in frames to change camera angle.
 *
 *   Angle Easing:
 *   - Select which easing type you wish to apply.
 *   - Requires VisuMZ_0_CoreEngine.
 *
 *   Wait For Angle?:
 *   - Wait for angle changes to complete before performing next command?
 *
 * ---
 *
 * ANGLE: Reset Angle
 * - Reset any angle settings.
 * - Requires VisuMZ_3_ActSeqCamera!
 *
 *   Duration:
 *   - Duration in frames to reset camera angle.
 *
 *   Angle Easing:
 *   - Select which easing type you wish to apply.
 *   - Requires VisuMZ_0_CoreEngine.
 *
 *   Wait For Angle?:
 *   - Wait for angle changes to complete before performing next command?
 *
 * ---
 *
 * ANGLE: Wait For Angle
 * - Waits for angle changes to complete before performing next command.
 * - Requires VisuMZ_3_ActSeqCamera!
 *
 * ---
 *
 * === Action Sequences - Animations ===
 *
 * These Action Sequences are related to the 'Animations' that can be found in
 * the Animations tab of the Database.
 *
 * ---
 *
 * ANIM: Action Animation
 * - Plays the animation associated with the action.
 *
 *   Targets:
 *   - Select unit(s) to play the animation on.
 *
 *   Mirror Animation:
 *   - Mirror the animation?
 *
 *   Wait For Animation?:
 *   - Wait for animation to complete before performing next command?
 *
 * ---
 *
 * ANIM: Attack Animation
 * - Plays the animation associated with the user's weapon.
 *
 *   Targets:
 *   - Select unit(s) to play the animation on.
 *
 *   Mirror Animation:
 *   - Mirror the animation?
 *
 *   Wait For Animation?:
 *   - Wait for animation to complete before performing next command?
 *
 * ---
 *
 * ANIM: Attack Animation 2+
 * - Plays the animation associated with the user's other weapons.
 * - Plays nothing if there is no other weapon equipped.
 *
 *   Targets:
 *   - Select unit(s) to play the animation on.
 * 
 *   Slot:
 *   - Which weapon slot to get this data from?
 *   - Main-hand weapon is weapon slot 1.
 *
 *   Mirror Animation:
 *   - Mirror the animation?
 *
 *   Wait For Animation?:
 *   - Wait for animation to complete before performing next command?
 *
 * ---
 * 
 * ANIM: Balloon Animation
 * - Plays a balloon animation on target(s).
 * 
 *   Targets:
 *   - Select unit(s) to play the animation on.
 * 
 *   Balloon Type:
 *   - What kind of balloon should be played on target(s)?
 * 
 *   Wait for Completion:
 *   - Wait for balloon animation completion before continuing?
 * 
 * ---
 * 
 * ANIM: Balloon Icon (Single)
 * - Plays a balloon animation using an icon on target(s).
 * - Requires VisuMZ_4_IconBalloons!
 * 
 *   Targets:
 *   - Select unit(s) to play the animation on.
 * 
 *   Icon Index:
 *   - Insert the ID of the icon to show.
 *   - Tip: Right click > Insert Icon Index
 * 
 *   Wait for Completion:
 *   - Wait for balloon animation completion before continuing?
 * 
 * ---
 * 
 * ANIM: Balloon Icon (Range)
 * - Plays a balloon animation an icon range on target(s).
 * - Requires VisuMZ_4_IconBalloons!
 * 
 *   Targets:
 *   - Select unit(s) to play the animation on.
 * 
 *   Starting Icon Index:
 *   - Insert the ID of the icon to show.
 *   - Tip: Right click > Insert Icon Index
 * 
 *   Ending Icon Index:
 *   - Insert the ID of the icon to show.
 *   - Tip: Right click > Insert Icon Index
 * 
 *   Wait for Completion:
 *   - Wait for balloon animation completion before continuing?
 * 
 * ---
 * 
 * ANIM: Balloon Icon (Specific)
 * - Plays a balloon animation with specific icons on target(s).
 * - Requires VisuMZ_4_IconBalloons!
 * 
 *   Targets:
 *   - Select unit(s) to play the animation on.
 * 
 *   Icons:
 *   - Insert the ID(s) of the icon to show.
 *   - Tip: Right click > Insert Icon Index
 * 
 *   Wait for Completion:
 *   - Wait for balloon animation completion before continuing?
 * 
 * ---
 *
 * ANIM: Cast Animation
 * - Plays the cast animation associated with the action.
 *
 *   Targets:
 *   - Select unit(s) to play the animation on.
 *
 *   Mirror Animation:
 *   - Mirror the animation?
 *
 *   Wait For Animation?:
 *   - Wait for animation to complete before performing next command?
 *
 * ---
 *
 * ANIM: Change Battle Portrait
 * - Changes the battle portrait of the actor (if it's an actor).
 * - Can be used outside of battle/action sequences.
 *
 *   Targets:
 *   - Select unit(s) to play the animation on.
 *   - Valid units can only be actors.
 *
 *   Filename:
 *   - Select the file to change the actor's portrait to.
 * 
 * ---
 *
 * ANIM: Change Battle Portrait (JS)
 * - Changes the battle portrait of the actor through JavaScript.
 * - Can be used outside of battle/action sequences.
 * 
 *   JS: Actor ID:
 *   - Enter which Actor ID to affect.
 *   - Uses JavaScript code.
 * 
 *   JS: Filename:
 *   - Enter the filename you wish to use.
 *   - Uses JavaScript code.
 * 
 * ---
 *
 * ANIM: Guard Animation
 * - Plays the animation associated with the user's guard action (if any).
 *
 *   Targets:
 *   - Select unit(s) to play the animation on.
 *
 *   Mirror Animation:
 *   - Mirror the animation?
 *
 *   Wait For Animation?:
 *   - Wait for animation to complete before performing next command?
 *
 * ---
 *
 * ANIM: Item Animation
 * - Plays the animation associated with a specific item.
 * 
 *   Item ID:
 *   - Which item ID will the animation come from?
 *
 *   Targets:
 *   - Select unit(s) to play the animation on.
 *
 *   Mirror Animation:
 *   - Mirror the animation?
 *
 *   Wait For Animation?:
 *   - Wait for animation to complete before performing next command?
 *
 * ---
 *
 * ANIM: Play at Coordinate
 * - Plays an animation on the screen at a specific x, y coordinate.
 * - Requires VisuMZ_0_CoreEngine!
 * 
 *   Animation ID:
 *   - Plays this animation.
 * 
 *   Coordinates:
 * 
 *     X:
 *     Y:
 *     - X/Y coordinate used for the animation.
 *       You may use JavaScript code.
 * 
 *   Mirror Animation?:
 *   - Mirror the animation?
 * 
 *   Mute Animation?:
 *   - Mute the animation?
 * 
 *   Wait for Completion?:
 *   - Wait the animation to finish before continuing?
 *
 * ---
 *
 * ANIM: Show Animation
 * - Plays the a specific animation on unit(s).
 *
 *   Targets:
 *   - Select unit(s) to play the animation on.
 *
 *   Animation ID:
 *   - Select which animation to play on unit(s).
 *
 *   Mirror Animation:
 *   - Mirror the animation?
 *
 *   Wait For Animation?:
 *   - Wait for animation to complete before performing next command?
 *
 * ---
 *
 * ANIM: Show Animation JS
 * - Plays the a specific animation on unit(s).
 * - Uses JavaScript to determine animation ID.
 *
 *   Targets:
 *   - Select unit(s) to play the animation on.
 *
 *   JS: Animation ID:
 *   - Select which animation to play on unit(s).
 *   - Uses JavaScript to determine animation ID.
 *
 *   Mirror Animation:
 *   - Mirror the animation?
 *
 *   Wait For Animation?:
 *   - Wait for animation to complete before performing next command?
 *
 * ---
 *
 * ANIM: Skill Animation
 * - Plays the animation associated with a specific skill.
 * 
 *   Skill ID:
 *   - Which skill ID will the animation come from?
 *
 *   Targets:
 *   - Select unit(s) to play the animation on.
 *
 *   Mirror Animation:
 *   - Mirror the animation?
 *
 *   Wait For Animation?:
 *   - Wait for animation to complete before performing next command?
 *
 * ---
 *
 * ANIM: Wait For Animation
 * - Causes the interpreter to wait for any animation(s) to finish.
 *
 * ---
 *
 * === Action Sequences - Battle Log ===
 *
 * These Action Sequences are related to the Battle Log Window, the window
 * found at the top of the battle screen.
 *
 * ---
 *
 * BTLOG: Add Text
 * - Adds a new line of text into the Battle Log.
 *
 *   Text:
 *   - Add this text into the Battle Log.
 *   - Text codes allowed.
 * 
 *   Copy to Combat Log?:
 *   - Copies text to the Combat Log.
 *   - Requires VisuMZ_4_CombatLog
 * 
 *     Combat Log Icon:
 *     - What icon would you like to bind to this entry?
 *     - Requires VisuMZ_4_CombatLog
 *
 * ---
 *
 * BTLOG: Clear Battle Log
 * - Clears all the text in the Battle Log.
 *
 * ---
 *
 * BTLOG: Display Action
 * - plays the current action in the Battle Log.
 *
 * ---
 *
 * BTLOG: Pop Base Line
 * - Removes the Battle Log's last added base line and  all text up to its
 *   former location.
 *
 * ---
 *
 * BTLOG: Push Base Line
 * - Adds a new base line to where the Battle Log currently is at.
 *
 * ---
 *
 * BTLOG: Refresh Battle Log
 * - Refreshes the Battle Log.
 *
 * ---
 *
 * BTLOG: UI Show/Hide
 * - Shows or hides the Battle UI (including the Battle Log).
 *
 *   Show/Hide?:
 *   - Shows/hides the Battle UI.
 *
 * ---
 *
 * BTLOG: Wait For Battle Log
 * - Causes the interpreter to wait for the Battle Log to finish.
 *
 * ---
 *
 * BTLOG: Wait For New Line
 * - Causes the interpreter to wait for a new line in the Battle Log.
 *
 * ---
 *
 * === Action Sequences - Camera ===
 *
 * These Action Sequences are battle camera-related.
 * Requires VisuMZ_3_ActSeqCamera!
 *
 * ---
 *
 * CAMERA: Clamp ON/OFF
 * - Turns battle camera clamping on/off.
 * - Requires VisuMZ_3_ActSeqCamera!
 *
 *   Setting:
 *   - Turns camera clamping on/off.
 *
 * ---
 *
 * CAMERA: Focus Point
 * - Focus the battle camera on a certain point in the screen.
 * - Requires VisuMZ_3_ActSeqCamera!
 *
 *   X Coordinate:
 *   - Insert the point to focus the camera on.
 *   - You may use JavaScript code.
 *
 *   Y Coordinate:
 *   - Insert the point to focus the camera on.
 *   - You may use JavaScript code.
 *
 *   Duration:
 *   - Duration in frames for camera focus change.
 *
 *   Camera Easing:
 *   - Select which easing type you wish to apply.
 *   - Requires VisuMZ_0_CoreEngine.
 *
 *   Wait For Camera?
 *   - Wait for camera changes to complete before performing next command?
 *
 * ---
 *
 * CAMERA: Focus Target(s)
 * - Focus the battle camera on certain battler target(s).
 * - Requires VisuMZ_3_ActSeqCamera!
 *
 *   Targets:
 *   - Select unit(s) to focus the battle camera on.
 *
 *   Duration:
 *   - Duration in frames for camera focus change.
 *
 *   Camera Easing:
 *   - Select which easing type you wish to apply.
 *   - Requires VisuMZ_0_CoreEngine.
 *
 *   Wait For Camera?
 *   - Wait for camera changes to complete before performing next command?
 *
 * ---
 *
 * CAMERA: Offset
 * - Offset the battle camera from the focus target.
 * - Requires VisuMZ_3_ActSeqCamera!
 *
 *   Offset X:
 *   - How much to offset the camera X by.
 *   - Negative: left. Positive: right.
 *
 *   Offset Y:
 *   - How much to offset the camera Y by.
 *   - Negative: up. Positive: down.
 *
 *   Duration:
 *   - Duration in frames for offset change.
 *
 *   Camera Easing:
 *   - Select which easing type you wish to apply.
 *   - Requires VisuMZ_0_CoreEngine.
 *
 *   Wait For Camera?
 *   - Wait for camera changes to complete before performing next command?
 *
 * ---
 *
 * CAMERA: Reset
 * - Reset the battle camera settings.
 * - Requires VisuMZ_3_ActSeqCamera!
 *
 *   Reset Focus?:
 *   - Reset the focus point?
 *
 *   Reset Offset?:
 *   - Reset the camera offset?
 *
 *   Duration:
 *   - Duration in frames for reset change.
 *
 *   Camera Easing:
 *   - Select which easing type you wish to apply.
 *   - Requires VisuMZ_0_CoreEngine.
 *
 *   Wait For Camera?
 *   - Wait for camera changes to complete before performing next command?
 *
 * ---
 *
 * CAMERA: Wait For Camera
 * - Waits for camera changes to complete before performing next command.
 * - Requires VisuMZ_3_ActSeqCamera!
 *
 * ---
 * 
 * === Action Sequences - Cutins ===
 * 
 * Allows you to have control over Visual Cutin Effects.
 * Requires VisuMZ_3_VisualCutinEffect!
 * 
 * ---
 * 
 * CUTIN: Add Visual Cutin Effect
 * - Adds the Visual Cutin Effect using these desired settings.
 * - Only one of each cutin-style type can be present at a time.
 * - Requires VisuMZ_3_VisualCutinEffect!
 * 
 *   Basic Settings:
 * 
 *     Cutin Style Type:
 *     - What Visual Cutin Effect style type do you wish to use?
 *     - Only one of each cutin-style type can be present.
 *     - Refer to VisuMZ wiki for visuals on styles.
 * 
 *     Portrait Target:
 *     - Select unit(s) to grab the Visual Cutin Effect portrait data from.
 *     - First unit will be used to make portrait.
 * 
 *     Parallax Filename:
 *     - Pick a parallax to use for the Visual Cutin Effect.
 *     - Pick (None) to not use a parallax.
 * 
 *     Background Color:
 *     - Use #rrggbb for custom colors or regular numbers for text colors from
 *       the Window Skin.
 *
 *   Extra Settings:
 *   - Extra Plugin Command settings pertaining to this Visual Cutin Effect.
 *   - An explanation for these settings are found in the Visual Cutin Effect
 *     help file and documentation.
 *   - Extra parameters are added for Parallax Scroll Inversion when the target
 *     is an enemy.
 * 
 *   Wait for Entrance:
 *   - Wait until cutin entrance is finished before performing the next
 *     event command?
 * 
 * ---
 *
 * CUTIN: End Visual Cutin Effect (All)
 * - Ends all Visual Cutin Effects currently present.
 * - Requires VisuMZ_3_VisualCutinEffect!
 * 
 *   Wait for Exit:
 *   - Wait until cutin exit is finished before performing the next
 *     event command?
 *
 * ---
 *
 * CUTIN: End Visual Cutin Effect (Type)
 * - Ends the Visual Cutin Effect with the matching type.
 * - Requires VisuMZ_3_VisualCutinEffect!
 *
 *   Cutin Style Type:
 *   - What Visual Cutin Effect style type do you wish to end?
 * 
 *   Wait for Exit:
 *   - Wait until cutin exit is finished before performing the next
 *     event command?
 *
 * ---
 * 
 * CUTIN: Wait for Cutin Entrance
 * - Wait until all cutin entrances are finished before performing the next
 *   event command.
 * - Requires VisuMZ_3_VisualCutinEffect!
 * 
 * ---
 * 
 * CUTIN: Wait for Cutin Exit
 * - Wait until all cutin exits are finished before performing the next
 *   event command.
 * - Requires VisuMZ_3_VisualCutinEffect!
 * 
 * ---
 *
 * === Action Sequences - Dragonbones ===
 *
 * These Action Sequences are Dragonbones-related.
 * Requires VisuMZ_2_DragonbonesUnion!
 *
 * ---
 *
 * DB: Dragonbones Animation
 * - Causes the unit(s) to play a Dragonbones motion animation.
 * - Requires VisuMZ_2_DragonbonesUnion!
 *
 *   Targets:
 *   - Select which unit(s) to perform a motion animation.
 *
 *   Motion Animation:
 *   - What is the name of the Dragonbones motion animation you wish to play?
 *
 * ---
 *
 * DB: Dragonbones Time Scale
 * - Causes the unit(s) to change their Dragonbones time scale.
 * - Requires VisuMZ_2_DragonbonesUnion!
 *
 *   Targets:
 *   - Select which unit(s) to perform a motion animation.
 *
 *   Time Scale:
 *   - Change the value of the Dragonbones time scale to this.
 *
 * ---
 *
 * === Action Sequences - Elements ===
 *
 * These Action Sequences can change up the element(s) used for the action's
 * damage calculation midway through an action.
 *
 * They also require the VisuMZ_1_ElementStatusCore plugin to be present in
 * order for them to work.
 *
 * ---
 *
 * ELE: Add Elements
 * - Adds element(s) to be used when calculating damage.
 * - Requires VisuMZ_1_ElementStatusCore!
 *
 *   Elements:
 *   - Select which element ID to add onto the action.
 *   - Insert multiple element ID's to add multiple at once.
 *
 * ---
 *
 * ELE: Clear Element Changes
 * - Clears all element changes made through Action Sequences.
 * - Requires VisuMZ_1_ElementStatusCore!
 *
 * ---
 *
 * ELE: Force Elements
 * - Forces only specific element(s) when calculating damage.
 * - Requires VisuMZ_1_ElementStatusCore!
 *
 *   Elements:
 *   - Select which element ID to force in the action.
 *   - Insert multiple element ID's to force multiple at once.
 *
 * ---
 *
 * ELE: Null Element
 * - Forces no element to be used when calculating damage.
 * - Requires VisuMZ_1_ElementStatusCore!
 *
 * ---
 * 
 * === Action Sequences - Grid ===
 * 
 * These Action Sequences are Battle Grid System-related.
 * Requires VisuMZ_2_BattleGridSystem!
 * 
 * ---
 * 
 * GRID: Action Animation at Node
 * - Plays action animation at target node.
 * - Requires VisuMZ_2_BattleGridSystem!
 * 
 *   Action-Selected Node?:
 *   - Use Action-Selected Node Coordinates if possible?
 *   - Requires "Empty" or "Any" for <Target: x Grid Node>
 *   - If the no action is in effect or the action doesn't use that target
 *     structure, use the node coordinates below:
 * 
 *     Unit:
 *     - Which unit's Node do you want to play an animation on?
 * 
 *     Rank:
 *     - Input the number representing the Rank of the Node you want to play an
 *       animation on.
 * 
 *     Flank:
 *     - Input the number representing the Flank of the Node you want to play
 *       an animation on.
 * 
 *   Offset X:
 *   - Offsets the animation x position.
 *   - Negative: left. Positive: right.
 * 
 *   Offset Y:
 *   - Offsets the animation y position.
 *   - Negative: up. Positive: down.
 * 
 * ---
 *
 * GRID: Add Passive State(s) to Node
 * - Adds Passive State(s) at target node.
 * - Requires VisuMZ_2_BattleGridSystem!
 *
 *   State ID(s):
 *   - Select which State ID(s) to add as a Passive State.
 * 
 *   Action-Selected Node?:
 *   - Use Action-Selected Node Coordinates if possible?
 *   - Requires "Empty" or "Any" for <Target: x Grid Node>
 *   - If the no action is in effect or the action doesn't use that target
 *     structure, use the node coordinates below:
 *
 *     Unit:
 *     - Which unit do you want to add the Passive State Node effect for?
 *
 *     Rank:
 *     - Input the number representing the Rank of the Node you want to add a
 *       Passive State(s) to.
 *
 *     Flank:
 *     - Input the number representing the Flank of the Node you want to add a
 *       Passive State(s) to.
 *
 * ---
 * 
 * GRID: Add Trigger to Node
 * - Adds Trigger to target node.
 * - Target node cannot have battler.
 * - Each node can only contain ONE trigger! 
 * - Otherwise, newly placed triggers will overwrite the old ones.
 * - Requires VisuMZ_2_BattleGridSystem!
 * 
 *   Skill ID:
 *   - Select which Skill ID(s) to add as the trigger.
 * 
 *   Action-Selected Node?:
 *   - Use Action-Selected Node Coordinates if possible?
 *   - Requires "Empty" or "Any" for <Target: x Grid Node>
 *   - If the no action is in effect or the action doesn't use that target
 *     structure, use the node coordinates below:
 * 
 *     Unit:
 *     - Which unit do you want to add the Trigger Node effect for?
 * 
 *     Rank:
 *     - Input the number representing the Rank of the Node you want to add a
 *       Trigger to.
 * 
 *     Flank:
 *     - Input the number representing the Flank of the Node you want to add a
 *       Trigger to.
 * 
 * ---
 * 
 * GRID: Add Trigger to Node JS
 * - Adds JS Trigger to target node.
 * - Target node cannot have battler.
 * - Each node can only contain ONE trigger! 
 * - Otherwise, newly placed triggers will overwrite the old ones.
 * - Requires VisuMZ_2_BattleGridSystem!
 * 
 *   JS: Skill ID:
 *   - Use JavaScript to determine what skill ID to add to this node.
 * 
 *   Action-Selected Node?:
 *   - Use Action-Selected Node Coordinates if possible?
 *   - Requires "Empty" or "Any" for <Target: x Grid Node>
 *   - If the no action is in effect or the action doesn't use that target
 *     structure, use the node coordinates below:
 * 
 *     Unit:
 *     - Which unit do you want to add the Trigger Node effect for?
 * 
 *     Rank:
 *     - Input the number representing the Rank of the Node you want to add a
 *       Trigger to.
 * 
 *     Flank:
 *     - Input the number representing the Flank of the Node you want to add a
 *       Trigger to.
 * 
 * ---
 * 
 * GRID: Animation ID at Node
 * - Plays specific animation ID at target node.
 * 
 *   Animation ID:
 *   - Play this animation at target node.
 * 
 *     Mirror?:
 *     - Mirror this animation?
 * 
 *     Mute?:
 *     - Mute this animation?
 * 
 *   Action-Selected Node?:
 *   - Use Action-Selected Node Coordinates if possible?
 *   - Requires "Empty" or "Any" for <Target: x Grid Node>
 *   - If the no action is in effect or the action doesn't use that target
 *     structure, use the node coordinates below:
 * 
 *     Unit:
 *     - Which unit's Node do you want to play an animation on?
 * 
 *     Rank:
 *     - Input the number representing the Rank of the Node you want to play an
 *       animation on.
 * 
 *     Flank:
 *     - Input the number representing the Flank of the Node you want to play
 *       an animation on.
 * 
 *   Offset X:
 *   - Offsets the animation x position.
 *   - Negative: left. Positive: right.
 * 
 *   Offset Y:
 *   - Offsets the animation y position.
 *   - Negative: up. Positive: down.
 * 
 * ---
 * 
 * GRID: Animation JS at Node
 * - Uses JS to calculate which animation to play at target node.
 * 
 *   JS: Animation ID:
 *   - Calculate which animation to play on unit(s).
 *   - Uses JavaScript to determine animation ID.
 * 
 *     Mirror?:
 *     - Mirror this animation?
 * 
 *     Mute?:
 *     - Mute this animation?
 * 
 *   Action-Selected Node?:
 *   - Use Action-Selected Node Coordinates if possible?
 *   - Requires "Empty" or "Any" for <Target: x Grid Node>
 *   - If the no action is in effect or the action doesn't use that target
 *     structure, use the node coordinates below:
 * 
 *     Unit:
 *     - Which unit's Node do you want to play an animation on?
 * 
 *     Rank:
 *     - Input the number representing the Rank of the Node you want to play an
 *       animation on.
 * 
 *     Flank:
 *     - Input the number representing the Flank of the Node you want to play
 *       an animation on.
 * 
 *   Offset X:
 *   - Offsets the animation x position.
 *   - Negative: left. Positive: right.
 * 
 *   Offset Y:
 *   - Offsets the animation y position.
 *   - Negative: up. Positive: down.
 * 
 * ---
 * 
 * GRID: Animation Type at Node
 * - Plays certain animation type at target node.
 * - Requires VisuMZ_2_BattleGridSystem!
 * 
 *   Type:
 *   - What is the animation type you would like to play?
 *     - Attack
 *     - Guard
 *     - Item
 *     - Skill
 * 
 *     Slot (Attack Type):
 *     - Which weapon slot to get this data from?
 *     - Main-hand weapon is weapon slot 1.
 * 
 *     Item ID (Item Type):
 *     - Which item ID will the animation come from?
 * 
 *     Skill ID (Skill Type):
 *     - Which skill ID will the animation come from?
 * 
 *   Action-Selected Node?:
 *   - Use Action-Selected Node Coordinates if possible?
 *   - Requires "Empty" or "Any" for <Target: x Grid Node>
 *   - If the no action is in effect or the action doesn't use that target
 *     structure, use the node coordinates below:
 * 
 *     Unit:
 *     - Which unit's Node do you want to play an animation on?
 * 
 *     Rank:
 *     - Input the number representing the Rank of the Node you want to play an
 *       animation on.
 * 
 *     Flank:
 *     - Input the number representing the Flank of the Node you want to play
 *       an animation on.
 * 
 *   Offset X:
 *   - Offsets the animation x position.
 *   - Negative: left. Positive: right.
 * 
 *   Offset Y:
 *   - Offsets the animation y position.
 *   - Negative: up. Positive: down.
 * 
 * ---
 * 
 * GRID: Move Target(s) In Direction
 * - Moves target(s) in a specific direction to other Nodes.
 * - Requires VisuMZ_2_BattleGridSystem!
 * - This will bypass the "once per action" condition used for both the
 *   <rule Move User Node direction: x> & <rule Move Target Node direction: x>
 *   notetags as this is not a notetag effect.
 * 
 *   Targets:
 *   - Select unit(s) to move.
 * 
 *   Movement Type:
 *   - Select the Movement type rulings.
 *   - See VisuMZ_2_BattleGridSystem help file for details.
 * 
 *     Direction:
 *     - Select the movement direction.
 * 
 *     Distance:
 *     - The number of nodes to be moved.
 *     - You may use JavaScript code.
 * 
 *   Duration:
 *   - Input the number representing the frames used to move.
 * 
 *   Silent Change?:
 *   - Silent: Discreet changes shown. More apparent later.
 *   - Visual: Instant changes shown.
 * 
 * ---
 * 
 * GRID: Pull To Target Node
 * - Pulls battlers towards target node.
 * - Requires VisuMZ_2_BattleGridSystem!
 * 
 *   Action-Selected Node?:
 *   - Use Action-Selected Node Coordinates if possible?
 *   - Requires "Empty" or "Any" for <Target: x Grid Node>
 *
 *     Unit:
 *     - Which unit do you want to pull on?
 *
 *     Rank:
 *     - Input the number representing the Rank of the Node you want to
 *       pull to.
 *
 *     Flank:
 *     - Input the number representing the Flank of the Node you want to
 *       pull to.
 * 
 *   Strength:
 *   - Input the strength level of the pull.
 * 
 *   Duration:
 *   - Input the number representing the frames used to move.
 * 
 * ---
 * 
 * GRID: Push From Target Node
 * - Pushes battlers away from target node.
 * - Requires VisuMZ_2_BattleGridSystem!
 * 
 *   Action-Selected Node?:
 *   - Use Action-Selected Node Coordinates if possible?
 *   - Requires "Empty" or "Any" for <Target: x Grid Node>
 *
 *     Unit:
 *     - Which unit do you want to push from?
 *
 *     Rank:
 *     - Input the number representing the Rank of the Node you want to
 *       push from.
 *
 *     Flank:
 *     - Input the number representing the Flank of the Node you want to
 *       push from.
 * 
 *   Strength:
 *   - Input the strength level of the push.
 * 
 *   Duration:
 *   - Input the number representing the frames used to move.
 * 
 * ---
 *
 * GRID: Remove All Passive States from Node
 * - Removes all Passive State effects at target node.
 * - Requires VisuMZ_2_BattleGridSystem!
 * 
 *   Action-Selected Node?:
 *   - Use Action-Selected Node Coordinates if possible?
 *   - Requires "Empty" or "Any" for <Target: x Grid Node>
 *   - If the no action is in effect or the action doesn't use that target
 *     structure, use the node coordinates below:
 *
 *     Unit:
 *     - Which unit do you want to clear the Node for?
 *
 *     Rank:
 *     - Input the number representing the Rank of the Node you want to clear
 *       Passive States from.
 *
 *     Flank:
 *     - Input the number representing the Flank of the Node you want to clear
 *       Passive States from.
 *
 * ---
 *
 * GRID: Remove Passive State(s) from Node
 * - Remove Passive State(s) at target node.
 * - Requires VisuMZ_2_BattleGridSystem!
 *
 *   State ID(s):
 *   - Select which State ID(s) to remove as a Passive State.
 * 
 *   Action-Selected Node?:
 *   - Use Action-Selected Node Coordinates if possible?
 *   - Requires "Empty" or "Any" for <Target: x Grid Node>
 *   - If the no action is in effect or the action doesn't use that target
 *     structure, use the node coordinates below:
 *
 *     Unit:
 *     - Which unit do you want to remove the Passive State Node effect for?
 *
 *     Rank:
 *     - Input the number representing the Rank of the Node you want to remove
 *       a Passive State(s) from.
 *
 *     Flank:
 *     - Input the number representing the Flank of the Node you want to remove
 *       a Passive State(s) from.
 *
 * ---
 * 
 * GRID: Remove Trigger from Node
 * - Removes Trigger at target node.
 * - Requires VisuMZ_2_BattleGridSystem!
 * 
 *   Action-Selected Node?:
 *   - Use Action-Selected Node Coordinates if possible?
 *   - Requires "Empty" or "Any" for <Target: x Grid Node>
 *   - If the no action is in effect or the action doesn't use that target
 *     structure, use the node coordinates below:
 * 
 *     Unit:
 *     - Which unit do you want to clear Triggers for?
 * 
 *     Rank:
 *     - Input the number representing the Rank of the Node you want to clear
 *       Triggers from.
 * 
 *     Flank:
 *     - Input the number representing the Flank of the Node you want to clear
 *       Triggers from.
 * 
 * ---
 * 
 * === Action Sequences - Horror Effects ===
 * 
 * These Action Sequences are Horror Effects-related.
 * Requires VisuMZ_2_HorrorEffects!
 * 
 * ---
 *
 * HORROR: Clear All Filters
 * - Clear all Horror Effects filters on the target battler(s).
 *
 *   Targets:
 *   - Select unit(s) to remove Horror Effects for.
 *
 * ---
 *
 * HORROR: Glitch Create
 * - Creates the glitch effect on the target battler(s).
 *
 *   Targets:
 *   - Select unit(s) to create the Horror Effect for.
 *
 *   Glitch Slices:
 *   - Glitch slices to be used with the target.
 *
 *   Glitch Offset:
 *   - Default offset value.
 *
 *   Glitch Animated?:
 *   - Animate the glitch effect?
 *
 *   Glitch Frequency:
 *   - If animated, how frequent to make the glitch effect?
 *   - Lower = often     Higher = rarer
 *
 *   Glitch Strength:
 *   - If animated, how strong is the glitch effect?
 *   - Lower = weaker     Higher = stronger
 *
 * ---
 *
 * HORROR: Glitch Remove
 * - Removes the glitch effect on the target battler(s).
 *
 *   Targets:
 *   - Select unit(s) to remove the Horror Effect for.
 *
 * ---
 *
 * HORROR: Noise Create
 * - Creates the noise effect on the target battler(s).
 *
 *   Targets:
 *   - Select unit(s) to create the Horror Effect for.
 *
 *   Noise Rate:
 *   - Noise rate to be used with the target.
 *
 *   Noise Animated:
 *   - Animate the noise for the target?
 *
 * ---
 *
 * HORROR: Noise Remove
 * - Removes the noise effect on the target battler(s).
 *
 *   Targets:
 *   - Select unit(s) to remove the Horror Effect for.
 *
 * ---
 *
 * HORROR: TV Create
 * - Creates the TV effect on the target battler(s).
 *
 *   Targets:
 *   - Select unit(s) to create the Horror Effect for.
 *
 *   TV Line Thickness:
 *   - Default TV line thickness
 *   - Lower = thinner     Higher = thicker
 *
 *   TV Corner Size:
 *   - Default TV line corner size
 *   - Lower = smaller     Higher = bigger
 *
 *   TV Animated:
 *   - Animate the TV?
 *
 *   TV Speed:
 *   - Speed used to animate the TV if animated
 *   - Lower = slower     Higher = faster
 *
 * ---
 *
 * HORROR: TV Remove
 * - Removes the TV effect on the target battler(s).
 *
 *   Targets:
 *   - Select unit(s) to remove the Horror Effect for.
 *
 * ---
 * 
 * === Action Sequences - Impact ===
 * 
 * These Action Sequences are related to creating impact.
 * Requires VisuMZ_3_ActSeqImpact!
 * 
 * ---
 *
 * IMPACT: Bizarro Inversion
 * - Swaps blue/red colors on the battlefield.
 * - Requires VisuMZ_3_ActSeqImpact!
 * - Created by Manu Gaming!
 *
 *   Bizarro?:
 *   - Enable Bizarro Inversion effect?
 *
 * ---
 *
 * IMPACT: Color Break
 * - Breaks the colors on the screen before reassembling.
 * - Requires VisuMZ_3_ActSeqImpact!
 *
 *   Intensity:
 *   - What is the intensity of the color break effect?
 *
 *   Duration:
 *   - What is the duration of the color break effect?
 *
 *   Easing Type:
 *   - Select which easing type you wish to apply.
 *
 * ---
 *
 * IMPACT: Desaturation
 * - Desaturates all colors on the battlefield.
 * - Requires VisuMZ_3_ActSeqImpact!
 * - Created by Manu Gaming!
 *
 *   Desaturate?:
 *   - Enable Desaturation effect?
 *
 * ---
 *
 * IMPACT: Motion Blur Screen
 * - Creates a motion blur on the whole screen.
 * - Requires VisuMZ_3_ActSeqImpact!
 *
 *   Angle:
 *   - Determine what angle to make the motion blur at.
 *
 *   Intensity Rate:
 *   - This determines intensity rate of the motion blur.
 *   - Use a number between 0 and 1.
 *
 *   Duration:
 *   - How many frames should the motion blur last?
 *   - What do you want to be its duration?
 *
 *   Easing Type:
 *   - Select which easing type you wish to apply.
 *
 * ---
 *
 * IMPACT: Motion Blur Target(s)
 * - Creates a motion blur on selected target(s).
 * - Requires VisuMZ_3_ActSeqImpact!
 *
 *   Targets:
 *   - Select unit(s) to create motion blur effects for.
 *
 *   Angle:
 *   - Determine what angle to make the motion blur at.
 *
 *   Intensity Rate:
 *   - This determines intensity rate of the motion blur.
 *   - Use a number between 0 and 1.
 *
 *   Duration:
 *   - How many frames should the motion blur last?
 *   - What do you want to be its duration?
 *
 *   Easing Type:
 *   - Select which easing type you wish to apply.
 *
 * ---
 *
 * IMPACT: Motion Trail Create
 * - Creates a motion trail effect for the target(s).
 * - Requires VisuMZ_3_ActSeqImpact!
 *
 *   Targets:
 *   - Select unit(s) to create motion trail effects for.
 *
 *   Delay:
 *   - How many frames to delay by when creating a motion trail?
 *   - The higher the delay, the less motion trails there are.
 *
 *   Duration:
 *   - How many frames should the motion trail last?
 *   - What do you want to be its duration?
 *
 *   Hue:
 *   - What do you want to be the hue for the motion trail?
 *
 *   Starting Opacity:
 *   - What starting opacity value do you want for the motion trail?
 *   - Opacity values decrease over time.
 *
 *   Tone:
 *   - What tone do you want for the motion trail?
 *   - Format: [Red, Green, Blue, Gray]
 *
 * ---
 *
 * IMPACT: Motion Trail Remove
 * - Removes the motion trail effect from the target(s).
 * - Requires VisuMZ_3_ActSeqImpact!
 *
 *   Targets:
 *   - Select unit(s) to clear motion trail effects for.
 *
 * ---
 *
 * IMPACT: Negative Inversion
 * - Inverts all the colors on the battlefield.
 * - Requires VisuMZ_3_ActSeqImpact!
 * - Created by Manu Gaming!
 *
 *   Negative?:
 *   - Enable Negative Inversion effect?
 *
 * ---
 *
 * IMPACT: Oversaturation
 * - Oversaturates colors on the battlefield.
 * - Requires VisuMZ_3_ActSeqImpact!
 *
 *   Oversaturate?:
 *   - Enable Oversaturation effect?
 *
 * ---
 *
 * IMPACT: Shockwave at Point
 * - Creates a shockwave at the designated coordinates.
 * - Requires VisuMZ_3_ActSeqImpact!
 *
 *   Point: X:
 *   Point: Y:
 *   - What x/y coordinate do you want to create a shockwave at?
 *   - You can use JavaScript code.
 *
 *   Amplitude:
 *   - What is the aplitude of the shockwave effect?
 *
 *   Wavelength:
 *   - What is the wavelength of the shockwave effect?
 *
 *   Duration:
 *   - What is the duration of the shockwave?
 *
 * ---
 *
 * IMPACT: Shockwave from Each Target(s)
 * - Creates a shockwave at each of the target(s) location(s).
 * - Requires VisuMZ_3_ActSeqImpact!
 *
 *   Targets:
 *   - Select unit(s) to start a shockwave from.
 *
 *   Target Location:
 *   - Select which part target group to start a shockwave from.
 * 
 *     Offset X:
 *     Offset Y:
 *     - How much to offset the shockwave X/Y point by.
 *
 *   Amplitude:
 *   - What is the aplitude of the shockwave effect?
 *
 *   Wavelength:
 *   - What is the wavelength of the shockwave effect?
 *
 *   Duration:
 *   - What is the duration of the shockwave?
 *
 * ---
 *
 * IMPACT: Shockwave from Target(s) Center
 * - Creates a shockwave from the center of the target(s).
 * - Requires VisuMZ_3_ActSeqImpact!
 *
 *   Targets:
 *   - Select unit(s) to start a shockwave from.
 *
 *   Target Location:
 *   - Select which part target group to start a shockwave from.
 * 
 *     Offset X:
 *     Offset Y:
 *     - How much to offset the shockwave X/Y point by.
 *
 *   Amplitude:
 *   - What is the aplitude of the shockwave effect?
 *
 *   Wavelength:
 *   - What is the wavelength of the shockwave effect?
 *
 *   Duration:
 *   - What is the duration of the shockwave?
 *
 * ---
 *
 * IMPACT: Time Scale
 * - Adjust time to go faster or slower!
 * - Requires VisuMZ_3_ActSeqImpact!
 * - Created by Manu Gaming!
 *
 *   Scale:
 *   - Adjusts how fast/slow time goes.
 *   - 1.00 is normal. Lower is slower. Higher is faster.
 *
 * ---
 *
 * IMPACT: Time Stop
 * - Stops time for a set amount of milliseconds.
 * - Requires VisuMZ_3_ActSeqImpact!
 * - Created by Manu Gaming!
 *
 *   Milliseconds:
 *   - How many milliseconds should time stop for?
 *   - 1000 milliseconds = 1 second.
 *
 * ---
 *
 * IMPACT: Zoom Blur at Point
 * - Creates a zoom blur at the designated coordinates.
 * - Requires VisuMZ_3_ActSeqImpact!
 *
 *   Point: X:
 *   Point: Y:
 *   - What x/y coordinate do you want to focus the zoom at?
 *   - You can use JavaScript code.
 *
 *   Zoom Strength:
 *   - What is the strength of the zoom effect?
 *   - Use a number between 0 and 1.
 *
 *   Visible Radius:
 *   - How much of a radius should be visible from the center?
 *
 *   Duration:
 *   - What is the duration of the zoom blur?
 *
 *   Easing Type:
 *   - Select which easing type you wish to apply.
 *
 * ---
 *
 * IMPACT: Zoom Blur at Target(s) Center
 * - Creates a zoom blur at the center of targets.
 * - Requires VisuMZ_3_ActSeqImpact!
 *
 *   Targets:
 *   - Select unit(s) to start a zoom blur from.
 *
 *   Target Location:
 *   - Select which part target group to start a zoom blur from.
 * 
 *     Offset X:
 *     Offset Y:
 *     - How much to offset the zoom blur X/Y point by.
 *
 *   Zoom Strength:
 *   - What is the strength of the zoom effect?
 *   - Use a number between 0 and 1.
 *
 *   Visible Radius:
 *   - How much of a radius should be visible from the center?
 *
 *   Duration:
 *   - What is the duration of the zoom blur?
 *
 *   Easing Type:
 *   - Select which easing type you wish to apply.
 *
 * ---
 *
 * === Action Sequences - Inject ===
 *
 * These Action Sequences are related to injecting sprite animations.
 * Requires VisuMZ_3_ActSeqImpact!
 *
 * ---
 * 
 * INJECT: Animation Begin
 * - Injects and plays a whole spritesheet animation.
 * - The spritesheet animation will play over the battler until it is finished.
 * - The battler's original sprite will be invisible until finished.
 * - Requires VisuMZ_3_ActSeqImpact!
 * 
 *   Targets:
 *   - Select unit(s) to inject the animation on.
 * 
 *   Filename:
 *   - Select the animation spritesheet file.
 *   - Located in the /img/sv_actors/ folder.
 * 
 *     Horizontal Cells:
 *     - How many horizontal cells (or columns) are there?
 * 
 *     Vertical Cells:
 *     - How many vertical cells (or rows) are there?
 * 
 *     Frame Delay:
 *     - How many frames are played inbetween cells?
 * 
 *     Smooth Bitmap?:
 *     - Smooth the spritesheet graphic?
 * 
 *   Offset:
 * 
 *     Offset X:
 *     - Offsets the X position of the injected animation.
 *     - Negative: left. Positive: right.
 * 
 *     Offset Y:
 *     - Offsets the Y position of the injected animation.
 *     - Negative: up. Positive: down.
 * 
 * ---
 * 
 * INJECT: Animation End
 * - Stops and ends any injected animations on target(s).
 * - Any inject animation will be prematurely terminated.
 * - Requires VisuMZ_3_ActSeqImpact!
 * 
 *   Targets:
 *   - Select unit(s) to stop injected animation(s).
 * 
 * ---
 * 
 * INJECT: Animation Pause/Resume
 * - Pauses/resumes any injected animations on target(s).
 * - Requires VisuMZ_3_ActSeqImpact!
 * 
 *   Targets:
 *   - Select unit(s) to pause/resume injected animation(s).
 * 
 *   Pause?:
 *   - Pause the injected animation?
 * 
 * ---
 * 
 * INJECT: Wait For Injected Animation
 * - Waits for injected animations to complete before performing next command.
 * - Requires VisuMZ_3_ActSeqImpact!
 * 
 * ---
 *
 * === Action Sequences - Mechanics ===
 *
 * These Action Sequences are related to various mechanics related to the
 * battle system.
 *
 * ---
 *
 * MECH: Action Effect
 * - Causes the unit(s) to take damage/healing from action and incurs any
 *   changes made such as buffs and states.
 *
 *   Targets:
 *   - Select unit(s) to receive the current action's effects.
 *
 * ---
 * 
 * MECH: Active Chain Input Disable
 * - Disables input for Active Chain Skills at this time.
 * - Requires VisuMZ_3_ActiveChainSkills!
 * 
 * ---
 *
 * MECH: Add Buff/Debuff
 * - Adds buff(s)/debuff(s) to unit(s). 
 * - Determine which parameters are affected and their durations.
 *
 *   Targets:
 *   - Select unit(s) to receive the buff(s) and/or debuff(s).
 *
 *   Buff Parameters:
 *   - Select which parameter(s) to buff.
 *   - Insert a parameter multiple times to raise its stacks.
 *
 *   Debuff Parameters:
 *   - Select which parameter(s) to debuff.
 *   - Insert a parameter multiple times to raise its stacks.
 *
 *   Turns:
 *   - Number of turns to set the parameter(s) buffs to.
 *   - You may use JavaScript code.
 *
 * ---
 *
 * MECH: Add State
 * - Adds state(s) to unit(s).
 *
 *   Targets:
 *   - Select unit(s) to receive the buff(s).
 *
 *   States:
 *   - Select which state ID(s) to add to unit(s).
 *   - Insert multiple state ID's to add multiple at once.
 *
 * ---
 * 
 * MECH: Analyze Weakness
 * - Reveal elemental weakness(es) from target(s).
 * - Requires VisuMZ_3_WeaknessDisplay!
 * 
 *   Targets:
 *   - Select unit(s) to reveal elemental weaknesses for.
 * 
 *   Reveal:
 *   - How many elemental weaknesses do you wish to reveal?
 *   - You may use JavaScript code.
 * 
 * ---
 *
 * MECH: Armor Penetration
 * - Adds an extra layer of defensive penetration/reduction.
 * - You may use JavaScript code for any of these.
 *
 *   Armor/Magic Penetration:
 *
 *     Rate:
 *     - Penetrates an extra multiplier of armor by this value.
 *
 *     Flat:
 *     - Penetrates a flat amount of armor by this value.
 *
 *   Armor/Magic Reduction:
 *
 *     Rate:
 *     - Reduces an extra multiplier of armor by this value.
 *
 *     Flat:
 *     - Reduces a flat amount of armor by this value.
 *
 * ---
 * 
 * MECH: ATB Gauge
 * - Alters the ATB/TPB Gauges.
 * - Requires VisuMZ_2_BattleSystemATB!
 * 
 *   Targets:
 *   - Select unit(s) to alter the ATB/TPB Gauges for.
 * 
 *   Charging:
 *   
 *     Charge Rate:
 *     - Changes made to the ATB Gauge if it is currently charging.
 * 
 *   Casting:
 *   
 *     Cast Rate:
 *     - Changes made to the ATB Gauge if it is currently casting.
 *   
 *     Interrupt?:
 *     - Interrupt the ATB Gauge if it is currently casting?
 * 
 * ---
 * 
 * MECH: Boost Points Change
 * - Changes Boost Points for target(s).
 * - Requires VisuMZ_3_BoostAction!
 * 
 *   Targets:
 *   - Select unit(s) to alter the Boost Points for.
 * 
 *   Alter Boost Points By:
 *   - Alters the unit(s) Boost Points.
 *   - Positive for gaining points. Negative for losing points.
 * 
 * ---
 * 
 * MECH: Boost Store Data
 * - Stores the number of Boosts used this action inside a variable.
 * - Requires VisuMZ_3_BoostAction!
 * 
 *   Variable ID:
 *   - Which variable do you want to store the data inside?
 * 
 * ---
 * 
 * MECH: Break Shield Change
 * - Changes Break Shields for target(s) if not Break Stunned.
 * - Requires VisuMZ_4_BreakShields!
 * 
 *   Targets:
 *   - Select unit(s) to alter the Break Shields for.
 * 
 *   Alter Break Shields By:
 *   - Alters the unit(s) Break Shields.
 *   - Positive for gaining shields. Negative for losing shields.
 * 
 * ---
 * 
 * MECH: Break Shield Reset
 * - Resets Break Shields for target(s) if not Break Stunned.
 * - Requires VisuMZ_4_BreakShields!
 * 
 *   Targets:
 *   - Select unit(s) to reset the Break Shields for.
 * 
 * ---
 * 
 * MECH: BTB Brave Points
 * - Alters the target(s) Brave Points to an exact value.
 * - Requires VisuMZ_2_BattleSystemBTB!
 * 
 *   Targets:
 *   - Select unit(s) to alter the ATB/TPB Gauges for.
 * 
 *   Alter Brave Points By:
 *   - Alters the target(s) Brave Points.
 *   - Positive for gaining BP.
 *   - Negative for losing BP.
 * 
 * ---
 *
 * MECH: Collapse
 * - Causes the unit(s) to perform its collapse animation if the unit(s)
 *   has died.
 *
 *   Targets:
 *   - Select unit(s) to process a death collapse.
 *
 *   Force Death:
 *   - Force death even if the unit has not reached 0 HP?
 *   - This will remove immortality.
 *
 *   Wait For Effect?:
 *   - Wait for the collapse effect to complete before performing next command?
 *
 * ---
 * 
 * MECH: CTB Order
 * - Alters the CTB Turn Order.
 * - Requires VisuMZ_2_BattleSystemCTB!
 * 
 *   Targets:
 *   - Select unit(s) to alter the CTB Turn Order for.
 * 
 *   Change Order By:
 *   - Changes turn order for target(s) by this amount.
 *   - Positive increases wait. Negative decreases wait.
 * 
 * ---
 * 
 * MECH: CTB Speed
 * - Alters the CTB Speed.
 * - Requires VisuMZ_2_BattleSystemCTB!
 * 
 *   Targets:
 *   - Select unit(s) to alter the CTB Speed for.
 * 
 *   Charge Rate:
 *   - Changes made to the CTB Speed if it is currently charging.
 * 
 *   Cast Rate:
 *   - Changes made to the CTB Speed if it is currently casting.
 * 
 * ---
 * 
 * MECH: Custom Damage Formula
 * - Changes the current action's damage formula to custom.
 * - This will assume the MANUAL damage style.
 * 
 *   Formula:
 *   - Changes the current action's damage formula to custom.
 *   - Use 'default' to revert the damage formula.
 * 
 * ---
 *
 * MECH: Damage Popup
 * - Causes the unit(s) to display the current state of damage received
 *   or healed.
 *
 *   Targets:
 *   - Select unit(s) to prompt a damage popup.
 *
 * ---
 *
 * MECH: Dead Label Jump
 * - If the active battler is dead, jump to a specific label in the
 *   common event.
 *
 *   Jump To Label:
 *   - If the active battler is dead, jump to this specific label in the
 *     common event.
 *
 * ---
 * 
 * MECH: Emulate Attack Effect
 * - Emulate an "Action Effect" but using a the user's attack skill instead of
 *   the current action.
 * - Essentially lets you perform the mechanics of another action without
 *   having to use another action or needing to pay that action's costs.
 * 
 *   User(s):
 *   - Select unit(s) to perform the action's effects.
 * 
 *   Targets:
 *   - Select unit(s) to receive the current action's effects.
 * 
 * ---
 * 
 * MECH: Emulate Guard Effect
 * - Emulate an "Action Effect" but using a the user's guard skill instead of
 *   the current action.
 * - Essentially lets you perform the mechanics of another action without
 *   having to use another action or needing to pay that action's costs.
 * 
 *   User(s):
 *   - Select unit(s) to perform the action's effects.
 * 
 *   Targets:
 *   - Select unit(s) to receive the current action's effects.
 * 
 * ---
 * 
 * MECH: Emulate Item Effect
 * - Emulate an "Action Effect" but using a specific item instead of the
 *   current action.
 * - Essentially lets you perform the mechanics of another action without
 *   having to use another action or needing to pay that action's costs.
 * 
 *   Item ID:
 *   - Which item ID will be emulated?
 * 
 *   User(s):
 *   - Select unit(s) to perform the action's effects.
 * 
 *   Targets:
 *   - Select unit(s) to receive the current action's effects.
 * 
 * ---
 * 
 * MECH: Emulate Skill Cost
 * - Pick a skill for target(s) to emulate paying the cost of.
 * - Lets you cause characters to perform paying the costs of a specific skill
 *   without needing to actually use them.
 * - This will include Skill Cooldowns and Limited Skill Uses.
 * 
 *   Skill ID:
 *   - Which skill ID will have its cost paid for?
 *   - Use 0 for current action's skill.
 * 
 *   User(s):
 *   - Select unit(s) to perform the action's effects.
 * 
 * ---
 * 
 * MECH: Emulate Skill Effect
 * - Emulate an "Action Effect" but using a specific skill instead of the
 *   current action.
 * - Essentially lets you perform the mechanics of another action without
 *   having to use another action or needing to pay that action's costs.
 * 
 *   Skill ID:
 *   - Which skill ID will be emulated?
 * 
 *   User(s):
 *   - Select unit(s) to perform the action's effects.
 * 
 *   Targets:
 *   - Select unit(s) to receive the current action's effects.
 * 
 * ---
 *
 * MECH: Enemy Escape
 * - Causes the enemy unit(s) to escape.
 *
 *   Targets:
 *   - Select unit(s) to escape.
 *
 * ---
 *
 * MECH: ETB Energy Count
 * - Alters the subject team's available Energy Count.
 * - Requires VisuMZ_2_BattleSystemETB!
 *
 *   Energy Count:
 *   - Alters the subject team's available Energy Count.
 *   - Positive for gaining energy. Negative for losing energy.
 *
 * ---
 *
 * MECH: FTB Action Count
 * - Alters the subject team's available Action Count.
 * - Requires VisuMZ_2_BattleSystemFTB!
 *
 *   Action Count:
 *   - Alters the subject team's available Action Count.
 *   - Positive for gaining actions. Negative for losing actions.
 *
 * ---
 *
 * MECH: HP, MP, TP
 * - Alters the HP, MP, and TP values for unit(s).
 * - Positive values for healing. Negative values for damage.
 *
 *   Targets:
 *   - Select unit(s) to receive the current action's effects.
 *
 *   HP, MP, TP:
 *
 *     Rate:
 *     - Changes made to the parameter based on rate.
 *     - Positive values for healing. Negative values for damage.
 *
 *     Flat:
 *     - Flat changes made to the parameter.
 *     - Positive values for healing. Negative values for damage.
 *
 *   Damage Popup?:
 *   - Display a damage popup after?
 *
 * ---
 *
 * MECH: Immortal
 * - Changes the immortal flag of targets. If immortal flag is removed and a
 *   unit would die, collapse that unit.
 *
 *   Targets:
 *   - Alter the immortal flag of these groups. If immortal flag is removed and
 *     a unit would die, collapse that unit.
 *
 *   Immortal:
 *   - Turn immortal flag for unit(s) on/off?
 *
 * ---
 *
 * MECH: Multipliers
 * - Changes the multipliers for the current action.
 * - You may use JavaScript code for any of these.
 *
 *   Critical Hit%:
 *
 *     Rate:
 *     - Affects chance to land a critical hit by this multiplier.
 *
 *     Flat:
 *     - Affects chance to land a critical hit by this flat bonus.
 *
 *   Critical Damage
 *
 *     Rate:
 *     - Affects critical damage by this multiplier.
 *
 *     Flat:
 *     - Affects critical damage by this flat bonus.
 *
 *   Damage/Healing
 *
 *     Rate:
 *     - Sets the damage/healing multiplier for current action.
 *
 *     Flat:
 *     - Sets the damage/healing bonus for current action.
 *
 *   Hit Rate
 *
 *     Rate:
 *     - Affects chance to connect attack by this multiplier.
 *
 *     Flat:
 *     - Affects chance to connect attack by this flat bonus.
 *
 * ---
 * 
 * MECH: Once Parallel
 * - Plays a Common Event parallel to the battle event once without repeating
 *   itself when done.
 * 
 *   Common Event ID:
 *   - The ID of the parallel Common Event to play.
 *   - Does NOT repeat itself when finished.
 *   - When exiting battle scene, all Once Parallels are cleared.
 *   - Once Parallels are not retained upon reentering the scene.
 *   - Once Parallels are not stored in memory and cannot be saved.
 * 
 * ---
 * 
 * MECH: OTB Order
 * - Alters the OTB Turn Order. Best used with single targets.
 * - Requires VisuMZ_2_BattleSystemOTB!
 * 
 *   Targets:
 *   - Select unit(s) to alter the OTB Turn Order for.
 * 
 *   Current Turn By:
 *   - Changes turn order for target(s) by this amount.
 *   - Positive increases wait. Negative decreases wait.
 * 
 *   Next Turn By:
 *   - Changes turn order for target(s) by this amount.
 *   - Positive increases wait. Negative decreases wait.
 * 
 *   Follow Turn By:
 *   - Changes turn order for target(s) by this amount.
 *   - Positive increases wait. Negative decreases wait.
 * 
 * ---
 * 
 * MECH: PTB Alter Cost
 * - Alters the action's cost settings.
 * - Requires VisuMZ_2_BattleSystemPTB!
 * 
 *   Override?:
 *   - Overrides any 'permanent' settings for Changeability?
 * 
 *   Alter Changeability:
 *   - Allow the cost type and value to be changeable?
 * 
 *   Alter Cost Type:
 *   - Change the cost type to this scenario.
 *   - Use 'Unchanged' for no changes.
 * 
 *   Alter Cost Value:
 *   - What is the default action cost for this scenario?
 * 
 *   Priority:
 *   - What is this scenario's priority? Scenario outcomes with equal or lower
 *     priorities cannot override types and costs.
 * 
 * ---
 * 
 * MECH: PTB Conversion
 * - Converts full actions into half actions.
 * - Requires VisuMZ_2_BattleSystemPTB!
 * 
 *   Conversion Count:
 *   - Converts full actions into half actions.
 *   - If not enough, consume half actions.
 * 
 * ---
 * 
 * MECH: PTB Full/Half Action(s)
 * - Alters the subject team's available Full/Half Actions.
 * - Requires VisuMZ_2_BattleSystemPTB!
 * 
 *   Full Actions:
 *   - Alters the subject team's available Full Actions.
 *   - Positive for gaining. Negative for losing.
 * 
 *   Half Actions:
 *   - Alters the subject team's available Half Actions.
 *   - Positive for gaining. Negative for losing.
 * 
 * ---
 *
 * MECH: Remove Buff/Debuff
 * - Removes buff(s)/debuff(s) from unit(s). 
 * - Determine which parameters are removed.
 *
 *   Targets:
 *   - Select unit(s) to have the buff(s) and/or debuff(s) removed.
 *
 *   Buff Parameters:
 *   - Select which buffed parameter(s) to remove.
 *
 *   Debuff Parameters:
 *   - Select which debuffed parameter(s) to remove.
 *
 * ---
 *
 * MECH: Remove State
 * - Remove state(s) from unit(s).
 *
 *   Targets:
 *   - Select unit(s) to have states removed from.
 *
 *   States:
 *   - Select which state ID(s) to remove from unit(s).
 *   - Insert multiple state ID's to remove multiple at once.
 *
 * ---
 * 
 * MECH: State Turns Change By
 * - Changes target(s) state turns by an amount.
 * - Requires VisuMZ_1_SkillsStatesCore!
 * 
 *   Targets:
 *   - Select unit(s) to affect state turns for.
 * 
 *   State ID:
 *   - What is the ID of the state you wish to change turns for?
 *   - Only works on states that can have turns.
 * 
 *   Change Turns By:
 *   - How many turns should the state be changed to?
 *   - You may use JavaScript code.
 * 
 *   Auto-Add State?:
 *   - Automatically adds state if actor(s) does not have it applied?
 * 
 * ---
 * 
 * MECH: State Turns Change To
 * - Changes target(s) state turns to a specific value.
 * - Requires VisuMZ_1_SkillsStatesCore!
 * 
 *   Targets:
 *   - Select unit(s) to affect state turns for.
 * 
 *   State ID:
 *   - What is the ID of the state you wish to change turns for?
 *   - Only works on states that can have turns.
 * 
 *   Change Turns To:
 *   - How many turns should the state be changed to?
 *   - You may use JavaScript code.
 * 
 *   Auto-Add State?:
 *   - Automatically adds state if target(s) does not have it applied?
 * 
 * ---
 * 
 * MECH: STB Exploit Effect
 * - Utilize the STB Exploitation mechanics!
 * - Requires VisuMZ_2_BattleSystemSTB!
 * 
 *   Target(s) Exploited?:
 *   - Exploit the below targets?
 * 
 *     Targets:
 *     - Select unit(s) to become exploited.
 * 
 *     Force Exploitation:
 *     - Force the exploited status?
 * 
 *   User Exploiter?:
 *   - Allow the user to become the exploiter?
 * 
 *     Force Exploitation:
 *     - Force the exploiter status?
 * 
 * ---
 * 
 * MECH: STB Extra Action
 * - Adds an extra action for the currently active battler.
 * - Requires VisuMZ_2_BattleSystemSTB!
 * 
 *   Extra Actions:
 *   - How many extra actions should the active battler gain?
 *   - You may use JavaScript code.
 * 
 * ---
 * 
 * MECH: STB Remove Excess Actions
 * - Removes excess actions from the active battler.
 * - Requires VisuMZ_2_BattleSystemSTB!
 * 
 *   Remove Actions:
 *   - How many actions to remove from the active battler?
 *   - You may use JavaScript code.
 * 
 * ---
 * 
 * MECH: Swap Weapon
 * - Causes the unit(s) to swap their weapon for another.
 * - Requires VisuMZ_2_WeaponSwapSystem!
 * 
 *   Targets:
 *   - Select unit(s) to swap weapons for.
 * 
 *   Weapon Type ID:
 *   - Which weapon type to swap to?
 *   - This is NOT the weapon's ID.
 *   - It's the weapon TYPE.
 * 
 * ---
 * 
 * MECH: Text Popup
 * - Causes the unit(s) to display a text popup.
 * 
 *   Targets:
 *   - Select unit(s) to prompt a text popup.
 * 
 *   Text:
 *   - What text do you wish to display?
 * 
 *   Text Color:
 *   - Use #rrggbb for custom colors or regular numbers for text colors from
 *     the Window Skin.
 * 
 *   Flash Color:
 *   - Adjust the popup's flash color.
 *   - Format: [red, green, blue, alpha]
 * 
 *   Flash Duration:
 *   - What is the frame duration of the flash effect?
 * 
 * ---
 * 
 * MECH: Variable Popup
 * - Causes the unit(s) to display a popup using the data stored inside
 *   a variable.
 * 
 *   Targets:
 *   - Select unit(s) to prompt a text popup.
 * 
 *   Variable:
 *   - Get data from which variable to display as a popup?
 * 
 *   Digit Grouping:
 *   - Use digit grouping to separate numbers?
 *   - Requires VisuMZ_0_CoreEngine!
 * 
 *   Text Color:
 *   - Use #rrggbb for custom colors or regular numbers for text colors from
 *     the Window Skin.
 * 
 *   Flash Color:
 *   - Adjust the popup's flash color.
 *   - Format: [red, green, blue, alpha]
 * 
 *   Flash Duration:
 *   - What is the frame duration of the flash effect?
 * 
 * ---
 *
 * MECH: Wait For Effect
 * - Waits for the effects to complete before performing next command.
 *
 * ---
 *
 * === Action Sequences - Motion ===
 *
 * These Action Sequences allow you the ability to control the motions of
 * sideview sprites.
 *
 * ---
 * 
 * MOTION: Clear Freeze Frame
 * - Clears any freeze frames from the unit(s).
 * - Only applies to sprite sheets.
 * - Does NOT work with Dragonbones.
 * - Use "DB: Dragonbones Time Scale" instead.
 * 
 *   Targets:
 *   - Select which unit(s) to clear freeze frames for.
 * 
 * ---
 * 
 * MOTION: Freeze Motion Frame
 * - Forces a freeze frame instantly at the selected motion.
 * - Automatically clears with a new motion.
 * - Only applies to sprite sheets.
 * - Does NOT work with Dragonbones.
 * - Use "DB: Dragonbones Time Scale" instead.
 * 
 *   Targets:
 *   - Select which unit(s) to freeze motions for.
 * 
 *   Motion Type:
 *   - Freeze this motion for the unit(s).
 * 
 *   Frame Index:
 *   - Which frame do you want to freeze the motion on?
 *   - Frame index values start at 0.
 * 
 *   Show Weapon?:
 *   - If using 'attack', 'thrust', 'swing', or 'missile', display the
 *     weapon sprite?
 * 
 * ---
 *
 * MOTION: Motion Type
 * - Causes the unit(s) to play the selected motion.
 *
 *   Targets:
 *   - Select which unit(s) to perform a motion.
 *
 *   Motion Type:
 *   - Play this motion for the unit(s).
 *
 *   Show Weapon?:
 *   - If using 'attack', 'thrust', 'swing', or 'missile', display the
 *     weapon sprite?
 *
 * ---
 *
 * MOTION: Perform Action
 * - Causes the unit(s) to play the proper motion based on the current action.
 *
 *   Targets:
 *   - Select which unit(s) to perform a motion.
 *
 * ---
 *
 * MOTION: Refresh Motion
 * - Cancels any set motions unit(s) has to do and use their most natural
 *   motion at the moment.
 *
 *   Targets:
 *   - Select which unit(s) to refresh their motion state.
 *
 * ---
 *
 * MOTION: Wait By Motion Frame
 * - Creates a wait equal to the number of motion frames passing.
 * - Time is based on Plugin Parameters => Actors => Motion Speed.
 *
 *   Motion Frames to Wait?:
 *   - Each "frame" is equal to the value found in 
 *     Plugin Parameters => Actors => Motion Speed
 *
 * ---
 *
 * === Action Sequences - Movement ===
 *
 * These Action Sequences allow you the ability to control the sprites of
 * actors and enemies in battle.
 *
 * ---
 *
 * MOVE: Battle Step
 * - Causes the unit(s) to move forward past their home position to prepare
 *   for action.
 *
 *   Targets:
 *   - Select which unit(s) to move.
 *
 *   Wait For Movement?:
 *   - Wait for movement to complete before performing next command?
 *
 * ---
 *
 * MOVE: Change Home By Distance
 * - Change unit(s)'s home position by a distance from their current home
 *   position(s).
 * - Sideview-only!
 *
 *   Targets:
 *   - Select which unit(s) to change home position(s) for.
 *
 *   Distance Adjustment:
 *   - Makes adjustments to distance values to determine which direction to
 *     change by.
 *     - Normal - No adjustments made
 *     - Horizontal - Actors adjust left, Enemies adjust right
 *     - Vertical - Actors adjust Up, Enemies adjust down
 *     - Both - Applies both Horizontal and Vertical
 *
 *     Distance: X:
 *     - Horizontal distance to move.
 *     - You may use JavaScript code.
 *
 *     Distance: Y:
 *     - Vertical distance to move.
 *     - You may use JavaScript code.
 *
 *   Duration:
 *   - Duration in frames for total change amount.
 *
 *   Face Destination?:
 *   - Turn and face the destination?
 *
 *   Movement Easing:
 *   - Select which easing type you wish to apply.
 *   - Requires VisuMZ_0_CoreEngine.
 *
 *   Movement Motion:
 *   - Play this motion for the unit(s).
 *
 *   Wait For Movement?:
 *   - Wait for movement to complete before performing next command?
 *
 * ---
 *
 * MOVE: Change Home To JS Coordinates
 * - Change home position(s) to specified JS Coordinates.
 * - Sideview-only! Uses JavaScript!
 *
 *   Targets:
 *   - Select which unit(s) to change home position(s) for.
 *
 *   JS: Coordinates:
 *   - Code used to determine the coordinates for the target(s)'s new home
 *     position.
 *
 *   Offset Adjustment:
 *   - Makes adjustments to offset values to determine which direction to
 *     adjust the destination by.
 *
 *     Offset: X:
 *     - Horizontal offset to move.
 *     - You may use JavaScript code.
 *
 *     Offset: Y:
 *     - Vertical offset to move.
 *     - You may use JavaScript code.
 *
 *   Duration:
 *   - Duration in frames for total change amount.
 *
 *   Face Destination?:
 *   - Turn and face the destination?
 *
 *   Movement Easing:
 *   - Select which easing type you wish to apply.
 *   - Requires VisuMZ_0_CoreEngine.
 *
 *   Movement Motion:
 *   - Play this motion for the unit(s).
 *
 *   Wait For Movement?:
 *   - Wait for movement to complete before performing next command?
 *
 * ---
 *
 * MOVE: Change Home To Point
 * - Change home position(s) to a target point on the screen.
 * - Sideview-only! Points based off Graphics.boxWidth/Height.
 *
 *   Targets:
 *   - Select which unit(s) to change home position(s) for.
 *
 *   Destination Point:
 *   - Select which point to face.
 *     - Center
 *     - Point X, Y
 *       - Replace 'x' and 'y' with coordinates
 *
 *   Offset Adjustment:
 *   - Makes adjustments to offset values to determine which direction to
 *     adjust the destination by.
 *
 *     Offset: X:
 *     - Horizontal offset to move.
 *     - You may use JavaScript code.
 *
 *     Offset: Y:
 *     - Vertical offset to move.
 *     - You may use JavaScript code.
 *
 *   Duration:
 *   - Duration in frames for total change amount.
 *
 *   Face Destination?:
 *   - Turn and face the destination?
 *
 *   Movement Easing:
 *   - Select which easing type you wish to apply.
 *   - Requires VisuMZ_0_CoreEngine.
 *
 *   Movement Motion:
 *   - Play this motion for the unit(s).
 *
 *   Wait For Movement?:
 *   - Wait for movement to complete before performing next command?
 *
 * ---
 *
 * MOVE: Change Home To Target(s)
 * - Moves unit(s) to another unit(s) on the battle field.
 * - Sideview-only!
 *
 *   Targets (Moving):
 *   - Select which unit(s) to change home position(s) for.
 *
 *   Targets (Destination):
 *   - Select which unit(s) to change home position to.
 *
 *     Target Location:
 *     - Select which part target group to change home position to.
 *       - front head
 *       - front center
 *       - front base
 *       - middle head
 *       - middle center
 *       - middle base
 *       - back head
 *       - back center
 *       - back base
 *
 *     Melee Distance:
 *     - The melee distance away from the target location in addition to the
 *       battler's width.
 *
 *   Offset Adjustment:
 *   - Makes adjustments to offset values to determine which direction to
 *     adjust the destination by.
 *
 *     Offset: X:
 *     - Horizontal offset to move.
 *     - You may use JavaScript code.
 *
 *     Offset: Y:
 *     - Vertical offset to move.
 *     - You may use JavaScript code.
 *
 *   Duration:
 *   - Duration in frames for total change amount.
 *
 *   Face Destination?:
 *   - Turn and face the destination?
 *
 *   Movement Easing:
 *   - Select which easing type you wish to apply.
 *   - Requires VisuMZ_0_CoreEngine.
 *
 *   Movement Motion:
 *   - Play this motion for the unit(s).
 *
 *   Wait For Movement?:
 *   - Wait for movement to complete before performing next command?
 *
 * ---
 *
 * MOVE: Face Direction
 * - Causes the unit(s) to face forward or backward.
 * - Sideview-only!
 *
 *   Targets:
 *   - Select which unit(s) to change direction.
 *
 *   Direction:
 *   - Select which direction to face.
 *
 * ---
 *
 * MOVE: Face JS Coordinates
 * - Causes the unit(s) to face specified JS Coordinates.
 * - Sideview-only! Uses JavaScript!
 *
 *   Targets:
 *   - Select which unit(s) to change direction.
 *
 *   JS: Coordinates:
 *   - Code used to determine the coordinates for the target(s) to face
 *     towards.
 *
 *   Face Away From?:
 *   - Face away from the point instead?
 *
 * ---
 *
 * MOVE: Face Point
 * - Causes the unit(s) to face a point on the screen.
 * - Sideview-only!
 *
 *   Targets:
 *   - Select which unit(s) to change direction.
 *
 *   Point:
 *   - Select which point to face.
 *     - Home
 *     - Center
 *     - Point X, Y
 *       - Replace 'x' and 'y' with coordinates
 *
 *   Face Away From?:
 *   - Face away from the point instead?
 *
 * ---
 *
 * MOVE: Face Target(s)
 * - Causes the unit(s) to face other targets on the screen.
 * - Sideview-only!
 *
 *   Targets (facing):
 *   - Select which unit(s) to change direction.
 *
 *   Targets (destination):
 *   - Select which unit(s) for the turning unit(s) to face.
 *
 *   Face Away From?:
 *   - Face away from the unit(s) instead?
 *
 * ---
 *
 * MOVE: Float
 * - Causes the unit(s) to float above the ground.
 * - Sideview-only!
 *
 *   Targets:
 *   - Select which unit(s) to make float.
 *
 *   Desired Height:
 *   - Vertical distance to float upward.
 *   - You may use JavaScript code.
 *
 *   Duration:
 *   - Duration in frames for total float amount.
 *
 *   Float Easing:
 *   - Select which easing type you wish to apply.
 *   - Requires VisuMZ_0_CoreEngine.
 *
 *   Wait For Float?:
 *   - Wait for floating to complete before performing next command?
 *
 * ---
 *
 * MOVE: Home Reset
 * - Causes the unit(s) to move back to their home position(s) and face back to
 *   their original direction(s).
 *
 *   Targets:
 *   - Select which unit(s) to move.
 *
 *   Wait For Movement?:
 *   - Wait for movement to complete before performing next command?
 *
 * ---
 *
 * MOVE: Jump
 * - Causes the unit(s) to jump into the air.
 * - Sideview-only!
 *
 *   Targets:
 *   - Select which unit(s) to make jump.
 *
 *   Desired Height:
 *   - Max jump height to go above the ground
 *   - You may use JavaScript code.
 *
 *   Duration:
 *   - Duration in frames for total jump amount.
 *
 *   Wait For Jump?:
 *   - Wait for jumping to complete before performing next command?
 *
 * ---
 *
 * MOVE: Move Distance
 * - Moves unit(s) by a distance from their current position(s).
 * - Sideview-only!
 *
 *   Targets:
 *   - Select which unit(s) to move.
 *
 *   Distance Adjustment:
 *   - Makes adjustments to distance values to determine which direction to
 *     move unit(s).
 *     - Normal - No adjustments made
 *     - Horizontal - Actors adjust left, Enemies adjust right
 *     - Vertical - Actors adjust Up, Enemies adjust down
 *     - Both - Applies both Horizontal and Vertical
 *
 *     Distance: X:
 *     - Horizontal distance to move.
 *     - You may use JavaScript code.
 *
 *     Distance: Y:
 *     - Vertical distance to move.
 *     - You may use JavaScript code.
 *
 *   Duration:
 *   - Duration in frames for total movement amount.
 *
 *   Face Destination?:
 *   - Turn and face the destination?
 *
 *   Movement Easing:
 *   - Select which easing type you wish to apply.
 *   - Requires VisuMZ_0_CoreEngine.
 *
 *   Movement Motion:
 *   - Play this motion for the unit(s).
 *
 *   Wait For Movement?:
 *   - Wait for movement to complete before performing next command?
 *
 * ---
 *
 * MOVE: Move To JS Coordinates
 * - Moves unit(s) to specified JS Coordinates.
 * - Sideview-only! Uses JavaScript!
 *
 *   Targets:
 *   - Select which unit(s) to move.
 *
 *   JS: Coordinates:
 *   - Code used to determine the coordinates for the target(s) to move to.
 *
 *   Offset Adjustment:
 *   - Makes adjustments to offset values to determine which direction to
 *     adjust the destination by.
 *
 *     Offset: X:
 *     - Horizontal offset to move.
 *     - You may use JavaScript code.
 *
 *     Offset: Y:
 *     - Vertical offset to move.
 *     - You may use JavaScript code.
 *
 *   Duration:
 *   - Duration in frames for total movement amount.
 *
 *   Face Destination?:
 *   - Turn and face the destination?
 *
 *   Movement Easing:
 *   - Select which easing type you wish to apply.
 *   - Requires VisuMZ_0_CoreEngine.
 *
 *   Movement Motion:
 *   - Play this motion for the unit(s).
 *
 *   Wait For Movement?:
 *   - Wait for movement to complete before performing next command?
 *
 * ---
 *
 * MOVE: Move To Point
 * - Moves unit(s) to a designated point on the screen.
 * - Sideview-only! Points based off Graphics.boxWidth/Height.
 *
 *   Targets:
 *   - Select which unit(s) to move.
 *
 *   Destination Point:
 *   - Select which point to face.
 *     - Home
 *     - Center
 *     - Point X, Y
 *       - Replace 'x' and 'y' with coordinates
 *
 *   Offset Adjustment:
 *   - Makes adjustments to offset values to determine which direction to
 *     adjust the destination by.
 *
 *     Offset: X:
 *     - Horizontal offset to move.
 *     - You may use JavaScript code.
 *
 *     Offset: Y:
 *     - Vertical offset to move.
 *     - You may use JavaScript code.
 *
 *   Duration:
 *   - Duration in frames for total movement amount.
 *
 *   Face Destination?:
 *   - Turn and face the destination?
 *
 *   Movement Easing:
 *   - Select which easing type you wish to apply.
 *   - Requires VisuMZ_0_CoreEngine.
 *
 *   Movement Motion:
 *   - Play this motion for the unit(s).
 *
 *   Wait For Movement?:
 *   - Wait for movement to complete before performing next command?
 *
 * ---
 *
 * MOVE: Move To Target(s)
 * - Moves unit(s) to another unit(s) on the battle field.
 * - Sideview-only!
 *
 *   Targets (Moving):
 *   - Select which unit(s) to move.
 *
 *   Targets (Destination):
 *   - Select which unit(s) to move to.
 *
 *     Target Location:
 *     - Select which part target group to move to.
 *       - front head
 *       - front center
 *       - front base
 *       - middle head
 *       - middle center
 *       - middle base
 *       - back head
 *       - back center
 *       - back base
 *
 *     Melee Distance:
 *     - The melee distance away from the target location in addition to the
 *       battler's width.
 *
 *   Offset Adjustment:
 *   - Makes adjustments to offset values to determine which direction to
 *     adjust the destination by.
 *
 *     Offset: X:
 *     - Horizontal offset to move.
 *     - You may use JavaScript code.
 *
 *     Offset: Y:
 *     - Vertical offset to move.
 *     - You may use JavaScript code.
 *
 *   Duration:
 *   - Duration in frames for total movement amount.
 *
 *   Face Destination?:
 *   - Turn and face the destination?
 *
 *   Movement Easing:
 *   - Select which easing type you wish to apply.
 *   - Requires VisuMZ_0_CoreEngine.
 *
 *   Movement Motion:
 *   - Play this motion for the unit(s).
 *
 *   Wait For Movement?:
 *   - Wait for movement to complete before performing next command?
 *
 * ---
 *
 * MOVE: Opacity
 * - Causes the unit(s) to change opacity.
 * - Sideview-only!
 *
 *   Targets:
 *   - Select which unit(s) to change opacity.
 *
 *   Desired Opacity:
 *   - Change to this opacity value.
 *   - You may use JavaScript code.
 *
 *   Duration:
 *   - Duration in frames for opacity change.
 *
 *   Opacity Easing:
 *   - Select which easing type you wish to apply.
 *   - Requires VisuMZ_0_CoreEngine.
 *
 *   Wait For Opacity?:
 *   - Wait for opacity changes to complete before performing next command?
 *
 * ---
 *
 * MOVE: Scale/Grow/Shrink
 * - Causes the unit(s) to scale, grow, or shrink?.
 * - Sideview-only!
 *
 *   Targets:
 *   - Select which unit(s) to change the scale of.
 *
 *   Scale X:
 *   Scale Y:
 *   - What target scale value do you want?
 *   - 1.0 is normal size.
 *
 *   Duration:
 *   - Duration in frames to scale for.
 *
 *   Scale Easing:
 *   - Select which easing type you wish to apply.
 *   - Requires VisuMZ_0_CoreEngine.
 *
 *   Wait For Scale?:
 *   - Wait for scaling to complete before performing next command?
 *
 * ---
 *
 * MOVE: Skew/Distort
 * - Causes the unit(s) to skew.
 * - Sideview-only!
 *
 *   Targets:
 *   - Select which unit(s) to skew.
 *
 *   Skew X:
 *   Skew Y:
 *   - What variance to skew?
 *   - Use small values for the best results.
 *
 *   Duration:
 *   - Duration in frames to skew for.
 *
 *   Skew Easing:
 *   - Select which easing type you wish to apply.
 *   - Requires VisuMZ_0_CoreEngine.
 *
 *   Wait For Skew?:
 *   - Wait for skew to complete before performing next command?
 *
 * ---
 *
 * MOVE: Spin/Rotate
 * - Causes the unit(s) to spin.
 * - Sideview-only!
 *
 *   Targets:
 *   - Select which unit(s) to spin.
 *
 *   Angle:
 *   - How many degrees to spin?
 *
 *   Duration:
 *   - Duration in frames to spin for.
 *
 *   Spin Easing:
 *   - Select which easing type you wish to apply.
 *   - Requires VisuMZ_0_CoreEngine.
 * 
 *   Revert Angle on Finish:
 *   - Upon finishing the spin, revert the angle back to 0.
 *
 *   Wait For Spin?:
 *   - Wait for spin to complete before performing next command?
 *
 * ---
 *
 * MOVE: Wait For Float
 * - Waits for floating to complete before performing next command.
 *
 * ---
 *
 * MOVE: Wait For Jump
 * - Waits for jumping to complete before performing next command.
 *
 * ---
 *
 * MOVE: Wait For Movement
 * - Waits for movement to complete before performing next command.
 *
 * ---
 *
 * MOVE: Wait For Opacity
 * - Waits for opacity changes to complete before performing next command.
 *
 * ---
 *
 * MOVE: Wait For Scale
 * - Waits for scaling to complete before performing next command.
 *
 * ---
 *
 * MOVE: Wait For Skew
 * - Waits for skewing to complete before performing next command.
 *
 * ---
 *
 * MOVE: Wait For Spin
 * - Waits for spinning to complete before performing next command.
 *
 * ---
 * 
 * === Action Sequences - Projectiles ===
 * 
 * Create projectiles on the screen and fire them off at a target.
 * Requires VisuMZ_3_ActSeqProjectiles!
 * 
 * ---
 *
 * PROJECTILE: Animation
 * - Create an animation projectile and fire it at a target.
 * - Requires VisuMZ_3_ActSeqProjectiles!
 *
 *   Coordinates:
 *
 *     Start Location:
 *     - Settings to determine where the projectile(s) start from.
 *
 *       Type:
 *       - Select where the projectile should start from.
 *         - Target - Start from battler target(s)
 *         - Point - Start from a point on the screen
 *
 *         Target(s):
 *         - Select which unit(s) to start the projectile from.
 *
 *           Centralize:
 *           - Create one projectile at the center of the targets?
 *           - Or create a projectile for each target?
 * 
 *           Target Location:
 *           - Select which part of the target to send the projectile from.
 *           - front head
 *           - front center
 *           - front base
 *           - middle head
 *           - middle center
 *           - middle base
 *           - back head
 *           - back center
 *           - back base
 *
 *         Point X:
 *         Point Y:
 *         - Insert the X/Y coordinate to start the projectile at.
 *         - You may use JavaScript code.
 *
 *       Offset X:
 *       Offset Y:
 *       - Insert how many pixels to offset the X/Y coordinate by.
 *       - You may use JavaScript code.
 *
 *     Goal Location:
 *     - Settings to determine where the projectile(s) start from.
 *
 *       Type:
 *       - Select where the projectile should go to.
 *         - Target - Goal is battler target(s)
 *         - Point - Goal is a point on the screen
 *
 *         Target(s):
 *         - Select which unit(s) for projectile to go to.
 *
 *           Centralize:
 *           - Create one projectile at the center of the targets?
 *           - Or create a projectile for each target?
 * 
 *           Target Location:
 *           - Select which part of the target to send the projectile to.
 *           - front head
 *           - front center
 *           - front base
 *           - middle head
 *           - middle center
 *           - middle base
 *           - back head
 *           - back center
 *           - back base
 *
 *         Point X:
 *         Point Y:
 *         - Insert the X/Y coordinate to send the projectile to.
 *         - You may use JavaScript code.
 *
 *       Offset X:
 *       Offset Y:
 *       - Insert how many pixels to offset the X/Y coordinate by.
 *       - You may use JavaScript code.
 *
 *   Settings:
 *
 *     Animation ID:
 *     - Determine which animation to use as a projectile.
 *
 *     Duration:
 *     - Duration for the projectile(s) to travel.
 *
 *     Wait For Projectile?:
 *     - Wait for projectile(s) to reach their destination before going onto
 *       the next command?
 * 
 *     Wait For Animation?:
 *     - Wait for animation to finish before going to the next command?
 *
 *     Extra Settings:
 *     - Add extra settings to the projectile?
 *
 *       Auto Angle?:
 *       - Automatically angle the projectile to tilt the direction
 *         it's moving?
 *
 *       Angle Offset:
 *       - Alter the projectile's tilt by this many degrees.
 *
 *       Arc Peak:
 *       - This is the height of the projectile's trajectory arc in pixels.
 *
 *       Easing:
 *       - Select which easing type to apply to the projectile's trajectory.
 *
 *       Spin Speed:
 *       - Determine how much angle the projectile spins per frame.
 *       - Does not work well with "Auto Angle".
 * 
 *     Effect Emulation:
 * 
 *       Action Effect?:
 *       - Emulate current Action Effect when projectile reaches target?
 *       - Only works with start and goal targets.
 * 
 *       Item Effect ID?:
 *       - Emulate an Item Effect when projectile reaches target?
 *       - Use 0 to not use.
 *       - Only works with start and goal targets.
 * 
 *       Skill Effect ID?:
 *       - Emulate a Skill Effect when projectile reaches target?
 *       - Use 0 to not use.
 *       - Only works with start and goal targets.
 * 
 *       Common Event ID:
 *       - Plays a Once Parallel Common Event upon reaching target.
 *       - Use 0 to not use.
 *       - Works regardless of start/goal targets.
 * 
 *     End Animation ID:
 *     - Plays an animation when projectile reaches target.
 *     - Use 0 to not use.
 *     - Requires VisuMZ_1_BattleCore v1.86+.
 *     - Requires VisuMZ_3_ActSeqProjectiles v1.09+.
 * 
 *       Mirror Animation:
 *       - Mirror the effect animation?
 *       - Requires VisuMZ_1_BattleCore v1.86+.
 *       - Requires VisuMZ_3_ActSeqProjectiles version 1.09+.
 * 
 *       Mute Animation:
 *       - Mute the effect animation?
 *       - Requires VisuMZ_1_BattleCore v1.86+.
 *       - Requires VisuMZ_3_ActSeqProjectiles version 1.09+.
 *     
 *
 * ---
 *
 * PROJECTILE: Icon
 * - Create an icon projectile and fire it at a target.
 * - Requires VisuMZ_3_ActSeqProjectiles!
 *
 *   Coordinates:
 *
 *     Start Location:
 *     - Settings to determine where the projectile(s) start from.
 *
 *       Type:
 *       - Select where the projectile should start from.
 *         - Target - Start from battler target(s)
 *         - Point - Start from a point on the screen
 *
 *         Target(s):
 *         - Select which unit(s) to start the projectile from.
 *
 *           Centralize:
 *           - Create one projectile at the center of the targets?
 *           - Or create a projectile for each target?
 * 
 *           Target Location:
 *           - Select which part of the target to send the projectile from.
 *           - front head
 *           - front center
 *           - front base
 *           - middle head
 *           - middle center
 *           - middle base
 *           - back head
 *           - back center
 *           - back base
 *
 *         Point X:
 *         Point Y:
 *         - Insert the X/Y coordinate to start the projectile at.
 *         - You may use JavaScript code.
 *
 *       Offset X:
 *       Offset Y:
 *       - Insert how many pixels to offset the X/Y coordinate by.
 *       - You may use JavaScript code.
 *
 *     Goal Location:
 *     - Settings to determine where the projectile(s) start from.
 *
 *       Type:
 *       - Select where the projectile should go to.
 *         - Target - Goal is battler target(s)
 *         - Point - Goal is a point on the screen
 *
 *         Target(s):
 *         - Select which unit(s) for projectile to go to.
 *
 *           Centralize:
 *           - Create one projectile at the center of the targets?
 *           - Or create a projectile for each target?
 * 
 *           Target Location:
 *           - Select which part of the target to send the projectile to.
 *           - front head
 *           - front center
 *           - front base
 *           - middle head
 *           - middle center
 *           - middle base
 *           - back head
 *           - back center
 *           - back base
 *
 *         Point X:
 *         Point Y:
 *         - Insert the X/Y coordinate to send the projectile to.
 *         - You may use JavaScript code.
 *
 *       Offset X:
 *       Offset Y:
 *       - Insert how many pixels to offset the X/Y coordinate by.
 *       - You may use JavaScript code.
 *
 *   Settings:
 *
 *     Icon:
 *     - Determine which icon to use as a projectile.
 *       - You may use JavaScript code.
 *
 *     Duration:
 *     - Duration for the projectile(s) to travel.
 *
 *     Wait For Projectile?:
 *     - Wait for projectile(s) to reach their destination before going onto
 *       the next command?
 *
 *     Extra Settings:
 *     - Add extra settings to the projectile?
 *
 *       Auto Angle?:
 *       - Automatically angle the projectile to tilt the direction
 *         it's moving?
 *
 *       Angle Offset:
 *       - Alter the projectile's tilt by this many degrees.
 *
 *       Arc Peak:
 *       - This is the height of the projectile's trajectory arc in pixels.
 *
 *       Blend Mode:
 *       - What kind of blend mode do you wish to apply to the projectile?
 *         - Normal
 *         - Additive
 *         - Multiply
 *         - Screen
 *
 *       Easing:
 *       - Select which easing type to apply to the projectile's trajectory.
 *
 *       Hue:
 *       - Adjust the hue of the projectile.
 *       - Insert a number between 0 and 360.
 *
 *       Scale:
 *       - Adjust the size scaling of the projectile.
 *       - Use decimals for exact control.
 *
 *       Spin Speed:
 *       - Determine how much angle the projectile spins per frame.
 *       - Does not work well with "Auto Angle".
 * 
 *     Effect Emulation:
 * 
 *       Action Effect?:
 *       - Emulate current Action Effect when projectile reaches target?
 *       - Only works with start and goal targets.
 * 
 *       Item Effect ID?:
 *       - Emulate an Item Effect when projectile reaches target?
 *       - Use 0 to not use.
 *       - Only works with start and goal targets.
 * 
 *       Skill Effect ID?:
 *       - Emulate a Skill Effect when projectile reaches target?
 *       - Use 0 to not use.
 *       - Only works with start and goal targets.
 * 
 *       Common Event ID:
 *       - Plays a Once Parallel Common Event upon reaching target.
 *       - Use 0 to not use.
 *       - Works regardless of start/goal targets.
 * 
 *     End Animation ID:
 *     - Plays an animation when projectile reaches target.
 *     - Use 0 to not use.
 *     - Requires VisuMZ_1_BattleCore v1.86+.
 *     - Requires VisuMZ_3_ActSeqProjectiles v1.09+.
 * 
 *       Mirror Animation:
 *       - Mirror the effect animation?
 *       - Requires VisuMZ_1_BattleCore v1.86+.
 *       - Requires VisuMZ_3_ActSeqProjectiles version 1.09+.
 * 
 *       Mute Animation:
 *       - Mute the effect animation?
 *       - Requires VisuMZ_1_BattleCore v1.86+.
 *       - Requires VisuMZ_3_ActSeqProjectiles version 1.09+.
 *
 * ---
 *
 * PROJECTILE: Picture
 * - Create a picture projectile and fire it at a target.
 * - Requires VisuMZ_3_ActSeqProjectiles!
 *
 *   Coordinates:
 *
 *     Start Location:
 *     - Settings to determine where the projectile(s) start from.
 *
 *       Type:
 *       - Select where the projectile should start from.
 *         - Target - Start from battler target(s)
 *         - Point - Start from a point on the screen
 *
 *         Target(s):
 *         - Select which unit(s) to start the projectile from.
 *
 *           Centralize:
 *           - Create one projectile at the center of the targets?
 *           - Or create a projectile for each target?
 * 
 *           Target Location:
 *           - Select which part of the target to send the projectile from.
 *           - front head
 *           - front center
 *           - front base
 *           - middle head
 *           - middle center
 *           - middle base
 *           - back head
 *           - back center
 *           - back base
 *
 *         Point X:
 *         Point Y:
 *         - Insert the X/Y coordinate to start the projectile at.
 *         - You may use JavaScript code.
 *
 *       Offset X:
 *       Offset Y:
 *       - Insert how many pixels to offset the X/Y coordinate by.
 *       - You may use JavaScript code.
 *
 *     Goal Location:
 *     - Settings to determine where the projectile(s) start from.
 *
 *       Type:
 *       - Select where the projectile should go to.
 *         - Target - Goal is battler target(s)
 *         - Point - Goal is a point on the screen
 *
 *         Target(s):
 *         - Select which unit(s) for projectile to go to.
 *
 *           Centralize:
 *           - Create one projectile at the center of the targets?
 *           - Or create a projectile for each target?
 * 
 *           Target Location:
 *           - Select which part of the target to send the projectile to.
 *           - front head
 *           - front center
 *           - front base
 *           - middle head
 *           - middle center
 *           - middle base
 *           - back head
 *           - back center
 *           - back base
 *
 *         Point X:
 *         Point Y:
 *         - Insert the X/Y coordinate to send the projectile to.
 *         - You may use JavaScript code.
 *
 *       Offset X:
 *       Offset Y:
 *       - Insert how many pixels to offset the X/Y coordinate by.
 *       - You may use JavaScript code.
 *
 *   Settings:
 *
 *     Picture Filename:
 *     - Determine which picture to use as a projectile.
 *
 *     Duration:
 *     - Duration for the projectile(s) to travel.
 *
 *     Wait For Projectile?:
 *     - Wait for projectile(s) to reach their destination before going onto
 *       the next command?
 *
 *     Extra Settings:
 *     - Add extra settings to the projectile?
 *
 *       Auto Angle?:
 *       - Automatically angle the projectile to tilt the direction
 *         it's moving?
 *
 *       Angle Offset:
 *       - Alter the projectile's tilt by this many degrees.
 *
 *       Arc Peak:
 *       - This is the height of the projectile's trajectory arc in pixels.
 *
 *       Blend Mode:
 *       - What kind of blend mode do you wish to apply to the projectile?
 *         - Normal
 *         - Additive
 *         - Multiply
 *         - Screen
 *
 *       Easing:
 *       - Select which easing type to apply to the projectile's trajectory.
 *
 *       Hue:
 *       - Adjust the hue of the projectile.
 *       - Insert a number between 0 and 360.
 *
 *       Scale:
 *       - Adjust the size scaling of the projectile.
 *       - Use decimals for exact control.
 *
 *       Spin Speed:
 *       - Determine how much angle the projectile spins per frame.
 *       - Does not work well with "Auto Angle".
 * 
 *     Effect Emulation:
 * 
 *       Action Effect?:
 *       - Emulate current Action Effect when projectile reaches target?
 *       - Only works with start and goal targets.
 * 
 *       Item Effect ID?:
 *       - Emulate an Item Effect when projectile reaches target?
 *       - Use 0 to not use.
 *       - Only works with start and goal targets.
 * 
 *       Skill Effect ID?:
 *       - Emulate a Skill Effect when projectile reaches target?
 *       - Use 0 to not use.
 *       - Only works with start and goal targets.
 * 
 *       Common Event ID:
 *       - Plays a Once Parallel Common Event upon reaching target.
 *       - Use 0 to not use.
 *       - Works regardless of start/goal targets.
 * 
 *     End Animation ID:
 *     - Plays an animation when projectile reaches target.
 *     - Use 0 to not use.
 *     - Requires VisuMZ_1_BattleCore v1.86+.
 *     - Requires VisuMZ_3_ActSeqProjectiles v1.09+.
 * 
 *       Mirror Animation:
 *       - Mirror the effect animation?
 *       - Requires VisuMZ_1_BattleCore v1.86+.
 *       - Requires VisuMZ_3_ActSeqProjectiles version 1.09+.
 * 
 *       Mute Animation:
 *       - Mute the effect animation?
 *       - Requires VisuMZ_1_BattleCore v1.86+.
 *       - Requires VisuMZ_3_ActSeqProjectiles version 1.09+.
 *
 * ---
 * 
 * === Action Sequences - Skew ===
 * 
 * These action sequences allow you to have control over the camera skew.
 * Requires VisuMZ_3_ActSeqCamera!
 * 
 * ---
 *
 * SKEW: Change Skew
 * - Changes the camera skew.
 * - Requires VisuMZ_3_ActSeqCamera!
 *
 *   Skew X:
 *   - Change the camera skew X to this value.
 *
 *   Skew Y:
 *   - Change the camera skew Y to this value.
 *
 *   Duration:
 *   - Duration in frames to change camera skew.
 *
 *   Skew Easing:
 *   - Select which easing type you wish to apply.
 *   - Requires VisuMZ_0_CoreEngine.
 *
 *   Wait For Skew?:
 *   - Wait for skew changes to complete before performing next command?
 *
 * ---
 *
 * SKEW: Reset Skew
 * - Reset any skew settings.
 * - Requires VisuMZ_3_ActSeqCamera!
 *
 *   Duration:
 *   - Duration in frames to reset camera skew.
 *
 *   Skew Easing:
 *   - Select which easing type you wish to apply.
 *   - Requires VisuMZ_0_CoreEngine.
 *
 *   Wait For Skew?:
 *   - Wait for skew changes to complete before performing next command?
 *
 * ---
 *
 * SKEW: Wait For Skew
 * - Waits for skew changes to complete before performing next command.
 * - Requires VisuMZ_3_ActSeqCamera!
 *
 * ---
 *
 * === Action Sequences - Target ===
 *
 * If using a manual target by target Action Sequence, these commands will give
 * you full control over its usage.
 *
 * ---
 *
 * TARGET: Current Index
 * - Sets the current index to this value.
 * - Then decide to jump to a label (optional).
 *
 *   Set Index To:
 *   - Sets current targeting index to this value.
 *   - 0 is the starting index of a target group.
 *
 *   Jump To Label:
 *   - If a target is found after the index change, jump to this label in the
 *     Common Event.
 *
 * ---
 *
 * TARGET: Next Target
 * - Moves index forward by 1 to select a new current target.
 * - Then decide to jump to a label (optional).
 *
 *   Jump To Label:
 *   - If a target is found after the index change, jump to this label in the
 *     Common Event.
 *
 * ---
 *
 * TARGET: Previous Target
 * - Moves index backward by 1 to select a new current target.
 * - Then decide to jump to a label (optional).
 *
 *   Jump To Label:
 *   - If a target is found after the index change, jump to this label in the
 *     Common Event.
 *
 * ---
 *
 * TARGET: Random Target
 * - Sets index randomly to determine new currernt target.
 * - Then decide to jump to a label (optional).
 *
 *   Force Random?:
 *   - Index cannot be its previous index amount after random.
 *
 *   Jump To Label:
 *   - If a target is found after the index change, jump to this label in the
 *     Common Event.
 *
 * ---
 * 
 * === Action Sequences - Voice ==
 * 
 * ---
 *
 * VOICE: Common Line
 * - Plays a common voice line from target battler(s).
 * - Requires VisuMZ_3_BattleVoices!
 *
 *   Speaker Target(s):
 *   - Select unit(s) to play voice lines from.
 *
 *   Voice Line:
 *   - What voice line do you wish to play?
 *
 * ---
 *
 * VOICE: Play Special Line
 * - Plays a special voice line from target battler(s).
 * - Requires VisuMZ_3_BattleVoices!
 *
 *   Speaker Target(s):
 *   - Select unit(s) to play voice lines from.
 *
 *   Voice Line Type:
 *   - What voice line type do you wish to play?
 *     - Action Name
 *     - Chant Line
 *     - Item Name
 *     - Skill Name
 *     - Spell Name
 *     - Unique Lines
 *
 *   Name / Letter:
 *   - What voice letter/name do you want to play?
 *
 * ---
 *
 * === Action Sequences - Weapon ===
 *
 * Allows for finer control over Dual/Multi Wielding actors.
 * Only works for Actors.
 *
 * ---
 *
 * WEAPON: Clear Weapon Slot
 * - Clears the active weapon slot (making others valid again).
 * - Only works for Actors.
 *
 *   Targets:
 *   - Select unit(s) to clear the active weapon slot for.
 *
 * ---
 *
 * WEAPON: Next Weapon Slot
 * - Goes to next active weapon slot (making others invalid).
 * - If next slot is weaponless, don't label jump.
 *
 *   Targets:
 *   - Select unit(s) to change the next active weapon slot for.
 *
 * ---
 *
 * WEAPON: Set Weapon Slot
 * - Sets the active weapon slot (making others invalid).
 * - Only works for Actors.
 *
 *   Targets:
 *   - Select unit(s) to change the active weapon slot for.
 *
 *   Weapon Slot ID:
 *   - Select weapon slot to make active (making others invalid).
 *   - Use 0 to clear and normalize. You may use JavaScript code.
 *
 * ---
 * 
 * ==== Dual Wield Action Sequence Example ====
 * 
 * Here is an example of how to set up a dual-wield action sequence, whiled
 * also checking the trait objects to make sure that no other weapons are
 * being involved:
 * 
 *   ◆Plugin Command：VisuMZ_1_BattleCore, ACSET: Setup Action Set
 *                   Display Action = true
 *                   Immortal: On = true
 *                   Battle Step = true
 *                   Wait For Movement = true
 *                   Cast Animation = true
 *                   Wait For Animation = true
 * 
 *   ◆Script：console.log('---Before Switching---')
 *           let user = BattleManager._subject;
 *           let result = user.traitObjects()
 *              .filter(obj => DataManager.isWeapon(obj))
 *              .map(obj => obj.id);
 *           console.log('Weapon IDs', result);
 * 
 *   ◆Plugin Command：VisuMZ_1_BattleCore, WEAPON: Set Weapon Slot
 *                   Targets = ["user"]
 *                   Weapon Slot ID = 1
 * 
 *   ◆Label：AttackLoop
 * 
 *   ◆Script：console.log('---Slot Check---')
 *           let user = BattleManager._subject;
 *           let result = user.traitObjects()
 *              .filter(obj => DataManager.isWeapon(obj))
 *              .map(obj => obj.id);
 *           console.log('Weapon IDs', result);
 * 
 *   ◆Plugin Command：VisuMZ_1_BattleCore, ACSET: All Targets Action Set
 *                   Dual/Multi Wield? = false
 *                   Perform Action = true
 *                   Wait Count = Sprite_Battler._motionSpeed
 *                   Action Animation = true
 *                   Wait For Animation = true
 *                   Action Effect = true
 *                   Immortal: Off = true
 * 
 *   ◆Plugin Command：VisuMZ_1_BattleCore, WEAPON: Next Weapon Slot
 *                   Targets = ["user"]
 *                   Jump To Label = AttackLoop
 * 
 *   ◆Label：LoopFinished
 * 
 *   ◆Plugin Command：VisuMZ_1_BattleCore, WEAPON: Clear Weapon Slot
 *                   Targets = ["user"]
 * 
 *   ◆Script：console.log('---Slots Cleared---')
 *           let user = BattleManager._subject;
 *           let result = user.traitObjects()
 *              .filter(obj => DataManager.isWeapon(obj))
 *              .map(obj => obj.id);
 *           console.log('Weapon IDs', result);
 * 
 *   ◆Plugin Command：VisuMZ_1_BattleCore, ACSET: Finish Action
 *                   Immortal: Off = true
 *                   Wait For New Line = true
 *                   Wait For Effects = true
 *                   Clear Battle Log = true
 *                   Home Reset = true
 *                   Wait For Movement = true
 * 
 * If you want to make sure the weapon slots are only using those specific
 * weapons, include the console.log() script calls above. Otherwise, those
 * can be removed. They're only used as proof of weapon separation that can be
 * seen inside the game's Dev Tools window (press F8 to open Dev Tools, then
 * click "Console" for the console logs).
 * 
 * ---
 *
 * === Action Sequences - Zoom ===
 *
 * These Action Sequences are zoom-related.
 * Requires VisuMZ_3_ActSeqCamera!
 *
 * ---
 *
 * ZOOM: Change Scale
 * - Changes the zoom scale.
 * - Requires VisuMZ_3_ActSeqCamera!
 *
 *   Scale:
 *   - The zoom scale to change to.
 *
 *   Duration:
 *   - Duration in frames to reset battle zoom.
 *
 *   Zoom Easing:
 *   - Select which easing type you wish to apply.
 *   - Requires VisuMZ_0_CoreEngine.
 *
 *   Wait For Zoom?
 *   - Wait for zoom changes to complete before performing next command?
 *
 * ---
 *
 * ZOOM: Reset Zoom
 * - Reset any zoom settings.
 * - Requires VisuMZ_3_ActSeqCamera!
 *
 *   Duration:
 *   - Duration in frames to reset battle zoom.
 *
 *   Zoom Easing:
 *   - Select which easing type you wish to apply.
 *   - Requires VisuMZ_0_CoreEngine.
 *
 *   Wait For Zoom?
 *   - Wait for zoom changes to complete before performing next command?
 *
 * ---
 *
 * ZOOM: Wait For Zoom
 * - Waits for zoom changes to complete before performing next command.
 * Requires VisuMZ_3_ActSeqCamera!
 *
 * ---
 *
 * ============================================================================
 * Plugin Parameters: Auto Battle Settings
 * ============================================================================
 *
 * These Plugin Parameter settings allow you to change the aspects added by
 * this plugin that support Auto Battle and the Auto Battle commands.
 *
 * Auto Battle commands can be added to the Party Command Window and/or Actor
 * Command Window. The one used by the Party Command Window will cause the
 * whole party to enter an Auto Battle state until stopped by a button input.
 * The command used by the Actor Command Window, however, will cause the actor
 * to select an action based off the Auto Battle A.I. once for the current turn
 * instead.
 *
 * ---
 *
 * Battle Display
 * 
 *   Message:
 *   - Message that's displayed when Auto Battle is on.
 *     Text codes allowed. %1 - OK button, %2 - Cancel button
 * 
 *   OK Button:
 *   - Text used to represent the OK button.
 *   - If VisuMZ_0_CoreEngine is present, ignore this.
 * 
 *   Cancel Button:
 *   - Text used to represent the Cancel button.
 *   - If VisuMZ_0_CoreEngine is present, ignore this.
 * 
 *   Background Type:
 *   - Select background type for Auto Battle window.
 *     - 0 - Window
 *     - 1 - Dim
 *     - 2 - Transparent
 * 
 *   JS: X, Y, W, H:
 *   - Code used to determine the dimensions for this window.
 *
 * ---
 *
 * Options
 * 
 *   Add Option?:
 *   - Add the Auto Battle options to the Options menu?
 * 
 *   Adjust Window Height:
 *   - Automatically adjust the options window height?
 * 
 *   Startup Name:
 *   - Command name of the option.
 * 
 *   Style Name:
 *   - Command name of the option.
 * 
 *   OFF:
 *   - Text displayed when Auto Battle Style is OFF.
 * 
 *   ON:
 *   - Text displayed when Auto Battle Style is ON.
 *
 * ---
 *
 * ============================================================================
 * Plugin Parameters: Damage Settings
 * ============================================================================
 *
 * These Plugin Parameters add a variety of things to how damage is handled in
 * battle. These range from hard damage caps to soft damage caps to how damage
 * popups appear, how the formulas for various aspects are handled and more.
 *
 * Damage Styles are also a feature added through this plugin. More information
 * can be found in the help section above labeled 'Damage Styles'.
 *
 * ---
 *
 * Damage Styles
 * 
 *   Default Style:
 *   - Which Damage Style do you want to set as default?
 *   - Use 'Manual' to not use any styles at all.
 *     - The 'Manual' style will not support <Armor Penetration> notetags.
 *     - The 'Manual' style will not support <Armor Reduction> notetags.
 * 
 *   Check Formulas?:
 *   - It's usually bad practice to put in battle mechanics within damage
 *     formulas and this will check the damage formulas for skills and items
 *     to see if they contain any of the common battle mechanics that have the
 *     potential to cause problems.
 *   - Checks for illegal mechanics inside of damage formulas?
 *   - (ie. gainHp, loseHp, addBuff, addDebuff, addState, etc)
 *   - Read the following article for an explanation on why battle mechanics in
 *     damage formulas are undesirable and for an alternate solution:
 *     - http://www.yanfly.moe/wiki/Stop_Putting_Mechanics_in_Damage_Formulas
 *   - Turn this off if you do not want to be alerted of which skills/items
 *     have battle mechanics in their damage formulas.
 * 
 *   Style List:
 *   - A list of the damage styles available.
 *   - These are used to calculate base damage.
 * 
 *     Name:
 *     - Name of this Damage Style.
 *     -Used for notetags and such.
 * 
 *     JS: Formula:
 *     - The base formula for this Damage Style.
 * 
 *     Items & Equips Core:
 * 
 *       HP Damage:
 *       MP Damage:
 *       HP Recovery:
 *       MP Recovery:
 *       HP Drain:
 *       MP Drain:
 *       - Vocabulary used for this data entry.
 * 
 *       JS: Damage Display:
 *       - Code used the data displayed for this category.
 *
 * ---
 *
 * Damage Cap
 * 
 *   Enable Damage Cap?:
 *   - Put a maximum hard damage cap on how far damage can go?
 *   - This can be broken through the usage of notetags.
 * 
 *   Default Hard Cap:
 *   - The default hard damage cap used before applying damage.
 * 
 *   Enable Soft Cap?:
 *   - Soft caps ease in the damage values leading up to the  hard damage cap.
 *   - Requires hard Damage Cap enabled.
 * 
 *     Base Soft Cap Rate:
 *     - The default soft damage cap used before applying damage.
 * 
 *     Soft Scale Constant:
 *     - The default soft damage cap used before applying damage.
 *
 * ---
 *
 * Popups
 * 
 *   Popup Duration:
 *   - Adjusts how many frames a popup stays visible.
 * 
 *   Newest Popups Bottom:
 *   - Puts the newest popups at the bottom.
 * 
 *   End Battle Show?:
 *   - Show or hide popups upon victory or escape?
 *   - Used to hide battle-state removal popups.
 * 
 *   Offset X:
 *   Offset Y:
 *   - Sets how much to offset the sprites by horizontally/vertically.
 * 
 *   Shift X:
 *   Shift Y:
 *   - Sets how much to shift the sprites by horizontally/vertically.
 * 
 *   Shift Y:
 * 
 *   Critical Flash Color:
 *   - Adjust the popup's flash color.
 *   - Format: [red, green, blue, alpha]
 * 
 *   Critical Duration:
 *   - Adjusts how many frames a the flash lasts.
 *
 * ---
 *
 * Formulas
 * 
 *   JS: Overall Formula:
 *   - The overall formula used when calculating damage.
 * 
 *   JS: Variance Formula:
 *   - The formula used when damage variance.
 * 
 *   JS: Guard Formula:
 *   - The formula used when damage is guarded.
 *
 * ---
 *
 * Critical Hits
 * 
 *   JS: Rate Formula:
 *   - The formula used to calculate Critical Hit Rates.
 * 
 *   JS: Damage Formula:
 *   - The formula used to calculate Critical Hit Damage modification.
 *
 * ---
 *
 * ============================================================================
 * Plugin Parameters: Mechanics Settings
 * ============================================================================
 *
 * Some of the base settings for the various mechanics found in the battle
 * system can be altered here in these Plugin Parameters. Most of these will
 * involve JavaScript code and require you to have to good understanding of
 * how the RPG Maker MZ code works before tampering with it.
 *
 * ---
 *
 * Action Speed
 * 
 *   Allow Random Speed?:
 *   - Allow speed to be randomized base off the user's AGI?
 * 
 *   Turn End Buffs Expire?:
 *   - Normally, buffs expire after all actions end.
 *   - But here, you can have buffs expire on turn end.
 * 
 *   JS: Calculate:
 *   - Code used to calculate action speed.
 *
 * ---
 *
 * Base Troop
 * 
 *   Base Troop ID's:
 *   - Select the Troop ID(s) to duplicate page events from for all
 *     other troops.
 *   - More information can be found in the dedicated Help section above.
 *
 * ---
 * 
 * Common Events (on Map)
 * 
 *   Pre-Battle Event:
 *   Post-Battle Event:
 *   Victory Event:
 *   Defeat Event:
 *   Escape Success Event:
 *   Escape Fail Event:
 *   - Queued Common Event to run upon meeting the condition.
 *   - Use to 0 to not run any Common Event at all.
 *   - "Post-Battle Event" will always run regardless.
 *   - If any events are running before the battle, they will continue running
 *     to the end first before the queued Common Events will run.
 *   - These common events only run on the map scene. They're not meant to run
 *     in the battle scene.
 *   - If the "Defeat Event" has a common event attached to it, then random
 *     encounters will be changed to allow defeat without being sent to the
 *     Game Over scene. Instead, the game will send the player to the map scene
 *     where the Defeat Event will run.
 *
 * ---
 *
 * Escape
 * 
 *   JS: Calc Escape Ratio:
 *   - Code used to calculate the escape success ratio.
 * 
 *   JS: Calc Escape Raise:
 *   - Code used to calculate how much the escape success ratio raises upon
 *     each failure.
 * 
 * ---
 * 
 * Switches
 * 
 *   Switch: Critical:
 *   - Turns switch ON if the action performs a critical hit.
 *   - Switch reverts to OFF whenever an action starts.
 *   - If multiple targets/hits are struck, as long as one hit lands a critical
 *     hit, then the switch will remain ON for the rest of the action.
 * 
 *   Switch: Miss/Evade:
 *   - Turns switch ON if the action misses/is evaded.
 *   - Switch reverts to OFF whenever an action starts.
 *   - If multiple targets/hits are struck, as long as one hit fails to land,
 *     then the switch will remain ON for the rest of the action.
 * 
 * ---
 * 
 * Variables
 * 
 *   Variable: Damage:
 *   - Variable records target damage during action.
 *   - Variable reverts to 0 whenever an action starts.
 *   - If multiple targets/hits are struck, the variable will record the total
 *     amount of damage done for the remainder of the action (unless manually
 *     reseting to 0 during an Action Sequence).
 * 
 *   Variable: Healing:
 *   - Variable records target healing during action.
 *   - Variable reverts to 0 whenever an action starts.
 *   - If multiple targets/hits are struck, the variable will record the total
 *     amount of healing done for the remainder of the action (unless manually
 *     reseting to 0 during an Action Sequence).
 * 
 * ---
 *
 * JS: Battle-Related
 * 
 *   JS: Pre-Start Battle:
 *   - Target function: BattleManager.startBattle()
 *   - JavaScript code occurs before function is run.
 * 
 *   JS: Post-Start Battle:
 *   - Target function: BattleManager.startBattle()
 *   - JavaScript code occurs after function is run.
 * 
 *   JS: Battle Victory:
 *   - Target function: BattleManager.processVictory()
 *   - JavaScript code occurs before function is run.
 * 
 *   JS: Escape Success:
 *   - Target function: BattleManager.onEscapeSuccess()
 *   - JavaScript code occurs before function is run.
 * 
 *   JS: Escape Failure:
 *   - Target function: BattleManager.onEscapeFailure()
 *   - JavaScript code occurs before function is run.
 * 
 *   JS: Battle Defeat:
 *   - Target function: BattleManager.processDefeat()
 *   - JavaScript code occurs before function is run.
 * 
 *   JS: Pre-End Battle:
 *   - Target function: BattleManager.endBattle()
 *   - JavaScript code occurs before function is run.
 * 
 *   JS: Post-End Battle:
 *   - Target function: BattleManager.endBattle()
 *   - JavaScript code occurs after function is run.
 *
 * ---
 *
 * JS: Turn-Related
 * 
 *   JS: Pre-Start Turn:
 *   - Target function: BattleManager.startTurn()
 *   - JavaScript code occurs before function is run.
 * 
 *   JS: Post-Start Turn:
 *   - Target function: BattleManager.startTurn()
 *   - JavaScript code occurs after function is run.
 * 
 *   JS: Pre-End Turn:
 *   - Target function: Game_Battler.prototype.onTurnEnd()
 *   - JavaScript code occurs before function is run.
 * 
 *   JS: Post-End Turn:
 *   - Target function: Game_Battler.prototype.onTurnEnd()
 *   - JavaScript code occurs after function is run.
 * 
 *   JS: Pre-Regenerate:
 *   - Target function: Game_Battler.prototype.regenerateAll()
 *   - JavaScript code occurs before function is run.
 * 
 *   JS: Post-Regenerate:
 *   - Target function: Game_Battler.prototype.regenerateAll()
 *   - JavaScript code occurs after function is run.
 *
 * ---
 *
 * JS: Action-Related
 * 
 *   JS: Pre-Start Action:
 *   - Target function: BattleManager.startAction()
 *   - JavaScript code occurs before function is run.
 * 
 *   JS: Post-Start Action:
 *   - Target function: BattleManager.startAction()
 *   - JavaScript code occurs after function is run.
 * 
 *   JS: Pre-Apply:
 *   - Target function: Game_Action.prototype.apply()
 *   - JavaScript code occurs before function is run.
 * 
 *   JS: Pre-Damage:
 *   - Target function: Game_Action.prototype.executeDamage()
 *   - JavaScript code occurs before function is run.
 * 
 *   JS: Post-Damage:
 *   - Target function: Game_Action.prototype.executeDamage()
 *   - JavaScript code occurs after function is run.
 * 
 *   JS: Post-Apply:
 *   - Target function: Game_Action.prototype.apply()
 *   - JavaScript code occurs after function is run.
 * 
 *   JS: Pre-End Action:
 *   - Target function: BattleManager.endAction()
 *   - JavaScript code occurs before function is run.
 * 
 *   JS: Post-End Action:
 *   - DescriTarget function: BattleManager.endAction()
 *   - JavaScript code occurs after function is run.
 *
 * ---
 *
 * ============================================================================
 * Plugin Parameters: Battle Layout Settings
 * ============================================================================
 *
 * The Battle Layout Settings Plugin Parameter gives you control over the look,
 * style, and appearance of certain UI elements. These range from the way the
 * Battle Status Window presents its information to the way certain windows
 * like the Party Command Window and Actor Command Window appear.
 *
 * ---
 *
 * Battle Layout Style
 * - The style used for the battle layout.
 * 
 *   Default:
 *   - Shows actor faces in Battle Status.
 * 
 *   List:
 *   - Lists actors in Battle Status.
 * 
 *   XP:
 *   - Shows actor battlers in a stretched Battle Status.
 * 
 *   Portrait:
 *   - Shows portraits in a stretched Battle Status.
 * 
 *   Border:
 *   - Displays windows around the screen border.
 *
 * ---
 *
 * List Style
 * 
 *   Show Faces:
 *   - Shows faces in List Style?
 * 
 *   Command Window Width:
 *   - Determine the window width for the Party and Actor Command Windows.
 *   - Affects Default and List Battle Layout styles.
 * 
 *   Minimum Rows:
 *   - How many rows minimum will the list style go to?
 *   - This is to prevent the list window from becoming too small.
 *
 * ---
 *
 * XP Style
 * 
 *   Command Lines:
 *   - Number of action lines in the Actor Command Window for the XP Style.
 * 
 *   Sprite Height:
 *   - Default sprite height used when if the sprite's height has not been
 *     determined yet.
 * 
 *   Sprite Base Location:
 *   - Determine where the sprite is located on the Battle Status Window.
 *     - Above Name - Sprite is located above the name.
 *     - Bottom - Sprite is located at the bottom of the window.
 *     - Centered - Sprite is centered in the window.
 *     - Top - Sprite is located at the top of the window.
 *
 * ---
 *
 * Portrait Style
 * 
 *   Show Portraits?:
 *   - Requires VisuMZ_1_MainMenuCore.
 *   - Shows the actor's portrait instead of a face.
 * 
 *   Portrait Scaling:
 *   - If portraits are used, scale them by this much.
 *
 * ---
 *
 * Border Style
 * 
 *   Columns:
 *   - The total number of columns for Skill & Item Windows in the battle scene
 * 
 *   Show Portraits?:
 *   - Requires VisuMZ_1_MainMenuCore.
 *   - Shows the actor's portrait at the edge of the screen.
 * 
 *   Portrait Scaling:
 *   - If portraits are used, scale them by this much.
 *
 * ---
 *
 * Skill & Item Windows
 * 
 *   Middle Layout:
 *   - Shows the Skill & Item Windows in mid-screen?
 * 
 *   Columns:
 *   - The total number of columns for Skill & Item Windows in the battle scene
 *
 * ---
 * 
 * Status Window Elements
 * 
 *   Battler Name:
 *   Gauge 1 (HP):
 *   Gauge 2 (MP):
 *   Gauge 3 (TP):
 *   State Icon:
 *   TPB/ATB Gauge:
 * 
 *     Offset: X/Y:
 *     - Offset this Battle Status Window element's X/Y.
 *     - For X: Negative goes left. Positive goes right.
 *     - For Y: Negative goes up. Positive goes down.
 * 
 *   Window Skin:
 * 
 *     Filename:
 *     - Filename used for the Battle Status Window skin.
 *     - Leave this empty to use the default window skin.
 * 
 *     Hide Window Skin?:
 *     - Hide the window skin for the Battle Status Window?
 * 
 *   Selectable Background:
 * 
 *     Hide Selectable BG?:
 *     - Show/Hide the selectable background box for the Battle Status Window?
 * 
 *   Attachments:
 * 
 *     Back Attachment:
 * 
 *       Filename:
 *       - Filename used for an image to attach to the back of the Battle
 *         Status Window. Leave empty for none.
 * 
 *       Offset: X/Y:
 *       - Offset this Battle Status Window element's X/Y.
 *       - For X: Negative goes left. Positive goes right.
 *       - For Y: Negative goes up. Positive goes down.
 * 
 *     Front Attachment:
 * 
 *       Filename:
 *       - Filename used for an image to attach to the front of the Battle
 *         Status Window. Leave empty for none.
 * 
 * ---
 * 
 * UI Elements
 * 
 *   Anti-Tint UI?
 *   - Prevent UI Elements from being tinted?
 *   - This prevents UI Elements such as HP Gauges, Enemy Names, Battle Cursor,
 *     and Weakness Display from being affected by screen tint.
 * 
 * ---
 *
 * ============================================================================
 * Plugin Parameters: Battle Log Settings
 * ============================================================================
 *
 * These Plugin Parameters give you control over how the Battle Log Window, the
 * window shown at the top of the screen in the battle layout, appears, its
 * various properties, and which text will be displayed.
 *
 * The majority of the text has been disabled by default with this plugin to
 * make the flow of battle progress faster.
 *
 * ---
 *
 * General
 * 
 *   Back Color:
 *   - Use #rrggbb for a hex color.
 * 
 *   Max Lines:
 *   - Maximum number of lines to be displayed.
 * 
 *   Message Wait:
 *   - Number of frames for a usual message wait.
 * 
 *   Text Align:
 *   - Text alignment for the Window_BattleLog.
 * 
 *   JS: X, Y, W, H:
 *   - Code used to determine the dimensions for the battle log.
 *
 * ---
 *
 * Start Turn
 * 
 *   Show Start Turn?:
 *   - Display turn changes at the start of the turn?
 * 
 *   Start Turn Message:
 *   - Message displayed at turn start.
 *   - %1 - Turn Count
 * 
 *   Start Turn Wait:
 *   - Number of frames to wait after a turn started.
 *
 * ---
 *
 * Display Action
 * 
 *   Show Centered Action?:
 *   - Display a centered text of the action name?
 * 
 *   Show Skill Message 1?:
 *   - Display the 1st skill message?
 * 
 *   Show Skill Message 2?:
 *   - Display the 2nd skill message?
 * 
 *   Show Item Message?:
 *   - Display the item use message?
 *
 * ---
 *
 * Action Changes
 * 
 *   Show Counter?:
 *   - Display counter text?
 * 
 *     Wait Frames:
 *     - How many frames should the battle log wait after text?
 *     - 60 frames = 1 second.
 * 
 *   Show Reflect?:
 *   - Display magic reflection text?
 * 
 *     Wait Frames:
 *     - How many frames should the battle log wait after text?
 *     - 60 frames = 1 second.
 * 
 *   Show Substitute?:
 *   - Display substitute text?
 * 
 *     Wait Frames:
 *     - How many frames should the battle log wait after text?
 *     - 60 frames = 1 second.
 *
 * ---
 *
 * Action Results
 * 
 *   Show No Effect?:
 *   - Display no effect text?
 * 
 *   Show Critical?:
 *   - Display critical text?
 * 
 *   Show Miss/Evasion?:
 *   - Display miss/evasion text?
 * 
 *   Show HP Damage?:
 *   - Display HP Damage text?
 * 
 *   Show MP Damage?:
 *   - Display MP Damage text?
 * 
 *   Show TP Damage?:
 *   - Display TP Damage text?
 *
 * ---
 *
 * Display States
 * 
 *   Show Added States?:
 *   - Display added states text?
 * 
 *   Show Removed States?:
 *   - Display removed states text?
 * 
 *   Show Current States?:
 *   - Display the currently affected state text?
 * 
 *   Show Added Buffs?:
 *   - Display added buffs text?
 * 
 *   Show Added Debuffs?:
 *   - Display added debuffs text?
 * 
 *   Show Removed Buffs?:
 *   - Display removed de/buffs text?
 *
 * ---
 *
 * ============================================================================
 * Plugin Parameters: Battleback Scaling Settings
 * ============================================================================
 *
 * By default, the battlebacks in RPG Maker MZ scale as if the screen size is
 * a static 816x624 resolution, which isn't always the case. These settings
 * here allow you to dictate how you want the battlebacks to scale for the
 * whole game. These settings CANNOT be changed midgame or per battle.
 *
 * ---
 *
 * Settings
 * 
 *   Default Style:
 *   - The default scaling style used for battlebacks.
 *   - MZ (MZ's default style)
 *   - 1:1 (No Scaling)
 *   - Scale To Fit (Scale to screen size)
 *   - Scale Down (Scale Downward if Larger than Screen)
 *   - Scale Up (Scale Upward if Smaller than Screen)
 * 
 *   JS: 1:1:
 *   JS: Scale To Fit:
 *   JS: Scale Down:
 *   JS: Scale Up:
 *   - This code gives you control over the scaling for this style.
 *
 * ---
 *
 * ============================================================================
 * Plugin Parameters: Party Command Window
 * ============================================================================
 *
 * These Plugin Parameters allow you control over how the Party Command Window
 * operates in the battle scene. You can turn disable it from appearing or make
 * it so that it doesn't 
 *
 * ---
 *
 * Command Window
 * 
 *   Style:
 *   - How do you wish to draw commands in the Party Command Window?
 *   - Text Only: Display only the text.
 *   - Icon Only: Display only the icon.
 *   - Icon + Text: Display the icon first, then the text.
 *   - Auto: Determine which is better to use based on the size of the cell.
 * 
 *   Text Align:
 *   - Text alignment for the Party Command Window.
 * 
 *   Fight Icon:
 *   - The icon used for the Fight command.
 * 
 *   Add Auto Battle?:
 *   - Add the "Auto Battle" command to the Command Window?
 * 
 *     Auto Battle Icon:
 *     - The icon used for the Auto Battle command.
 * 
 *     Auto Battle Text:
 *     - The text used for the Auto Battle command.
 * 
 *   Add Status?:
 *   - Add the "Status" command to the Command Window?
 * 
 *   Add Options?:
 *   - Add the "Options" command to the Command Window?
 * 
 *     Options Icon:
 *     - The icon used for the Options command.
 * 
 *     Active TPB Message:
 *     - Message that will be displayed when selecting options during the
 *       middle of an action.
 * 
 *   Escape Icon:
 *   - The icon used for the Escape command.
 *
 * ---
 *
 * Access
 * 
 *   Skip Party Command:
 *   - DTB: Skip Party Command selection on turn start.
 *   - TPB: Skip Party Command selection at battle start.
 * 
 *   Disable Party Command:
 *   - Disable the Party Command Window entirely?
 *
 * ---
 *
 * Help Window
 * 
 * The Help Window will only appear for 'Border' and 'Frontview Battle UI'
 * battle layouts. It does not appear for other battle layouts.
 * 
 *   Fight:
 *   - Text displayed when selecting a skill type.
 *   - %1 - Skill Type Name
 * 
 *   Auto Battle:
 *   - Text displayed when selecting the Auto Battle command.
 * 
 *   Options:
 *   - Text displayed when selecting the Options command.
 * 
 *   Escape:
 *   - Text displayed when selecting the escape command.
 *
 * ---
 *
 * ============================================================================
 * Plugin Parameters: Actor Command Window
 * ============================================================================
 *
 * These Plugin Parameters allow you to change various aspects regarding the
 * Actor Command Window and how it operates in the battle scene. This ranges
 * from how it appears to the default battle commands given to all players
 * without a custom <Battle Commands> notetag.
 *
 * ---
 *
 * Command Window
 * 
 *   Style:
 *   - How do you wish to draw commands in the Actor Command Window?
 *   - Text Only: Display only the text.
 *   - Icon Only: Display only the icon.
 *   - Icon + Text: Display the icon first, then the text.
 *   - Auto: Determine which is better to use based on the size of the cell.
 * 
 *   Text Align:
 *   - Text alignment for the Actor Command Window.
 * 
 *   Item Icon:
 *   - The icon used for the Item command.
 * 
 *   Normal SType Icon:
 *   - Icon used for normal skill types that aren't assigned any icons.
 *   - Ignore if VisuMZ_1_SkillsStatesCore is installed.
 * 
 *   Magic SType Icon:
 *   - Icon used for magic skill types that aren't assigned any icons.
 *   - Ignore if VisuMZ_1_SkillsStatesCore is installed.
 *
 * ---
 *
 * Battle Commands
 * 
 *   Command List:
 *   - List of battle commands that appear by default if the <Battle Commands>
 *     notetag isn't present.
 *
 *     - Attack 
 *       - Adds the basic attack command.
 * 
 *     - Skills
 *       - Displays all the skill types available to the actor.
 * 
 *     - SType: x
 *     - Stype: name
 *       - Adds in a specific skill type.
 *       - Replace 'x' with the ID of the skill type.
 *       - Replace 'name' with the name of the skill type (without text codes).
 *
 *     - All Skills
 *       - Adds all usable battle skills as individual actions.
 * 
 *     - Skill: x
 *     - Skill: name
 *       - Adds in a specific skill as a usable action.
 *       - Replace 'x' with the ID of the skill.
 *       - Replace 'name' with the name of the skill.
 * 
 *     - Guard
 *       - Adds the basic guard command.
 * 
 *     - Item
 *       - Adds the basic item command.
 * 
 *     - Status
 *       - Adds the status command.
 * 
 *     - Escape
 *       - Adds the escape command.
 * 
 *     - Auto Battle
 *       - Adds the auto battle command.
 * 
 *     - Party
 *       - Requires VisuMZ_2_PartySystem!
 *       - Switches out the current actor for another.
 * 
 *     - Combat Log
 *       - Requires VisuMZ_4_CombatLog!
 *       - Shows combat log.
 * 
 *     - Talk
 *       - Requires VisuMZ_3_BattleCmdTalk!
 *       - Shows talk command if applicable.
 * 
 *     - Weapon Swap
 *       - Requires VisuMZ_2_WeaponSwapSystem!
 *       - Swaps current weapon for next one.
 * 
 *   Show Command Costs:
 *   - If a battle command has a resource cost, show it?
 *
 * ---
 *
 * Help Window
 * 
 * The Help Window will only appear for 'Border' and 'Frontview Battle UI'
 * battle layouts. It does not appear for other battle layouts.
 * 
 *   Skill Types:
 *   - Text displayed when selecting a skill type.
 *   - %1 - Skill Type Name
 * 
 *   Items:
 *   - Text displayed when selecting the item command.
 * 
 *   Escape:
 *   - Text displayed when selecting the escape command.
 * 
 *   Auto Battle:
 *   - Text displayed when selecting the Auto Battle command.
 *
 * ---
 *
 * ============================================================================
 * Plugin Parameters: In-Battle Status Window
 * ============================================================================
 *
 * Added with Battle Core version 1.84, this new window allows the player to
 * view the status of the current active party. If the actors have states and
 * buffs, the player can scroll through them and read about their effects
 * through the help window.
 * 
 * If you would like to manage which parameters can appear here, this can be
 * done through the VisuMZ_0_CoreEngine's "Parameter Settings" and adjust which
 * parameters are shown through "Extended Parameters". These settings will
 * reflect in the In-Battle Status window, too. Otherwise, the parameters that
 * will be shown will only be MaxHP, MaxMP, ATK, DEF, MAT, MDF, AGI, and LUK.
 * 
 * The In-Battle Status can also be used to view enemies (if the parameter is
 * enabled). To view enemies, players must scroll through all the actors before
 * viewing enemies. Enemies will have their battler graphic displayed. If the
 * enemy has a SV Battler graphic, that will be displayed instead. However, if
 * the enemy has a Dragonbones, then the database battler graphic is displayed
 * to match any of the turn order displays as those also use the same graphic.
 * 
 * Enemies will not display the current HP on their In-Battle Status gauges.
 * Instead, they will display what percentage their HP, MP, and/or TP is at.
 * This is primarily due to how gauges do not support large numbers well and
 * showing the percentage values are better for this scene.
 *
 * ---
 * 
 * General Settings
 * 
 *   Status Icon:
 *   - The icon used for the Status command.
 * 
 *   Status Graphic:
 *   - Choose how the actor graphic appears for In-Battle Status.
 * 
 *   Help Description:
 *   - Text displayed when selecting the Status command.
 * 
 * ---
 * 
 * Enemy Settings
 * 
 *   Allow View Enemies?:
 *   - Allows players to view enemy stats (even if limited)?
 * 
 *   Show Level?:
 *   - Shows the enemy's level in the In-Battle Status?
 * 
 *   Hidden Parameter:
 *   - The text that appears if a parameter value is hidden.
 * 
 *     Show Params Always:
 *     - Always show exact enemy parameter values.
 * 
 *     Show Battle Test:
 *     - Show exact enemy parameter values in battle test.
 * 
 *     Show If Defeated:
 *     - Show exact enemy parameter values if enemy has been defeated before.
 * 
 * ---
 * 
 * Page Buttons:
 * 
 *   Show Page Buttons?:
 *   - Shows page buttons to switch between actors?
 *   - Still requires Touch UI option to be on.
 * 
 *   Large UI Position?:
 *   - If using a large resolution, position the page buttons on which side?
 * 
 *  Offset X
 *  - Offsets the page buttons x position.
 *  - Negative: left. Positive: right.
 * 
 *  Offset Y
 *  - Offsets the page buttons y position.
 *  - Negative: up. Positive: down.
 * 
 * ---
 * 
 * Parameter Display
 * 
 *   Increased Value
 *   - How are increased parameter values displayed?
 *   - %1 - Parameter Value
 * 
 *   Decreased Value
 *   - How are increased parameter values displayed?
 *   - %1 - Parameter Value
 * 
 * ---
 * 
 * States Display
 * 
 *   Max Width
 *   - Maximum width of the states list display.
 * 
 *   List States?
 *   - Lists states in the states list display?
 * 
 *   List Buffs?
 *   - Lists buffs in the states list display?
 * 
 *   List Debuffs?
 *   - Lists debuffs in the states list display?
 * 
 *   Buffs/Debuffs Display:
 * 
 *     Buff Name Format
 *     - Text format used to represent buffs.
 *     - %1 - Parameter Name
 * 
 *     Debuff Name Format
 *     - Text format used to represent debuffs.
 *     - %1 - Parameter Name
 * 
 *   Normal State:
 * 
 *     Normal Icon
 *     - Icon used to represent normal state (unaffected by states, buffs, or
 *       debuffs).
 * 
 *     Normal Text
 *     - Text used to represent normal state (unaffected by states, buffs, or
 *       debuffs).
 * 
 * ---
 * 
 * Help Descriptions
 * 
 *   State Help Format:
 *   - Text format used for state help descriptions
 *   - %1 - Description; %2 - Turns/Actions Remaining
 * 
 *   Buff Help Format:
 *   - Text format used for Buff help descriptions
 *   - %1 - Param; %2 - Percent; %3 - Color; %4 - Turns
 * 
 *   Debuff Help Format:
 *   - Text format used for Debuff help descriptions
 *   - %1 - Param; %2 - Percent; %3 - Color; %4 - Turns
 * 
 *   Normal State:
 *   - Help description used to explain normal state (unaffected by states,
 *     buffs, or debuffs).
 * 
 *   Turns/Actions Left:
 * 
 *     Actions Format:
 *     - Text format used to represent actions remaining.
 *     - %1 - Actions; %2 - Color
 * 
 *     Turns Format:
 *     - Text format used to represent turns remaining.
 *     - %1 - Turns; %2 - Color
 * 
 *     Passive Text:
 *     - Text used to represent a passive.
 * 
 * ---
 * 
 * Window Settings
 * 
 *   Background Type:
 *   - Select background type for this window.
 * 
 *   JS: Draw Data:
 *   - Code used to draw battler data.
 * 
 *   JS: X, Y, W, H:
 *   - Code used to determine the dimensions for this window.
 * 
 * 
 * ---
 *
 * ============================================================================
 * Plugin Parameters: Multi-Target Windows Settings
 * ============================================================================
 *
 * Action Sequence Plugin Parameters adjust how the Multi-Target Windows appear
 * in battle. These windows are visible when selecting an enemy or actor while
 * using a skill/item that has the <Single or Multiple Select> notetag.
 * 
 * Those wondering why this isn't regulated to a command left or right of the
 * enemies and actors is because mouse controls and touch controls would not be
 * able to select all enemies or all allies that way.
 *
 * ---
 * 
 * Properties
 * 
 *   Window Width:
 *   - What is the width used for the Multi-Target Window?
 * 
 *   Background Type:
 *   - Select background type for these windows.
 * 
 *   Show Button:
 *   - Shows the keyboard/controller button to press?
 *   - Requires VisuMZ_0_CoreEngine!
 * 
 * ---
 * 
 * Vocab
 * 
 *   All Actors:
 *   - What is the text used for the "All Actors" button?
 * 
 *   All Enemies:
 *   - What is the text used for the "All Enemies" button?
 * 
 * ---
 * 
 * Offsets > Actor Offsets
 * Offsets > Enemy Offsets
 * 
 *   Offset X:
 *   - Offsets the button's x position.
 *   - Negative: left. Positive: right.
 * 
 *   Offset Y:
 *   - Offsets the button's y position.
 *   - Negative: up. Positive: down.
 * 
 * ---
 *
 * ============================================================================
 * Plugin Parameters: Damage Combo Window Settings
 * ============================================================================
 * 
 * If enabled, this window will display updated information about the total
 * amount of hits performed and total damage/healing value executed for HP.
 * 
 * This only applies when HP damage is directly dealt through action effects.
 * It does NOT apply for MP damage, TP damage, states, regeneration, or event
 * commands.
 * 
 * If you would like to adjust the Damage Combo Window mid-action, you can use
 * the following script calls to do so:
 * 
 *     $comboWindowReset()
 *     - Resets the all values found in the damage combo window.
 * 
 *     $comboWindowIncreaseHits(x)
 *     - Increases the current hit counter in the combo window by 'x'.
 *     - Insert a number for 'x'.
 *     - Example: $comboWindowIncreaseHits(2)
 * 
 *     $comboWindowIncreaseDamage(x)
 *     - Increases the current total damage counter in the combo window by 'x'.
 *     - Insert a number for 'x'.
 *     - This will offset any healing added in the damage counter window.
 *     - Example: $comboWindowIncreaseDamage(100)
 * 
 *     $comboWindowIncreaseHealing(x)
 *     - Increases the current total heal counter in the combo window by 'x'.
 *     - Insert a number for 'x'.
 *     - This will offset any damage added in the damage counter window.
 *     - Example: $comboWindowIncreaseHealing(200)
 * 
 * ---
 * 
 * General Settings:
 * 
 *   Enable?:
 *   - Add the Combo Window to show in battle?
 * 
 * ---
 * 
 * Appearance Settings:
 * 
 *   Custom Font:
 *   - Insert the custom font face name here.
 *   - Use VisuMZ_1_MessageCore to register new fonts.
 * 
 *   Text Align:
 *   - Text alignment for this window?
 * 
 *   JS: Draw Data:
 *   - Code used to draw the data in this window.
 * 
 * ---
 * 
 * Vocabulary:
 * 
 *   Damage Combo Format:
 *   - Text format used to display total hits for damage.
 *   - %1 - Total Hits
 * 
 *   Healing Combo Format:
 *   - Text format used to display total hits for healing.
 *   - %1 - Total Hits
 * 
 *   Damage Total Format:
 *   - Text format used to display total value for damage.
 *   - %1 - Total Damage
 * 
 *   Healing Total Format:
 *   - Text format used to display total value for healing.
 *   - %1 - Total Healing
 * 
 * ---
 * 
 * Position Settings:
 * 
 *   Fade Shift X:
 *   - Shifts the windows x position when fading.
 *   - Negative: left. Positive: right.
 * 
 *   Fade Shift Y:
 *   - Shifts the windows y position when fading.
 *   - Negative: up. Positive: down.
 * 
 *   Offset X:
 *   - Offsets the windows x position.
 *   - Negative: left. Positive: right.
 * 
 *   Offset Y:
 *   - Offsets the windows y position.
 *   - Negative: up. Positive: down.
 * 
 *   JS: X, Y, W, H:
 *   - Code used to determine the dimensions for this window.
 * 
 * ---
 * 
 * Updating Settings:
 * 
 *   Number Roll Duration:
 *   - Frame duration to roll damage numbers.
 *   - 60 frames = 1 second.
 * 
 *   Minimum Stay Duration:
 *   - Frame duration to stay visible minimum. 
 *   - 60 frames = 1 second.
 * 
 *   Minimum Hit Visible:
 *   - Minimum hits before combo window becomes visible?
 * 
 *   Opacity Speed:
 *   - Opacity speed when fading in/out.
 * 
 * ---
 *
 * ============================================================================
 * Plugin Parameters: Actor Battler Settings
 * ============================================================================
 *
 * These Plugin Parameter settings adjust how the sideview battlers behave for
 * the actor sprites. Some of these settings are shared with enemies if they
 * use sideview battler graphics.
 *
 * ---
 *
 * Flinch
 * 
 *   Flinch Distance X:
 *   - The normal X distance when flinching.
 * 
 *   Flinch Distance Y:
 *   - The normal Y distance when flinching.
 * 
 *   Flinch Duration:
 *   - The number of frames for a flinch to complete.
 * 
 *   Shake Flinch:
 *   - Perform a shake flinch when taking damage?
 * 
 *     Max Duration:
 *     - Maximum duration a shake flinch can have.
 *     - This is reduced relative to the amount of damage taken.
 * 
 *     Max Power:
 *     - The power rating of a shake flinch at full damage.
 *     - This is reduced relative to the amount of damage taken.
 *
 * ---
 * 
 * Frontview Battlers
 * 
 *   Portrait Animations:
 * 
 *     Each Target:
 *     - Place animations on top for "Each Target" display types?
 *     - Does not apply to MV animations.
 * 
 *     Center of All:
 *     - Place animations on top for "Center of All" display types?
 *     - Does not apply to MV animations.
 * 
 *     Center of Screen:
 *     - Place animations on top for "Center of Screen" display types?
 *     - Does not apply to MV animations.
 * 
 * ---
 *
 * Sideview Battlers
 * 
 *   Anchor:
 * 
 *     Anchor: X:
 *     - Default X anchor for Sideview Battlers.
 * 
 *     Anchor: Y:
 *     - Default Y anchor for Sideview Battlers.
 * 
 *   Chant Style:
 *   - What determines the chant motion?
 *   - Hit type or skill type?
 * 
 *   Motion Speed:
 *   - The number of frames in between each motion.
 * 
 *   Position:
 * 
 *     Offset X:
 *     - Offsets X position where actor is positioned.
 *     - Negative values go left. Positive values go right.
 * 
 *     Offset Y:
 *     - Offsets Y position where actor is positioned.
 *     - Negative values go up. Positive values go down.
 * 
 *   Priority: Active:
 *   - Place the active actor on top of actor and enemy sprites.
 * 
 *   Priority: Actors:
 *   - Prioritize actors over enemies when placing sprites on top of each other
 * 
 *   Shadow Visible:
 *   - Show or hide the shadow for Sideview Battlers.
 * 
 *   Smooth Image:
 *   - Smooth out the battler images or pixelate them?
 * 
 *   State Overlay:
 * 
 *     Offset X:
 *     - Offsets X position for state overlay on actor.
 *     - Negative values go left. Positive values go right.
 * 
 *     Offset Y:
 *     - Offsets Y position for state overlay on actor.
 *     - Negative values go up. Positive values go down.
 * 
 *   JS: Home Position:
 *   - Code used to calculate the home position of actors.
 *
 * ---
 *
 * ============================================================================
 * Plugin Parameters: Enemy Battler Settings
 * ============================================================================
 *
 * These Plugin Parameter settings adjust how enemies appear visually in the
 * battle scene. Some of these settings will override the settings used for
 * actors if used as sideview battlers. Other settings include changing up the
 * default attack animation for enemies, how the enemy select window functions,
 * and more.
 *
 * ---
 *
 * Visual
 * 
 *   Attack Animation:
 *   - Default attack animation used for enemies.
 *   - Use <Attack Animation: x> for custom animations.
 * 
 *   Emerge Text:
 *   - Show or hide the 'Enemy emerges!' text at the start of battle.
 * 
 *   Offset X:
 *   - Offsets X position where enemy is positioned.
 *   - Negative values go left. Positive values go right.
 * 
 *   Offset Y:
 *   - Offsets Y position where enemy is positioned.
 *   - Negative values go up. Positive values go down.
 * 
 *   Smooth Image:
 *   - Smooth out the battler images or pixelate them?
 *
 * ---
 *
 * Select Window
 * 
 *   Any: Last Selected:
 *   - Prioritize last selected enemy over front view or sideview settings?
 * 
 *   FV: Right Priority:
 *   - If using frontview, auto select the enemy furthest right.
 * 
 *   SV: Right Priority:
 *   - If using sideview, auto select the enemy furthest right.
 * 
 * ---
 * 
 * Name:
 * 
 *   Legacy Option:
 *   - Use the legacy version (window) or new version (sprite).
 *   - WARNING: Legacy version is no longer supported for bugs.
 *   - Not all settings available here in the Plugin Parameters will be
 *     available to the legacy version (ie Always Visible and Attach States).
 * 
 *   Font Size:
 *   - Font size used for enemy names.
 * 
 *   Name Position:
 * 
 *     Offset X:
 *     Offset Y:
 *     - Offset the enemy name's position by this much.
 *     - For X: Negative goes left. Positive goes right.
 *     - For Y: Negative goes up. Positive goes down.
 * 
 *   Name: Attach States:
 *   - Attach the enemy's state icon to the enemy name?
 * 
 *     Attach: Offset X:
 *     Attach: Offset Y:
 *     - How much to offset the attached icon's X/Y position by?
 *     - For X: Negative goes left. Positive goes right.
 *     - For Y: Negative goes up. Positive goes down.
 * 
 *   Name Visibility:
 * 
 *     Always Hidden:
 *     - Determines if the enemy name will always be visible.
 *     - Highest priority.
 * 
 *     Always Visible:
 *     - Determines if the enemy name will always be visible.
 *     - Medium priority.
 * 
 *     As Target:
 *     - Shows enemy name when enemy is a target.
 *     - Medium priority.
 * 
 *     By Selection?:
 *     - Determines the conditions for enemy name visibility.
 *     - Lowest priority.
 * 
 *     Temporary Visibility:
 *     - Number of frames enemy's name temporarily visible after taking an
 *       action effect in battle.
 *     - 60 frames = 1 second.
 *
 * ---
 *
 * Sideview Battlers
 * 
 *   Allow Collapse:
 *   - Causes defeated enemies with SV Battler graphics to "fade away"
 *     when defeated?
 * 
 *   Anchor: X:
 *   - Default X anchor for Sideview Battlers.
 *   - Use values between 0 and 1 to be safe.
 * 
 *   Anchor: Y:
 *   - Default Y anchor for Sideview Battlers.
 *   - Use values between 0 and 1 to be safe.
 * 
 *   Motion: Idle:
 *   - Sets default idle animation used by Sideview Battlers.
 * 
 *   Shadow Visible:
 *   - Show or hide the shadow for Sideview Battlers.
 * 
 *   Size: Width:
 *   - Default width for enemies that use Sideview Battlers.
 * 
 *   Size: Height:
 *   - Default height for enemies that use Sideview Battlers.
 * 
 *   Weapon Type:
 *   - Sets default weapon type used by Sideview Battlers.
 *   - Use 0 for Bare Hands.
 *
 * ---
 * 
 * Aspect Defaults
 * 
 *   Name Format:
 *   - Default name aspect format.
 *   - %1 - Original Enemy Name
 * 
 *   Name Color:
 *   - Use #rrggbb for custom colors or regular numbers for text colors from
 *     the Window Skin.
 * 
 *   Icon:
 *   - Default icon used for aspect.
 *   - Use <Aspect Icon: x> to change icon.
 * 
 * ---
 *
 * ============================================================================
 * Plugin Parameters: HP Gauge Settings
 * ============================================================================
 *
 * Settings that adjust the visual HP Gauge displayed in battle.
 *
 * ---
 *
 * Show Gauges For
 * 
 *   Actors:
 *   - Show HP Gauges over the actor sprites' heads?
 *   - Requires SV Actors to be visible.
 * 
 *   Enemies:
 *   - Show HP Gauges over the enemy sprites' heads?
 *   - Can be bypassed with <Hide HP Gauge> notetag.
 * 
 *     Requires Defeat?:
 *     - Requires defeating the enemy once to show HP Gauge?
 *     - Can be bypassed with <Show HP Gauge> notetag.
 * 
 *       Battle Test Bypass?:
 *       - Bypass the defeat requirement in battle test?
 *
 * ---
 *
 * Settings
 * 
 *   Animation Duration:
 *   - How many frames should gauges animate themselves?
 *   - Default: 20 frames.
 * 
 *   Anchor X:
 *   Anchor Y:
 *   - Where do you want the HP Gauge sprite's anchor X/Y to be?
 *     Use values between 0 and 1 to be safe.
 * 
 *   Scale:
 *   - How large/small do you want the HP Gauge to be scaled?
 * 
 *   Offset X:
 *   Offset Y:
 *   - How many pixels to offset the HP Gauge's X/Y by?
 *
 * ---
 *
 * Options
 * 
 *   Add Option?:
 *   - Add the 'Show HP Gauge' option to the Options menu?
 * 
 *   Adjust Window Height:
 *   - Automatically adjust the options window height?
 * 
 *   Option Name:
 *   - Command name of the option.
 *
 * ---
 *
 * ============================================================================
 * Plugin Parameters: Action Sequence Settings
 * ============================================================================
 *
 * Action Sequence Plugin Parameters allow you to decide if you want automatic
 * Action Sequences to be used for physical attacks, the default casting
 * animations used, how counters and reflects appear visually, and what the
 * default stepping distances are.
 *
 * ---
 *
 * Automatic Sequences
 * 
 *   Melee Single Target:
 *   - Allow this auto sequence for physical, single target actions?
 * 
 *   Melee Multi Target:
 *   - Allow this auto sequence for physical, multi-target actions?
 *
 * ---
 * 
 * Quality of Life
 * 
 *   Auto Notetag:
 *   - Automatically apply the <Custom Action Sequence> notetag effect to any
 *     item or skill that has a Common Event?
 *   - Any item or skill without a Common Event attached to it will use the
 *     Automatic Action Sequences instead.
 *   - The <Auto Action Sequence> notetag will disable this effect for that
 *     particular skill or item.
 * 
 * ---
 *
 * Cast Animations
 * 
 *   Certain Hit:
 *   - Cast animation for Certain Hit skills.
 * 
 *   Physical:
 *   - Cast animation for Physical skills.
 * 
 *   Magical:
 *   - Cast animation for Magical skills.
 *
 * ---
 *
 * Counter/Reflect
 * 
 *   Counter Back:
 *   - Play back the attack animation used?
 * 
 *   Reflect Animation:
 *   - Animation played when an action is reflected.
 * 
 *   Reflect Back:
 *   - Play back the attack animation used?
 *
 * ---
 *
 * Stepping
 * 
 *   Melee Distance:
 *   - Minimum distance in pixels for Movement Action Sequences.
 * 
 *   Step Distance X:
 *   - The normal X distance when stepping forward.
 * 
 *   Step Distance Y:
 *   - The normal Y distance when stepping forward.
 * 
 *   Step Duration:
 *   - The number of frames for a stepping action to complete.
 *
 * ---
 *
 * ============================================================================
 * Terms of Use
 * ============================================================================
 *
 * 1. These plugins may be used in free or commercial games provided that they
 * have been acquired through legitimate means at VisuStella.com and/or any
 * other official approved VisuStella sources. Exceptions and special
 * circumstances that may prohibit usage will be listed on VisuStella.com.
 * 
 * 2. All of the listed coders found in the Credits section of this plugin must
 * be given credit in your games or credited as a collective under the name:
 * "VisuStella".
 * 
 * 3. You may edit the source code to suit your needs, so long as you do not
 * claim the source code belongs to you. VisuStella also does not take
 * responsibility for the plugin if any changes have been made to the plugin's
 * code, nor does VisuStella take responsibility for user-provided custom code
 * used for custom control effects including advanced JavaScript notetags
 * and/or plugin parameters that allow custom JavaScript code.
 * 
 * 4. You may NOT redistribute these plugins nor take code from this plugin to
 * use as your own. These plugins and their code are only to be downloaded from
 * VisuStella.com and other official/approved VisuStella sources. A list of
 * official/approved sources can also be found on VisuStella.com.
 *
 * 5. VisuStella is not responsible for problems found in your game due to
 * unintended usage, incompatibility problems with plugins outside of the
 * VisuStella MZ library, plugin versions that aren't up to date, nor
 * responsible for the proper working of compatibility patches made by any
 * third parties. VisuStella is not responsible for errors caused by any
 * user-provided custom code used for custom control effects including advanced
 * JavaScript notetags and/or plugin parameters that allow JavaScript code.
 *
 * 6. If a compatibility patch needs to be made through a third party that is
 * unaffiliated with VisuStella that involves using code from the VisuStella MZ
 * library, contact must be made with a member from VisuStella and have it
 * approved. The patch would be placed on VisuStella.com as a free download
 * to the public. Such patches cannot be sold for monetary gain, including
 * commissions, crowdfunding, and/or donations.
 *
 * ============================================================================
 * Credits
 * ============================================================================
 * 
 * If you are using this plugin, credit the following people in your game:
 * 
 * Team VisuStella
 * * Yanfly
 * * Arisu
 * * Olivia
 * * Irina
 *
 * ============================================================================
 * Changelog
 * ============================================================================
 * 
 * Version 1.90: February 16, 2026
 * * Documentation Update!
 * ** Help file updated for new features.
 * * New Features!
 * ** New Plugin Parameters added by Olivia:
 * *** Parameters > Battle Layout Settings > List Style > Minimum Rows
 * **** How many rows minimum will the list style go to?
 * **** This is to prevent the list window from becoming too small.
 * 
 * Version 1.89: December 15, 2025
 * * Bug Fixes!
 * ** Fixed some bugs where translated text through the Message Core would
 *    incorrectly calculate the projected text size. Fix made by Irina.
 * * Feature Update!
 * ** Added extra failsafes to ensure TPB Charge Time does not become NaN or
 *    an illegal value. Update made by Arisu.
 * 
 * Version 1.88: September 18, 2025
 * * Documentation Update!
 * ** Help file updated for new features.
 * * New Features!
 * ** New notetag added by Olivia:
 * *** <Damage Flinch>
 * **** Normally, MP and TP actions do not cause damage flinching. However,
 *      skills and items with this notetag will cause damage flinching if they
 *      hurt the target's MP or TP.
 * **** HP damage will always be affected and cause target to flinch.
 * ** New Plugin Parameter added by Olivia:
 * *** Plugin Parameters > Damage Settings > Check Formulas?
 * **** It's usually bad practice to put in battle mechanics within damage
 *      formulas and this will check the damage formulas for skills and items
 *      to see if they contain any of the common battle mechanics that have the
 *      potential to cause problems.
 * **** Checks for illegal mechanics inside of damage formulas?
 * **** (ie. gainHp, loseHp, addBuff, addDebuff, addState, etc)
 * **** Read the following article for an explanation on why battle mechanics
 *      in damage formulas are undesirable and for an alternate solution:
 * **** http://www.yanfly.moe/wiki/Stop_Putting_Mechanics_in_Damage_Formulas
 * **** Turn this off if you do not want to be alerted of which skills/items
 *      have battle mechanics in their damage formulas. 
 * 
 * Version 1.87: June 12, 2025
 * * Bug Fixes!
 * ** Fixed a bug where <JS Accuracy> and related notetags did not work.
 *    Fix made by Arisu.
 * ** Fixed a bug where dual wielding weapons with HP/MP bonuses would cause
 *    the max cache values to fluctuate per hit. Fix made by Olivia.
 * * Compatibility Update!
 * ** Added fail safes for plugins that would sometimes add null battlers to
 *    animation queues. This update prevents crashes for potential checks.
 * ** Added better compatibility with Message Core's text language change.
 *    Enemy names did not convert prior to placing state icons and would cause
 *    misalignment.
 * 
 * Version 1.86: January 16, 2025
 * * Bug Fixes!
 * ** Fixed a bug where during Active TPB, actors were not showing damage
 *    motions. Fix made by Olivia.
 * ** Fixed a bug regarding the in-battle status requiring that the Main Menu
 *    Core to be installed when other plugins are also present. Fix by Olivia.
 * ** Fixed a bug where <Exclude From Status Listing> notetag was not working
 *    properly due to a documentation typo of <Exclude From Status List>. Both
 *    notetags should now work. Fix made by Olivia.
 * * Documentation Update!
 * ** Help file updated for new features.
 * ** Added clarity for Plugin Parameters > Party Command Window Settings >
 *    Help Window
 * ** Added clarity for Plugin Parameters > Actor Command Window Settings >
 *    Help Window
 * *** The Help Window will only appear for 'Border' and 'Frontview Battle UI'
 *     battle layouts.
 * * New Features!
 * ** New notetag added by Irina:
 * *** <Under>
 * **** If this tag is found in an animation's name, the animation will appear
 *      under battlers while in battle.
 * ***** This effect only applies to battlers in the battle scene.
 * ***** Under effect is NOT applied to status window portraits.
 * ***** Under effect is NOT applied to projectile animations.
 * ** Added new Action Sequence Projectile settings:
 * *** Extra Settings > End Animation ID:
 * **** Plays an animation when projectile reaches target.
 * **** Requires VisuMZ_3_ActSeqProjectiles version 1.09+.
 * 
 * Version 1.85: October 17, 2024
 * * Bug Fixes!
 * ** Fixed a bug where the enemy name's visibility would remain after an
 *    action has taken place and before inputting is done. Fix made by Olivia.
 * ** Fixed a bug where the "Name Visibility As Target" plugin parameter did
 *    not work properly. Fix made by Olivia.
 * * Documentation Update!
 * ** Help file updated for new features.
 * ** Updated <Help Description> notetag documentation:
 * *** This is used as a common notetag between Battle Core's state
 *     descriptions and State Tooltips' state descriptions.
 * * New Features!
 * ** New Notetag added by Olivia:
 * *** <In-Battle Status Description>
 * **** A prioritized help description used to separate from the common help
 *      description notetag shared with State Tooltips.
 * ** New Plugin Parameters added by Olivia:
 * *** Actor Battlers > Frontview > Portrait Animations > Each Target
 * *** Actor Battlers > Frontview > Portrait Animations > Center of All
 * *** Actor Battlers > Frontview > Portrait Animations > Center of Screen
 * **** Place animations on top or behind for these display types?
 * *** Battle Log > Action Changes > Show Counter? > Wait Frames
 * *** Battle Log > Action Changes > Show Reflect? > Wait Frames
 * *** Battle Log > Action Changes > Show Substitute? > Wait Frames
 * **** If devs allow the results of counters, reflects, and substitutes, there
 *      wasn't enough time before to allow the text to be visible on screen.
 *      You can now adjust how many frames are now visible if text is shown.
 * **** Default values are left at 0 as to not interrupt currently existing
 *      action sequences.
 * 
 * Version 1.84: September 19, 2024
 * * Bug Fixes!
 * ** Fixed a bug where Action Sequence "MOVE: Change Home By Distance" would
 *    also be affected by the actor and enemy position offsets. Fixed by Irina.
 * ** Fixed a bug where Action Sequence "MECH: STB Exploit Effect" caused a
 *    crash. Fix made by Arisu.
 * * Documentation Update!
 * ** Help file updated for new features.
 * * New Features!
 * ** New Plugin Command added by Arisu:
 * *** ANIM: Change Battle Portrait (JS)
 * **** Changes the battle portrait of the actor through JavaScript.
 * **** Can be used outside of battle/action sequences.
 * ** New Plugin Parameters added by Olivia:
 * *** Plugin Parameters > In-Battle Status Window
 * **** This new window allows the player to view the status of the current
 *      active party. If the actors have states and buffs, the player can
 *      scroll through them and read about their effects through the help
 *      window.
 * ** New Notetags added by Olivia:
 * *** <Help Description>
 * **** Assigns a help description for the state that's displayed under the
 *      new "Status" actor command.
 * *** <Exclude From Status Listing>
 * **** Excludes the state from being displayed in the status listing.
 * *** <Aspect Name: x>
 * *** <Aspect Icon: x>
 * *** <Aspect Color: x>
 * *** <Aspect Description>
 * **** Used to define enemy aspect that will show up in the In-Battle Status
 *      as well as other supported plugins.
 * *** <Popup Position: Head>
 * *** <Popup Position: Center>
 * *** <Popup Position: Base>
 * **** Changes the popup starting position for this enemy.
 * *** <Popup Offset X: +x>
 * *** <Popup Offset X: -x>
 * *** <Popup Offset Y: +y>
 * *** <Popup Offset Y: -y>
 * **** Changes the popup X/Y position offset for this enemy.
 * ** New Plugin Parameters added by Olivia:
 * *** Plugin Parameters > Party Command Window > Add Status?
 * **** Add the "Status" command to the Command Window? 
 * *** Plugin Parameters > Actor Command Window > Command List
 * **** Updated to have the "Status" command.
 * *** Plugin Parameters > In-Battle Status Window
 * **** Completely new! View the help file for more information.
 * *** Plugin Parameters > Enemy > Aspects
 * **** Used for the In-Battle Status as well as other supported plugins.
 * 
 * Version 1.83: May 16, 2024
 * * Bug Fixes!
 * ** Fixed a bug where sometimes, a battler in Active TPB would not refresh
 *    their motion after a state has been removed. Fix made by Olivia.
 * * Documentation Update!
 * ** Help file updated for new features.
 * ** Fixed a typo with MP Life Steal notetag entry.
 * * Feature Updates!
 * ** Added fail safes for some plugin parameters in case users outright delete
 *    plugin parameter values without introducing something to replace them.
 *    Update made by Olivia.
 * * New Features!
 * ** New Action Sequence added by Olivia:
 * *** GRID: Add Trigger to Node JS
 * **** Adds JS Trigger to target node. Target node cannot have battler.
 * **** Requires VisuMZ_2_BattleGridSystem!
 * ** New notetags added by Olivia:
 * *** <JS Accuracy>
 * *** <JS Accuracy as User>
 * *** <JS Accuracy as Target>
 * **** Allows usage of JavaScript code to modify accuracy rates of actions in
 *      battle through skills, items, and trait objects.
 * *** <JS Critical Rate as User>
 * *** <JS Critical Rate as Target>
 * **** Allows usage of JavaScript code to modify critical rate of actions in
 *      battle through skills, items, and trait objects.
 * **** <JS Critical Rate> version already exists.
 * ** New Plugin Parameters added by Olivia
 * *** Plugin Parameters > Damage Combo Window
 * **** If enabled, this window will display updated information about the
 *      total amount of hits performed and total damage/healing value executed
 *      for HP.
 * *** Plugin Parameters > Actor Battler Settings > Sideview Battlers >
 *     State Overlay > Offset X/Y
 * **** Offsets X/Y position for state overlay on actor.
 * *** Plugin Parameters > Enemy Battler Settings > Name Visibility >
 *     As Target
 * **** Shows enemy name when enemy is a target.
 * *** Plugin Parameters > Enemy Battler Settings > Name Visibility >
 *     Temporary Visibility
 * **** Number of frames enemy's name temporarily visible after taking an
 *      action effect in battle.
 * 
 * Version 1.82: March 14, 2024
 * * Bug Fixes!
 * ** Home movement changes did not acknowledge actor and enemy offset X/Y
 *    positions. This should now be reflected properly. Fix made by Irina.
 * ** Fixed a bug where in active TPB/ATB, revived actors may not resume normal
 *    motions after collapsing. Fix made by Olivia.
 * 
 * Version 1.81: February 15, 2024
 * * Bug Fixes!
 * ** Fixed a bug that would cause active TPB inputting actors to not show
 *    their damage or evasion motions. Fix made by Olivia.
 * ** Fixed a bug that would cause a crash upon motion changes. Fix by Olivia.
 * ** Fixed an incorrect spelling of "Anger" for "ANIM: Balloon Animation" that
 *    prevented it from working properly.
 * * Compatibility Update!
 * ** Added compatibility functionality for future plugins.
 * * Documentation Update!
 * ** Help file updated for new features.
 * * New Features!
 * ** New Action Sequences added by Olivia:
 * *** ANIM: Show Animation JS
 * **** Plays the a specific animation on unit(s). Uses JavaScript to determine
 *      animation ID.
 * ** New Action Sequences added for future plugin: VisuMZ_2_BattleGridSystem
 * *** GRID: Action Animation at Node
 * *** GRID: Add Passive State(s) to Node
 * *** GRID: Add Trigger to Node
 * *** GRID: Animation ID at Node
 * *** GRID: Animation JS at Node
 * *** GRID: Animation Type at Node
 * *** GRID: Move Target(s) In Direction
 * *** GRID: Pull To Target Node
 * *** GRID: Push From Target Node
 * *** GRID: Remove All Passive States from Node
 * *** GRID: Remove Passive State(s) from Node
 * *** GRID: Remove Trigger from Node
 * *** GRID: Teleport To Node
 * *** GRID: Traverse To Node
 * **** Requires the future plugin VisuMZ_2_BattleGridSystem!
 * **** Read the help section for more information on these.
 * 
 * Version 1.80: January 18, 2024
 * * Bug Fixes!
 * ** Fixed a crash that would occur with <Disperse Damage> when used outside
 *    of battle. Fix made by Irina.
 * ** Fixed a crash that would occur with certain enemy graphics when images
 *    used for them would disappear. Fix made by Olivia.
 * * Documentation Update!
 * ** Help file updated for new features.
 * * New Features!
 * ** New Action Sequences added by Olivia:
 * *** ANIM: Guard Animation
 * *** ANIM: Item Animation
 * *** ANIM: Skill Animation
 * **** Plays the animation associated with the user's guard action (if any),
 *      or a specific item/skill.
 * *** MECH: Emulate Attack Effect
 * *** MECH: Emulate Guard Effect
 * *** MECH: Emulate Item Effect
 * *** MECH: Emulate Skill Effect
 * **** Emulate an "Action Effect" but using a the user's attack skill, guard
 *      skill, specific item, or specific skill instead of the current action.
 * **** Essentially lets you perform the mechanics of another action without
 *      having to use another action or needing to pay that action's costs.
 * *** MECH: Emulate Skill Cost
 * **** Pick a skill for target(s) to emulate paying the cost of.
 * **** Includes cooldowns and limited uses.
 * *** MECH: State Turns Change By
 * *** MECH: State Turns Change To
 * **** Changes target(s) state turns by an amount/to a certain value.
 * **** Requires VisuMZ_1_SkillsStatesCore!
 * *** Projectile action sequences have new Extra Features!
 * **** See v1.08 changes for VisuMZ_3_ActSeqProjectiles.
 * 
 * Version 1.79: December 14, 2023
 * * Documentation Update!
 * ** Help file updated for new features.
 * * New Features!
 * ** New Action Sequences added by Arisu:
 * *** ANIM: Balloon Animation
 * **** Plays a balloon animation on target(s).
 * *** ANIM: Balloon Icon (Single)
 * *** ANIM: Balloon Icon (Range)
 * *** ANIM: Balloon Icon (Specific)
 * **** Plays a balloon animation using an icon on target(s).
 * **** Requires VisuMZ_4_IconBalloons!
 * 
 * Version 1.78: October 12, 2023
 * * Bug Fixes!
 * ** Fixed a bug that is caused by using the actor escape command not escaping
 *    properly in battle and causing a freeze. Fix made by Olivia.
 * * Compatibility Update!
 * ** Added compatibility functionality for future plugins.
 * * Documentation Update!
 * ** Help file updated for new features.
 * * New Features!
 * ** New Plugin Parameter added by Olivia:
 * *** Parameters > Mechanics > Turn End Buffs Expire?
 * **** Normally, buffs expire after all actions end.
 * **** But here, you can have buffs expire on turn end.
 * * Optimization Update!
 * ** Plugin should run more optimized.
 * 
 * Version 1.77: August 17, 2023
 * * Bug Fixes!
 * ** Fixed a bug where for TPB, actions aimed at dead targets would not
 *    redirect to suitable targets. Fix made by Olivia.
 * ** Fixed a bug where dual wielding would not use a weapon if it was equipped
 *    in the second weapon slot if the first weapon slot was empty. Fix made
 *    by Olivia.
 * * Compatibility Update!
 * ** Added compatibility functionality for future plugins.
 * ** Added compatibility for VisuStella MZ Battle Voices Action Sequences.
 * * Documentation Update!
 * ** Help file updated for new features.
 * 
 * Version 1.76: July 13, 2023
 * * Documentation Update!
 * ** Help file updated for new features.
 * * New Features!
 * ** New Action Sequences added by Olivia and sponsored by NSG:
 * *** MOVE: Change Home To JS Coordinates
 * **** Change home position(s) to specified JS Coordinates. Sideview-only!
 *      Uses JS!
 * *** MOVE: Face JS Coordinates
 * **** Causes the unit(s) to face specified JS Coordinates. Sideview-only!
 *      Uses JS!
 * *** MOVE: Move To JS Coordinates
 * **** Moves unit(s) to specified JS Coordinates. Sideview-only! Uses JS!
 * 
 * Version 1.75: March 16, 2023
 * * Documentation Update!
 * ** Help file updated for new features.
 * * New Features!
 * ** New notetags added by Olivia and sponsored by Anon:
 * *** <HP Life Steal: x%>
 * *** <MP Life Steal: x%>
 * *** <HP Life Steal hitType: +/-x%>
 * *** <MP Life Steal hitType: +/-x%>
 * *** <Cancel Life Steal>
 * *** <Guard Life Steal>
 * *** <Disarm Life Steal>
 * *** <Negative Life Steal>
 * **** Life Steal properties involving HP/MP are now added. They will restore
 *      a portion of the dealt HP/MP damage to the target.
 * **** This is a different mechanic from Drain HP/Drain MP and cannot be used
 *      together to prevent clashing.
 * **** Read the help file for more information.
 * 
 * Version 1.74: February 16, 2023
 * * Bug Fixes!
 * ** Fixed a bug that would cause a crash if your basic attack skill somehow
 *    manages to target neither an enemy nor an actor. Fix made by Olivia.
 * * Documentation Update!
 * ** Help file updated for new features.
 * * Feature Update!
 * ** Auto-action sequence for jumping forward and attacking is now reinstated
 *    so that it's only disabled when the target and user are on the same side.
 *    If there is no target, a jump still occurs for visual player feedback.
 *    Update made by Olivia.
 * * New Features!
 * ** New notetag effect added by Olivia and sponsored by AndyL:
 * *** <Cannot Target User>
 * **** This will cause the action to be unable to select the user as target.
 * **** This is not a targeting scope. Instead, it is used in addition to any
 *      other targeting scopes out there.
 * 
 * Version 1.73: January 20, 2023
 * * Bug Fixes!
 * ** Active TPB custom action sequences will no longer play differently due to
 *    queued inputting actors causing motion refreshes. Fix made by Arisu.
 * ** Corrected and updated Anti-Tint UI animation offsets for MV animations.
 *    Fix made by Irina.
 * ** Fixed a problem with Sideview Battlers not working properly. Fix made
 *    by Irina.
 * * Compatibility Update!
 * ** Added compatibility functionality for future plugins.
 * * Documentation Update!
 * ** Help file updated for new features.
 * ** Help file updated for to add the following text to the <Target: x>
 *    notetag entries in order to avoid confusion.
 * *** This will overwrite the existing database scope and ignore the
 *     database's existing scope in favor of this.
 * * Feature Update!
 * ** <Extend: x> Troop Name Tag is now also usable as a Troop Comment Tag.
 * ** Action Sequence targeting has been updated with two new types "special"
 *    and "special x", to be used for future plugins.
 * * New Features!
 * ** New Notetags added by Irina and sponsored by AndyL:
 * *** <Target: Ally or Enemy>
 * *** <Target: Enemy or Ally>
 * **** Allows the player to target allies or enemies with the skill/item.
 * **** See help file for more information.
 * *** <Single or Multiple Select>
 * **** This will allow the skill/item to be able to select either single
 *      targets or multiple targets at once.
 * **** See help file for more information.
 * *** <Disperse Damage>
 * **** This will cause any damage dealt by this skill to be split equally
 *      amongst all targets of the skill including repeats.
 * ** New Plugin Parameters added by Irina and sponsored by AndyL:
 * *** Plugin Parameters > Multi-Target Windows
 * **** Settings that alter the Multi-Target Windows in battle.
 * 
 * Version 1.72: December 15, 2022
 * * Bug Fixes!
 * ** Fixed a transformation of a sideview enemy to a static enemy and back not
 *    working properly. Fix made by Irina.
 * * Documentation Update!
 * ** Help file updated for new features.
 * * New Feature!
 * ** New Plugin Parameter added by Irina!
 * *** Plugin Parameters > HP Gauges > Settings > Animation Duration
 * **** How many frames should gauges animate themselves? Default: 20 frames.
 * ** New Plugin Parameters added by Yanfly!
 * *** Plugin Parameters > Actor Battler Settings > Shake Flinch
 * *** Plugin Parameters > Actor Battler Settings > Shake Flinch > Max Power
 * *** Plugin Parameters > Actor Battler Settings > Shake Flinch > Max Duration
 * **** These new plugin parameters will cause targets that take HP damage to
 *      shake (in addition to a regular flinch) to provide better visual
 *      feedback to the player.
 * **** Shake Flinch will be kept disabled by default and only turned on when
 *      you want it to be.
 * * Optimization Update!
 * ** Plugin should run more optimized.
 * 
 * Version 1.71: November 10, 2022
 * ** Fixed a problem with repeating animations from Visual State Effects
 *    causing softlocks. Fix made by Olivia.
 * 
 * Version 1.70: October 6, 2022
 * * Bug Fixes!
 * ** Fixed a problem with the "Border" style where if a battle portrait
 *    changed midway through the battle, the portrait shown didn't actually
 *    update properly. Fix made by Irina.
 * * Documentation Update!
 * ** Help file updated for new features.
 * * New Features!
 * ** New Action Sequence added by Olivia:
 * *** MECH: Active Chain Input Disable
 * **** Disables input for Active Chain Skills at this time.
 * **** Requires VisuMZ_3_ActiveChainSkills!
 * ** New Plugin Parameter added by Olivia and sponsored by Anon:
 * *** Plugin Parameters > Damage Settings > Popups > End Battle Show?
 * **** Show or hide popups upon victory or escape?
 * **** Used to hide battle-state removal popups.
 * 
 * Version 1.69: September 7, 2022
 * * Compatibility Update!
 * ** Better compatibility with VisuMZ Active Chain Skills.
 * ** Compatibility will be seen with VisuMZ_3_ActiveChainSkills version 1.02.
 * * Documentation Update!
 * ** Added notes to the following Action Sequences:
 * *** MOTION: Clear Freeze Frame and MOTION: Freeze Motion Frame
 * **** Only applies to sprite sheets.
 * **** Does NOT work with Dragonbones.
 * **** Use "DB: Dragonbones Time Scale" instead.
 * * Feature Update!
 * ** Reduced MV Animation misalignment when Screen Resolution does not match
 *    the UI Area Resolution. Update by Arisu.
 * ** Command Remember will now remember the locations of single skills. Update
 *    made by Olivia.
 * 
 * Version 1.68: August 4, 2022
 * * Feature Update!
 * ** Damage popups are now automatically cleared upon starting battles. This
 *    is to ensure that, if for some reason, residual damage popup requests
 *    will not be retained. Update made by Olivia.
 * 
 * Version 1.67: July 28, 2022
 * * Feature Updates!
 * ** Rounding window coordinates have been added for for 'XP' and 'Portrait'
 *    styles when window sizes happen to land on non-divisible numbers. Update
 *    made by Irina.
 * ** Enemy name position rounding is now enforced. Update made by Irina.
 * 
 * Version 1.66: July 14, 2022
 * * Bug Fixes!
 * ** Fixed a bug that caused the various Battleback Scaling JS custom plugin
 *    parameters to not work properly. Fix made by Irina.
 * 
 * Version 1.65: July 7, 2022
 * * Documentation Update!
 * ** Help file updated for new features.
 * * Feature Updates!
 * ** Automatic action motions for HP and MP Recovery (Certain Hit type) will
 *    now use the "skill" cast SV animation instead of attack animation to
 *    better match the default RPG Maker MZ cast animation. Update by Olivia.
 * * New Features!
 * ** New troop name tag added by Olivia:
 * *** <Extend: x> and <Extend: x, x, x>
 * **** Adds enemies from another troop to the current troop.
 * **** Enemies from another troop will retain their database positions.
 * **** Extended troop members will be added in the order they're listed.
 * **** Be cautious of how many enemies you add as too many will lag the battle
 *      system. We are not responsible for frame drops due to this.
 * 
 * Version 1.64: June 16, 2022
 * * Bug Fixes!
 * ** "All Skills" battle command should now work with the updated version of
 *    VisuMZ Skills & States Core. Fix madde by Olivia.
 * * Compatibility Update
 * ** Plugins should be more compatible with one another.
 * 
 * Version 1.63: May 26, 2022
 * * Documentation Update!
 * ** Help file updated for new features.
 * * Feature Update!
 * ** HP Gauge sprite now properly synchs with battler location.
 * * New Features!
 * ** New Action Sequence Effects added by Irina and sponsored by MirageV:
 * *** INJECT action sequence series
 * **** See the Action Sequence Impact changelog for details.
 * 
 * Version 1.62: April 22, 2022
 * * Bug Fixes!
 * ** RPG Maker MZ Bug Fix!
 * *** Battle Forced End Action Crash
 * **** Depending on various circumstances, currently active battlers can be
 *      cleared from the battle system at will due to a number of reasons.
 *      However, if it just so happens that the targets are cleared, too, with
 *      actions remaining, then a crash will follow up. This plugin will
 *      prevent that change. Fix made by Olivia.
 * 
 * Version 1.61: April 14, 2022
 * * Documentation Update!
 * ** Help file updated for new features.
 * * New Features!
 * ** New Impact Effects added by Irina and collaborating with Manu Gaming!
 * *** Impact: Bizarro Inversion
 * *** Impact: Desaturation
 * *** Impact: Negative Inversion
 * *** Impact: Oversaturation
 * *** Impact: Time Scale
 * *** Impact: Time Stop
 * 
 * Version 1.60: April 7, 2022
 * * Bug Fixes!
 * ** <Bypass Soft Damage Cap> notetag should no longer cause crashes. Fix made
 *    by Olivia.
 * * Feature Update!
 * ** Removed one of the forced log window clear events that have made log
 *    window messages impossible to utilize for certain settings. Update made
 *    by Olivia.
 * 
 * Version 1.59: March 31, 2022
 * * Bug Fixes!
 * ** Escape failure will no longer trigger Post-Battle Common Events. Fix
 *    made by Arisu.
 * 
 * Version 1.58: March 24, 2022
 * * Documentation Update:
 * ** Added extra clarity to <Sideview Size: width, height> notetag:
 * *** This does NOT change the image size. This only changes the HITBOX size.
 * * Feature Update!
 * ** Added failsafes to prevent battlers from moving to non-finite coordinates
 *    if calculations are made for non-existent targets. Updated by Olivia.
 * ** Regeneration timing for TPB-based battle systems will now occur based on
 *    individual turn counts instead of global turn counts for initial turn 0
 *    checks. Updated by Olivia.
 * 
 * Version 1.57: February 17, 2022
 * * Feature Update!
 * ** Adjusted the offset properties for the anti-tint UI container to properly
 *    match the UI offsets if the anti-tint were to be off. Update by Irina.
 * 
 * Version 1.56: February 10, 2022
 * * Documentation Update!
 * ** Help file updated for new features.
 * * Feature Update!
 * ** Once Parallels for battle now operate outside of the battle process.
 *    Update made by Olivia.
 * * New Features!
 * ** New Troop Page comment tag added by Olivia and sponsored by Puddor:
 * *** <Once Parallel When Start Battle>
 * **** Causes the troop page to immediately run the moment the battle scene
 *      begins to fade in (not after it fades in). This is faster than a turn 0
 *      condition troop page. Troop page conditions are ignored.
 * **** This can be used for things like the Action Sequence Camera plugin, the
 *      Visual Battle Environment plugin, and/or initial battle poses and such
 *      in order to provide a near seamless battle transition experience.
 * **** This does NOT trigger when coming out of the options menu or party
 *      menu screens.
 * **** This WILL trigger when going from battle to battle nonstop via plugins
 *      like VisuStella MZ's Chain Battles.
 * **** When actors are moving towards their home positions, it will take
 *      around 30 frames by default. Use this information however you like.
 * * Optimization Update!
 * ** Plugin should run more optimized.
 * 
 * Version 1.55: January 27 2022
 * * Compatibility Update!
 * ** RPG Maker MV animations with front view should now play in the correct
 *    area against actor faces. Update made by Olivia.
 * * Documentation Update!
 * ** Help file updated for new features.
 * * Feature Update!
 * ** Animations now play on top of all actor faces/portraits regardless of the
 *    battle layout style. Update made by Olivia.
 * * New Features!
 * ** New notetag added by Arisu.
 * *** <Bypass Auto Action Sequence>
 * **** This notetag is used for the game devs that have the Action Sequence
 *      Plugin Parameter "Auto Notetag" on for applying the notetag
 *      <Custom Action Sequence> to every skill and item with common events.
 * **** This will allow items and skills to be able to launch their common
 *      events from the menu scene regardless of the inherent restriction to
 *      prevent action sequence based skills/items with common events from
 *      launching.
 * **** Ignore this if you have "Auto Notetag" disabled or set to false. By
 *      default, this setting is set to false. Please be aware of the changes
 *      you've made to your game before using it.
 * 
 * Version 1.54: January 13, 2022
 * * Bug Fixes!
 * ** RPG Maker MZ Bug Fix!
 * *** Overly-Protective Substitute
 * *** When an ally with critical health is being targeted by a friendly non-
 *     Certain Hit skill (such as a heal or buff) and another ally has the
 *     substitute state, the other ally would "protect" the originally targeted
 *     ally and take the heal or buff.
 * *** The new changed behavior is that now, substitute will not trigger for
 *     any actions whose scope targets allies.
 * *** Fix made by Olivia.
 * 
 * Version 1.53: December 30, 2021
 * * Documentation Update!
 * ** Help file updated for new features.
 * ** Help file updated for updated features.
 * * New Features!
 * ** New Plugin Parameter added by Olivia:
 * *** Plugin Parameters > Battle Layout > UI Elements > Anti-Tint UI?
 * **** Prevent UI Elements from being tinted?
 * **** This prevents UI Elements such as HP Gauges, Enemy Names, Battle
 *      Cursor, and Weakness Display from being affected by screen tint.
 * * Updated Feature!
 * ** Updated Plugin Command "PROJECTILE: Animation" by Arisu!
 * *** New Parameter: Wait For Animation?
 * **** Wait for animation to finish before going to the next command?
 * 
 * Version 1.52: December 16, 2021
 * * Compatibility Update!
 * ** RPG Maker MZ 1.4.0 compatibility update!
 * *** MV Animations played on screen level will now show up properly in the
 *     center of the screen.
 * 
 * Version 1.51: December 9, 2021
 * * Documentation Update!
 * ** Help file updated for new features.
 * * New Features!
 * ** New Action Sequence Plugin Commands added by Arisu:
 * *** MOVE: Change Home By Distance
 * *** MOVE: Change Home To Point
 * *** MOVE: Change Home To Target(s)
 * **** These Plugin Commands allow you to adjust the home position of
 *      battlers in sideview battle.
 * **** This is sideview only!
 * **** This does NOT work with front view!
 * **** For those wondering, going to the options screen, party screen, etc.
 *      won't reset the home positions like regular movement changes do.
 * **** Merry Christmas, Harold-gang!
 * 
 * Version 1.50: November 4, 2021
 * * Bug Fixes!
 * ** <Seal Attack> and <Seal Guard> should no longer be bypassed by
 *    auto-battle status. Fix made by Yanfly.
 * 
 * Version 1.49: October 28, 2021
 * * Documentation Update!
 * ** Help file updated for new features.
 * * Feature Update!
 * ** Action Sequence: MOTION: Freeze Motion Frame will now only show weapons
 *    when using a motion that is named either "attack", "thrust", "swing", or
 *    "missile". Update made by Irina.
 * ** Fail safe added to prevent Scene_Battle going into unsupported scenes
 *    like Scene_Equip and Scene_Skill. Update made by Olivia.
 * * New Feature!
 * ** New Action Sequence Plugin Command added by Arisu and sponsored by Anon:
 * *** MECH: Once Parallel
 * **** Plays a Common Event parallel to the battle event once without
 *      repeating itself when done.
 * **** When exiting battle scene, all Once Parallels are cleared.
 * **** Once Parallels are not retained upon reentering the scene.
 * **** Once Parallels are not stored in memory and cannot be saved.
 * 
 * Version 1.48: October 21, 2021
 * * Feature Update!
 * ** Animations are now played on top of battlers in the Front View XP Battle
 *    Layout appearance. Update made by Irina.
 * ** Battle Log, if decided to be shown, now updates faster. Update by Irina.
 * ** Default Critical Damage Bonus increase is now updated to account for
 *    HP Healing and MP Recovery. To update this, create a new project, with
 *    the newest version of Battle Core installed. Copy over the Plugin
 *    Parameters for the Damage Settings > Critical Hits > JS: Damage Formula
 *    to your own project's version. Update made by Irina.
 * 
 * Version 1.47: October 14, 2021
 * * Compatibility Update!
 * ** Added compatibility functionality for future plugins.
 * * Feature Update!
 * ** Back attachment sprites are now automatically updated with sprite
 *    battlers to be shifted towards the very back.
 * 
 * Version 1.46: September 23, 2021
 * * Bug Fixes!
 * ** Fixed problem with skills and items without action sequences preventing
 *    actions from occurring. Fix made by Yanfly.
 * 
 * Version 1.45: September 17, 2021
 * * Bug Fixes!
 * ** <JS Pre-End Action> and <JS Post-End Action> effects now have multiple
 *    checks to make sure that they don't launch multiple times when a battler
 *    without actions has a turn after one that does. Fix made by Olivia.
 * * Documentation Update!
 * ** Help file updated for new features.
 * * New Features!
 * ** New Action Sequence notetags added by Yanfly and Arisu:
 * *** <Common Event Key: name>
 * *** <Common Event Keys: name, name, name>
 * *** <Common Event Keys>
 *      key
 *      key
 *      key
 *     </Common Event Keys>
 * **** Will generate Common Events for the skill/item with a corresponding
 *      key.
 * **** More information will be explained inside of the help file.
 * **** This feature is made for make the process of sharing Action Sequences
 *      to become easier without needing to line up Common Event ID's.
 * 
 * Version 1.44: August 20, 2021
 * * Documentation Update!
 * ** Help file updated for new features.
 * * New Features!
 * ** New Action Sequence added by Irina and sponsored by Anon.
 * *** "ANIM: Play at Coordinate"
 * **** Plays an animation on the screen at a specific x, y coordinate even if
 *      there is no sprite attached.
 * **** Requires VisuMZ_0_CoreEngine!
 * 
 * Version 1.43: July 23, 2021
 * * Feature Update!
 * ** Immortality now works different with instant death mechanics. Skill
 *    effects that apply instant death or attack states that apply instant
 *    death will now trigger a flag instead of cancelling immortality. The
 *    flag will remain until immortality is manually cancelled via Action
 *    Sequence and then proc the death effect. This way, animations can remain
 *    to the end with instant death mechanics in mind. This does not affect
 *    script calls.
 * 
 * Version 1.42: July 16, 2021
 * * Bug Fixes!
 * ** Added another fail safe for empty common events used for pre-battle
 *    common events. Fix made by Olivia.
 * 
 * Version 1.41: July 2, 2021
 * * Documentation Update!
 * ** Help file updated for new features.
 * ** Added entries to <Battle Command> notetags and Plugin Parameters for
 *    "Party", "Combat Log", and "Weapon Swap" which weren't updated before.
 * * Optimization Update!
 * ** Plugin should run more optimized.
 * * New Features!
 * ** New Action Sequence added by Arisu:
 * *** MECH: Enemy Escape
 * **** Causes the enemy unit(s) to escape.
 * 
 * Version 1.40: June 25, 2021
 * * Bug Fixes!
 * ** Transformations from static enemies to and from animated SV enemies
 *    should no longer show both sprites. Fix made by Irina.
 * * Compatibility Update
 * ** Compatibility update with RPG Maker MZ 1.3.0+.
 * 
 * Version 1.39: June 18, 2021
 * * Bug Fixes!
 * ** MOVE: Home Reset should no longer trigger an end action function and
 *    cause plugins such as "Boost Action" to malfunction. Fix made by Olivia.
 * * Compatibility Update
 * ** Added compatibility functionality for future plugins.
 * * Documentation Update!
 * ** Help file updated for updated features.
 * * Feature Update!
 * ** <Battle Layout: x> Troop Name tags can now work with comment tags. Update
 *    made by Irina.
 * ** Random encounter lists are now better shuffled for more variety with how
 *    the RNG seed works. Update made by Arisu.
 * 
 * Version 1.38: June 11, 2021
 * * Documentation Update!
 * ** Help file updated for new features.
 * * Feature Updates!
 * ** Location calculations will now be based off the a battler's base position
 *    in order for animations, popups, and other aspects to line up properly
 *    when scaled. Update made by Irina.
 * ** Plugin Parameters for Enemy Battler Settings > Name have been rearranged
 *    for better organization. Update by Olivia.
 * * New Features!
 * ** New Notetags added by Olivia and sponsored by NSG:
 * *** <Sideview Shadow Scale X: x%>
 * *** <Sideview Shadow Scale X: x.y>
 * *** <Sideview Shadow Scale Y: x%>
 * *** <Sideview Shadow Scale Y: x.y>
 * **** These new notetags allow you to adjust the X and Y scale of the SV
 *      shadow sprite separately.
 * ** New Plugin Parameters added by Olivia and sponsored by NSG:
 * *** Enemy Battler Settings > Name > Name Visibility > Always Hidden
 * *** Enemy Battler Settings > Name > Name Visibility > By Selection?
 * **** Choose to have the names always hidden or by selection.
 * **** These are adjusted on a priority list.
 * 
 * Version 1.37: May 21, 2021
 * * Documentation Update!
 * ** Help file updated for new features.
 * * New Features!
 * ** New notetags added by Olivia.
 * *** <Command Require Learn>
 * *** <Command Require Access>
 * **** These two commands determine the visibility of a battle command by
 *      whether or not the skill has been learned or accessible.
 * * Feature Update!
 * ** For those using TPB, each battler's regeneration phase will no longer
 *    tick multiple times in a single frame to prevent irregularities. Update
 *    made by Olivia.
 * 
 * Version 1.36: May 14, 2021
 * * Bug Fixes!
 * ** Reversed an HP/MP regeneration bug that was incorrectly reported for TPB.
 *    Fix made by Olivia.
 * * Documentation Update
 * ** Added "TPB/ATB Active Battle Actor Shifting" to Major Changes section:
 * *** This change has been active since the start of this plugin. It was not
 *     documented until now.
 * *** Pressing cancel on the Actor Command Window no longer switches between
 *     actors with a full TPB/ATB gauge before reaching the Party Command
 *     Window. This is to accomplish a couple of things: 1) reduce the number
 *     of button presses to reach the Party Command Window and 2) to prevent
 *     motion resets and disrupting action sequences. If this feature is vital
 *     to your battle system, we recommend that you do not use this plugin or
 *     any of the Battle Core-required plugins.
 * ** Feature Updates
 * *** Distortion sprite Y calculations will now be rounded upward for better
 *     visuals and prevent odd pixelation effects. Update made by Irina.
 * 
 * Version 1.35: May 7, 2021
 * * Bug Fixes!
 * ** Pre-Battle Common Events without a wait command at the end should no
 *    longer lock up by coincidentally pressing the menu key at the same time.
 *    Fix made by Olivia.
 * * Feature Update!
 * ** Added an extra check for TPB-based battle systems to not run turn end
 *    functions when it's not actually the actual turn end timing. Update made
 *    by Olivia.
 * ** "Damage Styles" plugin parameters are now moved to the top of the
 *    Damage Settings category. This should make it easier to acknowledge the
 *    existence of and not have it be an unknown entity. Update made by Irina.
 * 
 * Version 1.34: April 23, 2021
 * * Documentation Update!
 * ** Help file updated for new features.
 * * Feature Update!
 * ** Uses a better algorithm for determining shadow positioning. Update made
 *    by Olivia.
 * * New Features!
 * ** New additions made for Projectile action sequences.
 * ** "Start Location" and "Goal Location" now have "Target Location" parameter
 *    to determine which part of the target's body to send the projectile from
 *    or towards. Added by Olivia.
 * ** Requires VisuMZ_1_BattleCore version 1.34 to have affect.
 * 
 * Version 1.33: April 9, 2021
 * * Bug Fixes!
 * ** Skill costs should now be displayed on battle commands again. Bug fix
 *    made by Olivia.
 * ** Pre-Battle Common Events should no longer cause stalling when used with
 *    specific event commands. Bug fix made by Olivia.
 * * Compatibility Update!
 * ** Added "Weapon Swap" to the list of battle commands that can be added.
 * * Documentation Update!
 * ** Added "Weapon Swap" and "Combat Log" to the list of <Battle Commands> in
 *    the notetags section.
 * ** Help file updated for new features.
 * * New Features!
 * ** New notetags added by Olivia:
 * *** <Sideview Shadow Scale: x%> and <Sideview Shadow Scale: x.y>
 * **** Used for: Actor, Enemy Notetags
 * **** Adjusts the scaling size of the sideview battler's shadow.
 * 
 * Version 1.32: April 2, 2021
 * * Feature Update!
 * ** Sideview battler sprites when using front view will now factor in the
 *    window padding and appear properly centered to their focus point. Update
 *    made by Olivia.
 * 
 * Version 1.31: March 26, 2021
 * * Compatibility Update!
 * ** Added compatibility functionality for future plugins.
 * * Documentation Update!
 * ** Added "VisuStella MZ Compatibility" section for detailed compatibility
 *    explanations with the VisuMZ_3_BoostAction plugin.
 * 
 * Version 1.30: March 19, 2021
 * * Documentation Update!
 * ** Help file updated for updated features.
 * * Feature Update!
 * ** <JS Targets> is now updated to include the default set of targets
 *    selected by the skill/item's original scope. Update made by Yanfly.
 * *** If you wish to clear it out, simply do 'targets = []' first.
 * 
 * Version 1.29: March 12, 2021
 * * Compatibility Update!
 * ** Added compatibility functionality for future plugins.
 * * Documentation Update!
 * ** Help file updated for new features.
 * * New Features!
 * ** New Plugin Parameter added by Olivia:
 * *** Plugin Parameters > Enemy Battler Settings > Name > Legacy Option
 * **** Use the legacy version (window) or new version (sprite).
 * **** WARNING: Legacy version is no longer supported for bugs.
 * **** Not all settings available here in the Plugin Parameters will be
 *      available to the legacy version (ie Always Visible and Attach States).
 * 
 * Version 1.28: March 5, 2021
 * * Compatibility Update!
 * ** Added compatibility functionality for future plugins.
 * * Documentation Update!
 * ** Help file updated for new features.
 * * New Features!
 * ** New Plugin Parameters added by Arisu:
 * *** Plugin Parameters > Actor Command > Show Command Costs
 * **** If you don't want to show skill costs for your commands in the Actor
 *      Command Window, you can now hide them.
 * ** New Plugin Parameters added by Irina:
 * *** Plugin Parameters > Battle Layout Settings > Status Window Elements
 * *** Battle Layout Settings > Status Window Elements > Battler Name
 * *** Battle Layout Settings > Status Window Elements > Gauge 1 (HP)
 * *** Battle Layout Settings > Status Window Elements > Gauge 2 (MP)
 * *** Battle Layout Settings > Status Window Elements > Gauge 3 (TP)
 * *** Battle Layout Settings > Status Window Elements > State Icon
 * *** Battle Layout Settings > Status Window Elements > TPB/ATB Gauge
 * **** These new Plugin Parameters allow you to offset the positions of the
 *      various Battle Status Window elements. Their base positions will be
 *      calculated by the Battle Layout used and then offset from there.
 * *** Battle Layout Settings > Status Window Elements > Window Skin
 * **** These settings allow you to set a specific window skin for the
 *      Battle Status Window or hide it from view completely.
 * *** Battle Layout Settings > Status Window Elements > Selectable Background
 * **** This option allows you to hide the black box that comes with the
 *      majority of selectable elements found in RPG Maker MZ in case it does
 *      not fit with how you want the Battle Status Window to look.
 * *** Battle Layout Settings > Status Window Elements > Back Attachment
 * *** Battle Layout Settings > Status Window Elements > Front Attachment
 * **** These settings allow you to attach images to the back/front of the
 *      Battle Status Window from the img/system/ folder.
 * **** You may offset X and Y positions for them as well.
 * ** New Plugin Parameters added by Olivia:
 * *** Plugin Parameters > Enemy Settings > Name: Always Visible
 * **** Determines if the enemy name will always be visible.
 * *** Plugin Parameters > Enemy Settings > Name: Attach States
 * **** Attach the enemy's state icon to the enemy name?
 * *** Plugin Parameters > Enemy Settings > Attach: Offset X/Y
 * **** Offset the attached state icon's position.
 * * Feature Update!
 * ** Switched drawing enemy names on the screen from window to sprite to
 *    reduce lag and for better screen positioning accuracy especially during
 *    screen zooming. Update by Olivia.
 * 
 * Version 1.27: February 26, 2021
 * * Compatibility Update!
 * ** Added compatibility functionality for future plugins.
 * * Documentation Update!
 * ** Help file updated for new features.
 * * New Features!
 * ** New Plugin Parameters added by Irina and sponsored by AndyL:
 * *** Plugin Parameters > Mechanics Settings > Switches > Switch: Critical
 * *** Plugin Parameters > Mechanics Settings > Switches > Switch: Miss/Evade
 * **** Turns Switches ON if the action performs a critical hit, misses, or is
 *      evaded at any point.
 * **** Switch reverts to OFF whenever an action starts.
 * **** If multiple targets/hits are struck, as long as one hit respectively
 *      lands a critical hit, fails to land, then the switch will remain ON for
 *      the rest of the action.
 * *** Plugin Parameters > Mechanics Settings > Variables > Variable: Damage
 * *** Plugin Parameters > Mechanics Settings > Variables > Variable: Healing
 * **** Variable records target damage/healing during action.
 * **** Variable reverts to 0 whenever an action starts.
 * **** If multiple targets/hits are struck, the variable will record the total
 *      amount of damage/healing done for the remainder of the action (unless
 *      manually reseting to 0 during an Action Sequence).
 * 
 * Version 1.26: February 19, 2021
 * * Bug Fixes!
 * ** Battles with branching event paths found within a conditional branch or
 *    choice tree will no longer be skipped over. Fix made by Arisu.
 * * Compatibility Update
 * ** Returning to the battle scene from the options scene in a Tpb-base battle
 *    system now links the current actor. Update by Irina.
 * 
 * Version 1.25: February 5, 2021
 * * Compatibility Update
 * ** Added compatibility update with VisuStella MZ Skills and States Core's
 *    Plugin Parameter > State Settings > Action End Update
 * * Feature Update!
 * ** <Common Event: name> notetag no longer requires <Custom Action Sequence>
 *    notetag if the Plugin Parameter: Auto Notetag is enabled.
 * 
 * Version 1.24: January 29, 2021
 * * Documentation Update!
 * ** Help file updated for new features.
 * * Feature Update!
 * ** MOVE: Move To Point and MOVE: Move To Target(s) Action Sequences'
 *    "Offset Adjustment" normal setting will now factor in Offset X and
 *    Offset Y positions unlike before where it cancels them. Update by Irina.
 * * New Features!
 * ** New notetag added by Arisu:
 * *** <Common Event: name>
 * **** Battle only: calls forth a Common Event of a matching name.
 * **** This is primarily used for users who are reorganizing around their
 *      Common Events and would still like to have their skills/items perform
 *      the correct Action Sequences in case the ID's are different.
 * 
 * Version 1.23: January 22, 2021
 * * Documentation Update!
 * ** Help file updated for new features.
 * * Feature Update!
 * ** ACSET: All Targets Action Set and ACSET: Each Target Action Set updated
 * *** New parameter added: Dual/Multi Wield?
 * **** Add times struck based on weapon quantity equipped?
 * * New Features!
 * ** Dual Wielding now functions differently. Made by Olivia.
 * *** Previously, RPG Maker MZ had "Dual Wielding" attack using both weapon
 *     animations at once, with the combined ATK of each weapon. It's confusing
 *     to look at and does not portray the nature of "Dual Wielding".
 * *** Dual Wielding, or in the case of users adding in third and fourth
 *     weapons, Multi Wielding is now changed. Each weapon is displayed
 *     individually, each producing its own attack animation, showing each
 *     weapon type, and applying only that weapon's ATK, Traits, and related
 *     effects. It is no longer a combined effect to display everything at once
 *     like RPG Maker MZ default.
 * *** If an actor has multiple weapon slots but some of them are unequipped,
 *     then the action will treat the attack as a single attack. There will be
 *     no barehanded attack to add on top of it. This is to match RPG Maker
 *     MZ's decision to omit a second animation if the same scenario is
 *     applied.
 * ** New Action Sequence Plugin Commands added by Yanfly
 * *** ANIM: Attack Animation 2+
 * **** Plays the animation associated with the user's 2nd weapon.
 *      Plays nothing if there is no 2nd weapon equipped.
 * ** New Action Sequence Plugin Commands added by Olivia
 * *** WEAPON: Clear Weapon Slot
 * *** WEAPON: Next Weapon Slot
 * *** WEAPON: Set Weapon Slot
 * **** These are Action Sequence Plugin Commands for devs who want finer
 *      control over Dual/Multi Wielding weapons.
 * 
 * Version 1.22: January 15, 2021
 * * Compatibility Update
 * ** Compatibility with "All Skills" Actor Command should now work with the
 *    Skills & States Core hide skill notetags.
 * 
 * Version 1.21: January 8, 2021
 * * Bug Fixes!
 * ** "MOVE: Home Reset" Plugin Command Action Sequence should work properly.
 *    Fix made by Yanfly.
 * * Documentation Update!
 * ** Added documentation for new feature(s)!
 * * New Features!
 * ** New Notetag snuck in by Arisu
 * *** <Auto Action Sequence>
 * **** Used for those who have the "Auto Notetag" Plugin Parameter enabled and
 *      just want to use an automatic Action Sequence instead.
 * ** New Plugin Parameter snuck in by Arisu!
 * *** Plugin Parameters > Action Sequences > Quality of Life > Auto Notetag
 * **** Automatically apply the <Custom Action Sequence> notetag effect to any
 *      item or skill that has a Common Event?
 * **** Any item or skill without a Common Event attached to it will use the
 *      Automatic Action Sequences instead.
 * **** The <Auto Action Sequence> notetag will disable this effect for that
 *      particular skill or item.
 * ** Arisu, you're going to be responsible for any bugs these may cause.
 * *** Bring it!!!!
 * **** And handling any bug report emails that are sent because this was
 *      turned on by accident.
 * ***** Please read the documentation, guys!
 * 
 * Version 1.20: January 1, 2021
 * * Bug Fixes!
 * ** For TPB Active or ATB Active, inputting actors that have received damage
 *    will return back to place after flinching. Fix made by Yanfly.
 * * Documentation Update!
 * ** Added documentation for new feature(s)!
 * * New Features!
 * ** New notetags added by Yanfly:
 * *** <Battle Portrait Offset: +x, +y>
 * *** <Battle Portrait Offset X: +x>
 * *** <Battle Portrait Offset Y: +y>
 * **** This is used with the "Portrait" and "Border" Battle Layouts.
 * **** Offsets the X and Y coordinates for the battle portrait.
 * 
 * Version 1.19: December 25, 2020
 * * Bug Fixes!
 * ** Removing a state from a Sideview Enemy during the middle of their a non-
 *    looping motion will no longer reset their motion to neutral.
 *    Fix made by Yanfly.
 * * Compatibility Update!
 * ** Plugins should be more compatible with one another.
 * * Documentation Update!
 * ** Added documentation for updated feature(s)!
 * * Feature Update!
 * ** Action Sequence "PROJECTILE: Icon" now supports code for the "Icon"
 *    parameter. Update made by Yanfly.
 * 
 * Version 1.18: December 18, 2020
 * * Bug Fixes!
 * ** For TPB Active or ATB Active, inputting actors will no longer step back
 *    after an enemy's action is finished. Fix made by Yanfly and Shiro.
 * * Documentation Update!
 * ** Added documentation for new feature(s)!
 * * New Features!
 * ** Action Sequence "BTLOG: Add Text" is updated for the convenience of a new
 *    option to quickly copy the displayed text to the VisuStella MZ Combat Log
 *    if that plugin is installed. Added by Yanfly.
 * 
 * Version 1.17: December 11, 2020
 * * Bug Fixes!
 * ** Common Events in TPB Active that cause forced actions will no longer
 *    cause currently inputting actors that match the forced action battler to
 *    crash the game. Fix made by Yanfly and Shiro.
 * * Compatibility Update!
 * ** Added compatibility functionality for future plugins.
 * ** Plugins should be more compatible with one another.
 * * Documentation Update!
 * ** Added documentation for new feature(s)!
 * * Feature Update!
 * ** Action Sequence Impact Action Sequences "Shockwave from Each Target(s)",
 *    "Shockwave from Target(s) Center", and "Zoom Blur at Target(s) Center"
 *    now have "Offset X" and "Offset Y" plugin parameters. Added by Yanfly.
 * ** Action Sequence "MOVE: Move To Target(s)" is now changed so that if the
 *    "Melee Distance" value is set to 0, battlers will no longer stand a half
 *    body distance away. Added by Yanfly.
 * 
 * Version 1.16: December 4, 2020
 * * Bug Fixes!
 * ** Bug fixes made for the RPG Maker MZ base code. If a battler has no
 *    actions, then their action speed will not be Infinity. Fix by Olivia.
 * * Compatibility Update!
 * ** Plugins should be more compatible with one another.
 * * Optimization Update!
 * ** Plugin should run more optimized.
 * 
 * Version 1.15: November 29, 2020
 * * Bug Fixes!
 * ** Completely replacing the whole party at once will no longer cause the
 *    battle system to crash. Fix made by Olivia.
 * ** Pre-Battle Common Events will no longer cancel out any win/lose branches.
 *    Fix made by Arisu.
 * * Feature Update!
 * ** Custom Action Sequences will no longer close the Actor Command Input
 *    window unless absolutely necessary (like for Show Message events) during
 *    Active TPB/ATB. Change made by Arisu.
 * 
 * Version 1.14: November 22, 2020
 * * Feature Update!
 * ** Natural Miss and Evasion motions now have flinch distance.
 *    Added by Yanfly.
 * 
 * Version 1.13: November 15, 2020
 * * Optimization Update!
 * ** Plugin should run more optimized.
 * 
 * Version 1.12: November 8, 2020
 * * Bug Fixes!
 * ** Failsafes added to prevent common events from running if they're empty.
 *    Fix made by Irina.
 * ** Skip Party Command will now work properly with TPB-based battle systems.
 *    Fix made by Yanfly.
 * * Compatibility Update!
 * ** Plugins should be more compatible with one another.
 * * Documentation Update!
 * ** In preparation for upcoming VisuStella MZ plugins.
 * 
 * Version 1.11: November 1, 2020
 * * Compatibility Update!
 * ** Plugins should be more compatible with one another.
 * * Documentation Update!
 * ** Added clarity for the Plugin Parameters for the Common Events settings
 *    found in the mechanics section. The common events are only meant to run
 *    in the map scene and not for the battle scene. Update made by Irina.
 * * Feature Update!
 * ** The Plugin Parameter for Mechanics, Common Events (on Map), Defeat Event
 *    now has updated functionality. If this has a common event attached to it,
 *    then losing to random encounters will no longer send the player to the
 *    Game Over scene, but instead, send the player back to the map scene,
 *    where the Defeat Common Event will run. Update made by Irina.
 * 
 * Version 1.10: October 25, 2020
 * * Documentation Update!
 * ** Added documentation for new feature(s)!
 * * New Features!
 * ** New Action Sequence Plugin Command added by Olivia:
 * *** MECH: Custom Damage Formula
 * **** Changes the current action's damage formula to custom.
 *      This will assume the MANUAL damage style.
 * ** New Notetag added by Irina:
 * ** New Plugin Parameters added by Irina:
 * *** Plugin Parameters > Battleback Scaling Settings
 * **** These settings allow you to adjust how battlebacks scale to the screen
 *      in the game.
 * *** <Battler Sprite Grounded>
 * **** Prevents the enemy from being able to jumping and/or floating due to
 *      Action Sequences but still able to move. Useful for rooted enemies.
 * 
 * Version 1.09: October 18, 2020
 * * Bug Fixes!
 * ** Exiting out of the Options menu scene or Party menu scene will no longer
 *    cause party members to reset their starting position. Fix made by Arisu
 * * Documentation Update!
 * ** Added documentation for new feature(s)!
 * ** There was a documentation error with <JS Pre-Regenerate> and
 *    <JS Post-Regenerate>. Fix made by Yanfly.
 * *** Before, these were written as <JS Pre-Regenerate Turn> and
 *     <JS Post-Regenerate Turn>. The "Turn" part of the notetag has been
 *     removed in the documentation.
 * * Feature Update!
 * ** Damage sprites on actors are now centered relative to the actor's anchor.
 *    Change made by Yanfly.
 * * New Features!
 * ** New Action Sequence Plugin Command added by Yanfly:
 * *** MECH: Variable Popup
 * **** Causes the unit(s) to display a popup using the data stored inside
 *      a variable.
 * 
 * Version 1.08: October 11, 2020
 * * Bug Fixes!
 * ** Dead party members at the start of battle no longer start offscreen.
 *    Fix made by Arisu.
 * ** Removed party members from battle no longer count as moving battlers.
 *    Fix made by Yanfly.
 * ** Using specific motions should now have the weapons showing and not
 *    showing properly. Fix made by Yanfly.
 * 
 * Version 1.07: October 4, 2020
 * * Bug Fixes!
 * ** Adding and removing actors will now refresh the battle status display.
 *    Fix made by Irina.
 * ** Adding new states that would change the affected battler's state motion
 *    will automatically refresh the battler's motion. Fix made by Irina.
 * ** Boss Collapse animation fixed and will sink into the ground.
 *    Fix made by Irina.
 * ** Failsafes added for certain animation types. Fix made by Yanfly.
 * ** Freeze Motion for thrust, swing, and missile animations will now show the
 *    weapons properly. Fix made by Yanfly.
 * ** The Guard command will no longer display the costs of the Attack command.
 *    Fix made by Irina.
 * * Documentation Update!
 * ** Updated help file for newly added plugin parameters.
 * * Feature Updates!
 * ** When using the Change Battleback event command in battle, the game client
 *    will wait until both battlebacks are loaded before changing the both of
 *    them so that the appearance is synched together. Change made by Yanfly.
 * * New Features!
 * ** New plugin parameters added by Irina!
 * *** Plugin Parameters > Actor Battler Settings > Chant Style
 * **** What determines the chant motion? Hit type or skill type?
 * 
 * Version 1.06: September 27, 2020
 * * Bug Fixes!
 * ** Enemy Battler Plugin Parameter "Shadow Visible" should now work again.
 *    Fix made by Irina.
 * * Compatibility Update!
 * ** Added compatibility functionality for future plugins. Added by Yanfly.
 * * Documentation Update!
 * ** Updated the help file for all the new plugin parameters.
 * * Feature Update!
 * ** Action Sequence "MECH: HP, MP, TP" will now automatically collapse an
 *    enemy if it has been killed by the effect.
 * ** All battle systems for front view will now have damage popups appear
 *    in front of the status window instead of just the Portrait battle layout.
 *    Update made by Yanfly.
 * * New Features!
 * ** New Action Sequence Plugin Commands from Irina!
 * *** MOTION: Clear Freeze Frame
 * *** MOTION: Freeze Motion Frame
 * **** You can freeze a battler's sprite's motion with a specific frame.
 * ** New notetags for Maps and name tags for Troops added by Yanfly!
 * *** <Battle Layout: type> to change the battle layout style used for
 *     specific maps and/or troops.
 * ** New plugin parameters added by Yanfly!
 * *** Plugin Parameters > Battle Layout Settings > Command Window Width
 * **** This plugin parameter lets you adjust the window width for Party and
 *      Actor Command windows in the Default and List Battle Layout styles.
 * *** Plugin Parameters > Enemy Battler Settings > Name: Offset X
 * *** Plugin Parameters > Enemy Battler Settings > Name: Offset Y
 * **** These plugin parameters allow you to offset the position of the enemy
 *      name positions on the screen by a specific amount.
 * 
 * Version 1.05: September 20, 2020
 * * Bug Fixes!
 * ** Actors now use their casting or charging animations again during TPB/ATB.
 *    Fix made by Yanfly.
 * ** Defeat requirement for enemies will no longer crash the game if turned on
 *    after creating
 * ** Escaping animation no longer has actors stay in place. Fixed by Yanfly.
 * ** Failsafes added for newly added weapon types that have not been adjusted
 *    in the Database > System 2 tab. Fixed by Irina.
 * ** Shadows now appear under the actor sprites. Fix made by Yanfly.
 * ** Victory during TPB will no longer cancel the victory animations of
 *    actors that will have their turn after. Fixed by Yanfly.
 * * Documentation Update!
 * ** All Anchor Plugin Parameter descriptions now state to use values between
 *    0 and 1 to be safe. Update made by Yanfly.
 * * Feature Update!
 * ** During Active TPB / ATB, canceling out of the actor command window will
 *    go directly into the party window without having to sort through all of
 *    the available active actors.
 * ** Going from the Party Command Window's Fight command will immediately
 *    return back to the actor command window that was canceled from.
 * * New Features!
 * ** Action Sequence Plugin Command "MOVE: Spin/Rotate" has been updated.
 * *** A new parameter has been added: "Revert Angle on Finish"
 * *** Added by Yanfly.
 * ** New plugin parameters have been added to Damage Settings.
 * *** Appear Position: Selects where you want popups to appear relative to the
 *     battler. Head, Center, Base. Added by Yanfly.
 * *** Offset X: Sets how much to offset the sprites by vertically.
 *     Added by Yanfly.
 * *** Offset Y: Sets how much to offset the sprites by horizontally.
 *     Added by Yanfly.
 * ** New plugin parameters have been added to Actor Battler Settings.
 * *** Priority: Active - Place the active actor on top of actor and
 *     enemy sprites. Added by Yanfly.
 * *** Priority: Actors - Prioritize actors over enemies when placing 
 *     sprites on top of each other. Added by Yanfly.
 * 
 * Version 1.04: September 13, 2020
 * * Bug Fixes!
 * ** Active Battler Sprites now remain on top and won't be hidden behind
 *    other sprites for better visual clarity. Fix made by Arisu.
 * ** Collapsing battlers will now show the dead motion properly. Fix made by
 *    Olivia.
 * ** Dead battlers can no longer be given immortality. Fix made by Olivia.
 * ** Going into the Options menu with no battleback set will no longer set a
 *    battle snapshot.
 * ** HP Gauges for Sideview Enemies are no longer flipped! Fix made by Yanfly.
 * ** Moving a dead battler would no longer reset their animation. Fix made by
 *    Olivia.
 * ** Pre-Battle Common Events now work with events instead of just random
 *    encounters. Fix made by Yanfly.
 * ** Sideview Enemy shadows no longer twitch. Fix made by Irina.
 * * Documentation Updates!
 * ** Added further explanations for Anchor X and Anchor Y plugin parameters.
 *    This is because there's a lot of confusion for users who aren't familiar
 *    with how sprites work. Added by Irina.
 * ** <Magic Reduction: x> notetag updated to say magical damage instead of
 *    physical damage. Fix made by Yanfly.
 * * New Features!
 * ** Additional Action Sequence Plugin Commands have been added in preparation
 *    of upcoming plugins! Additions made by Irina.
 * *** Action Sequences - Angle (for VisuMZ_3_ActSeqCamera)
 * *** Action Sequences - Camera (for VisuMZ_3_ActSeqCamera)
 * *** Action Sequences - Skew (for VisuMZ_3_ActSeqCamera)
 * *** Action Sequences - Zoom (for VisuMZ_3_ActSeqCamera)
 * ** Additional Action Sequence Plugin Commands have been made available now
 *    and added to Battle Core! Additions made by Irina.
 * *** MOVE: Scale/Grow/Shrink
 * *** MOVE: Skew/Distort
 * *** MOVE: Spin/Rotate
 * *** MOVE: Wait For Scale
 * *** MOVE: Wait For Skew
 * *** MOVE: Wait For Spin
 * ** Plugin Parameters Additions. Additions made by Irina.
 * *** Plugin Params > Actor Battler Settings > Offset X
 * *** Plugin Params > Actor Battler Settings > Offset Y
 * *** Plugin Params > Actor Battler Settings > Smooth Image
 * *** Plugin Params > Enemy Battler Settings > Offset X
 * *** Plugin Params > Enemy Battler Settings > Offset Y
 * *** Plugin Params > Enemy Battler Settings > Smooth Image
 * 
 * Version 1.03: September 6, 2020
 * * Bug Fixes!
 * ** Animated Battlers will refresh their motions from the death motion once
 *    they're revived instead of waiting for their next input phase. Fix made
 *    by Yanfly.
 * ** Battle Log speed sometimes went by too fast for certain enabled messages.
 *    Wait timers are now added to them, like state results, buff results, and
 *    debuff results. Fix made by Yanfly.
 * ** Boss Collapse animation now works properly. Fix made by Yanfly.
 * ** Freeze fix for TPB (Wait) if multiple actors get a turn at the same time.
 *    Fix made by Olivia.
 * ** Pressing cancel on a target window after selecting a single skill no
 *    longer causes the status window to twitch.
 * ** Sideview Enemies had a split frame of being visible if they were to start
 *    off hidden in battle. Fix made by Shaz.
 * * Compatibility Update:
 * ** Battle Core's Sprite_Damage.setup() function is now separated fro the
 *    default to allow for better compatibility. Made by Yanfly.
 * * Documentation Update:
 * ** Inserted more information for "Damage Popups" under "Major Changes"
 * * New Features!
 * ** <Magic Penetration: x>, <Magic Penetration: x%> notetags added.
 * ** <Magic Reduction: x>, <Magic Reduction: x%> notetags added.
 * ** <Battle UI Offset: +x, +y>, <Battle UI Offset X: +x>, and
 *    <Battle UI Offset Y: +y> notetags added for adjusting the positions of
 *    HP Gauges and State Icons.
 * *** Notetags added by Yanfly.
 * 
 * Version 1.02: August 30, 2020
 * * Bug Fixes!
 * ** Failsafes added for parsing battle targets. Fix made by Yanfly.
 * ** Immortality is no longer ignored by skills/items with the Normal Attack
 *    state effect. Fix made by Yanfly.
 * ** Miss and Evasion sound effects work again! Fix made by Yanfly.
 * ** Selecting "Escape" from the Actor Command Window will now have the
 *    Inputting Battler show its escape motion. Fix made by Yanfly.
 * ** Wait for Movement now applies to SV Enemies. Fix made by Yanfly.
 * * New Features!
 * ** Plugin Command "ACSET: Finish Action" now has an option to turn off the
 *    Immortality of targets. Feature added by Yanfly.
 * * Optimization Update
 * ** Uses less resources when making checks for Pre-Battle Battle Start events
 * 
 * Version 1.01: August 23, 2020
 * * Bug Fixes!
 * ** Plugin Parameters > Damage Settings > Damage Formats are now fixed.
 *    Fix made by Olivia.
 * ** TPB Battle System with Disable Party Command fixed. Fix made by Olivia.
 * ** States now show in list format if faces are disabled. Fix made by Yanfly.
 * ** The default damage styles were missing the 'v' variable to allow for
 *    variable data input. These are back now. Fix made by Yanfly.
 * *** Users updating from version 1.00 will need to fix this problem by either
 *     removing the plugin from the Plugin Manager list and reinstalling it, or
 *     going to Plugin Parameters > Damage Settings > Style List > the style
 *     you want, and adding "const v = $gameVariables._data;" to JS: Formula
 * * New Notetags Added:
 * ** <Command Show Switch: x> added by Olivia
 * ** <Command Show All Switches: x,x,x> added by Olivia
 * ** <Command Show Any Switches: x,x,x> added by Olivia
 * ** <Command Hide Switch: x> added by Olivia
 * ** <Command Hide All Switches: x,x,x> added by Olivia
 * ** <Command Hide Any Switches: x,x,x> added by Olivia
 * ** <JS Command Visible> added by Olivia
 *
 * Version 1.00: August 20, 2020
 * * Finished Plugin!
 *
 * ============================================================================
 * End of Helpfile
 * ============================================================================
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActionSequenceSpaceStart
 * @text -
 * @desc The following are Action Sequences commands/sets.
 * These Plugin Commands only work in battle.
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActionSequenceBreakSet
 * @text Action Sequence - Action Sets
 * @desc Action Sequence Action Sets are groups of commonly used
 * Action Sequence Commands put together for more efficient usage.
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Set_SetupAction
 * @text ACSET: Setup Action Set
 * @desc The generic start to most actions.
 * 
 * @arg DisplayAction:eval
 * @text Display Action
 * @type boolean
 * @on Use
 * @off Don't Use
 * @desc Use this part of the action sequence?
 * @default true
 * 
 * @arg ApplyImmortal:eval
 * @text Immortal: On
 * @type boolean
 * @on Use
 * @off Don't Use
 * @desc Use this part of the action sequence?
 * @default true
 * 
 * @arg ActionStart:eval
 * @text Battle Step
 * @type boolean
 * @on Use
 * @off Don't Use
 * @desc Use this part of the action sequence?
 * @default true
 * 
 * @arg WaitForMovement:eval
 * @text Wait For Movement
 * @type boolean
 * @on Use
 * @off Don't Use
 * @desc Use this part of the action sequence?
 * @default true
 * 
 * @arg CastAnimation:eval
 * @text Cast Animation
 * @type boolean
 * @on Use
 * @off Don't Use
 * @desc Use this part of the action sequence?
 * @default true
 * 
 * @arg WaitForAnimation:eval
 * @text Wait For Animation
 * @type boolean
 * @on Use
 * @off Don't Use
 * @desc Use this part of the action sequence?
 * @default true
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Set_WholeActionSet
 * @text ACSET: All Targets Action Set
 * @desc Affects all targets simultaneously performing the following.
 * 
 * @arg DualWield:eval
 * @text Dual/Multi Wield?
 * @type boolean
 * @on Apply
 * @off Don't
 * @desc Add times struck based on weapon quantity equipped?
 * @default false
 * 
 * @arg PerformAction:eval
 * @text Perform Action
 * @type boolean
 * @on Use
 * @off Don't Use
 * @desc Use this part of the action sequence?
 * @default true
 * 
 * @arg WaitCount:eval
 * @text Wait Count
 * @desc How many frames should the action sequence wait?
 * You may use JavaScript code.
 * @default Sprite_Battler._motionSpeed
 * 
 * @arg ActionAnimation:eval
 * @text Action Animation
 * @type boolean
 * @on Use
 * @off Don't Use
 * @desc Use this part of the action sequence?
 * @default true
 * 
 * @arg WaitForAnimation:eval
 * @text Wait For Animation
 * @type boolean
 * @on Use
 * @off Don't Use
 * @desc Use this part of the action sequence?
 * @default true
 * 
 * @arg ActionEffect:eval
 * @text Action Effect
 * @type boolean
 * @on Use
 * @off Don't Use
 * @desc Use this part of the action sequence?
 * @default true
 * 
 * @arg ApplyImmortal:eval
 * @text Immortal: Off
 * @type boolean
 * @on Use
 * @off Don't Use
 * @desc Use this part of the action sequence?
 * @default true
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Set_TargetActionSet
 * @text ACSET: Each Target Action Set
 * @desc Goes through each target one by one to perform the following.
 * 
 * @arg DualWield:eval
 * @text Dual/Multi Wield?
 * @type boolean
 * @on Apply
 * @off Don't
 * @desc Add times struck based on weapon quantity equipped?
 * @default false
 * 
 * @arg PerformAction:eval
 * @text Perform Action
 * @type boolean
 * @on Use
 * @off Don't Use
 * @desc Use this part of the action sequence?
 * @default true
 * 
 * @arg WaitCount1:eval
 * @text Wait Count
 * @desc How many frames should the action sequence wait?
 * You may use JavaScript code.
 * @default Sprite_Battler._motionSpeed
 * 
 * @arg ActionAnimation:eval
 * @text Action Animation
 * @type boolean
 * @on Use
 * @off Don't Use
 * @desc Use this part of the action sequence?
 * @default true
 * 
 * @arg WaitCount2:eval
 * @text Wait Count
 * @desc How many frames should the action sequence wait?
 * You may use JavaScript code.
 * @default Sprite_Battler._motionSpeed * 2
 * 
 * @arg ActionEffect:eval
 * @text Action Effect
 * @type boolean
 * @on Use
 * @off Don't Use
 * @desc Use this part of the action sequence?
 * @default true
 * 
 * @arg ApplyImmortal:eval
 * @text Immortal: Off
 * @type boolean
 * @on Use
 * @off Don't Use
 * @desc Use this part of the action sequence?
 * @default true
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Set_FinishAction
 * @text ACSET: Finish Action
 * @desc The generic ending to most actions.
 * 
 * @arg ApplyImmortal:eval
 * @text Immortal: Off
 * @type boolean
 * @on Use
 * @off Don't Use
 * @desc Use this part of the action sequence?
 * @default true
 * 
 * @arg WaitForNewLine:eval
 * @text Wait For New Line
 * @type boolean
 * @on Use
 * @off Don't Use
 * @desc Use this part of the action sequence?
 * @default true
 * 
 * @arg WaitForEffect:eval
 * @text Wait For Effects
 * @type boolean
 * @on Use
 * @off Don't Use
 * @desc Use this part of the action sequence?
 * @default true
 * 
 * @arg ClearBattleLog:eval
 * @text Clear Battle Log
 * @type boolean
 * @on Use
 * @off Don't Use
 * @desc Use this part of the action sequence?
 * @default true
 * 
 * @arg ActionEnd:eval
 * @text Home Reset
 * @type boolean
 * @on Use
 * @off Don't Use
 * @desc Use this part of the action sequence?
 * @default true
 * 
 * @arg WaitForMovement:eval
 * @text Wait For Movement
 * @type boolean
 * @on Use
 * @off Don't Use
 * @desc Use this part of the action sequence?
 * @default true
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActionSequenceSpaceAngle
 * @text -
 * @desc -
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActionSequenceBreakAngle
 * @text Action Sequences - Angle
 * @desc Allows you to have control over the camera angle.
 * Requires VisuMZ_3_ActSeqCamera!
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_ChangeAngle
 * @text ANGLE: Change Angle
 * @desc Changes the camera angle.
 * Requires VisuMZ_3_ActSeqCamera!
 * 
 * @arg Angle:eval
 * @text Angle
 * @desc Change the camera angle to this many degrees.
 * @default 0
 * 
 * @arg Duration:eval
 * @text Duration
 * @desc Duration in frames to change camera angle.
 * @default 60
 *
 * @arg EasingType:str
 * @text Angle Easing
 * @type combo
 * @option Linear
 * @option InSine
 * @option OutSine
 * @option InOutSine
 * @option InQuad
 * @option OutQuad
 * @option InOutQuad
 * @option InCubic
 * @option OutCubic
 * @option InOutCubic
 * @option InQuart
 * @option OutQuart
 * @option InOutQuart
 * @option InQuint
 * @option OutQuint
 * @option InOutQuint
 * @option InExpo
 * @option OutExpo
 * @option InOutExpo
 * @option InCirc
 * @option OutCirc
 * @option InOutCirc
 * @option InBack
 * @option OutBack
 * @option InOutBack
 * @option InElastic
 * @option OutElastic
 * @option InOutElastic
 * @option InBounce
 * @option OutBounce
 * @option InOutBounce
 * @desc Select which easing type you wish to apply.
 * Requires VisuMZ_0_CoreEngine.
 * @default InOutSine
 * 
 * @arg WaitForAngle:eval
 * @text Wait For Angle?
 * @type boolean
 * @on On
 * @off Off
 * @desc Wait for angle changes to complete before performing next command?
 * @default true
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Angle_Reset
 * @text ANGLE: Reset Angle
 * @desc Reset any angle settings.
 * Requires VisuMZ_3_ActSeqCamera!
 * 
 * @arg Duration:eval
 * @text Duration
 * @desc Duration in frames to reset camera angle.
 * @default 60
 *
 * @arg EasingType:str
 * @text Angle Easing
 * @type combo
 * @option Linear
 * @option InSine
 * @option OutSine
 * @option InOutSine
 * @option InQuad
 * @option OutQuad
 * @option InOutQuad
 * @option InCubic
 * @option OutCubic
 * @option InOutCubic
 * @option InQuart
 * @option OutQuart
 * @option InOutQuart
 * @option InQuint
 * @option OutQuint
 * @option InOutQuint
 * @option InExpo
 * @option OutExpo
 * @option InOutExpo
 * @option InCirc
 * @option OutCirc
 * @option InOutCirc
 * @option InBack
 * @option OutBack
 * @option InOutBack
 * @option InElastic
 * @option OutElastic
 * @option InOutElastic
 * @option InBounce
 * @option OutBounce
 * @option InOutBounce
 * @desc Select which easing type you wish to apply.
 * Requires VisuMZ_0_CoreEngine.
 * @default InOutSine
 * 
 * @arg WaitForAngle:eval
 * @text Wait For Angle?
 * @type boolean
 * @on On
 * @off Off
 * @desc Wait for angle changes to complete before performing next command?
 * @default true
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Angle_WaitForAngle
 * @text ANGLE: Wait For Angle
 * @desc Waits for angle changes to complete before performing next command.
 * Requires VisuMZ_3_ActSeqCamera!
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActionSequenceSpaceAnimation
 * @text -
 * @desc -
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActionSequenceBreakAnimation
 * @text Action Sequences - Animations
 * @desc These Action Sequences are related to the 'Animations' that
 * can be found in the Animations tab of the Database.
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Animation_ActionAnimation
 * @text ANIM: Action Animation
 * @desc Plays the animation associated with the action.
 * 
 * @arg Targets:arraystr
 * @text Targets
 * @type combo[]
 * @option user
 * @option current target
 * @option prev target
 * @option next target
 * @option all targets
 * @option focus
 * @option not focus
 * @option
 * @option special
 * @option special x
 * @option 
 * @option alive friends
 * @option alive friends not user
 * @option alive friends not target
 * @option dead friends
 * @option friend index x
 * @option 
 * @option alive opponents
 * @option alive opponents not target
 * @option dead opponents
 * @option opponent index x
 * @option 
 * @option alive actors
 * @option alive actors not user
 * @option alive actors not target
 * @option dead actors
 * @option actor index x
 * @option actor ID x
 * @option 
 * @option alive enemies
 * @option alive enemies not user
 * @option alive enemies not target
 * @option dead enemies
 * @option enemy index x
 * @option enemy ID x
 * @option 
 * @option alive battlers
 * @option alive battlers not user
 * @option alive battlers not target
 * @option dead battlers
 * @option 
 * @desc Select unit(s) to play the animation on.
 * @default ["all targets"]
 * 
 * @arg Mirror:eval
 * @text Mirror Animation
 * @type boolean
 * @on Mirror
 * @off Normal
 * @desc Mirror the animation?
 * @default false
 * 
 * @arg WaitForAnimation:eval
 * @text Wait For Animation?
 * @type boolean
 * @on On
 * @off Off
 * @desc Wait for animation to complete before performing next command?
 * @default true
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Animation_AttackAnimation
 * @text ANIM: Attack Animation
 * @desc Plays the animation associated with the user's 1st weapon.
 * 
 * @arg Targets:arraystr
 * @text Targets
 * @type combo[]
 * @option user
 * @option current target
 * @option prev target
 * @option next target
 * @option all targets
 * @option focus
 * @option not focus
 * @option
 * @option special
 * @option special x
 * @option 
 * @option alive friends
 * @option alive friends not user
 * @option alive friends not target
 * @option dead friends
 * @option friend index x
 * @option 
 * @option alive opponents
 * @option alive opponents not target
 * @option dead opponents
 * @option opponent index x
 * @option 
 * @option alive actors
 * @option alive actors not user
 * @option alive actors not target
 * @option dead actors
 * @option actor index x
 * @option actor ID x
 * @option 
 * @option alive enemies
 * @option alive enemies not user
 * @option alive enemies not target
 * @option dead enemies
 * @option enemy index x
 * @option enemy ID x
 * @option 
 * @option alive battlers
 * @option alive battlers not user
 * @option alive battlers not target
 * @option dead battlers
 * @option 
 * @desc Select unit(s) to play the animation on.
 * @default ["all targets"]
 * 
 * @arg Mirror:eval
 * @text Mirror Animation
 * @type boolean
 * @on Mirror
 * @off Normal
 * @desc Mirror the animation?
 * @default false
 * 
 * @arg WaitForAnimation:eval
 * @text Wait For Animation?
 * @type boolean
 * @on On
 * @off Off
 * @desc Wait for animation to complete before performing next command?
 * @default true
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Animation_AttackAnimation2
 * @text ANIM: Attack Animation 2+
 * @desc Plays the animation associated with the user's other weapons.
 * Plays nothing if there is no other weapon equipped.
 * 
 * @arg Targets:arraystr
 * @text Targets
 * @type combo[]
 * @option user
 * @option current target
 * @option prev target
 * @option next target
 * @option all targets
 * @option focus
 * @option not focus
 * @option
 * @option special
 * @option special x
 * @option 
 * @option alive friends
 * @option alive friends not user
 * @option alive friends not target
 * @option dead friends
 * @option friend index x
 * @option 
 * @option alive opponents
 * @option alive opponents not target
 * @option dead opponents
 * @option opponent index x
 * @option 
 * @option alive actors
 * @option alive actors not user
 * @option alive actors not target
 * @option dead actors
 * @option actor index x
 * @option actor ID x
 * @option 
 * @option alive enemies
 * @option alive enemies not user
 * @option alive enemies not target
 * @option dead enemies
 * @option enemy index x
 * @option enemy ID x
 * @option 
 * @option alive battlers
 * @option alive battlers not user
 * @option alive battlers not target
 * @option dead battlers
 * @option 
 * @desc Select unit(s) to play the animation on.
 * @default ["all targets"]
 * 
 * @arg Slot:eval
 * @text Slot
 * @desc Which weapon slot to get this data from?
 * Main-hand weapon is weapon slot 1.
 * @default 2
 * 
 * @arg Mirror:eval
 * @text Mirror Animation
 * @type boolean
 * @on Mirror
 * @off Normal
 * @desc Mirror the animation?
 * @default true
 * 
 * @arg WaitForAnimation:eval
 * @text Wait For Animation?
 * @type boolean
 * @on On
 * @off Off
 * @desc Wait for animation to complete before performing next command?
 * @default true
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Animation_BalloonAnimation
 * @text ANIM: Balloon Animation
 * @desc Plays a balloon animation on target(s).
 * 
 * @arg Targets:arraystr
 * @text Targets
 * @type combo[]
 * @option user
 * @option current target
 * @option prev target
 * @option next target
 * @option all targets
 * @option focus
 * @option not focus
 * @option
 * @option special
 * @option special x
 * @option 
 * @option alive friends
 * @option alive friends not user
 * @option alive friends not target
 * @option dead friends
 * @option friend index x
 * @option 
 * @option alive opponents
 * @option alive opponents not target
 * @option dead opponents
 * @option opponent index x
 * @option 
 * @option alive actors
 * @option alive actors not user
 * @option alive actors not target
 * @option dead actors
 * @option actor index x
 * @option actor ID x
 * @option 
 * @option alive enemies
 * @option alive enemies not user
 * @option alive enemies not target
 * @option dead enemies
 * @option enemy index x
 * @option enemy ID x
 * @option 
 * @option alive battlers
 * @option alive battlers not user
 * @option alive battlers not target
 * @option dead battlers
 * @option 
 * @desc Select unit(s) to play the animation on.
 * @default ["user"]
 *
 * @arg Balloon:str
 * @text Balloon Type
 * @type select
 * @option Exclamation
 * @option Question
 * @option Music Note
 * @option Heart
 * @option Anger
 * @option Sweat
 * @option Frustration
 * @option Silence
 * @option Light Bulb
 * @option Zzz
 * @option User-defined 1
 * @option User-defined 2
 * @option User-defined 3
 * @option User-defined 4
 * @option User-defined 5
 * @desc What kind of balloon should be played on target(s)?
 * @default Exclamation
 *
 * @arg WaitComplete:eval
 * @text Wait for Completion
 * @type boolean
 * @on Wait
 * @off Don't Wait
 * @desc Wait for balloon animation completion before continuing?
 * @default true
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Animation_BalloonIcon
 * @text ANIM: Balloon Icon (Single)
 * @desc Plays a balloon animation using an icon on target(s).
 * Requires VisuMZ_4_IconBalloons!
 * 
 * @arg Targets:arraystr
 * @text Targets
 * @type combo[]
 * @option user
 * @option current target
 * @option prev target
 * @option next target
 * @option all targets
 * @option focus
 * @option not focus
 * @option
 * @option special
 * @option special x
 * @option 
 * @option alive friends
 * @option alive friends not user
 * @option alive friends not target
 * @option dead friends
 * @option friend index x
 * @option 
 * @option alive opponents
 * @option alive opponents not target
 * @option dead opponents
 * @option opponent index x
 * @option 
 * @option alive actors
 * @option alive actors not user
 * @option alive actors not target
 * @option dead actors
 * @option actor index x
 * @option actor ID x
 * @option 
 * @option alive enemies
 * @option alive enemies not user
 * @option alive enemies not target
 * @option dead enemies
 * @option enemy index x
 * @option enemy ID x
 * @option 
 * @option alive battlers
 * @option alive battlers not user
 * @option alive battlers not target
 * @option dead battlers
 * @option 
 * @desc Select unit(s) to play the animation on.
 * @default ["user"]
 *
 * @arg IconIndex:num
 * @text Icon Index
 * @desc Insert the ID of the icon to show.
 * Tip: Right click > Insert Icon Index
 * @default 0
 *
 * @arg WaitComplete:eval
 * @text Wait for Completion
 * @type boolean
 * @on Wait
 * @off Don't Wait
 * @desc Wait for balloon animation completion before continuing?
 * @default true
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Animation_BalloonIconRange
 * @text ANIM: Balloon Icon (Range)
 * @desc Plays a balloon animation an icon range on target(s).
 * Requires VisuMZ_4_IconBalloons!
 * 
 * @arg Targets:arraystr
 * @text Targets
 * @type combo[]
 * @option user
 * @option current target
 * @option prev target
 * @option next target
 * @option all targets
 * @option focus
 * @option not focus
 * @option
 * @option special
 * @option special x
 * @option 
 * @option alive friends
 * @option alive friends not user
 * @option alive friends not target
 * @option dead friends
 * @option friend index x
 * @option 
 * @option alive opponents
 * @option alive opponents not target
 * @option dead opponents
 * @option opponent index x
 * @option 
 * @option alive actors
 * @option alive actors not user
 * @option alive actors not target
 * @option dead actors
 * @option actor index x
 * @option actor ID x
 * @option 
 * @option alive enemies
 * @option alive enemies not user
 * @option alive enemies not target
 * @option dead enemies
 * @option enemy index x
 * @option enemy ID x
 * @option 
 * @option alive battlers
 * @option alive battlers not user
 * @option alive battlers not target
 * @option dead battlers
 * @option 
 * @desc Select unit(s) to play the animation on.
 * @default ["user"]
 *
 * @arg startIcon:num
 * @text Starting Icon Index
 * @desc Insert the ID of the icon to show.
 * Tip: Right click > Insert Icon Index
 * @default 0
 *
 * @arg endIcon:num
 * @text Ending Icon Index
 * @desc Insert the ID of the icon to show.
 * Tip: Right click > Insert Icon Index
 * @default 0
 *
 * @arg WaitComplete:eval
 * @text Wait for Completion
 * @type boolean
 * @on Wait
 * @off Don't Wait
 * @desc Wait for balloon animation completion before continuing?
 * @default true
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Animation_BalloonIconSpecific
 * @text ANIM: Balloon Icon (Specific)
 * @desc Plays a balloon animation with specific icons on target(s).
 * Requires VisuMZ_4_IconBalloons!
 * 
 * @arg Targets:arraystr
 * @text Targets
 * @type combo[]
 * @option user
 * @option current target
 * @option prev target
 * @option next target
 * @option all targets
 * @option focus
 * @option not focus
 * @option
 * @option special
 * @option special x
 * @option 
 * @option alive friends
 * @option alive friends not user
 * @option alive friends not target
 * @option dead friends
 * @option friend index x
 * @option 
 * @option alive opponents
 * @option alive opponents not target
 * @option dead opponents
 * @option opponent index x
 * @option 
 * @option alive actors
 * @option alive actors not user
 * @option alive actors not target
 * @option dead actors
 * @option actor index x
 * @option actor ID x
 * @option 
 * @option alive enemies
 * @option alive enemies not user
 * @option alive enemies not target
 * @option dead enemies
 * @option enemy index x
 * @option enemy ID x
 * @option 
 * @option alive battlers
 * @option alive battlers not user
 * @option alive battlers not target
 * @option dead battlers
 * @option 
 * @desc Select unit(s) to play the animation on.
 * @default ["user"]
 *
 * @arg icons:arraynum
 * @text Icons
 * @type string[]
 * @desc Insert the ID(s) of the icon to show.
 * Tip: Right click > Insert Icon Index
 * @default []
 *
 * @arg WaitComplete:eval
 * @text Wait for Completion
 * @type boolean
 * @on Wait
 * @off Don't Wait
 * @desc Wait for balloon animation completion before continuing?
 * @default true
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Animation_CastAnimation
 * @text ANIM: Cast Animation
 * @desc Plays the cast animation associated with the action.
 * 
 * @arg Targets:arraystr
 * @text Targets
 * @type combo[]
 * @option user
 * @option current target
 * @option prev target
 * @option next target
 * @option all targets
 * @option focus
 * @option not focus
 * @option
 * @option special
 * @option special x
 * @option 
 * @option alive friends
 * @option alive friends not user
 * @option alive friends not target
 * @option dead friends
 * @option friend index x
 * @option 
 * @option alive opponents
 * @option alive opponents not target
 * @option dead opponents
 * @option opponent index x
 * @option 
 * @option alive actors
 * @option alive actors not user
 * @option alive actors not target
 * @option dead actors
 * @option actor index x
 * @option actor ID x
 * @option 
 * @option alive enemies
 * @option alive enemies not user
 * @option alive enemies not target
 * @option dead enemies
 * @option enemy index x
 * @option enemy ID x
 * @option 
 * @option alive battlers
 * @option alive battlers not user
 * @option alive battlers not target
 * @option dead battlers
 * @option 
 * @desc Select unit(s) to play the animation on.
 * @default ["user"]
 * 
 * @arg Mirror:eval
 * @text Mirror Animation
 * @type boolean
 * @on Mirror
 * @off Normal
 * @desc Mirror the animation?
 * @default false
 * 
 * @arg WaitForAnimation:eval
 * @text Wait For Animation?
 * @type boolean
 * @on On
 * @off Off
 * @desc Wait for animation to complete before performing next command?
 * @default true
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Animation_ChangeBattlePortrait
 * @text ANIM: Change Battle Portrait
 * @desc Changes the battle portrait of the actor (if it's an actor).
 * Can be used outside of battle/action sequences.
 * 
 * @arg Targets:arraystr
 * @text Targets
 * @type combo[]
 * @option user
 * @option current target
 * @option prev target
 * @option next target
 * @option all targets
 * @option focus
 * @option not focus
 * @option
 * @option special
 * @option special x
 * @option 
 * @option alive friends
 * @option alive friends not user
 * @option alive friends not target
 * @option dead friends
 * @option friend index x
 * @option 
 * @option alive opponents
 * @option alive opponents not target
 * @option dead opponents
 * @option opponent index x
 * @option 
 * @option alive actors
 * @option alive actors not user
 * @option alive actors not target
 * @option dead actors
 * @option actor index x
 * @option actor ID x
 * @option 
 * @option alive enemies
 * @option alive enemies not user
 * @option alive enemies not target
 * @option dead enemies
 * @option enemy index x
 * @option enemy ID x
 * @option 
 * @option alive battlers
 * @option alive battlers not user
 * @option alive battlers not target
 * @option dead battlers
 * @option 
 * @desc Select unit(s) to change the portraits for.
 * Valid units can only be actors.
 * @default ["user"]
 * 
 * @arg Filename:str
 * @text Filename
 * @type file
 * @dir img/pictures/
 * @desc Select the file to change the actor's portrait to.
 * @default Untitled
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Animation_ChangeBattlePortrait_JS
 * @text ANIM: Change Battle Portrait (JS)
 * @desc Changes the battle portrait of the actor through JavaScript.
 * Can be used outside of battle/action sequences.
 *
 * @arg ActorJS:func
 * @text JS: Actor ID
 * @type note
 * @desc Enter which Actor ID to affect.
 * Uses JavaScript code.
 * @default "// Get Actor ID here.\nlet actorID = 0;\nactorID = $gameParty.members()[0].actorId();\n\n// Return Actor ID\nreturn actorID;"
 *
 * @arg FilenameJS:func
 * @text JS: Filename
 * @type note
 * @desc Enter the filename you wish to use.
 * Uses JavaScript code.
 * @default "// Get Filename here.\nlet filename = 'Actor1_';\nfilename += String(Math.randomInt(8) + 1);\n\n// Return Filename\nreturn filename;"
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Animation_GuardAnimation
 * @text ANIM: Guard Animation
 * @desc Plays the animation associated with the user's guard action (if any).
 * 
 * @arg Targets:arraystr
 * @text Targets
 * @type combo[]
 * @option user
 * @option current target
 * @option prev target
 * @option next target
 * @option all targets
 * @option focus
 * @option not focus
 * @option
 * @option special
 * @option special x
 * @option 
 * @option alive friends
 * @option alive friends not user
 * @option alive friends not target
 * @option dead friends
 * @option friend index x
 * @option 
 * @option alive opponents
 * @option alive opponents not target
 * @option dead opponents
 * @option opponent index x
 * @option 
 * @option alive actors
 * @option alive actors not user
 * @option alive actors not target
 * @option dead actors
 * @option actor index x
 * @option actor ID x
 * @option 
 * @option alive enemies
 * @option alive enemies not user
 * @option alive enemies not target
 * @option dead enemies
 * @option enemy index x
 * @option enemy ID x
 * @option 
 * @option alive battlers
 * @option alive battlers not user
 * @option alive battlers not target
 * @option dead battlers
 * @option 
 * @desc Select unit(s) to play the animation on.
 * @default ["all targets"]
 * 
 * @arg Mirror:eval
 * @text Mirror Animation
 * @type boolean
 * @on Mirror
 * @off Normal
 * @desc Mirror the animation?
 * @default false
 * 
 * @arg WaitForAnimation:eval
 * @text Wait For Animation?
 * @type boolean
 * @on On
 * @off Off
 * @desc Wait for animation to complete before performing next command?
 * @default true
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Animation_ItemAnimation
 * @text ANIM: Item Animation
 * @desc Plays the animation associated with a specific item.
 * 
 * @arg ItemID:eval
 * @text Item ID
 * @type item
 * @desc Which item ID will the animation come from?
 * @default 7
 * 
 * @arg Targets:arraystr
 * @text Targets
 * @type combo[]
 * @option user
 * @option current target
 * @option prev target
 * @option next target
 * @option all targets
 * @option focus
 * @option not focus
 * @option
 * @option special
 * @option special x
 * @option 
 * @option alive friends
 * @option alive friends not user
 * @option alive friends not target
 * @option dead friends
 * @option friend index x
 * @option 
 * @option alive opponents
 * @option alive opponents not target
 * @option dead opponents
 * @option opponent index x
 * @option 
 * @option alive actors
 * @option alive actors not user
 * @option alive actors not target
 * @option dead actors
 * @option actor index x
 * @option actor ID x
 * @option 
 * @option alive enemies
 * @option alive enemies not user
 * @option alive enemies not target
 * @option dead enemies
 * @option enemy index x
 * @option enemy ID x
 * @option 
 * @option alive battlers
 * @option alive battlers not user
 * @option alive battlers not target
 * @option dead battlers
 * @option 
 * @desc Select unit(s) to play the animation on.
 * @default ["all targets"]
 * 
 * @arg Mirror:eval
 * @text Mirror Animation
 * @type boolean
 * @on Mirror
 * @off Normal
 * @desc Mirror the animation?
 * @default false
 * 
 * @arg WaitForAnimation:eval
 * @text Wait For Animation?
 * @type boolean
 * @on On
 * @off Off
 * @desc Wait for animation to complete before performing next command?
 * @default true
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Animation_PlayAtCoordinate
 * @text ANIM: Play at Coordinate
 * @desc Plays an animation on the screen at a specific x, y coordinate.
 * Requires VisuMZ_0_CoreEngine!
 *
 * @arg AnimationID:num
 * @text Animation ID
 * @parent Animation
 * @type animation
 * @desc Plays this animation.
 * @default 1
 * 
 * @arg Coordinates
 *
 * @arg pointX:eval
 * @text X
 * @parent Coordinates
 * @desc X coordinate used for the animation.
 * You may use JavaScript code.
 * @default Graphics.width / 2
 *
 * @arg pointY:eval
 * @text Y
 * @parent Coordinates
 * @desc Y coordinate used for the animation.
 * You may use JavaScript code.
 * @default Graphics.height / 2
 *
 * @arg Mirror:eval
 * @text Mirror Animation?
 * @parent Animation
 * @type boolean
 * @on Mirror
 * @off Normal
 * @desc Mirror the animation?
 * @default false
 *
 * @arg Mute:eval
 * @text Mute Animation?
 * @parent Animation
 * @type boolean
 * @on Mute
 * @off Normal
 * @desc Mute the animation?
 * @default false
 *
 * @arg WaitComplete:eval
 * @text Wait for Completion?
 * @parent Animation
 * @type boolean
 * @on Wait
 * @off Normal
 * @desc Wait the animation to finish before continuing?
 * @default false
 * 
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Animation_ShowAnimation
 * @text ANIM: Show Animation
 * @desc Plays the a specific animation on unit(s).
 * 
 * @arg Targets:arraystr
 * @text Targets
 * @type combo[]
 * @option user
 * @option current target
 * @option prev target
 * @option next target
 * @option all targets
 * @option focus
 * @option not focus
 * @option
 * @option special
 * @option special x
 * @option 
 * @option alive friends
 * @option alive friends not user
 * @option alive friends not target
 * @option dead friends
 * @option friend index x
 * @option 
 * @option alive opponents
 * @option alive opponents not target
 * @option dead opponents
 * @option opponent index x
 * @option 
 * @option alive actors
 * @option alive actors not user
 * @option alive actors not target
 * @option dead actors
 * @option actor index x
 * @option actor ID x
 * @option 
 * @option alive enemies
 * @option alive enemies not user
 * @option alive enemies not target
 * @option dead enemies
 * @option enemy index x
 * @option enemy ID x
 * @option 
 * @option alive battlers
 * @option alive battlers not user
 * @option alive battlers not target
 * @option dead battlers
 * @option 
 * @desc Select unit(s) to play the animation on.
 * @default ["all targets"]
 * 
 * @arg AnimationID:num
 * @text Animation ID
 * @type animation
 * @desc Select which animation to play on unit(s).
 * @default 1
 * 
 * @arg Mirror:eval
 * @text Mirror Animation
 * @type boolean
 * @on Mirror
 * @off Normal
 * @desc Mirror the animation?
 * @default false
 * 
 * @arg WaitForAnimation:eval
 * @text Wait For Animation?
 * @type boolean
 * @on On
 * @off Off
 * @desc Wait for animation to complete before performing next command?
 * @default true
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Animation_ShowAnimationJS
 * @text ANIM: Show Animation JS
 * @desc Plays the a specific animation on unit(s).
 * Uses JavaScript to determine animation ID.
 * 
 * @arg Targets:arraystr
 * @text Targets
 * @type combo[]
 * @option user
 * @option current target
 * @option prev target
 * @option next target
 * @option all targets
 * @option focus
 * @option not focus
 * @option
 * @option special
 * @option special x
 * @option 
 * @option alive friends
 * @option alive friends not user
 * @option alive friends not target
 * @option dead friends
 * @option friend index x
 * @option 
 * @option alive opponents
 * @option alive opponents not target
 * @option dead opponents
 * @option opponent index x
 * @option 
 * @option alive actors
 * @option alive actors not user
 * @option alive actors not target
 * @option dead actors
 * @option actor index x
 * @option actor ID x
 * @option 
 * @option alive enemies
 * @option alive enemies not user
 * @option alive enemies not target
 * @option dead enemies
 * @option enemy index x
 * @option enemy ID x
 * @option 
 * @option alive battlers
 * @option alive battlers not user
 * @option alive battlers not target
 * @option dead battlers
 * @option 
 * @desc Select unit(s) to play the animation on.
 * @default ["all targets"]
 * 
 * @arg AnimationID:eval
 * @text JS: Animation ID
 * @desc Select which animation to play on unit(s).
 * Uses JavaScript to determine animation ID.
 * @default 1
 * 
 * @arg Mirror:eval
 * @text Mirror Animation
 * @type boolean
 * @on Mirror
 * @off Normal
 * @desc Mirror the animation?
 * @default false
 * 
 * @arg WaitForAnimation:eval
 * @text Wait For Animation?
 * @type boolean
 * @on On
 * @off Off
 * @desc Wait for animation to complete before performing next command?
 * @default true
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Animation_SkillAnimation
 * @text ANIM: Skill Animation
 * @desc Plays the animation associated with a specific skill.
 * 
 * @arg SkillID:eval
 * @text Skill ID
 * @type skill
 * @desc Which skill ID will the animation come from?
 * @default 99
 * 
 * @arg Targets:arraystr
 * @text Targets
 * @type combo[]
 * @option user
 * @option current target
 * @option prev target
 * @option next target
 * @option all targets
 * @option focus
 * @option not focus
 * @option
 * @option special
 * @option special x
 * @option 
 * @option alive friends
 * @option alive friends not user
 * @option alive friends not target
 * @option dead friends
 * @option friend index x
 * @option 
 * @option alive opponents
 * @option alive opponents not target
 * @option dead opponents
 * @option opponent index x
 * @option 
 * @option alive actors
 * @option alive actors not user
 * @option alive actors not target
 * @option dead actors
 * @option actor index x
 * @option actor ID x
 * @option 
 * @option alive enemies
 * @option alive enemies not user
 * @option alive enemies not target
 * @option dead enemies
 * @option enemy index x
 * @option enemy ID x
 * @option 
 * @option alive battlers
 * @option alive battlers not user
 * @option alive battlers not target
 * @option dead battlers
 * @option 
 * @desc Select unit(s) to play the animation on.
 * @default ["all targets"]
 * 
 * @arg Mirror:eval
 * @text Mirror Animation
 * @type boolean
 * @on Mirror
 * @off Normal
 * @desc Mirror the animation?
 * @default false
 * 
 * @arg WaitForAnimation:eval
 * @text Wait For Animation?
 * @type boolean
 * @on On
 * @off Off
 * @desc Wait for animation to complete before performing next command?
 * @default true
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Animation_WaitForAnimation
 * @text ANIM: Wait For Animation
 * @desc Causes the interpreter to wait for any animation(s) to finish.
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActionSequenceSpaceBattleLog
 * @text -
 * @desc -
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActionSequenceBreakBattleLog
 * @text Action Sequences - Battle Log
 * @desc These Action Sequences are related to the Battle Log Window,
 * the window found at the top of the battle screen.
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_BattleLog_AddText
 * @text BTLOG: Add Text
 * @desc Adds a new line of text into the Battle Log.
 * 
 * @arg Text:str
 * @text Text
 * @desc Add this text into the Battle Log.
 * Text codes allowed.
 * @default Insert text here.
 * 
 * @arg CopyCombatLog:eval
 * @text Copy to Combat Log?
 * @type boolean
 * @on Copy Text
 * @off Don't Copy
 * @desc Copies text to the Combat Log.
 * Requires VisuMZ_4_CombatLog
 * @default true
 *
 * @arg CombatLogIcon:num
 * @text Combat Log Icon
 * @parent CopyCombatLog:eval
 * @desc What icon would you like to bind to this entry?
 * Requires VisuMZ_4_CombatLog
 * @default 87
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_BattleLog_Clear
 * @text BTLOG: Clear Battle Log
 * @desc Clears all the text in the Battle Log.
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_BattleLog_DisplayAction
 * @text BTLOG: Display Action
 * @desc Displays the current action in the Battle Log.
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_BattleLog_PopBaseLine
 * @text BTLOG: Pop Base Line
 * @desc Removes the Battle Log's last added base line and 
 * all text up to its former location.
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_BattleLog_PushBaseLine
 * @text BTLOG: Push Base Line
 * @desc Adds a new base line to where the Battle Log currently is at.
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_BattleLog_Refresh
 * @text BTLOG: Refresh Battle Log
 * @desc Refreshes the Battle Log.
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_BattleLog_UI
 * @text BTLOG: UI Show/Hide
 * @desc Shows or hides the Battle UI (including the Battle Log).
 * 
 * @arg ShowHide:eval
 * @text Show/Hide?
 * @type boolean
 * @on Show
 * @off Hide
 * @desc Shows/hides the Battle UI.
 * @default true
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_BattleLog_WaitForBattleLog
 * @text BTLOG: Wait For Battle Log
 * @desc Causes the interpreter to wait for the Battle Log to finish.
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_BattleLog_WaitForNewLine
 * @text BTLOG: Wait For New Line
 * @desc Causes the interpreter to wait for a new line in the Battle Log.
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActionSequenceSpaceCamera
 * @text -
 * @desc -
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActionSequenceBreakCamera
 * @text Action Sequences - Camera
 * @desc Allows you to have control over the camera.
 * Requires VisuMZ_3_ActSeqCamera!
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Camera_Clamp
 * @text CAMERA: Clamp ON/OFF
 * @desc Turns battle camera clamping on/off.
 * Requires VisuMZ_3_ActSeqCamera!
 * 
 * @arg Setting:eval
 * @text ON/OFF
 * @type boolean
 * @on ON
 * @off OFF
 * @desc Turns camera clamping on/off.
 * @default true
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Camera_FocusPoint
 * @text CAMERA: Focus Point
 * @desc Focus the battle camera on a certain point in the screen.
 * Requires VisuMZ_3_ActSeqCamera!
 * 
 * @arg FocusX:eval
 * @text X Coordinate
 * @desc Insert the point to focus the camera on.
 * You may use JavaScript code.
 * @default Graphics.width / 2
 * 
 * @arg FocusY:eval
 * @text Y Coordinate
 * @desc Insert the point to focus the camera on.
 * You may use JavaScript code.
 * @default Graphics.height / 2
 * 
 * @arg Duration:eval
 * @text Duration
 * @desc Duration in frames for camera focus change.
 * @default 60
 *
 * @arg EasingType:str
 * @text Camera Easing
 * @type combo
 * @option Linear
 * @option InSine
 * @option OutSine
 * @option InOutSine
 * @option InQuad
 * @option OutQuad
 * @option InOutQuad
 * @option InCubic
 * @option OutCubic
 * @option InOutCubic
 * @option InQuart
 * @option OutQuart
 * @option InOutQuart
 * @option InQuint
 * @option OutQuint
 * @option InOutQuint
 * @option InExpo
 * @option OutExpo
 * @option InOutExpo
 * @option InCirc
 * @option OutCirc
 * @option InOutCirc
 * @option InBack
 * @option OutBack
 * @option InOutBack
 * @option InElastic
 * @option OutElastic
 * @option InOutElastic
 * @option InBounce
 * @option OutBounce
 * @option InOutBounce
 * @desc Select which easing type you wish to apply.
 * Requires VisuMZ_0_CoreEngine.
 * @default InOutSine
 * 
 * @arg WaitForCamera:eval
 * @text Wait For Camera?
 * @type boolean
 * @on On
 * @off Off
 * @desc Wait for camera changes to complete before performing next command?
 * @default true
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Camera_FocusTarget
 * @text CAMERA: Focus Target(s)
 * @desc Focus the battle camera on certain battler target(s).
 * Requires VisuMZ_3_ActSeqCamera!
 * 
 * @arg Targets:arraystr
 * @text Targets
 * @type combo[]
 * @option user
 * @option current target
 * @option prev target
 * @option next target
 * @option all targets
 * @option focus
 * @option not focus
 * @option
 * @option special
 * @option special x
 * @option 
 * @option alive friends
 * @option alive friends not user
 * @option alive friends not target
 * @option dead friends
 * @option friend index x
 * @option 
 * @option alive opponents
 * @option alive opponents not target
 * @option dead opponents
 * @option opponent index x
 * @option 
 * @option alive actors
 * @option alive actors not user
 * @option alive actors not target
 * @option dead actors
 * @option actor index x
 * @option actor ID x
 * @option 
 * @option alive enemies
 * @option alive enemies not user
 * @option alive enemies not target
 * @option dead enemies
 * @option enemy index x
 * @option enemy ID x
 * @option 
 * @option alive battlers
 * @option alive battlers not user
 * @option alive battlers not target
 * @option dead battlers
 * @option 
 * @desc Select unit(s) to focus the battle camera on.
 * @default ["user"]
 * 
 * @arg Duration:eval
 * @text Duration
 * @desc Duration in frames for camera focus change.
 * @default 60
 *
 * @arg EasingType:str
 * @text Camera Easing
 * @type combo
 * @option Linear
 * @option InSine
 * @option OutSine
 * @option InOutSine
 * @option InQuad
 * @option OutQuad
 * @option InOutQuad
 * @option InCubic
 * @option OutCubic
 * @option InOutCubic
 * @option InQuart
 * @option OutQuart
 * @option InOutQuart
 * @option InQuint
 * @option OutQuint
 * @option InOutQuint
 * @option InExpo
 * @option OutExpo
 * @option InOutExpo
 * @option InCirc
 * @option OutCirc
 * @option InOutCirc
 * @option InBack
 * @option OutBack
 * @option InOutBack
 * @option InElastic
 * @option OutElastic
 * @option InOutElastic
 * @option InBounce
 * @option OutBounce
 * @option InOutBounce
 * @desc Select which easing type you wish to apply.
 * Requires VisuMZ_0_CoreEngine.
 * @default InOutSine
 * 
 * @arg WaitForCamera:eval
 * @text Wait For Camera?
 * @type boolean
 * @on On
 * @off Off
 * @desc Wait for camera changes to complete before performing next command?
 * @default true
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Camera_Offset
 * @text CAMERA: Offset
 * @desc Offset the battle camera from the focus target.
 * Requires VisuMZ_3_ActSeqCamera!
 * 
 * @arg OffsetX:eval
 * @text Offset X
 * @desc How much to offset the camera X by.
 * Negative: left. Positive: right.
 * @default +0
 * 
 * @arg OffsetY:eval
 * @text Offset Y
 * @desc How much to offset the camera Y by.
 * Negative: up. Positive: down.
 * @default +0
 * 
 * @arg Duration:eval
 * @text Duration
 * @desc Duration in frames for offset change.
 * @default 60
 *
 * @arg EasingType:str
 * @text Camera Easing
 * @type combo
 * @option Linear
 * @option InSine
 * @option OutSine
 * @option InOutSine
 * @option InQuad
 * @option OutQuad
 * @option InOutQuad
 * @option InCubic
 * @option OutCubic
 * @option InOutCubic
 * @option InQuart
 * @option OutQuart
 * @option InOutQuart
 * @option InQuint
 * @option OutQuint
 * @option InOutQuint
 * @option InExpo
 * @option OutExpo
 * @option InOutExpo
 * @option InCirc
 * @option OutCirc
 * @option InOutCirc
 * @option InBack
 * @option OutBack
 * @option InOutBack
 * @option InElastic
 * @option OutElastic
 * @option InOutElastic
 * @option InBounce
 * @option OutBounce
 * @option InOutBounce
 * @desc Select which easing type you wish to apply.
 * Requires VisuMZ_0_CoreEngine.
 * @default InOutSine
 * 
 * @arg WaitForCamera:eval
 * @text Wait For Camera?
 * @type boolean
 * @on On
 * @off Off
 * @desc Wait for camera changes to complete before performing next command?
 * @default true
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Camera_Reset
 * @text CAMERA: Reset
 * @desc Reset the battle camera settings.
 * Requires VisuMZ_3_ActSeqCamera!
 * 
 * @arg ResetFocus:eval
 * @text Reset Focus?
 * @type boolean
 * @on On
 * @off Off
 * @desc Reset the focus point?
 * @default true
 * 
 * @arg ResetOffset:eval
 * @text Reset Offset?
 * @type boolean
 * @on On
 * @off Off
 * @desc Reset the camera offset?
 * @default true
 * 
 * @arg Duration:eval
 * @text Duration
 * @desc Duration in frames for reset change.
 * @default 60
 *
 * @arg EasingType:str
 * @text Camera Easing
 * @type combo
 * @option Linear
 * @option InSine
 * @option OutSine
 * @option InOutSine
 * @option InQuad
 * @option OutQuad
 * @option InOutQuad
 * @option InCubic
 * @option OutCubic
 * @option InOutCubic
 * @option InQuart
 * @option OutQuart
 * @option InOutQuart
 * @option InQuint
 * @option OutQuint
 * @option InOutQuint
 * @option InExpo
 * @option OutExpo
 * @option InOutExpo
 * @option InCirc
 * @option OutCirc
 * @option InOutCirc
 * @option InBack
 * @option OutBack
 * @option InOutBack
 * @option InElastic
 * @option OutElastic
 * @option InOutElastic
 * @option InBounce
 * @option OutBounce
 * @option InOutBounce
 * @desc Select which easing type you wish to apply.
 * Requires VisuMZ_0_CoreEngine.
 * @default InOutSine
 * 
 * @arg WaitForCamera:eval
 * @text Wait For Camera?
 * @type boolean
 * @on On
 * @off Off
 * @desc Wait for camera changes to complete before performing next command?
 * @default true
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Camera_WaitForCamera
 * @text CAMERA: Wait For Camera
 * @desc Waits for camera to complete before performing next command.
 * Requires VisuMZ_3_ActSeqCamera!
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActionSequenceSpaceCutin
 * @text -
 * @desc -
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActionSequenceBreakCutin
 * @text Action Sequences - Cutins
 * @desc Allows you to have control over Visual Cutin Effects.
 * Requires VisuMZ_3_VisualCutinEffect!
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Cutin_AddVisualCutinEffect
 * @text CUTIN: Add Visual Cutin Effect
 * @desc Adds the Visual Cutin Effect using these desired settings.
 * Requires VisuMZ_3_VisualCutinEffect!
 * 
 * @arg Basic
 * @text Basic Settings
 * 
 * @arg type:str
 * @text Cutin Style Type
 * @parent Basic
 * @type select
 * @option -
 * @option Whole
 * @option -
 * @option Showcase
 * @option -
 * @option LeftHorzSpan
 * @option CenterHorzSpan
 * @option RightHorzSpan
 * @option -
 * @option LeftHorzSlash
 * @option RightHorzSlash
 * @option -
 * @option LeftVertSlash
 * @option RightVertSlash
 * @option -
 * @option LeftMajor
 * @option RightMajor
 * @option -
 * @option LeftMinor
 * @option CenterMinor
 * @option RightMinor
 * @option -
 * @option LeftDiamond
 * @option CenterDiamond
 * @option RightDiamond
 * @option -
 * @option LeftGemstone
 * @option CenterGemstone
 * @option RightGemstone
 * @option -
 * @option TopLeftQuad
 * @option TopRightQuad
 * @option BottomLeftQuad
 * @option BottomRightQuad
 * @option -
 * @option TopLeftCorner
 * @option TopRightCorner
 * @option BottomLeftCorner
 * @option BottomRightCorner
 * @option -
 * @option Row1stThird
 * @option Row2ndThird
 * @option Row3rdThird
 * @option -
 * @option Row1stFourth
 * @option Row2ndFourth
 * @option Row3rdFourth
 * @option Row4thFourth
 * @option -
 * @option Row1stFifth
 * @option Row2ndFifth
 * @option Row3rdFifth
 * @option Row4thFifth
 * @option Row5thFifth
 * @option -
 * @option Col1stThird
 * @option Col2ndThird
 * @option Col3rdThird
 * @option -
 * @option Col1stFourth
 * @option Col2ndFourth
 * @option Col3rdFourth
 * @option Col4thFourth
 * @option -
 * @option Col1stFifth
 * @option Col2ndFifth
 * @option Col3rdFifth
 * @option Col4thFifth
 * @option Col5thFifth
 * @option -
 * @option SixPack1
 * @option SixPack2
 * @option SixPack3
 * @option SixPack4
 * @option SixPack5
 * @option SixPack6
 * @option -
 * @option EightPack1
 * @option EightPack2
 * @option EightPack3
 * @option EightPack4
 * @option EightPack5
 * @option EightPack6
 * @option EightPack7
 * @option EightPack8
 * @option -
 * @option TwelvePack1
 * @option TwelvePack2
 * @option TwelvePack3
 * @option TwelvePack4
 * @option TwelvePack5
 * @option TwelvePack6
 * @option TwelvePack7
 * @option TwelvePack8
 * @option TwelvePack9
 * @option TwelvePack10
 * @option TwelvePack11
 * @option TwelvePack12
 * @option -
 * @desc What Visual Cutin Effect style type do you wish to use?
 * Only one of each cutin-style type can be present.
 * @default CenterHorzSpan
 * 
 * @arg Targets:arraystr
 * @text Portrait Target
 * @parent Basic
 * @type combo[]
 * @option user
 * @option current target
 * @option prev target
 * @option next target
 * @option all targets
 * @option focus
 * @option not focus
 * @option
 * @option special
 * @option special x
 * @option 
 * @option alive friends
 * @option alive friends not user
 * @option alive friends not target
 * @option dead friends
 * @option friend index x
 * @option 
 * @option alive opponents
 * @option alive opponents not target
 * @option dead opponents
 * @option opponent index x
 * @option 
 * @option alive actors
 * @option alive actors not user
 * @option alive actors not target
 * @option dead actors
 * @option actor index x
 * @option actor ID x
 * @option 
 * @option alive enemies
 * @option alive enemies not user
 * @option alive enemies not target
 * @option dead enemies
 * @option enemy index x
 * @option enemy ID x
 * @option 
 * @option alive battlers
 * @option alive battlers not user
 * @option alive battlers not target
 * @option dead battlers
 * @option 
 * @desc Select unit(s) to grab the Visual Cutin Effect portrait
 * data from. First unit will be used to make portrait.
 * @default ["user"]
 *
 * @arg parallaxFilename:str
 * @text Parallax Filename
 * @parent Basic
 * @type file
 * @dir img/parallaxes/
 * @require 1
 * @desc Pick a parallax to use for the Visual Cutin Effect.
 * Pick (None) to not use a parallax.
 * @default >>>ATTENTION<<<
 *
 * @arg bgColor:str
 * @text Background Color
 * @parent Basic
 * @desc Use #rrggbb for custom colors or regular numbers
 * for text colors from the Window Skin.
 * @default #888888
 *
 * @arg ExtraSettings:struct
 * @text Extra Settings
 * @type struct<VisualCutinEffect>
 * @desc Extra Plugin Command settings pertaining to this Visual Cutin Effect.
 * @default {}
 * 
 * @arg WaitForEntrance:eval
 * @text Wait For Entrance
 * @type boolean
 * @on Wait
 * @off Don't Wait
 * @desc Wait until cutin entrance is finished before performing
 * the next event command?
 * @default true
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Cutin_EndVisualCutinEffectAll
 * @text CUTIN: End Visual Cutin Effect (All)
 * @desc Ends all Visual Cutin Effects currently present.
 * Requires VisuMZ_3_VisualCutinEffect!
 * 
 * @arg WaitForExit:eval
 * @text Wait For Exit
 * @type boolean
 * @on Wait
 * @off Don't Wait
 * @desc Wait until cutin exit is finished before performing
 * the next event command?
 * @default true
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Cutin_EndVisualCutinEffectType
 * @text CUTIN: End Visual Cutin Effect (Type)
 * @desc Ends the Visual Cutin Effect with the matching type.
 * Requires VisuMZ_3_VisualCutinEffect!
 * 
 * @arg type:str
 * @text Cutin Style Type
 * @type select
 * @option -
 * @option Whole
 * @option -
 * @option Showcase
 * @option -
 * @option LeftHorzSpan
 * @option CenterHorzSpan
 * @option RightHorzSpan
 * @option -
 * @option LeftHorzSlash
 * @option RightHorzSlash
 * @option -
 * @option LeftVertSlash
 * @option RightVertSlash
 * @option -
 * @option LeftMajor
 * @option RightMajor
 * @option -
 * @option LeftMinor
 * @option CenterMinor
 * @option RightMinor
 * @option -
 * @option LeftDiamond
 * @option CenterDiamond
 * @option RightDiamond
 * @option -
 * @option LeftGemstone
 * @option CenterGemstone
 * @option RightGemstone
 * @option -
 * @option TopLeftQuad
 * @option TopRightQuad
 * @option BottomLeftQuad
 * @option BottomRightQuad
 * @option -
 * @option TopLeftCorner
 * @option TopRightCorner
 * @option BottomLeftCorner
 * @option BottomRightCorner
 * @option -
 * @option Row1stThird
 * @option Row2ndThird
 * @option Row3rdThird
 * @option -
 * @option Row1stFourth
 * @option Row2ndFourth
 * @option Row3rdFourth
 * @option Row4thFourth
 * @option -
 * @option Row1stFifth
 * @option Row2ndFifth
 * @option Row3rdFifth
 * @option Row4thFifth
 * @option Row5thFifth
 * @option -
 * @option Col1stThird
 * @option Col2ndThird
 * @option Col3rdThird
 * @option -
 * @option Col1stFourth
 * @option Col2ndFourth
 * @option Col3rdFourth
 * @option Col4thFourth
 * @option -
 * @option Col1stFifth
 * @option Col2ndFifth
 * @option Col3rdFifth
 * @option Col4thFifth
 * @option Col5thFifth
 * @option -
 * @option SixPack1
 * @option SixPack2
 * @option SixPack3
 * @option SixPack4
 * @option SixPack5
 * @option SixPack6
 * @option -
 * @option EightPack1
 * @option EightPack2
 * @option EightPack3
 * @option EightPack4
 * @option EightPack5
 * @option EightPack6
 * @option EightPack7
 * @option EightPack8
 * @option -
 * @option TwelvePack1
 * @option TwelvePack2
 * @option TwelvePack3
 * @option TwelvePack4
 * @option TwelvePack5
 * @option TwelvePack6
 * @option TwelvePack7
 * @option TwelvePack8
 * @option TwelvePack9
 * @option TwelvePack10
 * @option TwelvePack11
 * @option TwelvePack12
 * @option -
 * @desc What Visual Cutin Effect style type do you wish to end?
 * @default CenterHorzSpan
 * 
 * @arg WaitForExit:eval
 * @text Wait For Exit
 * @type boolean
 * @on Wait
 * @off Don't Wait
 * @desc Wait until cutin exit is finished before performing
 * the next event command?
 * @default true
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Cutin_WaitForEntrance
 * @text CUTIN: Wait for Cutin Entrance
 * @desc Wait until all cutin entrances are finished before performing the next event command. Requires VisuMZ_3_VisualCutinEffect!
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Cutin_WaitForExit
 * @text CUTIN: Wait for Cutin Exit
 * @desc Wait until all cutin exits are finished before performing the next event command. Requires VisuMZ_3_VisualCutinEffect!
 *
 * @ --------------------------------------------------------------------------
 *
 *
 * @command ActionSequenceSpaceDragonbones
 * @text -
 * @desc -
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActionSequenceBreaDragonbones
 * @text Action Sequences - Dragonbones
 * @desc These Action Sequences are Dragonbones-related.
 * Requires VisuMZ_2_DragonbonesUnion!
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_DB_DragonbonesMotionAni
 * @text DB: Dragonbones Animation
 * @desc Causes the unit(s) to play a Dragonbones motion animation.
 * Requires VisuMZ_2_DragonbonesUnion!
 * 
 * @arg Targets:arraystr
 * @text Targets
 * @type combo[]
 * @option user
 * @option current target
 * @option prev target
 * @option next target
 * @option all targets
 * @option focus
 * @option not focus
 * @option
 * @option special
 * @option special x
 * @option 
 * @option alive friends
 * @option alive friends not user
 * @option alive friends not target
 * @option dead friends
 * @option friend index x
 * @option 
 * @option alive opponents
 * @option alive opponents not target
 * @option dead opponents
 * @option opponent index x
 * @option 
 * @option alive actors
 * @option alive actors not user
 * @option alive actors not target
 * @option dead actors
 * @option actor index x
 * @option actor ID x
 * @option 
 * @option alive enemies
 * @option alive enemies not user
 * @option alive enemies not target
 * @option dead enemies
 * @option enemy index x
 * @option enemy ID x
 * @option 
 * @option alive battlers
 * @option alive battlers not user
 * @option alive battlers not target
 * @option dead battlers
 * @option 
 * @desc Select which unit(s) to perform a motion animation.
 * @default ["user"]
 *
 * @arg MotionAni:str
 * @text Motion Animation
 * @desc What is the name of the Dragonbones motion animation you wish to play?
 * @default attack
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_DB_DragonbonesTimeScale
 * @text DB: Dragonbones Time Scale
 * @desc Causes the unit(s) to change their Dragonbones time scale.
 * Requires VisuMZ_2_DragonbonesUnion!
 * 
 * @arg Targets:arraystr
 * @text Targets
 * @type combo[]
 * @option user
 * @option current target
 * @option prev target
 * @option next target
 * @option all targets
 * @option focus
 * @option not focus
 * @option
 * @option special
 * @option special x
 * @option 
 * @option alive friends
 * @option alive friends not user
 * @option alive friends not target
 * @option dead friends
 * @option friend index x
 * @option 
 * @option alive opponents
 * @option alive opponents not target
 * @option dead opponents
 * @option opponent index x
 * @option 
 * @option alive actors
 * @option alive actors not user
 * @option alive actors not target
 * @option dead actors
 * @option actor index x
 * @option actor ID x
 * @option 
 * @option alive enemies
 * @option alive enemies not user
 * @option alive enemies not target
 * @option dead enemies
 * @option enemy index x
 * @option enemy ID x
 * @option 
 * @option alive battlers
 * @option alive battlers not user
 * @option alive battlers not target
 * @option dead battlers
 * @option 
 * @desc Select which unit(s) to perform a motion animation.
 * @default ["user"]
 *
 * @arg TimeScale:num
 * @text Time Scale
 * @desc Change the value of the Dragonbones time scale to this.
 * @default 1.0
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActionSequenceSpaceElements
 * @text -
 * @desc -
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActionSequenceBreakElements
 * @text Action Sequences - Elements
 * @desc These Action Sequences are related to elements.
 * Requires VisuMZ_1_ElementStatusCore!
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Element_AddElements
 * @text ELE: Add Elements
 * @desc Adds element(s) to be used when calculating damage.
 * Requires VisuMZ_1_ElementStatusCore!
 *
 * @arg Elements:arraynum
 * @text Elements
 * @type number[]
 * @min 1
 * @max 99
 * @desc Select which element ID to add onto the action.
 * Insert multiple element ID's to add multiple at once.
 * @default ["1"]
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Element_Clear
 * @text ELE: Clear Element Changes
 * @desc Clears all element changes made through Action Sequences.
 * Requires VisuMZ_1_ElementStatusCore!
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Element_ForceElements
 * @text ELE: Force Elements
 * @desc Forces only specific element(s) when calculating damage.
 * Requires VisuMZ_1_ElementStatusCore!
 *
 * @arg Elements:arraynum
 * @text Elements
 * @type number[]
 * @min 1
 * @max 99
 * @desc Select which element ID to force in the action.
 * Insert multiple element ID's to force multiple at once.
 * @default ["1"]
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Element_NullElements
 * @text ELE: Null Element
 * @desc Forces no element to be used when calculating damage.
 * Requires VisuMZ_1_ElementStatusCore!
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActionSequenceSpaceGrid
 * @text -
 * @desc -
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActionSequenceBreakGrid
 * @text Action Sequences - Grid
 * @desc These Action Sequences are Battle Grid System-related.
 * Requires VisuMZ_2_BattleGridSystem!
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Grid_ActionAnimationAtNode
 * @text GRID: Action Animation at Node
 * @desc Plays action animation at target node.
 * Requires VisuMZ_2_BattleGridSystem!
 *
 * @arg UseActionSelectNode:eval
 * @text Action-Selected Node?
 * @type boolean
 * @on Action-Selected
 * @off Prioritize Custom
 * @desc Use Action-Selected Node Coordinates if possible?
 * Requires "Empty" or "Any" for <Target: x Grid Node>
 * @default true
 *
 * @arg Unit:str
 * @text Unit
 * @parent UseActionSelectNode:eval
 * @type select
 * @option Actor
 * @option Enemy
 * @option Friend
 * @option Opponent
 * @desc Which unit's Node do you want to play an animation on?
 * @default Enemy
 *
 * @arg Rank:num
 * @text Rank
 * @parent UseActionSelectNode:eval
 * @type number
 * @min 1
 * @max 10
 * @desc Input the number representing the Rank of the Node
 * you want to play an animation on.
 * @default 1
 *
 * @arg Flank:num
 * @text Flank
 * @parent UseActionSelectNode:eval
 * @type number
 * @min 1
 * @max 10
 * @desc Input the number representing the Flank of the Node
 * you want to play an animation on.
 * @default 1
 *
 * @arg OffsetX:num
 * @text Offset X
 * @desc Offsets the animation x position.
 * Negative: left. Positive: right.
 * @default +0
 *
 * @arg OffsetY:num
 * @text Offset Y
 * @desc Offsets the animation y position.
 * Negative: up. Positive: down.
 * @default +0
 * 
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Grid_AddPassiveStatesToNode
 * @text GRID: Add Passive State(s) to Node
 * @desc Adds Passive State(s) at target node.
 * Requires VisuMZ_2_BattleGridSystem!
 *
 * @arg StateIDs:arraynum
 * @text State ID(s)
 * @type state[]
 * @desc Select which State ID(s) to add as a Passive State.
 * @default []
 *
 * @arg UseActionSelectNode:eval
 * @text Action-Selected Node?
 * @type boolean
 * @on Action-Selected
 * @off Prioritize Custom
 * @desc Use Action-Selected Node Coordinates if possible?
 * Requires "Empty" or "Any" for <Target: x Grid Node>
 * @default true
 *
 * @arg Unit:str
 * @text Unit
 * @parent UseActionSelectNode:eval
 * @type select
 * @option Actor
 * @option Enemy
 * @option Friend
 * @option Opponent
 * @desc Which unit do you want to add the Passive State Node
 * effect for?
 * @default Actor
 *
 * @arg Rank:eval
 * @text Rank
 * @parent UseActionSelectNode:eval
 * @desc Input the number representing the Rank of the Node
 * you want to add a Passive State(s) to.
 * @default 1
 *
 * @arg Flank:eval
 * @text Flank
 * @parent UseActionSelectNode:eval
 * @desc Input the number representing the Flank of the Node
 * you want to add a Passive State(s) to.
 * @default 1
 * 
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Grid_AddTriggerToNode
 * @text GRID: Add Trigger to Node
 * @desc Adds Trigger to target node. Target node cannot have battler.
 * Requires VisuMZ_2_BattleGridSystem!
 *
 * @arg SkillID:num
 * @text Skill ID
 * @type skill
 * @desc Select which Skill ID(s) to add as the trigger.
 * @default 1
 *
 * @arg UseActionSelectNode:eval
 * @text Action-Selected Node?
 * @type boolean
 * @on Action-Selected
 * @off Prioritize Custom
 * @desc Use Action-Selected Node Coordinates if possible?
 * Requires "Empty" or "Any" for <Target: x Grid Node>
 * @default true
 *
 * @arg Unit:str
 * @text Unit
 * @parent UseActionSelectNode:eval
 * @type select
 * @option Actor
 * @option Enemy
 * @option Friend
 * @option Opponent
 * @desc Which unit do you want to add the Trigger Node
 * effect for?
 * @default Actor
 *
 * @arg Rank:eval
 * @text Rank
 * @parent UseActionSelectNode:eval
 * @desc Input the number representing the Rank of the Node
 * you want to add a Trigger to.
 * @default 1
 *
 * @arg Flank:eval
 * @text Flank
 * @parent UseActionSelectNode:eval
 * @desc Input the number representing the Flank of the Node
 * you want to add a Trigger to.
 * @default 1
 * 
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Grid_AddTriggerToNodeJS
 * @text GRID: Add Trigger to Node JS
 * @desc Adds Trigger to target node. Target node cannot have battler.
 * Requires VisuMZ_2_BattleGridSystem!
 *
 * @arg SkillID:eval
 * @text JS: Skill ID
 * @desc Use JavaScript to determine what skill ID to add to this node.
 * @default 1
 *
 * @arg UseActionSelectNode:eval
 * @text Action-Selected Node?
 * @type boolean
 * @on Action-Selected
 * @off Prioritize Custom
 * @desc Use Action-Selected Node Coordinates if possible?
 * Requires "Empty" or "Any" for <Target: x Grid Node>
 * @default true
 *
 * @arg Unit:str
 * @text Unit
 * @parent UseActionSelectNode:eval
 * @type select
 * @option Actor
 * @option Enemy
 * @option Friend
 * @option Opponent
 * @desc Which unit do you want to add the Trigger Node
 * effect for?
 * @default Actor
 *
 * @arg Rank:eval
 * @text Rank
 * @parent UseActionSelectNode:eval
 * @desc Input the number representing the Rank of the Node
 * you want to add a Trigger to.
 * @default 1
 *
 * @arg Flank:eval
 * @text Flank
 * @parent UseActionSelectNode:eval
 * @desc Input the number representing the Flank of the Node
 * you want to add a Trigger to.
 * @default 1
 * 
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Grid_AnimationIDAtNode
 * @text GRID: Animation ID at Node
 * @desc Plays specific animation ID at target node.
 * Requires VisuMZ_2_BattleGridSystem!
 *
 * @arg AnimationID:num
 * @text Animation ID
 * @type animation
 * @desc Play this animation at target node.
 * @default 1
 *
 * @arg Mirror:eval
 * @text Mirror?
 * @parent AnimationID:num
 * @type boolean
 * @on Mirror Animation
 * @off Don't Mirror
 * @desc Mirror this animation?
 * @default false
 *
 * @arg Mute:eval
 * @text Mute?
 * @parent AnimationID:num
 * @type boolean
 * @on Mute Animation
 * @off Don't Mute
 * @desc Mute this animation?
 * @default false
 *
 * @arg UseActionSelectNode:eval
 * @text Action-Selected Node?
 * @type boolean
 * @on Action-Selected
 * @off Prioritize Custom
 * @desc Use Action-Selected Node Coordinates if possible?
 * Requires "Empty" or "Any" for <Target: x Grid Node>
 * @default true
 *
 * @arg Unit:str
 * @text Unit
 * @parent UseActionSelectNode:eval
 * @type select
 * @option Actor
 * @option Enemy
 * @option Friend
 * @option Opponent
 * @desc Which unit's Node do you want to play an animation on?
 * @default Enemy
 *
 * @arg Rank:num
 * @text Rank
 * @parent UseActionSelectNode:eval
 * @type number
 * @min 1
 * @max 10
 * @desc Input the number representing the Rank of the Node
 * you want to play an animation on.
 * @default 1
 *
 * @arg Flank:num
 * @text Flank
 * @parent UseActionSelectNode:eval
 * @type number
 * @min 1
 * @max 10
 * @desc Input the number representing the Flank of the Node
 * you want to play an animation on.
 * @default 1
 *
 * @arg OffsetX:num
 * @text Offset X
 * @desc Offsets the animation x position.
 * Negative: left. Positive: right.
 * @default +0
 *
 * @arg OffsetY:num
 * @text Offset Y
 * @desc Offsets the animation y position.
 * Negative: up. Positive: down.
 * @default +0
 * 
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Grid_AnimationJsAtNode
 * @text GRID: Animation JS at Node
 * @desc Uses JS to calculate which animation to play at target node.
 * Requires VisuMZ_2_BattleGridSystem!
 * 
 * @arg AnimationID:eval
 * @text JS: Animation ID
 * @desc Calculate which animation to play on unit(s).
 * Uses JavaScript to determine animation ID.
 * @default 1
 *
 * @arg Mirror:eval
 * @text Mirror?
 * @parent AnimationID:eval
 * @type boolean
 * @on Mirror Animation
 * @off Don't Mirror
 * @desc Mirror this animation?
 * @default false
 *
 * @arg Mute:eval
 * @text Mute?
 * @parent AnimationID:eval
 * @type boolean
 * @on Mute Animation
 * @off Don't Mute
 * @desc Mute this animation?
 * @default false
 *
 * @arg UseActionSelectNode:eval
 * @text Action-Selected Node?
 * @type boolean
 * @on Action-Selected
 * @off Prioritize Custom
 * @desc Use Action-Selected Node Coordinates if possible?
 * Requires "Empty" or "Any" for <Target: x Grid Node>
 * @default true
 *
 * @arg Unit:str
 * @text Unit
 * @parent UseActionSelectNode:eval
 * @type select
 * @option Actor
 * @option Enemy
 * @option Friend
 * @option Opponent
 * @desc Which unit's Node do you want to play an animation on?
 * @default Enemy
 *
 * @arg Rank:num
 * @text Rank
 * @parent UseActionSelectNode:eval
 * @type number
 * @min 1
 * @max 10
 * @desc Input the number representing the Rank of the Node
 * you want to play an animation on.
 * @default 1
 *
 * @arg Flank:num
 * @text Flank
 * @parent UseActionSelectNode:eval
 * @type number
 * @min 1
 * @max 10
 * @desc Input the number representing the Flank of the Node
 * you want to play an animation on.
 * @default 1
 *
 * @arg OffsetX:num
 * @text Offset X
 * @desc Offsets the animation x position.
 * Negative: left. Positive: right.
 * @default +0
 *
 * @arg OffsetY:num
 * @text Offset Y
 * @desc Offsets the animation y position.
 * Negative: up. Positive: down.
 * @default +0
 * 
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Grid_AnimationTypeAtNode
 * @text GRID: Animation Type at Node
 * @desc Plays certain animation type at target node.
 * Requires VisuMZ_2_BattleGridSystem!
 *
 * @arg Type:str
 * @text Animation Type
 * @type select
 * @option Attack
 * @option Guard
 * @option Item
 * @option Skill
 * @desc What is the animation type you would like to play?
 * @default Attack
 * 
 * @arg Slot:eval
 * @text Slot (Attack Type)
 * @parent Type:str
 * @desc Which weapon slot to get this data from?
 * Main-hand weapon is weapon slot 1.
 * @default 1
 * 
 * @arg ItemID:num
 * @text Item ID (Item Type)
 * @parent Type:str
 * @type item
 * @desc Which item ID will the animation come from?
 * @default 7
 * 
 * @arg SkillID:num
 * @text Skill ID (Skill Type)
 * @parent Type:str
 * @type skill
 * @desc Which skill ID will the animation come from?
 * @default 99
 *
 * @arg UseActionSelectNode:eval
 * @text Action-Selected Node?
 * @type boolean
 * @on Action-Selected
 * @off Prioritize Custom
 * @desc Use Action-Selected Node Coordinates if possible?
 * Requires "Empty" or "Any" for <Target: x Grid Node>
 * @default true
 *
 * @arg Unit:str
 * @text Unit
 * @parent UseActionSelectNode:eval
 * @type select
 * @option Actor
 * @option Enemy
 * @option Friend
 * @option Opponent
 * @desc Which unit's Node do you want to play an animation on?
 * @default Enemy
 *
 * @arg Rank:num
 * @text Rank
 * @parent UseActionSelectNode:eval
 * @type number
 * @min 1
 * @max 10
 * @desc Input the number representing the Rank of the Node
 * you want to play an animation on.
 * @default 1
 *
 * @arg Flank:num
 * @text Flank
 * @parent UseActionSelectNode:eval
 * @type number
 * @min 1
 * @max 10
 * @desc Input the number representing the Flank of the Node
 * you want to play an animation on.
 * @default 1
 *
 * @arg OffsetX:num
 * @text Offset X
 * @desc Offsets the animation x position.
 * Negative: left. Positive: right.
 * @default +0
 *
 * @arg OffsetY:num
 * @text Offset Y
 * @desc Offsets the animation y position.
 * Negative: up. Positive: down.
 * @default +0
 * 
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Grid_MoveTargetsInDirection
 * @text GRID: Move Target(s) In Direction
 * @desc Moves target(s) in a specific direction to other Nodes.
 * Requires VisuMZ_2_BattleGridSystem!
 * 
 * @arg Targets:arraystr
 * @text Targets
 * @type combo[]
 * @option user
 * @option current target
 * @option prev target
 * @option next target
 * @option all targets
 * @option focus
 * @option not focus
 * @option
 * @option special
 * @option special x
 * @option 
 * @option alive friends
 * @option alive friends not user
 * @option alive friends not target
 * @option dead friends
 * @option friend index x
 * @option 
 * @option alive opponents
 * @option alive opponents not target
 * @option dead opponents
 * @option opponent index x
 * @option 
 * @option alive actors
 * @option alive actors not user
 * @option alive actors not target
 * @option dead actors
 * @option actor index x
 * @option actor ID x
 * @option 
 * @option alive enemies
 * @option alive enemies not user
 * @option alive enemies not target
 * @option dead enemies
 * @option enemy index x
 * @option enemy ID x
 * @option 
 * @option alive battlers
 * @option alive battlers not user
 * @option alive battlers not target
 * @option dead battlers
 * @option 
 * @desc Select unit(s) to move.
 * @default ["all targets"]
 * 
 * @arg MoveType:str
 * @text Movement Type
 * @type select
 * @option -
 * @option Exact
 * @option -
 * @option Mid
 * @option -
 * @option Switch
 * @option Switch Mid
 * @option -
 * @option Crash
 * @option Crash Mid
 * @option -
 * @desc Select the Movement type rulings.
 * See VisuMZ_2_BattleGridSystem help file for details.
 * @default Mid
 * 
 * @arg Direction:str
 * @text Direction
 * @parent MoveType:str
 * @type select
 * @option -
 * @option Upward
 * @option Downward
 * @option -
 * @option Up-Forward
 * @option Forward
 * @option Down-Forward
 * @option -
 * @option Up-Backward
 * @option Backward
 * @option Down-Backward
 * @option -
 * @option Up-Leftward
 * @option Leftward
 * @option Down-Leftward
 * @option -
 * @option Up-Rightward
 * @option Rightward
 * @option Down-Rightward
 * @option -
 * @desc Select the movement direction.
 * @default Backward
 *
 * @arg Distance:eval
 * @text Distance
 * @parent MoveType:str
 * @desc The number of nodes to be moved.
 * You may use JavaScript code.
 * @default 1
 *
 * @arg Duration:eval
 * @text Duration
 * @desc Input the number representing the frames used to move.
 * @default 12
 *
 * @arg SilentMove:eval
 * @text Silent Change?
 * @type boolean
 * @on Silent
 * @off Visual
 * @desc Silent: Discreet changes shown. More apparent later.
 * Visual: Instant changes shown.
 * @default false
 * 
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Grid_PullToTargetNode
 * @text GRID: Pull To Target Node
 * @desc Pulls battlers towards target node.
 * Requires VisuMZ_2_BattleGridSystem!
 *
 * @arg UseActionSelectNode:eval
 * @text Action-Selected Node?
 * @type boolean
 * @on Action-Selected
 * @off Prioritize Custom
 * @desc Use Action-Selected Node Coordinates if possible?
 * Requires "Empty" or "Any" for <Target: x Grid Node>
 * @default true
 *
 * @arg Unit:str
 * @text Unit
 * @parent UseActionSelectNode:eval
 * @type select
 * @option Actor
 * @option Enemy
 * @option Friend
 * @option Opponent
 * @desc Which unit do you want to pull on?
 * @default Actor
 *
 * @arg Rank:eval
 * @text Rank
 * @parent UseActionSelectNode:eval
 * @desc Input the number representing the Rank of the Node
 * you want to pull to.
 * @default 1
 *
 * @arg Flank:eval
 * @text Flank
 * @parent UseActionSelectNode:eval
 * @desc Input the number representing the Flank of the Node
 * you want to pull to.
 * @default 1
 *
 * @arg Strength:eval
 * @text Strength
 * @desc Input the strength level of the pull.
 * @default 1
 *
 * @arg Duration:eval
 * @text Duration
 * @desc Input the number representing the frames used to move.
 * @default 12
 * 
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Grid_PushFromTargetNode
 * @text GRID: Push From Target Node
 * @desc Pushes battlers away from target node.
 * Requires VisuMZ_2_BattleGridSystem!
 *
 * @arg UseActionSelectNode:eval
 * @text Action-Selected Node?
 * @type boolean
 * @on Action-Selected
 * @off Prioritize Custom
 * @desc Use Action-Selected Node Coordinates if possible?
 * Requires "Empty" or "Any" for <Target: x Grid Node>
 * @default true
 *
 * @arg Unit:str
 * @text Unit
 * @parent UseActionSelectNode:eval
 * @type select
 * @option Actor
 * @option Enemy
 * @option Friend
 * @option Opponent
 * @desc Which unit do you want to push from?
 * @default Actor
 *
 * @arg Rank:eval
 * @text Rank
 * @parent UseActionSelectNode:eval
 * @desc Input the number representing the Rank of the Node
 * you want to push from.
 * @default 1
 *
 * @arg Flank:eval
 * @text Flank
 * @parent UseActionSelectNode:eval
 * @desc Input the number representing the Flank of the Node
 * you want to push from.
 * @default 1
 *
 * @arg Strength:eval
 * @text Strength
 * @desc Input the strength level of the push.
 * @default 1
 *
 * @arg Duration:eval
 * @text Duration
 * @desc Input the number representing the frames used to move.
 * @default 12
 * 
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Grid_ClearPassiveStatesFromNode
 * @text GRID: Remove All Passive States from Node
 * @desc Removes all all Passive State effects at target node.
 * Requires VisuMZ_2_BattleGridSystem!
 *
 * @arg UseActionSelectNode:eval
 * @text Action-Selected Node?
 * @type boolean
 * @on Action-Selected
 * @off Prioritize Custom
 * @desc Use Action-Selected Node Coordinates if possible?
 * Requires "Empty" or "Any" for <Target: x Grid Node>
 * @default true
 *
 * @arg Unit:str
 * @text Unit
 * @parent UseActionSelectNode:eval
 * @type select
 * @option Actor
 * @option Enemy
 * @option Friend
 * @option Opponent
 * @desc Which unit do you want to clear the Node for?
 * @default Actor
 *
 * @arg Rank:eval
 * @text Rank
 * @parent UseActionSelectNode:eval
 * @desc Input the number representing the Rank of the Node
 * you want to clear Passive States from.
 * @default 1
 *
 * @arg Flank:eval
 * @text Flank
 * @parent UseActionSelectNode:eval
 * @desc Input the number representing the Flank of the Node
 * you want to clear Passive States from.
 * @default 1
 * 
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Grid_RemovePassiveStatesFromNode
 * @text GRID: Remove Passive State(s) from Node
 * @desc Remove Passive State(s) at target node.
 * Requires VisuMZ_2_BattleGridSystem!
 *
 * @arg StateIDs:arraynum
 * @text State ID(s)
 * @type state[]
 * @desc Select which State ID(s) to remove as a Passive State.
 * @default []
 *
 * @arg UseActionSelectNode:eval
 * @text Action-Selected Node?
 * @type boolean
 * @on Action-Selected
 * @off Prioritize Custom
 * @desc Use Action-Selected Node Coordinates if possible?
 * Requires "Empty" or "Any" for <Target: x Grid Node>
 * @default true
 *
 * @arg Unit:str
 * @text Unit
 * @parent UseActionSelectNode:eval
 * @type select
 * @option Actor
 * @option Enemy
 * @option Friend
 * @option Opponent
 * @desc Which unit do you want to remove the Passive State Node
 * effect for?
 * @default Actor
 *
 * @arg Rank:eval
 * @text Rank
 * @parent UseActionSelectNode:eval
 * @desc Input the number representing the Rank of the Node
 * you want to remove a Passive State(s) from.
 * @default 1
 *
 * @arg Flank:eval
 * @text Flank
 * @parent UseActionSelectNode:eval
 * @desc Input the number representing the Flank of the Node
 * you want to remove a Passive State(s) from.
 * @default 1
 * 
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Grid_RemoveTriggerFromNode
 * @text GRID: Remove Trigger from Node
 * @desc Removes Trigger from target node.
 * Requires VisuMZ_2_BattleGridSystem!
 *
 * @arg UseActionSelectNode:eval
 * @text Action-Selected Node?
 * @type boolean
 * @on Action-Selected
 * @off Prioritize Custom
 * @desc Use Action-Selected Node Coordinates if possible?
 * Requires "Empty" or "Any" for <Target: x Grid Node>
 * @default true
 *
 * @arg Unit:str
 * @text Unit
 * @parent UseActionSelectNode:eval
 * @type select
 * @option Actor
 * @option Enemy
 * @option Friend
 * @option Opponent
 * @desc Which unit do you want to clear Triggers for?
 * @default Actor
 *
 * @arg Rank:eval
 * @text Rank
 * @parent UseActionSelectNode:eval
 * @desc Input the number representing the Rank of the Node
 * you want to clear Triggers from.
 * @default 1
 *
 * @arg Flank:eval
 * @text Flank
 * @parent UseActionSelectNode:eval
 * @desc Input the number representing the Flank of the Node
 * you want to clear Triggers from.
 * @default 1
 * 
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Grid_TeleportToNode
 * @text GRID: Teleport To Node
 * @desc Teleports user/random opponent to target node.
 * Requires VisuMZ_2_BattleGridSystem!
 *
 * @arg UseActionSelectNode:eval
 * @text Action-Selected Node?
 * @type boolean
 * @on Action-Selected
 * @off Prioritize Custom
 * @desc Use Action-Selected Node Coordinates if possible?
 * Requires "Empty" or "Any" for <Target: x Grid Node>
 * @default true
 *
 * @arg Unit:str
 * @text Unit
 * @parent UseActionSelectNode:eval
 * @type select
 * @option Actor
 * @option Enemy
 * @option Friend
 * @option Opponent
 * @desc Which unit do you want to teleport to?
 * @default Actor
 *
 * @arg Rank:eval
 * @text Rank
 * @parent UseActionSelectNode:eval
 * @desc Input the number representing the Rank of the Node
 * you want to teleport to.
 * @default 1
 *
 * @arg Flank:eval
 * @text Flank
 * @parent UseActionSelectNode:eval
 * @desc Input the number representing the Flank of the Node
 * you want to teleport.
 * @default 1
 * 
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Grid_TraverseToNode
 * @text GRID: Traverse To Node
 * @desc Traverses user/random opponent to target node.
 * Requires VisuMZ_2_BattleGridSystem!
 *
 * @arg UseActionSelectNode:eval
 * @text Action-Selected Node?
 * @type boolean
 * @on Action-Selected
 * @off Prioritize Custom
 * @desc Use Action-Selected Node Coordinates if possible?
 * Requires "Empty" or "Any" for <Target: x Grid Node>
 * @default true
 *
 * @arg Unit:str
 * @text Unit
 * @parent UseActionSelectNode:eval
 * @type select
 * @option Actor
 * @option Enemy
 * @option Friend
 * @option Opponent
 * @desc Which unit do you want to traverse to?
 * @default Actor
 *
 * @arg Rank:eval
 * @text Rank
 * @parent UseActionSelectNode:eval
 * @desc Input the number representing the Rank of the Node
 * you want to traverse to.
 * @default 1
 *
 * @arg Flank:eval
 * @text Flank
 * @parent UseActionSelectNode:eval
 * @desc Input the number representing the Flank of the Node
 * you want to traverse.
 * @default 1
 *
 * @arg Duration:eval
 * @text Duration
 * @desc Input the number representing the frames used to move.
 * @default 12
 * 
 * @ --------------------------------------------------------------------------
 *
 * @command ActionSequenceSpaceHorror
 * @text -
 * @desc -
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActionSequenceBreakHorror
 * @text Action Sequences - Horror Effects
 * @desc These Action Sequences are Horror Effects-related.
 * Requires VisuMZ_2_HorrorEffects!
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Horror_Clear
 * @text HORROR: Clear All Filters
 * @desc Clear all Horror Effects filters on the target battler(s).
 * 
 * @arg Targets:arraystr
 * @text Targets
 * @type combo[]
 * @option user
 * @option current target
 * @option prev target
 * @option next target
 * @option all targets
 * @option focus
 * @option not focus
 * @option
 * @option special
 * @option special x
 * @option 
 * @option alive friends
 * @option alive friends not user
 * @option alive friends not target
 * @option dead friends
 * @option friend index x
 * @option 
 * @option alive opponents
 * @option alive opponents not target
 * @option dead opponents
 * @option opponent index x
 * @option 
 * @option alive actors
 * @option alive actors not user
 * @option alive actors not target
 * @option dead actors
 * @option actor index x
 * @option actor ID x
 * @option 
 * @option alive enemies
 * @option alive enemies not user
 * @option alive enemies not target
 * @option dead enemies
 * @option enemy index x
 * @option enemy ID x
 * @option 
 * @option alive battlers
 * @option alive battlers not user
 * @option alive battlers not target
 * @option dead battlers
 * @option 
 * @desc Select unit(s) to remove Horror Effects for.
 * @default ["user"]
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Horror_GlitchCreate
 * @text HORROR: Glitch Create
 * @desc Creates the glitch effect on the target battler(s).
 * 
 * @arg Targets:arraystr
 * @text Targets
 * @type combo[]
 * @option user
 * @option current target
 * @option prev target
 * @option next target
 * @option all targets
 * @option focus
 * @option not focus
 * @option
 * @option special
 * @option special x
 * @option 
 * @option alive friends
 * @option alive friends not user
 * @option alive friends not target
 * @option dead friends
 * @option friend index x
 * @option 
 * @option alive opponents
 * @option alive opponents not target
 * @option dead opponents
 * @option opponent index x
 * @option 
 * @option alive actors
 * @option alive actors not user
 * @option alive actors not target
 * @option dead actors
 * @option actor index x
 * @option actor ID x
 * @option 
 * @option alive enemies
 * @option alive enemies not user
 * @option alive enemies not target
 * @option dead enemies
 * @option enemy index x
 * @option enemy ID x
 * @option 
 * @option alive battlers
 * @option alive battlers not user
 * @option alive battlers not target
 * @option dead battlers
 * @option 
 * @desc Select unit(s) to create the Horror Effect for.
 * @default ["user"]
 *
 * @arg slices:num
 * @text Glitch Slices
 * @parent FilterGlitch
 * @type number
 * @min 1
 * @desc Glitch slices to be used with the target.
 * @default 10
 *
 * @arg offset:num
 * @text Glitch Offset
 * @parent FilterGlitch
 * @type number
 * @min 1
 * @desc Default offset value.
 * @default 100
 *
 * @arg animated:eval
 * @text Glitch Animated?
 * @parent FilterGlitch
 * @type boolean
 * @on Animate
 * @off Static
 * @desc Animate the glitch effect?
 * @default true
 *
 * @arg aniFrequency:num
 * @text Glitch Frequency
 * @parent FilterGlitch
 * @type number
 * @min 1
 * @desc If animated, how frequent to make the glitch effect?
 * Lower = often     Higher = rarer
 * @default 300
 *
 * @arg aniStrength:num
 * @text Glitch Strength
 * @parent FilterGlitch
 * @type number
 * @min 1
 * @desc If animated, how strong is the glitch effect?
 * Lower = weaker     Higher = stronger
 * @default 30
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Horror_GlitchRemove
 * @text HORROR: Glitch Remove
 * @desc Removes the glitch effect on the target battler(s).
 * 
 * @arg Targets:arraystr
 * @text Targets
 * @type combo[]
 * @option user
 * @option current target
 * @option prev target
 * @option next target
 * @option all targets
 * @option focus
 * @option not focus
 * @option
 * @option special
 * @option special x
 * @option 
 * @option alive friends
 * @option alive friends not user
 * @option alive friends not target
 * @option dead friends
 * @option friend index x
 * @option 
 * @option alive opponents
 * @option alive opponents not target
 * @option dead opponents
 * @option opponent index x
 * @option 
 * @option alive actors
 * @option alive actors not user
 * @option alive actors not target
 * @option dead actors
 * @option actor index x
 * @option actor ID x
 * @option 
 * @option alive enemies
 * @option alive enemies not user
 * @option alive enemies not target
 * @option dead enemies
 * @option enemy index x
 * @option enemy ID x
 * @option 
 * @option alive battlers
 * @option alive battlers not user
 * @option alive battlers not target
 * @option dead battlers
 * @option 
 * @desc Select unit(s) to remove the Horror Effect for.
 * @default ["user"]
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Horror_NoiseCreate
 * @text HORROR: Noise Create
 * @desc Creates the noise effect on the target battler(s).
 * 
 * @arg Targets:arraystr
 * @text Targets
 * @type combo[]
 * @option user
 * @option current target
 * @option prev target
 * @option next target
 * @option all targets
 * @option focus
 * @option not focus
 * @option
 * @option special
 * @option special x
 * @option 
 * @option alive friends
 * @option alive friends not user
 * @option alive friends not target
 * @option dead friends
 * @option friend index x
 * @option 
 * @option alive opponents
 * @option alive opponents not target
 * @option dead opponents
 * @option opponent index x
 * @option 
 * @option alive actors
 * @option alive actors not user
 * @option alive actors not target
 * @option dead actors
 * @option actor index x
 * @option actor ID x
 * @option 
 * @option alive enemies
 * @option alive enemies not user
 * @option alive enemies not target
 * @option dead enemies
 * @option enemy index x
 * @option enemy ID x
 * @option 
 * @option alive battlers
 * @option alive battlers not user
 * @option alive battlers not target
 * @option dead battlers
 * @option 
 * @desc Select unit(s) to create the Horror Effect for.
 * @default ["user"]
 *
 * @arg noise:num
 * @text Noise Rate
 * @parent FilterNoise
 * @desc Noise rate to be used with the target.
 * @default 0.3
 *
 * @arg animated:eval
 * @text Noise Animated
 * @parent FilterNoise
 * @type boolean
 * @on Animate
 * @off Static
 * @desc Animate the noise for the target?
 * @default true
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Horror_NoiseRemove
 * @text HORROR: Noise Remove
 * @desc Removes the noise effect on the target battler(s).
 * 
 * @arg Targets:arraystr
 * @text Targets
 * @type combo[]
 * @option user
 * @option current target
 * @option prev target
 * @option next target
 * @option all targets
 * @option focus
 * @option not focus
 * @option
 * @option special
 * @option special x
 * @option 
 * @option alive friends
 * @option alive friends not user
 * @option alive friends not target
 * @option dead friends
 * @option friend index x
 * @option 
 * @option alive opponents
 * @option alive opponents not target
 * @option dead opponents
 * @option opponent index x
 * @option 
 * @option alive actors
 * @option alive actors not user
 * @option alive actors not target
 * @option dead actors
 * @option actor index x
 * @option actor ID x
 * @option 
 * @option alive enemies
 * @option alive enemies not user
 * @option alive enemies not target
 * @option dead enemies
 * @option enemy index x
 * @option enemy ID x
 * @option 
 * @option alive battlers
 * @option alive battlers not user
 * @option alive battlers not target
 * @option dead battlers
 * @option 
 * @desc Select unit(s) to remove the Horror Effect for.
 * @default ["user"]
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Horror_TVCreate
 * @text HORROR: TV Create
 * @desc Creates the TV effect on the target battler(s).
 * 
 * @arg Targets:arraystr
 * @text Targets
 * @type combo[]
 * @option user
 * @option current target
 * @option prev target
 * @option next target
 * @option all targets
 * @option focus
 * @option not focus
 * @option
 * @option special
 * @option special x
 * @option 
 * @option alive friends
 * @option alive friends not user
 * @option alive friends not target
 * @option dead friends
 * @option friend index x
 * @option 
 * @option alive opponents
 * @option alive opponents not target
 * @option dead opponents
 * @option opponent index x
 * @option 
 * @option alive actors
 * @option alive actors not user
 * @option alive actors not target
 * @option dead actors
 * @option actor index x
 * @option actor ID x
 * @option 
 * @option alive enemies
 * @option alive enemies not user
 * @option alive enemies not target
 * @option dead enemies
 * @option enemy index x
 * @option enemy ID x
 * @option 
 * @option alive battlers
 * @option alive battlers not user
 * @option alive battlers not target
 * @option dead battlers
 * @option 
 * @desc Select unit(s) to create the Horror Effect for.
 * @default ["user"]
 *
 * @arg lineWidth:num
 * @text TV Line Thickness
 * @parent FilterTV
 * @type number
 * @min 1
 * @desc Default TV line thickness
 * Lower = thinner     Higher = thicker
 * @default 5
 *
 * @arg vignetting:num
 * @text TV Corner Size
 * @parent FilterTV
 * @desc Default TV line corner size
 * Lower = smaller     Higher = bigger
 * @default 0.3
 *
 * @arg animated:eval
 * @text TV Animated
 * @parent FilterTV
 * @type boolean
 * @on Animate
 * @off Static
 * @desc Animate the TV?
 * @default true
 *
 * @arg aniSpeed:num
 * @text TV Speed
 * @parent FilterTV
 * @desc Speed used to animate the TV if animated
 * Lower = slower     Higher = faster
 * @default 0.25
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Horror_TVRemove
 * @text HORROR: TV Remove
 * @desc Removes the TV effect on the target battler(s).
 * 
 * @arg Targets:arraystr
 * @text Targets
 * @type combo[]
 * @option user
 * @option current target
 * @option prev target
 * @option next target
 * @option all targets
 * @option focus
 * @option not focus
 * @option
 * @option special
 * @option special x
 * @option 
 * @option alive friends
 * @option alive friends not user
 * @option alive friends not target
 * @option dead friends
 * @option friend index x
 * @option 
 * @option alive opponents
 * @option alive opponents not target
 * @option dead opponents
 * @option opponent index x
 * @option 
 * @option alive actors
 * @option alive actors not user
 * @option alive actors not target
 * @option dead actors
 * @option actor index x
 * @option actor ID x
 * @option 
 * @option alive enemies
 * @option alive enemies not user
 * @option alive enemies not target
 * @option dead enemies
 * @option enemy index x
 * @option enemy ID x
 * @option 
 * @option alive battlers
 * @option alive battlers not user
 * @option alive battlers not target
 * @option dead battlers
 * @option 
 * @desc Select unit(s) to remove the Horror Effect for.
 * @default ["user"]
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActionSequenceSpaceImpact
 * @text -
 * @desc -
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActionSequenceBreakImpact
 * @text Action Sequences - Impact
 * @desc These Action Sequences are related to creating impact.
 * Requires VisuMZ_3_ActSeqImpact!
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Impact_BlueRedInvert
 * @text IMPACT: Bizarro Inversion
 * @desc Swaps blue/red colors on the battlefield.
 * Requires VisuMZ_3_ActSeqImpact!
 *
 * @arg Enable:eval
 * @text Bizarro?
 * @type boolean
 * @on Enable / Bizarro
 * @off Disable / Normal
 * @desc Enable Bizarro Inversion effect?
 * @default true
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Impact_ColorBreak
 * @text IMPACT: Color Break
 * @desc Breaks the colors on the screen before reassembling.
 * Requires VisuMZ_3_ActSeqImpact!
 * 
 * @arg Intensity:eval
 * @text Intensity
 * @desc What is the intensity of the color break effect?
 * @default 60
 * 
 * @arg Duration:eval
 * @text Duration
 * @desc What is the duration of the color break effect?
 * @default 60
 *
 * @arg EasingType:str
 * @text Easing Type
 * @type combo
 * @option Linear
 * @option InSine
 * @option OutSine
 * @option InOutSine
 * @option InQuad
 * @option OutQuad
 * @option InOutQuad
 * @option InCubic
 * @option OutCubic
 * @option InOutCubic
 * @option InQuart
 * @option OutQuart
 * @option InOutQuart
 * @option InQuint
 * @option OutQuint
 * @option InOutQuint
 * @option InExpo
 * @option OutExpo
 * @option InOutExpo
 * @option InCirc
 * @option OutCirc
 * @option InOutCirc
 * @option InBack
 * @option OutBack
 * @option InOutBack
 * @option InElastic
 * @option OutElastic
 * @option InOutElastic
 * @option InBounce
 * @option OutBounce
 * @option InOutBounce
 * @desc Select which easing type you wish to apply.
 * @default OutBack
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Impact_Desaturate
 * @text IMPACT: Desaturation
 * @desc Desaturates all colors on the battlefield.
 * Requires VisuMZ_3_ActSeqImpact! Created by Manu Gaming!
 *
 * @arg Enable:eval
 * @text Desaturate?
 * @type boolean
 * @on Enable / Desaturate
 * @off Disable / Normal
 * @desc Enable Desaturation effect?
 * @default true
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Impact_MotionBlurScreen
 * @text IMPACT: Motion Blur Screen
 * @desc Creates a motion blur on the whole screen.
 * Requires VisuMZ_3_ActSeqImpact!
 *
 * @arg Angle:eval
 * @text Angle
 * @desc Determine what angle to make the motion blur at.
 * @default Math.randomInt(360)
 *
 * @arg Rate:eval
 * @text Intensity Rate
 * @desc This determines intensity rate of the motion blur.
 * Use a number between 0 and 1.
 * @default 0.1
 *
 * @arg Duration:num
 * @text Duration
 * @type number
 * @min 1
 * @desc How many frames should the motion blur last?
 * What do you want to be its duration?
 * @default 30
 *
 * @arg EasingType:str
 * @text Easing Type
 * @type combo
 * @option Linear
 * @option InSine
 * @option OutSine
 * @option InOutSine
 * @option InQuad
 * @option OutQuad
 * @option InOutQuad
 * @option InCubic
 * @option OutCubic
 * @option InOutCubic
 * @option InQuart
 * @option OutQuart
 * @option InOutQuart
 * @option InQuint
 * @option OutQuint
 * @option InOutQuint
 * @option InExpo
 * @option OutExpo
 * @option InOutExpo
 * @option InCirc
 * @option OutCirc
 * @option InOutCirc
 * @option InBack
 * @option OutBack
 * @option InOutBack
 * @option InElastic
 * @option OutElastic
 * @option InOutElastic
 * @option InBounce
 * @option OutBounce
 * @option InOutBounce
 * @desc Select which easing type you wish to apply.
 * @default InOutSine
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Impact_MotionBlurTarget
 * @text IMPACT: Motion Blur Target(s)
 * @desc Creates a motion blur on selected target(s).
 * Requires VisuMZ_3_ActSeqImpact!
 * 
 * @arg Targets:arraystr
 * @text Targets
 * @type combo[]
 * @option user
 * @option current target
 * @option prev target
 * @option next target
 * @option all targets
 * @option focus
 * @option not focus
 * @option
 * @option special
 * @option special x
 * @option 
 * @option alive friends
 * @option alive friends not user
 * @option alive friends not target
 * @option dead friends
 * @option friend index x
 * @option 
 * @option alive opponents
 * @option alive opponents not target
 * @option dead opponents
 * @option opponent index x
 * @option 
 * @option alive actors
 * @option alive actors not user
 * @option alive actors not target
 * @option dead actors
 * @option actor index x
 * @option actor ID x
 * @option 
 * @option alive enemies
 * @option alive enemies not user
 * @option alive enemies not target
 * @option dead enemies
 * @option enemy index x
 * @option enemy ID x
 * @option 
 * @option alive battlers
 * @option alive battlers not user
 * @option alive battlers not target
 * @option dead battlers
 * @option 
 * @desc Select unit(s) to create motion blur effects for.
 * @default ["user"]
 *
 * @arg Angle:eval
 * @text Angle
 * @desc Determine what angle to make the motion blur at.
 * @default Math.randomInt(360)
 *
 * @arg Rate:eval
 * @text Intensity Rate
 * @desc This determines intensity rate of the motion blur.
 * Use a number between 0 and 1.
 * @default 0.5
 *
 * @arg Duration:num
 * @text Duration
 * @type number
 * @min 1
 * @desc How many frames should the motion blur last?
 * What do you want to be its duration?
 * @default 30
 *
 * @arg EasingType:str
 * @text Easing Type
 * @type combo
 * @option Linear
 * @option InSine
 * @option OutSine
 * @option InOutSine
 * @option InQuad
 * @option OutQuad
 * @option InOutQuad
 * @option InCubic
 * @option OutCubic
 * @option InOutCubic
 * @option InQuart
 * @option OutQuart
 * @option InOutQuart
 * @option InQuint
 * @option OutQuint
 * @option InOutQuint
 * @option InExpo
 * @option OutExpo
 * @option InOutExpo
 * @option InCirc
 * @option OutCirc
 * @option InOutCirc
 * @option InBack
 * @option OutBack
 * @option InOutBack
 * @option InElastic
 * @option OutElastic
 * @option InOutElastic
 * @option InBounce
 * @option OutBounce
 * @option InOutBounce
 * @desc Select which easing type you wish to apply.
 * @default InOutSine
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Impact_MotionTrailCreate
 * @text IMPACT: Motion Trail Create
 * @desc Creates a motion trail effect for the target(s).
 * Requires VisuMZ_3_ActSeqImpact!
 * 
 * @arg Targets:arraystr
 * @text Targets
 * @type combo[]
 * @option user
 * @option current target
 * @option prev target
 * @option next target
 * @option all targets
 * @option focus
 * @option not focus
 * @option
 * @option special
 * @option special x
 * @option 
 * @option alive friends
 * @option alive friends not user
 * @option alive friends not target
 * @option dead friends
 * @option friend index x
 * @option 
 * @option alive opponents
 * @option alive opponents not target
 * @option dead opponents
 * @option opponent index x
 * @option 
 * @option alive actors
 * @option alive actors not user
 * @option alive actors not target
 * @option dead actors
 * @option actor index x
 * @option actor ID x
 * @option 
 * @option alive enemies
 * @option alive enemies not user
 * @option alive enemies not target
 * @option dead enemies
 * @option enemy index x
 * @option enemy ID x
 * @option 
 * @option alive battlers
 * @option alive battlers not user
 * @option alive battlers not target
 * @option dead battlers
 * @option 
 * @desc Select unit(s) to create motion trail effects for.
 * @default ["user"]
 *
 * @arg delay:num
 * @text Delay
 * @type number
 * @min 1
 * @desc How many frames to delay by when creating a motion trail?
 * The higher the delay, the less after images there are.
 * @default 1
 *
 * @arg duration:num
 * @text Duration
 * @type number
 * @min 1
 * @desc How many frames should the motion trail last?
 * What do you want to be its duration?
 * @default 30
 *
 * @arg hue:num
 * @text Hue
 * @type number
 * @min 0
 * @max 360
 * @desc What do you want to be the hue for the motion trail?
 * @default 0
 *
 * @arg opacityStart:num
 * @text Starting Opacity
 * @type number
 * @min 0
 * @max 255
 * @desc What starting opacity value do you want for the motion
 * trail? Opacity values decrease over time.
 * @default 200
 *
 * @arg tone:eval
 * @text Tone
 * @desc What tone do you want for the motion trail?
 * Format: [Red, Green, Blue, Gray]
 * @default [0, 0, 0, 0]
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Impact_MotionTrailRemove
 * @text IMPACT: Motion Trail Remove
 * @desc Removes the motion trail effect from the target(s).
 * Requires VisuMZ_3_ActSeqImpact!
 * 
 * @arg Targets:arraystr
 * @text Targets
 * @type combo[]
 * @option user
 * @option current target
 * @option prev target
 * @option next target
 * @option all targets
 * @option focus
 * @option not focus
 * @option
 * @option special
 * @option special x
 * @option 
 * @option alive friends
 * @option alive friends not user
 * @option alive friends not target
 * @option dead friends
 * @option friend index x
 * @option 
 * @option alive opponents
 * @option alive opponents not target
 * @option dead opponents
 * @option opponent index x
 * @option 
 * @option alive actors
 * @option alive actors not user
 * @option alive actors not target
 * @option dead actors
 * @option actor index x
 * @option actor ID x
 * @option 
 * @option alive enemies
 * @option alive enemies not user
 * @option alive enemies not target
 * @option dead enemies
 * @option enemy index x
 * @option enemy ID x
 * @option 
 * @option alive battlers
 * @option alive battlers not user
 * @option alive battlers not target
 * @option dead battlers
 * @option 
 * @desc Select unit(s) to clear motion trail effects for.
 * @default ["user"]
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Impact_Negative
 * @text IMPACT: Negative Inversion
 * @desc Inverts all the colors on the battlefield.
 * Requires VisuMZ_3_ActSeqImpact! Created by Manu Gaming!
 *
 * @arg Enable:eval
 * @text Negative?
 * @type boolean
 * @on Enable / Negative
 * @off Disable / Normal
 * @desc Enable negative inversion effect?
 * @default true
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Impact_Oversaturate
 * @text IMPACT: Oversaturation
 * @desc Oversaturates colors on the battlefield.
 * Requires VisuMZ_3_ActSeqImpact!
 *
 * @arg Enable:eval
 * @text Oversaturate?
 * @type boolean
 * @on Enable / Oversaturate
 * @off Disable / Normal
 * @desc Enable Oversaturation effect?
 * @default true
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Impact_ShockwavePoint
 * @text IMPACT: Shockwave at Point
 * @desc Creates a shockwave at the designated coordinates.
 * Requires VisuMZ_3_ActSeqImpact!
 * 
 * @arg Coordinates
 * 
 * @arg X:eval
 * @text Point: X
 * @parent Coordinates
 * @desc What x coordinate do you want to create a shockwave at?
 * You can use JavaScript code.
 * @default Graphics.width / 2
 * 
 * @arg Y:eval
 * @text Point: Y
 * @parent Coordinates
 * @desc What y coordinate do you want to create a shockwave at?
 * You can use JavaScript code.
 * @default (Graphics.height - 200) / 2
 * 
 * @arg Amp:eval
 * @text Amplitude
 * @desc What is the aplitude of the shockwave effect?
 * @default 30
 * 
 * @arg Wave:eval
 * @text Wavelength
 * @desc What is the wavelength of the shockwave effect?
 * @default 160
 * 
 * @arg Duration:eval
 * @text Duration
 * @desc What is the duration of the shockwave?
 * @default 60
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Impact_ShockwaveEachTargets
 * @text IMPACT: Shockwave from Each Target(s)
 * @desc Creates a shockwave at each of the target(s) location(s).
 * Requires VisuMZ_3_ActSeqImpact!
 * 
 * @arg Targets:arraystr
 * @text Targets
 * @type combo[]
 * @option user
 * @option current target
 * @option prev target
 * @option next target
 * @option all targets
 * @option focus
 * @option not focus
 * @option
 * @option special
 * @option special x
 * @option 
 * @option alive friends
 * @option alive friends not user
 * @option alive friends not target
 * @option dead friends
 * @option friend index x
 * @option 
 * @option alive opponents
 * @option alive opponents not target
 * @option dead opponents
 * @option opponent index x
 * @option 
 * @option alive actors
 * @option alive actors not user
 * @option alive actors not target
 * @option dead actors
 * @option actor index x
 * @option actor ID x
 * @option 
 * @option alive enemies
 * @option alive enemies not user
 * @option alive enemies not target
 * @option dead enemies
 * @option enemy index x
 * @option enemy ID x
 * @option 
 * @option alive battlers
 * @option alive battlers not user
 * @option alive battlers not target
 * @option dead battlers
 * @option 
 * @desc Select unit(s) to start a shockwave from.
 * @default ["all targets"]
 * 
 * @arg TargetLocation:str
 * @text Target Location
 * @parent Targets2:arraystr
 * @type combo
 * @option front head
 * @option front center
 * @option front base
 * @option middle head
 * @option middle center
 * @option middle base
 * @option back head
 * @option back center
 * @option back base
 * @desc Select which part target group to start a shockwave from.
 * @default middle center
 * 
 * @arg OffsetX:eval
 * @text Offset X
 * @parent TargetLocation:str
 * @desc How much to offset the shockwave X point by.
 * Negative: left. Positive: right.
 * @default +0
 * 
 * @arg OffsetY:eval
 * @text Offset Y
 * @parent TargetLocation:str
 * @desc How much to offset the shockwave Y point by.
 * Negative: up. Positive: down.
 * @default +0
 * 
 * @arg Amp:eval
 * @text Amplitude
 * @desc What is the aplitude of the shockwave effect?
 * @default 30
 * 
 * @arg Wave:eval
 * @text Wavelength
 * @desc What is the wavelength of the shockwave effect?
 * @default 160
 * 
 * @arg Duration:eval
 * @text Duration
 * @desc What is the duration of the shockwave?
 * @default 60
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Impact_ShockwaveCenterTargets
 * @text IMPACT: Shockwave from Target(s) Center
 * @desc Creates a shockwave from the center of the target(s).
 * Requires VisuMZ_3_ActSeqImpact!
 * 
 * @arg Targets:arraystr
 * @text Targets
 * @type combo[]
 * @option user
 * @option current target
 * @option prev target
 * @option next target
 * @option all targets
 * @option focus
 * @option not focus
 * @option
 * @option special
 * @option special x
 * @option 
 * @option alive friends
 * @option alive friends not user
 * @option alive friends not target
 * @option dead friends
 * @option friend index x
 * @option 
 * @option alive opponents
 * @option alive opponents not target
 * @option dead opponents
 * @option opponent index x
 * @option 
 * @option alive actors
 * @option alive actors not user
 * @option alive actors not target
 * @option dead actors
 * @option actor index x
 * @option actor ID x
 * @option 
 * @option alive enemies
 * @option alive enemies not user
 * @option alive enemies not target
 * @option dead enemies
 * @option enemy index x
 * @option enemy ID x
 * @option 
 * @option alive battlers
 * @option alive battlers not user
 * @option alive battlers not target
 * @option dead battlers
 * @option 
 * @desc Select unit(s) to start a shockwave from.
 * @default ["all targets"]
 * 
 * @arg TargetLocation:str
 * @text Target Location
 * @parent Targets2:arraystr
 * @type combo
 * @option front head
 * @option front center
 * @option front base
 * @option middle head
 * @option middle center
 * @option middle base
 * @option back head
 * @option back center
 * @option back base
 * @desc Select which part target group to start a shockwave from.
 * @default middle center
 * 
 * @arg OffsetX:eval
 * @text Offset X
 * @parent TargetLocation:str
 * @desc How much to offset the shockwave X point by.
 * Negative: left. Positive: right.
 * @default +0
 * 
 * @arg OffsetY:eval
 * @text Offset Y
 * @parent TargetLocation:str
 * @desc How much to offset the shockwave Y point by.
 * Negative: up. Positive: down.
 * @default +0
 * 
 * @arg Amp:eval
 * @text Amplitude
 * @desc What is the aplitude of the shockwave effect?
 * @default 30
 * 
 * @arg Wave:eval
 * @text Wavelength
 * @desc What is the wavelength of the shockwave effect?
 * @default 160
 * 
 * @arg Duration:eval
 * @text Duration
 * @desc What is the duration of the shockwave?
 * @default 60
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Impact_TimeScale
 * @text IMPACT: Time Scale
 * @desc Adjust time to go faster or slower!
 * Requires VisuMZ_3_ActSeqImpact! Created by Manu Gaming!
 * 
 * @arg Scale:eval
 * @text Scale
 * @desc Adjusts how fast/slow time goes.
 * 1.00 is normal. Lower is slower. Higher is faster.
 * @default 1.00
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Impact_TimeStop
 * @text IMPACT: Time Stop
 * @desc Stops time for a set amount of milliseconds.
 * Requires VisuMZ_3_ActSeqImpact! Created by Manu Gaming!
 * 
 * @arg ms:eval
 * @text Milliseconds
 * @desc How many milliseconds should time stop for?
 * 1000 milliseconds = 1 second.
 * @default 1000
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Impact_ZoomBlurPoint
 * @text IMPACT: Zoom Blur at Point
 * @desc Creates a zoom blur at the designated coordinates.
 * Requires VisuMZ_3_ActSeqImpact!
 * 
 * @arg Coordinates
 * 
 * @arg X:eval
 * @text Point: X
 * @parent Coordinates
 * @desc What x coordinate do you want to focus the zoom at?
 * You can use JavaScript code.
 * @default Graphics.width / 2
 * 
 * @arg Y:eval
 * @text Point: Y
 * @parent Coordinates
 * @desc What y coordinate do you want to focus the zoom at?
 * You can use JavaScript code.
 * @default (Graphics.height - 200) / 2
 * 
 * @arg Strength:eval
 * @text Zoom Strength
 * @desc What is the strength of the zoom effect?
 * Use a number between 0 and 1.
 * @default 0.5
 * 
 * @arg Radius:eval
 * @text Visible Radius
 * @desc How much of a radius should be visible from the center?
 * @default 0
 * 
 * @arg Duration:eval
 * @text Duration
 * @desc What is the duration of the zoom blur?
 * @default 60
 *
 * @arg EasingType:str
 * @text Easing Type
 * @type combo
 * @option Linear
 * @option InSine
 * @option OutSine
 * @option InOutSine
 * @option InQuad
 * @option OutQuad
 * @option InOutQuad
 * @option InCubic
 * @option OutCubic
 * @option InOutCubic
 * @option InQuart
 * @option OutQuart
 * @option InOutQuart
 * @option InQuint
 * @option OutQuint
 * @option InOutQuint
 * @option InExpo
 * @option OutExpo
 * @option InOutExpo
 * @option InCirc
 * @option OutCirc
 * @option InOutCirc
 * @option InBack
 * @option OutBack
 * @option InOutBack
 * @option InElastic
 * @option OutElastic
 * @option InOutElastic
 * @option InBounce
 * @option OutBounce
 * @option InOutBounce
 * @desc Select which easing type you wish to apply.
 * @default OutSine
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Impact_ZoomBlurTargetCenter
 * @text IMPACT: Zoom Blur at Target(s) Center
 * @desc Creates a zoom blur at the center of targets.
 * Requires VisuMZ_3_ActSeqImpact!
 * 
 * @arg Targets:arraystr
 * @text Targets
 * @type combo[]
 * @option user
 * @option current target
 * @option prev target
 * @option next target
 * @option all targets
 * @option focus
 * @option not focus
 * @option
 * @option special
 * @option special x
 * @option 
 * @option alive friends
 * @option alive friends not user
 * @option alive friends not target
 * @option dead friends
 * @option friend index x
 * @option 
 * @option alive opponents
 * @option alive opponents not target
 * @option dead opponents
 * @option opponent index x
 * @option 
 * @option alive actors
 * @option alive actors not user
 * @option alive actors not target
 * @option dead actors
 * @option actor index x
 * @option actor ID x
 * @option 
 * @option alive enemies
 * @option alive enemies not user
 * @option alive enemies not target
 * @option dead enemies
 * @option enemy index x
 * @option enemy ID x
 * @option 
 * @option alive battlers
 * @option alive battlers not user
 * @option alive battlers not target
 * @option dead battlers
 * @option 
 * @desc Select unit(s) to start a zoom blur from.
 * @default ["user"]
 * 
 * @arg TargetLocation:str
 * @text Target Location
 * @parent Targets2:arraystr
 * @type combo
 * @option front head
 * @option front center
 * @option front base
 * @option middle head
 * @option middle center
 * @option middle base
 * @option back head
 * @option back center
 * @option back base
 * @desc Select which part target group to start a zoom blur from.
 * @default middle center
 * 
 * @arg OffsetX:eval
 * @text Offset X
 * @parent TargetLocation:str
 * @desc How much to offset the zoom blur X point by.
 * Negative: left. Positive: right.
 * @default +0
 * 
 * @arg OffsetY:eval
 * @text Offset Y
 * @parent TargetLocation:str
 * @desc How much to offset the zoom blur Y point by.
 * Negative: up. Positive: down.
 * @default +0
 * 
 * @arg Strength:eval
 * @text Zoom Strength
 * @desc What is the strength of the zoom effect?
 * Use a number between 0 and 1.
 * @default 0.5
 * 
 * @arg Radius:eval
 * @text Visible Radius
 * @desc How much of a radius should be visible from the center?
 * @default 0
 * 
 * @arg Duration:eval
 * @text Duration
 * @desc What is the duration of the zoom blur?
 * @default 60
 *
 * @arg EasingType:str
 * @text Easing Type
 * @type combo
 * @option Linear
 * @option InSine
 * @option OutSine
 * @option InOutSine
 * @option InQuad
 * @option OutQuad
 * @option InOutQuad
 * @option InCubic
 * @option OutCubic
 * @option InOutCubic
 * @option InQuart
 * @option OutQuart
 * @option InOutQuart
 * @option InQuint
 * @option OutQuint
 * @option InOutQuint
 * @option InExpo
 * @option OutExpo
 * @option InOutExpo
 * @option InCirc
 * @option OutCirc
 * @option InOutCirc
 * @option InBack
 * @option OutBack
 * @option InOutBack
 * @option InElastic
 * @option OutElastic
 * @option InOutElastic
 * @option InBounce
 * @option OutBounce
 * @option InOutBounce
 * @desc Select which easing type you wish to apply.
 * @default OutSine
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActionSequenceSpaceInject
 * @text -
 * @desc -
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActionSequenceBreakInject
 * @text Action Sequences - Inject
 * @desc These Action Sequences are related to injected animations.
 * Requires VisuMZ_3_ActSeqImpact!
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Inject_AnimationStart
 * @text INJECT: Animation Begin
 * @desc Injects and plays a whole spritesheet animation.
 * Requires VisuMZ_3_ActSeqImpact!
 * 
 * @arg Targets:arraystr
 * @text Targets
 * @type combo[]
 * @option user
 * @option current target
 * @option prev target
 * @option next target
 * @option all targets
 * @option focus
 * @option not focus
 * @option
 * @option special
 * @option special x
 * @option 
 * @option alive friends
 * @option alive friends not user
 * @option alive friends not target
 * @option dead friends
 * @option friend index x
 * @option 
 * @option alive opponents
 * @option alive opponents not target
 * @option dead opponents
 * @option opponent index x
 * @option 
 * @option alive actors
 * @option alive actors not user
 * @option alive actors not target
 * @option dead actors
 * @option actor index x
 * @option actor ID x
 * @option 
 * @option alive enemies
 * @option alive enemies not user
 * @option alive enemies not target
 * @option dead enemies
 * @option enemy index x
 * @option enemy ID x
 * @option 
 * @option alive battlers
 * @option alive battlers not user
 * @option alive battlers not target
 * @option dead battlers
 * @option 
 * @desc Select unit(s) to inject the animation on.
 * @default ["user"]
 * 
 * @arg Filename:str
 * @text Filename
 * @type file
 * @dir img/sv_actors/
 * @desc Select the animation spritesheet file.
 * Located in the /img/sv_actors/ folder.
 * @default Untitled
 *
 * @arg horzCells:num
 * @text Horizontal Cells
 * @parent Filename:str
 * @type number
 * @min 1
 * @desc How many horizontal cells (or columns) are there?
 * @default 1
 *
 * @arg vertCells:num
 * @text Vertical Cells
 * @parent Filename:str
 * @type number
 * @min 1
 * @desc How many vertical cells (or rows) are there?
 * @default 1
 *
 * @arg frameDelay:num
 * @text Frame Delay
 * @parent Filename:str
 * @type number
 * @min 1
 * @desc How many frames are played inbetween cells?
 * @default 1
 *
 * @arg smooth:eval
 * @text Smooth Bitmap?
 * @parent Filename:str
 * @type boolean
 * @on Smooth
 * @off Pixelated
 * @desc Smooth the spritesheet graphic?
 * @default false
 * 
 * @arg Offset
 *
 * @arg offsetX:eval
 * @text Offset X
 * @parent Offset
 * @desc Offsets the X position of the injected animation.
 * Negative: left. Positive: right.
 * @default +0
 *
 * @arg offsetY:eval
 * @text Offset Y
 * @parent Offset
 * @desc Offsets the Y position of the injected animation.
 * Negative: up. Positive: down.
 * @default +0
 * 
 * 
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Inject_AnimationEnd
 * @text INJECT: Animation End
 * @desc Stops and ends any injected animations on target(s).
 * Requires VisuMZ_3_ActSeqImpact!
 * 
 * @arg Targets:arraystr
 * @text Targets
 * @type combo[]
 * @option user
 * @option current target
 * @option prev target
 * @option next target
 * @option all targets
 * @option focus
 * @option not focus
 * @option
 * @option special
 * @option special x
 * @option 
 * @option alive friends
 * @option alive friends not user
 * @option alive friends not target
 * @option dead friends
 * @option friend index x
 * @option 
 * @option alive opponents
 * @option alive opponents not target
 * @option dead opponents
 * @option opponent index x
 * @option 
 * @option alive actors
 * @option alive actors not user
 * @option alive actors not target
 * @option dead actors
 * @option actor index x
 * @option actor ID x
 * @option 
 * @option alive enemies
 * @option alive enemies not user
 * @option alive enemies not target
 * @option dead enemies
 * @option enemy index x
 * @option enemy ID x
 * @option 
 * @option alive battlers
 * @option alive battlers not user
 * @option alive battlers not target
 * @option dead battlers
 * @option 
 * @desc Select unit(s) to stop injected animation(s).
 * @default ["user"]
 * 
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Inject_AnimationPauseResume
 * @text INJECT: Animation Pause/Resume
 * @desc Pauses/resumes any injected animations on target(s).
 * Requires VisuMZ_3_ActSeqImpact!
 * 
 * @arg Targets:arraystr
 * @text Targets
 * @type combo[]
 * @option user
 * @option current target
 * @option prev target
 * @option next target
 * @option all targets
 * @option focus
 * @option not focus
 * @option
 * @option special
 * @option special x
 * @option 
 * @option alive friends
 * @option alive friends not user
 * @option alive friends not target
 * @option dead friends
 * @option friend index x
 * @option 
 * @option alive opponents
 * @option alive opponents not target
 * @option dead opponents
 * @option opponent index x
 * @option 
 * @option alive actors
 * @option alive actors not user
 * @option alive actors not target
 * @option dead actors
 * @option actor index x
 * @option actor ID x
 * @option 
 * @option alive enemies
 * @option alive enemies not user
 * @option alive enemies not target
 * @option dead enemies
 * @option enemy index x
 * @option enemy ID x
 * @option 
 * @option alive battlers
 * @option alive battlers not user
 * @option alive battlers not target
 * @option dead battlers
 * @option 
 * @desc Select unit(s) to pause injected animation(s).
 * @default ["user"]
 *
 * @arg pause:eval
 * @text Pause?
 * @parent Filename:str
 * @type boolean
 * @on Pause
 * @off Resume
 * @desc Pause the injected animation?
 * @default true
 * 
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Inject_WaitForInjectAni
 * @text INJECT: Wait For Injected Animation
 * @desc Waits for injected animations to complete before performing
 * next command. Requires VisuMZ_3_ActSeqImpact!
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActionSequenceSpaceMechanics
 * @text -
 * @desc -
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActionSequenceBreakMechanics
 * @text Action Sequences - Mechanics
 * @desc These Action Sequences are related to various mechanics
 * related to the battle system.
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Mechanics_ActionEffect
 * @text MECH: Action Effect
 * @desc Causes the unit(s) to take damage/healing from action and
 * incurs any changes made such as buffs and states.
 * 
 * @arg Targets:arraystr
 * @text Targets
 * @type combo[]
 * @option user
 * @option current target
 * @option prev target
 * @option next target
 * @option all targets
 * @option focus
 * @option not focus
 * @option
 * @option special
 * @option special x
 * @option 
 * @option alive friends
 * @option alive friends not user
 * @option alive friends not target
 * @option dead friends
 * @option friend index x
 * @option 
 * @option alive opponents
 * @option alive opponents not target
 * @option dead opponents
 * @option opponent index x
 * @option 
 * @option alive actors
 * @option alive actors not user
 * @option alive actors not target
 * @option dead actors
 * @option actor index x
 * @option actor ID x
 * @option 
 * @option alive enemies
 * @option alive enemies not user
 * @option alive enemies not target
 * @option dead enemies
 * @option enemy index x
 * @option enemy ID x
 * @option 
 * @option alive battlers
 * @option alive battlers not user
 * @option alive battlers not target
 * @option dead battlers
 * @option 
 * @desc Select unit(s) to receive the current action's effects.
 * @default ["all targets"]
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Mechanics_ActiveChainInputDisable
 * @text MECH: Active Chain Input Disable
 * @desc Disables input for Active Chain Skills at this time.
 * Requires VisuMZ_3_ActiveChainSkills!
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Mechanics_AddBuffDebuff
 * @text MECH: Add Buff/Debuff
 * @desc Adds buff(s)/debuff(s) to unit(s). 
 * Determine which parameters are affected and their durations.
 * 
 * @arg Targets:arraystr
 * @text Targets
 * @type combo[]
 * @option user
 * @option current target
 * @option prev target
 * @option next target
 * @option all targets
 * @option focus
 * @option not focus
 * @option
 * @option special
 * @option special x
 * @option 
 * @option alive friends
 * @option alive friends not user
 * @option alive friends not target
 * @option dead friends
 * @option friend index x
 * @option 
 * @option alive opponents
 * @option alive opponents not target
 * @option dead opponents
 * @option opponent index x
 * @option 
 * @option alive actors
 * @option alive actors not user
 * @option alive actors not target
 * @option dead actors
 * @option actor index x
 * @option actor ID x
 * @option 
 * @option alive enemies
 * @option alive enemies not user
 * @option alive enemies not target
 * @option dead enemies
 * @option enemy index x
 * @option enemy ID x
 * @option 
 * @option alive battlers
 * @option alive battlers not user
 * @option alive battlers not target
 * @option dead battlers
 * @option 
 * @desc Select unit(s) to receive the buff(s) and/or debuff(s).
 * @default ["user"]
 * 
 * @arg Buffs:arraystr
 * @text Buff Parameters
 * @type combo[]
 * @option MaxHP
 * @option MaxMP
 * @option ATK
 * @option DEF
 * @option MAT
 * @option MDF
 * @option AGI
 * @option LUK
 * @desc Select which parameter(s) to buff.
 * Insert a parameter multiple times to raise its stacks.
 * @default ["ATK"]
 *
 * @arg Debuffs:arraystr
 * @text Debuff Parameters
 * @type combo[]
 * @option MaxHP
 * @option MaxMP
 * @option ATK
 * @option DEF
 * @option MAT
 * @option MDF
 * @option AGI
 * @option LUK
 * @desc Select which parameter(s) to debuff.
 * Insert a parameter multiple times to raise its stacks.
 * @default ["DEF"]
 * 
 * @arg Turns:eval
 * @text Turns
 * @desc Number of turns to set the parameter(s) buffs to.
 * You may use JavaScript code.
 * @default 5
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Mechanics_AddState
 * @text MECH: Add State
 * @desc Adds state(s) to unit(s).
 * 
 * @arg Targets:arraystr
 * @text Targets
 * @type combo[]
 * @option user
 * @option current target
 * @option prev target
 * @option next target
 * @option all targets
 * @option focus
 * @option not focus
 * @option
 * @option special
 * @option special x
 * @option 
 * @option alive friends
 * @option alive friends not user
 * @option alive friends not target
 * @option dead friends
 * @option friend index x
 * @option 
 * @option alive opponents
 * @option alive opponents not target
 * @option dead opponents
 * @option opponent index x
 * @option 
 * @option alive actors
 * @option alive actors not user
 * @option alive actors not target
 * @option dead actors
 * @option actor index x
 * @option actor ID x
 * @option 
 * @option alive enemies
 * @option alive enemies not user
 * @option alive enemies not target
 * @option dead enemies
 * @option enemy index x
 * @option enemy ID x
 * @option 
 * @option alive battlers
 * @option alive battlers not user
 * @option alive battlers not target
 * @option dead battlers
 * @option 
 * @desc Select unit(s) to receive the buff(s).
 * @default ["user"]
 * 
 * @arg States:arraynum
 * @text States
 * @type state[]
 * @desc Select which state ID(s) to add to unit(s).
 * Insert multiple state ID's to add multiple at once.
 * @default ["4"]
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Mechanics_AnalyzeWeakness
 * @text MECH: Analyze Weakness
 * @desc Reveal elemental weakness(es) from target(s).
 * Requires VisuMZ_3_WeaknessDisplay!
 * 
 * @arg Targets:arraystr
 * @text Targets
 * @type combo[]
 * @option user
 * @option current target
 * @option prev target
 * @option next target
 * @option all targets
 * @option focus
 * @option not focus
 * @option
 * @option special
 * @option special x
 * @option 
 * @option alive friends
 * @option alive friends not user
 * @option alive friends not target
 * @option dead friends
 * @option friend index x
 * @option 
 * @option alive opponents
 * @option alive opponents not target
 * @option dead opponents
 * @option opponent index x
 * @option 
 * @option alive actors
 * @option alive actors not user
 * @option alive actors not target
 * @option dead actors
 * @option actor index x
 * @option actor ID x
 * @option 
 * @option alive enemies
 * @option alive enemies not user
 * @option alive enemies not target
 * @option dead enemies
 * @option enemy index x
 * @option enemy ID x
 * @option 
 * @option alive battlers
 * @option alive battlers not user
 * @option alive battlers not target
 * @option dead battlers
 * @option 
 * @desc Select unit(s) to reveal elemental weaknesses for.
 * @default ["all targets"]
 * 
 * @arg Reveal:eval
 * @text Reveal
 * @desc How many elemental weaknesses do you wish to reveal?
 * You may use JavaScript code.
 * @default 1
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Mechanics_ArmorPenetration
 * @text MECH: Armor Penetration
 * @desc Adds an extra layer of defensive penetration/reduction.
 * You may use JavaScript code for any of these.
 *
 * @arg ArmorPenetration
 * @text Armor/Magic Penetration
 * 
 * @arg ArPenRate:eval
 * @text Rate
 * @parent ArmorPenetration
 * @desc Penetrates an extra multiplier of armor by this value.
 * @default 0.00
 * 
 * @arg ArPenFlat:eval
 * @text Flat
 * @parent ArmorPenetration
 * @desc Penetrates a flat amount of armor by this value.
 * @default 0
 *
 * @arg ArmorReduction
 * @text Armor/Magic Reduction
 * 
 * @arg ArRedRate:eval
 * @text Rate
 * @parent ArmorReduction
 * @desc Reduces an extra multiplier of armor by this value.
 * @default 0.00
 * 
 * @arg ArRedFlat:eval
 * @text Flat
 * @parent ArmorReduction
 * @desc Reduces a flat amount of armor by this value.
 * @default 0
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Mechanics_AtbGauge
 * @text MECH: ATB Gauge
 * @desc Alters the ATB/TPB Gauges.
 * Requires VisuMZ_2_BattleSystemATB!
 * 
 * @arg Targets:arraystr
 * @text Targets
 * @type combo[]
 * @option user
 * @option current target
 * @option prev target
 * @option next target
 * @option all targets
 * @option focus
 * @option not focus
 * @option
 * @option special
 * @option special x
 * @option 
 * @option alive friends
 * @option alive friends not user
 * @option alive friends not target
 * @option dead friends
 * @option friend index x
 * @option 
 * @option alive opponents
 * @option alive opponents not target
 * @option dead opponents
 * @option opponent index x
 * @option 
 * @option alive actors
 * @option alive actors not user
 * @option alive actors not target
 * @option dead actors
 * @option actor index x
 * @option actor ID x
 * @option 
 * @option alive enemies
 * @option alive enemies not user
 * @option alive enemies not target
 * @option dead enemies
 * @option enemy index x
 * @option enemy ID x
 * @option 
 * @option alive battlers
 * @option alive battlers not user
 * @option alive battlers not target
 * @option dead battlers
 * @option 
 * @desc Select unit(s) to alter the ATB/TPB Gauges for.
 * @default ["all targets"]
 *
 * @arg Charging
 * 
 * @arg ChargeRate:eval
 * @text Charge Rate
 * @parent Charging
 * @desc Changes made to the ATB Gauge if it is currently charging.
 * @default -0.00
 * 
 * @arg Casting
 * 
 * @arg CastRate:eval
 * @text Cast Rate
 * @parent Casting
 * @desc Changes made to the ATB Gauge if it is currently casting.
 * @default -0.00
 * 
 * @arg Interrupt:eval
 * @text Interrupt?
 * @parent Casting
 * @type boolean
 * @on Interrupt
 * @off Don't Interrupt
 * @desc Interrupt the ATB Gauge if it is currently casting?
 * @default false
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Mechanics_BoostPointsChange
 * @text MECH: Boost Points Change
 * @desc Changes Boost Points for target(s).
 * Requires VisuMZ_3_BoostAction!
 * 
 * @arg Targets:arraystr
 * @text Targets
 * @type combo[]
 * @option user
 * @option current target
 * @option prev target
 * @option next target
 * @option all targets
 * @option focus
 * @option not focus
 * @option
 * @option special
 * @option special x
 * @option 
 * @option alive friends
 * @option alive friends not user
 * @option alive friends not target
 * @option dead friends
 * @option friend index x
 * @option 
 * @option alive opponents
 * @option alive opponents not target
 * @option dead opponents
 * @option opponent index x
 * @option 
 * @option alive actors
 * @option alive actors not user
 * @option alive actors not target
 * @option dead actors
 * @option actor index x
 * @option actor ID x
 * @option 
 * @option alive enemies
 * @option alive enemies not user
 * @option alive enemies not target
 * @option dead enemies
 * @option enemy index x
 * @option enemy ID x
 * @option 
 * @option alive battlers
 * @option alive battlers not user
 * @option alive battlers not target
 * @option dead battlers
 * @option 
 * @desc Select unit(s) to alter the Boost Points for.
 * @default ["user"]
 * 
 * @arg BoostPoints:eval
 * @text Alter Boost Points By
 * @desc Alters the unit(s) Boost Points.
 * Positive for gaining points. Negative for losing points.
 * @default +1
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Mechanics_BoostPointsStoreData
 * @text MECH: Boost Store Data
 * @desc Stores the number of Boosts used this action inside a variable.
 * Requires VisuMZ_3_BoostAction!
 * 
 * @arg VariableID:num
 * @text Variable ID
 * @type variable
 * @desc Which variable do you want to store the data inside?
 * @default 1
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Mechanics_BreakShieldChange
 * @text MECH: Break Shield Change
 * @desc Changes Break Shields for target(s) if not Break Stunned.
 * Requires VisuMZ_4_BreakShields!
 * 
 * @arg Targets:arraystr
 * @text Targets
 * @type combo[]
 * @option user
 * @option current target
 * @option prev target
 * @option next target
 * @option all targets
 * @option focus
 * @option not focus
 * @option
 * @option special
 * @option special x
 * @option 
 * @option alive friends
 * @option alive friends not user
 * @option alive friends not target
 * @option dead friends
 * @option friend index x
 * @option 
 * @option alive opponents
 * @option alive opponents not target
 * @option dead opponents
 * @option opponent index x
 * @option 
 * @option alive actors
 * @option alive actors not user
 * @option alive actors not target
 * @option dead actors
 * @option actor index x
 * @option actor ID x
 * @option 
 * @option alive enemies
 * @option alive enemies not user
 * @option alive enemies not target
 * @option dead enemies
 * @option enemy index x
 * @option enemy ID x
 * @option 
 * @option alive battlers
 * @option alive battlers not user
 * @option alive battlers not target
 * @option dead battlers
 * @option 
 * @desc Select unit(s) to alter the Break Shields for.
 * @default ["all targets"]
 * 
 * @arg BreakShields:eval
 * @text Alter Break Shields By
 * @desc Alters the unit(s) Break Shields.
 * Positive for gaining shields. Negative for losing shields.
 * @default -1
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Mechanics_BreakShieldReset
 * @text MECH: Break Shield Reset
 * @desc Resets Break Shields for target(s) if not Break Stunned.
 * Requires VisuMZ_4_BreakShields!
 * 
 * @arg Targets:arraystr
 * @text Targets
 * @type combo[]
 * @option user
 * @option current target
 * @option prev target
 * @option next target
 * @option all targets
 * @option focus
 * @option not focus
 * @option
 * @option special
 * @option special x
 * @option 
 * @option alive friends
 * @option alive friends not user
 * @option alive friends not target
 * @option dead friends
 * @option friend index x
 * @option 
 * @option alive opponents
 * @option alive opponents not target
 * @option dead opponents
 * @option opponent index x
 * @option 
 * @option alive actors
 * @option alive actors not user
 * @option alive actors not target
 * @option dead actors
 * @option actor index x
 * @option actor ID x
 * @option 
 * @option alive enemies
 * @option alive enemies not user
 * @option alive enemies not target
 * @option dead enemies
 * @option enemy index x
 * @option enemy ID x
 * @option 
 * @option alive battlers
 * @option alive battlers not user
 * @option alive battlers not target
 * @option dead battlers
 * @option 
 * @desc Select unit(s) to reset the Break Shields for.
 * @default ["all targets"]
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Mechanics_BtbGain
 * @text MECH: BTB Brave Points
 * @desc Alters the target(s) Brave Points to an exact value.
 * Requires VisuMZ_2_BattleSystemBTB!
 * 
 * @arg Targets:arraystr
 * @text Targets
 * @type combo[]
 * @option user
 * @option current target
 * @option prev target
 * @option next target
 * @option all targets
 * @option focus
 * @option not focus
 * @option
 * @option special
 * @option special x
 * @option 
 * @option alive friends
 * @option alive friends not user
 * @option alive friends not target
 * @option dead friends
 * @option friend index x
 * @option 
 * @option alive opponents
 * @option alive opponents not target
 * @option dead opponents
 * @option opponent index x
 * @option 
 * @option alive actors
 * @option alive actors not user
 * @option alive actors not target
 * @option dead actors
 * @option actor index x
 * @option actor ID x
 * @option 
 * @option alive enemies
 * @option alive enemies not user
 * @option alive enemies not target
 * @option dead enemies
 * @option enemy index x
 * @option enemy ID x
 * @option 
 * @option alive battlers
 * @option alive battlers not user
 * @option alive battlers not target
 * @option dead battlers
 * @option 
 * @desc Select unit(s) to alter the ATB/TPB Gauges for.
 * @default ["all targets"]
 * 
 * @arg BravePoints:eval
 * @text Alter Brave Points By
 * @desc Alters the target(s) Brave Points.
 * Positive for gaining BP. Negative for losing BP.
 * @default +1
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Mechanics_Collapse
 * @text MECH: Collapse
 * @desc Causes the unit(s) to perform its collapse animation
 * if the unit(s) has died.
 * 
 * @arg Targets:arraystr
 * @text Targets
 * @type combo[]
 * @option user
 * @option current target
 * @option prev target
 * @option next target
 * @option all targets
 * @option focus
 * @option not focus
 * @option
 * @option special
 * @option special x
 * @option 
 * @option alive friends
 * @option alive friends not user
 * @option alive friends not target
 * @option dead friends
 * @option friend index x
 * @option 
 * @option alive opponents
 * @option alive opponents not target
 * @option dead opponents
 * @option opponent index x
 * @option 
 * @option alive actors
 * @option alive actors not user
 * @option alive actors not target
 * @option dead actors
 * @option actor index x
 * @option actor ID x
 * @option 
 * @option alive enemies
 * @option alive enemies not user
 * @option alive enemies not target
 * @option dead enemies
 * @option enemy index x
 * @option enemy ID x
 * @option 
 * @option alive battlers
 * @option alive battlers not user
 * @option alive battlers not target
 * @option dead battlers
 * @option 
 * @desc Select unit(s) to process a death collapse.
 * @default ["all targets"]
 * 
 * @arg ForceDeath:eval
 * @text Force Death
 * @type boolean
 * @on On
 * @off Off
 * @desc Force death even if the unit has not reached 0 HP?
 * This will remove immortality.
 * @default false
 * 
 * @arg WaitForEffect:eval
 * @text Wait For Effect?
 * @type boolean
 * @on On
 * @off Off
 * @desc Wait for the collapse effect to complete before performing next command?
 * @default true
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Mechanics_CtbOrder
 * @text MECH: CTB Order
 * @desc Alters the CTB Turn Order.
 * Requires VisuMZ_2_BattleSystemCTB!
 * 
 * @arg Targets:arraystr
 * @text Targets
 * @type combo[]
 * @option user
 * @option current target
 * @option prev target
 * @option next target
 * @option all targets
 * @option focus
 * @option not focus
 * @option
 * @option special
 * @option special x
 * @option 
 * @option alive friends
 * @option alive friends not user
 * @option alive friends not target
 * @option dead friends
 * @option friend index x
 * @option 
 * @option alive opponents
 * @option alive opponents not target
 * @option dead opponents
 * @option opponent index x
 * @option 
 * @option alive actors
 * @option alive actors not user
 * @option alive actors not target
 * @option dead actors
 * @option actor index x
 * @option actor ID x
 * @option 
 * @option alive enemies
 * @option alive enemies not user
 * @option alive enemies not target
 * @option dead enemies
 * @option enemy index x
 * @option enemy ID x
 * @option 
 * @option alive battlers
 * @option alive battlers not user
 * @option alive battlers not target
 * @option dead battlers
 * @option 
 * @desc Select unit(s) to alter the CTB Turn Order for.
 * @default ["all targets"]
 *
 * @arg ChangeOrderBy:eval
 * @text Change Order By
 * @parent Charging
 * @desc Changes turn order for target(s) by this amount.
 * Positive increases wait. Negative decreases wait.
 * @default +1
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Mechanics_CtbSpeed
 * @text MECH: CTB Speed
 * @desc Alters the CTB Speed.
 * Requires VisuMZ_2_BattleSystemCTB!
 * 
 * @arg Targets:arraystr
 * @text Targets
 * @type combo[]
 * @option user
 * @option current target
 * @option prev target
 * @option next target
 * @option all targets
 * @option focus
 * @option not focus
 * @option
 * @option special
 * @option special x
 * @option 
 * @option alive friends
 * @option alive friends not user
 * @option alive friends not target
 * @option dead friends
 * @option friend index x
 * @option 
 * @option alive opponents
 * @option alive opponents not target
 * @option dead opponents
 * @option opponent index x
 * @option 
 * @option alive actors
 * @option alive actors not user
 * @option alive actors not target
 * @option dead actors
 * @option actor index x
 * @option actor ID x
 * @option 
 * @option alive enemies
 * @option alive enemies not user
 * @option alive enemies not target
 * @option dead enemies
 * @option enemy index x
 * @option enemy ID x
 * @option 
 * @option alive battlers
 * @option alive battlers not user
 * @option alive battlers not target
 * @option dead battlers
 * @option 
 * @desc Select unit(s) to alter the CTB Speed for.
 * @default ["all targets"]
 *
 * @arg ChargeRate:eval
 * @text Charge Rate
 * @parent Charging
 * @desc Changes made to the CTB Speed if it is currently charging.
 * @default -0.00
 * 
 * @arg CastRate:eval
 * @text Cast Rate
 * @parent Casting
 * @desc Changes made to the CTB Speed if it is currently casting.
 * @default -0.00
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Mechanics_CustomDmgFormula
 * @text MECH: Custom Damage Formula
 * @desc Changes the current action's damage formula to custom.
 * This will assume the MANUAL damage style.
 * 
 * @arg Formula:str
 * @text Formula
 * @desc Changes the current action's damage formula to custom.
 * Use 'default' to revert the damage formula.
 * @default default
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Mechanics_DamagePopup
 * @text MECH: Damage Popup
 * @desc Causes the unit(s) to display the current state of
 * damage received or healed.
 * 
 * @arg Targets:arraystr
 * @text Targets
 * @type combo[]
 * @option user
 * @option current target
 * @option prev target
 * @option next target
 * @option all targets
 * @option focus
 * @option not focus
 * @option
 * @option special
 * @option special x
 * @option 
 * @option alive friends
 * @option alive friends not user
 * @option alive friends not target
 * @option dead friends
 * @option friend index x
 * @option 
 * @option alive opponents
 * @option alive opponents not target
 * @option dead opponents
 * @option opponent index x
 * @option 
 * @option alive actors
 * @option alive actors not user
 * @option alive actors not target
 * @option dead actors
 * @option actor index x
 * @option actor ID x
 * @option 
 * @option alive enemies
 * @option alive enemies not user
 * @option alive enemies not target
 * @option dead enemies
 * @option enemy index x
 * @option enemy ID x
 * @option 
 * @option alive battlers
 * @option alive battlers not user
 * @option alive battlers not target
 * @option dead battlers
 * @option 
 * @desc Select unit(s) to prompt a damage popup.
 * @default ["all targets"]
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Mechanics_DeathBreak
 * @text MECH: Dead Label Jump
 * @desc If the active battler is dead, jump to a specific label in the common event.
 * 
 * @arg JumpToLabel:str
 * @text Jump To Label
 * @desc If the active battler is dead, jump to this specific label in the common event.
 * @default Untitled
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Mechanics_EmulateAttackEffect
 * @text MECH: Emulate Attack Effect
 * @desc Emulate an "Action Effect" but using a the user's
 * attack skill instead of the current action.
 * 
 * @arg Users:arraystr
 * @text User(s)
 * @type combo[]
 * @option user
 * @option current target
 * @option prev target
 * @option next target
 * @option all targets
 * @option focus
 * @option not focus
 * @option
 * @option special
 * @option special x
 * @option 
 * @option alive friends
 * @option alive friends not user
 * @option alive friends not target
 * @option dead friends
 * @option friend index x
 * @option 
 * @option alive opponents
 * @option alive opponents not target
 * @option dead opponents
 * @option opponent index x
 * @option 
 * @option alive actors
 * @option alive actors not user
 * @option alive actors not target
 * @option dead actors
 * @option actor index x
 * @option actor ID x
 * @option 
 * @option alive enemies
 * @option alive enemies not user
 * @option alive enemies not target
 * @option dead enemies
 * @option enemy index x
 * @option enemy ID x
 * @option 
 * @option alive battlers
 * @option alive battlers not user
 * @option alive battlers not target
 * @option dead battlers
 * @option 
 * @desc Select unit(s) to perform the action's effects.
 * @default ["user"]
 * 
 * @arg Targets:arraystr
 * @text Targets
 * @type combo[]
 * @option user
 * @option current target
 * @option prev target
 * @option next target
 * @option all targets
 * @option focus
 * @option not focus
 * @option
 * @option special
 * @option special x
 * @option 
 * @option alive friends
 * @option alive friends not user
 * @option alive friends not target
 * @option dead friends
 * @option friend index x
 * @option 
 * @option alive opponents
 * @option alive opponents not target
 * @option dead opponents
 * @option opponent index x
 * @option 
 * @option alive actors
 * @option alive actors not user
 * @option alive actors not target
 * @option dead actors
 * @option actor index x
 * @option actor ID x
 * @option 
 * @option alive enemies
 * @option alive enemies not user
 * @option alive enemies not target
 * @option dead enemies
 * @option enemy index x
 * @option enemy ID x
 * @option 
 * @option alive battlers
 * @option alive battlers not user
 * @option alive battlers not target
 * @option dead battlers
 * @option 
 * @desc Select unit(s) to receive the current action's effects.
 * @default ["all targets"]
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Mechanics_EmulateGuardEffect
 * @text MECH: Emulate Guard Effect
 * @desc Emulate an "Action Effect" but using a the user's
 * guard skill instead of the current action.
 * 
 * @arg Users:arraystr
 * @text User(s)
 * @type combo[]
 * @option user
 * @option current target
 * @option prev target
 * @option next target
 * @option all targets
 * @option focus
 * @option not focus
 * @option
 * @option special
 * @option special x
 * @option 
 * @option alive friends
 * @option alive friends not user
 * @option alive friends not target
 * @option dead friends
 * @option friend index x
 * @option 
 * @option alive opponents
 * @option alive opponents not target
 * @option dead opponents
 * @option opponent index x
 * @option 
 * @option alive actors
 * @option alive actors not user
 * @option alive actors not target
 * @option dead actors
 * @option actor index x
 * @option actor ID x
 * @option 
 * @option alive enemies
 * @option alive enemies not user
 * @option alive enemies not target
 * @option dead enemies
 * @option enemy index x
 * @option enemy ID x
 * @option 
 * @option alive battlers
 * @option alive battlers not user
 * @option alive battlers not target
 * @option dead battlers
 * @option 
 * @desc Select unit(s) to perform the action's effects.
 * @default ["user"]
 * 
 * @arg Targets:arraystr
 * @text Targets
 * @type combo[]
 * @option user
 * @option current target
 * @option prev target
 * @option next target
 * @option all targets
 * @option focus
 * @option not focus
 * @option
 * @option special
 * @option special x
 * @option 
 * @option alive friends
 * @option alive friends not user
 * @option alive friends not target
 * @option dead friends
 * @option friend index x
 * @option 
 * @option alive opponents
 * @option alive opponents not target
 * @option dead opponents
 * @option opponent index x
 * @option 
 * @option alive actors
 * @option alive actors not user
 * @option alive actors not target
 * @option dead actors
 * @option actor index x
 * @option actor ID x
 * @option 
 * @option alive enemies
 * @option alive enemies not user
 * @option alive enemies not target
 * @option dead enemies
 * @option enemy index x
 * @option enemy ID x
 * @option 
 * @option alive battlers
 * @option alive battlers not user
 * @option alive battlers not target
 * @option dead battlers
 * @option 
 * @desc Select unit(s) to receive the current action's effects.
 * @default ["all targets"]
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Mechanics_EmulateItemEffect
 * @text MECH: Emulate Item Effect
 * @desc Emulate an "Action Effect" but using a specific item
 * instead of the current action.
 * 
 * @arg ItemID:eval
 * @text Item ID
 * @type item
 * @desc Which item ID will be emulated?
 * @default 7
 * 
 * @arg Users:arraystr
 * @text User(s)
 * @type combo[]
 * @option user
 * @option current target
 * @option prev target
 * @option next target
 * @option all targets
 * @option focus
 * @option not focus
 * @option
 * @option special
 * @option special x
 * @option 
 * @option alive friends
 * @option alive friends not user
 * @option alive friends not target
 * @option dead friends
 * @option friend index x
 * @option 
 * @option alive opponents
 * @option alive opponents not target
 * @option dead opponents
 * @option opponent index x
 * @option 
 * @option alive actors
 * @option alive actors not user
 * @option alive actors not target
 * @option dead actors
 * @option actor index x
 * @option actor ID x
 * @option 
 * @option alive enemies
 * @option alive enemies not user
 * @option alive enemies not target
 * @option dead enemies
 * @option enemy index x
 * @option enemy ID x
 * @option 
 * @option alive battlers
 * @option alive battlers not user
 * @option alive battlers not target
 * @option dead battlers
 * @option 
 * @desc Select unit(s) to perform the action's effects.
 * @default ["user"]
 * 
 * @arg Targets:arraystr
 * @text Targets
 * @type combo[]
 * @option user
 * @option current target
 * @option prev target
 * @option next target
 * @option all targets
 * @option focus
 * @option not focus
 * @option
 * @option special
 * @option special x
 * @option 
 * @option alive friends
 * @option alive friends not user
 * @option alive friends not target
 * @option dead friends
 * @option friend index x
 * @option 
 * @option alive opponents
 * @option alive opponents not target
 * @option dead opponents
 * @option opponent index x
 * @option 
 * @option alive actors
 * @option alive actors not user
 * @option alive actors not target
 * @option dead actors
 * @option actor index x
 * @option actor ID x
 * @option 
 * @option alive enemies
 * @option alive enemies not user
 * @option alive enemies not target
 * @option dead enemies
 * @option enemy index x
 * @option enemy ID x
 * @option 
 * @option alive battlers
 * @option alive battlers not user
 * @option alive battlers not target
 * @option dead battlers
 * @option 
 * @desc Select unit(s) to receive the current action's effects.
 * @default ["all targets"]
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Mechanics_EmulateSkillCost
 * @text MECH: Emulate Skill Cost
 * @desc Pick a skill for target(s) to emulate paying the cost of.
 * Includes cooldowns and limited uses.
 * 
 * @arg SkillID:eval
 * @text Skill ID
 * @type skill
 * @desc Which skill ID will have its cost paid for?
 * Use 0 for current action's skill.
 * @default 0
 * 
 * @arg Users:arraystr
 * @text User(s)
 * @type combo[]
 * @option user
 * @option current target
 * @option prev target
 * @option next target
 * @option all targets
 * @option focus
 * @option not focus
 * @option
 * @option special
 * @option special x
 * @option 
 * @option alive friends
 * @option alive friends not user
 * @option alive friends not target
 * @option dead friends
 * @option friend index x
 * @option 
 * @option alive opponents
 * @option alive opponents not target
 * @option dead opponents
 * @option opponent index x
 * @option 
 * @option alive actors
 * @option alive actors not user
 * @option alive actors not target
 * @option dead actors
 * @option actor index x
 * @option actor ID x
 * @option 
 * @option alive enemies
 * @option alive enemies not user
 * @option alive enemies not target
 * @option dead enemies
 * @option enemy index x
 * @option enemy ID x
 * @option 
 * @option alive battlers
 * @option alive battlers not user
 * @option alive battlers not target
 * @option dead battlers
 * @option 
 * @desc Select unit(s) to perform the action's effects.
 * @default ["user"]
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Mechanics_EmulateSkillEffect
 * @text MECH: Emulate Skill Effect
 * @desc Emulate an "Action Effect" but using a specific skill
 * instead of the current action.
 * 
 * @arg SkillID:eval
 * @text Skill ID
 * @type skill
 * @desc Which skill ID will be emulated?
 * @default 99
 * 
 * @arg Users:arraystr
 * @text User(s)
 * @type combo[]
 * @option user
 * @option current target
 * @option prev target
 * @option next target
 * @option all targets
 * @option focus
 * @option not focus
 * @option
 * @option special
 * @option special x
 * @option 
 * @option alive friends
 * @option alive friends not user
 * @option alive friends not target
 * @option dead friends
 * @option friend index x
 * @option 
 * @option alive opponents
 * @option alive opponents not target
 * @option dead opponents
 * @option opponent index x
 * @option 
 * @option alive actors
 * @option alive actors not user
 * @option alive actors not target
 * @option dead actors
 * @option actor index x
 * @option actor ID x
 * @option 
 * @option alive enemies
 * @option alive enemies not user
 * @option alive enemies not target
 * @option dead enemies
 * @option enemy index x
 * @option enemy ID x
 * @option 
 * @option alive battlers
 * @option alive battlers not user
 * @option alive battlers not target
 * @option dead battlers
 * @option 
 * @desc Select unit(s) to perform the action's effects.
 * @default ["user"]
 * 
 * @arg Targets:arraystr
 * @text Targets
 * @type combo[]
 * @option user
 * @option current target
 * @option prev target
 * @option next target
 * @option all targets
 * @option focus
 * @option not focus
 * @option
 * @option special
 * @option special x
 * @option 
 * @option alive friends
 * @option alive friends not user
 * @option alive friends not target
 * @option dead friends
 * @option friend index x
 * @option 
 * @option alive opponents
 * @option alive opponents not target
 * @option dead opponents
 * @option opponent index x
 * @option 
 * @option alive actors
 * @option alive actors not user
 * @option alive actors not target
 * @option dead actors
 * @option actor index x
 * @option actor ID x
 * @option 
 * @option alive enemies
 * @option alive enemies not user
 * @option alive enemies not target
 * @option dead enemies
 * @option enemy index x
 * @option enemy ID x
 * @option 
 * @option alive battlers
 * @option alive battlers not user
 * @option alive battlers not target
 * @option dead battlers
 * @option 
 * @desc Select unit(s) to receive the current action's effects.
 * @default ["all targets"]
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Mechanics_EnemyEscape
 * @text MECH: Enemy Escape
 * @desc Causes the enemy unit(s) to escape.
 * 
 * @arg Targets:arraystr
 * @text Targets
 * @type combo[]
 * @option user
 * @option current target
 * @option prev target
 * @option next target
 * @option all targets
 * @option focus
 * @option not focus
 * @option
 * @option special
 * @option special x
 * @option 
 * @option alive friends
 * @option alive friends not user
 * @option alive friends not target
 * @option dead friends
 * @option friend index x
 * @option 
 * @option alive opponents
 * @option alive opponents not target
 * @option dead opponents
 * @option opponent index x
 * @option 
 * @option alive enemies
 * @option alive enemies not user
 * @option alive enemies not target
 * @option dead enemies
 * @option enemy index x
 * @option enemy ID x
 * @option 
 * @option alive battlers
 * @option alive battlers not user
 * @option alive battlers not target
 * @option dead battlers
 * @option 
 * @desc Select unit(s) to escape.
 * @default ["user"]
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Mechanics_EtbAction
 * @text MECH: ETB Energy Count
 * @desc Alters the subject team's available Energy Count.
 * Requires VisuMZ_2_BattleSystemETB!
 * 
 * @arg ActionCount:eval
 * @text Energy Count
 * @desc Alters the subject team's available Energy Count.
 * Positive for gaining energy. Negative for losing energy.
 * @default +1
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Mechanics_FtbAction
 * @text MECH: FTB Action Count
 * @desc Alters the subject team's available Action Count.
 * Requires VisuMZ_2_BattleSystemFTB!
 * 
 * @arg ActionCount:eval
 * @text Action Count
 * @desc Alters the subject team's available Action Count.
 * Positive for gaining actions. Negative for losing actions.
 * @default +1
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Mechanics_HpMpTp
 * @text MECH: HP, MP, TP
 * @desc Alters the HP, MP, and TP values for unit(s).
 * Positive values for healing. Negative values for damage.
 * 
 * @arg Targets:arraystr
 * @text Targets
 * @type combo[]
 * @option user
 * @option current target
 * @option prev target
 * @option next target
 * @option all targets
 * @option focus
 * @option not focus
 * @option
 * @option special
 * @option special x
 * @option 
 * @option alive friends
 * @option alive friends not user
 * @option alive friends not target
 * @option dead friends
 * @option friend index x
 * @option 
 * @option alive opponents
 * @option alive opponents not target
 * @option dead opponents
 * @option opponent index x
 * @option 
 * @option alive actors
 * @option alive actors not user
 * @option alive actors not target
 * @option dead actors
 * @option actor index x
 * @option actor ID x
 * @option 
 * @option alive enemies
 * @option alive enemies not user
 * @option alive enemies not target
 * @option dead enemies
 * @option enemy index x
 * @option enemy ID x
 * @option 
 * @option alive battlers
 * @option alive battlers not user
 * @option alive battlers not target
 * @option dead battlers
 * @option 
 * @desc Select unit(s) to receive the current action's effects.
 * @default ["user"]
 *
 * @arg HP
 * 
 * @arg HP_Rate:eval
 * @text HP Rate
 * @parent HP
 * @desc Changes made to HP based on rate.
 * Positive values for healing. Negative values for damage.
 * @default +0.00
 * 
 * @arg HP_Flat:eval
 * @text HP Flat
 * @parent HP
 * @desc Flat changes made to HP.
 * Positive values for healing. Negative values for damage.
 * @default +0
 * 
 * @arg MP
 * 
 * @arg MP_Rate:eval
 * @text MP Rate
 * @parent MP
 * @desc Changes made to MP based on rate.
 * Positive values for healing. Negative values for damage.
 * @default +0.00
 * 
 * @arg MP_Flat:eval
 * @text MP Flat
 * @parent MP
 * @desc Flat changes made to MP.
 * Positive values for healing. Negative values for damage.
 * @default +0
 *
 * @arg TP
 * 
 * @arg TP_Rate:eval
 * @text TP Rate
 * @parent TP
 * @desc Changes made to TP based on rate.
 * Positive values for healing. Negative values for damage.
 * @default +0.00
 * 
 * @arg TP_Flat:eval
 * @text TP Flat
 * @parent TP
 * @desc Flat changes made to TP.
 * Positive values for healing. Negative values for damage.
 * @default +0
 * 
 * @arg ShowPopup:eval
 * @text Damage Popup?
 * @type boolean
 * @on On
 * @off Off
 * @desc Display a damage popup after?
 * @default true
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Mechanics_Immortal
 * @text MECH: Immortal
 * @desc Changes the immortal flag of targets. If immortal flag is
 * removed and a unit would die, collapse that unit.
 * 
 * @arg Targets:arraystr
 * @text Targets
 * @type combo[]
 * @option user
 * @option current target
 * @option prev target
 * @option next target
 * @option all targets
 * @option focus
 * @option not focus
 * @option
 * @option special
 * @option special x
 * @option 
 * @option alive friends
 * @option alive friends not user
 * @option alive friends not target
 * @option dead friends
 * @option friend index x
 * @option 
 * @option alive opponents
 * @option alive opponents not target
 * @option dead opponents
 * @option opponent index x
 * @option 
 * @option alive actors
 * @option alive actors not user
 * @option alive actors not target
 * @option dead actors
 * @option actor index x
 * @option actor ID x
 * @option 
 * @option alive enemies
 * @option alive enemies not user
 * @option alive enemies not target
 * @option dead enemies
 * @option enemy index x
 * @option enemy ID x
 * @option 
 * @option alive battlers
 * @option alive battlers not user
 * @option alive battlers not target
 * @option dead battlers
 * @option 
 * @desc Alter the immortal flag of these groups. If immortal flag
 * is removed and a unit would die, collapse that unit.
 * @default ["user","all targets"]
 * 
 * @arg Immortal:eval
 * @text Immortal
 * @type boolean
 * @on On
 * @off Off
 * @desc Turn immortal flag for unit(s) on/off?
 * @default false
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Mechanics_Multipliers
 * @text MECH: Multipliers
 * @desc Changes the multipliers for the current action.
 * You may use JavaScript code for any of these.
 *
 * @arg CriticalHit
 * @text Critical Hit%
 * 
 * @arg CriticalHitRate:eval
 * @text Rate
 * @parent CriticalHit
 * @desc Affects chance to land a critical hit by this multiplier.
 * @default 1.00
 * 
 * @arg CriticalHitFlat:eval
 * @text Flat
 * @parent CriticalHit
 * @desc Affects chance to land a critical hit by this flat bonus.
 * @default +0.00
 *
 * @arg CriticalDmg
 * @text Critical Damage
 * 
 * @arg CriticalDmgRate:eval
 * @text Rate
 * @parent CriticalDmg
 * @desc Affects critical damage by this multiplier.
 * @default 1.00
 * 
 * @arg CriticalDmgFlat:eval
 * @text Flat
 * @parent CriticalDmg
 * @desc Affects critical damage by this flat bonus.
 * @default +0.00
 *
 * @arg Damage
 * @text Damage/Healing
 * 
 * @arg DamageRate:eval
 * @text Rate
 * @parent Damage
 * @desc Sets the damage/healing multiplier for current action.
 * @default 1.00
 * 
 * @arg DamageFlat:eval
 * @text Flat
 * @parent Damage
 * @desc Sets the damage/healing bonus for current action.
 * @default +0.00
 *
 * @arg HitRate
 * @text Hit Rate
 * 
 * @arg HitRate:eval
 * @text Rate
 * @parent HitRate
 * @desc Affects chance to connect attack by this multiplier.
 * @default 1.00
 * 
 * @arg HitFlat:eval
 * @text Flat
 * @parent HitRate
 * @desc Affects chance to connect attack by this flat bonus.
 * @default +0.00
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Mechanics_OnceParallel
 * @text MECH: Once Parallel
 * @desc Plays a Common Event parallel to the battle event once
 * without repeating itself when done.
 *
 * @arg CommonEventID:num
 * @text Common Event ID
 * @type common_event
 * @desc The ID of the parallel Common Event to play.
 * Does NOT repeat itself when finished.
 * @default 1
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Mechanics_OtbOrder
 * @text MECH: OTB Order
 * @desc Alters the OTB Turn Order. Best used with single targets.
 * Requires VisuMZ_2_BattleSystemOTB!
 * 
 * @arg Targets:arraystr
 * @text Targets
 * @type combo[]
 * @option user
 * @option current target
 * @option prev target
 * @option next target
 * @option all targets
 * @option focus
 * @option not focus
 * @option
 * @option special
 * @option special x
 * @option 
 * @option alive friends
 * @option alive friends not user
 * @option alive friends not target
 * @option dead friends
 * @option friend index x
 * @option 
 * @option alive opponents
 * @option alive opponents not target
 * @option dead opponents
 * @option opponent index x
 * @option 
 * @option alive actors
 * @option alive actors not user
 * @option alive actors not target
 * @option dead actors
 * @option actor index x
 * @option actor ID x
 * @option 
 * @option alive enemies
 * @option alive enemies not user
 * @option alive enemies not target
 * @option dead enemies
 * @option enemy index x
 * @option enemy ID x
 * @option 
 * @option alive battlers
 * @option alive battlers not user
 * @option alive battlers not target
 * @option dead battlers
 * @option 
 * @desc Select unit(s) to alter the OTB Turn Order for.
 * @default ["all targets"]
 *
 * @arg CurrentTurn:eval
 * @text Current Turn By
 * @parent Charging
 * @desc Changes turn order for target(s) by this amount.
 * Positive increases wait. Negative decreases wait.
 * @default +0
 *
 * @arg NextTurn:eval
 * @text Next Turn By
 * @parent Charging
 * @desc Changes turn order for target(s) by this amount.
 * Positive increases wait. Negative decreases wait.
 * @default +1
 *
 * @arg FollowTurn:eval
 * @text Follow Turn By
 * @parent Charging
 * @desc Changes turn order for target(s) by this amount.
 * Positive increases wait. Negative decreases wait.
 * @default +0
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Mechanics_PtbAlterCost
 * @text MECH: PTB Alter Cost
 * @desc Alters the action's cost settings.
 * Requires VisuMZ_2_BattleSystemPTB!
 *
 * @arg Override:eval
 * @text Override?
 * @type boolean
 * @on Override Permanent
 * @off Require Temporary
 * @desc Overrides any 'permanent' settings for Changeability?
 * @default false
 *
 * @arg alterChange:str
 * @text Alter Changeability
 * @type select
 * @option Unchanged - Cost type is unchanged after this effect
 * @value unchanged
 * @option Permanent - Cost type can no longer be changed after
 * @value permanent
 * @option Temporary - Cost type can still be changed after
 * @value temporary
 * @desc Allow the cost type and value to be changeable?
 * @default unchanged
 *
 * @arg alterType:str
 * @text Alter Cost Type
 * @type select
 * @option Unchanged - No changes are made
 * @value unchanged
 * @option Consume - Removes half, otherwise consumes full
 * @value consume
 * @option Convert - Converts full => half, otherwise consumes half
 * @value convert
 * @option Compress - Consumes half, otherwise converts full => half
 * @value compress
 * @desc Change the cost type to this scenario.
 * Use 'Unchanged' for no changes.
 * @default convert
 *
 * @arg alterCost:eval
 * @text Alter Cost Value
 * @desc What is the default action cost for this scenario?
 * @default +0
 *
 * @arg alterPriority:eval
 * @text Priority
 * @desc What is this scenario's priority? Scenario outcomes with
 * equal or lower priorities cannot override types and costs.
 * @default 50
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Mechanics_PtbConvert
 * @text MECH: PTB Conversion
 * @desc Converts full actions into half actions.
 * Requires VisuMZ_2_BattleSystemPTB!
 * 
 * @arg ConvertCount:eval
 * @text Conversion Count
 * @desc Converts full actions into half actions.
 * If not enough, consume half actions.
 * @default 1
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Mechanics_PtbFullHalfAction
 * @text MECH: PTB Full/Half Action(s)
 * @desc Alters the subject team's available Full/Half Actions.
 * Requires VisuMZ_2_BattleSystemPTB!
 * 
 * @arg FullActions:eval
 * @text Full Actions
 * @desc Alters the subject team's available Full Actions.
 * Positive for gaining. Negative for losing.
 * @default +0
 * 
 * @arg HalfActions:eval
 * @text Half Actions
 * @desc Alters the subject team's available Half Actions.
 * Positive for gaining. Negative for losing.
 * @default +0
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Mechanics_RemoveBuffDebuff
 * @text MECH: Remove Buff/Debuff
 * @desc Removes buff(s)/debuff(s) from unit(s). 
 * Determine which parameters are removed.
 * 
 * @arg Targets:arraystr
 * @text Targets
 * @type combo[]
 * @option user
 * @option current target
 * @option prev target
 * @option next target
 * @option all targets
 * @option focus
 * @option not focus
 * @option
 * @option special
 * @option special x
 * @option 
 * @option alive friends
 * @option alive friends not user
 * @option alive friends not target
 * @option dead friends
 * @option friend index x
 * @option 
 * @option alive opponents
 * @option alive opponents not target
 * @option dead opponents
 * @option opponent index x
 * @option 
 * @option alive actors
 * @option alive actors not user
 * @option alive actors not target
 * @option dead actors
 * @option actor index x
 * @option actor ID x
 * @option 
 * @option alive enemies
 * @option alive enemies not user
 * @option alive enemies not target
 * @option dead enemies
 * @option enemy index x
 * @option enemy ID x
 * @option 
 * @option alive battlers
 * @option alive battlers not user
 * @option alive battlers not target
 * @option dead battlers
 * @option 
 * @desc Select unit(s) to have the buff(s) and/or debuff(s) removed.
 * @default ["user"]
 * 
 * @arg Buffs:arraystr
 * @text Buff Parameters
 * @type combo[]
 * @option MaxHP
 * @option MaxMP
 * @option ATK
 * @option DEF
 * @option MAT
 * @option MDF
 * @option AGI
 * @option LUK
 * @desc Select which buffed parameter(s) to remove.
 * @default ["MaxHP","MaxMP","ATK","DEF","MAT","MDF","AGI","LUK"]
 *
 * @arg Debuffs:arraystr
 * @text Debuff Parameters
 * @type combo[]
 * @option MaxHP
 * @option MaxMP
 * @option ATK
 * @option DEF
 * @option MAT
 * @option MDF
 * @option AGI
 * @option LUK
 * @desc Select which debuffed parameter(s) to remove.
 * @default ["MaxHP","MaxMP","ATK","DEF","MAT","MDF","AGI","LUK"]
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Mechanics_RemoveState
 * @text MECH: Remove State
 * @desc Remove state(s) from unit(s).
 * 
 * @arg Targets:arraystr
 * @text Targets
 * @type combo[]
 * @option user
 * @option current target
 * @option prev target
 * @option next target
 * @option all targets
 * @option focus
 * @option not focus
 * @option
 * @option special
 * @option special x
 * @option 
 * @option alive friends
 * @option alive friends not user
 * @option alive friends not target
 * @option dead friends
 * @option friend index x
 * @option 
 * @option alive opponents
 * @option alive opponents not target
 * @option dead opponents
 * @option opponent index x
 * @option 
 * @option alive actors
 * @option alive actors not user
 * @option alive actors not target
 * @option dead actors
 * @option actor index x
 * @option actor ID x
 * @option 
 * @option alive enemies
 * @option alive enemies not user
 * @option alive enemies not target
 * @option dead enemies
 * @option enemy index x
 * @option enemy ID x
 * @option 
 * @option alive battlers
 * @option alive battlers not user
 * @option alive battlers not target
 * @option dead battlers
 * @option 
 * @desc Select unit(s) to have states removed from.
 * @default ["user"]
 * 
 * @arg States:arraynum
 * @text States
 * @type state[]
 * @desc Select which state ID(s) to remove from unit(s).
 * Insert multiple state ID's to remove multiple at once.
 * @default ["4"]
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Mechanics_StateTurnsChangeBy
 * @text MECH: State Turns Change By
 * @desc Changes target(s) state turns by an amount.
 * Requires VisuMZ_1_SkillsStatesCore!
 * 
 * @arg Targets:arraystr
 * @text Targets
 * @type combo[]
 * @option user
 * @option current target
 * @option prev target
 * @option next target
 * @option all targets
 * @option focus
 * @option not focus
 * @option
 * @option special
 * @option special x
 * @option 
 * @option alive friends
 * @option alive friends not user
 * @option alive friends not target
 * @option dead friends
 * @option friend index x
 * @option 
 * @option alive opponents
 * @option alive opponents not target
 * @option dead opponents
 * @option opponent index x
 * @option 
 * @option alive actors
 * @option alive actors not user
 * @option alive actors not target
 * @option dead actors
 * @option actor index x
 * @option actor ID x
 * @option 
 * @option alive enemies
 * @option alive enemies not user
 * @option alive enemies not target
 * @option dead enemies
 * @option enemy index x
 * @option enemy ID x
 * @option 
 * @option alive battlers
 * @option alive battlers not user
 * @option alive battlers not target
 * @option dead battlers
 * @option 
 * @desc Select unit(s) to affect state turns for.
 * @default ["all targets"]
 *
 * @arg StateID:num
 * @text State ID
 * @type state
 * @desc What is the ID of the state you wish to change turns for?
 * Only works on states that can have turns.
 * @default 5
 *
 * @arg Turns:eval
 * @text Change Turns By
 * @desc How many turns should the state be changed to?
 * You may use JavaScript code.
 * @default +1
 *
 * @arg AutoAddState:eval
 * @text Auto-Add State?
 * @type boolean
 * @on Auto-Add
 * @off Don't Add
 * @desc Automatically adds state if actor(s) does not have it applied?
 * @default true
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Mechanics_StateTurnsChangeTo
 * @text MECH: State Turns Change To
 * @desc Changes target(s) state turns to a specific value.
 * Requires VisuMZ_1_SkillsStatesCore!
 * 
 * @arg Targets:arraystr
 * @text Targets
 * @type combo[]
 * @option user
 * @option current target
 * @option prev target
 * @option next target
 * @option all targets
 * @option focus
 * @option not focus
 * @option
 * @option special
 * @option special x
 * @option 
 * @option alive friends
 * @option alive friends not user
 * @option alive friends not target
 * @option dead friends
 * @option friend index x
 * @option 
 * @option alive opponents
 * @option alive opponents not target
 * @option dead opponents
 * @option opponent index x
 * @option 
 * @option alive actors
 * @option alive actors not user
 * @option alive actors not target
 * @option dead actors
 * @option actor index x
 * @option actor ID x
 * @option 
 * @option alive enemies
 * @option alive enemies not user
 * @option alive enemies not target
 * @option dead enemies
 * @option enemy index x
 * @option enemy ID x
 * @option 
 * @option alive battlers
 * @option alive battlers not user
 * @option alive battlers not target
 * @option dead battlers
 * @option 
 * @desc Select unit(s) to affect state turns for.
 * @default ["all targets"]
 *
 * @arg StateID:num
 * @text State ID
 * @type state
 * @desc What is the ID of the state you wish to change turns for?
 * Only works on states that can have turns.
 * @default 5
 *
 * @arg Turns:eval
 * @text Change Turns To
 * @desc How many turns should the state be changed to?
 * You may use JavaScript code.
 * @default 10
 *
 * @arg AutoAddState:eval
 * @text Auto-Add State?
 * @type boolean
 * @on Auto-Add
 * @off Don't Add
 * @desc Automatically adds state if target(s) does not have it applied?
 * @default true
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Mechanics_StbExploit
 * @text MECH: STB Exploit Effect
 * @desc Utilize the STB Exploitation mechanics!
 * Requires VisuMZ_2_BattleSystemSTB!
 * 
 * @arg Exploited:eval
 * @text Target(s) Exploited?
 * @type boolean
 * @on Exploit
 * @off Don't
 * @desc Exploit the below targets?
 * @default true
 * 
 * @arg Targets:arraystr
 * @text Targets
 * @type combo[]
 * @option user
 * @option current target
 * @option prev target
 * @option next target
 * @option all targets
 * @option focus
 * @option not focus
 * @option
 * @option special
 * @option special x
 * @option 
 * @option alive friends
 * @option alive friends not user
 * @option alive friends not target
 * @option dead friends
 * @option friend index x
 * @option 
 * @option alive opponents
 * @option alive opponents not target
 * @option dead opponents
 * @option opponent index x
 * @option 
 * @option alive actors
 * @option alive actors not user
 * @option alive actors not target
 * @option dead actors
 * @option actor index x
 * @option actor ID x
 * @option 
 * @option alive enemies
 * @option alive enemies not user
 * @option alive enemies not target
 * @option dead enemies
 * @option enemy index x
 * @option enemy ID x
 * @option 
 * @option alive battlers
 * @option alive battlers not user
 * @option alive battlers not target
 * @option dead battlers
 * @option 
 * @desc Select unit(s) to become exploited.
 * @default ["all targets"]
 * 
 * @arg ForceExploited:eval
 * @text Force Exploitation
 * @type boolean
 * @on Force
 * @off Don't
 * @desc Force the exploited status?
 * @default false
 * 
 * @arg Exploiter:eval
 * @text User Exploiter?
 * @type boolean
 * @on Exploit
 * @off Don't
 * @desc Allow the user to become the exploiter?
 * @default true
 * 
 * @arg ForceExploited:eval
 * @text Force Exploitation
 * @type boolean
 * @on Force
 * @off Don't
 * @desc Force the exploiter status?
 * @default false
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Mechanics_StbExtraAction
 * @text MECH: STB Extra Action
 * @desc Adds an extra action for the currently active battler.
 * Requires VisuMZ_2_BattleSystemSTB!
 * 
 * @arg Actions:eval
 * @text Extra Actions
 * @parent Charging
 * @desc How many extra actions should the active battler gain?
 * You may use JavaScript code.
 * @default 1
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Mechanics_StbRemoveExcessActions
 * @text MECH: STB Remove Excess Actions
 * @desc Removes excess actions from the active battler.
 * Requires VisuMZ_2_BattleSystemSTB!
 * 
 * @arg Actions:eval
 * @text Remove Actions
 * @parent Charging
 * @desc How many actions to remove from the active battler?
 * You may use JavaScript code.
 * @default 99
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Mechanics_SwapWeapon
 * @text MECH: Swap Weapon
 * @desc Causes the unit(s) to swap their weapon for another.
 * Requires VisuMZ_2_WeaponSwapSystem!
 * 
 * @arg Targets:arraystr
 * @text Targets
 * @type combo[]
 * @option user
 * @option current target
 * @option prev target
 * @option next target
 * @option all targets
 * @option focus
 * @option not focus
 * @option
 * @option special
 * @option special x
 * @option 
 * @option alive friends
 * @option alive friends not user
 * @option alive friends not target
 * @option dead friends
 * @option friend index x
 * @option 
 * @option alive opponents
 * @option alive opponents not target
 * @option dead opponents
 * @option opponent index x
 * @option 
 * @option alive actors
 * @option alive actors not user
 * @option alive actors not target
 * @option dead actors
 * @option actor index x
 * @option actor ID x
 * @option 
 * @option alive enemies
 * @option alive enemies not user
 * @option alive enemies not target
 * @option dead enemies
 * @option enemy index x
 * @option enemy ID x
 * @option 
 * @option alive battlers
 * @option alive battlers not user
 * @option alive battlers not target
 * @option dead battlers
 * @option 
 * @desc Select unit(s) to swap weapons for.
 * @default ["user"]
 * 
 * @arg WeaponTypeID:eval
 * @text Weapon Type ID
 * @desc Which weapon type to swap to?
 * This is NOT the weapon's ID. It's the weapon TYPE.
 * @default 1
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Mechanics_TextPopup
 * @text MECH: Text Popup
 * @desc Causes the unit(s) to display a text popup.
 * 
 * @arg Targets:arraystr
 * @text Targets
 * @type combo[]
 * @option user
 * @option current target
 * @option prev target
 * @option next target
 * @option all targets
 * @option focus
 * @option not focus
 * @option
 * @option special
 * @option special x
 * @option 
 * @option alive friends
 * @option alive friends not user
 * @option alive friends not target
 * @option dead friends
 * @option friend index x
 * @option 
 * @option alive opponents
 * @option alive opponents not target
 * @option dead opponents
 * @option opponent index x
 * @option 
 * @option alive actors
 * @option alive actors not user
 * @option alive actors not target
 * @option dead actors
 * @option actor index x
 * @option actor ID x
 * @option 
 * @option alive enemies
 * @option alive enemies not user
 * @option alive enemies not target
 * @option dead enemies
 * @option enemy index x
 * @option enemy ID x
 * @option 
 * @option alive battlers
 * @option alive battlers not user
 * @option alive battlers not target
 * @option dead battlers
 * @option 
 * @desc Select unit(s) to prompt a text popup.
 * @default ["target"]
 * 
 * @arg Text:str
 * @text Text
 * @desc What text do you wish to display?
 * @default Text
 * 
 * @arg TextColor:str
 * @text Text Color
 * @parent Text:str
 * @desc Use #rrggbb for custom colors or regular numbers
 * for text colors from the Window Skin.
 * @default #ffffff
 *
 * @arg FlashColor:eval
 * @text Flash Color
 * @parent Popups
 * @desc Adjust the popup's flash color.
 * Format: [red, green, blue, alpha]
 * @default [255, 0, 0, 160]
 * 
 * @arg FlashDuration:num
 * @text Flash Duration
 * @parent FlashColor:eval
 * @type number
 * @desc What is the frame duration of the flash effect?
 * @default 60
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Mechanics_VariablePopup
 * @text MECH: Variable Popup
 * @desc Causes the unit(s) to display a popup using the data
 * stored inside a variable.
 * 
 * @arg Targets:arraystr
 * @text Targets
 * @type combo[]
 * @option user
 * @option current target
 * @option prev target
 * @option next target
 * @option all targets
 * @option focus
 * @option not focus
 * @option
 * @option special
 * @option special x
 * @option 
 * @option alive friends
 * @option alive friends not user
 * @option alive friends not target
 * @option dead friends
 * @option friend index x
 * @option 
 * @option alive opponents
 * @option alive opponents not target
 * @option dead opponents
 * @option opponent index x
 * @option 
 * @option alive actors
 * @option alive actors not user
 * @option alive actors not target
 * @option dead actors
 * @option actor index x
 * @option actor ID x
 * @option 
 * @option alive enemies
 * @option alive enemies not user
 * @option alive enemies not target
 * @option dead enemies
 * @option enemy index x
 * @option enemy ID x
 * @option 
 * @option alive battlers
 * @option alive battlers not user
 * @option alive battlers not target
 * @option dead battlers
 * @option 
 * @desc Select unit(s) to prompt a text popup.
 * @default ["target"]
 * 
 * @arg Variable:num
 * @text Variable ID
 * @type variable
 * @desc Get data from which variable to display as a popup?
 * @default 1
 * 
 * @arg DigitGrouping:eval
 * @text Digit Grouping
 * @parent Variable:num
 * @type boolean
 * @on Group Digits
 * @off Don't Group
 * @desc Use digit grouping to separate numbers?
 * Requires VisuMZ_0_CoreEngine!
 * @default true
 * 
 * @arg TextColor:str
 * @text Text Color
 * @parent Variable:num
 * @desc Use #rrggbb for custom colors or regular numbers
 * for text colors from the Window Skin.
 * @default #ffffff
 *
 * @arg FlashColor:eval
 * @text Flash Color
 * @parent Popups
 * @desc Adjust the popup's flash color.
 * Format: [red, green, blue, alpha]
 * @default [0, 0, 0, 0]
 * 
 * @arg FlashDuration:num
 * @text Flash Duration
 * @parent FlashColor:eval
 * @type number
 * @desc What is the frame duration of the flash effect?
 * @default 60
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Mechanics_WaitForEffect
 * @text MECH: Wait For Effect
 * @desc Waits for the effects to complete before performing next command.
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActionSequenceSpaceMotion
 * @text -
 * @desc -
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActionSequenceBreakMotion
 * @text Action Sequences - Motion
 * @desc These Action Sequences allow you the ability to control
 * the motions of sideview sprites.
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Motion_ClearFreezeFrame
 * @text MOTION: Clear Freeze Frame
 * @desc Clears any freeze frames from the unit(s).
 * 
 * @arg Targets:arraystr
 * @text Targets
 * @type combo[]
 * @option user
 * @option current target
 * @option prev target
 * @option next target
 * @option all targets
 * @option focus
 * @option not focus
 * @option
 * @option special
 * @option special x
 * @option 
 * @option alive friends
 * @option alive friends not user
 * @option alive friends not target
 * @option dead friends
 * @option friend index x
 * @option 
 * @option alive opponents
 * @option alive opponents not target
 * @option dead opponents
 * @option opponent index x
 * @option 
 * @option alive actors
 * @option alive actors not user
 * @option alive actors not target
 * @option dead actors
 * @option actor index x
 * @option actor ID x
 * @option 
 * @option alive enemies
 * @option alive enemies not user
 * @option alive enemies not target
 * @option dead enemies
 * @option enemy index x
 * @option enemy ID x
 * @option 
 * @option alive battlers
 * @option alive battlers not user
 * @option alive battlers not target
 * @option dead battlers
 * @option 
 * @desc Select which unit(s) to clear freeze frames for.
 * @default ["user"]
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Motion_FreezeMotionFrame
 * @text MOTION: Freeze Motion Frame
 * @desc Forces a freeze frame instantly at the selected motion.
 * Automatically clears with a new motion.
 * 
 * @arg Targets:arraystr
 * @text Targets
 * @type combo[]
 * @option user
 * @option current target
 * @option prev target
 * @option next target
 * @option all targets
 * @option focus
 * @option not focus
 * @option
 * @option special
 * @option special x
 * @option 
 * @option alive friends
 * @option alive friends not user
 * @option alive friends not target
 * @option dead friends
 * @option friend index x
 * @option 
 * @option alive opponents
 * @option alive opponents not target
 * @option dead opponents
 * @option opponent index x
 * @option 
 * @option alive actors
 * @option alive actors not user
 * @option alive actors not target
 * @option dead actors
 * @option actor index x
 * @option actor ID x
 * @option 
 * @option alive enemies
 * @option alive enemies not user
 * @option alive enemies not target
 * @option dead enemies
 * @option enemy index x
 * @option enemy ID x
 * @option 
 * @option alive battlers
 * @option alive battlers not user
 * @option alive battlers not target
 * @option dead battlers
 * @option 
 * @desc Select which unit(s) to freeze motions for.
 * @default ["user"]
 *
 * @arg MotionType:str
 * @text Motion Type
 * @type combo
 * @option walk
 * @option wait
 * @option chant
 * @option guard
 * @option damage
 * @option evade
 * @option attack
 * @option thrust
 * @option swing
 * @option missile
 * @option skill
 * @option spell
 * @option item
 * @option escape
 * @option victory
 * @option dying
 * @option abnormal
 * @option sleep
 * @option dead
 * @desc Freeze this motion for the unit(s).
 * @default attack
 * 
 * @arg Frame:num
 * @text Frame Index
 * @desc Which frame do you want to freeze the motion on?
 * Frame index values start at 0.
 * @default 2
 *
 * @arg ShowWeapon:eval
 * @text Show Weapon?
 * @type combo
 * @type boolean
 * @on Show
 * @off Hide
 * @desc If using 'attack', 'thrust', 'swing', or 'missile',
 * display the weapon sprite?
 * @default true
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Motion_MotionType
 * @text MOTION: Motion Type
 * @desc Causes the unit(s) to play the selected motion.
 * 
 * @arg Targets:arraystr
 * @text Targets
 * @type combo[]
 * @option user
 * @option current target
 * @option prev target
 * @option next target
 * @option all targets
 * @option focus
 * @option not focus
 * @option
 * @option special
 * @option special x
 * @option 
 * @option alive friends
 * @option alive friends not user
 * @option alive friends not target
 * @option dead friends
 * @option friend index x
 * @option 
 * @option alive opponents
 * @option alive opponents not target
 * @option dead opponents
 * @option opponent index x
 * @option 
 * @option alive actors
 * @option alive actors not user
 * @option alive actors not target
 * @option dead actors
 * @option actor index x
 * @option actor ID x
 * @option 
 * @option alive enemies
 * @option alive enemies not user
 * @option alive enemies not target
 * @option dead enemies
 * @option enemy index x
 * @option enemy ID x
 * @option 
 * @option alive battlers
 * @option alive battlers not user
 * @option alive battlers not target
 * @option dead battlers
 * @option 
 * @desc Select which unit(s) to perform a motion.
 * @default ["user"]
 *
 * @arg MotionType:str
 * @text Motion Type
 * @type combo
 * @option walk
 * @option wait
 * @option chant
 * @option guard
 * @option damage
 * @option evade
 * @option attack
 * @option thrust
 * @option swing
 * @option missile
 * @option skill
 * @option spell
 * @option item
 * @option escape
 * @option victory
 * @option dying
 * @option abnormal
 * @option sleep
 * @option dead
 * @desc Play this motion for the unit(s).
 * @default attack
 *
 * @arg ShowWeapon:eval
 * @text Show Weapon?
 * @type combo
 * @type boolean
 * @on Show
 * @off Hide
 * @desc If using 'attack', 'thrust', 'swing', or 'missile',
 * display the weapon sprite?
 * @default true
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Motion_PerformAction
 * @text MOTION: Perform Action
 * @desc Causes the unit(s) to play the proper motion based
 * on the current action.
 * 
 * @arg Targets:arraystr
 * @text Targets
 * @type combo[]
 * @option user
 * @option current target
 * @option prev target
 * @option next target
 * @option all targets
 * @option focus
 * @option not focus
 * @option
 * @option special
 * @option special x
 * @option 
 * @option alive friends
 * @option alive friends not user
 * @option alive friends not target
 * @option dead friends
 * @option friend index x
 * @option 
 * @option alive opponents
 * @option alive opponents not target
 * @option dead opponents
 * @option opponent index x
 * @option 
 * @option alive actors
 * @option alive actors not user
 * @option alive actors not target
 * @option dead actors
 * @option actor index x
 * @option actor ID x
 * @option 
 * @option alive enemies
 * @option alive enemies not user
 * @option alive enemies not target
 * @option dead enemies
 * @option enemy index x
 * @option enemy ID x
 * @option 
 * @option alive battlers
 * @option alive battlers not user
 * @option alive battlers not target
 * @option dead battlers
 * @option 
 * @desc Select which unit(s) to perform a motion.
 * @default ["user"]
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Motion_RefreshMotion
 * @text MOTION: Refresh Motion
 * @desc Cancels any set motions unit(s) has to do and use
 * their most natural motion at the moment.
 * 
 * @arg Targets:arraystr
 * @text Targets
 * @type combo[]
 * @option user
 * @option current target
 * @option prev target
 * @option next target
 * @option all targets
 * @option focus
 * @option not focus
 * @option
 * @option special
 * @option special x
 * @option 
 * @option alive friends
 * @option alive friends not user
 * @option alive friends not target
 * @option dead friends
 * @option friend index x
 * @option 
 * @option alive opponents
 * @option alive opponents not target
 * @option dead opponents
 * @option opponent index x
 * @option 
 * @option alive actors
 * @option alive actors not user
 * @option alive actors not target
 * @option dead actors
 * @option actor index x
 * @option actor ID x
 * @option 
 * @option alive enemies
 * @option alive enemies not user
 * @option alive enemies not target
 * @option dead enemies
 * @option enemy index x
 * @option enemy ID x
 * @option 
 * @option alive battlers
 * @option alive battlers not user
 * @option alive battlers not target
 * @option dead battlers
 * @option 
 * @desc Select which unit(s) to refresh their motion state.
 * @default ["user"]
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Motion_WaitMotionFrame
 * @text MOTION: Wait By Motion Frame
 * @desc Creates a wait equal to the number of motion frames passing.
 * Time is based on Plugin Parameters => Actors => Motion Speed.
 *
 * @arg MotionFrameWait:num
 * @text Motion Frames to Wait?
 * @type number
 * @min 1
 * @desc Each "frame" is equal to the value found in
 * Plugin Parameters => Actors => Motion Speed
 * @default 1
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActionSequenceSpaceMovement
 * @text -
 * @desc -
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActionSequenceBreakMovement
 * @text Action Sequences - Movement
 * @desc These Action Sequences allow you the ability to control
 * the sprites of actors and enemies in battle.
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Movement_BattleStep
 * @text MOVE: Battle Step
 * @desc Causes the unit(s) to move forward past their home position
 * to prepare for action.
 * 
 * @arg Targets:arraystr
 * @text Targets
 * @type combo[]
 * @option user
 * @option current target
 * @option prev target
 * @option next target
 * @option all targets
 * @option focus
 * @option not focus
 * @option
 * @option special
 * @option special x
 * @option 
 * @option alive friends
 * @option alive friends not user
 * @option alive friends not target
 * @option dead friends
 * @option friend index x
 * @option 
 * @option alive opponents
 * @option alive opponents not target
 * @option dead opponents
 * @option opponent index x
 * @option 
 * @option alive actors
 * @option alive actors not user
 * @option alive actors not target
 * @option dead actors
 * @option actor index x
 * @option actor ID x
 * @option 
 * @option alive enemies
 * @option alive enemies not user
 * @option alive enemies not target
 * @option dead enemies
 * @option enemy index x
 * @option enemy ID x
 * @option 
 * @option alive battlers
 * @option alive battlers not user
 * @option alive battlers not target
 * @option dead battlers
 * @option 
 * @desc Select which unit(s) to move.
 * @default ["user"]
 * 
 * @arg WaitForMovement:eval
 * @text Wait For Movement?
 * @type boolean
 * @on On
 * @off Off
 * @desc Wait for movement to complete before performing next command?
 * @default true
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Movement_HomeMoveBy
 * @text MOVE: Change Home By Distance
 * @desc Change unit(s)'s home position by a distance from their
 * current home position(s). Sideview-only!
 * 
 * @arg Targets:arraystr
 * @text Targets
 * @type combo[]
 * @option user
 * @option current target
 * @option prev target
 * @option next target
 * @option all targets
 * @option focus
 * @option not focus
 * @option
 * @option special
 * @option special x
 * @option 
 * @option alive friends
 * @option alive friends not user
 * @option alive friends not target
 * @option dead friends
 * @option friend index x
 * @option 
 * @option alive opponents
 * @option alive opponents not target
 * @option dead opponents
 * @option opponent index x
 * @option 
 * @option alive actors
 * @option alive actors not user
 * @option alive actors not target
 * @option dead actors
 * @option actor index x
 * @option actor ID x
 * @option 
 * @option alive enemies
 * @option alive enemies not user
 * @option alive enemies not target
 * @option dead enemies
 * @option enemy index x
 * @option enemy ID x
 * @option 
 * @option alive battlers
 * @option alive battlers not user
 * @option alive battlers not target
 * @option dead battlers
 * @option 
 * @desc Select which unit(s) to change home position(s) for.
 * @default ["user"]
 *
 * @arg DistanceAdjust:str
 * @text Distance Adjustment
 * @type select
 * @option Normal - No adjustments made
 * @value none
 * @option Horizontal - Actors adjust left, Enemies adjust right
 * @value horz
 * @option Vertical - Actors adjust Up, Enemies adjust down
 * @value vert
 * @option Both - Applies both Horizontal and Vertical
 * @value horz + vert
 * @desc Makes adjustments to distance values to determine
 * which direction to change by.
 * @default horz
 * 
 * @arg DistanceX:eval
 * @text Distance: X
 * @parent DistanceAdjust:str
 * @desc Horizontal distance to change home by.
 * You may use JavaScript code.
 * @default 48
 * 
 * @arg DistanceY:eval
 * @text Distance: Y
 * @parent DistanceAdjust:str
 * @desc Vertical distance to change home by.
 * You may use JavaScript code.
 * @default 0
 * 
 * @arg Duration:eval
 * @text Duration
 * @desc Duration in frames for total change amount.
 * @default 12
 * 
 * @arg FaceDirection:eval
 * @text Face Destination?
 * @type boolean
 * @on Turn
 * @off Don't
 * @desc Turn and face the destination?
 * @default true
 *
 * @arg EasingType:str
 * @text Movement Easing
 * @type combo
 * @option Linear
 * @option InSine
 * @option OutSine
 * @option InOutSine
 * @option InQuad
 * @option OutQuad
 * @option InOutQuad
 * @option InCubic
 * @option OutCubic
 * @option InOutCubic
 * @option InQuart
 * @option OutQuart
 * @option InOutQuart
 * @option InQuint
 * @option OutQuint
 * @option InOutQuint
 * @option InExpo
 * @option OutExpo
 * @option InOutExpo
 * @option InCirc
 * @option OutCirc
 * @option InOutCirc
 * @option InBack
 * @option OutBack
 * @option InOutBack
 * @option InElastic
 * @option OutElastic
 * @option InOutElastic
 * @option InBounce
 * @option OutBounce
 * @option InOutBounce
 * @desc Select which easing type you wish to apply.
 * Requires VisuMZ_0_CoreEngine.
 * @default Linear
 *
 * @arg MotionType:str
 * @text Movement Motion
 * @type combo
 * @option walk
 * @option wait
 * @option chant
 * @option guard
 * @option damage
 * @option evade
 * @option thrust
 * @option swing
 * @option missile
 * @option skill
 * @option spell
 * @option item
 * @option escape
 * @option victory
 * @option dying
 * @option abnormal
 * @option sleep
 * @option dead
 * @desc Play this motion for the unit(s).
 * @default walk
 * 
 * @arg WaitForMovement:eval
 * @text Wait For Movement?
 * @type boolean
 * @on On
 * @off Off
 * @desc Wait for movement to complete before performing next command?
 * @default true
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Movement_HomeMoveToJsPoint
 * @text MOVE: Change Home To JS Coordinates
 * @desc Change home position(s) to specified JS Coordinates.
 * Sideview-only! Uses JavaScript!
 * 
 * @arg Targets:arraystr
 * @text Targets
 * @type combo[]
 * @option user
 * @option current target
 * @option prev target
 * @option next target
 * @option all targets
 * @option focus
 * @option not focus
 * @option
 * @option special
 * @option special x
 * @option 
 * @option alive friends
 * @option alive friends not user
 * @option alive friends not target
 * @option dead friends
 * @option friend index x
 * @option 
 * @option alive opponents
 * @option alive opponents not target
 * @option dead opponents
 * @option opponent index x
 * @option 
 * @option alive actors
 * @option alive actors not user
 * @option alive actors not target
 * @option dead actors
 * @option actor index x
 * @option actor ID x
 * @option 
 * @option alive enemies
 * @option alive enemies not user
 * @option alive enemies not target
 * @option dead enemies
 * @option enemy index x
 * @option enemy ID x
 * @option 
 * @option alive battlers
 * @option alive battlers not user
 * @option alive battlers not target
 * @option dead battlers
 * @option 
 * @desc Select which unit(s) to change home position(s) for.
 * @default ["user"]
 *
 * @arg DestinationJS:func
 * @text JS: Coordinates
 * @type note
 * @desc Code used to determine the coordinates for the
 * target(s)'s new home position.
 * @default "// Declare Variables\nconst target = arguments[0];\nlet goalX = 0;\nlet goalY = 0;\n\n// Calculations\ngoalX = Graphics.width / 2;\ngoalY = Graphics.height / 2;\n\n// Return Data\nreturn new Point(goalX, goalY);"
 *
 * @arg OffsetAdjust:str
 * @text Offset Adjustment
 * @parent Destination:str
 * @type select
 * @option Normal - No adjustments made
 * @value none
 * @option Horizontal - Actors adjust left, Enemies adjust right
 * @value horz
 * @option Vertical - Actors adjust Up, Enemies adjust down
 * @value vert
 * @option Both - Applies both Horizontal and Vertical
 * @value horz + vert
 * @desc Makes adjustments to offset values to determine
 * which direction to adjust the destination by.
 * @default horz
 * 
 * @arg OffsetX:eval
 * @text Offset: X
 * @parent OffsetAdjust:str
 * @desc Horizontal offset to change home by.
 * You may use JavaScript code.
 * @default 0
 * 
 * @arg OffsetY:eval
 * @text Offset: Y
 * @parent OffsetAdjust:str
 * @desc Vertical offset to change home by.
 * You may use JavaScript code.
 * @default 0
 * 
 * @arg Duration:eval
 * @text Duration
 * @desc Duration in frames for total change amount.
 * @default 12
 * 
 * @arg FaceDirection:eval
 * @text Face Destination?
 * @type boolean
 * @on Turn
 * @off Don't
 * @desc Turn and face the destination?
 * @default true
 *
 * @arg EasingType:str
 * @text Movement Easing
 * @type combo
 * @option Linear
 * @option InSine
 * @option OutSine
 * @option InOutSine
 * @option InQuad
 * @option OutQuad
 * @option InOutQuad
 * @option InCubic
 * @option OutCubic
 * @option InOutCubic
 * @option InQuart
 * @option OutQuart
 * @option InOutQuart
 * @option InQuint
 * @option OutQuint
 * @option InOutQuint
 * @option InExpo
 * @option OutExpo
 * @option InOutExpo
 * @option InCirc
 * @option OutCirc
 * @option InOutCirc
 * @option InBack
 * @option OutBack
 * @option InOutBack
 * @option InElastic
 * @option OutElastic
 * @option InOutElastic
 * @option InBounce
 * @option OutBounce
 * @option InOutBounce
 * @desc Select which easing type you wish to apply.
 * Requires VisuMZ_0_CoreEngine.
 * @default Linear
 *
 * @arg MotionType:str
 * @text Movement Motion
 * @type combo
 * @option walk
 * @option wait
 * @option chant
 * @option guard
 * @option damage
 * @option evade
 * @option thrust
 * @option swing
 * @option missile
 * @option skill
 * @option spell
 * @option item
 * @option escape
 * @option victory
 * @option dying
 * @option abnormal
 * @option sleep
 * @option dead
 * @desc Play this motion for the unit(s).
 * @default walk
 * 
 * @arg WaitForMovement:eval
 * @text Wait For Movement?
 * @type boolean
 * @on On
 * @off Off
 * @desc Wait for movement to complete before performing next command?
 * @default true
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Movement_HomeMoveToPoint
 * @text MOVE: Change Home To Point
 * @desc Change home position(s) to a target point on the screen.
 * Sideview-only! Points based off Graphics.boxWidth/Height.
 * 
 * @arg Targets:arraystr
 * @text Targets
 * @type combo[]
 * @option user
 * @option current target
 * @option prev target
 * @option next target
 * @option all targets
 * @option focus
 * @option not focus
 * @option
 * @option special
 * @option special x
 * @option 
 * @option alive friends
 * @option alive friends not user
 * @option alive friends not target
 * @option dead friends
 * @option friend index x
 * @option 
 * @option alive opponents
 * @option alive opponents not target
 * @option dead opponents
 * @option opponent index x
 * @option 
 * @option alive actors
 * @option alive actors not user
 * @option alive actors not target
 * @option dead actors
 * @option actor index x
 * @option actor ID x
 * @option 
 * @option alive enemies
 * @option alive enemies not user
 * @option alive enemies not target
 * @option dead enemies
 * @option enemy index x
 * @option enemy ID x
 * @option 
 * @option alive battlers
 * @option alive battlers not user
 * @option alive battlers not target
 * @option dead battlers
 * @option 
 * @desc Select which unit(s) to change home position(s) for.
 * @default ["user"]
 * 
 * @arg Destination:str
 * @text Destination Point
 * @type combo
 * @option center
 * @option point x, y
 * @desc Select which point to face.
 * Replace 'x' and 'y' with coordinates
 * @default center
 *
 * @arg OffsetAdjust:str
 * @text Offset Adjustment
 * @parent Destination:str
 * @type select
 * @option Normal - No adjustments made
 * @value none
 * @option Horizontal - Actors adjust left, Enemies adjust right
 * @value horz
 * @option Vertical - Actors adjust Up, Enemies adjust down
 * @value vert
 * @option Both - Applies both Horizontal and Vertical
 * @value horz + vert
 * @desc Makes adjustments to offset values to determine
 * which direction to adjust the destination by.
 * @default horz
 * 
 * @arg OffsetX:eval
 * @text Offset: X
 * @parent OffsetAdjust:str
 * @desc Horizontal offset to change home by.
 * You may use JavaScript code.
 * @default 0
 * 
 * @arg OffsetY:eval
 * @text Offset: Y
 * @parent OffsetAdjust:str
 * @desc Vertical offset to change home by.
 * You may use JavaScript code.
 * @default 0
 * 
 * @arg Duration:eval
 * @text Duration
 * @desc Duration in frames for total change amount.
 * @default 12
 * 
 * @arg FaceDirection:eval
 * @text Face Destination?
 * @type boolean
 * @on Turn
 * @off Don't
 * @desc Turn and face the destination?
 * @default true
 *
 * @arg EasingType:str
 * @text Movement Easing
 * @type combo
 * @option Linear
 * @option InSine
 * @option OutSine
 * @option InOutSine
 * @option InQuad
 * @option OutQuad
 * @option InOutQuad
 * @option InCubic
 * @option OutCubic
 * @option InOutCubic
 * @option InQuart
 * @option OutQuart
 * @option InOutQuart
 * @option InQuint
 * @option OutQuint
 * @option InOutQuint
 * @option InExpo
 * @option OutExpo
 * @option InOutExpo
 * @option InCirc
 * @option OutCirc
 * @option InOutCirc
 * @option InBack
 * @option OutBack
 * @option InOutBack
 * @option InElastic
 * @option OutElastic
 * @option InOutElastic
 * @option InBounce
 * @option OutBounce
 * @option InOutBounce
 * @desc Select which easing type you wish to apply.
 * Requires VisuMZ_0_CoreEngine.
 * @default Linear
 *
 * @arg MotionType:str
 * @text Movement Motion
 * @type combo
 * @option walk
 * @option wait
 * @option chant
 * @option guard
 * @option damage
 * @option evade
 * @option thrust
 * @option swing
 * @option missile
 * @option skill
 * @option spell
 * @option item
 * @option escape
 * @option victory
 * @option dying
 * @option abnormal
 * @option sleep
 * @option dead
 * @desc Play this motion for the unit(s).
 * @default walk
 * 
 * @arg WaitForMovement:eval
 * @text Wait For Movement?
 * @type boolean
 * @on On
 * @off Off
 * @desc Wait for movement to complete before performing next command?
 * @default true
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Movement_HomeMoveToTarget
 * @text MOVE: Change Home To Target(s)
 * @desc Moves unit(s) to another unit(s) on the battle field.
 * Sideview-only!
 * 
 * @arg Targets1:arraystr
 * @text Targets (Moving)
 * @type combo[]
 * @option user
 * @option current target
 * @option prev target
 * @option next target
 * @option all targets
 * @option focus
 * @option not focus
 * @option
 * @option special
 * @option special x
 * @option 
 * @option alive friends
 * @option alive friends not user
 * @option alive friends not target
 * @option dead friends
 * @option friend index x
 * @option 
 * @option alive opponents
 * @option alive opponents not target
 * @option dead opponents
 * @option opponent index x
 * @option 
 * @option alive actors
 * @option alive actors not user
 * @option alive actors not target
 * @option dead actors
 * @option actor index x
 * @option actor ID x
 * @option 
 * @option alive enemies
 * @option alive enemies not user
 * @option alive enemies not target
 * @option dead enemies
 * @option enemy index x
 * @option enemy ID x
 * @option 
 * @option alive battlers
 * @option alive battlers not user
 * @option alive battlers not target
 * @option dead battlers
 * @option 
 * @desc Select which unit(s) to change home position(s) for.
 * @default ["user"]
 * 
 * @arg Targets2:arraystr
 * @text Targets (Destination)
 * @type combo[]
 * @option user
 * @option current target
 * @option prev target
 * @option next target
 * @option all targets
 * @option focus
 * @option not focus
 * @option
 * @option special
 * @option special x
 * @option 
 * @option alive friends
 * @option alive friends not user
 * @option alive friends not target
 * @option dead friends
 * @option friend index x
 * @option 
 * @option alive opponents
 * @option alive opponents not target
 * @option dead opponents
 * @option opponent index x
 * @option 
 * @option alive actors
 * @option alive actors not user
 * @option alive actors not target
 * @option dead actors
 * @option actor index x
 * @option actor ID x
 * @option 
 * @option alive enemies
 * @option alive enemies not user
 * @option alive enemies not target
 * @option dead enemies
 * @option enemy index x
 * @option enemy ID x
 * @option 
 * @option alive battlers
 * @option alive battlers not user
 * @option alive battlers not target
 * @option dead battlers
 * @option 
 * @desc Select which unit(s) to change home position to.
 * @default ["all targets"]
 * 
 * @arg TargetLocation:str
 * @text Target Location
 * @parent Targets2:arraystr
 * @type combo
 * @option front head
 * @option front center
 * @option front base
 * @option middle head
 * @option middle center
 * @option middle base
 * @option back head
 * @option back center
 * @option back base
 * @desc Select which part target group to change home position to.
 * @default front base
 * 
 * @arg MeleeDistance:eval
 * @text Melee Distance
 * @parent TargetLocation:str
 * @desc The melee distance away from the target location
 * in addition to the battler's width.
 * @default 24
 *
 * @arg OffsetAdjust:str
 * @text Offset Adjustment
 * @parent Targets2:arraystr
 * @type select
 * @option Normal - No adjustments made
 * @value none
 * @option Horizontal - Actors adjust left, Enemies adjust right
 * @value horz
 * @option Vertical - Actors adjust Up, Enemies adjust down
 * @value vert
 * @option Both - Applies both Horizontal and Vertical
 * @value horz + vert
 * @desc Makes adjustments to offset values to determine
 * which direction to adjust the destination by.
 * @default horz
 * 
 * @arg OffsetX:eval
 * @text Offset: X
 * @parent OffsetAdjust:str
 * @desc Horizontal offset to change home by.
 * You may use JavaScript code.
 * @default 0
 * 
 * @arg OffsetY:eval
 * @text Offset: Y
 * @parent OffsetAdjust:str
 * @desc Vertical offset to change home by.
 * You may use JavaScript code.
 * @default 0
 * 
 * @arg Duration:eval
 * @text Duration
 * @desc Duration in frames for total change amount.
 * @default 12
 * 
 * @arg FaceDirection:eval
 * @text Face Destination?
 * @type boolean
 * @on Turn
 * @off Don't
 * @desc Turn and face the destination?
 * @default true
 *
 * @arg EasingType:str
 * @text Movement Easing
 * @type combo
 * @option Linear
 * @option InSine
 * @option OutSine
 * @option InOutSine
 * @option InQuad
 * @option OutQuad
 * @option InOutQuad
 * @option InCubic
 * @option OutCubic
 * @option InOutCubic
 * @option InQuart
 * @option OutQuart
 * @option InOutQuart
 * @option InQuint
 * @option OutQuint
 * @option InOutQuint
 * @option InExpo
 * @option OutExpo
 * @option InOutExpo
 * @option InCirc
 * @option OutCirc
 * @option InOutCirc
 * @option InBack
 * @option OutBack
 * @option InOutBack
 * @option InElastic
 * @option OutElastic
 * @option InOutElastic
 * @option InBounce
 * @option OutBounce
 * @option InOutBounce
 * @desc Select which easing type you wish to apply.
 * Requires VisuMZ_0_CoreEngine.
 * @default Linear
 *
 * @arg MotionType:str
 * @text Movement Motion
 * @type combo
 * @option walk
 * @option wait
 * @option chant
 * @option guard
 * @option damage
 * @option evade
 * @option thrust
 * @option swing
 * @option missile
 * @option skill
 * @option spell
 * @option item
 * @option escape
 * @option victory
 * @option dying
 * @option abnormal
 * @option sleep
 * @option dead
 * @desc Play this motion for the unit(s).
 * @default walk
 * 
 * @arg WaitForMovement:eval
 * @text Wait For Movement?
 * @type boolean
 * @on On
 * @off Off
 * @desc Wait for movement to complete before performing next command?
 * @default true
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Movement_FaceDirection
 * @text MOVE: Face Direction
 * @desc Causes the unit(s) to face forward or backward.
 * Sideview-only!
 * 
 * @arg Targets:arraystr
 * @text Targets
 * @type combo[]
 * @option user
 * @option current target
 * @option prev target
 * @option next target
 * @option all targets
 * @option focus
 * @option not focus
 * @option
 * @option special
 * @option special x
 * @option 
 * @option alive friends
 * @option alive friends not user
 * @option alive friends not target
 * @option dead friends
 * @option friend index x
 * @option 
 * @option alive opponents
 * @option alive opponents not target
 * @option dead opponents
 * @option opponent index x
 * @option 
 * @option alive actors
 * @option alive actors not user
 * @option alive actors not target
 * @option dead actors
 * @option actor index x
 * @option actor ID x
 * @option 
 * @option alive enemies
 * @option alive enemies not user
 * @option alive enemies not target
 * @option dead enemies
 * @option enemy index x
 * @option enemy ID x
 * @option 
 * @option alive battlers
 * @option alive battlers not user
 * @option alive battlers not target
 * @option dead battlers
 * @option 
 * @desc Select which unit(s) to change direction.
 * @default ["user"]
 * 
 * @arg Direction:str
 * @text Direction
 * @type combo
 * @option forward
 * @option backward
 * @option random
 * @desc Select which direction to face.
 * @default forward
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Movement_FaceJsPoint
 * @text MOVE: Face JS Coordinates
 * @desc Causes the unit(s) to face specified JS Coordinates.
 * Sideview-only! Uses JavaScript!
 * 
 * @arg Targets:arraystr
 * @text Targets
 * @type combo[]
 * @option user
 * @option current target
 * @option prev target
 * @option next target
 * @option all targets
 * @option focus
 * @option not focus
 * @option
 * @option special
 * @option special x
 * @option 
 * @option alive friends
 * @option alive friends not user
 * @option alive friends not target
 * @option dead friends
 * @option friend index x
 * @option 
 * @option alive opponents
 * @option alive opponents not target
 * @option dead opponents
 * @option opponent index x
 * @option 
 * @option alive actors
 * @option alive actors not user
 * @option alive actors not target
 * @option dead actors
 * @option actor index x
 * @option actor ID x
 * @option 
 * @option alive enemies
 * @option alive enemies not user
 * @option alive enemies not target
 * @option dead enemies
 * @option enemy index x
 * @option enemy ID x
 * @option 
 * @option alive battlers
 * @option alive battlers not user
 * @option alive battlers not target
 * @option dead battlers
 * @option 
 * @desc Select which unit(s) to change direction.
 * @default ["user"]
 *
 * @arg PointJS:func
 * @text JS: Coordinates
 * @type note
 * @desc Code used to determine the coordinates for the
 * target(s) to face towards.
 * @default "// Declare Variables\nconst target = arguments[0];\nlet goalX = 0;\nlet goalY = 0;\n\n// Calculations\ngoalX = Graphics.width / 2;\ngoalY = Graphics.height / 2;\n\n// Return Data\nreturn new Point(goalX, goalY);"
 * 
 * @arg FaceAway:eval
 * @text Face Away From?
 * @type boolean
 * @on Turn Away
 * @off Face Directly
 * @desc Face away from the point instead?
 * @default false
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Movement_FacePoint
 * @text MOVE: Face Point
 * @desc Causes the unit(s) to face a point on the screen.
 * Sideview-only!
 * 
 * @arg Targets:arraystr
 * @text Targets
 * @type combo[]
 * @option user
 * @option current target
 * @option prev target
 * @option next target
 * @option all targets
 * @option focus
 * @option not focus
 * @option
 * @option special
 * @option special x
 * @option 
 * @option alive friends
 * @option alive friends not user
 * @option alive friends not target
 * @option dead friends
 * @option friend index x
 * @option 
 * @option alive opponents
 * @option alive opponents not target
 * @option dead opponents
 * @option opponent index x
 * @option 
 * @option alive actors
 * @option alive actors not user
 * @option alive actors not target
 * @option dead actors
 * @option actor index x
 * @option actor ID x
 * @option 
 * @option alive enemies
 * @option alive enemies not user
 * @option alive enemies not target
 * @option dead enemies
 * @option enemy index x
 * @option enemy ID x
 * @option 
 * @option alive battlers
 * @option alive battlers not user
 * @option alive battlers not target
 * @option dead battlers
 * @option 
 * @desc Select which unit(s) to change direction.
 * @default ["user"]
 * 
 * @arg Point:str
 * @text Point
 * @type combo
 * @option home
 * @option center
 * @option point x, y
 * @desc Select which point to face.
 * Replace 'x' and 'y' with coordinates
 * @default home
 * 
 * @arg FaceAway:eval
 * @text Face Away From?
 * @type boolean
 * @on Turn Away
 * @off Face Directly
 * @desc Face away from the point instead?
 * @default false
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Movement_FaceTarget
 * @text MOVE: Face Target(s)
 * @desc Causes the unit(s) to face other targets on the screen.
 * Sideview-only!
 * 
 * @arg Targets1:arraystr
 * @text Targets (facing)
 * @type combo[]
 * @option user
 * @option current target
 * @option prev target
 * @option next target
 * @option all targets
 * @option focus
 * @option not focus
 * @option
 * @option special
 * @option special x
 * @option 
 * @option alive friends
 * @option alive friends not user
 * @option alive friends not target
 * @option dead friends
 * @option friend index x
 * @option 
 * @option alive opponents
 * @option alive opponents not target
 * @option dead opponents
 * @option opponent index x
 * @option 
 * @option alive actors
 * @option alive actors not user
 * @option alive actors not target
 * @option dead actors
 * @option actor index x
 * @option actor ID x
 * @option 
 * @option alive enemies
 * @option alive enemies not user
 * @option alive enemies not target
 * @option dead enemies
 * @option enemy index x
 * @option enemy ID x
 * @option 
 * @option alive battlers
 * @option alive battlers not user
 * @option alive battlers not target
 * @option dead battlers
 * @option 
 * @desc Select which unit(s) to change direction.
 * @default ["user"]
 * 
 * @arg Targets2:arraystr
 * @text Targets (destination)
 * @type combo[]
 * @option user
 * @option current target
 * @option prev target
 * @option next target
 * @option all targets
 * @option focus
 * @option not focus
 * @option
 * @option special
 * @option special x
 * @option 
 * @option alive friends
 * @option alive friends not user
 * @option alive friends not target
 * @option dead friends
 * @option friend index x
 * @option 
 * @option alive opponents
 * @option alive opponents not target
 * @option dead opponents
 * @option opponent index x
 * @option 
 * @option alive actors
 * @option alive actors not user
 * @option alive actors not target
 * @option dead actors
 * @option actor index x
 * @option actor ID x
 * @option 
 * @option alive enemies
 * @option alive enemies not user
 * @option alive enemies not target
 * @option dead enemies
 * @option enemy index x
 * @option enemy ID x
 * @option 
 * @option alive battlers
 * @option alive battlers not user
 * @option alive battlers not target
 * @option dead battlers
 * @option 
 * @desc Select which unit(s) for the turning unit(s) to face.
 * @default ["current target"]
 * 
 * @arg FaceAway:eval
 * @text Face Away From?
 * @type boolean
 * @on Turn Away
 * @off Face Directly
 * @desc Face away from the unit(s) instead?
 * @default false
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Movement_Float
 * @text MOVE: Float
 * @desc Causes the unit(s) to float above the ground.
 * Sideview-only!
 * 
 * @arg Targets:arraystr
 * @text Targets
 * @type combo[]
 * @option user
 * @option current target
 * @option prev target
 * @option next target
 * @option all targets
 * @option focus
 * @option not focus
 * @option
 * @option special
 * @option special x
 * @option 
 * @option alive friends
 * @option alive friends not user
 * @option alive friends not target
 * @option dead friends
 * @option friend index x
 * @option 
 * @option alive opponents
 * @option alive opponents not target
 * @option dead opponents
 * @option opponent index x
 * @option 
 * @option alive actors
 * @option alive actors not user
 * @option alive actors not target
 * @option dead actors
 * @option actor index x
 * @option actor ID x
 * @option 
 * @option alive enemies
 * @option alive enemies not user
 * @option alive enemies not target
 * @option dead enemies
 * @option enemy index x
 * @option enemy ID x
 * @option 
 * @option alive battlers
 * @option alive battlers not user
 * @option alive battlers not target
 * @option dead battlers
 * @option 
 * @desc Select which unit(s) to make float.
 * @default ["user"]
 * 
 * @arg Height:eval
 * @text Desired Height
 * @desc Vertical distance to float upward.
 * You may use JavaScript code.
 * @default 100
 * 
 * @arg Duration:eval
 * @text Duration
 * @desc Duration in frames for total float amount.
 * @default 12
 *
 * @arg EasingType:str
 * @text Float Easing
 * @type combo
 * @option Linear
 * @option InSine
 * @option OutSine
 * @option InOutSine
 * @option InQuad
 * @option OutQuad
 * @option InOutQuad
 * @option InCubic
 * @option OutCubic
 * @option InOutCubic
 * @option InQuart
 * @option OutQuart
 * @option InOutQuart
 * @option InQuint
 * @option OutQuint
 * @option InOutQuint
 * @option InExpo
 * @option OutExpo
 * @option InOutExpo
 * @option InCirc
 * @option OutCirc
 * @option InOutCirc
 * @option InBack
 * @option OutBack
 * @option InOutBack
 * @option InElastic
 * @option OutElastic
 * @option InOutElastic
 * @option InBounce
 * @option OutBounce
 * @option InOutBounce
 * @desc Select which easing type you wish to apply.
 * Requires VisuMZ_0_CoreEngine.
 * @default Linear
 * 
 * @arg WaitForFloat:eval
 * @text Wait For Float?
 * @type boolean
 * @on On
 * @off Off
 * @desc Wait for floating to complete before performing next command?
 * @default true
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Movement_HomeReset
 * @text MOVE: Home Reset
 * @desc Causes the unit(s) to move back to their home position(s)
 * and face back to their original direction(s).
 * 
 * @arg Targets:arraystr
 * @text Targets
 * @type combo[]
 * @option user
 * @option current target
 * @option prev target
 * @option next target
 * @option all targets
 * @option focus
 * @option not focus
 * @option
 * @option special
 * @option special x
 * @option 
 * @option alive friends
 * @option alive friends not user
 * @option alive friends not target
 * @option dead friends
 * @option friend index x
 * @option 
 * @option alive opponents
 * @option alive opponents not target
 * @option dead opponents
 * @option opponent index x
 * @option 
 * @option alive actors
 * @option alive actors not user
 * @option alive actors not target
 * @option dead actors
 * @option actor index x
 * @option actor ID x
 * @option 
 * @option alive enemies
 * @option alive enemies not user
 * @option alive enemies not target
 * @option dead enemies
 * @option enemy index x
 * @option enemy ID x
 * @option 
 * @option alive battlers
 * @option alive battlers not user
 * @option alive battlers not target
 * @option dead battlers
 * @option 
 * @desc Select which unit(s) to move.
 * @default ["alive battlers"]
 * 
 * @arg WaitForMovement:eval
 * @text Wait For Movement?
 * @type boolean
 * @on On
 * @off Off
 * @desc Wait for movement to complete before performing next command?
 * @default true
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Movement_Jump
 * @text MOVE: Jump
 * @desc Causes the unit(s) to jump into the air.
 * Sideview-only!
 * 
 * @arg Targets:arraystr
 * @text Targets
 * @type combo[]
 * @option user
 * @option current target
 * @option prev target
 * @option next target
 * @option all targets
 * @option focus
 * @option not focus
 * @option
 * @option special
 * @option special x
 * @option 
 * @option alive friends
 * @option alive friends not user
 * @option alive friends not target
 * @option dead friends
 * @option friend index x
 * @option 
 * @option alive opponents
 * @option alive opponents not target
 * @option dead opponents
 * @option opponent index x
 * @option 
 * @option alive actors
 * @option alive actors not user
 * @option alive actors not target
 * @option dead actors
 * @option actor index x
 * @option actor ID x
 * @option 
 * @option alive enemies
 * @option alive enemies not user
 * @option alive enemies not target
 * @option dead enemies
 * @option enemy index x
 * @option enemy ID x
 * @option 
 * @option alive battlers
 * @option alive battlers not user
 * @option alive battlers not target
 * @option dead battlers
 * @option 
 * @desc Select which unit(s) to make jump.
 * @default ["user"]
 * 
 * @arg Height:eval
 * @text Desired Height
 * @desc Max jump height to go above the ground
 * You may use JavaScript code.
 * @default 100
 * 
 * @arg Duration:eval
 * @text Duration
 * @desc Duration in frames for total jump amount.
 * @default 12
 * 
 * @arg WaitForJump:eval
 * @text Wait For Jump?
 * @type boolean
 * @on On
 * @off Off
 * @desc Wait for jumping to complete before performing next command?
 * @default false
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Movement_MoveBy
 * @text MOVE: Move Distance
 * @desc Moves unit(s) by a distance from their current position(s).
 * Sideview-only!
 * 
 * @arg Targets:arraystr
 * @text Targets
 * @type combo[]
 * @option user
 * @option current target
 * @option prev target
 * @option next target
 * @option all targets
 * @option focus
 * @option not focus
 * @option
 * @option special
 * @option special x
 * @option 
 * @option alive friends
 * @option alive friends not user
 * @option alive friends not target
 * @option dead friends
 * @option friend index x
 * @option 
 * @option alive opponents
 * @option alive opponents not target
 * @option dead opponents
 * @option opponent index x
 * @option 
 * @option alive actors
 * @option alive actors not user
 * @option alive actors not target
 * @option dead actors
 * @option actor index x
 * @option actor ID x
 * @option 
 * @option alive enemies
 * @option alive enemies not user
 * @option alive enemies not target
 * @option dead enemies
 * @option enemy index x
 * @option enemy ID x
 * @option 
 * @option alive battlers
 * @option alive battlers not user
 * @option alive battlers not target
 * @option dead battlers
 * @option 
 * @desc Select which unit(s) to move.
 * @default ["user"]
 *
 * @arg DistanceAdjust:str
 * @text Distance Adjustment
 * @type select
 * @option Normal - No adjustments made
 * @value none
 * @option Horizontal - Actors adjust left, Enemies adjust right
 * @value horz
 * @option Vertical - Actors adjust Up, Enemies adjust down
 * @value vert
 * @option Both - Applies both Horizontal and Vertical
 * @value horz + vert
 * @desc Makes adjustments to distance values to determine
 * which direction to move unit(s).
 * @default horz
 * 
 * @arg DistanceX:eval
 * @text Distance: X
 * @parent DistanceAdjust:str
 * @desc Horizontal distance to move.
 * You may use JavaScript code.
 * @default 48
 * 
 * @arg DistanceY:eval
 * @text Distance: Y
 * @parent DistanceAdjust:str
 * @desc Vertical distance to move.
 * You may use JavaScript code.
 * @default 0
 * 
 * @arg Duration:eval
 * @text Duration
 * @desc Duration in frames for total movement amount.
 * @default 12
 * 
 * @arg FaceDirection:eval
 * @text Face Destination?
 * @type boolean
 * @on Turn
 * @off Don't
 * @desc Turn and face the destination?
 * @default true
 *
 * @arg EasingType:str
 * @text Movement Easing
 * @type combo
 * @option Linear
 * @option InSine
 * @option OutSine
 * @option InOutSine
 * @option InQuad
 * @option OutQuad
 * @option InOutQuad
 * @option InCubic
 * @option OutCubic
 * @option InOutCubic
 * @option InQuart
 * @option OutQuart
 * @option InOutQuart
 * @option InQuint
 * @option OutQuint
 * @option InOutQuint
 * @option InExpo
 * @option OutExpo
 * @option InOutExpo
 * @option InCirc
 * @option OutCirc
 * @option InOutCirc
 * @option InBack
 * @option OutBack
 * @option InOutBack
 * @option InElastic
 * @option OutElastic
 * @option InOutElastic
 * @option InBounce
 * @option OutBounce
 * @option InOutBounce
 * @desc Select which easing type you wish to apply.
 * Requires VisuMZ_0_CoreEngine.
 * @default Linear
 *
 * @arg MotionType:str
 * @text Movement Motion
 * @type combo
 * @option walk
 * @option wait
 * @option chant
 * @option guard
 * @option damage
 * @option evade
 * @option thrust
 * @option swing
 * @option missile
 * @option skill
 * @option spell
 * @option item
 * @option escape
 * @option victory
 * @option dying
 * @option abnormal
 * @option sleep
 * @option dead
 * @desc Play this motion for the unit(s).
 * @default walk
 * 
 * @arg WaitForMovement:eval
 * @text Wait For Movement?
 * @type boolean
 * @on On
 * @off Off
 * @desc Wait for movement to complete before performing next command?
 * @default true
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Movement_MoveToJsPoint
 * @text MOVE: Move To JS Coordinates
 * @desc Moves unit(s) to specified JS Coordinates.
 * Sideview-only! Uses JavaScript!
 * 
 * @arg Targets:arraystr
 * @text Targets
 * @type combo[]
 * @option user
 * @option current target
 * @option prev target
 * @option next target
 * @option all targets
 * @option focus
 * @option not focus
 * @option
 * @option special
 * @option special x
 * @option 
 * @option alive friends
 * @option alive friends not user
 * @option alive friends not target
 * @option dead friends
 * @option friend index x
 * @option 
 * @option alive opponents
 * @option alive opponents not target
 * @option dead opponents
 * @option opponent index x
 * @option 
 * @option alive actors
 * @option alive actors not user
 * @option alive actors not target
 * @option dead actors
 * @option actor index x
 * @option actor ID x
 * @option 
 * @option alive enemies
 * @option alive enemies not user
 * @option alive enemies not target
 * @option dead enemies
 * @option enemy index x
 * @option enemy ID x
 * @option 
 * @option alive battlers
 * @option alive battlers not user
 * @option alive battlers not target
 * @option dead battlers
 * @option 
 * @desc Select which unit(s) to move.
 * @default ["user"]
 *
 * @arg DestinationJS:func
 * @text JS: Coordinates
 * @type note
 * @desc Code used to determine the coordinates for the
 * target(s) to move to.
 * @default "// Declare Variables\nconst target = arguments[0];\nlet goalX = 0;\nlet goalY = 0;\n\n// Calculations\ngoalX = Graphics.width / 2;\ngoalY = Graphics.height / 2;\n\n// Return Data\nreturn new Point(goalX, goalY);"
 *
 * @arg OffsetAdjust:str
 * @text Offset Adjustment
 * @parent Destination:str
 * @type select
 * @option Normal - No adjustments made
 * @value none
 * @option Horizontal - Actors adjust left, Enemies adjust right
 * @value horz
 * @option Vertical - Actors adjust Up, Enemies adjust down
 * @value vert
 * @option Both - Applies both Horizontal and Vertical
 * @value horz + vert
 * @desc Makes adjustments to offset values to determine
 * which direction to adjust the destination by.
 * @default horz
 * 
 * @arg OffsetX:eval
 * @text Offset: X
 * @parent OffsetAdjust:str
 * @desc Horizontal offset to move.
 * You may use JavaScript code.
 * @default 0
 * 
 * @arg OffsetY:eval
 * @text Offset: Y
 * @parent OffsetAdjust:str
 * @desc Vertical offset to move.
 * You may use JavaScript code.
 * @default 0
 * 
 * @arg Duration:eval
 * @text Duration
 * @desc Duration in frames for total movement amount.
 * @default 12
 * 
 * @arg FaceDirection:eval
 * @text Face Destination?
 * @type boolean
 * @on Turn
 * @off Don't
 * @desc Turn and face the destination?
 * @default true
 *
 * @arg EasingType:str
 * @text Movement Easing
 * @type combo
 * @option Linear
 * @option InSine
 * @option OutSine
 * @option InOutSine
 * @option InQuad
 * @option OutQuad
 * @option InOutQuad
 * @option InCubic
 * @option OutCubic
 * @option InOutCubic
 * @option InQuart
 * @option OutQuart
 * @option InOutQuart
 * @option InQuint
 * @option OutQuint
 * @option InOutQuint
 * @option InExpo
 * @option OutExpo
 * @option InOutExpo
 * @option InCirc
 * @option OutCirc
 * @option InOutCirc
 * @option InBack
 * @option OutBack
 * @option InOutBack
 * @option InElastic
 * @option OutElastic
 * @option InOutElastic
 * @option InBounce
 * @option OutBounce
 * @option InOutBounce
 * @desc Select which easing type you wish to apply.
 * Requires VisuMZ_0_CoreEngine.
 * @default Linear
 *
 * @arg MotionType:str
 * @text Movement Motion
 * @type combo
 * @option walk
 * @option wait
 * @option chant
 * @option guard
 * @option damage
 * @option evade
 * @option thrust
 * @option swing
 * @option missile
 * @option skill
 * @option spell
 * @option item
 * @option escape
 * @option victory
 * @option dying
 * @option abnormal
 * @option sleep
 * @option dead
 * @desc Play this motion for the unit(s).
 * @default walk
 * 
 * @arg WaitForMovement:eval
 * @text Wait For Movement?
 * @type boolean
 * @on On
 * @off Off
 * @desc Wait for movement to complete before performing next command?
 * @default true
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Movement_MoveToPoint
 * @text MOVE: Move To Point
 * @desc Moves unit(s) to a designated point on the screen.
 * Sideview-only! Points based off Graphics.boxWidth/Height.
 * 
 * @arg Targets:arraystr
 * @text Targets
 * @type combo[]
 * @option user
 * @option current target
 * @option prev target
 * @option next target
 * @option all targets
 * @option focus
 * @option not focus
 * @option
 * @option special
 * @option special x
 * @option 
 * @option alive friends
 * @option alive friends not user
 * @option alive friends not target
 * @option dead friends
 * @option friend index x
 * @option 
 * @option alive opponents
 * @option alive opponents not target
 * @option dead opponents
 * @option opponent index x
 * @option 
 * @option alive actors
 * @option alive actors not user
 * @option alive actors not target
 * @option dead actors
 * @option actor index x
 * @option actor ID x
 * @option 
 * @option alive enemies
 * @option alive enemies not user
 * @option alive enemies not target
 * @option dead enemies
 * @option enemy index x
 * @option enemy ID x
 * @option 
 * @option alive battlers
 * @option alive battlers not user
 * @option alive battlers not target
 * @option dead battlers
 * @option 
 * @desc Select which unit(s) to move.
 * @default ["user"]
 * 
 * @arg Destination:str
 * @text Destination Point
 * @type combo
 * @option home
 * @option center
 * @option point x, y
 * @desc Select which point to face.
 * Replace 'x' and 'y' with coordinates
 * @default home
 *
 * @arg OffsetAdjust:str
 * @text Offset Adjustment
 * @parent Destination:str
 * @type select
 * @option Normal - No adjustments made
 * @value none
 * @option Horizontal - Actors adjust left, Enemies adjust right
 * @value horz
 * @option Vertical - Actors adjust Up, Enemies adjust down
 * @value vert
 * @option Both - Applies both Horizontal and Vertical
 * @value horz + vert
 * @desc Makes adjustments to offset values to determine
 * which direction to adjust the destination by.
 * @default horz
 * 
 * @arg OffsetX:eval
 * @text Offset: X
 * @parent OffsetAdjust:str
 * @desc Horizontal offset to move.
 * You may use JavaScript code.
 * @default 0
 * 
 * @arg OffsetY:eval
 * @text Offset: Y
 * @parent OffsetAdjust:str
 * @desc Vertical offset to move.
 * You may use JavaScript code.
 * @default 0
 * 
 * @arg Duration:eval
 * @text Duration
 * @desc Duration in frames for total movement amount.
 * @default 12
 * 
 * @arg FaceDirection:eval
 * @text Face Destination?
 * @type boolean
 * @on Turn
 * @off Don't
 * @desc Turn and face the destination?
 * @default true
 *
 * @arg EasingType:str
 * @text Movement Easing
 * @type combo
 * @option Linear
 * @option InSine
 * @option OutSine
 * @option InOutSine
 * @option InQuad
 * @option OutQuad
 * @option InOutQuad
 * @option InCubic
 * @option OutCubic
 * @option InOutCubic
 * @option InQuart
 * @option OutQuart
 * @option InOutQuart
 * @option InQuint
 * @option OutQuint
 * @option InOutQuint
 * @option InExpo
 * @option OutExpo
 * @option InOutExpo
 * @option InCirc
 * @option OutCirc
 * @option InOutCirc
 * @option InBack
 * @option OutBack
 * @option InOutBack
 * @option InElastic
 * @option OutElastic
 * @option InOutElastic
 * @option InBounce
 * @option OutBounce
 * @option InOutBounce
 * @desc Select which easing type you wish to apply.
 * Requires VisuMZ_0_CoreEngine.
 * @default Linear
 *
 * @arg MotionType:str
 * @text Movement Motion
 * @type combo
 * @option walk
 * @option wait
 * @option chant
 * @option guard
 * @option damage
 * @option evade
 * @option thrust
 * @option swing
 * @option missile
 * @option skill
 * @option spell
 * @option item
 * @option escape
 * @option victory
 * @option dying
 * @option abnormal
 * @option sleep
 * @option dead
 * @desc Play this motion for the unit(s).
 * @default walk
 * 
 * @arg WaitForMovement:eval
 * @text Wait For Movement?
 * @type boolean
 * @on On
 * @off Off
 * @desc Wait for movement to complete before performing next command?
 * @default true
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Movement_MoveToTarget
 * @text MOVE: Move To Target(s)
 * @desc Moves unit(s) to another unit(s) on the battle field.
 * Sideview-only!
 * 
 * @arg Targets1:arraystr
 * @text Targets (Moving)
 * @type combo[]
 * @option user
 * @option current target
 * @option prev target
 * @option next target
 * @option all targets
 * @option focus
 * @option not focus
 * @option
 * @option special
 * @option special x
 * @option 
 * @option alive friends
 * @option alive friends not user
 * @option alive friends not target
 * @option dead friends
 * @option friend index x
 * @option 
 * @option alive opponents
 * @option alive opponents not target
 * @option dead opponents
 * @option opponent index x
 * @option 
 * @option alive actors
 * @option alive actors not user
 * @option alive actors not target
 * @option dead actors
 * @option actor index x
 * @option actor ID x
 * @option 
 * @option alive enemies
 * @option alive enemies not user
 * @option alive enemies not target
 * @option dead enemies
 * @option enemy index x
 * @option enemy ID x
 * @option 
 * @option alive battlers
 * @option alive battlers not user
 * @option alive battlers not target
 * @option dead battlers
 * @option 
 * @desc Select which unit(s) to move.
 * @default ["user"]
 * 
 * @arg Targets2:arraystr
 * @text Targets (Destination)
 * @type combo[]
 * @option user
 * @option current target
 * @option prev target
 * @option next target
 * @option all targets
 * @option focus
 * @option not focus
 * @option
 * @option special
 * @option special x
 * @option 
 * @option alive friends
 * @option alive friends not user
 * @option alive friends not target
 * @option dead friends
 * @option friend index x
 * @option 
 * @option alive opponents
 * @option alive opponents not target
 * @option dead opponents
 * @option opponent index x
 * @option 
 * @option alive actors
 * @option alive actors not user
 * @option alive actors not target
 * @option dead actors
 * @option actor index x
 * @option actor ID x
 * @option 
 * @option alive enemies
 * @option alive enemies not user
 * @option alive enemies not target
 * @option dead enemies
 * @option enemy index x
 * @option enemy ID x
 * @option 
 * @option alive battlers
 * @option alive battlers not user
 * @option alive battlers not target
 * @option dead battlers
 * @option 
 * @desc Select which unit(s) to move to.
 * @default ["all targets"]
 * 
 * @arg TargetLocation:str
 * @text Target Location
 * @parent Targets2:arraystr
 * @type combo
 * @option front head
 * @option front center
 * @option front base
 * @option middle head
 * @option middle center
 * @option middle base
 * @option back head
 * @option back center
 * @option back base
 * @desc Select which part target group to move to.
 * @default front base
 * 
 * @arg MeleeDistance:eval
 * @text Melee Distance
 * @parent TargetLocation:str
 * @desc The melee distance away from the target location
 * in addition to the battler's width.
 * @default 24
 *
 * @arg OffsetAdjust:str
 * @text Offset Adjustment
 * @parent Targets2:arraystr
 * @type select
 * @option Normal - No adjustments made
 * @value none
 * @option Horizontal - Actors adjust left, Enemies adjust right
 * @value horz
 * @option Vertical - Actors adjust Up, Enemies adjust down
 * @value vert
 * @option Both - Applies both Horizontal and Vertical
 * @value horz + vert
 * @desc Makes adjustments to offset values to determine
 * which direction to adjust the destination by.
 * @default horz
 * 
 * @arg OffsetX:eval
 * @text Offset: X
 * @parent OffsetAdjust:str
 * @desc Horizontal offset to move.
 * You may use JavaScript code.
 * @default 0
 * 
 * @arg OffsetY:eval
 * @text Offset: Y
 * @parent OffsetAdjust:str
 * @desc Vertical offset to move.
 * You may use JavaScript code.
 * @default 0
 * 
 * @arg Duration:eval
 * @text Duration
 * @desc Duration in frames for total movement amount.
 * @default 12
 * 
 * @arg FaceDirection:eval
 * @text Face Destination?
 * @type boolean
 * @on Turn
 * @off Don't
 * @desc Turn and face the destination?
 * @default true
 *
 * @arg EasingType:str
 * @text Movement Easing
 * @type combo
 * @option Linear
 * @option InSine
 * @option OutSine
 * @option InOutSine
 * @option InQuad
 * @option OutQuad
 * @option InOutQuad
 * @option InCubic
 * @option OutCubic
 * @option InOutCubic
 * @option InQuart
 * @option OutQuart
 * @option InOutQuart
 * @option InQuint
 * @option OutQuint
 * @option InOutQuint
 * @option InExpo
 * @option OutExpo
 * @option InOutExpo
 * @option InCirc
 * @option OutCirc
 * @option InOutCirc
 * @option InBack
 * @option OutBack
 * @option InOutBack
 * @option InElastic
 * @option OutElastic
 * @option InOutElastic
 * @option InBounce
 * @option OutBounce
 * @option InOutBounce
 * @desc Select which easing type you wish to apply.
 * Requires VisuMZ_0_CoreEngine.
 * @default Linear
 *
 * @arg MotionType:str
 * @text Movement Motion
 * @type combo
 * @option walk
 * @option wait
 * @option chant
 * @option guard
 * @option damage
 * @option evade
 * @option thrust
 * @option swing
 * @option missile
 * @option skill
 * @option spell
 * @option item
 * @option escape
 * @option victory
 * @option dying
 * @option abnormal
 * @option sleep
 * @option dead
 * @desc Play this motion for the unit(s).
 * @default walk
 * 
 * @arg WaitForMovement:eval
 * @text Wait For Movement?
 * @type boolean
 * @on On
 * @off Off
 * @desc Wait for movement to complete before performing next command?
 * @default true
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Movement_Opacity
 * @text MOVE: Opacity
 * @desc Causes the unit(s) to change opacity.
 * Sideview-only!
 * 
 * @arg Targets:arraystr
 * @text Targets
 * @type combo[]
 * @option user
 * @option current target
 * @option prev target
 * @option next target
 * @option all targets
 * @option focus
 * @option not focus
 * @option
 * @option special
 * @option special x
 * @option 
 * @option alive friends
 * @option alive friends not user
 * @option alive friends not target
 * @option dead friends
 * @option friend index x
 * @option 
 * @option alive opponents
 * @option alive opponents not target
 * @option dead opponents
 * @option opponent index x
 * @option 
 * @option alive actors
 * @option alive actors not user
 * @option alive actors not target
 * @option dead actors
 * @option actor index x
 * @option actor ID x
 * @option 
 * @option alive enemies
 * @option alive enemies not user
 * @option alive enemies not target
 * @option dead enemies
 * @option enemy index x
 * @option enemy ID x
 * @option 
 * @option alive battlers
 * @option alive battlers not user
 * @option alive battlers not target
 * @option dead battlers
 * @option 
 * @desc Select which unit(s) to change opacity.
 * @default ["user"]
 * 
 * @arg Opacity:eval
 * @text Desired Opacity
 * @desc Change to this opacity value.
 * You may use JavaScript code.
 * @default 255
 * 
 * @arg Duration:eval
 * @text Duration
 * @desc Duration in frames for opacity change.
 * @default 12
 *
 * @arg EasingType:str
 * @text Opacity Easing
 * @type combo
 * @option Linear
 * @option InSine
 * @option OutSine
 * @option InOutSine
 * @option InQuad
 * @option OutQuad
 * @option InOutQuad
 * @option InCubic
 * @option OutCubic
 * @option InOutCubic
 * @option InQuart
 * @option OutQuart
 * @option InOutQuart
 * @option InQuint
 * @option OutQuint
 * @option InOutQuint
 * @option InExpo
 * @option OutExpo
 * @option InOutExpo
 * @option InCirc
 * @option OutCirc
 * @option InOutCirc
 * @option InBack
 * @option OutBack
 * @option InOutBack
 * @option InElastic
 * @option OutElastic
 * @option InOutElastic
 * @option InBounce
 * @option OutBounce
 * @option InOutBounce
 * @desc Select which easing type you wish to apply.
 * Requires VisuMZ_0_CoreEngine.
 * @default Linear
 * 
 * @arg WaitForOpacity:eval
 * @text Wait For Opacity?
 * @type boolean
 * @on On
 * @off Off
 * @desc Wait for opacity changes to complete before performing next command?
 * @default true
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Movement_Scale
 * @text MOVE: Scale/Grow/Shrink
 * @desc Causes the unit(s) to scale, grow, or shrink?.
 * Sideview-only!
 * 
 * @arg Targets:arraystr
 * @text Targets
 * @type combo[]
 * @option user
 * @option current target
 * @option prev target
 * @option next target
 * @option all targets
 * @option focus
 * @option not focus
 * @option
 * @option special
 * @option special x
 * @option 
 * @option alive friends
 * @option alive friends not user
 * @option alive friends not target
 * @option dead friends
 * @option friend index x
 * @option 
 * @option alive opponents
 * @option alive opponents not target
 * @option dead opponents
 * @option opponent index x
 * @option 
 * @option alive actors
 * @option alive actors not user
 * @option alive actors not target
 * @option dead actors
 * @option actor index x
 * @option actor ID x
 * @option 
 * @option alive enemies
 * @option alive enemies not user
 * @option alive enemies not target
 * @option dead enemies
 * @option enemy index x
 * @option enemy ID x
 * @option 
 * @option alive battlers
 * @option alive battlers not user
 * @option alive battlers not target
 * @option dead battlers
 * @option 
 * @desc Select which unit(s) to change the scale of.
 * @default ["user"]
 * 
 * @arg ScaleX:eval
 * @text Scale X
 * @desc What target scale value do you want?
 * 1.0 is normal size.
 * @default 1.00
 * 
 * @arg ScaleY:eval
 * @text Scale Y
 * @desc What target scale value do you want?
 * 1.0 is normal size.
 * @default 1.00
 * 
 * @arg Duration:eval
 * @text Duration
 * @desc Duration in frames to scale for.
 * @default 12
 *
 * @arg EasingType:str
 * @text Scale Easing
 * @type combo
 * @option Linear
 * @option InSine
 * @option OutSine
 * @option InOutSine
 * @option InQuad
 * @option OutQuad
 * @option InOutQuad
 * @option InCubic
 * @option OutCubic
 * @option InOutCubic
 * @option InQuart
 * @option OutQuart
 * @option InOutQuart
 * @option InQuint
 * @option OutQuint
 * @option InOutQuint
 * @option InExpo
 * @option OutExpo
 * @option InOutExpo
 * @option InCirc
 * @option OutCirc
 * @option InOutCirc
 * @option InBack
 * @option OutBack
 * @option InOutBack
 * @option InElastic
 * @option OutElastic
 * @option InOutElastic
 * @option InBounce
 * @option OutBounce
 * @option InOutBounce
 * @desc Select which easing type you wish to apply.
 * Requires VisuMZ_0_CoreEngine.
 * @default Linear
 * 
 * @arg WaitForScale:eval
 * @text Wait For Scale?
 * @type boolean
 * @on On
 * @off Off
 * @desc Wait for scaling to complete before performing next command?
 * @default true
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Movement_Skew
 * @text MOVE: Skew/Distort
 * @desc Causes the unit(s) to skew.
 * Sideview-only!
 * 
 * @arg Targets:arraystr
 * @text Targets
 * @type combo[]
 * @option user
 * @option current target
 * @option prev target
 * @option next target
 * @option all targets
 * @option focus
 * @option not focus
 * @option
 * @option special
 * @option special x
 * @option 
 * @option alive friends
 * @option alive friends not user
 * @option alive friends not target
 * @option dead friends
 * @option friend index x
 * @option 
 * @option alive opponents
 * @option alive opponents not target
 * @option dead opponents
 * @option opponent index x
 * @option 
 * @option alive actors
 * @option alive actors not user
 * @option alive actors not target
 * @option dead actors
 * @option actor index x
 * @option actor ID x
 * @option 
 * @option alive enemies
 * @option alive enemies not user
 * @option alive enemies not target
 * @option dead enemies
 * @option enemy index x
 * @option enemy ID x
 * @option 
 * @option alive battlers
 * @option alive battlers not user
 * @option alive battlers not target
 * @option dead battlers
 * @option 
 * @desc Select which unit(s) to skew.
 * @default ["user"]
 * 
 * @arg SkewX:eval
 * @text Skew X
 * @desc X variance to skew?
 * Use small values for the best results.
 * @default 0.00
 * 
 * @arg SkewY:eval
 * @text Skew Y
 * @desc Y variance to skew?
 * Use small values for the best results.
 * @default 0.00
 * 
 * @arg Duration:eval
 * @text Duration
 * @desc Duration in frames to skew for.
 * @default 12
 *
 * @arg EasingType:str
 * @text Skew Easing
 * @type combo
 * @option Linear
 * @option InSine
 * @option OutSine
 * @option InOutSine
 * @option InQuad
 * @option OutQuad
 * @option InOutQuad
 * @option InCubic
 * @option OutCubic
 * @option InOutCubic
 * @option InQuart
 * @option OutQuart
 * @option InOutQuart
 * @option InQuint
 * @option OutQuint
 * @option InOutQuint
 * @option InExpo
 * @option OutExpo
 * @option InOutExpo
 * @option InCirc
 * @option OutCirc
 * @option InOutCirc
 * @option InBack
 * @option OutBack
 * @option InOutBack
 * @option InElastic
 * @option OutElastic
 * @option InOutElastic
 * @option InBounce
 * @option OutBounce
 * @option InOutBounce
 * @desc Select which easing type you wish to apply.
 * Requires VisuMZ_0_CoreEngine.
 * @default Linear
 * 
 * @arg WaitForSkew:eval
 * @text Wait For Skew?
 * @type boolean
 * @on On
 * @off Off
 * @desc Wait for skew to complete before performing next command?
 * @default true
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Movement_Spin
 * @text MOVE: Spin/Rotate
 * @desc Causes the unit(s) to spin.
 * Sideview-only!
 * 
 * @arg Targets:arraystr
 * @text Targets
 * @type combo[]
 * @option user
 * @option current target
 * @option prev target
 * @option next target
 * @option all targets
 * @option focus
 * @option not focus
 * @option
 * @option special
 * @option special x
 * @option 
 * @option alive friends
 * @option alive friends not user
 * @option alive friends not target
 * @option dead friends
 * @option friend index x
 * @option 
 * @option alive opponents
 * @option alive opponents not target
 * @option dead opponents
 * @option opponent index x
 * @option 
 * @option alive actors
 * @option alive actors not user
 * @option alive actors not target
 * @option dead actors
 * @option actor index x
 * @option actor ID x
 * @option 
 * @option alive enemies
 * @option alive enemies not user
 * @option alive enemies not target
 * @option dead enemies
 * @option enemy index x
 * @option enemy ID x
 * @option 
 * @option alive battlers
 * @option alive battlers not user
 * @option alive battlers not target
 * @option dead battlers
 * @option 
 * @desc Select which unit(s) to spin.
 * @default ["user"]
 * 
 * @arg Angle:eval
 * @text Angle
 * @desc How many degrees to spin?
 * @default 360
 * 
 * @arg Duration:eval
 * @text Duration
 * @desc Duration in frames to spin for.
 * @default 12
 *
 * @arg EasingType:str
 * @text Spin Easing
 * @type combo
 * @option Linear
 * @option InSine
 * @option OutSine
 * @option InOutSine
 * @option InQuad
 * @option OutQuad
 * @option InOutQuad
 * @option InCubic
 * @option OutCubic
 * @option InOutCubic
 * @option InQuart
 * @option OutQuart
 * @option InOutQuart
 * @option InQuint
 * @option OutQuint
 * @option InOutQuint
 * @option InExpo
 * @option OutExpo
 * @option InOutExpo
 * @option InCirc
 * @option OutCirc
 * @option InOutCirc
 * @option InBack
 * @option OutBack
 * @option InOutBack
 * @option InElastic
 * @option OutElastic
 * @option InOutElastic
 * @option InBounce
 * @option OutBounce
 * @option InOutBounce
 * @desc Select which easing type you wish to apply.
 * Requires VisuMZ_0_CoreEngine.
 * @default Linear
 * 
 * @arg RevertAngle:eval
 * @text Revert Angle on Finish
 * @type boolean
 * @on Revert
 * @off Don't
 * @desc Revert angle after spinning?
 * @default true
 * 
 * @arg WaitForSpin:eval
 * @text Wait For Spin?
 * @type boolean
 * @on On
 * @off Off
 * @desc Wait for spin to complete before performing next command?
 * @default true
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Movement_WaitForFloat
 * @text MOVE: Wait For Float
 * @desc Waits for floating to complete before performing next command.
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Movement_WaitForJump
 * @text MOVE: Wait For Jump
 * @desc Waits for jumping to complete before performing next command.
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Movement_WaitForMovement
 * @text MOVE: Wait For Movement
 * @desc Waits for movement to complete before performing next command.
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Movement_WaitForOpacity
 * @text MOVE: Wait For Opacity
 * @desc Waits for opacity changes to complete before performing next command.
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Movement_WaitForScale
 * @text MOVE: Wait For Scale
 * @desc Waits for scaling to complete before performing next command.
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Movement_WaitForSkew
 * @text MOVE: Wait For Skew
 * @desc Waits for skewing to complete before performing next command.
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Movement_WaitForSpin
 * @text MOVE: Wait For Spin
 * @desc Waits for spinning to complete before performing next command.
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActionSequenceSpaceProjectile
 * @text -
 * @desc -
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActionSequenceBreakProjectile
 * @text Action Sequences - Projectiles
 * @desc Create projectiles on the screen and fire them off at a target.
 * Requires VisuMZ_3_ActSeqProjectiles!
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Projectile_Animation
 * @text PROJECTILE: Animation
 * @desc Create an animation projectile and fire it at a target.
 * Requires VisuMZ_3_ActSeqProjectiles!
 * 
 * @arg Coordinates
 *
 * @arg Start:struct
 * @text Start Location
 * @parent Coordinates
 * @type struct<ProjectileStart>
 * @desc Settings to determine where the projectile(s) start from.
 * @default {"Type:str":"target","Targets:arraystr":"[\"user\"]","TargetCenter:eval":"false","PointX:eval":"Graphics.width / 2","PointY:eval":"Graphics.height / 2","OffsetX:eval":"+0","OffsetY:eval":"+0"}
 *
 * @arg Goal:struct
 * @text Goal Location
 * @parent Coordinates
 * @type struct<ProjectileGoal>
 * @desc Settings to determine where the projectile(s) start from.
 * @default {"Type:str":"target","Targets:arraystr":"[\"all targets\"]","TargetCenter:eval":"false","PointX:eval":"Graphics.width / 2","PointY:eval":"Graphics.height / 2","OffsetX:eval":"+0","OffsetY:eval":"+0"}
 * 
 * @arg Settings
 *
 * @arg AnimationID:num
 * @text Animation ID
 * @parent Settings
 * @type animation
 * @desc Determine which animation to use as a projectile.
 * @default 77
 * 
 * @arg Duration:eval
 * @text Duration
 * @parent Settings
 * @desc Duration for the projectile(s) to travel.
 * @default 20
 * 
 * @arg WaitForProjectile:eval
 * @text Wait For Projectile?
 * @parent Settings
 * @type boolean
 * @on On
 * @off Off
 * @desc Wait for projectile(s) to reach their destination before
 * going onto the next command?
 * @default true
 * 
 * @arg WaitForAnimation:eval
 * @text Wait For Animation?
 * @parent Settings
 * @type boolean
 * @on On
 * @off Off
 * @desc Wait for animation to finish before going to the next command?
 * @default false
 * 
 * @arg Extra:struct
 * @text Extra Settings
 * @type struct<ProjectileExAni>
 * @desc Add extra settings to the projectile?
 * @default {"AutoAngle:eval":"true","AngleOffset:eval":"+0","Arc:eval":"0","EasingType:str":"Linear","Spin:eval":"+0.0"}
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Projectile_Icon
 * @text PROJECTILE: Icon
 * @desc Create an icon projectile and fire it at a target.
 * Requires VisuMZ_3_ActSeqProjectiles!
 * 
 * @arg Coordinates
 *
 * @arg Start:struct
 * @text Start Location
 * @parent Coordinates
 * @type struct<ProjectileStart>
 * @desc Settings to determine where the projectile(s) start from.
 * @default {"Type:str":"target","Targets:arraystr":"[\"user\"]","TargetCenter:eval":"false","PointX:eval":"Graphics.width / 2","PointY:eval":"Graphics.height / 2","OffsetX:eval":"+0","OffsetY:eval":"+0"}
 *
 * @arg Goal:struct
 * @text Goal Location
 * @parent Coordinates
 * @type struct<ProjectileGoal>
 * @desc Settings to determine where the projectile(s) start from.
 * @default {"Type:str":"target","Targets:arraystr":"[\"all targets\"]","TargetCenter:eval":"false","PointX:eval":"Graphics.width / 2","PointY:eval":"Graphics.height / 2","OffsetX:eval":"+0","OffsetY:eval":"+0"}
 * 
 * @arg Settings
 *
 * @arg Icon:eval
 * @text Icon Index
 * @parent Settings
 * @desc Determine which icon to use as a projectile.
 * You may use JavaScript code.
 * @default 118
 * 
 * @arg Duration:eval
 * @text Duration
 * @parent Settings
 * @desc Duration for the projectile(s) to travel.
 * @default 20
 * 
 * @arg WaitForProjectile:eval
 * @text Wait For Projectile?
 * @parent Settings
 * @type boolean
 * @on On
 * @off Off
 * @desc Wait for projectile(s) to reach their destination before
 * going onto the next command?
 * @default true
 * 
 * @arg Extra:struct
 * @text Extra Settings
 * @type struct<ProjectileExtra>
 * @desc Add extra settings to the projectile?
 * @default {"AutoAngle:eval":"true","AngleOffset:eval":"+0","Arc:eval":"0","BlendMode:num":"0","EasingType:str":"Linear","Hue:eval":"0","Scale:eval":"1.0","Spin:eval":"+0.0"}
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Projectile_Picture
 * @text PROJECTILE: Picture
 * @desc Create a picture projectile and fire it at a target.
 * Requires VisuMZ_3_ActSeqProjectiles!
 * 
 * @arg Coordinates
 *
 * @arg Start:struct
 * @text Start Location
 * @parent Coordinates
 * @type struct<ProjectileStart>
 * @desc Settings to determine where the projectile(s) start from.
 * @default {"Type:str":"target","Targets:arraystr":"[\"user\"]","TargetCenter:eval":"false","PointX:eval":"Graphics.width / 2","PointY:eval":"Graphics.height / 2","OffsetX:eval":"+0","OffsetY:eval":"+0"}
 *
 * @arg Goal:struct
 * @text Goal Location
 * @parent Coordinates
 * @type struct<ProjectileGoal>
 * @desc Settings to determine where the projectile(s) start from.
 * @default {"Type:str":"target","Targets:arraystr":"[\"all targets\"]","TargetCenter:eval":"false","PointX:eval":"Graphics.width / 2","PointY:eval":"Graphics.height / 2","OffsetX:eval":"+0","OffsetY:eval":"+0"}
 * 
 * @arg Settings
 *
 * @arg Picture:str
 * @text Picture Filename
 * @parent Settings
 * @type file
 * @dir img/pictures/
 * @desc Determine which picture to use as a projectile.
 * @default Untitled
 * 
 * @arg Duration:eval
 * @text Duration
 * @parent Settings
 * @desc Duration for the projectile(s) to travel.
 * @default 20
 * 
 * @arg WaitForProjectile:eval
 * @text Wait For Projectile?
 * @parent Settings
 * @type boolean
 * @on On
 * @off Off
 * @desc Wait for projectile(s) to reach their destination before
 * going onto the next command?
 * @default true
 * 
 * @arg Extra:struct
 * @text Extra Settings
 * @type struct<ProjectileExtra>
 * @desc Add extra settings to the projectile?
 * @default {"AutoAngle:eval":"true","AngleOffset:eval":"+0","Arc:eval":"0","BlendMode:num":"0","EasingType:str":"Linear","Hue:eval":"0","Scale:eval":"1.0","Spin:eval":"+0.0"}
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActionSequenceSpaceSkew
 * @text -
 * @desc -
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActionSequenceBreakSkew
 * @text Action Sequences - Skew
 * @desc Allows you to have control over the camera skew.
 * Requires VisuMZ_3_ActSeqCamera!
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_ChangeSkew
 * @text SKEW: Change Skew
 * @desc Changes the camera skew.
 * Requires VisuMZ_3_ActSeqCamera!
 * 
 * @arg SkewX:eval
 * @text Skew X
 * @desc Change the camera skew X to this value.
 * @default 0
 * 
 * @arg SkewY:eval
 * @text Skew Y
 * @desc Change the camera skew Y to this value.
 * @default 0
 * 
 * @arg Duration:eval
 * @text Duration
 * @desc Duration in frames to change camera skew.
 * @default 60
 *
 * @arg EasingType:str
 * @text Skew Easing
 * @type combo
 * @option Linear
 * @option InSine
 * @option OutSine
 * @option InOutSine
 * @option InQuad
 * @option OutQuad
 * @option InOutQuad
 * @option InCubic
 * @option OutCubic
 * @option InOutCubic
 * @option InQuart
 * @option OutQuart
 * @option InOutQuart
 * @option InQuint
 * @option OutQuint
 * @option InOutQuint
 * @option InExpo
 * @option OutExpo
 * @option InOutExpo
 * @option InCirc
 * @option OutCirc
 * @option InOutCirc
 * @option InBack
 * @option OutBack
 * @option InOutBack
 * @option InElastic
 * @option OutElastic
 * @option InOutElastic
 * @option InBounce
 * @option OutBounce
 * @option InOutBounce
 * @desc Select which easing type you wish to apply.
 * Requires VisuMZ_0_CoreEngine.
 * @default InOutSine
 * 
 * @arg WaitForSkew:eval
 * @text Wait For Skew?
 * @type boolean
 * @on On
 * @off Off
 * @desc Wait for skew changes to complete before performing next command?
 * @default true
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Skew_Reset
 * @text SKEW: Reset Skew
 * @desc Reset any skew settings.
 * Requires VisuMZ_3_ActSeqCamera!
 * 
 * @arg Duration:eval
 * @text Duration
 * @desc Duration in frames to reset camera skew.
 * @default 60
 *
 * @arg EasingType:str
 * @text Skew Easing
 * @type combo
 * @option Linear
 * @option InSine
 * @option OutSine
 * @option InOutSine
 * @option InQuad
 * @option OutQuad
 * @option InOutQuad
 * @option InCubic
 * @option OutCubic
 * @option InOutCubic
 * @option InQuart
 * @option OutQuart
 * @option InOutQuart
 * @option InQuint
 * @option OutQuint
 * @option InOutQuint
 * @option InExpo
 * @option OutExpo
 * @option InOutExpo
 * @option InCirc
 * @option OutCirc
 * @option InOutCirc
 * @option InBack
 * @option OutBack
 * @option InOutBack
 * @option InElastic
 * @option OutElastic
 * @option InOutElastic
 * @option InBounce
 * @option OutBounce
 * @option InOutBounce
 * @desc Select which easing type you wish to apply.
 * Requires VisuMZ_0_CoreEngine.
 * @default InOutSine
 * 
 * @arg WaitForSkew:eval
 * @text Wait For Skew?
 * @type boolean
 * @on On
 * @off Off
 * @desc Wait for skew changes to complete before performing next command?
 * @default true
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Skew_WaitForSkew
 * @text SKEW: Wait For Skew
 * @desc Waits for skew changes to complete before performing next command.
 * Requires VisuMZ_3_ActSeqCamera!
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActionSequenceSpaceTarget
 * @text -
 * @desc -
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActionSequenceBreakTarget
 * @text Action Sequences - Target
 * @desc If using a manual target by target Action Sequence,
 * these commands will give you full control over its usage.
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Target_CurrentIndex
 * @text TARGET: Current Index
 * @desc Sets the current index to this value.
 * Then decide to jump to a label (optional).
 * 
 * @arg Index:eval
 * @text Set Index To
 * @desc Sets current targeting index to this value.
 * 0 is the starting index of a target group.
 * @default 0
 * 
 * @arg JumpToLabel:str
 * @text Jump To Label
 * @desc If a target is found after the index change,
 * jump to this label in the Common Event.
 * @default Untitled
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Target_NextTarget
 * @text TARGET: Next Target
 * @desc Moves index forward by 1 to select a new current target.
 * Then decide to jump to a label (optional).
 * 
 * @arg JumpToLabel:str
 * @text Jump To Label
 * @desc If a target is found after the index change,
 * jump to this label in the Common Event.
 * @default Untitled
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Target_PrevTarget
 * @text TARGET: Previous Target
 * @desc Moves index backward by 1 to select a new current target.
 * Then decide to jump to a label (optional).
 * 
 * @arg JumpToLabel:str
 * @text Jump To Label
 * @desc If a target is found after the index change,
 * jump to this label in the Common Event.
 * @default Untitled
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Target_RandTarget
 * @text TARGET: Random Target
 * @desc Sets index randomly to determine new currernt target.
 * Then decide to jump to a label (optional).
 * 
 * @arg ForceRandom:eval
 * @text Force Random?
 * @type boolean
 * @on On
 * @off Off
 * @desc Index cannot be its previous index amount after random.
 * @default false
 * 
 * @arg JumpToLabel:str
 * @text Jump To Label
 * @desc If a target is found after the index change,
 * jump to this label in the Common Event.
 * @default Untitled
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActionSequenceSpaceVoice
 * @text -
 * @desc -
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActionSequenceBreakVoice
 * @text Action Sequences - Voice
 * @desc Allows you to play battle voices.
 * Requires VisuMZ_3_BattleVoices!
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_BattleVoice_PlayCommonLine
 * @text VOICE: Play Common Line
 * @desc Plays a common voice line from target battler(s).
 * Requires VisuMZ_3_BattleVoices!
 * 
 * @arg Targets:arraystr
 * @text Speaker Target(s)
 * @type combo[]
 * @option user
 * @option current target
 * @option prev target
 * @option next target
 * @option all targets
 * @option focus
 * @option not focus
 * @option
 * @option special
 * @option special x
 * @option 
 * @option alive friends
 * @option alive friends not user
 * @option alive friends not target
 * @option dead friends
 * @option friend index x
 * @option 
 * @option alive opponents
 * @option alive opponents not target
 * @option dead opponents
 * @option opponent index x
 * @option 
 * @option alive actors
 * @option alive actors not user
 * @option alive actors not target
 * @option dead actors
 * @option actor index x
 * @option actor ID x
 * @option 
 * @option alive enemies
 * @option alive enemies not user
 * @option alive enemies not target
 * @option dead enemies
 * @option enemy index x
 * @option enemy ID x
 * @option 
 * @option alive battlers
 * @option alive battlers not user
 * @option alive battlers not target
 * @option dead battlers
 * @option 
 * @desc Select unit(s) to play voice lines from.
 * @default ["user"]
 *
 * @arg VoiceLine:str
 * @text Voice Line
 * @type select
 * @option -
 * @value -
 * @option ---Battle Phase---
 * @value -
 * @option On Battle Start
 * @value BattleStart
 * @option On Battle Input
 * @value BattleInput
 * @option On Battle Victory
 * @value BattleVictory
 * @option Victory => Level Up
 * @value BattleVictoryLevelUp
 * @option Escape => Success
 * @value BattleEscapeSuccess
 * @option Escape => Failure
 * @value BattleEscapeFailure
 * @option -
 * @value -
 * @option ---On Action Start---
 * @value -
 * @option Basic Action => Regular Attack
 * @value ActionStartBasicAttack
 * @option Basic Action => Regular Guard
 * @value ActionStartBasicGuard
 * @option Skill Usage For Allies => Certain Hit
 * @value ActionStartSkillAllyCertainHit
 * @option Skill Usage For Allies => Physical
 * @value ActionStartSkillAllyPhysical
 * @option Skill Usage For Allies => Magical
 * @value ActionStartSkillAllyMagical
 * @option Skill Usage For Enemies => Certain Hit
 * @value ActionStartSkillEnemyCertainHit
 * @option Skill Usage For Enemies => Physical
 * @value ActionStartSkillEnemyPhysical
 * @option Skill Usage For Enemies => Magical
 * @value ActionStartSkillEnemyMagical
 * @option Item Usage For Allies
 * @value ActionStartItemAlly
 * @option Item Usage For Enemies
 * @value ActionStartItemEnemy
 * @option -
 * @value -
 * @option ---Perform Action---
 * @value -
 * @option Basic Action => Attack Motion
 * @value PerformActionBasicAttack
 * @option Basic Action => Critical Action
 * @value PerformActionCritical
 * @option Basic Action => Defeat Opponent
 * @value PerformActionDefeatFoe
 * @option Basic Action => Missed Action
 * @value PerformActionMiss
 * @option Skill Usage => Certain Hit
 * @value PerformActionSkillCertainHit
 * @option Skill Usage => Physical
 * @value PerformActionSkillPhysical
 * @option Skill Usage => Magical
 * @value PerformActionSkillMagical
 * @option -
 * @value -
 * @option ---On HP Change---
 * @value -
 * @option Life State => On Death
 * @value HpChangeDeath
 * @option Life State => On Revive
 * @value HpChangeRevive
 * @option On Damage => Damage <= 0%
 * @value HpChangeDamageNone
 * @option On Damage => Damage < 25%
 * @value HpChangeDamageLight
 * @option On Damage => Damage < 50%
 * @value HpChangeDamageMedium
 * @option On Damage => Damage >= 50%
 * @value HpChangeDamageHeavy
 * @option On Damage => Guarding Damage
 * @value HpChangeDamageGuard
 * @option On Recovery => Recovery < 25%
 * @value HpChangeRecoverLight
 * @option On Recovery => Recovery < 50%
 * @value HpChangeRecoverMedium
 * @option On Recovery => Recovery >= 50%
 * @value HpChangeRecoverHeavy
 * @option -
 * @value -
 * @option ---On Action Result---
 * @value -
 * @option On Miss/Evasion
 * @value ActionResultEvasion
 * @option On Magic Evasion
 * @value ActionResultMagicEvasion
 * @option On Counter
 * @value ActionResultCounter
 * @option On Reflection
 * @value ActionResultReflection
 * @option On Substitute
 * @value ActionResultSubstitute
 * @option -
 * @value -
 * @option ---Buff/Debuff Related---
 * @value -
 * @option On Buff Apply
 * @value BuffAdd
 * @option On Buff Remove
 * @value BuffRemove
 * @option On Debuff Apply
 * @value DebuffAdd
 * @option On Debuff Remove
 * @value DebuffRemove
 * @option -
 * @value -
 * @option ---State Related---
 * @value -
 * @option Positive States => On State Apply
 * @value StatePositiveAdd
 * @option Positive States => text On State Remove
 * @value StatePositiveRemove
 * @option Negative States => On State Apply
 * @value StateNegativeAdd
 * @option Negative States => On State Remove
 * @value StateNegativeRemove
 * @option Neutral States => On State Apply
 * @value StateNeutralAdd
 * @option Neutral States => On State Remove
 * @value StateNeutralRemove
 * @option -
 * @value -
 * @option ---Miscellaneous---
 * @value -
 * @option Voice Preview
 * @value CharaCreatePreview
 * @option -
 * @value -
 * @desc What voice line do you wish to play?
 * @default ActionStartBasicAttack
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_BattleVoice_PlaySpecialLine
 * @text VOICE: Play Special Line
 * @desc Plays a special voice line from target battler(s).
 * Requires VisuMZ_3_BattleVoices!
 * 
 * @arg Targets:arraystr
 * @text Speaker Target(s)
 * @type combo[]
 * @option user
 * @option current target
 * @option prev target
 * @option next target
 * @option all targets
 * @option focus
 * @option not focus
 * @option
 * @option special
 * @option special x
 * @option 
 * @option alive friends
 * @option alive friends not user
 * @option alive friends not target
 * @option dead friends
 * @option friend index x
 * @option 
 * @option alive opponents
 * @option alive opponents not target
 * @option dead opponents
 * @option opponent index x
 * @option 
 * @option alive actors
 * @option alive actors not user
 * @option alive actors not target
 * @option dead actors
 * @option actor index x
 * @option actor ID x
 * @option 
 * @option alive enemies
 * @option alive enemies not user
 * @option alive enemies not target
 * @option dead enemies
 * @option enemy index x
 * @option enemy ID x
 * @option 
 * @option alive battlers
 * @option alive battlers not user
 * @option alive battlers not target
 * @option dead battlers
 * @option 
 * @desc Select unit(s) to play voice lines from.
 * @default ["user"]
 *
 * @arg VoiceLineType:str
 * @text Voice Line Type
 * @type select
 * @option Action Name
 * @value ActionName
 * @option Chant Line
 * @value ChantLine
 * @option Item Name
 * @value ItemName
 * @option Skill Name
 * @value SkillName
 * @option Spell Name
 * @value SpellName
 * @option Unique Lines
 * @value UniqueLine
 * @desc What voice line type do you wish to play?
 * @default ActionName
 *
 * @arg Letter:str
 * @text Name / Letter
 * @type select
 * @option A
 * @option B
 * @option C
 * @option D
 * @option E
 * @option F
 * @option G
 * @option H
 * @option I
 * @option J
 * @option K
 * @option L
 * @option M
 * @option N
 * @option O
 * @option P
 * @option Q
 * @option R
 * @option S
 * @option T
 * @option U
 * @option V
 * @option W
 * @option X
 * @option Y
 * @option Z
 * @desc What voice letter/name do you want to play?
 * @default A
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActionSequenceSpaceWeapon
 * @text -
 * @desc -
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActionSequenceBreakWeapon
 * @text Action Sequences - Weapon
 * @desc Allows for finer control over Dual/Multi Wielding actors.
 * Only works for Actors.
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Weapon_ClearActiveWeapon
 * @text WEAPON: Clear Weapon Slot
 * @desc Clears the active weapon slot (making others valid again).
 * Only works for Actors.
 * 
 * @arg Targets:arraystr
 * @text Targets
 * @type combo[]
 * @option user
 * @option current target
 * @option prev target
 * @option next target
 * @option all targets
 * @option focus
 * @option not focus
 * @option
 * @option special
 * @option special x
 * @option 
 * @option alive friends
 * @option alive friends not user
 * @option alive friends not target
 * @option dead friends
 * @option friend index x
 * @option 
 * @option alive opponents
 * @option alive opponents not target
 * @option dead opponents
 * @option opponent index x
 * @option 
 * @option alive actors
 * @option alive actors not user
 * @option alive actors not target
 * @option dead actors
 * @option actor index x
 * @option actor ID x
 * @option 
 * @desc Select unit(s) to clear the active weapon slot for.
 * @default ["user"]
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Weapon_NextActiveWeapon
 * @text WEAPON: Next Weapon Slot
 * @desc Goes to next active weapon slot (making others invalid).
 * If next slot is weaponless, don't label jump.
 * 
 * @arg Targets:arraystr
 * @text Targets
 * @type combo[]
 * @option user
 * @option current target
 * @option prev target
 * @option next target
 * @option all targets
 * @option focus
 * @option not focus
 * @option
 * @option special
 * @option special x
 * @option 
 * @option alive friends
 * @option alive friends not user
 * @option alive friends not target
 * @option dead friends
 * @option friend index x
 * @option 
 * @option alive opponents
 * @option alive opponents not target
 * @option dead opponents
 * @option opponent index x
 * @option 
 * @option alive actors
 * @option alive actors not user
 * @option alive actors not target
 * @option dead actors
 * @option actor index x
 * @option actor ID x
 * @option 
 * @desc Select unit(s) to change the next active weapon slot for.
 * @default ["user"]
 * 
 * @arg JumpToLabel:str
 * @text Jump To Label
 * @desc If a weapon is found after the index change,
 * jump to this label in the Common Event.
 * @default Untitled
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Weapon_SetActiveWeapon
 * @text WEAPON: Set Weapon Slot
 * @desc Sets the active weapon slot (making others invalid).
 * Only works for Actors.
 * 
 * @arg Targets:arraystr
 * @text Targets
 * @type combo[]
 * @option user
 * @option current target
 * @option prev target
 * @option next target
 * @option all targets
 * @option focus
 * @option not focus
 * @option
 * @option special
 * @option special x
 * @option 
 * @option alive friends
 * @option alive friends not user
 * @option alive friends not target
 * @option dead friends
 * @option friend index x
 * @option 
 * @option alive opponents
 * @option alive opponents not target
 * @option dead opponents
 * @option opponent index x
 * @option 
 * @option alive actors
 * @option alive actors not user
 * @option alive actors not target
 * @option dead actors
 * @option actor index x
 * @option actor ID x
 * @option 
 * @desc Select unit(s) to change the active weapon slot for.
 * @default ["user"]
 * 
 * @arg SlotID:eval
 * @text Weapon Slot ID
 * @desc Select weapon slot to make active (making others invalid).
 * Use 0 to clear and normalize. You may use JavaScript code.
 * @default 1
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActionSequenceSpaceZoom
 * @text -
 * @desc -
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActionSequenceBreakZoom
 * @text Action Sequences - Zoom
 * @desc Allows you to have control over the screen zoom.
 * Requires VisuMZ_3_ActSeqCamera!
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Zoom_Scale
 * @text ZOOM: Change Scale
 * @desc Changes the zoom scale.
 * Requires VisuMZ_3_ActSeqCamera!
 * 
 * @arg Scale:eval
 * @text Scale
 * @desc The zoom scale to change to.
 * @default 1.0
 * 
 * @arg Duration:eval
 * @text Duration
 * @desc Duration in frames to change battle zoom.
 * @default 60
 *
 * @arg EasingType:str
 * @text Zoom Easing
 * @type combo
 * @option Linear
 * @option InSine
 * @option OutSine
 * @option InOutSine
 * @option InQuad
 * @option OutQuad
 * @option InOutQuad
 * @option InCubic
 * @option OutCubic
 * @option InOutCubic
 * @option InQuart
 * @option OutQuart
 * @option InOutQuart
 * @option InQuint
 * @option OutQuint
 * @option InOutQuint
 * @option InExpo
 * @option OutExpo
 * @option InOutExpo
 * @option InCirc
 * @option OutCirc
 * @option InOutCirc
 * @option InBack
 * @option OutBack
 * @option InOutBack
 * @option InElastic
 * @option OutElastic
 * @option InOutElastic
 * @option InBounce
 * @option OutBounce
 * @option InOutBounce
 * @desc Select which easing type you wish to apply.
 * Requires VisuMZ_0_CoreEngine.
 * @default InOutSine
 * 
 * @arg WaitForZoom:eval
 * @text Wait For Zoom?
 * @type boolean
 * @on On
 * @off Off
 * @desc Wait for zoom changes to complete before performing next command?
 * @default true
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Zoom_Reset
 * @text ZOOM: Reset Zoom
 * @desc Reset any zoom settings.
 * Requires VisuMZ_3_ActSeqCamera!
 * 
 * @arg Duration:eval
 * @text Duration
 * @desc Duration in frames to reset battle zoom.
 * @default 60
 *
 * @arg EasingType:str
 * @text Zoom Easing
 * @type combo
 * @option Linear
 * @option InSine
 * @option OutSine
 * @option InOutSine
 * @option InQuad
 * @option OutQuad
 * @option InOutQuad
 * @option InCubic
 * @option OutCubic
 * @option InOutCubic
 * @option InQuart
 * @option OutQuart
 * @option InOutQuart
 * @option InQuint
 * @option OutQuint
 * @option InOutQuint
 * @option InExpo
 * @option OutExpo
 * @option InOutExpo
 * @option InCirc
 * @option OutCirc
 * @option InOutCirc
 * @option InBack
 * @option OutBack
 * @option InOutBack
 * @option InElastic
 * @option OutElastic
 * @option InOutElastic
 * @option InBounce
 * @option OutBounce
 * @option InOutBounce
 * @desc Select which easing type you wish to apply.
 * Requires VisuMZ_0_CoreEngine.
 * @default InOutSine
 * 
 * @arg WaitForZoom:eval
 * @text Wait For Zoom?
 * @type boolean
 * @on On
 * @off Off
 * @desc Wait for zoom changes to complete before performing next command?
 * @default true
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActSeq_Zoom_WaitForZoom
 * @text ZOOM: Wait For Zoom
 * @desc Waits for zoom to complete before performing next command.
 * Requires VisuMZ_3_ActSeqCamera!
 *
 * @ --------------------------------------------------------------------------
 *
 * @command ActionSequenceSpaceEnd
 * @text -
 * @desc -
 *
 * @ --------------------------------------------------------------------------
 *
 * @ ==========================================================================
 * @ Plugin Parameters
 * @ ==========================================================================
 *
 * @param BreakHead
 * @text --------------------------
 * @default ----------------------------------
 *
 * @param BattleCore
 * @default Plugin Parameters
 *
 * @param ATTENTION
 * @default READ THE HELP FILE
 *
 * @param BreakSettings
 * @text --------------------------
 * @default ----------------------------------
 *
 * @param AutoBattle:struct
 * @text Auto Battle Settings
 * @type struct<AutoBattle>
 * @desc Settings pertaining to Auto Battle.
 * @default {"BattleDisplay":"","AutoBattleMsg:str":"Press %1 or %2 to stop Auto Battle","AutoBattleOK:str":"OK","AutoBattleCancel:str":"Cancel","AutoBattleBgType:num":"1","AutoBattleRect:func":"\"const width = Graphics.width;\\nconst height = this.calcWindowHeight(1, false);\\nconst x = 0;\\nconst y = (Graphics.height - height) / 2;\\nreturn new Rectangle(x, y, width, height);\"","Options":"","AddOption:eval":"true","AdjustRect:eval":"true","StartName:str":"Auto Battle Start","StyleName:str":"Auto Battle Style","StyleOFF:str":"Attack","StyleON:str":"Skills"}
 *
 * @param Damage:struct
 * @text Damage Settings
 * @type struct<Damage>
 * @desc Settings pertaining to damage calculations.
 * @default {"DamageStyles":"","DefaultDamageStyle:str":"Standard","DamageStyleList:arraystruct":"[\"{\\\"Name:str\\\":\\\"Standard\\\",\\\"Formula:func\\\":\\\"\\\\\\\"// Declare Constants\\\\\\\\nconst user = this.subject();\\\\\\\\nconst target = arguments[0];\\\\\\\\nconst item = this.item();\\\\\\\\nconst a = this.subject();\\\\\\\\nconst b = target;\\\\\\\\nconst v = $gameVariables._data;\\\\\\\\nconst sign = [3, 4].includes(item.damage.type) ? -1 : 1;\\\\\\\\n\\\\\\\\n// Replace Formula\\\\\\\\nlet formula = item.damage.formula;\\\\\\\\nif (SceneManager.isSceneBattle() && !this.isCertainHit()) {\\\\\\\\n    const fmt = 'Math.max(this.applyArmorModifiers(b, %1), 0)';\\\\\\\\n    formula = formula.replace(/b.def/g, fmt.format('b.def'));\\\\\\\\n    formula = formula.replace(/b.mdf/g, fmt.format('b.mdf'));\\\\\\\\n    formula = formula.replace(/b.agi/g, fmt.format('b.agi'));\\\\\\\\n    formula = formula.replace(/b.luk/g, fmt.format('b.luk'));\\\\\\\\n}\\\\\\\\n\\\\\\\\n// Calculate Damage\\\\\\\\nlet value = Math.max(eval(formula), 0);\\\\\\\\n\\\\\\\\n// Return Value\\\\\\\\nreturn (isNaN(value) ? 0 : value) * sign;\\\\\\\"\\\",\\\"ItemsEquipsCore\\\":\\\"\\\",\\\"DamageType\\\":\\\"\\\",\\\"DamageType1:str\\\":\\\"%1 Damage Multiplier\\\",\\\"DamageType2:str\\\":\\\"%1 Damage Multiplier\\\",\\\"DamageType3:str\\\":\\\"%1 Recovery Multiplier\\\",\\\"DamageType4:str\\\":\\\"%1 Recovery Multiplier\\\",\\\"DamageType5:str\\\":\\\"%1 Drain Multiplier\\\",\\\"DamageType6:str\\\":\\\"%1 Drain Multiplier\\\",\\\"DamageDisplay:func\\\":\\\"\\\\\\\"return this.getItemDamageAmountTextOriginal();\\\\\\\"\\\"}\",\"{\\\"Name:str\\\":\\\"Armor Scaling\\\",\\\"Formula:func\\\":\\\"\\\\\\\"// Declare Constants\\\\\\\\nconst user = this.subject();\\\\\\\\nconst target = arguments[0];\\\\\\\\nconst item = this.item();\\\\\\\\nconst a = this.subject();\\\\\\\\nconst b = target;\\\\\\\\nconst v = $gameVariables._data;\\\\\\\\nconst sign = [3, 4].includes(item.damage.type) ? -1 : 1;\\\\\\\\n\\\\\\\\n// Replace Formula\\\\\\\\nlet formula = item.damage.formula;\\\\\\\\nif (SceneManager.isSceneBattle() && !this.isCertainHit()) {\\\\\\\\n    const fmt = 'Math.max(this.applyArmorModifiers(b, %1), 1)';\\\\\\\\n    formula = formula.replace(/b.def/g, fmt.format('b.def'));\\\\\\\\n    formula = formula.replace(/b.mdf/g, fmt.format('b.mdf'));\\\\\\\\n    formula = formula.replace(/b.agi/g, fmt.format('b.agi'));\\\\\\\\n    formula = formula.replace(/b.luk/g, fmt.format('b.luk'));\\\\\\\\n}\\\\\\\\n\\\\\\\\n// Calculate Damage\\\\\\\\nlet value = Math.max(eval(formula), 0);\\\\\\\\n\\\\\\\\n// Apply Defender's Defense Parameter\\\\\\\\nif (this.isDamage() && !this.isCertainHit()) {\\\\\\\\n\\\\\\\\n    // Calculate Base Armor\\\\\\\\n    let armor = this.isPhysical() ? b.def : b.mdf;\\\\\\\\n    armor = this.applyArmorModifiers(target, armor);\\\\\\\\n\\\\\\\\n    // Apply Armor to Damage\\\\\\\\n    if (armor >= 0) {\\\\\\\\n        value *= 100 / (100 + armor);\\\\\\\\n    } else {\\\\\\\\n        value *= 2 - (100 / (100 - armor));\\\\\\\\n    }\\\\\\\\n}\\\\\\\\n\\\\\\\\n// Return Value\\\\\\\\nreturn (isNaN(value) ? 0 : value) * sign;\\\\\\\"\\\",\\\"ItemsEquipsCore\\\":\\\"\\\",\\\"DamageType\\\":\\\"\\\",\\\"DamageType1:str\\\":\\\"%1 Damage Multiplier\\\",\\\"DamageType2:str\\\":\\\"%1 Damage Multiplier\\\",\\\"DamageType3:str\\\":\\\"%1 Recovery Multiplier\\\",\\\"DamageType4:str\\\":\\\"%1 Recovery Multiplier\\\",\\\"DamageType5:str\\\":\\\"%1 Drain Multiplier\\\",\\\"DamageType6:str\\\":\\\"%1 Drain Multiplier\\\",\\\"DamageDisplay:func\\\":\\\"\\\\\\\"return this.getItemDamageAmountTextOriginal();\\\\\\\"\\\"}\",\"{\\\"Name:str\\\":\\\"CT\\\",\\\"Formula:func\\\":\\\"\\\\\\\"// Define Constants\\\\\\\\nconst user = this.subject();\\\\\\\\nconst target = arguments[0];\\\\\\\\nconst item = this.item();\\\\\\\\nconst a = this.subject();\\\\\\\\nconst b = target;\\\\\\\\nconst v = $gameVariables._data;\\\\\\\\nconst sign = [3, 4].includes(item.damage.type) ? -1 : 1;\\\\\\\\n\\\\\\\\n// Create Multiplier\\\\\\\\nconst multiplier = Math.max(eval(item.damage.formula), 0);\\\\\\\\n\\\\\\\\n// Declare Values\\\\\\\\nlet value = 0;\\\\\\\\nlet level = Math.max(a.level || a.luk, 1);\\\\\\\\nlet armor = this.isPhysical() ? b.def : b.mdf;\\\\\\\\narmor = Math.max(this.applyArmorModifiers(target, armor), 0);\\\\\\\\nlet attackStat = 0;\\\\\\\\nif (this.isPhysical() && (this.isDamage() || this.isDrain())) {\\\\\\\\n    attackStat = a.atk;\\\\\\\\n} else if (this.isMagical() && (this.isDamage() || this.isDrain())) {\\\\\\\\n    attackStat =  a.mat;\\\\\\\\n} else if (this.isPhysical() && this.isRecover()) {\\\\\\\\n    attackStat =  a.def;\\\\\\\\n} else if (this.isMagical() && this.isRecover()) {\\\\\\\\n    attackStat =  a.mdf;\\\\\\\\n}\\\\\\\\n\\\\\\\\n// Calculate Damage\\\\\\\\nattackStat = (attackStat * 1.75) + (level ** 2 / 45.5);\\\\\\\\nvalue = attackStat * 4;\\\\\\\\nif (this.isPhysical() && (this.isDamage() || this.isDrain())) {\\\\\\\\n    value *= Math.max(256 - armor, 0) / 256;\\\\\\\\n} else if (this.isMagical() && (this.isDamage() || this.isDrain())) {\\\\\\\\n    value *= Math.max(102.4 - armor, 0) / 128;\\\\\\\\n}\\\\\\\\nvalue *= multiplier;\\\\\\\\n\\\\\\\\n// Return Value\\\\\\\\nreturn (isNaN(value) ? 0 : value) * sign;\\\\\\\"\\\",\\\"ItemsEquipsCore\\\":\\\"\\\",\\\"DamageType\\\":\\\"\\\",\\\"DamageType1:str\\\":\\\"%1 Damage Multiplier\\\",\\\"DamageType2:str\\\":\\\"%1 Damage Multiplier\\\",\\\"DamageType3:str\\\":\\\"%1 Recovery Multiplier\\\",\\\"DamageType4:str\\\":\\\"%1 Recovery Multiplier\\\",\\\"DamageType5:str\\\":\\\"%1 Drain Multiplier\\\",\\\"DamageType6:str\\\":\\\"%1 Drain Multiplier\\\",\\\"DamageDisplay:func\\\":\\\"\\\\\\\"// Define Constants\\\\\\\\nconst item = this._item;\\\\\\\\nconst formula = item.damage.formula;\\\\\\\\nconst a = this._tempActorA;\\\\\\\\nconst b = this._tempActorB;\\\\\\\\nconst user = a;\\\\\\\\nconst target = b;\\\\\\\\n\\\\\\\\n// Return Value\\\\\\\\ntry {\\\\\\\\n    const value = Math.max(eval(formula), 0);\\\\\\\\n    return '%1%'.format(Math.round(value * 100));\\\\\\\\n} catch (e) {\\\\\\\\n    if ($gameTemp.isPlaytest()) {\\\\\\\\n        console.log('Damage Formula Error for %1'.format(this._item.name));\\\\\\\\n    }\\\\\\\\n    return '?????';\\\\\\\\n}\\\\\\\"\\\"}\",\"{\\\"Name:str\\\":\\\"D4\\\",\\\"Formula:func\\\":\\\"\\\\\\\"// Define Constants\\\\\\\\nconst user = this.subject();\\\\\\\\nconst target = arguments[0];\\\\\\\\nconst item = this.item();\\\\\\\\nconst a = this.subject();\\\\\\\\nconst b = target;\\\\\\\\nconst v = $gameVariables._data;\\\\\\\\nconst sign = [3, 4].includes(item.damage.type) ? -1 : 1;\\\\\\\\n\\\\\\\\n// Create Multiplier\\\\\\\\nconst multiplier = Math.max(eval(item.damage.formula), 0);\\\\\\\\n\\\\\\\\n// Declare Values\\\\\\\\nlet armor = this.isPhysical() ? b.def : b.mdf;\\\\\\\\narmor = this.applyArmorModifiers(target, armor);\\\\\\\\nlet stat = 0;\\\\\\\\nif (this.isPhysical() && (this.isDamage() || this.isDrain())) {\\\\\\\\n    stat = a.atk;\\\\\\\\n} else if (this.isMagical() && (this.isDamage() || this.isDrain())) {\\\\\\\\n    stat = a.mat;\\\\\\\\n} else if (this.isPhysical() && this.isRecover()) {\\\\\\\\n    stat = a.def;\\\\\\\\n    armor = 0;\\\\\\\\n} else if (this.isMagical() && this.isRecover()) {\\\\\\\\n    stat = a.mdf;\\\\\\\\n    armor = 0;\\\\\\\\n}\\\\\\\\n\\\\\\\\n// Calculate Damage \\\\\\\\nlet value = 1.5 * Math.max(2 * stat * multiplier - armor, 1) * multiplier / 5;\\\\\\\\n\\\\\\\\n// Return Value\\\\\\\\nreturn (isNaN(value) ? 0 : value) * sign;\\\\\\\"\\\",\\\"ItemsEquipsCore\\\":\\\"\\\",\\\"DamageType\\\":\\\"\\\",\\\"DamageType1:str\\\":\\\"%1 Damage Multiplier\\\",\\\"DamageType2:str\\\":\\\"%1 Damage Multiplier\\\",\\\"DamageType3:str\\\":\\\"%1 Recovery Multiplier\\\",\\\"DamageType4:str\\\":\\\"%1 Recovery Multiplier\\\",\\\"DamageType5:str\\\":\\\"%1 Drain Multiplier\\\",\\\"DamageType6:str\\\":\\\"%1 Drain Multiplier\\\",\\\"DamageDisplay:func\\\":\\\"\\\\\\\"// Define Constants\\\\\\\\nconst item = this._item;\\\\\\\\nconst formula = item.damage.formula;\\\\\\\\nconst a = this._tempActorA;\\\\\\\\nconst b = this._tempActorB;\\\\\\\\nconst user = a;\\\\\\\\nconst target = b;\\\\\\\\n\\\\\\\\n// Return Value\\\\\\\\ntry {\\\\\\\\n    const value = Math.max(eval(formula), 0);\\\\\\\\n    return '%1%'.format(Math.round(value * 100));\\\\\\\\n} catch (e) {\\\\\\\\n    if ($gameTemp.isPlaytest()) {\\\\\\\\n        console.log('Damage Formula Error for %1'.format(this._item.name));\\\\\\\\n    }\\\\\\\\n    return '?????';\\\\\\\\n}\\\\\\\"\\\"}\",\"{\\\"Name:str\\\":\\\"DQ\\\",\\\"Formula:func\\\":\\\"\\\\\\\"// Define Constants\\\\\\\\nconst user = this.subject();\\\\\\\\nconst target = arguments[0];\\\\\\\\nconst item = this.item();\\\\\\\\nconst a = this.subject();\\\\\\\\nconst b = target;\\\\\\\\nconst v = $gameVariables._data;\\\\\\\\nconst sign = [3, 4].includes(item.damage.type) ? -1 : 1;\\\\\\\\n\\\\\\\\n// Create Multiplier\\\\\\\\nlet multiplier = Math.max(eval(item.damage.formula), 0);\\\\\\\\nif (this.isCertainHit()) {\\\\\\\\n    let value = multiplier * Math.max(a.atk, a.mat);\\\\\\\\n    return (isNaN(value) ? 0 : value) * sign;\\\\\\\\n}\\\\\\\\n\\\\\\\\n// Get Primary Stats\\\\\\\\nlet armor = this.isPhysical() ? b.def : b.mdf;\\\\\\\\narmor = this.applyArmorModifiers(b, armor);\\\\\\\\nlet stat = 1;\\\\\\\\nif (this.isPhysical() && (this.isDamage() || this.isDrain())) {\\\\\\\\n    stat = a.atk;\\\\\\\\n} else if (this.isMagical() && (this.isDamage() || this.isDrain())) {\\\\\\\\n    stat = a.mat;\\\\\\\\n} else if (this.isPhysical() && this.isRecover()) {\\\\\\\\n    stat = a.def;\\\\\\\\n} else if (this.isMagical() && this.isRecover()) {\\\\\\\\n    stat = a.mdf;\\\\\\\\n}\\\\\\\\n\\\\\\\\n// Check for Recovery\\\\\\\\nif (this.isRecover()) {\\\\\\\\n    let value = stat * multiplier * sign;\\\\\\\\n    return isNaN(value) ? 0 : value;\\\\\\\\n}\\\\\\\\n\\\\\\\\n// Calculate Damage\\\\\\\\nlet value = 0;\\\\\\\\nif (stat < ((2 + armor) / 2)) {\\\\\\\\n    // Plink Damage\\\\\\\\n    let baseline = Math.max(stat - ((12 * (armor - stat + 1)) / stat), 5);\\\\\\\\n    value = baseline / 3;\\\\\\\\n} else {\\\\\\\\n    // Normal Damage\\\\\\\\n    let baseline = Math.max(stat - (armor / 2), 1);\\\\\\\\n    value = baseline / 2;\\\\\\\\n}\\\\\\\\nvalue *= multiplier;\\\\\\\\n\\\\\\\\n// Return Value\\\\\\\\nreturn isNaN(value) ? 0 : value;\\\\\\\"\\\",\\\"ItemsEquipsCore\\\":\\\"\\\",\\\"DamageType\\\":\\\"\\\",\\\"DamageType1:str\\\":\\\"%1 Damage Multiplier\\\",\\\"DamageType2:str\\\":\\\"%1 Damage Multiplier\\\",\\\"DamageType3:str\\\":\\\"%1 Recovery Multiplier\\\",\\\"DamageType4:str\\\":\\\"%1 Recovery Multiplier\\\",\\\"DamageType5:str\\\":\\\"%1 Drain Multiplier\\\",\\\"DamageType6:str\\\":\\\"%1 Drain Multiplier\\\",\\\"DamageDisplay:func\\\":\\\"\\\\\\\"// Define Constants\\\\\\\\nconst item = this._item;\\\\\\\\nconst formula = item.damage.formula;\\\\\\\\nconst a = this._tempActorA;\\\\\\\\nconst b = this._tempActorB;\\\\\\\\nconst user = a;\\\\\\\\nconst target = b;\\\\\\\\n\\\\\\\\n// Return Value\\\\\\\\ntry {\\\\\\\\n    const value = Math.max(eval(formula), 0);\\\\\\\\n    return '%1%'.format(Math.round(value * 100));\\\\\\\\n} catch (e) {\\\\\\\\n    if ($gameTemp.isPlaytest()) {\\\\\\\\n        console.log('Damage Formula Error for %1'.format(this._item.name));\\\\\\\\n    }\\\\\\\\n    return '?????';\\\\\\\\n}\\\\\\\"\\\"}\",\"{\\\"Name:str\\\":\\\"FF7\\\",\\\"Formula:func\\\":\\\"\\\\\\\"// Define Constants\\\\\\\\nconst user = this.subject();\\\\\\\\nconst target = arguments[0];\\\\\\\\nconst item = this.item();\\\\\\\\nconst a = this.subject();\\\\\\\\nconst b = target;\\\\\\\\nconst v = $gameVariables._data;\\\\\\\\nconst sign = [3, 4].includes(item.damage.type) ? -1 : 1;\\\\\\\\n\\\\\\\\n// Create Power\\\\\\\\nconst power = Math.max(eval(item.damage.formula), 0);\\\\\\\\n\\\\\\\\n// Declare base Damage\\\\\\\\nlet baseDamage = 0;\\\\\\\\nlet level = Math.max(a.level || a.luk, 1);\\\\\\\\nif (this.isPhysical() && (this.isDamage() || this.isDrain())) {\\\\\\\\n    baseDamage = a.atk + ((a.atk + level) / 32) * ((a.atk * level) / 32);\\\\\\\\n} else if (this.isMagical() && (this.isDamage() || this.isDrain())) {\\\\\\\\n    baseDamage = 6 * (a.mat + level);\\\\\\\\n} else if (this.isPhysical() && this.isRecover()) {\\\\\\\\n    baseDamage = 6 * (a.def + level);\\\\\\\\n} else if (this.isMagical() && this.isRecover()) {\\\\\\\\n    baseDamage = 6 * (a.mdf + level);\\\\\\\\n}\\\\\\\\n\\\\\\\\n// Calculate Final Damage\\\\\\\\nlet value = baseDamage;\\\\\\\\nlet armor = this.isPhysical() ? b.def : b.mdf;\\\\\\\\narmor = this.applyArmorModifiers(target, armor);\\\\\\\\nif (this.isRecover()) {\\\\\\\\n    value += 22 * power;\\\\\\\\n} else {\\\\\\\\n    value = (power * Math.max(512 - armor, 1) * baseDamage) / (16 * 512);\\\\\\\\n}\\\\\\\\n\\\\\\\\n// Return Value\\\\\\\\nreturn (isNaN(value) ? 0 : value) * sign;\\\\\\\"\\\",\\\"ItemsEquipsCore\\\":\\\"\\\",\\\"DamageType\\\":\\\"\\\",\\\"DamageType1:str\\\":\\\"%1 Damage Power\\\",\\\"DamageType2:str\\\":\\\"%1 Damage Power\\\",\\\"DamageType3:str\\\":\\\"%1 Recovery Power\\\",\\\"DamageType4:str\\\":\\\"%1 Recovery Power\\\",\\\"DamageType5:str\\\":\\\"%1 Drain Power\\\",\\\"DamageType6:str\\\":\\\"%1 Drain Power\\\",\\\"DamageDisplay:func\\\":\\\"\\\\\\\"// Define Constants\\\\\\\\nconst item = this._item;\\\\\\\\nconst formula = item.damage.formula;\\\\\\\\nconst a = this._tempActorA;\\\\\\\\nconst b = this._tempActorB;\\\\\\\\nconst user = a;\\\\\\\\nconst target = b;\\\\\\\\n\\\\\\\\n// Return Value\\\\\\\\ntry {\\\\\\\\n    return formula;\\\\\\\\n} catch (e) {\\\\\\\\n    if ($gameTemp.isPlaytest()) {\\\\\\\\n        console.log('Damage Formula Error for %1'.format(this._item.name));\\\\\\\\n    }\\\\\\\\n    return '?????';\\\\\\\\n}\\\\\\\"\\\"}\",\"{\\\"Name:str\\\":\\\"FF8\\\",\\\"Formula:func\\\":\\\"\\\\\\\"// Define Constants\\\\\\\\nconst user = this.subject();\\\\\\\\nconst target = arguments[0];\\\\\\\\nconst item = this.item();\\\\\\\\nconst a = this.subject();\\\\\\\\nconst b = target;\\\\\\\\nconst v = $gameVariables._data;\\\\\\\\nconst sign = [3, 4].includes(item.damage.type) ? -1 : 1;\\\\\\\\n\\\\\\\\n// Create Power\\\\\\\\nconst power = Math.max(eval(item.damage.formula), 0);\\\\\\\\n\\\\\\\\n// Declare Damage\\\\\\\\nlet Value = 0;\\\\\\\\nlet level = Math.max(a.level || a.luk, 1);\\\\\\\\nlet armor = this.isPhysical() ? b.def : b.mdf;\\\\\\\\narmor = this.applyArmorModifiers(target, armor);\\\\\\\\nif (this.isPhysical() && (this.isDamage() || this.isDrain())) {\\\\\\\\n    value = a.atk ** 2 / 16 + a.atk;\\\\\\\\n    value *= Math.max(265 - armor, 1) / 256;\\\\\\\\n    value *= power / 16;\\\\\\\\n} else if (this.isMagical() && (this.isDamage() || this.isDrain())) {\\\\\\\\n    value = a.mat + power;\\\\\\\\n    value *= Math.max(265 - armor, 1) / 4;\\\\\\\\n    value *= power / 256;\\\\\\\\n} else if (this.isPhysical() && this.isRecover()) {\\\\\\\\n    value = (power + a.def) * power / 2;\\\\\\\\n} else if (this.isMagical() && this.isRecover()) {\\\\\\\\n    value = (power + a.mdf) * power / 2;\\\\\\\\n}\\\\\\\\n\\\\\\\\n// Return Value\\\\\\\\nreturn (isNaN(value) ? 0 : value) * sign;\\\\\\\"\\\",\\\"ItemsEquipsCore\\\":\\\"\\\",\\\"DamageType\\\":\\\"\\\",\\\"DamageType1:str\\\":\\\"%1 Damage Power\\\",\\\"DamageType2:str\\\":\\\"%1 Damage Power\\\",\\\"DamageType3:str\\\":\\\"%1 Recovery Power\\\",\\\"DamageType4:str\\\":\\\"%1 Recovery Power\\\",\\\"DamageType5:str\\\":\\\"%1 Drain Power\\\",\\\"DamageType6:str\\\":\\\"%1 Drain Power\\\",\\\"DamageDisplay:func\\\":\\\"\\\\\\\"// Define Constants\\\\\\\\nconst item = this._item;\\\\\\\\nconst formula = item.damage.formula;\\\\\\\\nconst a = this._tempActorA;\\\\\\\\nconst b = this._tempActorB;\\\\\\\\nconst user = a;\\\\\\\\nconst target = b;\\\\\\\\n\\\\\\\\n// Return Value\\\\\\\\ntry {\\\\\\\\n    return formula;\\\\\\\\n} catch (e) {\\\\\\\\n    if ($gameTemp.isPlaytest()) {\\\\\\\\n        console.log('Damage Formula Error for %1'.format(this._item.name));\\\\\\\\n    }\\\\\\\\n    return '?????';\\\\\\\\n}\\\\\\\"\\\"}\",\"{\\\"Name:str\\\":\\\"FF9\\\",\\\"Formula:func\\\":\\\"\\\\\\\"// Define Constants\\\\\\\\nconst user = this.subject();\\\\\\\\nconst target = arguments[0];\\\\\\\\nconst item = this.item();\\\\\\\\nconst a = this.subject();\\\\\\\\nconst b = target;\\\\\\\\nconst v = $gameVariables._data;\\\\\\\\nconst sign = [3, 4].includes(item.damage.type) ? -1 : 1;\\\\\\\\n\\\\\\\\n// Create Damage Constant\\\\\\\\nconst power = Math.max(eval(item.damage.formula), 0);\\\\\\\\nif (this.isCertainHit()) {\\\\\\\\n    return (isNaN(power) ? 0 : power) * sign;\\\\\\\\n}\\\\\\\\n\\\\\\\\n// Declare Main Stats\\\\\\\\nlet armor = this.isPhysical() ? b.def : b.mdf;\\\\\\\\narmor = this.applyArmorModifiers(b, armor);\\\\\\\\nlet stat = 1;\\\\\\\\nif (this.isPhysical() && (this.isDamage() || this.isDrain())) {\\\\\\\\n    stat = a.atk;\\\\\\\\n} else if (this.isMagical() && (this.isDamage() || this.isDrain())) {\\\\\\\\n    stat = a.mat;\\\\\\\\n} else if (this.isPhysical() && this.isRecover()) {\\\\\\\\n    stat = a.def;\\\\\\\\n} else if (this.isMagical() && this.isRecover()) {\\\\\\\\n    stat = a.mdf;\\\\\\\\n}\\\\\\\\n\\\\\\\\n// Declare Base Damage\\\\\\\\nlet baseDamage = power;\\\\\\\\nif (this.isPhysical()) {\\\\\\\\n    baseDamage += stat;\\\\\\\\n}\\\\\\\\nif (this.isDamage() || this.isDrain()) {\\\\\\\\n    baseDamage -= armor;\\\\\\\\n    baseDamage = Math.max(1, baseDamage);\\\\\\\\n}\\\\\\\\n\\\\\\\\n// Declare Bonus Damage\\\\\\\\nlet bonusDamage = stat + (((a.level || a.luk) + stat) / 8);\\\\\\\\n\\\\\\\\n// Declare Final Damage\\\\\\\\nlet value = baseDamage * bonusDamage * sign;\\\\\\\\n\\\\\\\\n// Return Value\\\\\\\\nreturn isNaN(value) ? 0 : value;\\\\\\\"\\\",\\\"ItemsEquipsCore\\\":\\\"\\\",\\\"DamageType\\\":\\\"\\\",\\\"DamageType1:str\\\":\\\"%1 Damage Power\\\",\\\"DamageType2:str\\\":\\\"%1 Damage Power\\\",\\\"DamageType3:str\\\":\\\"%1 Recovery Power\\\",\\\"DamageType4:str\\\":\\\"%1 Recovery Power\\\",\\\"DamageType5:str\\\":\\\"%1 Drain Power\\\",\\\"DamageType6:str\\\":\\\"%1 Drain Power\\\",\\\"DamageDisplay:func\\\":\\\"\\\\\\\"// Define Constants\\\\\\\\nconst item = this._item;\\\\\\\\nconst formula = item.damage.formula;\\\\\\\\nconst a = this._tempActorA;\\\\\\\\nconst b = this._tempActorB;\\\\\\\\nconst user = a;\\\\\\\\nconst target = b;\\\\\\\\n\\\\\\\\n// Return Value\\\\\\\\ntry {\\\\\\\\n    return formula;\\\\\\\\n} catch (e) {\\\\\\\\n    if ($gameTemp.isPlaytest()) {\\\\\\\\n        console.log('Damage Formula Error for %1'.format(this._item.name));\\\\\\\\n    }\\\\\\\\n    return '?????';\\\\\\\\n}\\\\\\\"\\\"}\",\"{\\\"Name:str\\\":\\\"FF10\\\",\\\"Formula:func\\\":\\\"\\\\\\\"// Define Constants\\\\\\\\nconst user = this.subject();\\\\\\\\nconst target = arguments[0];\\\\\\\\nconst item = this.item();\\\\\\\\nconst a = this.subject();\\\\\\\\nconst b = target;\\\\\\\\nconst v = $gameVariables._data;\\\\\\\\nconst sign = [3, 4].includes(item.damage.type) ? -1 : 1;\\\\\\\\n\\\\\\\\n// Create Damage Constant\\\\\\\\nconst power = Math.max(eval(item.damage.formula), 0);\\\\\\\\nif (this.isCertainHit()) {\\\\\\\\n    return (isNaN(power) ? 0 : power) * sign;\\\\\\\\n}\\\\\\\\n\\\\\\\\n// Create Damage Offense Value\\\\\\\\nlet value = power;\\\\\\\\n\\\\\\\\nif (this.isPhysical() && (this.isDamage() || this.isDrain())) {\\\\\\\\n    value = (((a.atk ** 3) / 32) + 32) * power / 16;\\\\\\\\n} else if (this.isMagical() && (this.isDamage() || this.isDrain())) {\\\\\\\\n    value = power * ((a.mat ** 2 / 6) + power) / 4;\\\\\\\\n} else if (this.isPhysical() && this.isRecover()) {\\\\\\\\n    value = power * ((a.def + power) / 2);\\\\\\\\n} else if (this.isMagical() && this.isRecover()) {\\\\\\\\n    value = power * ((a.mdf + power) / 2);\\\\\\\\n}\\\\\\\\n\\\\\\\\n// Apply Damage Defense Value\\\\\\\\nif (this.isDamage() || this.isDrain()) {\\\\\\\\n    let armor = this.isPhysical() ? b.def : b.mdf;\\\\\\\\n    armor = this.applyArmorModifiers(b, armor);\\\\\\\\n    armor = Math.max(armor, 1);\\\\\\\\n    value *= ((((armor - 280.4) ** 2) / 110) / 16) / 730;\\\\\\\\n    value *= (730 - (armor * 51 - (armor ** 2) / 11) / 10) / 730;\\\\\\\\n} else if (this.isRecover()) {\\\\\\\\n    value *= -1;\\\\\\\\n}\\\\\\\\n\\\\\\\\n// Return Value\\\\\\\\nreturn isNaN(value) ? 0 : value;\\\\\\\"\\\",\\\"ItemsEquipsCore\\\":\\\"\\\",\\\"DamageType\\\":\\\"\\\",\\\"DamageType1:str\\\":\\\"%1 Damage Power\\\",\\\"DamageType2:str\\\":\\\"%1 Damage Power\\\",\\\"DamageType3:str\\\":\\\"%1 Recovery Power\\\",\\\"DamageType4:str\\\":\\\"%1 Recovery Power\\\",\\\"DamageType5:str\\\":\\\"%1 Drain Power\\\",\\\"DamageType6:str\\\":\\\"%1 Drain Power\\\",\\\"DamageDisplay:func\\\":\\\"\\\\\\\"// Define Constants\\\\\\\\nconst item = this._item;\\\\\\\\nconst formula = item.damage.formula;\\\\\\\\nconst a = this._tempActorA;\\\\\\\\nconst b = this._tempActorB;\\\\\\\\nconst user = a;\\\\\\\\nconst target = b;\\\\\\\\n\\\\\\\\n// Return Value\\\\\\\\ntry {\\\\\\\\n    return formula;\\\\\\\\n} catch (e) {\\\\\\\\n    if ($gameTemp.isPlaytest()) {\\\\\\\\n        console.log('Damage Formula Error for %1'.format(this._item.name));\\\\\\\\n    }\\\\\\\\n    return '?????';\\\\\\\\n}\\\\\\\"\\\"}\",\"{\\\"Name:str\\\":\\\"MK\\\",\\\"Formula:func\\\":\\\"\\\\\\\"// Define Constants\\\\\\\\nconst user = this.subject();\\\\\\\\nconst target = arguments[0];\\\\\\\\nconst item = this.item();\\\\\\\\nconst a = this.subject();\\\\\\\\nconst b = target;\\\\\\\\nconst v = $gameVariables._data;\\\\\\\\nconst sign = [3, 4].includes(item.damage.type) ? -1 : 1;\\\\\\\\n\\\\\\\\n// Create Multiplier\\\\\\\\nconst multiplier = Math.max(eval(item.damage.formula), 0);\\\\\\\\n\\\\\\\\n// Declare Values\\\\\\\\nlet armor = this.isPhysical() ? b.def : b.mdf;\\\\\\\\narmor = this.applyArmorModifiers(target, armor);\\\\\\\\nconst denominator = Math.max(200 + armor, 1);\\\\\\\\n\\\\\\\\n// Calculate Damage \\\\\\\\nlet value = 0;\\\\\\\\nif (this.isPhysical() && (this.isDamage() || this.isDrain())) {\\\\\\\\n    value = 200 * a.atk / denominator;\\\\\\\\n} else if (this.isMagical() && (this.isDamage() || this.isDrain())) {\\\\\\\\n    value = 200 * a.mat / denominator;\\\\\\\\n} else if (this.isPhysical() && this.isRecover()) {\\\\\\\\n    value = 200 * a.def / 200;\\\\\\\\n} else if (this.isMagical() && this.isRecover()) {\\\\\\\\n    value = 200 * a.mdf / 200;\\\\\\\\n}\\\\\\\\nvalue *= multiplier;\\\\\\\\n\\\\\\\\n// Return Value\\\\\\\\nreturn (isNaN(value) ? 0 : value) * sign;\\\\\\\"\\\",\\\"ItemsEquipsCore\\\":\\\"\\\",\\\"DamageType\\\":\\\"\\\",\\\"DamageType1:str\\\":\\\"%1 Damage Multiplier\\\",\\\"DamageType2:str\\\":\\\"%1 Damage Multiplier\\\",\\\"DamageType3:str\\\":\\\"%1 Recovery Multiplier\\\",\\\"DamageType4:str\\\":\\\"%1 Recovery Multiplier\\\",\\\"DamageType5:str\\\":\\\"%1 Drain Multiplier\\\",\\\"DamageType6:str\\\":\\\"%1 Drain Multiplier\\\",\\\"DamageDisplay:func\\\":\\\"\\\\\\\"// Define Constants\\\\\\\\nconst item = this._item;\\\\\\\\nconst formula = item.damage.formula;\\\\\\\\nconst a = this._tempActorA;\\\\\\\\nconst b = this._tempActorB;\\\\\\\\nconst user = a;\\\\\\\\nconst target = b;\\\\\\\\n\\\\\\\\n// Return Value\\\\\\\\ntry {\\\\\\\\n    const value = Math.max(eval(formula), 0);\\\\\\\\n    return '%1%'.format(Math.round(value * 100));\\\\\\\\n} catch (e) {\\\\\\\\n    if ($gameTemp.isPlaytest()) {\\\\\\\\n        console.log('Damage Formula Error for %1'.format(this._item.name));\\\\\\\\n    }\\\\\\\\n    return '?????';\\\\\\\\n}\\\\\\\"\\\"}\",\"{\\\"Name:str\\\":\\\"MOBA\\\",\\\"Formula:func\\\":\\\"\\\\\\\"// Define Constants\\\\\\\\nconst user = this.subject();\\\\\\\\nconst target = arguments[0];\\\\\\\\nconst item = this.item();\\\\\\\\nconst a = this.subject();\\\\\\\\nconst b = target;\\\\\\\\nconst v = $gameVariables._data;\\\\\\\\nconst sign = [3, 4].includes(item.damage.type) ? -1 : 1;\\\\\\\\n\\\\\\\\n// Create Damage Value\\\\\\\\nlet value = Math.max(eval(item.damage.formula), 0) * sign;\\\\\\\\n\\\\\\\\n// Apply Attacker's Offense Parameter\\\\\\\\nif (this.isPhysical() && (this.isDamage() || this.isDrain())) {\\\\\\\\n    value *= a.atk;\\\\\\\\n} else if (this.isMagical() && (this.isDamage() || this.isDrain())) {\\\\\\\\n    value *= a.mat;\\\\\\\\n} else if (this.isPhysical() && this.isRecover()) {\\\\\\\\n    value *= a.def;\\\\\\\\n} else if (this.isMagical() && this.isRecover()) {\\\\\\\\n    value *= a.mdf;\\\\\\\\n}\\\\\\\\n\\\\\\\\n// Apply Defender's Defense Parameter\\\\\\\\nif (this.isDamage() && !this.isCertainHit()) {\\\\\\\\n\\\\\\\\n    // Calculate Base Armor\\\\\\\\n    let armor = this.isPhysical() ? b.def : b.mdf;\\\\\\\\n    armor = this.applyArmorModifiers(target, armor);\\\\\\\\n\\\\\\\\n    // Apply Armor to Damage\\\\\\\\n    if (armor >= 0) {\\\\\\\\n        value *= 100 / (100 + armor);\\\\\\\\n    } else {\\\\\\\\n        value *= 2 - (100 / (100 - armor));\\\\\\\\n    }\\\\\\\\n}\\\\\\\\n\\\\\\\\n// Return Value\\\\\\\\nreturn isNaN(value) ? 0 : value;\\\\\\\"\\\",\\\"ItemsEquipsCore\\\":\\\"\\\",\\\"DamageType\\\":\\\"\\\",\\\"DamageType1:str\\\":\\\"%1 Damage Multiplier\\\",\\\"DamageType2:str\\\":\\\"%1 Damage Multiplier\\\",\\\"DamageType3:str\\\":\\\"%1 Recovery Multiplier\\\",\\\"DamageType4:str\\\":\\\"%1 Recovery Multiplier\\\",\\\"DamageType5:str\\\":\\\"%1 Drain Multiplier\\\",\\\"DamageType6:str\\\":\\\"%1 Drain Multiplier\\\",\\\"DamageDisplay:func\\\":\\\"\\\\\\\"// Define Constants\\\\\\\\nconst item = this._item;\\\\\\\\nconst formula = item.damage.formula;\\\\\\\\nconst a = this._tempActorA;\\\\\\\\nconst b = this._tempActorB;\\\\\\\\nconst user = a;\\\\\\\\nconst target = b;\\\\\\\\n\\\\\\\\n// Return Value\\\\\\\\ntry {\\\\\\\\n    const value = Math.max(eval(formula), 0);\\\\\\\\n    return '%1%'.format(Math.round(value * 100));\\\\\\\\n} catch (e) {\\\\\\\\n    if ($gameTemp.isPlaytest()) {\\\\\\\\n        console.log('Damage Formula Error for %1'.format(this._item.name));\\\\\\\\n    }\\\\\\\\n    return '?????';\\\\\\\\n}\\\\\\\"\\\"}\",\"{\\\"Name:str\\\":\\\"PKMN\\\",\\\"Formula:func\\\":\\\"\\\\\\\"// Define Constants\\\\\\\\nconst user = this.subject();\\\\\\\\nconst target = arguments[0];\\\\\\\\nconst item = this.item();\\\\\\\\nconst a = this.subject();\\\\\\\\nconst b = target;\\\\\\\\nconst v = $gameVariables._data;\\\\\\\\nconst sign = [3, 4].includes(item.damage.type) ? -1 : 1;\\\\\\\\n\\\\\\\\n// Create Power\\\\\\\\nconst power = Math.max(eval(item.damage.formula), 0);\\\\\\\\n\\\\\\\\n// Declare Values\\\\\\\\nlet value = 0;\\\\\\\\nlet level = Math.max(a.level || a.luk, 1);\\\\\\\\nlet armor = this.isPhysical() ? b.def : b.mdf;\\\\\\\\narmor = Math.max(this.applyArmorModifiers(target, armor), 0);\\\\\\\\nlet attackStat = 0;\\\\\\\\nif (this.isPhysical() && (this.isDamage() || this.isDrain())) {\\\\\\\\n    attackStat = a.atk;\\\\\\\\n} else if (this.isMagical() && (this.isDamage() || this.isDrain())) {\\\\\\\\n    attackStat =  a.mat;\\\\\\\\n} else if (this.isPhysical() && this.isRecover()) {\\\\\\\\n    attackStat =  a.def;\\\\\\\\n} else if (this.isMagical() && this.isRecover()) {\\\\\\\\n    attackStat =  a.mdf;\\\\\\\\n}\\\\\\\\n\\\\\\\\n// Calculate Damage\\\\\\\\nvalue = (((((2 * level) / 5) + 2) * power * (attackStat / armor)) / 50) + 2;\\\\\\\\n\\\\\\\\n// Return Value\\\\\\\\nreturn (isNaN(value) ? 0 : value) * sign;\\\\\\\"\\\",\\\"ItemsEquipsCore\\\":\\\"\\\",\\\"DamageType\\\":\\\"\\\",\\\"DamageType1:str\\\":\\\"%1 Damage Power\\\",\\\"DamageType2:str\\\":\\\"%1 Damage Power\\\",\\\"DamageType3:str\\\":\\\"%1 Recovery Power\\\",\\\"DamageType4:str\\\":\\\"%1 Recovery Power\\\",\\\"DamageType5:str\\\":\\\"%1 Drain Power\\\",\\\"DamageType6:str\\\":\\\"%1 Drain Power\\\",\\\"DamageDisplay:func\\\":\\\"\\\\\\\"// Define Constants\\\\\\\\nconst item = this._item;\\\\\\\\nconst formula = item.damage.formula;\\\\\\\\nconst a = this._tempActorA;\\\\\\\\nconst b = this._tempActorB;\\\\\\\\nconst user = a;\\\\\\\\nconst target = b;\\\\\\\\n\\\\\\\\n// Return Value\\\\\\\\ntry {\\\\\\\\n    return formula;\\\\\\\\n} catch (e) {\\\\\\\\n    if ($gameTemp.isPlaytest()) {\\\\\\\\n        console.log('Damage Formula Error for %1'.format(this._item.name));\\\\\\\\n    }\\\\\\\\n    return '?????';\\\\\\\\n}\\\\\\\"\\\"}\"]","Cap":"","EnableDamageCap:eval":"false","DefaultHardCap:num":"9999","EnableSoftCap:eval":"false","DefaultSoftCap:num":"0.80","DefaultSoftScaler:num":"0.1275","Popups":"","PopupDuration:num":"128","NewPopupBottom:eval":"true","PopupPosition:str":"base","PopupOffsetX:num":"0","PopupOffsetY:num":"0","PopupShiftX:num":"8","PopupShiftY:num":"-28","hpDamageFmt:str":"-%1","hpHealingFmt:str":"+%1","mpDamageFmt:str":"-%1 %2","mpHealingFmt:str":"+%1 %2","CriticalColor:eval":"[255, 0, 0, 160]","CriticalDuration:num":"128","Formulas":"","OverallFormulaJS:func":"\"// Declare Constants\\nconst target = arguments[0];\\nconst critical = arguments[1];\\nconst item = this.item();\\n\\n// Get Base Damage\\nconst baseValue = this.evalDamageFormula(target);\\n\\n// Calculate Element Modifiers\\nlet value = baseValue * this.calcElementRate(target);\\n\\n// Calculate Physical and Magical Modifiers\\nif (this.isPhysical()) {\\n    value *= target.pdr;\\n}\\nif (this.isMagical()) {\\n    value *= target.mdr;\\n}\\n\\n// Apply Healing Modifiers\\nif (baseValue < 0) {\\n    value *= target.rec;\\n}\\n\\n// Apply Critical Modifiers\\nif (critical) {\\n    value = this.applyCritical(value);\\n}\\n\\n// Apply Variance and Guard Modifiers\\nvalue = this.applyVariance(value, item.damage.variance);\\nvalue = this.applyGuard(value, target);\\n\\n// Finalize Damage\\nvalue = Math.round(value);\\nreturn value;\"","VarianceFormulaJS:func":"\"// Declare Constants\\nconst damage = arguments[0];\\nconst variance = arguments[1];\\n\\n// Calculate Variance\\nconst amp = Math.floor(Math.max((Math.abs(damage) * variance) / 100, 0));\\nconst v = Math.randomInt(amp + 1) + Math.randomInt(amp + 1) - amp;\\n\\n// Return Damage\\nreturn damage >= 0 ? damage + v : damage - v;\"","GuardFormulaJS:func":"\"// Declare Constants\\nconst damage = arguments[0];\\nconst target = arguments[1];\\n\\n// Return Damage Early\\nconst note = this.item().note;\\nif (note.match(/<UNBLOCKABLE>/i)) return damage;\\nif (!target.isGuard()) return damage;\\nif (damage < 0) return damage;\\n\\n// Declare Guard Rate\\nlet guardRate = 0.5;\\nguardRate /= target.grd;\\n\\n// Return Damage\\nreturn damage * guardRate;\"","Critical":"","CriticalHitRateJS:func":"\"// Declare Constants\\nconst user = this.subject();\\nconst target = arguments[0];\\n\\n// Create Base Critical Rate\\nlet rate = this.subject().cri * (1 - target.cev);\\n\\n// Apply Notetags\\nconst note = this.item().note;\\nif (note.match(/<ALWAYS CRITICAL>/i)) {\\n    return 1;\\n}\\nif (note.match(/<SET CRITICAL RATE:[ ](\\\\d+)([%％])>/i)) {\\n    return Number(RegExp.$1) / 100;\\n}\\nif (note.match(/<MODIFY CRITICAL RATE:[ ](\\\\d+)([%％])>/i)) {\\n    rate *= Number(RegExp.$1) / 100;\\n}\\nif (note.match(/<MODIFY CRITICAL RATE:[ ]([\\\\+\\\\-]\\\\d+)([%％])>/i)) {\\n    rate += Number(RegExp.$1) / 100;\\n}\\nif (note.match(/<JS CRITICAL RATE>\\\\s*([\\\\s\\\\S]*)\\\\s*<\\\\/JS CRITICAL RATE>/i)) {\\n    const code = String(RegExp.$1);\\n    try {\\n        eval(code);\\n    } catch (e) {\\n        if ($gameTemp.isPlaytest()) console.log(e);\\n    }\\n}\\n\\n// Apply LUK Buffs/Debuffs\\nconst lukStack = this.subject().buff(7);\\nrate *= 2 ** lukStack;\\n\\n// Return Rate\\nreturn rate;\"","CriticalHitMultiplier:func":"\"// Declare Constants\\nconst user = this.subject();\\nlet damage = arguments[0];\\nlet multiplier = 2.0;\\nlet bonusDamage = this.subject().luk * this.subject().cri;\\nif (this.isHpRecover() || this.isMpRecover()) {\\n    bonusDamage *= -1;\\n}\\n\\n// Apply Notetags\\nconst note = this.item().note;\\nif (note.match(/<MODIFY CRITICAL MULTIPLIER:[ ](\\\\d+)([%％])>/i)) {\\n    multiplier = Number(RegExp.$1) / 100;\\n}\\nif (note.match(/<MODIFY CRITICAL MULTIPLIER:[ ]([\\\\+\\\\-]\\\\d+)([%％])>/i)) {\\n    multiplier += Number(RegExp.$1) / 100;\\n}\\nif (note.match(/<MODIFY CRITICAL BONUS DAMAGE:[ ](\\\\d+)([%％])>/i)) {\\n    bonusDamage *= Number(RegExp.$1) / 100;\\n}\\nif (note.match(/<MODIFY CRITICAL BONUS DAMAGE:[ ]([\\\\+\\\\-]\\\\d+)([%％])>/i)) {\\n    bonusDamage += bonusDamage * (RegExp.$1) / 100;\\n}\\nif (note.match(/<JS CRITICAL DAMAGE>\\\\s*([\\\\s\\\\S]*)\\\\s*<\\\\/JS CRITICAL DAMAGE>/i)) {\\n    const code = String(RegExp.$1);\\n    try {\\n        eval(code);\\n    } catch (e) {\\n        if ($gameTemp.isPlaytest()) console.log(e);\\n    }\\n}\\n\\n// Return Damage\\nreturn damage * multiplier + bonusDamage;\""}
 *
 * @param Mechanics:struct
 * @text Mechanics Settings
 * @type struct<Mechanics>
 * @desc Settings pertaining to various game mechanics.
 * @default {"ActionSpeed":"","AllowRandomSpeed:eval":"false","CalcActionSpeedJS:func":"\"// Declare Constants\\nconst agi = this.subject().agi;\\n\\n// Create Speed\\nlet speed = agi;\\nif (this.allowRandomSpeed()) {\\n    speed += Math.randomInt(Math.floor(5 + agi / 4));\\n}\\nif (this.item()) {\\n    speed += this.item().speed;\\n}\\nif (this.isAttack()) {\\n    speed += this.subject().attackSpeed();\\n}\\n\\n// Return Speed\\nreturn speed;\"","BaseTroop":"","BaseTroopIDs:arraynum":"[\"1\"]","CommonEvents":"","BattleStartEvent:num":"0","BattleEndEvent:num":"0","VictoryEvent:num":"0","DefeatEvent:num":"0","EscapeSuccessEvent:num":"0","EscapeFailEvent:num":"0","Escape":"","CalcEscapeRatioJS:func":"\"// Calculate Escape Ratio\\nlet ratio = 0.5;\\nratio *= $gameParty.agility();\\nratio /= $gameTroop.agility();\\n\\n// Return Ratio\\nreturn ratio;\"","CalcEscapeRaiseJS:func":"\"// Calculate Escape Ratio\\nlet value = 0.1;\\nvalue += $gameParty.aliveMembers().length;\\n\\n// Return Value\\nreturn value;\"","BattleJS":"","PreStartBattleJS:func":"\"// Declare Constants\\nconst user = this;\\nconst target = user;\\nconst a = user;\\nconst b = user;\\n\\n// Perform Actions\\n\"","PostStartBattleJS:func":"\"// Declare Constants\\nconst user = this;\\nconst target = user;\\nconst a = user;\\nconst b = user;\\n\\n// Perform Actions\\n\"","BattleVictoryJS:func":"\"// Declare Constants\\nconst user = this;\\nconst target = user;\\nconst a = user;\\nconst b = user;\\n\\n// Perform Actions\\n\"","EscapeSuccessJS:func":"\"// Declare Constants\\nconst user = this;\\nconst target = user;\\nconst a = user;\\nconst b = user;\\n\\n// Perform Actions\\n\"","EscapeFailureJS:func":"\"// Declare Constants\\nconst user = this;\\nconst target = user;\\nconst a = user;\\nconst b = user;\\n\\n// Perform Actions\\n\"","BattleDefeatJS:func":"\"// Declare Constants\\nconst user = this;\\nconst target = user;\\nconst a = user;\\nconst b = user;\\n\\n// Perform Actions\\n\"","PreEndBattleJS:func":"\"// Declare Constants\\nconst user = this;\\nconst target = user;\\nconst a = user;\\nconst b = user;\\n\\n// Perform Actions\\n\"","PostEndBattleJS:func":"\"// Declare Constants\\nconst user = this;\\nconst target = user;\\nconst a = user;\\nconst b = user;\\n\\n// Perform Actions\\n\"","TurnJS":"","PreStartTurnJS:func":"\"// Declare Constants\\nconst user = this;\\nconst target = user;\\nconst a = user;\\nconst b = user;\\n\\n// Perform Actions\\n\"","PostStartTurnJS:func":"\"// Declare Constants\\nconst user = this;\\nconst target = user;\\nconst a = user;\\nconst b = user;\\n\\n// Perform Actions\\n\"","PreEndTurnJS:func":"\"// Declare Constants\\nconst user = this;\\nconst target = user;\\nconst a = user;\\nconst b = user;\\n\\n// Perform Actions\\n\"","PostEndTurnJS:func":"\"// Declare Constants\\nconst user = this;\\nconst target = user;\\nconst a = user;\\nconst b = user;\\n\\n// Perform Actions\\n\"","PreRegenerateJS:func":"\"// Declare Constants\\nconst user = this;\\nconst target = user;\\nconst a = user;\\nconst b = user;\\n\\n// Perform Actions\\n\"","PostRegenerateJS:func":"\"// Declare Constants\\nconst user = this;\\nconst target = user;\\nconst a = user;\\nconst b = user;\\n\\n// Perform Actions\\n\"","ActionJS":"","PreStartActionJS:func":"\"// Declare Constants\\nconst value = arguments[0];\\nconst user = this.subject();\\nconst target = user;\\nconst a = user;\\nconst b = user;\\nconst action = this;\\nconst item = this.item();\\nconst skill = this.item();\\n\\n// Perform Actions\\n\"","PostStartActionJS:func":"\"// Declare Constants\\nconst value = arguments[0];\\nconst user = this.subject();\\nconst target = user;\\nconst a = user;\\nconst b = user;\\nconst action = this;\\nconst item = this.item();\\nconst skill = this.item();\\n\\n// Perform Actions\\n\"","PreApplyJS:func":"\"// Declare Constants\\nconst value = arguments[0];\\nconst target = arguments[1];\\nconst user = this.subject();\\nconst a = user;\\nconst b = target;\\nconst action = this;\\nconst item = this.item();\\nconst skill = this.item();\\n\\n// Perform Actions\\n\\n// Return Value\\nreturn value;\"","PreDamageJS:func":"\"// Declare Constants\\nconst value = arguments[0];\\nconst target = arguments[1];\\nconst user = this.subject();\\nconst a = user;\\nconst b = target;\\nconst action = this;\\nconst item = this.item();\\nconst skill = this.item();\\n\\n// Perform Actions\\n\\n// Return Value\\nreturn value;\"","PostDamageJS:func":"\"// Declare Constants\\nconst value = arguments[0];\\nconst target = arguments[1];\\nconst user = this.subject();\\nconst a = user;\\nconst b = target;\\nconst action = this;\\nconst item = this.item();\\nconst skill = this.item();\\n\\n// Perform Actions\\n\\n// Return Value\\nreturn value;\"","PostApplyJS:func":"\"// Declare Constants\\nconst value = arguments[0];\\nconst target = arguments[1];\\nconst user = this.subject();\\nconst a = user;\\nconst b = target;\\nconst action = this;\\nconst item = this.item();\\nconst skill = this.item();\\n\\n// Perform Actions\\n\\n// Return Value\\nreturn value;\"","PreEndActionJS:func":"\"// Declare Constants\\nconst value = arguments[0];\\nconst user = this.subject();\\nconst target = user;\\nconst a = user;\\nconst b = user;\\nconst action = this;\\nconst item = this.item();\\nconst skill = this.item();\\n\\n// Perform Actions\\n\"","PostEndActionJS:func":"\"// Declare Constants\\nconst value = arguments[0];\\nconst user = this.subject();\\nconst target = user;\\nconst a = user;\\nconst b = user;\\nconst action = this;\\nconst item = this.item();\\nconst skill = this.item();\\n\\n// Perform Actions\\n\""}
 *
 * @param CmdWindows
 * @text --------------------------
 * @default ----------------------------------
 *
 * @param BattleLayout:struct
 * @text Battle Layout Settings
 * @type struct<BattleLayout>
 * @desc Settings that adjust how the battle layout appears.
 * @default {"Style:str":"default","ListStyle":"","ShowFacesListStyle:eval":"true","CommandWidth:num":"192","XPStyle":"","XPActorCommandLines:num":"4","XPActorDefaultHeight:num":"64","XPSpriteYLocation:str":"name","PotraitStyle":"","ShowPortraits:eval":"true","PortraitScale:num":"0.5","BorderStyle":"","SkillItemBorderCols:num":"1","ShowPortraitsBorderStyle:eval":"true","PortraitScaleBorderStyle:num":"1.25","SkillItemWindows":"","SkillItemMiddleLayout:eval":"false","SkillItemStandardCols:num":"2"}
 *
 * @param BattleLog:struct
 * @text Battle Log Settings
 * @type struct<BattleLog>
 * @desc Settings that adjust how Window_BattleLog behaves.
 * @default {"General":"","BackColor:str":"#000000","MaxLines:num":"10","MessageWait:num":"16","TextAlign:str":"center","BattleLogRectJS:func":"\"const wx = 0;\\nconst wy = 0;\\nconst ww = Graphics.boxWidth;\\nconst wh = this.calcWindowHeight(10, false);\\nreturn new Rectangle(wx, wy, ww, wh);\"","StartTurn":"","StartTurnShow:eval":"true","StartTurnMsg:str":"Turn %1","StartTurnWait:num":"40","DisplayAction":"","ActionCenteredName:eval":"true","ActionSkillMsg1:eval":"false","ActionSkillMsg2:eval":"true","ActionItemMsg:eval":"false","ActionChanges":"","ShowCounter:eval":"true","ShowReflect:eval":"true","ShowSubstitute:eval":"true","ActionResults":"","ShowFailure:eval":"false","ShowCritical:eval":"false","ShowMissEvasion:eval":"false","ShowHpDmg:eval":"false","ShowMpDmg:eval":"false","ShowTpDmg:eval":"false","DisplayStates":"","ShowAddedState:eval":"false","ShowRemovedState:eval":"false","ShowCurrentState:eval":"false","ShowAddedBuff:eval":"false","ShowAddedDebuff:eval":"false","ShowRemovedBuff:eval":"false"}
 *
 * @param BattlebackScale:struct
 * @text Battleback Scaling
 * @type struct<Battleback>
 * @desc Settings that adjust how battlebacks scale.
 * @default {"DefaultStyle:str":"MZ","jsOneForOne:func":"\"// Adjust Size\\nthis.width = Graphics.width;\\nthis.height = Graphics.height;\\n\\n// Adjust Scale\\nconst scale = 1.0;\\nthis.scale.x = scale;\\nthis.scale.y = scale;\\n\\n// Adjust Coordinates\\nthis.x = 0;\\nthis.y = 0;\"","jsScaleToFit:func":"\"// Adjust Size\\nthis.width = Graphics.width;\\nthis.height = Graphics.height;\\n\\n// Adjust Scale\\nconst ratioX = this.width / this.bitmap.width;\\nconst ratioY = this.height / this.bitmap.height;\\nconst scale = Math.max(ratioX, ratioY);\\nthis.scale.x = scale;\\nthis.scale.y = scale;\\n\\n// Adjust Coordinates\\nthis.x = (Graphics.width - this.width) / 2;\\nthis.y = Graphics.height - this.height;\"","jsScaleDown:func":"\"// Adjust Size\\nthis.width = Graphics.width;\\nthis.height = Graphics.height;\\n\\n// Adjust Scale\\nconst ratioX = Math.min(1, this.width / this.bitmap.width);\\nconst ratioY = Math.min(1, this.height / this.bitmap.height);\\nconst scale = Math.max(ratioX, ratioY);\\nthis.scale.x = scale;\\nthis.scale.y = scale;\\n\\n// Adjust Coordinates\\nthis.x = (Graphics.width - this.width) / 2;\\nthis.y = Graphics.height - this.height;\"","jsScale Up:func":"\"// Adjust Size\\nthis.width = Graphics.width;\\nthis.height = Graphics.height;\\n\\n// Adjust Scale\\nconst ratioX = Math.max(1, this.width / this.bitmap.width);\\nconst ratioY = Math.max(1, this.height / this.bitmap.height);\\nconst scale = Math.max(ratioX, ratioY);\\nthis.scale.x = scale;\\nthis.scale.y = scale;\\n\\n// Adjust Coordinates\\nthis.x = (Graphics.width - this.width) / 2;\\nthis.y = Graphics.height - this.height;\""}
 *
 * @param PartyCmd:struct
 * @text Party Command Window
 * @type struct<PartyCmd>
 * @desc Settings that alter the Party Command Window in battle.
 * @default {"Cmd":"","CmdStyle:str":"auto","CmdTextAlign:str":"left","CmdIconFight:num":"76","CommandAddAutoBattle:eval":"true","CmdIconAutoBattle:num":"78","CmdTextAutoBattle:str":"Auto","CommandAddOptions:eval":"true","CmdIconOptions:num":"83","ActiveTpbOptionsMessage:str":"Options Menu queued after action is complete.","CmdIconEscape:num":"82","Access":"","SkipPartyCmd:eval":"true","DisablePartyCmd:eval":"false","HelpWindow":"","HelpFight:str":"Select actions to fight.","HelpAutoBattle:str":"Sets party to Auto Battle mode.","HelpOptions:str":"Opens up the Options Menu.","HelpEscape:str":"Attempt to escape the battle."}
 *
 * @param ActorCmd:struct
 * @text Actor Command Window
 * @type struct<ActorCmd>
 * @desc Settings that alter the Actor Command Window in battle.
 * @default {"Cmd":"","CmdStyle:str":"auto","CmdTextAlign:str":"left","CmdIconItem:num":"176","IconStypeNorm:num":"78","IconStypeMagic:num":"79","BattleCmd":"","BattleCmdList:arraystr":"[\"attack\",\"skills\",\"guard\",\"item\",\"escape\"]","ShowCosts:eval":"true","HelpWindow":"","HelpSkillType:str":"Opens up a list of skills under the \\C[16]%1\\C[0] category.","HelpItem:str":"Opens up a list of items that you can use.","HelpEscape:str":"Attempt to escape the battle.","HelpAutoBattle:str":"Automatically choose an action suitable for combat.","HelpParty:str":"Automatically choose an action suitable for combat."}
 *
 * @param InBattleStatus:struct
 * @text In-Battle Status Window
 * @type struct<InBattleStatus>
 * @desc Settings that alter the In-Battle Status window accessed
 * through the "Status" command.
 * @default {"General":"","CmdIconStatus:num":"87","StatusGraphic:str":"face","HelpStatus:str":"View battle member status.","Enemy":"","enemyStatus:eval":"true","enemyShowLevel:eval":"true","enemyHiddenParameter:str":"???","enemyShowParametersAlways:eval":"false","enemyShowParametersIfBattleTest:eval":"true","enemyShowParametersIfDefeated:eval":"true","PageButtons":"","pageOffsetX:num":"+0","pageOffsetY:num":"+0","pageButtons:eval":"true","Parameters":"","buffValueFmt:str":"▲%1","debuffValueFmt:str":"▼%1","States":"","statesMaxWidth:num":"384","drawStates:eval":"true","drawBuffs:eval":"true","drawDebuffs:eval":"true","BuffsDebuffs":"","buffNameFmt:str":"%1▲","debuffNameFmt:str":"%1▼","NormalState":"","normalIcon:num":"84","normalText:str":"Normal","HelpDesc":"","stateHelpFmt:json":"\"%1 %2\"","buffHelpFmt:json":"\"Increases %1 to %3%2\\\\C[0]. %4\"","debuffHelpFmt:json":"\"Decreases %1 to %3%2\\\\C[0]. %4\"","normalHelp:json":"\"Status is currently normal.\"","TurnHelpDesc":"","actionsFmt:str":"\\C[6](Actions %2%1\\C[6])\\C[0]","TurnsFmt:str":"\\C[5](Turns %2%1\\C[5])\\C[0]","passiveText:str":"\\C[4](Passive)\\C[0]","Window":"","StatusWindow_BgType:num":"0","StatusWindow_DrawJS:func":"\"{ // Draw Face and Simple Status\\n    const x = this.colSpacing() / 2;\\n    const h = ImageManager.faceHeight;\\n    const y = h / 2 - this.lineHeight() * 1.5;\\n    this.drawActorGraphic(this._battler, x + 1, 0, ImageManager.faceWidth, h);\\n    this.drawActorSimpleStatus(this._battler, x + 180, y);\\n}\\n{ // Draw Actor Parameters\\n    let maxWidth = this.drawingAreaWidth();\\n    let x1 = 0;\\n    let x2 = Math.ceil(this.drawingAreaWidth() / 2);\\n\\n    let counter = 0;\\n    const params = this.displayedParams();\\n\\n    let px = x1;\\n    const availableHeight = this.innerHeight - ImageManager.faceHeight;\\n    const paramHeight = Math.ceil(params.length / 2) * this.lineHeight();\\n    let py = Math.ceil((availableHeight - paramHeight) / 2) + ImageManager.faceHeight;\\n    let pw = Math.floor(maxWidth / 2);\\n\\n    if (this._statesWindow.y !== 0) {\\n        this._statesWindow.y = py;\\n    }\\n\\n    for (const param of params) {\\n        this.drawDarkRect(px, py, pw, this.lineHeight());\\n        this.drawParamData(param, px, py, pw);\\n        counter++;\\n        if (counter % 2 === 0) {\\n            px = x1;\\n            py += this.lineHeight();\\n        } else {\\n            px = x2;\\n        }\\n    }\\n}\"","StatusWindow_RectJS:func":"\"const wx = Graphics.boxWidth > 1000 ? 120 : 0;\\nconst wy = this._helpWindow.y + this._helpWindow.height;\\nconst ww = Graphics.boxWidth - (wx * 2);\\nconst wh = Graphics.boxHeight - wy - this.windowAreaHeight();\\nreturn new Rectangle(wx, wy, ww, wh);\""}
 * 
 * @param MultiTarget:struct
 * @text Multi-Target Windows
 * @type struct<MultiTarget>
 * @desc Settings that alter the Multi-Target Windows in battle.
 * @default {"Properties":"","WindowWidth:num":"280","BgType:num":"2","ShowButton:eval":"true","Vocab":"","AllActorsText:str":"All Allies","AllEnemiesText:str":"All Enemies","Offsets":"","ActorOffsets":"","ActorOffsetX:num":"+0","ActorOffsetY:num":"+0","EnemyOffsets":"","EnemyOffsetX:num":"+0","EnemyOffsetY:num":"+0"}
 * 
 * @param ComboWindow:struct
 * @text Damage Combo Window
 * @type struct<ComboWindow>
 * @desc Settings that alter the damage/healing combo window displayed in battle.
 * @default {"General":"","Enable:eval":"true","Appearance":"","CustomFontFace:str":"Arial","TextAlign:str":"left","ComboWindow_DrawJS:func":"\"// Declare Coordinates\\nlet x = 0;\\nlet y = 0;\\n\\n// Hit Text\\nconst hitText = this.hitText();\\nconst hitTextSize = this.textSizeEx(hitText);\\nif (this.textAlignment() === 'right') {\\n    x = this.innerWidth - this.itemPadding() - hitTextSize.width;\\n} else if (this.textAlignment() === 'center') {\\n    x = Math.floor((this.innerWidth - hitTextSize.width) / 2);\\n} else {\\n    x = this.itemPadding();\\n}\\nthis.drawTextEx(hitText, x, y);\\n\\n// New Line\\ny += Math.ceil(this.lineHeight() * 2/3);\\n\\n// Damage Text\\nconst dmgText = this.damageText();\\nconst dmgTextSize = this.textSizeEx(dmgText);\\nif (this.textAlignment() === 'right') {\\n    x = this.innerWidth - this.itemPadding() - dmgTextSize.width;\\n} else if (this.textAlignment() === 'center') {\\n    x = Math.floor((this.innerWidth - dmgTextSize.width) / 2);\\n} else {\\n    x = this.itemPadding();\\n}\\nthis.drawTextEx(dmgText, x, y);\"","Vocab":"","hitsDmgFmt:str":"\\C[6]%1\\} \\C[4]Hit Combo\\C[0]\\{","hitsHealFmt:str":"\\C[6]%1\\} \\C[4]Heal Combo\\C[0]\\{","totalDmgFmt:str":"\\}\\C[21]Total Damage: \\{\\C[0]%1","totalHealFmt:str":"\\}\\C[21]Total Healing: \\{\\C[24]+%1\\C[0]","Position":"","fadeShiftX:num":"-2","fadeShiftY:num":"+0","PosOffsetX:num":"+0","PosOffsetY:num":"+0","ComboWindow_RectJS:func":"\"const ww = Math.ceil(Graphics.width / 4);\\nconst wh = this.calcWindowHeight(2, true);\\nconst wx = 0 + this.comboWindowOffsetX();\\nconst wy = Math.round(Graphics.boxHeight * 1 / 3) + this.comboWindowOffsetY();\\nreturn new Rectangle(wx, wy, ww, wh);\"","Update":"","updateDuration:num":"20","minimumStayDuration:num":"40","minimumHits:num":"1","opacitySpeed:num":"16"}
 *
 * @param VisualBreak
 * @text --------------------------
 * @default ----------------------------------
 *
 * @param Actor:struct
 * @text Actor Battler Settings
 * @type struct<Actor>
 * @desc Settings that alter various properties for actors.
 * @default {"Flinch":"","FlinchDistanceX:num":"12","FlinchDistanceY:num":"0","FlinchDuration:num":"6","SvBattlers":"","AnchorX:num":"0.5","AnchorY:num":"1.0","ChantStyle:eval":"true","OffsetX:num":"0","OffsetY:num":"0","MotionSpeed:num":"12","PrioritySortActive:eval":"true","PrioritySortActors:eval":"false","Shadow:eval":"true","SmoothImage:eval":"true","HomePosJS:func":"\"// Declare Constants\\nconst sprite = this;\\nconst actor = this._actor;\\nconst index = arguments[0];\\n\\n// Make Calculations\\nlet x = Math.round((Graphics.width / 2) + 192)\\nx -= Math.floor((Graphics.width - Graphics.boxWidth) / 2);\\nx += index * 32;\\nlet y = (Graphics.height - 200) - ($gameParty.maxBattleMembers() * 48);\\ny -= Math.floor((Graphics.height - Graphics.boxHeight) / 2);\\ny += index * 48;\\n\\n// Home Position Offsets\\nconst offsetNote = /<SIDEVIEW HOME OFFSET:[ ]([\\\\+\\\\-]\\\\d+),[ ]([\\\\+\\\\-]\\\\d+)>/i;\\nconst xOffsets = actor.traitObjects().map((obj) => (obj && obj.note.match(offsetNote) ? Number(RegExp.$1) : 0));\\nconst yOffsets = actor.traitObjects().map((obj) => (obj && obj.note.match(offsetNote) ? Number(RegExp.$2) : 0));\\nx = xOffsets.reduce((r, offset) => r + offset, x);\\ny = yOffsets.reduce((r, offset) => r + offset, y);\\n\\n// Set Home Position\\nthis.setHome(x, y);\""}
 *
 * @param Enemy:struct
 * @text Enemy Battler Settings
 * @type struct<Enemy>
 * @desc Settings that alter various properties for enemies.
 * @default {"Visual":"","AttackAnimation:num":"1","EmergeText:eval":"false","OffsetX:num":"0","OffsetY:num":"0","SmoothImage:eval":"true","SelectWindow":"","FrontViewSelect:eval":"false","SideviewSelect:eval":"true","NameFontSize:num":"22","SvBattlers":"","AllowCollapse:eval":"false","AnchorX:num":"0.5","AnchorY:num":"1.0","MotionIdle:str":"walk","Shadow:eval":"true","Width:num":"64","Height:num":"64","WtypeId:num":"0"}
 *
 * @param HpGauge:struct
 * @text HP Gauge Settings
 * @type struct<HpGauge>
 * @desc Settings that adjust the visual HP Gauge displayed in battle.
 * @default {"Display":"","ShowActorGauge:eval":"false","ShowEnemyGauge:eval":"true","RequiresDefeat:eval":"false","BTestBypass:eval":"true","Settings":"","AnchorX:num":"0.5","AnchorY:num":"1.0","Scale:num":"0.5","OffsetX:num":"0","OffsetY:num":"-3","Options":"","AddHpGaugeOption:eval":"true","AdjustRect:eval":"true","Name:str":"Show HP Gauge"}
 *
 * @param ActionSequence:struct
 * @text Action Sequence Settings
 * @type struct<ActionSequence>
 * @desc Settings that adjust how certain Action Sequences work.
 * @default {"AutoSequences":"","AutoMeleeSolo:eval":"true","AutoMeleeAoE:eval":"true","CastAnimations":"","CastCertain:num":"120","CastPhysical:num":"52","CastMagical:num":"51","CounterReflection":"","CounterPlayback:eval":"true","ReflectAnimation:num":"53","ReflectPlayback:eval":"true","Stepping":"","MeleeDistance:num":"24","StepDistanceX:num":"48","StepDistanceY:num":"0","StepDuration:num":"12"}
 *
 * @param BreakEnd1
 * @text --------------------------
 * @default ----------------------------------
 *
 * @param End Of
 * @default Plugin Parameters
 *
 * @param BreakEnd2
 * @text --------------------------
 * @default ----------------------------------
 *
 */
/* ----------------------------------------------------------------------------
 * Auto Battle Settings
 * ----------------------------------------------------------------------------
 */
/*~struct~AutoBattle:
 *
 * @param BattleDisplay
 * @text Battle Display
 *
 * @param AutoBattleMsg:str
 * @text Message
 * @parent BattleDisplay
 * @desc Message that's displayed when Auto Battle is on.
 * Text codes allowed. %1 - OK button, %2 - Cancel button
 * @default Press %1 or %2 to stop Auto Battle
 *
 * @param AutoBattleOK:str
 * @text OK Button
 * @parent BattleDisplay
 * @desc Text used to represent the OK button.
 * If VisuMZ_0_CoreEngine is present, ignore this.
 * @default OK
 *
 * @param AutoBattleCancel:str
 * @text Cancel Button
 * @parent BattleDisplay
 * @desc Text used to represent the Cancel button.
 * If VisuMZ_0_CoreEngine is present, ignore this.
 * @default Cancel
 *
 * @param AutoBattleBgType:num
 * @text Background Type
 * @parent BattleDisplay
 * @type select
 * @option 0 - Window
 * @value 0
 * @option 1 - Dim
 * @value 1
 * @option 2 - Transparent
 * @value 2
 * @desc Select background type for Auto Battle window.
 * @default 1
 *
 * @param AutoBattleRect:func
 * @text JS: X, Y, W, H
 * @parent BattleDisplay
 * @type note
 * @desc Code used to determine the dimensions for this window.
 * @default "const width = Graphics.width;\nconst height = this.calcWindowHeight(1, false);\nconst x = 0;\nconst y = (Graphics.height - height) / 2;\nreturn new Rectangle(x, y, width, height);"
 *
 * @param Options
 *
 * @param AddOption:eval
 * @text Add Option?
 * @parent Options
 * @type boolean
 * @on Add
 * @off Don't Add
 * @desc Add the Auto Battle options to the Options menu?
 * @default true
 *
 * @param AdjustRect:eval
 * @text Adjust Window Height
 * @parent Options
 * @type boolean
 * @on Adjust
 * @off Don't
 * @desc Automatically adjust the options window height?
 * @default true
 *
 * @param StartName:str
 * @text Startup Name
 * @parent Options
 * @desc Command name of the option.
 * @default Auto Battle Start
 *
 * @param StyleName:str
 * @text Style Name
 * @parent Options
 * @desc Command name of the option.
 * @default Auto Battle Style
 *
 * @param StyleOFF:str
 * @text OFF
 * @parent StyleName:str
 * @desc Text displayed when Auto Battle Style is OFF.
 * @default Attack
 *
 * @param StyleON:str
 * @text ON
 * @parent StyleName:str
 * @desc Text displayed when Auto Battle Style is ON.
 * @default Skills
 *
 */
/* ----------------------------------------------------------------------------
 * Damage Settings
 * ----------------------------------------------------------------------------
 */
/*~struct~Damage:
 *
 * @param DamageStyles
 * @text Damage Styles
 *
 * @param DefaultDamageStyle:str
 * @text Default Style
 * @parent DamageStyles
 * @desc Which Damage Style do you want to set as default?
 * Use 'Manual' to not use any styles at all.
 * @default Standard
 *
 * @param CheckFormulaMechanics:eval
 * @text Check Formulas?
 * @parent DamageStyles
 * @type boolean
 * @on Check
 * @off Disable
 * @desc Checks for illegal mechanics inside of damage formulas?
 * (ie. gainHp, loseHp, addBuff, addDebuff, addState, etc)
 * @default true
 *
 * @param DamageStyleList:arraystruct
 * @text Style List
 * @parent DamageStyles
 * @type struct<DamageStyle>[]
 * @desc A list of the damage styles available.
 * These are used to calculate base damage.
 * @default ["{\"Name:str\":\"Standard\",\"Formula:func\":\"\\\"// Declare Constants\\\\nconst user = this.subject();\\\\nconst target = arguments[0];\\\\nconst item = this.item();\\\\nconst a = this.subject();\\\\nconst b = target;\\\\nconst v = $gameVariables._data;\\\\nconst sign = [3, 4].includes(item.damage.type) ? -1 : 1;\\\\n\\\\n// Replace Formula\\\\nlet formula = item.damage.formula;\\\\nif (SceneManager.isSceneBattle() && !this.isCertainHit()) {\\\\n    const fmt = 'Math.max(this.applyArmorModifiers(b, %1), 0)';\\\\n    formula = formula.replace(/b.def/g, fmt.format('b.def'));\\\\n    formula = formula.replace(/b.mdf/g, fmt.format('b.mdf'));\\\\n    formula = formula.replace(/b.agi/g, fmt.format('b.agi'));\\\\n    formula = formula.replace(/b.luk/g, fmt.format('b.luk'));\\\\n}\\\\n\\\\n// Calculate Damage\\\\nlet value = Math.max(eval(formula), 0);\\\\n\\\\n// Return Value\\\\nreturn (isNaN(value) ? 0 : value) * sign;\\\"\",\"ItemsEquipsCore\":\"\",\"DamageType\":\"\",\"DamageType1:str\":\"%1 Damage Multiplier\",\"DamageType2:str\":\"%1 Damage Multiplier\",\"DamageType3:str\":\"%1 Recovery Multiplier\",\"DamageType4:str\":\"%1 Recovery Multiplier\",\"DamageType5:str\":\"%1 Drain Multiplier\",\"DamageType6:str\":\"%1 Drain Multiplier\",\"DamageDisplay:func\":\"\\\"return this.getItemDamageAmountTextOriginal();\\\"\"}","{\"Name:str\":\"Armor Scaling\",\"Formula:func\":\"\\\"// Declare Constants\\\\nconst user = this.subject();\\\\nconst target = arguments[0];\\\\nconst item = this.item();\\\\nconst a = this.subject();\\\\nconst b = target;\\\\nconst v = $gameVariables._data;\\\\nconst sign = [3, 4].includes(item.damage.type) ? -1 : 1;\\\\n\\\\n// Replace Formula\\\\nlet formula = item.damage.formula;\\\\nif (SceneManager.isSceneBattle() && !this.isCertainHit()) {\\\\n    const fmt = 'Math.max(this.applyArmorModifiers(b, %1), 1)';\\\\n    formula = formula.replace(/b.def/g, fmt.format('b.def'));\\\\n    formula = formula.replace(/b.mdf/g, fmt.format('b.mdf'));\\\\n    formula = formula.replace(/b.agi/g, fmt.format('b.agi'));\\\\n    formula = formula.replace(/b.luk/g, fmt.format('b.luk'));\\\\n}\\\\n\\\\n// Calculate Damage\\\\nlet value = Math.max(eval(formula), 0);\\\\n\\\\n// Apply Defender's Defense Parameter\\\\nif (this.isDamage() && !this.isCertainHit()) {\\\\n\\\\n    // Calculate Base Armor\\\\n    let armor = this.isPhysical() ? b.def : b.mdf;\\\\n    armor = this.applyArmorModifiers(target, armor);\\\\n\\\\n    // Apply Armor to Damage\\\\n    if (armor >= 0) {\\\\n        value *= 100 / (100 + armor);\\\\n    } else {\\\\n        value *= 2 - (100 / (100 - armor));\\\\n    }\\\\n}\\\\n\\\\n// Return Value\\\\nreturn (isNaN(value) ? 0 : value) * sign;\\\"\",\"ItemsEquipsCore\":\"\",\"DamageType\":\"\",\"DamageType1:str\":\"%1 Damage Multiplier\",\"DamageType2:str\":\"%1 Damage Multiplier\",\"DamageType3:str\":\"%1 Recovery Multiplier\",\"DamageType4:str\":\"%1 Recovery Multiplier\",\"DamageType5:str\":\"%1 Drain Multiplier\",\"DamageType6:str\":\"%1 Drain Multiplier\",\"DamageDisplay:func\":\"\\\"return this.getItemDamageAmountTextOriginal();\\\"\"}","{\"Name:str\":\"CT\",\"Formula:func\":\"\\\"// Define Constants\\\\nconst user = this.subject();\\\\nconst target = arguments[0];\\\\nconst item = this.item();\\\\nconst a = this.subject();\\\\nconst b = target;\\\\nconst v = $gameVariables._data;\\\\nconst sign = [3, 4].includes(item.damage.type) ? -1 : 1;\\\\n\\\\n// Create Multiplier\\\\nconst multiplier = Math.max(eval(item.damage.formula), 0);\\\\n\\\\n// Declare Values\\\\nlet value = 0;\\\\nlet level = Math.max(a.level || a.luk, 1);\\\\nlet armor = this.isPhysical() ? b.def : b.mdf;\\\\narmor = Math.max(this.applyArmorModifiers(target, armor), 0);\\\\nlet attackStat = 0;\\\\nif (this.isPhysical() && (this.isDamage() || this.isDrain())) {\\\\n    attackStat = a.atk;\\\\n} else if (this.isMagical() && (this.isDamage() || this.isDrain())) {\\\\n    attackStat =  a.mat;\\\\n} else if (this.isPhysical() && this.isRecover()) {\\\\n    attackStat =  a.def;\\\\n} else if (this.isMagical() && this.isRecover()) {\\\\n    attackStat =  a.mdf;\\\\n}\\\\n\\\\n// Calculate Damage\\\\nattackStat = (attackStat * 1.75) + (level ** 2 / 45.5);\\\\nvalue = attackStat * 4;\\\\nif (this.isPhysical() && (this.isDamage() || this.isDrain())) {\\\\n    value *= Math.max(256 - armor, 0) / 256;\\\\n} else if (this.isMagical() && (this.isDamage() || this.isDrain())) {\\\\n    value *= Math.max(102.4 - armor, 0) / 128;\\\\n}\\\\nvalue *= multiplier;\\\\n\\\\n// Return Value\\\\nreturn (isNaN(value) ? 0 : value) * sign;\\\"\",\"ItemsEquipsCore\":\"\",\"DamageType\":\"\",\"DamageType1:str\":\"%1 Damage Multiplier\",\"DamageType2:str\":\"%1 Damage Multiplier\",\"DamageType3:str\":\"%1 Recovery Multiplier\",\"DamageType4:str\":\"%1 Recovery Multiplier\",\"DamageType5:str\":\"%1 Drain Multiplier\",\"DamageType6:str\":\"%1 Drain Multiplier\",\"DamageDisplay:func\":\"\\\"// Define Constants\\\\nconst item = this._item;\\\\nconst formula = item.damage.formula;\\\\nconst a = this._tempActorA;\\\\nconst b = this._tempActorB;\\\\nconst user = a;\\\\nconst target = b;\\\\n\\\\n// Return Value\\\\ntry {\\\\n    const value = Math.max(eval(formula), 0);\\\\n    return '%1%'.format(Math.round(value * 100));\\\\n} catch (e) {\\\\n    if ($gameTemp.isPlaytest()) {\\\\n        console.log('Damage Formula Error for %1'.format(this._item.name));\\\\n    }\\\\n    return '?????';\\\\n}\\\"\"}","{\"Name:str\":\"D4\",\"Formula:func\":\"\\\"// Define Constants\\\\nconst user = this.subject();\\\\nconst target = arguments[0];\\\\nconst item = this.item();\\\\nconst a = this.subject();\\\\nconst b = target;\\\\nconst v = $gameVariables._data;\\\\nconst sign = [3, 4].includes(item.damage.type) ? -1 : 1;\\\\n\\\\n// Create Multiplier\\\\nconst multiplier = Math.max(eval(item.damage.formula), 0);\\\\n\\\\n// Declare Values\\\\nlet armor = this.isPhysical() ? b.def : b.mdf;\\\\narmor = this.applyArmorModifiers(target, armor);\\\\nlet stat = 0;\\\\nif (this.isPhysical() && (this.isDamage() || this.isDrain())) {\\\\n    stat = a.atk;\\\\n} else if (this.isMagical() && (this.isDamage() || this.isDrain())) {\\\\n    stat = a.mat;\\\\n} else if (this.isPhysical() && this.isRecover()) {\\\\n    stat = a.def;\\\\n    armor = 0;\\\\n} else if (this.isMagical() && this.isRecover()) {\\\\n    stat = a.mdf;\\\\n    armor = 0;\\\\n}\\\\n\\\\n// Calculate Damage \\\\nlet value = 1.5 * Math.max(2 * stat * multiplier - armor, 1) * multiplier / 5;\\\\n\\\\n// Return Value\\\\nreturn (isNaN(value) ? 0 : value) * sign;\\\"\",\"ItemsEquipsCore\":\"\",\"DamageType\":\"\",\"DamageType1:str\":\"%1 Damage Multiplier\",\"DamageType2:str\":\"%1 Damage Multiplier\",\"DamageType3:str\":\"%1 Recovery Multiplier\",\"DamageType4:str\":\"%1 Recovery Multiplier\",\"DamageType5:str\":\"%1 Drain Multiplier\",\"DamageType6:str\":\"%1 Drain Multiplier\",\"DamageDisplay:func\":\"\\\"// Define Constants\\\\nconst item = this._item;\\\\nconst formula = item.damage.formula;\\\\nconst a = this._tempActorA;\\\\nconst b = this._tempActorB;\\\\nconst user = a;\\\\nconst target = b;\\\\n\\\\n// Return Value\\\\ntry {\\\\n    const value = Math.max(eval(formula), 0);\\\\n    return '%1%'.format(Math.round(value * 100));\\\\n} catch (e) {\\\\n    if ($gameTemp.isPlaytest()) {\\\\n        console.log('Damage Formula Error for %1'.format(this._item.name));\\\\n    }\\\\n    return '?????';\\\\n}\\\"\"}","{\"Name:str\":\"DQ\",\"Formula:func\":\"\\\"// Define Constants\\\\nconst user = this.subject();\\\\nconst target = arguments[0];\\\\nconst item = this.item();\\\\nconst a = this.subject();\\\\nconst b = target;\\\\nconst v = $gameVariables._data;\\\\nconst sign = [3, 4].includes(item.damage.type) ? -1 : 1;\\\\n\\\\n// Create Multiplier\\\\nlet multiplier = Math.max(eval(item.damage.formula), 0);\\\\nif (this.isCertainHit()) {\\\\n    let value = multiplier * Math.max(a.atk, a.mat);\\\\n    return (isNaN(value) ? 0 : value) * sign;\\\\n}\\\\n\\\\n// Get Primary Stats\\\\nlet armor = this.isPhysical() ? b.def : b.mdf;\\\\narmor = this.applyArmorModifiers(b, armor);\\\\nlet stat = 1;\\\\nif (this.isPhysical() && (this.isDamage() || this.isDrain())) {\\\\n    stat = a.atk;\\\\n} else if (this.isMagical() && (this.isDamage() || this.isDrain())) {\\\\n    stat = a.mat;\\\\n} else if (this.isPhysical() && this.isRecover()) {\\\\n    stat = a.def;\\\\n} else if (this.isMagical() && this.isRecover()) {\\\\n    stat = a.mdf;\\\\n}\\\\n\\\\n// Check for Recovery\\\\nif (this.isRecover()) {\\\\n    let value = stat * multiplier * sign;\\\\n    return isNaN(value) ? 0 : value;\\\\n}\\\\n\\\\n// Calculate Damage\\\\nlet value = 0;\\\\nif (stat < ((2 + armor) / 2)) {\\\\n    // Plink Damage\\\\n    let baseline = Math.max(stat - ((12 * (armor - stat + 1)) / stat), 5);\\\\n    value = baseline / 3;\\\\n} else {\\\\n    // Normal Damage\\\\n    let baseline = Math.max(stat - (armor / 2), 1);\\\\n    value = baseline / 2;\\\\n}\\\\nvalue *= multiplier;\\\\n\\\\n// Return Value\\\\nreturn isNaN(value) ? 0 : value;\\\"\",\"ItemsEquipsCore\":\"\",\"DamageType\":\"\",\"DamageType1:str\":\"%1 Damage Multiplier\",\"DamageType2:str\":\"%1 Damage Multiplier\",\"DamageType3:str\":\"%1 Recovery Multiplier\",\"DamageType4:str\":\"%1 Recovery Multiplier\",\"DamageType5:str\":\"%1 Drain Multiplier\",\"DamageType6:str\":\"%1 Drain Multiplier\",\"DamageDisplay:func\":\"\\\"// Define Constants\\\\nconst item = this._item;\\\\nconst formula = item.damage.formula;\\\\nconst a = this._tempActorA;\\\\nconst b = this._tempActorB;\\\\nconst user = a;\\\\nconst target = b;\\\\n\\\\n// Return Value\\\\ntry {\\\\n    const value = Math.max(eval(formula), 0);\\\\n    return '%1%'.format(Math.round(value * 100));\\\\n} catch (e) {\\\\n    if ($gameTemp.isPlaytest()) {\\\\n        console.log('Damage Formula Error for %1'.format(this._item.name));\\\\n    }\\\\n    return '?????';\\\\n}\\\"\"}","{\"Name:str\":\"FF7\",\"Formula:func\":\"\\\"// Define Constants\\\\nconst user = this.subject();\\\\nconst target = arguments[0];\\\\nconst item = this.item();\\\\nconst a = this.subject();\\\\nconst b = target;\\\\nconst v = $gameVariables._data;\\\\nconst sign = [3, 4].includes(item.damage.type) ? -1 : 1;\\\\n\\\\n// Create Power\\\\nconst power = Math.max(eval(item.damage.formula), 0);\\\\n\\\\n// Declare base Damage\\\\nlet baseDamage = 0;\\\\nlet level = Math.max(a.level || a.luk, 1);\\\\nif (this.isPhysical() && (this.isDamage() || this.isDrain())) {\\\\n    baseDamage = a.atk + ((a.atk + level) / 32) * ((a.atk * level) / 32);\\\\n} else if (this.isMagical() && (this.isDamage() || this.isDrain())) {\\\\n    baseDamage = 6 * (a.mat + level);\\\\n} else if (this.isPhysical() && this.isRecover()) {\\\\n    baseDamage = 6 * (a.def + level);\\\\n} else if (this.isMagical() && this.isRecover()) {\\\\n    baseDamage = 6 * (a.mdf + level);\\\\n}\\\\n\\\\n// Calculate Final Damage\\\\nlet value = baseDamage;\\\\nlet armor = this.isPhysical() ? b.def : b.mdf;\\\\narmor = this.applyArmorModifiers(target, armor);\\\\nif (this.isRecover()) {\\\\n    value += 22 * power;\\\\n} else {\\\\n    value = (power * Math.max(512 - armor, 1) * baseDamage) / (16 * 512);\\\\n}\\\\n\\\\n// Return Value\\\\nreturn (isNaN(value) ? 0 : value) * sign;\\\"\",\"ItemsEquipsCore\":\"\",\"DamageType\":\"\",\"DamageType1:str\":\"%1 Damage Power\",\"DamageType2:str\":\"%1 Damage Power\",\"DamageType3:str\":\"%1 Recovery Power\",\"DamageType4:str\":\"%1 Recovery Power\",\"DamageType5:str\":\"%1 Drain Power\",\"DamageType6:str\":\"%1 Drain Power\",\"DamageDisplay:func\":\"\\\"// Define Constants\\\\nconst item = this._item;\\\\nconst formula = item.damage.formula;\\\\nconst a = this._tempActorA;\\\\nconst b = this._tempActorB;\\\\nconst user = a;\\\\nconst target = b;\\\\n\\\\n// Return Value\\\\ntry {\\\\n    return formula;\\\\n} catch (e) {\\\\n    if ($gameTemp.isPlaytest()) {\\\\n        console.log('Damage Formula Error for %1'.format(this._item.name));\\\\n    }\\\\n    return '?????';\\\\n}\\\"\"}","{\"Name:str\":\"FF8\",\"Formula:func\":\"\\\"// Define Constants\\\\nconst user = this.subject();\\\\nconst target = arguments[0];\\\\nconst item = this.item();\\\\nconst a = this.subject();\\\\nconst b = target;\\\\nconst v = $gameVariables._data;\\\\nconst sign = [3, 4].includes(item.damage.type) ? -1 : 1;\\\\n\\\\n// Create Power\\\\nconst power = Math.max(eval(item.damage.formula), 0);\\\\n\\\\n// Declare Damage\\\\nlet Value = 0;\\\\nlet level = Math.max(a.level || a.luk, 1);\\\\nlet armor = this.isPhysical() ? b.def : b.mdf;\\\\narmor = this.applyArmorModifiers(target, armor);\\\\nif (this.isPhysical() && (this.isDamage() || this.isDrain())) {\\\\n    value = a.atk ** 2 / 16 + a.atk;\\\\n    value *= Math.max(265 - armor, 1) / 256;\\\\n    value *= power / 16;\\\\n} else if (this.isMagical() && (this.isDamage() || this.isDrain())) {\\\\n    value = a.mat + power;\\\\n    value *= Math.max(265 - armor, 1) / 4;\\\\n    value *= power / 256;\\\\n} else if (this.isPhysical() && this.isRecover()) {\\\\n    value = (power + a.def) * power / 2;\\\\n} else if (this.isMagical() && this.isRecover()) {\\\\n    value = (power + a.mdf) * power / 2;\\\\n}\\\\n\\\\n// Return Value\\\\nreturn (isNaN(value) ? 0 : value) * sign;\\\"\",\"ItemsEquipsCore\":\"\",\"DamageType\":\"\",\"DamageType1:str\":\"%1 Damage Power\",\"DamageType2:str\":\"%1 Damage Power\",\"DamageType3:str\":\"%1 Recovery Power\",\"DamageType4:str\":\"%1 Recovery Power\",\"DamageType5:str\":\"%1 Drain Power\",\"DamageType6:str\":\"%1 Drain Power\",\"DamageDisplay:func\":\"\\\"// Define Constants\\\\nconst item = this._item;\\\\nconst formula = item.damage.formula;\\\\nconst a = this._tempActorA;\\\\nconst b = this._tempActorB;\\\\nconst user = a;\\\\nconst target = b;\\\\n\\\\n// Return Value\\\\ntry {\\\\n    return formula;\\\\n} catch (e) {\\\\n    if ($gameTemp.isPlaytest()) {\\\\n        console.log('Damage Formula Error for %1'.format(this._item.name));\\\\n    }\\\\n    return '?????';\\\\n}\\\"\"}","{\"Name:str\":\"FF9\",\"Formula:func\":\"\\\"// Define Constants\\\\nconst user = this.subject();\\\\nconst target = arguments[0];\\\\nconst item = this.item();\\\\nconst a = this.subject();\\\\nconst b = target;\\\\nconst v = $gameVariables._data;\\\\nconst sign = [3, 4].includes(item.damage.type) ? -1 : 1;\\\\n\\\\n// Create Damage Constant\\\\nconst power = Math.max(eval(item.damage.formula), 0);\\\\nif (this.isCertainHit()) {\\\\n    return (isNaN(power) ? 0 : power) * sign;\\\\n}\\\\n\\\\n// Declare Main Stats\\\\nlet armor = this.isPhysical() ? b.def : b.mdf;\\\\narmor = this.applyArmorModifiers(b, armor);\\\\nlet stat = 1;\\\\nif (this.isPhysical() && (this.isDamage() || this.isDrain())) {\\\\n    stat = a.atk;\\\\n} else if (this.isMagical() && (this.isDamage() || this.isDrain())) {\\\\n    stat = a.mat;\\\\n} else if (this.isPhysical() && this.isRecover()) {\\\\n    stat = a.def;\\\\n} else if (this.isMagical() && this.isRecover()) {\\\\n    stat = a.mdf;\\\\n}\\\\n\\\\n// Declare Base Damage\\\\nlet baseDamage = power;\\\\nif (this.isPhysical()) {\\\\n    baseDamage += stat;\\\\n}\\\\nif (this.isDamage() || this.isDrain()) {\\\\n    baseDamage -= armor;\\\\n    baseDamage = Math.max(1, baseDamage);\\\\n}\\\\n\\\\n// Declare Bonus Damage\\\\nlet bonusDamage = stat + (((a.level || a.luk) + stat) / 8);\\\\n\\\\n// Declare Final Damage\\\\nlet value = baseDamage * bonusDamage * sign;\\\\n\\\\n// Return Value\\\\nreturn isNaN(value) ? 0 : value;\\\"\",\"ItemsEquipsCore\":\"\",\"DamageType\":\"\",\"DamageType1:str\":\"%1 Damage Power\",\"DamageType2:str\":\"%1 Damage Power\",\"DamageType3:str\":\"%1 Recovery Power\",\"DamageType4:str\":\"%1 Recovery Power\",\"DamageType5:str\":\"%1 Drain Power\",\"DamageType6:str\":\"%1 Drain Power\",\"DamageDisplay:func\":\"\\\"// Define Constants\\\\nconst item = this._item;\\\\nconst formula = item.damage.formula;\\\\nconst a = this._tempActorA;\\\\nconst b = this._tempActorB;\\\\nconst user = a;\\\\nconst target = b;\\\\n\\\\n// Return Value\\\\ntry {\\\\n    return formula;\\\\n} catch (e) {\\\\n    if ($gameTemp.isPlaytest()) {\\\\n        console.log('Damage Formula Error for %1'.format(this._item.name));\\\\n    }\\\\n    return '?????';\\\\n}\\\"\"}","{\"Name:str\":\"FF10\",\"Formula:func\":\"\\\"// Define Constants\\\\nconst user = this.subject();\\\\nconst target = arguments[0];\\\\nconst item = this.item();\\\\nconst a = this.subject();\\\\nconst b = target;\\\\nconst v = $gameVariables._data;\\\\nconst sign = [3, 4].includes(item.damage.type) ? -1 : 1;\\\\n\\\\n// Create Damage Constant\\\\nconst power = Math.max(eval(item.damage.formula), 0);\\\\nif (this.isCertainHit()) {\\\\n    return (isNaN(power) ? 0 : power) * sign;\\\\n}\\\\n\\\\n// Create Damage Offense Value\\\\nlet value = power;\\\\n\\\\nif (this.isPhysical() && (this.isDamage() || this.isDrain())) {\\\\n    value = (((a.atk ** 3) / 32) + 32) * power / 16;\\\\n} else if (this.isMagical() && (this.isDamage() || this.isDrain())) {\\\\n    value = power * ((a.mat ** 2 / 6) + power) / 4;\\\\n} else if (this.isPhysical() && this.isRecover()) {\\\\n    value = power * ((a.def + power) / 2);\\\\n} else if (this.isMagical() && this.isRecover()) {\\\\n    value = power * ((a.mdf + power) / 2);\\\\n}\\\\n\\\\n// Apply Damage Defense Value\\\\nif (this.isDamage() || this.isDrain()) {\\\\n    let armor = this.isPhysical() ? b.def : b.mdf;\\\\n    armor = this.applyArmorModifiers(b, armor);\\\\n    armor = Math.max(armor, 1);\\\\n    value *= ((((armor - 280.4) ** 2) / 110) / 16) / 730;\\\\n    value *= (730 - (armor * 51 - (armor ** 2) / 11) / 10) / 730;\\\\n} else if (this.isRecover()) {\\\\n    value *= -1;\\\\n}\\\\n\\\\n// Return Value\\\\nreturn isNaN(value) ? 0 : value;\\\"\",\"ItemsEquipsCore\":\"\",\"DamageType\":\"\",\"DamageType1:str\":\"%1 Damage Power\",\"DamageType2:str\":\"%1 Damage Power\",\"DamageType3:str\":\"%1 Recovery Power\",\"DamageType4:str\":\"%1 Recovery Power\",\"DamageType5:str\":\"%1 Drain Power\",\"DamageType6:str\":\"%1 Drain Power\",\"DamageDisplay:func\":\"\\\"// Define Constants\\\\nconst item = this._item;\\\\nconst formula = item.damage.formula;\\\\nconst a = this._tempActorA;\\\\nconst b = this._tempActorB;\\\\nconst user = a;\\\\nconst target = b;\\\\n\\\\n// Return Value\\\\ntry {\\\\n    return formula;\\\\n} catch (e) {\\\\n    if ($gameTemp.isPlaytest()) {\\\\n        console.log('Damage Formula Error for %1'.format(this._item.name));\\\\n    }\\\\n    return '?????';\\\\n}\\\"\"}","{\"Name:str\":\"MK\",\"Formula:func\":\"\\\"// Define Constants\\\\nconst user = this.subject();\\\\nconst target = arguments[0];\\\\nconst item = this.item();\\\\nconst a = this.subject();\\\\nconst b = target;\\\\nconst v = $gameVariables._data;\\\\nconst sign = [3, 4].includes(item.damage.type) ? -1 : 1;\\\\n\\\\n// Create Multiplier\\\\nconst multiplier = Math.max(eval(item.damage.formula), 0);\\\\n\\\\n// Declare Values\\\\nlet armor = this.isPhysical() ? b.def : b.mdf;\\\\narmor = this.applyArmorModifiers(target, armor);\\\\nconst denominator = Math.max(200 + armor, 1);\\\\n\\\\n// Calculate Damage \\\\nlet value = 0;\\\\nif (this.isPhysical() && (this.isDamage() || this.isDrain())) {\\\\n    value = 200 * a.atk / denominator;\\\\n} else if (this.isMagical() && (this.isDamage() || this.isDrain())) {\\\\n    value = 200 * a.mat / denominator;\\\\n} else if (this.isPhysical() && this.isRecover()) {\\\\n    value = 200 * a.def / 200;\\\\n} else if (this.isMagical() && this.isRecover()) {\\\\n    value = 200 * a.mdf / 200;\\\\n}\\\\nvalue *= multiplier;\\\\n\\\\n// Return Value\\\\nreturn (isNaN(value) ? 0 : value) * sign;\\\"\",\"ItemsEquipsCore\":\"\",\"DamageType\":\"\",\"DamageType1:str\":\"%1 Damage Multiplier\",\"DamageType2:str\":\"%1 Damage Multiplier\",\"DamageType3:str\":\"%1 Recovery Multiplier\",\"DamageType4:str\":\"%1 Recovery Multiplier\",\"DamageType5:str\":\"%1 Drain Multiplier\",\"DamageType6:str\":\"%1 Drain Multiplier\",\"DamageDisplay:func\":\"\\\"// Define Constants\\\\nconst item = this._item;\\\\nconst formula = item.damage.formula;\\\\nconst a = this._tempActorA;\\\\nconst b = this._tempActorB;\\\\nconst user = a;\\\\nconst target = b;\\\\n\\\\n// Return Value\\\\ntry {\\\\n    const value = Math.max(eval(formula), 0);\\\\n    return '%1%'.format(Math.round(value * 100));\\\\n} catch (e) {\\\\n    if ($gameTemp.isPlaytest()) {\\\\n        console.log('Damage Formula Error for %1'.format(this._item.name));\\\\n    }\\\\n    return '?????';\\\\n}\\\"\"}","{\"Name:str\":\"MOBA\",\"Formula:func\":\"\\\"// Define Constants\\\\nconst user = this.subject();\\\\nconst target = arguments[0];\\\\nconst item = this.item();\\\\nconst a = this.subject();\\\\nconst b = target;\\\\nconst v = $gameVariables._data;\\\\nconst sign = [3, 4].includes(item.damage.type) ? -1 : 1;\\\\n\\\\n// Create Damage Value\\\\nlet value = Math.max(eval(item.damage.formula), 0) * sign;\\\\n\\\\n// Apply Attacker's Offense Parameter\\\\nif (this.isPhysical() && (this.isDamage() || this.isDrain())) {\\\\n    value *= a.atk;\\\\n} else if (this.isMagical() && (this.isDamage() || this.isDrain())) {\\\\n    value *= a.mat;\\\\n} else if (this.isPhysical() && this.isRecover()) {\\\\n    value *= a.def;\\\\n} else if (this.isMagical() && this.isRecover()) {\\\\n    value *= a.mdf;\\\\n}\\\\n\\\\n// Apply Defender's Defense Parameter\\\\nif (this.isDamage() && !this.isCertainHit()) {\\\\n\\\\n    // Calculate Base Armor\\\\n    let armor = this.isPhysical() ? b.def : b.mdf;\\\\n    armor = this.applyArmorModifiers(target, armor);\\\\n\\\\n    // Apply Armor to Damage\\\\n    if (armor >= 0) {\\\\n        value *= 100 / (100 + armor);\\\\n    } else {\\\\n        value *= 2 - (100 / (100 - armor));\\\\n    }\\\\n}\\\\n\\\\n// Return Value\\\\nreturn isNaN(value) ? 0 : value;\\\"\",\"ItemsEquipsCore\":\"\",\"DamageType\":\"\",\"DamageType1:str\":\"%1 Damage Multiplier\",\"DamageType2:str\":\"%1 Damage Multiplier\",\"DamageType3:str\":\"%1 Recovery Multiplier\",\"DamageType4:str\":\"%1 Recovery Multiplier\",\"DamageType5:str\":\"%1 Drain Multiplier\",\"DamageType6:str\":\"%1 Drain Multiplier\",\"DamageDisplay:func\":\"\\\"// Define Constants\\\\nconst item = this._item;\\\\nconst formula = item.damage.formula;\\\\nconst a = this._tempActorA;\\\\nconst b = this._tempActorB;\\\\nconst user = a;\\\\nconst target = b;\\\\n\\\\n// Return Value\\\\ntry {\\\\n    const value = Math.max(eval(formula), 0);\\\\n    return '%1%'.format(Math.round(value * 100));\\\\n} catch (e) {\\\\n    if ($gameTemp.isPlaytest()) {\\\\n        console.log('Damage Formula Error for %1'.format(this._item.name));\\\\n    }\\\\n    return '?????';\\\\n}\\\"\"}","{\"Name:str\":\"PKMN\",\"Formula:func\":\"\\\"// Define Constants\\\\nconst user = this.subject();\\\\nconst target = arguments[0];\\\\nconst item = this.item();\\\\nconst a = this.subject();\\\\nconst b = target;\\\\nconst v = $gameVariables._data;\\\\nconst sign = [3, 4].includes(item.damage.type) ? -1 : 1;\\\\n\\\\n// Create Power\\\\nconst power = Math.max(eval(item.damage.formula), 0);\\\\n\\\\n// Declare Values\\\\nlet value = 0;\\\\nlet level = Math.max(a.level || a.luk, 1);\\\\nlet armor = this.isPhysical() ? b.def : b.mdf;\\\\narmor = Math.max(this.applyArmorModifiers(target, armor), 0);\\\\nlet attackStat = 0;\\\\nif (this.isPhysical() && (this.isDamage() || this.isDrain())) {\\\\n    attackStat = a.atk;\\\\n} else if (this.isMagical() && (this.isDamage() || this.isDrain())) {\\\\n    attackStat =  a.mat;\\\\n} else if (this.isPhysical() && this.isRecover()) {\\\\n    attackStat =  a.def;\\\\n} else if (this.isMagical() && this.isRecover()) {\\\\n    attackStat =  a.mdf;\\\\n}\\\\n\\\\n// Calculate Damage\\\\nvalue = (((((2 * level) / 5) + 2) * power * (attackStat / armor)) / 50) + 2;\\\\n\\\\n// Return Value\\\\nreturn (isNaN(value) ? 0 : value) * sign;\\\"\",\"ItemsEquipsCore\":\"\",\"DamageType\":\"\",\"DamageType1:str\":\"%1 Damage Power\",\"DamageType2:str\":\"%1 Damage Power\",\"DamageType3:str\":\"%1 Recovery Power\",\"DamageType4:str\":\"%1 Recovery Power\",\"DamageType5:str\":\"%1 Drain Power\",\"DamageType6:str\":\"%1 Drain Power\",\"DamageDisplay:func\":\"\\\"// Define Constants\\\\nconst item = this._item;\\\\nconst formula = item.damage.formula;\\\\nconst a = this._tempActorA;\\\\nconst b = this._tempActorB;\\\\nconst user = a;\\\\nconst target = b;\\\\n\\\\n// Return Value\\\\ntry {\\\\n    return formula;\\\\n} catch (e) {\\\\n    if ($gameTemp.isPlaytest()) {\\\\n        console.log('Damage Formula Error for %1'.format(this._item.name));\\\\n    }\\\\n    return '?????';\\\\n}\\\"\"}"]
 *
 * @param Cap
 * @text Damage Cap
 *
 * @param EnableDamageCap:eval
 * @text Enable Damage Cap?
 * @parent Cap
 * @type boolean
 * @on Enable
 * @off Disable
 * @desc Put a maximum hard damage cap on how far damage can go?
 * This can be broken through the usage of notetags.
 * @default false
 *
 * @param DefaultHardCap:num
 * @text Default Hard Cap
 * @parent EnableDamageCap:eval
 * @type number
 * @min 1
 * @desc The default hard damage cap used before applying damage.
 * @default 9999
 *
 * @param EnableSoftCap:eval
 * @text Enable Soft Cap?
 * @parent Cap
 * @type boolean
 * @on Enable
 * @off Disable
 * @desc Soft caps ease in the damage values leading up to the 
 * hard damage cap. Requires hard Damage Cap enabled.
 * @default false
 *
 * @param DefaultSoftCap:num
 * @text Base Soft Cap Rate
 * @parent EnableSoftCap:eval
 * @desc The default soft damage cap used before applying damage.
 * @default 0.80
 *
 * @param DefaultSoftScaler:num
 * @text Soft Scale Constant
 * @parent EnableSoftCap:eval
 * @desc The default soft damage cap used before applying damage.
 * @default 0.1275
 *
 * @param Popups
 *
 * @param PopupDuration:num
 * @text Popup Duration
 * @parent Popups
 * @type number
 * @min 1
 * @desc Adjusts how many frames a popup stays visible.
 * @default 128
 *
 * @param NewPopupBottom:eval
 * @text Newest Popups Bottom
 * @parent Popups
 * @type boolean
 * @on Bottom
 * @off Top
 * @desc Puts the newest popups at the bottom.
 * @default true
 *
 * @param PopupPosition:str
 * @text Appear Position
 * @parent Popups
 * @type select
 * @option Head - At the top of the battler.
 * @value head
 * @option Center - At the center of the battler.
 * @value center
 * @option Base - At the foot of the battler.
 * @value base
 * @desc Selects where you want popups to appear relative to the battler.
 * @default base
 *
 * @param EndBattlePopups:eval
 * @text End Battle Show?
 * @parent Popups
 * @type boolean
 * @on Show
 * @off Hide
 * @desc Show or hide popups upon victory or escape?
 * Used to hide battle-state removal popups.
 * @default true
 *
 * @param PopupOffsetX:num
 * @text Offset X
 * @parent Popups
 * @desc Sets how much to offset the sprites by horizontally.
 * Negative values go left. Positive values go right.
 * @default 0
 *
 * @param PopupOffsetY:num
 * @text Offset Y
 * @parent Popups
 * @desc Sets how much to offset the sprites by vertically.
 * Negative values go up. Positive values go down.
 * @default 0
 *
 * @param PopupShiftX:num
 * @text Shift X
 * @parent Popups
 * @desc Sets how much to shift the sprites by horizontally.
 * Negative values go left. Positive values go right.
 * @default 8
 *
 * @param PopupShiftY:num
 * @text Shift Y
 * @parent Popups
 * @desc Sets how much to shift the sprites by vertically.
 * Negative values go up. Positive values go down.
 * @default -28
 *
 * @param hpDamageFmt:str
 * @text HP Damage Format
 * @parent Popups
 * @desc Determines HP damage format for popup.
 * %1 - Value, %2 - HP Text
 * @default -%1
 *
 * @param hpHealingFmt:str
 * @text HP Healing Format
 * @parent Popups
 * @desc Determines HP healing format for popup.
 * %1 - Value, %2 - HP Text
 * @default +%1
 *
 * @param mpDamageFmt:str
 * @text MP Damage Format
 * @parent Popups
 * @desc Determines MP damage format for popup.
 * %1 - Value, %2 - MP Text
 * @default -%1 %2
 *
 * @param mpHealingFmt:str
 * @text MP Healing Format
 * @parent Popups
 * @desc Determines MP healing format for popup.
 * %1 - Value, %2 - MP Text
 * @default +%1 %2
 *
 * @param CriticalColor:eval
 * @text Critical Flash Color
 * @parent Popups
 * @desc Adjust the popup's flash color.
 * Format: [red, green, blue, alpha]
 * @default [255, 0, 0, 160]
 *
 * @param CriticalDuration:num
 * @text Critical Duration
 * @parent Popups
 * @type number
 * @min 1
 * @desc Adjusts how many frames a the flash lasts.
 * @default 128
 *
 * @param Formulas
 *
 * @param OverallFormulaJS:func
 * @text JS: Overall Formula
 * @parent Formulas
 * @type note
 * @desc The overall formula used when calculating damage.
 * @default "// Declare Constants\nconst target = arguments[0];\nconst critical = arguments[1];\nconst item = this.item();\n\n// Get Base Damage\nconst baseValue = this.evalDamageFormula(target);\n\n// Calculate Element Modifiers\nlet value = baseValue * this.calcElementRate(target);\n\n// Calculate Physical and Magical Modifiers\nif (this.isPhysical()) {\n    value *= target.pdr;\n}\nif (this.isMagical()) {\n    value *= target.mdr;\n}\n\n// Apply Healing Modifiers\nif (baseValue < 0) {\n    value *= target.rec;\n}\n\n// Apply Critical Modifiers\nif (critical) {\n    value = this.applyCritical(value);\n}\n\n// Apply Variance and Guard Modifiers\nvalue = this.applyVariance(value, item.damage.variance);\nvalue = this.applyGuard(value, target);\n\n// Finalize Damage\nvalue = Math.round(value);\nreturn value;"
 *
 * @param VarianceFormulaJS:func
 * @text JS: Variance Formula
 * @parent Formulas
 * @type note
 * @desc The formula used when damage variance.
 * @default "// Declare Constants\nconst damage = arguments[0];\nconst variance = arguments[1];\n\n// Calculate Variance\nconst amp = Math.floor(Math.max((Math.abs(damage) * variance) / 100, 0));\nconst v = Math.randomInt(amp + 1) + Math.randomInt(amp + 1) - amp;\n\n// Return Damage\nreturn damage >= 0 ? damage + v : damage - v;"
 *
 * @param GuardFormulaJS:func
 * @text JS: Guard Formula
 * @parent Formulas
 * @type note
 * @desc The formula used when damage is guarded.
 * @default "// Declare Constants\nconst damage = arguments[0];\nconst target = arguments[1];\n\n// Return Damage Early\nconst note = this.item().note;\nif (note.match(/<UNBLOCKABLE>/i)) return damage;\nif (!target.isGuard()) return damage;\nif (damage < 0) return damage;\n\n// Declare Guard Rate\nlet guardRate = 0.5;\nguardRate /= target.grd;\n\n// Return Damage\nreturn damage * guardRate;"
 *
 * @param Critical
 * @text Critical Hits
 *
 * @param CriticalHitRateJS:func
 * @text JS: Rate Formula
 * @parent Critical
 * @type note
 * @desc The formula used to calculate Critical Hit Rates.
 * @default "// Declare Constants\nconst user = this.subject();\nconst target = arguments[0];\n\n// Create Base Critical Rate\nlet rate = this.subject().cri * (1 - target.cev);\n\n// Apply Notetags\nconst note = this.item().note;\nif (note.match(/<ALWAYS CRITICAL>/i)) {\n    return 1;\n}\nif (note.match(/<SET CRITICAL RATE:[ ](\\d+)([%％])>/i)) {\n    return Number(RegExp.$1) / 100;\n}\nif (note.match(/<MODIFY CRITICAL RATE:[ ](\\d+)([%％])>/i)) {\n    rate *= Number(RegExp.$1) / 100;\n}\nif (note.match(/<MODIFY CRITICAL RATE:[ ]([\\+\\-]\\d+)([%％])>/i)) {\n    rate += Number(RegExp.$1) / 100;\n}\nif (note.match(/<JS CRITICAL RATE>\\s*([\\s\\S]*)\\s*<\\/JS CRITICAL RATE>/i)) {\n    const code = String(RegExp.$1);\n    try {\n        eval(code);\n    } catch (e) {\n        if ($gameTemp.isPlaytest()) console.log(e);\n    }\n}\n\n// Apply LUK Buffs/Debuffs\nconst lukStack = this.subject().buff(7);\nrate *= 2 ** lukStack;\n\n// Return Rate\nreturn rate;"
 *
 * @param CriticalHitMultiplier:func
 * @text JS: Damage Formula
 * @parent Critical
 * @type note
 * @desc The formula used to calculate Critical Hit Damage modification.
 * @default "// Declare Constants\nconst user = this.subject();\nlet damage = arguments[0];\nlet multiplier = 2.0;\nlet bonusDamage = this.subject().luk * this.subject().cri;\n\n// Apply Notetags\nconst note = this.item().note;\nif (note.match(/<MODIFY CRITICAL MULTIPLIER:[ ](\\d+)([%％])>/i)) {\n    multiplier = Number(RegExp.$1) / 100;\n}\nif (note.match(/<MODIFY CRITICAL MULTIPLIER:[ ]([\\+\\-]\\d+)([%％])>/i)) {\n    multiplier += Number(RegExp.$1) / 100;\n}\nif (note.match(/<MODIFY CRITICAL BONUS DAMAGE:[ ](\\d+)([%％])>/i)) {\n    bonusDamage *= Number(RegExp.$1) / 100;\n}\nif (note.match(/<MODIFY CRITICAL BONUS DAMAGE:[ ]([\\+\\-]\\d+)([%％])>/i)) {\n    bonusDamage += bonusDamage * (RegExp.$1) / 100;\n}\nif (note.match(/<JS CRITICAL DAMAGE>\\s*([\\s\\S]*)\\s*<\\/JS CRITICAL DAMAGE>/i)) {\n    const code = String(RegExp.$1);\n    try {\n        eval(code);\n    } catch (e) {\n        if ($gameTemp.isPlaytest()) console.log(e);\n    }\n}\n\n// Return Damage\nreturn damage * multiplier + bonusDamage;"
 *
 */
/* ----------------------------------------------------------------------------
 * Damage Formula Style
 * ----------------------------------------------------------------------------
 */
/*~struct~DamageStyle:
 *
 * @param Name:str
 * @text Name
 * @desc Name of this Damage Style.
 * Used for notetags and such.
 * @default Untitled
 *
 * @param Formula:func
 * @text JS: Formula
 * @parent Name:str
 * @type note
 * @desc The base formula for this Damage Style.
 * @default "// Define Constants\nconst item = this.item();\nconst a = this.subject();\nconst b = target;\nconst sign = [3, 4].includes(item.damage.type) ? -1 : 1;\n\n// Create Damage Value\nlet value = Math.max(eval(item.damage.formula), 0) * sign;\n\n// Return Value\nreturn isNaN(value) ? 0 : value;"
 *
 * @param ItemsEquipsCore
 * @text Items & Equips Core
 *
 * @param DamageType
 * @text Damage Label
 * @parent ItemsEquipsCore
 *
 * @param DamageType1:str
 * @text HP Damage
 * @parent DamageType
 * @desc Vocabulary used for this data entry.
 * @default %1 Damage Multiplier
 *
 * @param DamageType2:str
 * @text MP Damage
 * @parent DamageType
 * @desc Vocabulary used for this data entry.
 * @default %1 Damage Multiplier
 *
 * @param DamageType3:str
 * @text HP Recovery
 * @parent DamageType
 * @desc Vocabulary used for this data entry.
 * @default %1 Recovery Multiplier
 *
 * @param DamageType4:str
 * @text MP Recovery
 * @parent DamageType
 * @desc Vocabulary used for this data entry.
 * @default %1 Recovery Multiplier
 *
 * @param DamageType5:str
 * @text HP Drain
 * @parent DamageType
 * @desc Vocabulary used for this data entry.
 * @default %1 Drain Multiplier
 *
 * @param DamageType6:str
 * @text MP Drain
 * @parent DamageType
 * @desc Vocabulary used for this data entry.
 * @default %1 Drain Multiplier
 *
 * @param DamageDisplay:func
 * @text JS: Damage Display
 * @parent ItemsEquipsCore
 * @type note
 * @desc Code used the data displayed for this category.
 * @default "// Define Constants\nconst item = this._item;\nconst formula = item.damage.formula;\nconst a = this._tempActorA;\nconst b = this._tempActorB;\nconst user = a;\nconst target = b;\n\n// Return Value\ntry {\n    const value = Math.max(eval(formula), 0);\n    return '%1%'.format(Math.round(value * 100));\n} catch (e) {\n    if ($gameTemp.isPlaytest()) {\n        console.log('Damage Formula Error for %1'.format(this._item.name));\n    }\n    return '?????';\n}"
 *
 */
/* ----------------------------------------------------------------------------
 * Mechanics Settings
 * ----------------------------------------------------------------------------
 */
/*~struct~Mechanics:
 *
 * @param ActionSpeed
 * @text Action Speed
 *
 * @param AllowRandomSpeed:eval
 * @text Allow Random Speed?
 * @parent ActionSpeed
 * @type boolean
 * @on Allow
 * @off Disable
 * @desc Allow speed to be randomized base off the user's AGI?
 * @default false
 *
 * @param SyncBuffExpire:eval
 * @text Turn End Buffs Expire
 * @parent ActionSpeed
 * @type boolean
 * @on Expire
 * @off Don't Expire
 * @desc Normally, buffs expire after all actions end.
 * But here, you can have buffs expire on turn end.
 * @default false
 *
 * @param CalcActionSpeedJS:func
 * @text JS: Calculate
 * @parent ActionSpeed
 * @type note
 * @desc Code used to calculate action speed.
 * @default "// Declare Constants\nconst agi = this.subject().agi;\n\n// Create Speed\nlet speed = agi;\nif (this.allowRandomSpeed()) {\n    speed += Math.randomInt(Math.floor(5 + agi / 4));\n}\nif (this.item()) {\n    speed += this.item().speed;\n}\nif (this.isAttack()) {\n    speed += this.subject().attackSpeed();\n}\n\n// Return Speed\nreturn speed;"
 *
 * @param BaseTroop
 * @text Base Troop
 *
 * @param BaseTroopIDs:arraynum
 * @text Base Troop ID's
 * @parent BaseTroop
 * @type troop[]
 * @desc Select the Troop ID(s) to duplicate page events from for all other troops.
 * @default ["1"]
 *
 * @param CommonEvents
 * @text Common Events (on Map)
 *
 * @param BattleStartEvent:num
 * @text Pre-Battle Event
 * @parent CommonEvents
 * @type common_event
 * @desc Common Event to run before each battle on map.
 * Use to 0 to not run any Common Event at all.
 * @default 0
 *
 * @param BattleEndEvent:num
 * @text Post-Battle Event
 * @parent CommonEvents
 * @type common_event
 * @desc Queued Common Event to run after each battle on map.
 * Use to 0 to not run any Common Event at all.
 * @default 0
 *
 * @param VictoryEvent:num
 * @text Victory Event
 * @parent CommonEvents
 * @type common_event
 * @desc Queued Common Event to run upon victory on map.
 * Use to 0 to not run any Common Event at all.
 * @default 0
 *
 * @param DefeatEvent:num
 * @text Defeat Event
 * @parent CommonEvents
 * @type common_event
 * @desc Queued Common Event to run upon defeat on map.
 * Use to 0 to not run any Common Event at all.
 * @default 0
 *
 * @param EscapeSuccessEvent:num
 * @text Escape Success Event
 * @parent CommonEvents
 * @type common_event
 * @desc Queued Common Event to run upon escape success on map.
 * Use to 0 to not run any Common Event at all.
 * @default 0
 *
 * @param EscapeFailEvent:num
 * @text Escape Fail Event
 * @parent CommonEvents
 * @type common_event
 * @desc Queued Common Event to run upon escape failure on map.
 * Use to 0 to not run any Common Event at all.
 * @default 0
 *
 * @param Escape
 *
 * @param CalcEscapeRatioJS:func
 * @text JS: Calc Escape Ratio
 * @parent Escape
 * @type note
 * @desc Code used to calculate the escape success ratio.
 * @default "// Calculate Escape Ratio\nlet ratio = 0.5;\nratio *= $gameParty.agility();\nratio /= $gameTroop.agility();\n\n// Return Ratio\nreturn ratio;"
 *
 * @param CalcEscapeRaiseJS:func
 * @text JS: Calc Escape Raise
 * @parent Escape
 * @type note
 * @desc Code used to calculate how much the escape success ratio raises upon each failure.
 * @default "// Calculate Escape Ratio\nlet value = 0.1;\nvalue += $gameParty.aliveMembers().length;\n\n// Return Value\nreturn value;"
 *
 * @param Switches
 *
 * @param SwitchCritical:num
 * @text Switch: Critical
 * @parent Switches
 * @type switch
 * @desc Turns switch ON if the action performs a critical hit.
 * Switch reverts to OFF whenever an action starts.
 * @default 0
 *
 * @param SwitchMissEvade:num
 * @text Switch: Miss/Evade
 * @parent Switches
 * @type switch
 * @desc Turns switch ON if the action misses/is evaded.
 * Switch reverts to OFF whenever an action starts.
 * @default 0
 *
 * @param Variables
 *
 * @param VariableDmg:num
 * @text Variable: Damage
 * @parent Variables
 * @type variable
 * @desc Variable records target damage during action.
 * Variable reverts to 0 whenever an action starts.
 * @default 0
 *
 * @param VariableHeal:num
 * @text Variable: Healing
 * @parent Variables
 * @type variable
 * @desc Variable records target healing during action.
 * Variable reverts to 0 whenever an action starts.
 * @default 0
 *
 * @param BattleJS
 * @text JS: Battle-Related
 * 
 * @param PreStartBattleJS:func
 * @text JS: Pre-Start Battle
 * @parent BattleJS
 * @type note
 * @desc Target function: BattleManager.startBattle()
 * JavaScript code occurs before function is run.
 * @default "// Declare Constants\nconst user = this;\nconst target = user;\nconst a = user;\nconst b = user;\n\n// Perform Actions\n"
 *
 * @param PostStartBattleJS:func
 * @text JS: Post-Start Battle
 * @parent BattleJS
 * @type note
 * @desc Target function: BattleManager.startBattle()
 * JavaScript code occurs after function is run.
 * @default "// Declare Constants\nconst user = this;\nconst target = user;\nconst a = user;\nconst b = user;\n\n// Perform Actions\n"
 * 
 * @param BattleVictoryJS:func
 * @text JS: Battle Victory
 * @parent BattleJS
 * @type note
 * @desc Target function: BattleManager.processVictory()
 * JavaScript code occurs before function is run.
 * @default "// Declare Constants\nconst user = this;\nconst target = user;\nconst a = user;\nconst b = user;\n\n// Perform Actions\n"
 *
 * @param EscapeSuccessJS:func
 * @text JS: Escape Success
 * @parent BattleJS
 * @type note
 * @desc Target function: BattleManager.onEscapeSuccess()
 * JavaScript code occurs before function is run.
 * @default "// Declare Constants\nconst user = this;\nconst target = user;\nconst a = user;\nconst b = user;\n\n// Perform Actions\n"
 *
 * @param EscapeFailureJS:func
 * @text JS: Escape Failure
 * @parent BattleJS
 * @type note
 * @desc Target function: BattleManager.onEscapeFailure()
 * JavaScript code occurs before function is run.
 * @default "// Declare Constants\nconst user = this;\nconst target = user;\nconst a = user;\nconst b = user;\n\n// Perform Actions\n"
 * 
 * @param BattleDefeatJS:func
 * @text JS: Battle Defeat
 * @parent BattleJS
 * @type note
 * @desc Target function: BattleManager.processDefeat()
 * JavaScript code occurs before function is run.
 * @default "// Declare Constants\nconst user = this;\nconst target = user;\nconst a = user;\nconst b = user;\n\n// Perform Actions\n"
 * 
 * @param PreEndBattleJS:func
 * @text JS: Pre-End Battle
 * @parent BattleJS
 * @type note
 * @desc Target function: BattleManager.endBattle()
 * JavaScript code occurs before function is run.
 * @default "// Declare Constants\nconst user = this;\nconst target = user;\nconst a = user;\nconst b = user;\n\n// Perform Actions\n"
 *
 * @param PostEndBattleJS:func
 * @text JS: Post-End Battle
 * @parent BattleJS
 * @type note
 * @desc Target function: BattleManager.endBattle()
 * JavaScript code occurs after function is run.
 * @default "// Declare Constants\nconst user = this;\nconst target = user;\nconst a = user;\nconst b = user;\n\n// Perform Actions\n"
 *
 * @param TurnJS
 * @text JS: Turn-Related
 *
 * @param PreStartTurnJS:func
 * @text JS: Pre-Start Turn
 * @parent TurnJS
 * @type note
 * @desc Target function: BattleManager.startTurn()
 * JavaScript code occurs before function is run.
 * @default "// Declare Constants\nconst user = this;\nconst target = user;\nconst a = user;\nconst b = user;\n\n// Perform Actions\n"
 *
 * @param PostStartTurnJS:func
 * @text JS: Post-Start Turn
 * @parent TurnJS
 * @type note
 * @desc Target function: BattleManager.startTurn()
 * JavaScript code occurs after function is run.
 * @default "// Declare Constants\nconst user = this;\nconst target = user;\nconst a = user;\nconst b = user;\n\n// Perform Actions\n"
 *
 * @param PreEndTurnJS:func
 * @text JS: Pre-End Turn
 * @parent TurnJS
 * @type note
 * @desc Target function: Game_Battler.prototype.onTurnEnd()
 * JavaScript code occurs before function is run.
 * @default "// Declare Constants\nconst user = this;\nconst target = user;\nconst a = user;\nconst b = user;\n\n// Perform Actions\n"
 *
 * @param PostEndTurnJS:func
 * @text JS: Post-End Turn
 * @parent TurnJS
 * @type note
 * @desc Target function: Game_Battler.prototype.onTurnEnd()
 * JavaScript code occurs after function is run.
 * @default "// Declare Constants\nconst user = this;\nconst target = user;\nconst a = user;\nconst b = user;\n\n// Perform Actions\n"
 *
 * @param PreRegenerateJS:func
 * @text JS: Pre-Regenerate
 * @parent TurnJS
 * @type note
 * @desc Target function: Game_Battler.prototype.regenerateAll()
 * JavaScript code occurs before function is run.
 * @default "// Declare Constants\nconst user = this;\nconst target = user;\nconst a = user;\nconst b = user;\n\n// Perform Actions\n"
 *
 * @param PostRegenerateJS:func
 * @text JS: Post-Regenerate
 * @parent TurnJS
 * @type note
 * @desc Target function: Game_Battler.prototype.regenerateAll()
 * JavaScript code occurs after function is run.
 * @default "// Declare Constants\nconst user = this;\nconst target = user;\nconst a = user;\nconst b = user;\n\n// Perform Actions\n"
 *
 * @param ActionJS
 * @text JS: Action-Related
 *
 * @param PreStartActionJS:func
 * @text JS: Pre-Start Action
 * @parent ActionJS
 * @type note
 * @desc Target function: BattleManager.startAction()
 * JavaScript code occurs before function is run.
 * @default "// Declare Constants\nconst value = arguments[0];\nconst user = this.subject();\nconst target = user;\nconst a = user;\nconst b = user;\nconst action = this;\nconst item = this.item();\nconst skill = this.item();\n\n// Perform Actions\n"
 *
 * @param PostStartActionJS:func
 * @text JS: Post-Start Action
 * @parent ActionJS
 * @type note
 * @desc Target function: BattleManager.startAction()
 * JavaScript code occurs after function is run.
 * @default "// Declare Constants\nconst value = arguments[0];\nconst user = this.subject();\nconst target = user;\nconst a = user;\nconst b = user;\nconst action = this;\nconst item = this.item();\nconst skill = this.item();\n\n// Perform Actions\n"
 *
 * @param PreApplyJS:func
 * @text JS: Pre-Apply
 * @parent ActionJS
 * @type note
 * @desc Target function: Game_Action.prototype.apply()
 * JavaScript code occurs before function is run.
 * @default "// Declare Constants\nconst value = arguments[0];\nconst target = arguments[1];\nconst user = this.subject();\nconst a = user;\nconst b = target;\nconst action = this;\nconst item = this.item();\nconst skill = this.item();\n\n// Perform Actions\n\n// Return Value\nreturn value;"
 *
 * @param PreDamageJS:func
 * @text JS: Pre-Damage
 * @parent ActionJS
 * @type note
 * @desc Target function: Game_Action.prototype.executeDamage()
 * JavaScript code occurs before function is run.
 * @default "// Declare Constants\nconst value = arguments[0];\nconst target = arguments[1];\nconst user = this.subject();\nconst a = user;\nconst b = target;\nconst action = this;\nconst item = this.item();\nconst skill = this.item();\n\n// Perform Actions\n\n// Return Value\nreturn value;"
 *
 * @param PostDamageJS:func
 * @text JS: Post-Damage
 * @parent ActionJS
 * @type note
 * @desc Target function: Game_Action.prototype.executeDamage()
 * JavaScript code occurs after function is run.
 * @default "// Declare Constants\nconst value = arguments[0];\nconst target = arguments[1];\nconst user = this.subject();\nconst a = user;\nconst b = target;\nconst action = this;\nconst item = this.item();\nconst skill = this.item();\n\n// Perform Actions\n\n// Return Value\nreturn value;"
 *
 * @param PostApplyJS:func
 * @text JS: Post-Apply
 * @parent ActionJS
 * @type note
 * @desc Target function: Game_Action.prototype.apply()
 * JavaScript code occurs after function is run.
 * @default "// Declare Constants\nconst value = arguments[0];\nconst target = arguments[1];\nconst user = this.subject();\nconst a = user;\nconst b = target;\nconst action = this;\nconst item = this.item();\nconst skill = this.item();\n\n// Perform Actions\n\n// Return Value\nreturn value;"
 *
 * @param PreEndActionJS:func
 * @text JS: Pre-End Action
 * @parent ActionJS
 * @type note
 * @desc Target function: BattleManager.endAction()
 * JavaScript code occurs before function is run.
 * @default "// Declare Constants\nconst value = arguments[0];\nconst user = this.subject();\nconst target = user;\nconst a = user;\nconst b = user;\nconst action = this;\nconst item = this.item();\nconst skill = this.item();\n\n// Perform Actions\n"
 *
 * @param PostEndActionJS:func
 * @text JS: Post-End Action
 * @parent ActionJS
 * @type note
 * @desc Target function: BattleManager.endAction()
 * JavaScript code occurs after function is run.
 * @default "// Declare Constants\nconst value = arguments[0];\nconst user = this.subject();\nconst target = user;\nconst a = user;\nconst b = user;\nconst action = this;\nconst item = this.item();\nconst skill = this.item();\n\n// Perform Actions\n"
 *
 */
/* ----------------------------------------------------------------------------
 * Battle Layout Settings
 * ----------------------------------------------------------------------------
 */
/*~struct~BattleLayout:
 *
 * @param Style:str
 * @text Battle Layout Style
 * @type select
 * @option Default - Shows actor faces in Battle Status.
 * @value default
 * @option List - Lists actors in Battle Status.
 * @value list
 * @option XP - Shows actor battlers in a stretched Battle Status.
 * @value xp
 * @option Portrait - Shows portraits in a stretched Battle Status.
 * @value portrait
 * @option Border - Displays windows around the screen border.
 * @value border
 * @option Frontview Battle UI - Requires VisuMZ_3_FrontviewBattleUI
 * @value frontview_ui
 * @option Sideview Battle UI - Requires VisuMZ_3_SideviewBattleUI
 * @value sideview_ui
 * @desc The style used for the battle layout.
 * @default default
 *
 * @param ListStyle
 * @text List Style
 * @parent Style:str
 *
 * @param ShowFacesListStyle:eval
 * @text Show Faces
 * @parent ListStyle
 * @type boolean
 * @on Show
 * @off Hide
 * @desc Shows faces in List Style?
 * @default true
 *
 * @param CommandWidth:num
 * @text Command Window Width
 * @parent ListStyle
 * @type number
 * @min 1
 * @desc Determine the window width for the Party and Actor Command
 * Windows. Affects Default and List Battle Layout styles.
 * @default 192
 *
 * @param ListMinRows:num
 * @text Minimum Rows
 * @parent ListStyle
 * @type number
 * @min 1
 * @desc How many rows minimum will the list style go to? This is
 * to prevent the list window from becoming too small.
 * @default 4
 *
 * @param XPStyle
 * @text XP Style
 * @parent Style:str
 *
 * @param XPActorCommandLines:num
 * @text Command Lines
 * @parent XPStyle
 * @type number
 * @min 1
 * @desc Number of action lines in the Actor Command Window for the XP Style.
 * @default 4
 *
 * @param XPActorDefaultHeight:num
 * @text Sprite Height
 * @parent XPStyle
 * @type number
 * @min 1
 * @desc Default sprite height used when if the sprite's height has not been determined yet.
 * @default 64
 *
 * @param XPSpriteYLocation:str
 * @text Sprite Base Location
 * @parent XPStyle
 * @type select
 * @option Above Name - Sprite is located above the name.
 * @value name
 * @option Bottom - Sprite is located at the bottom of the window.
 * @value bottom
 * @option Centered - Sprite is centered in the window.
 * @value center
 * @option Top - Sprite is located at the top of the window.
 * @value top
 * @desc Determine where the sprite is located on the Battle Status Window.
 * @default name
 *
 * @param PotraitStyle
 * @text Portrait Style
 * @parent Style:str
 *
 * @param ShowPortraits:eval
 * @text Show Portraits?
 * @parent PotraitStyle
 * @type boolean
 * @on Portraits
 * @off Faces
 * @desc Requires VisuMZ_1_MainMenuCore.
 * Shows the actor's portrait instead of a face.
 * @default true
 *
 * @param PortraitScale:num
 * @text Portrait Scaling
 * @parent PotraitStyle
 * @desc If portraits are used, scale them by this much.
 * @default 0.5
 *
 * @param BorderStyle
 * @text Border Style
 * @parent Style:str
 *
 * @param SkillItemBorderCols:num
 * @text Columns
 * @parent BorderStyle
 * @type number
 * @min 1
 * @desc The total number of columns for Skill & Item Windows
 * in the battle scene.
 * @default 1
 *
 * @param ShowPortraitsBorderStyle:eval
 * @text Show Portraits?
 * @parent BorderStyle
 * @type boolean
 * @on Portraits
 * @off Faces
 * @desc Requires VisuMZ_1_MainMenuCore.
 * Shows the actor's portrait at the edge of the screen.
 * @default true
 *
 * @param PortraitScaleBorderStyle:num
 * @text Portrait Scaling
 * @parent BorderStyle
 * @desc If portraits are used, scale them by this much.
 * @default 1.0
 *
 * @param SkillItemWindows
 * @text Skill & Item Windows
 *
 * @param SkillItemMiddleLayout:eval
 * @text Middle Layout
 * @parent SkillItemWindows
 * @type boolean
 * @on Middle
 * @off Bottom
 * @desc Shows the Skill & Item Windows in mid-screen?
 * @default false
 *
 * @param SkillItemStandardCols:num
 * @text Columns
 * @parent SkillItemWindows
 * @type number
 * @min 1
 * @desc The total number of columns for Skill & Item Windows
 * in the battle scene.
 * @default 2
 *
 * @param StatusWindow
 * @text Status Window Elements
 *
 * @param StatusWindowName
 * @text Battler Name
 * @parent StatusWindow
 *
 * @param NameOffsetX:num
 * @text Offset: X
 * @parent StatusWindowName
 * @desc Offset this Battle Status Window element's X.
 * Negative goes left. Positive goes right.
 * @default +0
 *
 * @param NameOffsetY:num
 * @text Offset: Y
 * @parent StatusWindowName
 * @desc Offset this Battle Status Window element's Y.
 * Negative goes up. Positive goes down.
 * @default +0
 *
 * @param StatusWindowHpGauge
 * @text Gauge 1 (HP)
 * @parent StatusWindow
 *
 * @param HpGaugeOffsetX:num
 * @text Offset: X
 * @parent StatusWindowHpGauge
 * @desc Offset this Battle Status Window element's X.
 * Negative goes left. Positive goes right.
 * @default +0
 *
 * @param HpGaugeOffsetY:num
 * @text Offset: Y
 * @parent StatusWindowHpGauge
 * @desc Offset this Battle Status Window element's Y.
 * Negative goes up. Positive goes down.
 * @default +0
 *
 * @param StatusWindowMpGauge
 * @text Gauge 2 (MP)
 * @parent StatusWindow
 *
 * @param MpGaugeOffsetX:num
 * @text Offset: X
 * @parent StatusWindowMpGauge
 * @desc Offset this Battle Status Window element's X.
 * Negative goes left. Positive goes right.
 * @default +0
 *
 * @param MpGaugeOffsetY:num
 * @text Offset: Y
 * @parent StatusWindowMpGauge
 * @desc Offset this Battle Status Window element's Y.
 * Negative goes up. Positive goes down.
 * @default +0
 *
 * @param StatusWindowTpGauge
 * @text Gauge 3 (TP)
 * @parent StatusWindow
 *
 * @param TpGaugeOffsetX:num
 * @text Offset: X
 * @parent StatusWindowTpGauge
 * @desc Offset this Battle Status Window element's X.
 * Negative goes left. Positive goes right.
 * @default +0
 *
 * @param TpGaugeOffsetY:num
 * @text Offset: Y
 * @parent StatusWindowTpGauge
 * @desc Offset this Battle Status Window element's Y.
 * Negative goes up. Positive goes down.
 * @default +0
 *
 * @param StatusWindowStateIcon
 * @text State Icon
 * @parent StatusWindow
 *
 * @param StateIconOffsetX:num
 * @text Offset: X
 * @parent StatusWindowStateIcon
 * @desc Offset this Battle Status Window element's X.
 * Negative goes left. Positive goes right.
 * @default +0
 *
 * @param StateIconOffsetY:num
 * @text Offset: Y
 * @parent StatusWindowStateIcon
 * @desc Offset this Battle Status Window element's Y.
 * Negative goes up. Positive goes down.
 * @default +0
 *
 * @param StatusWindowTpbGauge
 * @text TPB/ATB Gauge
 * @parent StatusWindow
 *
 * @param TpbGaugeOffsetX:num
 * @text Offset: X
 * @parent StatusWindowTpbGauge
 * @desc Offset this Battle Status Window element's X.
 * Negative goes left. Positive goes right.
 * @default +0
 *
 * @param TpbGaugeOffsetY:num
 * @text Offset: Y
 * @parent StatusWindowTpbGauge
 * @desc Offset this Battle Status Window element's Y.
 * Negative goes up. Positive goes down.
 * @default +0
 *
 * @param StatusWindowSkin
 * @text Window Skin
 * @parent StatusWindow
 *
 * @param StatusWindowSkinFilename:str
 * @text Filename
 * @parent StatusWindowSkin
 * @type file
 * @dir img/system/
 * @desc Filename used for the Battle Status Window skin.
 * Leave this empty to use the default window skin.
 * @default 
 *
 * @param StatusWindowSkinHide:eval
 * @text Hide Window Skin?
 * @parent StatusWindowSkin
 * @type boolean
 * @on No Window Skin
 * @off Default Skin
 * @desc Show/Hide the window skin for the Battle Status Window?
 * @default false
 *
 * @param StatusWindowSelectBack
 * @text Selectable Background
 * @parent StatusWindow
 *
 * @param StatusWindowSelectableBackHide:eval
 * @text Hide Selectable BG?
 * @parent StatusWindowSelectBack
 * @type boolean
 * @on No Selectable BG
 * @off Default Selectable BG
 * @desc Show/Hide the selectable background box for the Battle Status Window?
 * @default false
 *
 * @param StatusWindowAttachments
 * @text Attachments
 * @parent StatusWindow
 *
 * @param StatusWindowBackAttachment
 * @text Back Attachment
 * @parent StatusWindowAttachments
 *
 * @param StatusWindowAttachmentBack:str
 * @text Filename
 * @parent StatusWindowBackAttachment
 * @type file
 * @dir img/system/
 * @desc Filename used for an image to attach to the back of the
 * Battle Status Window. Leave empty for none.
 * @default 
 *
 * @param StatusWindowAttachmentBackOffsetX:num
 * @text Offset: X
 * @parent StatusWindowBackAttachment
 * @desc Offset this Battle Status Window element's X.
 * Negative goes left. Positive goes right.
 * @default +0
 *
 * @param StatusWindowAttachmentBackOffsetY:num
 * @text Offset: Y
 * @parent StatusWindowBackAttachment
 * @desc Offset this Battle Status Window element's Y.
 * Negative goes up. Positive goes down.
 * @default +0
 *
 * @param StatusWindowFrontAttachment
 * @text Front Attachment
 * @parent StatusWindowAttachments
 *
 * @param StatusWindowAttachmentFront:str
 * @text Filename
 * @parent StatusWindowFrontAttachment
 * @type file
 * @dir img/system/
 * @desc Filename used for an image to attach to the front of the
 * Battle Status Window. Leave empty for none.
 * @default 
 *
 * @param StatusWindowAttachmentFrontOffsetX:num
 * @text Offset: X
 * @parent StatusWindowFrontAttachment
 * @desc Offset this Battle Status Window element's X.
 * Negative goes left. Positive goes right.
 * @default +0
 *
 * @param StatusWindowAttachmentFrontOffsetY:num
 * @text Offset: Y
 * @parent StatusWindowFrontAttachment
 * @desc Offset this Battle Status Window element's Y.
 * Negative goes up. Positive goes down.
 * @default +0
 *
 * @param UiElements
 * @text UI Elements
 *
 * @param AntiTintUiElements:eval
 * @text Anti-Tint UI?
 * @parent UiElements
 * @type boolean
 * @on Prevent Tint
 * @off Allow Tint
 * @desc Prevent UI Elements from being tinted?
 * @default true
 *
 */
/* ----------------------------------------------------------------------------
 * Battle Log Settings
 * ----------------------------------------------------------------------------
 */
/*~struct~BattleLog:
 *
 * @param General
 *
 * @param BackColor:str
 * @text Back Color
 * @parent General
 * @desc Use #rrggbb for a hex color.
 * @default #000000
 *
 * @param MaxLines:num
 * @text Max Lines
 * @parent General
 * @type number
 * @min 1
 * @desc Maximum number of lines to be displayed.
 * @default 10
 *
 * @param MessageWait:num
 * @text Message Wait
 * @parent General
 * @type number
 * @min 1
 * @desc Number of frames for a usual message wait.
 * @default 16
 *
 * @param TextAlign:str
 * @text Text Align
 * @parent General
 * @type combo
 * @option left
 * @option center
 * @option right
 * @desc Text alignment for the Window_BattleLog.
 * @default center
 *
 * @param BattleLogRectJS:func
 * @text JS: X, Y, W, H
 * @parent General
 * @type note
 * @desc Code used to determine the dimensions for the battle log.
 * @default "const wx = 0;\nconst wy = 0;\nconst ww = Graphics.boxWidth;\nconst wh = this.calcWindowHeight(10, false);\nreturn new Rectangle(wx, wy, ww, wh);"
 *
 * @param StartTurn
 * @text Start Turn
 *
 * @param StartTurnShow:eval
 * @text Show Start Turn?
 * @parent StartTurn
 * @type boolean
 * @on Show
 * @off Hide
 * @desc Display turn changes at the start of the turn?
 * @default false
 *
 * @param StartTurnMsg:str
 * @text Start Turn Message
 * @parent StartTurn
 * @desc Message displayed at turn start.
 * %1 - Turn Count
 * @default Turn %1
 *
 * @param StartTurnWait:num
 * @text Start Turn Wait
 * @parent StartTurn
 * @type number
 * @min 1
 * @desc Number of frames to wait after a turn started.
 * @default 40
 *
 * @param DisplayAction
 * @text Display Action
 *
 * @param ActionCenteredName:eval
 * @text Show Centered Action?
 * @parent DisplayAction
 * @type boolean
 * @on Show
 * @off Hide
 * @desc Display a centered text of the action name?
 * @default true
 *
 * @param ActionSkillMsg1:eval
 * @text Show Skill Message 1?
 * @parent DisplayAction
 * @type boolean
 * @on Show
 * @off Hide
 * @desc Display the 1st skill message?
 * @default false
 *
 * @param ActionSkillMsg2:eval
 * @text Show Skill Message 2?
 * @parent DisplayAction
 * @type boolean
 * @on Show
 * @off Hide
 * @desc Display the 2nd skill message?
 * @default true
 *
 * @param ActionItemMsg:eval
 * @text Show Item Message?
 * @parent DisplayAction
 * @type boolean
 * @on Show
 * @off Hide
 * @desc Display the item use message?
 * @default false
 *
 * @param ActionChanges
 * @text Action Changes
 *
 * @param ShowCounter:eval
 * @text Show Counter?
 * @parent ActionChanges
 * @type boolean
 * @on Show
 * @off Hide
 * @desc Display counter text?
 * @default true
 *
 * @param ShowCounterWait:eval
 * @text Wait Frames
 * @parent ShowCounter:eval
 * @type number
 * @desc How many frames should the battle log wait after text?
 * 60 frames = 1 second.
 * @default 0
 *
 * @param ShowReflect:eval
 * @text Show Reflect?
 * @parent ActionChanges
 * @type boolean
 * @on Show
 * @off Hide
 * @desc Display magic reflection text?
 * @default true
 *
 * @param ShowReflectWait:eval
 * @text Wait Frames
 * @parent ShowReflect:eval
 * @type number
 * @desc How many frames should the battle log wait after text?
 * 60 frames = 1 second.
 * @default 0
 *
 * @param ShowSubstitute:eval
 * @text Show Substitute?
 * @parent ActionChanges
 * @type boolean
 * @on Show
 * @off Hide
 * @desc Display substitute text?
 * @default true
 *
 * @param ShowSubstituteWait:eval
 * @text Wait Frames
 * @parent ShowSubstitute:eval
 * @type number
 * @desc How many frames should the battle log wait after text?
 * 60 frames = 1 second.
 * @default 0
 *
 * @param ActionResults
 * @text Action Results
 *
 * @param ShowFailure:eval
 * @text Show No Effect?
 * @parent ActionResults
 * @type boolean
 * @on Show
 * @off Hide
 * @desc Display no effect text?
 * @default false
 *
 * @param ShowCritical:eval
 * @text Show Critical?
 * @parent ActionResults
 * @type boolean
 * @on Show
 * @off Hide
 * @desc Display critical text?
 * @default false
 *
 * @param ShowMissEvasion:eval
 * @text Show Miss/Evasion?
 * @parent ActionResults
 * @type boolean
 * @on Show
 * @off Hide
 * @desc Display miss/evasion text?
 * @default false
 *
 * @param ShowHpDmg:eval
 * @text Show HP Damage?
 * @parent ActionResults
 * @type boolean
 * @on Show
 * @off Hide
 * @desc Display HP Damage text?
 * @default false
 *
 * @param ShowMpDmg:eval
 * @text Show MP Damage?
 * @parent ActionResults
 * @type boolean
 * @on Show
 * @off Hide
 * @desc Display MP Damage text?
 * @default false
 *
 * @param ShowTpDmg:eval
 * @text Show TP Damage?
 * @parent ActionResults
 * @type boolean
 * @on Show
 * @off Hide
 * @desc Display TP Damage text?
 * @default false
 *
 * @param DisplayStates
 * @text Display States
 *
 * @param ShowAddedState:eval
 * @text Show Added States?
 * @parent DisplayStates
 * @type boolean
 * @on Show
 * @off Hide
 * @desc Display added states text?
 * @default false
 *
 * @param ShowRemovedState:eval
 * @text Show Removed States?
 * @parent DisplayStates
 * @type boolean
 * @on Show
 * @off Hide
 * @desc Display removed states text?
 * @default false
 *
 * @param ShowCurrentState:eval
 * @text Show Current States?
 * @parent DisplayStates
 * @type boolean
 * @on Show
 * @off Hide
 * @desc Display the currently affected state text?
 * @default false
 *
 * @param ShowAddedBuff:eval
 * @text Show Added Buffs?
 * @parent DisplayStates
 * @type boolean
 * @on Show
 * @off Hide
 * @desc Display added buffs text?
 * @default false
 *
 * @param ShowAddedDebuff:eval
 * @text Show Added Debuffs?
 * @parent DisplayStates
 * @type boolean
 * @on Show
 * @off Hide
 * @desc Display added debuffs text?
 * @default false
 *
 * @param ShowRemovedBuff:eval
 * @text Show Removed Buffs?
 * @parent DisplayStates
 * @type boolean
 * @on Show
 * @off Hide
 * @desc Display removed de/buffs text?
 * @default false
 *
 */
/* ----------------------------------------------------------------------------
 * Battleback Settings
 * ----------------------------------------------------------------------------
 */
/*~struct~Battleback:
 *
 * @param DefaultStyle:str
 * @text Default Style
 * @type select
 * @option MZ (MZ's default style)
 * @value MZ
 * @option 1:1 (No Scaling)
 * @value 1:1
 * @option Scale To Fit (Scale to screen size)
 * @value ScaleToFit
 * @option Scale Down (Scale Downward if Larger than Screen)
 * @value ScaleDown
 * @option Scale Up (Scale Upward if Smaller than Screen)
 * @value ScaleUp
 * @desc The default scaling style used for battlebacks.
 * @default MZ
 *
 * @param jsOneForOne:func
 * @text JS: 1:1
 * @type note
 * @desc This code gives you control over the scaling for this style.
 * @default "// Adjust Size\nthis.width = Graphics.width;\nthis.height = Graphics.height;\n\n// Adjust Scale\nconst scale = 1.0;\nthis.scale.x = scale;\nthis.scale.y = scale;\n\n// Adjust Coordinates\nthis.x = 0;\nthis.y = 0;"
 *
 * @param jsScaleToFit:func
 * @text JS: Scale To Fit
 * @type note
 * @desc This code gives you control over the scaling for this style.
 * @default "// Adjust Size\nthis.width = Graphics.width;\nthis.height = Graphics.height;\n\n// Adjust Scale\nconst ratioX = this.width / this.bitmap.width;\nconst ratioY = this.height / this.bitmap.height;\nconst scale = Math.max(ratioX, ratioY);\nthis.scale.x = scale;\nthis.scale.y = scale;\n\n// Adjust Coordinates\nthis.x = (Graphics.width - this.width) / 2;\nthis.y = Graphics.height - this.height;"
 *
 * @param jsScaleDown:func
 * @text JS: Scale Down
 * @type note
 * @desc This code gives you control over the scaling for this style.
 * @default "// Adjust Size\nthis.width = Graphics.width;\nthis.height = Graphics.height;\n\n// Adjust Scale\nconst ratioX = Math.min(1, this.width / this.bitmap.width);\nconst ratioY = Math.min(1, this.height / this.bitmap.height);\nconst scale = Math.max(ratioX, ratioY);\nthis.scale.x = scale;\nthis.scale.y = scale;\n\n// Adjust Coordinates\nthis.x = (Graphics.width - this.width) / 2;\nthis.y = Graphics.height - this.height;"
 *
 * @param jsScaleUp:func
 * @text JS: Scale Up
 * @type note
 * @desc This code gives you control over the scaling for this style.
 * @default "// Adjust Size\nthis.width = Graphics.width;\nthis.height = Graphics.height;\n\n// Adjust Scale\nconst ratioX = Math.max(1, this.width / this.bitmap.width);\nconst ratioY = Math.max(1, this.height / this.bitmap.height);\nconst scale = Math.max(ratioX, ratioY);\nthis.scale.x = scale;\nthis.scale.y = scale;\n\n// Adjust Coordinates\nthis.x = (Graphics.width - this.width) / 2;\nthis.y = Graphics.height - this.height;"
 *
 */
/* ----------------------------------------------------------------------------
 * Party Command Window Settings
 * ----------------------------------------------------------------------------
 */
/*~struct~PartyCmd:
 *
 * @param Cmd
 * @text Command Window
 *
 * @param CmdStyle:str
 * @text Style
 * @parent Cmd
 * @type select
 * @option Text Only
 * @value text
 * @option Icon Only
 * @value icon
 * @option Icon + Text
 * @value iconText
 * @option Automatic
 * @value auto
 * @desc How do you wish to draw commands in the Party Command Window?
 * @default auto
 *
 * @param CmdTextAlign:str
 * @text Text Align
 * @parent Cmd
 * @type combo
 * @option left
 * @option center
 * @option right
 * @desc Text alignment for the Party Command Window.
 * @default left
 *
 * @param CmdIconFight:num
 * @text Fight Icon
 * @parent Cmd
 * @desc The icon used for the Fight command.
 * @default 76
 *
 * @param CommandAddAutoBattle:eval
 * @text Add Auto Battle?
 * @parent Cmd
 * @type boolean
 * @on Add
 * @off Don't
 * @desc Add the "Auto Battle" command to the Command Window?
 * @default true
 *
 * @param CmdIconAutoBattle:num
 * @text Auto Battle Icon
 * @parent CommandAddAutoBattle:eval
 * @desc The icon used for the Auto Battle command.
 * @default 78
 *
 * @param CmdTextAutoBattle:str
 * @text Auto Battle Text
 * @parent CommandAddAutoBattle:eval
 * @desc The text used for the Auto Battle command.
 * @default Auto
 *
 * @param CommandAddStatus:eval
 * @text Add Status?
 * @parent Cmd
 * @type boolean
 * @on Add
 * @off Don't
 * @desc Add the "Status" command to the Command Window?
 * @default true
 *
 * @param CmdIconStatus:num
 * @text Status Icon
 * @parent CommandAddStatus:eval
 * @desc The icon used for the Status command.
 * @default 87
 *
 * @param CommandAddOptions:eval
 * @text Add Options?
 * @parent Cmd
 * @type boolean
 * @on Add
 * @off Don't
 * @desc Add the "Options" command to the Command Window?
 * @default true
 *
 * @param CmdIconOptions:num
 * @text Options Icon
 * @parent CommandAddOptions:eval
 * @desc The icon used for the Options command.
 * @default 83
 *
 * @param ActiveTpbOptionsMessage:str
 * @text Active TPB Message
 * @parent CommandAddOptions:eval
 * @desc Message that will be displayed when selecting options during the middle of an action.
 * @default Options Menu queued after action is complete.
 *
 * @param CmdIconEscape:num
 * @text Escape Icon
 * @parent Cmd
 * @desc The icon used for the Escape command.
 * @default 82
 *
 * @param Access
 *
 * @param SkipPartyCmd:eval
 * @text Skip Party Command
 * @parent Access
 * @type boolean
 * @on Skip
 * @off Don't
 * @desc DTB: Skip Party Command selection on turn start.
 * TPB: Skip Party Command selection at battle start.
 * @default true
 *
 * @param DisablePartyCmd:eval
 * @text Disable Party Command
 * @parent Access
 * @type boolean
 * @on Disable
 * @off Don't
 * @desc Disable the Party Command Window entirely?
 * @default false
 *
 * @param HelpWindow
 * @text Help Window
 *
 * @param HelpFight:str
 * @text Fight
 * @parent HelpWindow
 * @desc Text displayed when selecting a skill type.
 * %1 - Skill Type Name
 * @default Select actions to fight.
 *
 * @param HelpAutoBattle:str
 * @text Auto Battle
 * @parent HelpWindow
 * @desc Text displayed when selecting the Auto Battle command.
 * @default Sets party to Auto Battle mode.
 *
 * @param HelpOptions:str
 * @text Options
 * @parent HelpWindow
 * @desc Text displayed when selecting the Options command.
 * @default Opens up the Options Menu.
 *
 * @param HelpEscape:str
 * @text Escape
 * @parent HelpWindow
 * @desc Text displayed when selecting the escape command.
 * @default Attempt to escape the battle.
 *
 */
/* ----------------------------------------------------------------------------
 * Actor Command Window Settings
 * ----------------------------------------------------------------------------
 */
/*~struct~ActorCmd:
 *
 * @param Cmd
 * @text Command Window
 *
 * @param CmdStyle:str
 * @text Style
 * @parent Cmd
 * @type select
 * @option Text Only
 * @value text
 * @option Icon Only
 * @value icon
 * @option Icon + Text
 * @value iconText
 * @option Automatic
 * @value auto
 * @desc How do you wish to draw commands in the Actor Command Window?
 * @default auto
 *
 * @param CmdTextAlign:str
 * @text Text Align
 * @parent Cmd
 * @type combo
 * @option left
 * @option center
 * @option right
 * @desc Text alignment for the Actor Command Window.
 * @default left
 *
 * @param CmdIconItem:num
 * @text Item Icon
 * @parent Cmd
 * @desc The icon used for the Item command.
 * @default 176
 *
 * @param IconStypeNorm:num
 * @text Normal SType Icon
 * @parent Cmd
 * @desc Icon used for normal skill types that aren't assigned any
 * icons. Ignore if VisuMZ_1_SkillsStatesCore is installed.
 * @default 78
 *
 * @param IconStypeMagic:num
 * @text Magic SType Icon
 * @parent Cmd
 * @desc Icon used for magic skill types that aren't assigned any
 * icons. Ignore if VisuMZ_1_SkillsStatesCore is installed.
 * @default 79
 *
 * @param BattleCmd
 * @text Battle Commands
 *
 * @param BattleCmdList:arraystr
 * @text Command List
 * @parent BattleCmd
 * @type combo[]
 * @option attack
 * @option skills
 * @option guard
 * @option item
 * @option status
 * @option party
 * @option escape
 * @option auto battle
 * @option stypes
 * @option stype: x
 * @option stype: name
 * @option all skills
 * @option skill: x
 * @option skill: name
 * @option combat log
 * @option talk
 * @option weapon swap
 * @desc List of battle commands that appear by default
 * if the <Battle Commands> notetag isn't present.
 * @default ["attack","skills","guard","party","item"]
 *
 * @param ShowCosts:eval
 * @text Show Command Costs
 * @parent BattleCmd
 * @type boolean
 * @on Show Costs
 * @off Hide Costs
 * @desc If a battle command has a resource cost, show it?
 * @default true
 *
 * @param HelpWindow
 * @text Help Window
 *
 * @param HelpSkillType:str
 * @text Skill Types
 * @parent HelpWindow
 * @desc Text displayed when selecting a skill type.
 * %1 - Skill Type Name
 * @default Opens up a list of skills under the \C[16]%1\C[0] category.
 *
 * @param HelpItem:str
 * @text Items
 * @parent HelpWindow
 * @desc Text displayed when selecting the item command.
 * @default Opens up a list of items that you can use.
 *
 * @param HelpEscape:str
 * @text Escape
 * @parent HelpWindow
 * @desc Text displayed when selecting the escape command.
 * @default Attempt to escape the battle.
 *
 * @param HelpAutoBattle:str
 * @text Auto Battle
 * @parent HelpWindow
 * @desc Text displayed when selecting the Auto Battle command.
 * @default Automatically choose an action suitable for combat.
 *
 * @param HelpParty:str
 * @text Party
 * @parent HelpWindow
 * @desc Text displayed when selecting the Party command.
 * Requires 
 * @default Automatically choose an action suitable for combat.
 *
 */
/* ----------------------------------------------------------------------------
 * In_Battle Status Settings
 * ----------------------------------------------------------------------------
 */
/*~struct~InBattleStatus:
 *
 * @param General
 * @text General Settings
 *
 * @param CmdIconStatus:num
 * @text Status Icon
 * @parent General
 * @desc The icon used for the Status command.
 * @default 87
 *
 * @param StatusGraphic:str
 * @text Status Graphic
 * @parent General
 * @type select
 * @option None
 * @value none
 * @option Face
 * @value face
 * @option Map Sprite
 * @value sprite
 * @option Sideview Battler
 * @value svbattler
 * @desc Choose how the actor graphic appears for In-Battle Status.
 * @default face
 *
 * @param HelpStatus:str
 * @text Help Description
 * @parent General
 * @desc Text displayed when selecting the Status command.
 * @default View battle member status.
 *
 * @param Enemy
 * @text Enemy Settings
 *
 * @param enemyStatus:eval
 * @text Allow View Enemies?
 * @parent Enemy
 * @type boolean
 * @on Allow
 * @off Forbid
 * @desc Allows players to view enemy stats (even if limited)?
 * @default true
 *
 * @param enemyShowLevel:eval
 * @text Show Level?
 * @parent Enemy
 * @type boolean
 * @on Show
 * @off Hide
 * @desc Shows the enemy's level in the In-Battle Status?
 * @default true
 *
 * @param enemyHiddenParameter:str
 * @text Hidden Parameter
 * @parent Enemy
 * @desc The text that appears if a parameter value is hidden.
 * @default ???
 *
 * @param enemyShowParametersAlways:eval
 * @text Show Params Always
 * @parent enemyHiddenParameter:str
 * @type boolean
 * @on Show
 * @off Hide
 * @desc Always show exact enemy parameter values.
 * @default false
 *
 * @param enemyShowParametersIfBattleTest:eval
 * @text Show Battle Test
 * @parent enemyHiddenParameter:str
 * @type boolean
 * @on Show
 * @off Hide
 * @desc Show exact enemy parameter values in battle test.
 * @default true
 *
 * @param enemyShowParametersIfDefeated:eval
 * @text Show If Defeated
 * @parent enemyHiddenParameter:str
 * @type boolean
 * @on Show
 * @off Hide
 * @desc Show exact enemy parameter values if enemy has been defeated before.
 * @default true
 *
 * @param PageButtons
 * @text Page Buttons
 *
 * @param pageButtons:eval
 * @text Show Page Buttons?
 * @parent PageButtons
 * @type boolean
 * @on Show
 * @off Hide
 * @desc Shows page buttons to switch between actors?
 * Still requires Touch UI option to be on.
 * @default true
 *
 * @param pageButtonPosition:str
 * @text Large UI Position?
 * @parent pageButtons:eval
 * @type select
 * @option left
 * @option right
 * @desc If using a large resolution, position the page buttons on which side?
 * @default left
 *
 * @param pageOffsetX:num
 * @text Offset X
 * @parent PageButtons
 * @desc Offsets the page buttons x position.
 * Negative: left. Positive: right.
 * @default +0
 *
 * @param pageOffsetY:num
 * @text Offset Y
 * @parent PageButtons
 * @desc Offsets the page buttons y position.
 * Negative: up. Positive: down.
 * @default +0
 *
 * @param Parameters
 * @text Parameter Display
 *
 * @param buffValueFmt:str
 * @text Increased Value
 * @parent Parameters
 * @desc How are increased parameter values displayed?
 * %1 - Parameter Value
 * @default ▲%1
 *
 * @param debuffValueFmt:str
 * @text Decreased Value
 * @parent Parameters
 * @desc How are increased parameter values displayed?
 * %1 - Parameter Value
 * @default ▼%1
 *
 * @param States
 * @text States Display
 *
 * @param statesMaxWidth:num
 * @text Max Width
 * @parent States
 * @desc Maximum width of the states list display.
 * @default 384
 *
 * @param drawStates:eval
 * @text List States?
 * @parent States
 * @type boolean
 * @on Show
 * @off Hide
 * @desc Lists states in the states list display?
 * @default true
 *
 * @param drawBuffs:eval
 * @text List Buffs?
 * @parent States
 * @type boolean
 * @on Show
 * @off Hide
 * @desc Lists buffs in the states list display?
 * @default true
 *
 * @param drawDebuffs:eval
 * @text List Debuffs?
 * @parent States
 * @type boolean
 * @on Show
 * @off Hide
 * @desc Lists debuffs in the states list display?
 * @default true
 *
 * @param BuffsDebuffs
 * @text Buffs/Debuffs Display
 * @parent States
 *
 * @param buffNameFmt:str
 * @text Buff Name Format
 * @parent BuffsDebuffs
 * @desc Text format used to represent buffs.
 * %1 - Parameter Name
 * @default %1▲
 *
 * @param debuffNameFmt:str
 * @text Debuff Name Format
 * @parent BuffsDebuffs
 * @desc Text format used to represent debuffs.
 * %1 - Parameter Name
 * @default %1▼
 *
 * @param NormalState
 * @text Normal State
 * @parent States
 *
 * @param normalIcon:num
 * @text Normal Icon
 * @parent NormalState
 * @desc Icon used to represent normal state (unaffected by states, buffs, or debuffs).
 * @default 84
 *
 * @param normalText:str
 * @text Normal Text
 * @parent NormalState
 * @desc Text used to represent normal state (unaffected by states, buffs, or debuffs).
 * @default Normal
 *
 * @param HelpDesc
 * @text Help Descriptions
 *
 * @param stateHelpFmt:json
 * @text State Help Format
 * @parent HelpDesc
 * @type note
 * @desc Text format used for state help descriptions
 * %1 - Description; %2 - Turns/Actions Remaining
 * @default "%1 %2"
 *
 * @param buffHelpFmt:json
 * @text Buff Help Format
 * @parent HelpDesc
 * @type note
 * @desc Text format used for Buff help descriptions
 * %1 - Param; %2 - Percent; %3 - Color; %4 - Turns
 * @default "Increases %1 to %3%2\\C[0]. %4"
 *
 * @param debuffHelpFmt:json
 * @text Debuff Help Format
 * @parent HelpDesc
 * @type note
 * @desc Text format used for Debuff help descriptions
 * %1 - Param; %2 - Percent; %3 - Color; %4 - Turns
 * @default "Decreases %1 to %3%2\\C[0]. %4"
 *
 * @param normalHelp:json
 * @text Normal State
 * @parent HelpDesc
 * @type note
 * @desc Help description used to explain normal state (unaffected by states, buffs, or debuffs).
 * @default "Status is currently normal."
 *
 * @param TurnHelpDesc
 * @text Turns/Actions Left
 * @parent HelpDesc
 *
 * @param actionsFmt:str
 * @text Actions Format
 * @parent TurnHelpDesc
 * @desc Text format used to represent actions remaining.
 * %1 - Actions; %2 - Color
 * @default \C[6](Actions %2%1\C[6])\C[0]
 *
 * @param TurnsFmt:str
 * @text Turns Format
 * @parent TurnHelpDesc
 * @desc Text format used to represent turns remaining.
 * %1 - Turns; %2 - Color
 * @default \C[5](Turns %2%1\C[5])\C[0]
 *
 * @param passiveText:str
 * @text Passive Text
 * @parent TurnHelpDesc
 * @desc Text used to represent a passive.
 * @default \C[4](Passive)\C[0]
 *
 * @param Window
 * @text Window Settings
 *
 * @param StatusWindow_BgType:num
 * @text Background Type
 * @parent Window
 * @type select
 * @option 0 - Window
 * @value 0
 * @option 1 - Dim
 * @value 1
 * @option 2 - Transparent
 * @value 2
 * @desc Select background type for this window.
 * @default 0
 *
 * @param StatusWindow_DrawJS:func
 * @text JS: Draw Data
 * @parent Window
 * @type note
 * @desc Code used to draw battler data.
 * @default "{ // Draw Face and Simple Status\n    const x = this.colSpacing() / 2;\n    const h = ImageManager.faceHeight;\n    const y = h / 2 - this.lineHeight() * 1.5;\n    this.drawActorGraphic(this._battler, x + 1, 0, ImageManager.faceWidth, h);\n    this.drawActorSimpleStatus(this._battler, x + 180, y);\n}\n{ // Draw Actor Parameters\n    let maxWidth = this.drawingAreaWidth();\n    let x1 = 0;\n    let x2 = Math.ceil(this.drawingAreaWidth() / 2);\n\n    let counter = 0;\n    const params = this.displayedParams();\n\n    let px = x1;\n    const availableHeight = this.innerHeight - ImageManager.faceHeight;\n    const paramHeight = Math.ceil(params.length / 2) * this.lineHeight();\n    let py = Math.ceil((availableHeight - paramHeight) / 2) + ImageManager.faceHeight;\n    let pw = Math.floor(maxWidth / 2);\n\n    if (this._statesWindow.y !== 0) {\n        this._statesWindow.y = py;\n    }\n\n    for (const param of params) {\n        this.drawDarkRect(px, py, pw, this.lineHeight());\n        this.drawParamData(param, px, py, pw);\n        counter++;\n        if (counter % 2 === 0) {\n            px = x1;\n            py += this.lineHeight();\n        } else {\n            px = x2;\n        }\n    }\n}"
 *
 * @param StatusWindow_RectJS:func
 * @text JS: X, Y, W, H
 * @parent Window
 * @type note
 * @desc Code used to determine the dimensions for this window.
 * @default "const wx = Graphics.boxWidth > 1000 ? 120 : 0;\nconst wy = this._helpWindow.y + this._helpWindow.height;\nconst ww = Graphics.boxWidth - (wx * 2);\nconst wh = Graphics.boxHeight - wy - this.windowAreaHeight();\nreturn new Rectangle(wx, wy, ww, wh);"
 *
 */
/* ----------------------------------------------------------------------------
 * Multi-Target Window Settings
 * ----------------------------------------------------------------------------
 */
/*~struct~MultiTarget:
 *
 * @param Properties
 * 
 * @param WindowWidth:num
 * @text Window Width
 * @parent Properties
 * @type number
 * @min 1
 * @desc What is the width used for the Multi-Target Window?
 * @default 280
 *
 * @param BgType:num
 * @text Background Type
 * @parent Properties
 * @type select
 * @option 0 - Window
 * @value 0
 * @option 1 - Dim
 * @value 1
 * @option 2 - Transparent
 * @value 2
 * @desc Select background type for these windows.
 * @default 2
 *
 * @param ShowButton:eval
 * @text Show Button
 * @parent Properties
 * @type boolean
 * @on Show
 * @off Hide
 * @desc Shows the keyboard/controller button to press?
 * Requires VisuMZ_0_CoreEngine!
 * @default true
 * 
 * @param Vocab
 *
 * @param AllActorsText:str
 * @text All Actors
 * @parent Vocab
 * @desc What is the text used for the "All Actors" button?
 * @default All Allies
 *
 * @param AllEnemiesText:str
 * @text All Enemies
 * @parent Vocab
 * @desc What is the text used for the "All Enemies" button?
 * @default All Enemies
 * 
 * @param Offsets
 * 
 * @param ActorOffsets
 * @text Actor Offsets
 * @parent Offsets
 *
 * @param ActorOffsetX:num
 * @text Offset X
 * @parent ActorOffsets
 * @desc Offsets the button's x position.
 * Negative: left. Positive: right.
 * @default +0
 *
 * @param ActorOffsetY:num
 * @text Offset Y
 * @parent ActorOffsets
 * @desc Offsets the button's y position.
 * Negative: up. Positive: down.
 * @default +0
 * 
 * @param EnemyOffsets
 * @text Enemy Offsets
 * @parent Offsets
 *
 * @param EnemyOffsetX:num
 * @text Offset X
 * @parent EnemyOffsets
 * @desc Offsets the button's x position.
 * Negative: left. Positive: right.
 * @default +0
 *
 * @param EnemyOffsetY:num
 * @text Offset Y
 * @parent EnemyOffsets
 * @desc Offsets the button's y position.
 * Negative: up. Positive: down.
 * @default +0
 *
 */
/* ----------------------------------------------------------------------------
 * Combo Window Settings
 * ----------------------------------------------------------------------------
 */
/*~struct~ComboWindow:
 *
 * @param General
 * @text General Settings
 *
 * @param Enable:eval
 * @text Enable?
 * @parent General
 * @type boolean
 * @on Enable
 * @off Disable
 * @desc Add the Combo Window to show in battle?
 * @default true
 *
 * @param Appearance
 * @text Appearance Settings
 *
 * @param CustomFontFace:str
 * @text Custom Font
 * @parent Appearance
 * @desc Insert the custom font face name here.
 * Use VisuMZ_1_MessageCore to register new fonts.
 * @default Arial
 *
 * @param TextAlign:str
 * @text Text Align
 * @parent Appearance
 * @type combo
 * @option left
 * @option center
 * @option right
 * @desc Text alignment for this window?
 * @default left
 *
 * @param ComboWindow_DrawJS:func
 * @text JS: Draw Data
 * @parent Appearance
 * @type note
 * @desc Code used to draw the data in this window.
 * @default ""
 * 
 * @param Vocab
 * @text Vocabulary
 *
 * @param hitsDmgFmt:str
 * @text Damage Combo Format
 * @parent Vocab
 * @desc Text format used to display total hits for damage.
 * %1 - Total Hits
 * @default \C[6]%1\} \C[4]Hit Combo\C[0]\{
 *
 * @param hitsHealFmt:str
 * @text Healing Combo Format
 * @parent Vocab
 * @desc Text format used to display total hits for healing.
 * %1 - Total Hits
 * @default \C[6]%1\} \C[4]Heal Combo\C[0]\{
 *
 * @param totalDmgFmt:str
 * @text Damage Total Format
 * @parent Vocab
 * @desc Text format used to display total value for damage.
 * %1 - Total Damage
 * @default \}\C[21]Total Damage: \{\C[0]%1
 *
 * @param totalHealFmt:str
 * @text Healing Total Format
 * @parent Vocab
 * @desc Text format used to display total value for healing.
 * %1 - Total Healing
 * @default \}\C[21]Total Healing: \{\C[24]+%1\C[0]
 *
 * @param Position
 * @text Position Settings
 *
 * @param fadeShiftX:num
 * @text Fade Shift X
 * @parent Position
 * @desc Shifts the windows x position when fading.
 * Negative: left. Positive: right.
 * @default -2
 *
 * @param fadeShiftY:num
 * @text Fade Shift Y
 * @parent Position
 * @desc Shifts the windows y position when fading.
 * Negative: up. Positive: down.
 * @default +0
 *
 * @param PosOffsetX:num
 * @text Offset X
 * @parent Position
 * @desc Offsets the windows x position.
 * Negative: left. Positive: right.
 * @default +0
 *
 * @param PosOffsetY:num
 * @text Offset Y
 * @parent Position
 * @desc Offsets the windows y position.
 * Negative: up. Positive: down.
 * @default +0
 *
 * @param ComboWindow_RectJS:func
 * @text JS: X, Y, W, H
 * @parent Position
 * @type note
 * @desc Code used to determine the dimensions for this window.
 * @default "const ww = Math.ceil(Graphics.width / 4);\nconst wh = this.calcWindowHeight(2, true);\nconst wx = 0 + this.comboWindowOffsetX();\nconst wy = Math.round(Graphics.boxHeight * 1 / 3) + this.comboWindowOffsetY();\nreturn new Rectangle(wx, wy, ww, wh);"
 * 
 * @param Update
 * @text Updating Settings
 *
 * @param updateDuration:num
 * @text Number Roll Duration
 * @parent Update
 * @type number
 * @min 1
 * @desc Frame duration to roll damage numbers.
 * 60 frames = 1 second.
 * @default 20
 *
 * @param minimumStayDuration:num
 * @text Minimum Stay Duration
 * @parent Update
 * @type number
 * @desc Frame duration to stay visible minimum.
 * 60 frames = 1 second.
 * @default 40
 *
 * @param minimumHits:num
 * @text Minimum Hit Visible
 * @parent Update
 * @type number
 * @min 1
 * @desc Minimum hits before combo window becomes visible?
 * @default 1
 *
 * @param opacitySpeed:num
 * @text Opacity Speed
 * @parent Update
 * @type number
 * @min 1
 * @desc Opacity speed when fading in/out.
 * @default 16
 *
 */
/* ----------------------------------------------------------------------------
 * Actor Settings
 * ----------------------------------------------------------------------------
 */
/*~struct~Actor:
 *
 * @param Flinch
 *
 * @param FlinchDistanceX:num
 * @text Flinch Distance X
 * @parent Flinch
 * @desc The normal X distance when flinching.
 * @default 12
 *
 * @param FlinchDistanceY:num
 * @text Flinch Distance Y
 * @parent Flinch
 * @desc The normal Y distance when flinching.
 * @default 0
 *
 * @param FlinchDuration:num
 * @text Flinch Duration
 * @parent Flinch
 * @desc The number of frames for a flinch to complete.
 * @default 6
 *
 * @param ShakeFlinch:eval
 * @text Shake Flinch
 * @parent Flinch
 * @type boolean
 * @on Enable
 * @off Disable
 * @desc Perform a shake flinch when taking damage?
 * @default false
 *
 * @param ShakeFlinchDuration:num
 * @text Max Duration
 * @parent ShakeFlinch:eval
 * @type number
 * @min 1
 * @desc Maximum duration a shake flinch can have.
 * This is reduced relative to the amount of damage taken.
 * @default 24
 *
 * @param ShakeFlinchPower:num
 * @text Max Power
 * @parent ShakeFlinch:eval
 * @type number
 * @min 1
 * @desc The power rating of a shake flinch at full damage.
 * This is reduced relative to the amount of damage taken.
 * @default 48
 *
 * @param FvBattlers
 * @text Frontview Battlers
 * 
 * @param FvPortraitAni
 * @text Portrait Animations
 * @parent FvBattlers
 *
 * @param FvAniEachTarget:eval
 * @text Each Target
 * @parent FvPortraitAni
 * @type boolean
 * @on On Top
 * @off Behind
 * @desc Place animations on top for "Each Target" display types?
 * Does not apply to MV animations.
 * @default true
 *
 * @param FvAniCenterAll:eval
 * @text Center of All
 * @parent FvPortraitAni
 * @type boolean
 * @on On Top
 * @off Behind
 * @desc Place animations on top for "Center of All" display types?
 * Does not apply to MV animations.
 * @default true
 *
 * @param FvAniCenterScreen:eval
 * @text Center of Screen
 * @parent FvPortraitAni
 * @type boolean
 * @on On Top
 * @off Behind
 * @desc Place animations on top for "Center of Screen" display types?
 * Does not apply to MV animations.
 * @default false
 *
 * @param SvBattlers
 * @text Sideview Battlers
 * 
 * @param SvAnchor
 * @text Anchor
 * @parent SvBattlers
 *
 * @param AnchorX:num
 * @text Anchor: X
 * @parent SvAnchor
 * @desc Default X anchor for Sideview Battlers.
 * Use values between 0 and 1 to be safe.
 * @default 0.5
 *
 * @param AnchorY:num
 * @text Anchor: Y
 * @parent SvAnchor
 * @desc Default Y anchor for Sideview Battlers.
 * Use values between 0 and 1 to be safe.
 * @default 1.0
 *
 * @param ChantStyle:eval
 * @text Chant Style
 * @parent SvBattlers
 * @type boolean
 * @on Magical Hit Type
 * @off Magical Skill Type
 * @desc What determines the chant motion?
 * Hit type or skill type?
 * @default true
 *
 * @param MotionSpeed:num
 * @text Motion Speed
 * @parent SvBattlers
 * @type number
 * @min 1
 * @desc The number of frames in between each motion.
 * @default 12
 * 
 * @param SvPosition
 * @text Position
 * @parent SvBattlers
 *
 * @param OffsetX:num
 * @text Offset: X
 * @parent SvPosition
 * @desc Offsets X position where actor is positioned.
 * Negative values go left. Positive values go right.
 * @default 0
 *
 * @param OffsetY:num
 * @text Offset: Y
 * @parent SvPosition
 * @desc Offsets Y position where actor is positioned.
 * Negative values go up. Positive values go down.
 * @default 0
 *
 * @param PrioritySortActive:eval
 * @text Priority: Active
 * @parent SvBattlers
 * @type boolean
 * @on Active Actor over All Else
 * @off Active Actor is Sorted Normally
 * @desc Place the active actor on top of actor and enemy sprites.
 * @default false
 *
 * @param PrioritySortActors:eval
 * @text Priority: Actors
 * @parent SvBattlers
 * @type boolean
 * @on Actors over Enemies
 * @off Sort by Y Position
 * @desc Prioritize actors over enemies when placing sprites on top
 * of each other.
 * @default true
 *
 * @param Shadow:eval
 * @text Shadow Visible
 * @parent SvBattlers
 * @type boolean
 * @on Visible
 * @off Hidden
 * @desc Show or hide the shadow for Sideview Battlers.
 * @default true
 * 
 * @param SvStateOverlay
 * @text State Overlay
 * @parent SvBattlers
 *
 * @param StateOverlayOffsetX:num
 * @text Offset: X
 * @parent SvStateOverlay
 * @desc Offsets X position for state overlay on actor.
 * Negative values go left. Positive values go right.
 * @default 0
 *
 * @param StateOverlayOffsetY:num
 * @text Offset: Y
 * @parent SvStateOverlay
 * @desc Offsets Y position for state overlay on actor.
 * Negative values go up. Positive values go down.
 * @default 0
 *
 * @param SmoothImage:eval
 * @text Smooth Image
 * @parent SvBattlers
 * @type boolean
 * @on Smooth
 * @off Pixelated
 * @desc Smooth out the battler images or pixelate them?
 * @default false
 *
 * @param HomePosJS:func
 * @text JS: Home Position
 * @parent SvBattlers
 * @type note
 * @desc Code used to calculate the home position of actors.
 * @default "// Declare Constants\nconst sprite = this;\nconst actor = this._actor;\nconst index = arguments[0];\n\n// Make Calculations\nlet x = Math.round((Graphics.width / 2) + 192)\nx -= Math.floor((Graphics.width - Graphics.boxWidth) / 2);\nx += index * 32;\nlet y = (Graphics.height - 200) - ($gameParty.maxBattleMembers() * 48);\ny -= Math.floor((Graphics.height - Graphics.boxHeight) / 2);\ny += index * 48;\n\n// Home Position Offsets\nconst offsetNote = /<SIDEVIEW HOME OFFSET:[ ]([\\+\\-]\\d+),[ ]([\\+\\-]\\d+)>/i;\nconst xOffsets = actor.traitObjects().map((obj) => (obj && obj.note.match(offsetNote) ? Number(RegExp.$1) : 0));\nconst yOffsets = actor.traitObjects().map((obj) => (obj && obj.note.match(offsetNote) ? Number(RegExp.$2) : 0));\nx = xOffsets.reduce((r, offset) => r + offset, x);\ny = yOffsets.reduce((r, offset) => r + offset, y);\n\n// Set Home Position\nthis.setHome(x, y);"
 *
 */
/* ----------------------------------------------------------------------------
 * Enemy Settings
 * ----------------------------------------------------------------------------
 */
/*~struct~Enemy:
 *
 * @param Visual
 *
 * @param AttackAnimation:num
 * @text Attack Animation
 * @parent Visual
 * @type animation
 * @desc Default attack animation used for enemies.
 * Use <Attack Animation: x> for custom animations.
 * @default 1
 *
 * @param EmergeText:eval
 * @text Emerge Text
 * @parent Visual
 * @type boolean
 * @on Show
 * @off Hide
 * @desc Show or hide the 'Enemy emerges!' text at the start of battle.
 * @default false
 *
 * @param OffsetX:num
 * @text Offset: X
 * @parent Visual
 * @desc Offsets X position where enemy is positioned.
 * Negative values go left. Positive values go right.
 * @default 0
 *
 * @param OffsetY:num
 * @text Offset: Y
 * @parent Visual
 * @desc Offsets Y position where enemy is positioned.
 * Negative values go up. Positive values go down.
 * @default 0
 *
 * @param SmoothImage:eval
 * @text Smooth Image
 * @parent Visual
 * @type boolean
 * @on Smooth
 * @off Pixelated
 * @desc Smooth out the battler images or pixelate them?
 * @default true
 *
 * @param SelectWindow
 * @text Select Window
 *
 * @param LastSelected:eval
 * @text Any: Last Selected
 * @parent SelectWindow
 * @type boolean
 * @on Last Selected
 * @off FV/SV Priority
 * @desc Prioritize last selected enemy over front view or sideview settings?
 * @default true
 *
 * @param FrontViewSelect:eval
 * @text FV: Right Priority
 * @parent SelectWindow
 * @type boolean
 * @on Right
 * @off Normal
 * @desc If using frontview, auto select the enemy furthest right.
 * @default false
 *
 * @param SideviewSelect:eval
 * @text SV: Right Priority
 * @parent SelectWindow
 * @type boolean
 * @on Right
 * @off Normal
 * @desc If using sideview, auto select the enemy furthest right.
 * @default true
 * 
 * @param Name
 *
 * @param NameLegacy:eval
 * @text Legacy Option
 * @parent Name
 * @type boolean
 * @on Legacy Version
 * @off New Version (Sprite)
 * @desc Use the legacy version (window) or new version (sprite).
 * WARNING: Legacy version is no longer supported for bugs.
 * @default false
 *
 * @param NameFontSize:num
 * @text Font Size
 * @parent Name
 * @desc Font size used for enemy names.
 * @default 22
 * 
 * @param NamePosition
 * @text Name Position
 * @parent Name
 *
 * @param NameOffsetX:num
 * @text Offset X
 * @parent NamePosition
 * @desc Offset the enemy name's X position by this much.
 * Negative goes left. Positive goes right.
 * @default 0
 *
 * @param NameOffsetY:num
 * @text Offset Y
 * @parent NamePosition
 * @desc Offset the enemy name's Y position by this much.
 * Negative goes up. Positive goes down.
 * @default 0
 *
 * @param NameAttachStateIcon:eval
 * @text Attach States
 * @parent Name
 * @type boolean
 * @on Attach
 * @off Normal Position
 * @desc Attach the enemy's state icon to the enemy name?
 * @default false
 *
 * @param AttachStateOffsetX:num
 * @text Attach: Offset X
 * @parent NameAttachStateIcon:eval
 * @desc How much to offset the attached icon's X position by?
 * Negative goes left. Positive goes right.
 * @default +0
 *
 * @param AttachStateOffsetY:num
 * @text Attach: Offset Y
 * @parent NameAttachStateIcon:eval
 * @desc How much to offset the attached icon's Y position by?
 * Negative goes up. Positive goes down.
 * @default +0
 * 
 * @param NameVisibility
 * @text Name Visibility
 * @parent Name
 *
 * @param NameAlwaysHidden:eval
 * @text Always Hidden
 * @parent NameVisibility
 * @type boolean
 * @on Always Hidden
 * @off No Priority
 * @desc Determines if the enemy name will always be visible.
 * Highest priority.
 * @default false
 *
 * @param NameAlwaysVisible:eval
 * @text Always Visible
 * @parent NameVisibility
 * @type boolean
 * @on Always Visible
 * @off Hide when Unselected
 * @desc Determines if the enemy name will always be visible.
 * Medium priority.
 * @default false
 *
 * @param NameAsTarget:eval
 * @text As Target
 * @parent NameVisibility
 * @type boolean
 * @on Visible As Target
 * @off No Priority
 * @desc Shows enemy name when enemy is a target.
 * Medium priority.
 * @default true
 *
 * @param NameAlwaysSelectOnly:eval
 * @text By Selection?
 * @parent NameVisibility
 * @type boolean
 * @on Visible when Selected
 * @off Visible when Targeting
 * @desc Determines the conditions for enemy name visibility.
 * Lowest priority.
 * @default false
 *
 * @param NameDamageVisibility:num
 * @text Temporary Visibility
 * @parent NameVisibility
 * @type number
 * @desc Number of frames enemy's name temporarily visible after
 * taking an action effect in battle. 60 frames = 1 second.
 * @default 0
 *
 * @param SvBattlers
 * @text Sideview Battlers
 *
 * @param AllowCollapse:eval
 * @text Allow Collapse
 * @parent SvBattlers
 * @type boolean
 * @on Allow
 * @off Don't
 * @desc Causes defeated enemies with SV Battler graphics
 * to "fade away" when defeated?
 * @default false
 *
 * @param AnchorX:num
 * @text Anchor: X
 * @parent SvBattlers
 * @desc Default X anchor for Sideview Battlers.
 * Use values between 0 and 1 to be safe.
 * @default 0.5
 *
 * @param AnchorY:num
 * @text Anchor: Y
 * @parent SvBattlers
 * @desc Default Y anchor for Sideview Battlers.
 * Use values between 0 and 1 to be safe.
 * @default 1.0
 *
 * @param MotionIdle:str
 * @text Motion: Idle
 * @parent SvBattlers
 * @type combo
 * @option walk
 * @option wait
 * @option chant
 * @option guard
 * @option damage
 * @option evade
 * @option thrust
 * @option swing
 * @option missile
 * @option skill
 * @option spell
 * @option item
 * @option escape
 * @option victory
 * @option dying
 * @option abnormal
 * @option sleep
 * @option dead
 * @desc Sets default idle animation used by Sideview Battlers.
 * @default walk
 *
 * @param Shadow:eval
 * @text Shadow Visible
 * @parent SvBattlers
 * @type boolean
 * @on Visible
 * @off Hidden
 * @desc Show or hide the shadow for Sideview Battlers.
 * @default true
 *
 * @param Width:num
 * @text Size: Width
 * @parent SvBattlers
 * @type number
 * @min 1
 * @desc Default width for enemies that use Sideview Battlers.
 * @default 64
 *
 * @param Height:num
 * @text Size: Height
 * @parent SvBattlers
 * @type number
 * @min 1
 * @desc Default height for enemies that use Sideview Battlers.
 * @default 64
 *
 * @param WtypeId:num
 * @text Weapon Type
 * @parent SvBattlers
 * @type number
 * @min 0
 * @desc Sets default weapon type used by Sideview Battlers.
 * Use 0 for Bare Hands.
 * @default 0
 *
 * @param Aspect
 * @text Aspect Defaults
 *
 * @param AspectNameFmt:str
 * @text Name Format
 * @parent Aspect
 * @desc Default name aspect format.
 * %1 - Original Enemy Name
 * @default %1 Aspect
 *
 * @param AspectColor:str
 * @text Name Color
 * @parent Aspect
 * @desc Use #rrggbb for custom colors or regular numbers
 * for text colors from the Window Skin.
 * @default 2
 *
 * @param AspectIcon:num
 * @text Icon
 * @parent Aspect
 * @desc Default icon used for aspect.
 * Use <Aspect Icon: x> to change icon.
 * @default 26
 *
 */
/* ----------------------------------------------------------------------------
 * HP Gauge Settings
 * ----------------------------------------------------------------------------
 */
/*~struct~HpGauge:
 *
 * @param Display
 * @text Show Gauges For
 *
 * @param ShowActorGauge:eval
 * @text Actors
 * @parent Display
 * @type boolean
 * @on Show
 * @off Hide
 * @desc Show HP Gauges over the actor sprites' heads?
 * Requires SV Actors to be visible.
 * @default true
 *
 * @param ShowEnemyGauge:eval
 * @text Enemies
 * @parent Display
 * @type boolean
 * @on Show
 * @off Hide
 * @desc Show HP Gauges over the enemy sprites' heads?
 * Can be bypassed with <Hide HP Gauge> notetag.
 * @default true
 *
 * @param RequiresDefeat:eval
 * @text Requires Defeat?
 * @parent ShowEnemyGauge:eval
 * @type boolean
 * @on Require Defeat First
 * @off No Requirement
 * @desc Requires defeating the enemy once to show HP Gauge?
 * Can be bypassed with <Show HP Gauge> notetag.
 * @default true
 *
 * @param BTestBypass:eval
 * @text Battle Test Bypass?
 * @parent RequiresDefeat:eval
 * @type boolean
 * @on Bypass
 * @off Don't Bypass
 * @desc Bypass the defeat requirement in battle test?
 * @default true
 *
 * @param Settings
 *
 * @param AniDuration:num
 * @text Animation Duration
 * @parent Settings
 * @type number
 * @min 1
 * @desc How many frames should gauges animate themselves?
 * Default: 20 frames.
 * @default 20
 *
 * @param AnchorX:num
 * @text Anchor X
 * @parent Settings
 * @desc Where do you want the HP Gauge sprite's anchor X to be?
 * Use values between 0 and 1 to be safe.
 * @default 0.5
 *
 * @param AnchorY:num
 * @text Anchor Y
 * @parent Settings
 * @desc Where do you want the HP Gauge sprite's anchor Y to be?
 * Use values between 0 and 1 to be safe.
 * @default 1.0
 *
 * @param Scale:num
 * @text Scale
 * @parent Settings
 * @desc How large/small do you want the HP Gauge to be scaled?
 * @default 0.5
 *
 * @param OffsetX:num
 * @text Offset X
 * @parent Settings
 * @desc How many pixels to offset the HP Gauge's X by?
 * @default 0
 *
 * @param OffsetY:num
 * @text Offset Y
 * @parent Settings
 * @desc How many pixels to offset the HP Gauge's Y by?
 * @default -3
 *
 * @param Options
 * @text Options
 *
 * @param AddHpGaugeOption:eval
 * @text Add Option?
 * @parent Options
 * @type boolean
 * @on Add
 * @off Don't Add
 * @desc Add the 'Show HP Gauge' option to the Options menu?
 * @default true
 *
 * @param AdjustRect:eval
 * @text Adjust Window Height
 * @parent Options
 * @type boolean
 * @on Adjust
 * @off Don't
 * @desc Automatically adjust the options window height?
 * @default true
 *
 * @param Name:str
 * @text Option Name
 * @parent Options
 * @desc Command name of the option.
 * @default Show HP Gauge
 *
 */
/* ----------------------------------------------------------------------------
 * Action Sequence Settings
 * ----------------------------------------------------------------------------
 */
/*~struct~ActionSequence:
 *
 * @param AutoSequences
 * @text Automatic Sequences
 *
 * @param AutoMeleeSolo:eval
 * @text Melee Single Target
 * @parent AutoSequences
 * @type boolean
 * @on Allow
 * @off Ignore
 * @desc Allow this auto sequence for physical, single target actions?
 * @default true
 *
 * @param AutoMeleeAoE:eval
 * @text Melee Multi Target
 * @parent AutoSequences
 * @type boolean
 * @on Allow
 * @off Ignore
 * @desc Allow this auto sequence for physical, multi-target actions?
 * @default true
 *
 * @param QoL
 * @text Quality of Life
 *
 * @param AutoNotetag:eval
 * @text Auto Notetag
 * @parent QoL
 * @type boolean
 * @on Automatic
 * @off Manual
 * @desc Automatically apply the <Custom Action Sequence> notetag
 * effect to any item or skill that has a Common Event?
 * @default false
 *
 * @param CastAnimations
 * @text Cast Animations
 *
 * @param CastCertain:num
 * @text Certain Hit
 * @parent CastAnimations
 * @type animation
 * @desc Cast animation for Certain Hit skills.
 * @default 120
 *
 * @param CastPhysical:num
 * @text Physical
 * @parent CastAnimations
 * @type animation
 * @desc Cast animation for Physical skills.
 * @default 52
 *
 * @param CastMagical:num
 * @text Magical
 * @parent CastAnimations
 * @type animation
 * @desc Cast animation for Magical skills.
 * @default 51
 *
 * @param CounterReflection
 * @text Counter/Reflect
 *
 * @param CounterPlayback:eval
 * @text Counter Back
 * @parent CounterReflection
 * @type boolean
 * @on Play Back
 * @off Ignore
 * @desc Play back the attack animation used?
 * @default true
 *
 * @param ReflectAnimation:num
 * @text Reflect Animation
 * @parent CounterReflection
 * @type animation
 * @desc Animation played when an action is reflected.
 * @default 53
 *
 * @param ReflectPlayback:eval
 * @text Reflect Back
 * @parent CounterReflection
 * @type boolean
 * @on Play Back
 * @off Ignore
 * @desc Play back the attack animation used?
 * @default true
 *
 * @param Stepping
 *
 * @param MeleeDistance:num
 * @text Melee Distance
 * @parent Stepping
 * @desc Minimum distance in pixels for Movement Action Sequences.
 * @default 24
 *
 * @param StepDistanceX:num
 * @text Step Distance X
 * @parent Stepping
 * @desc The normal X distance when stepping forward.
 * @default 48
 *
 * @param StepDistanceY:num
 * @text Step Distance Y
 * @parent Stepping
 * @desc The normal Y distance when stepping forward.
 * @default 0
 *
 * @param StepDuration:num
 * @text Step Duration
 * @parent Stepping
 * @desc The number of frames for a stepping action to complete.
 * @default 12
 *
 */
/* ----------------------------------------------------------------------------
 * Projectile Start Settings
 * ----------------------------------------------------------------------------
 */
/*~struct~ProjectileStart:
 * 
 * @param Type:str
 * @text Type
 * @type select
 * @option Target - Start from battler target(s)
 * @value target
 * @option Point - Start from a point on the screen
 * @value point
 * @desc Select where the projectile should start from.
 * @default target
 * 
 * @param Targets:arraystr
 * @text Target(s)
 * @parent Type:str
 * @type combo[]
 * @option user
 * @option current target
 * @option prev target
 * @option next target
 * @option all targets
 * @option focus
 * @option not focus
 * @option
 * @option special
 * @option special x
 * @option 
 * @option alive friends
 * @option alive friends not user
 * @option alive friends not target
 * @option dead friends
 * @option friend index x
 * @option 
 * @option alive opponents
 * @option alive opponents not target
 * @option dead opponents
 * @option opponent index x
 * @option 
 * @option alive actors
 * @option alive actors not user
 * @option alive actors not target
 * @option dead actors
 * @option actor index x
 * @option actor ID x
 * @option 
 * @option alive enemies
 * @option alive enemies not user
 * @option alive enemies not target
 * @option dead enemies
 * @option enemy index x
 * @option enemy ID x
 * @option 
 * @option alive battlers
 * @option alive battlers not user
 * @option alive battlers not target
 * @option dead battlers
 * @option 
 * @desc Select which unit(s) to start the projectile from.
 * @default ["user"]
 * 
 * @param TargetCenter:eval
 * @text Centralize
 * @parent Targets:arraystr
 * @type boolean
 * @on Center Projectile
 * @off Create Each
 * @desc Create one projectile at the center of the targets?
 * Or create a projectile for each target?
 * @default false
 * 
 * @param TargetLocation:str
 * @text Target Location
 * @parent Targets:arraystr
 * @type combo
 * @option front head
 * @option front center
 * @option front base
 * @option middle head
 * @option middle center
 * @option middle base
 * @option back head
 * @option back center
 * @option back base
 * @desc Select which part of the target to send the projectile from.
 * @default middle center
 * 
 * @param PointX:eval
 * @text Point X
 * @parent Type:str
 * @desc Insert the X coordinate to start the projectile at.
 * You may use JavaScript code.
 * @default Graphics.width / 2
 * 
 * @param PointY:eval
 * @text Point Y
 * @parent Type:str
 * @desc Insert the Y coordinate to start the projectile at.
 * You may use JavaScript code.
 * @default Graphics.height / 2
 * 
 * @param OffsetX:eval
 * @text Offset X
 * @desc Insert how many pixels to offset the X coordinate by.
 * You may use JavaScript code.
 * @default +0
 * 
 * @param OffsetY:eval
 * @text Offset Y
 * @desc Insert how many pixels to offset the Y coordinate by.
 * You may use JavaScript code.
 * @default +0
 *
 */
/* ----------------------------------------------------------------------------
 * Projectile Goal Settings
 * ----------------------------------------------------------------------------
 */
/*~struct~ProjectileGoal:
 * 
 * @param Type:str
 * @text Type
 * @type select
 * @option Target - Goal is battler target(s)
 * @value target
 * @option Point - Goal is a point on the screen
 * @value point
 * @desc Select where the projectile should go to.
 * @default target
 * 
 * @param Targets:arraystr
 * @text Target(s)
 * @parent Type:str
 * @type combo[]
 * @option user
 * @option current target
 * @option prev target
 * @option next target
 * @option all targets
 * @option focus
 * @option not focus
 * @option
 * @option special
 * @option special x
 * @option 
 * @option alive friends
 * @option alive friends not user
 * @option alive friends not target
 * @option dead friends
 * @option friend index x
 * @option 
 * @option alive opponents
 * @option alive opponents not target
 * @option dead opponents
 * @option opponent index x
 * @option 
 * @option alive actors
 * @option alive actors not user
 * @option alive actors not target
 * @option dead actors
 * @option actor index x
 * @option actor ID x
 * @option 
 * @option alive enemies
 * @option alive enemies not user
 * @option alive enemies not target
 * @option dead enemies
 * @option enemy index x
 * @option enemy ID x
 * @option 
 * @option alive battlers
 * @option alive battlers not user
 * @option alive battlers not target
 * @option dead battlers
 * @option 
 * @desc Select which unit(s) for projectile to go to.
 * @default ["all targets"]
 * 
 * @param TargetCenter:eval
 * @text Centralize
 * @parent Targets:arraystr
 * @type boolean
 * @on Center Projectile
 * @off Create Each
 * @desc Set goal in the center of targets?
 * Or create a projectile to go to each target?
 * @default false
 * 
 * @param TargetLocation:str
 * @text Target Location
 * @parent Targets:arraystr
 * @type combo
 * @option front head
 * @option front center
 * @option front base
 * @option middle head
 * @option middle center
 * @option middle base
 * @option back head
 * @option back center
 * @option back base
 * @desc Select which part of the target to send the projectile at.
 * @default middle center
 * 
 * @param PointX:eval
 * @text Point X
 * @parent Type:str
 * @desc Insert the X coordinate to send the projectile to.
 * You may use JavaScript code.
 * @default Graphics.width / 2
 * 
 * @param PointY:eval
 * @text Point Y
 * @parent Type:str
 * @desc Insert the Y coordinate to send the projectile to.
 * You may use JavaScript code.
 * @default Graphics.height / 2
 * 
 * @param OffsetX:eval
 * @text Offset X
 * @desc Insert how many pixels to offset the X coordinate by.
 * You may use JavaScript code.
 * @default +0
 * 
 * @param OffsetY:eval
 * @text Offset Y
 * @desc Insert how many pixels to offset the Y coordinate by.
 * You may use JavaScript code.
 * @default +0
 *
 */
/* ----------------------------------------------------------------------------
 * Projectile Extra Animation Settings
 * ----------------------------------------------------------------------------
 */
/*~struct~ProjectileExAni:
 * 
 * @param AutoAngle:eval
 * @text Auto Angle?
 * @parent Settings
 * @type boolean
 * @on Automatically Angle
 * @off Normal
 * @desc Automatically angle the projectile to tilt the direction it's moving?
 * @default true
 * 
 * @param AngleOffset:eval
 * @text Angle Offset
 * @desc Alter the projectile's tilt by this many degrees.
 * @default +0
 * 
 * @param Arc:eval
 * @text Arc Peak
 * @parent Settings
 * @desc This is the height of the projectile's trajectory arc
 * in pixels.
 * @default 0
 *
 * @param EasingType:str
 * @text Easing
 * @parent Settings
 * @type combo
 * @option Linear
 * @option InSine
 * @option OutSine
 * @option InOutSine
 * @option InQuad
 * @option OutQuad
 * @option InOutQuad
 * @option InCubic
 * @option OutCubic
 * @option InOutCubic
 * @option InQuart
 * @option OutQuart
 * @option InOutQuart
 * @option InQuint
 * @option OutQuint
 * @option InOutQuint
 * @option InExpo
 * @option OutExpo
 * @option InOutExpo
 * @option InCirc
 * @option OutCirc
 * @option InOutCirc
 * @option InBack
 * @option OutBack
 * @option InOutBack
 * @option InElastic
 * @option OutElastic
 * @option InOutElastic
 * @option InBounce
 * @option OutBounce
 * @option InOutBounce
 * @desc Select which easing type to apply to the projectile's trajectory.
 * @default Linear
 * 
 * @param Spin:eval
 * @text Spin Speed
 * @parent Settings
 * @desc Determine how much angle the projectile spins per frame.
 * Does not work well with "Auto Angle".
 * @default +0.0
 * 
 * @param Emulate
 * @text Effect Emulation
 * 
 * @param EmulateActionEffect:eval
 * @text Action Effect?
 * @parent Emulate
 * @type boolean
 * @on Emulate
 * @off Don't Emulate
 * @desc Emulate current Action Effect when projectile reaches
 * target? Only works with start/goal targets.
 * @default false
 * 
 * @param EmulateItemEffect:eval
 * @text Item Effect ID
 * @parent Emulate
 * @type item
 * @desc Emulate an Item Effect when projectile reaches target?
 * Use 0 to not use. Only works with start/goal targets.
 * @default 0
 * 
 * @param EmulateSkillEffect:eval
 * @text Skill Effect ID
 * @parent Emulate
 * @type skill
 * @desc Emulate a Skill Effect when projectile reaches target?
 * Use 0 to not use. Only works with start/goal targets.
 * @default 0
 *
 * @param OnceParallel:num
 * @text Common Event ID
 * @parent Emulate
 * @type common_event
 * @desc Plays a Once Parallel Common Event upon reaching target.
 * Use 0 to not use. Works regardless of start/goal targets.
 * @default 0
 * 
 * @param EndAnimationID:eval
 * @text End Animation ID
 * @type animation
 * @desc Plays an animation when projectile reaches target.
 * Use 0 to not use. Requires ActSeqProjectiles v1.09+.
 * @default 0
 *
 * @param EndAnimationMirror:eval
 * @text Mirror Animation
 * @parent EndAnimationID:eval
 * @type boolean
 * @on Mirror
 * @off Normal
 * @desc Mirror the effect animation?
 * Requires VisuMZ_3_ActSeqProjectiles version 1.09+.
 * @default false
 *
 * @param EndAnimationMute:eval
 * @text Mute Animation
 * @parent EndAnimationID:eval
 * @type boolean
 * @on Mute
 * @off Normal
 * @desc Mute the effect animation?
 * Requires VisuMZ_3_ActSeqProjectiles version 1.09+.
 * @default false
 *
 */
/* ----------------------------------------------------------------------------
 * Projectile Extra Settings
 * ----------------------------------------------------------------------------
 */
/*~struct~ProjectileExtra:
 * 
 * @param AutoAngle:eval
 * @text Auto Angle?
 * @parent Settings
 * @type boolean
 * @on Automatically Angle
 * @off Normal
 * @desc Automatically angle the projectile to tilt the direction it's moving?
 * @default true
 * 
 * @param AngleOffset:eval
 * @text Angle Offset
 * @desc Alter the projectile's tilt by this many degrees.
 * @default +0
 * 
 * @param Arc:eval
 * @text Arc Peak
 * @parent Settings
 * @desc This is the height of the projectile's trajectory arc
 * in pixels.
 * @default 0
 *
 * @param BlendMode:num
 * @text Blend Mode
 * @type select
 * @option 0 - Normal
 * @value 0
 * @option 1 - Additive
 * @value 1
 * @option 2 - Multiply
 * @value 2
 * @option 3 - Screen
 * @value 3
 * @desc What kind of blend mode do you wish to apply to the projectile?
 * @default 0
 *
 * @param EasingType:str
 * @text Easing
 * @parent Settings
 * @type combo
 * @option Linear
 * @option InSine
 * @option OutSine
 * @option InOutSine
 * @option InQuad
 * @option OutQuad
 * @option InOutQuad
 * @option InCubic
 * @option OutCubic
 * @option InOutCubic
 * @option InQuart
 * @option OutQuart
 * @option InOutQuart
 * @option InQuint
 * @option OutQuint
 * @option InOutQuint
 * @option InExpo
 * @option OutExpo
 * @option InOutExpo
 * @option InCirc
 * @option OutCirc
 * @option InOutCirc
 * @option InBack
 * @option OutBack
 * @option InOutBack
 * @option InElastic
 * @option OutElastic
 * @option InOutElastic
 * @option InBounce
 * @option OutBounce
 * @option InOutBounce
 * @desc Select which easing type to apply to the projectile's trajectory.
 * @default Linear
 * 
 * @param Hue:eval
 * @text Hue
 * @parent Settings
 * @desc Adjust the hue of the projectile.
 * Insert a number between 0 and 360.
 * @default 0
 * 
 * @param Scale:eval
 * @text Scale
 * @parent Settings
 * @desc Adjust the size scaling of the projectile.
 * Use decimals for exact control.
 * @default 1.0
 * 
 * @param Spin:eval
 * @text Spin Speed
 * @parent Settings
 * @desc Determine how much angle the projectile spins per frame.
 * Does not work well with "Auto Angle".
 * @default +0.0
 * 
 * @param Emulate
 * @text Effect Emulation
 * 
 * @param EmulateActionEffect:eval
 * @text Action Effect?
 * @parent Emulate
 * @type boolean
 * @on Emulate
 * @off Don't Emulate
 * @desc Emulate current Action Effect when projectile reaches
 * target? Only works with start/goal targets.
 * @default false
 * 
 * @param EmulateItemEffect:eval
 * @text Item Effect ID
 * @parent Emulate
 * @type item
 * @desc Emulate an Item Effect when projectile reaches target?
 * Use 0 to not use. Only works with start/goal targets.
 * @default 0
 * 
 * @param EmulateSkillEffect:eval
 * @text Skill Effect ID
 * @parent Emulate
 * @type skill
 * @desc Emulate a Skill Effect when projectile reaches target?
 * Use 0 to not use. Only works with start/goal targets.
 * @default 0
 *
 * @param OnceParallel:num
 * @text Common Event ID
 * @parent Emulate
 * @type common_event
 * @desc Plays a Once Parallel Common Event upon reaching target.
 * Use 0 to not use. Works regardless of start/goal targets.
 * @default 0
 * 
 * @param EndAnimationID:eval
 * @text End Animation ID
 * @type animation
 * @desc Plays an animation when projectile reaches target.
 * Use 0 to not use. Requires ActSeqProjectiles v1.09+.
 * @default 0
 *
 * @param EndAnimationMirror:eval
 * @text Mirror Animation
 * @parent EndAnimationID:eval
 * @type boolean
 * @on Mirror
 * @off Normal
 * @desc Mirror the effect animation?
 * Requires VisuMZ_3_ActSeqProjectiles version 1.09+.
 * @default false
 *
 * @param EndAnimationMute:eval
 * @text Mute Animation
 * @parent EndAnimationID:eval
 * @type boolean
 * @on Mute
 * @off Normal
 * @desc Mute the effect animation?
 * Requires VisuMZ_3_ActSeqProjectiles version 1.09+.
 * @default false
 *
 */
/* ----------------------------------------------------------------------------
 * Visual Cutin Effect Settings
 * ----------------------------------------------------------------------------
 */
/*~struct~VisualCutinEffect:
 *
 * @param Transition
 * 
 * @param enterDuration:num
 * @text Entrance Duration
 * @parent Transition
 * @type number
 * @desc How many frames does it take to fully enter?
 * Used when a Visual Cutin Effect starts.
 * @default 12
 * 
 * @param exitDuration:num
 * @text Exit Duration
 * @parent Transition
 * @type number
 * @desc How many frames does it take to fully exit?
 * Used when a Visual Cutin Effect ends.
 * @default 12
 *
 * @param Cutin
 * @text Cutin Settings
 *
 * @param bgShow:eval
 * @text Show BG Color?
 * @parent Cutin
 * @type boolean
 * @on Show
 * @off Hide
 * @desc Add a background color for this cutin?
 * Background colors appear behind the parallax.
 * @default true
 *
 * @param outlineShow:eval
 * @text Show Outline?
 * @parent Cutin
 * @type boolean
 * @on Show
 * @off Hide
 * @desc Show the cutin outline?
 * @default true
 *
 * @param Portrait
 * @text Portrait Settings
 *
 * @param PortraitBase
 * @text Base Properties
 * @parent Portrait
 * 
 * @param portraitAnchorX:num
 * @text Anchor X
 * @parent PortraitBase
 * @desc Determines the sprite anchor X alignment.
 * 0.0: Left, 0.5: Center, 1.0: Right.
 * @default 0.5
 * 
 * @param portraitAnchorY:num
 * @text Anchor Y
 * @parent PortraitBase
 * @desc Determines the sprite anchor Y alignment.
 * 0.0: Top, 0.5: Middle, 1.0: Bottom.
 * @default 0.5
 *
 * @param portraitHue:num
 * @text Hue
 * @parent PortraitBase
 * @type number
 * @min 0
 * @max 360
 * @desc Do you wish to adjust this cutin's portrait hue?
 * @default 0
 * 
 * @param portraitOpacity:num
 * @text Opacity
 * @parent PortraitBase
 * @type number
 * @max 255
 * @desc What is the opacity level of this cutin's portrait?
 * @default 255
 * 
 * @param portraitOffsetX:num
 * @text Offset X
 * @parent PortraitBase
 * @desc Offsets the cutin portrait's X location.
 * Negative: left. Positive: right.
 * @default +0
 * 
 * @param portraitOffsetY:num
 * @text Offset Y
 * @parent PortraitBase
 * @desc Offsets the cutin portrait's Y location.
 * Negative: up. Positive: down.
 * @default +0
 *
 * @param PortraitEnter
 * @text Entrance Properties
 * @parent Portrait
 * 
 * @param portraitEnterX:num
 * @text Entrance X
 * @parent PortraitEnter
 * @desc Sets the cutin portrait's X entrance.
 * Negative: from left. Positive: from right.
 * @default +0
 * 
 * @param portraitEnterY:num
 * @text Entrance Y
 * @parent PortraitEnter
 * @desc Sets the cutin portrait's Y entrance.
 * Negative: from up. Positive: from down.
 * @default +0
 *
 * @param portraitEnterEasingType:str
 * @text Entrance Easing
 * @parent PortraitEnter
 * @type combo
 * @option Linear
 * @option InSine
 * @option OutSine
 * @option InOutSine
 * @option InQuad
 * @option OutQuad
 * @option InOutQuad
 * @option InCubic
 * @option OutCubic
 * @option InOutCubic
 * @option InQuart
 * @option OutQuart
 * @option InOutQuart
 * @option InQuint
 * @option OutQuint
 * @option InOutQuint
 * @option InExpo
 * @option OutExpo
 * @option InOutExpo
 * @option InCirc
 * @option OutCirc
 * @option InOutCirc
 * @option InBack
 * @option OutBack
 * @option InOutBack
 * @option InElastic
 * @option OutElastic
 * @option InOutElastic
 * @option InBounce
 * @option OutBounce
 * @option InOutBounce
 * @desc Select which easing type you wish to apply.
 * @default InOutSine
 *
 * @param PortraitExit
 * @text Exit Properties
 * @parent Portrait
 * 
 * @param portraitExitX:num
 * @text Exit X
 * @parent PortraitExit
 * @desc Sets the cutin portrait's X exit.
 * Negative: to left. Positive: to right.
 * @default +0
 * 
 * @param portraitExitY:num
 * @text Exit Y
 * @parent PortraitExit
 * @desc Sets the cutin portrait's Y exit.
 * Negative: to up. Positive: to down.
 * @default +0
 *
 * @param portraitExitEasingType:str
 * @text Exit Easing
 * @parent PortraitExit
 * @type combo
 * @option Linear
 * @option InSine
 * @option OutSine
 * @option InOutSine
 * @option InQuad
 * @option OutQuad
 * @option InOutQuad
 * @option InCubic
 * @option OutCubic
 * @option InOutCubic
 * @option InQuart
 * @option OutQuart
 * @option InOutQuart
 * @option InQuint
 * @option OutQuint
 * @option InOutQuint
 * @option InExpo
 * @option OutExpo
 * @option InOutExpo
 * @option InCirc
 * @option OutCirc
 * @option InOutCirc
 * @option InBack
 * @option OutBack
 * @option InOutBack
 * @option InElastic
 * @option OutElastic
 * @option InOutElastic
 * @option InBounce
 * @option OutBounce
 * @option InOutBounce
 * @desc Select which easing type you wish to apply.
 * @default InOutSine
 *
 * @param PortraitFlip
 * @text Flip Properties
 * @parent Portrait
 *
 * @param portraitFlipHorz:eval
 * @text Flip Horizontally?
 * @parent PortraitFlip
 * @type boolean
 * @on Flip
 * @off Don't Flip
 * @desc Flip the cutin portrait horizontally?
 * @default false
 *
 * @param portraitFlipVert:eval
 * @text Flip Vertically?
 * @parent PortraitFlip
 * @type boolean
 * @on Flip
 * @off Don't Flip
 * @desc Flip the cutin portrait vertically?
 * @default false
 *
 * @param PortraitScale
 * @text Scaling Properties
 * @parent Portrait
 * 
 * @param portraitForcedScale:num
 * @text Forced Scaling
 * @parent PortraitScale
 * @desc Do you want to force a scaling ratio?
 * Leave as 0 for none. Disables "Fit to Scale?".
 * @default 0.0
 *
 * @param portraitScaleToFit:eval
 * @text Fit to Scale?
 * @parent PortraitScale
 * @type boolean
 * @on Fit to Scale
 * @off Don't Scale
 * @desc Scale the cutin portrait to fit the cutin style?
 * Cannot be used with "Forced Scaling".
 * @default true
 *
 * @param portraitScaleMax:eval
 * @text Scale Max?
 * @parent portraitScaleToFit:eval
 * @type boolean
 * @on Scale Maximum
 * @off Scale Minimum
 * @desc Scale the cutin portrait to the maximum fit or
 * scale the cutin portrait to the minimum fit.
 * @default false
 *
 * @param PortraitAni
 * @text Animated Portraits
 * @parent Portrait
 *
 * @param animatedPortraitLooping:eval
 * @text Loop?
 * @parent PortraitAni
 * @type boolean
 * @on ON
 * @off OFF
 * @desc Will loop back to beginning once ended.
 * Requires VisuMZ_4_AnimatedPictures!
 * @default true
 *
 * @param animatedPortraitWaitFrames:num
 * @text Wait Frames
 * @parent PortraitAni
 * @type number
 * @min 1
 * @desc Frames to wait before moving to next cell.
 * Requires VisuMZ_4_AnimatedPictures!
 * @default 4
 *
 * @param Parallax
 * @text Parallax Settings
 *
 * @param ParallaxBase
 * @text Base Settings
 * @parent Parallax
 *
 * @param parallaxBlendMode:num
 * @text Blend Mode
 * @parent ParallaxBase
 * @type select
 * @option 0 - Normal
 * @value 0
 * @option 1 - Additive
 * @value 1
 * @option 2 - Multiply
 * @value 2
 * @option 3 - Screen
 * @value 3
 * @desc What kind of blend mode do you wish to apply to the cutin?
 * @default 0
 *
 * @param parallaxHue:num
 * @text Hue
 * @parent ParallaxBase
 * @type number
 * @min 0
 * @max 360
 * @desc Do you wish to adjust this cutin's parallax hue?
 * @default 0
 *
 * @param parallaxHueEnemyModifier:num
 * @text Enemy Modifier
 * @parent parallaxHue:num
 * @desc Adjust the hue value by this if the cutin target is an enemy.
 * @default +0
 * 
 * @param parallaxOpacity:num
 * @text Opacity
 * @parent ParallaxBase
 * @type number
 * @max 255
 * @desc What is the opacity level of this cutin's parallax?
 * @default 255
 *
 * @param ParallaxScroll
 * @text Scrolling Settings
 * @parent Parallax
 * 
 * @param parallaxOffsetX:num
 * @text Offset X
 * @parent ParallaxScroll
 * @desc Offsets the cutin parallax's X location.
 * Negative: left. Positive: right.
 * @default +0.0
 * 
 * @param parallaxOffsetY:num
 * @text Offset Y
 * @parent ParallaxScroll
 * @desc Offsets the cutin parallax's Y location.
 * Negative: up. Positive: down.
 * @default +0.0
 * 
 * @param parallaxScrollX:num
 * @text Scroll X
 * @parent ParallaxScroll
 * @desc How many pixels does the parallax scroll horizontally?
 * Negative: Scroll to right. Positive: Scroll to left.
 * @default +0.0
 *
 * @param parallaxScrollXinvertEnemy:eval
 * @text Invert for Enemy?
 * @parent parallaxScrollX:num
 * @type boolean
 * @on Invert
 * @off Don't Invert
 * @desc Invert the X scroll direction if the cutin target is an enemy?
 * @default false
 * 
 * @param parallaxScrollY:num
 * @text Scroll Y
 * @parent ParallaxScroll
 * @desc How many pixels does the parallax scroll vertically?
 * Negative: Scroll to down. Positive: Scroll to up.
 * @default +0.0
 *
 * @param parallaxScrollYinvertEnemy:eval
 * @text Invert for Enemy?
 * @parent parallaxScrollY:num
 * @type boolean
 * @on Invert
 * @off Don't Invert
 * @desc Invert the Y scroll direction if the cutin target is an enemy?
 * @default false
 *
 */
//=============================================================================

const _0x1cc45e=_0x2f02;(function(_0x1f2993,_0x57d2c6){const _0xac23c6=_0x2f02,_0x4084b1=_0x1f2993();while(!![]){try{const _0x10009b=parseInt(_0xac23c6(0xaff))/0x1*(parseInt(_0xac23c6(0xa44))/0x2)+-parseInt(_0xac23c6(0x7a5))/0x3*(parseInt(_0xac23c6(0xc75))/0x4)+-parseInt(_0xac23c6(0x1a7))/0x5+-parseInt(_0xac23c6(0x54d))/0x6+parseInt(_0xac23c6(0x782))/0x7+parseInt(_0xac23c6(0x5b8))/0x8+-parseInt(_0xac23c6(0xb61))/0x9*(-parseInt(_0xac23c6(0x9b3))/0xa);if(_0x10009b===_0x57d2c6)break;else _0x4084b1['push'](_0x4084b1['shift']());}catch(_0x2eb9ad){_0x4084b1['push'](_0x4084b1['shift']());}}}(_0x72b7,0xe0c70));function _0x2f02(_0x4313db,_0x2c356e){const _0x72b714=_0x72b7();return _0x2f02=function(_0x2f0203,_0x70831){_0x2f0203=_0x2f0203-0x1a6;let _0x1865ec=_0x72b714[_0x2f0203];return _0x1865ec;},_0x2f02(_0x4313db,_0x2c356e);}var label=_0x1cc45e(0x2c5),tier=tier||0x0,dependencies=[],pluginData=$plugins[_0x1cc45e(0x441)](function(_0x4ddee8){const _0x4eb733=_0x1cc45e;return _0x4ddee8['status']&&_0x4ddee8[_0x4eb733(0x240)][_0x4eb733(0x9c4)]('['+label+']');})[0x0];VisuMZ[label][_0x1cc45e(0x5fb)]=VisuMZ[label][_0x1cc45e(0x5fb)]||{},VisuMZ['ConvertParams']=function(_0x3f03fb,_0x3a0000){const _0x11a66b=_0x1cc45e;for(const _0x50ef94 in _0x3a0000){if(_0x50ef94[_0x11a66b(0xc6a)](/(.*):(.*)/i)){const _0x550591=String(RegExp['$1']),_0x3f7209=String(RegExp['$2'])[_0x11a66b(0x2b6)]()[_0x11a66b(0xc8e)]();let _0x3f67c3,_0x46964c,_0x10bd6b;switch(_0x3f7209){case _0x11a66b(0x353):_0x3f67c3=_0x3a0000[_0x50ef94]!==''?Number(_0x3a0000[_0x50ef94]):0x0;break;case'ARRAYNUM':_0x46964c=_0x3a0000[_0x50ef94]!==''?JSON[_0x11a66b(0x8b3)](_0x3a0000[_0x50ef94]):[],_0x3f67c3=_0x46964c[_0x11a66b(0x63c)](_0x314b93=>Number(_0x314b93));break;case'EVAL':_0x3f67c3=_0x3a0000[_0x50ef94]!==''?eval(_0x3a0000[_0x50ef94]):null;break;case _0x11a66b(0xa78):_0x46964c=_0x3a0000[_0x50ef94]!==''?JSON[_0x11a66b(0x8b3)](_0x3a0000[_0x50ef94]):[],_0x3f67c3=_0x46964c['map'](_0x2e1e49=>eval(_0x2e1e49));break;case _0x11a66b(0x575):_0x3f67c3=_0x3a0000[_0x50ef94]!==''?JSON['parse'](_0x3a0000[_0x50ef94]):'';break;case'ARRAYJSON':_0x46964c=_0x3a0000[_0x50ef94]!==''?JSON['parse'](_0x3a0000[_0x50ef94]):[],_0x3f67c3=_0x46964c[_0x11a66b(0x63c)](_0x590282=>JSON[_0x11a66b(0x8b3)](_0x590282));break;case _0x11a66b(0xbc9):_0x3f67c3=_0x3a0000[_0x50ef94]!==''?new Function(JSON['parse'](_0x3a0000[_0x50ef94])):new Function(_0x11a66b(0x990));break;case'ARRAYFUNC':_0x46964c=_0x3a0000[_0x50ef94]!==''?JSON['parse'](_0x3a0000[_0x50ef94]):[],_0x3f67c3=_0x46964c[_0x11a66b(0x63c)](_0x193246=>new Function(JSON[_0x11a66b(0x8b3)](_0x193246)));break;case _0x11a66b(0x20b):_0x3f67c3=_0x3a0000[_0x50ef94]!==''?String(_0x3a0000[_0x50ef94]):'';break;case _0x11a66b(0xc15):_0x46964c=_0x3a0000[_0x50ef94]!==''?JSON[_0x11a66b(0x8b3)](_0x3a0000[_0x50ef94]):[],_0x3f67c3=_0x46964c[_0x11a66b(0x63c)](_0x1e7992=>String(_0x1e7992));break;case _0x11a66b(0x40d):_0x10bd6b=_0x3a0000[_0x50ef94]!==''?JSON[_0x11a66b(0x8b3)](_0x3a0000[_0x50ef94]):{},_0x3f03fb[_0x550591]={},VisuMZ[_0x11a66b(0x796)](_0x3f03fb[_0x550591],_0x10bd6b);continue;case'ARRAYSTRUCT':_0x46964c=_0x3a0000[_0x50ef94]!==''?JSON[_0x11a66b(0x8b3)](_0x3a0000[_0x50ef94]):[],_0x3f67c3=_0x46964c[_0x11a66b(0x63c)](_0x1ba0e2=>VisuMZ[_0x11a66b(0x796)]({},JSON[_0x11a66b(0x8b3)](_0x1ba0e2)));break;default:continue;}_0x3f03fb[_0x550591]=_0x3f67c3;}}return _0x3f03fb;},(_0x3be0a0=>{const _0x342614=_0x1cc45e,_0x5e6f52=_0x3be0a0[_0x342614(0xc4e)];for(const _0x4557c1 of dependencies){if(!Imported[_0x4557c1]){alert(_0x342614(0xbb0)[_0x342614(0x65c)](_0x5e6f52,_0x4557c1)),SceneManager[_0x342614(0x5c1)]();break;}}const _0x4733e2=_0x3be0a0[_0x342614(0x240)];if(_0x4733e2['match'](/\[Version[ ](.*?)\]/i)){const _0x33cb51=Number(RegExp['$1']);_0x33cb51!==VisuMZ[label][_0x342614(0x6bc)]&&(alert(_0x342614(0xad7)[_0x342614(0x65c)](_0x5e6f52,_0x33cb51)),SceneManager[_0x342614(0x5c1)]());}if(_0x4733e2[_0x342614(0xc6a)](/\[Tier[ ](\d+)\]/i)){const _0x26dda8=Number(RegExp['$1']);_0x26dda8<tier?(alert(_0x342614(0x2b9)[_0x342614(0x65c)](_0x5e6f52,_0x26dda8,tier)),SceneManager[_0x342614(0x5c1)]()):tier=Math['max'](_0x26dda8,tier);}VisuMZ[_0x342614(0x796)](VisuMZ[label][_0x342614(0x5fb)],_0x3be0a0[_0x342614(0x71d)]);})(pluginData),VisuMZ['CreateActionSequenceTargets']=function(_0x2c2878){const _0x44d1e9=_0x1cc45e;let _0x108d95=[];for(const _0x5309cd of _0x2c2878){_0x108d95=_0x108d95[_0x44d1e9(0x807)](VisuMZ[_0x44d1e9(0x7bc)](_0x5309cd));}return _0x108d95['filter'](_0x114146=>_0x114146);},VisuMZ[_0x1cc45e(0x7bc)]=function(_0x5c8921){const _0x752303=_0x1cc45e,_0x55e2ec=BattleManager['allBattleMembers']()[_0x752303(0x441)](_0x2e8c9c=>_0x2e8c9c&&_0x2e8c9c[_0x752303(0x7e3)]()),_0x8c6c6b=BattleManager[_0x752303(0x301)],_0x5f42a2=BattleManager[_0x752303(0x757)],_0x48877b=BattleManager['_allTargets']?BattleManager['_allTargets'][_0x752303(0x937)](0x0):_0x55e2ec;_0x5c8921=_0x5c8921[_0x752303(0xbb5)]()['trim']();if(_0x5c8921===_0x752303(0x33c))return[_0x8c6c6b];else{if(_0x5c8921===_0x752303(0x5cc))return[_0x5f42a2];else{if(_0x5c8921===_0x752303(0x6b4)){if(_0x5f42a2){const _0x39340c=_0x48877b[_0x752303(0x6e9)](_0x5f42a2);return _0x39340c>=0x0?[_0x48877b[_0x39340c-0x1]||_0x5f42a2]:[_0x5f42a2];}}else{if(_0x5c8921===_0x752303(0xa43)){if(_0x5f42a2){const _0x30291b=_0x48877b[_0x752303(0x6e9)](_0x5f42a2);return _0x30291b>=0x0?[_0x48877b[_0x30291b+0x1]||_0x5f42a2]:[_0x5f42a2];}}else{if(_0x5c8921==='all\x20targets')return _0x48877b;else{if(_0x5c8921==='focus')return[_0x8c6c6b]['concat'](_0x48877b);else{if(_0x5c8921==='not\x20focus')return _0x55e2ec[_0x752303(0x441)](_0xe7ff80=>_0xe7ff80!==_0x8c6c6b&&!_0x48877b[_0x752303(0x9c4)](_0xe7ff80)&&_0xe7ff80['notFocusValid']());else{if(_0x5c8921===_0x752303(0x358))return[VisuMZ['GetActionSequenceSpecialTarget']()];else{if(_0x5c8921[_0x752303(0xc6a)](/SPECIAL (.*)>/i)){const _0x474a05=String(RegExp['$1'])['split'](',')[_0x752303(0x63c)](_0x27dd29=>_0x27dd29[_0x752303(0xc8e)]());return[VisuMZ[_0x752303(0x841)](_0x474a05)];}}}}}}}}}if(_0x8c6c6b){if(_0x5c8921===_0x752303(0xb12))return _0x8c6c6b[_0x752303(0x917)]()[_0x752303(0x1d0)]();else{if(_0x5c8921===_0x752303(0x6e5))return _0x8c6c6b[_0x752303(0x917)]()[_0x752303(0x1d0)]()[_0x752303(0x441)](_0x42862e=>_0x42862e!==_0x8c6c6b);else{if(_0x5c8921==='alive\x20friends\x20not\x20target')return _0x8c6c6b[_0x752303(0x917)]()[_0x752303(0x1d0)]()[_0x752303(0x441)](_0x362e09=>_0x362e09!==_0x5f42a2);else{if(_0x5c8921===_0x752303(0x501))return _0x8c6c6b[_0x752303(0x917)]()[_0x752303(0x2e0)]();else{if(_0x5c8921[_0x752303(0xc6a)](/FRIEND INDEX (\d+)/i)){const _0x562d84=Number(RegExp['$1']);return[_0x8c6c6b[_0x752303(0x917)]()['members']()[_0x562d84]];}}}}}if(_0x5c8921===_0x752303(0xa65))return _0x8c6c6b[_0x752303(0x24e)]()[_0x752303(0x1d0)]();else{if(_0x5c8921===_0x752303(0x21c))return _0x8c6c6b[_0x752303(0x24e)]()[_0x752303(0x1d0)]()[_0x752303(0x441)](_0x40225d=>_0x40225d!==_0x5f42a2);else{if(_0x5c8921===_0x752303(0x3e2))return _0x8c6c6b[_0x752303(0x24e)]()[_0x752303(0x2e0)]();else{if(_0x5c8921[_0x752303(0xc6a)](/OPPONENT INDEX (\d+)/i)){const _0x26411c=Number(RegExp['$1']);return[_0x8c6c6b[_0x752303(0x24e)]()['members']()[_0x26411c]];}}}}}if(_0x5c8921==='alive\x20actors')return $gameParty[_0x752303(0x1d0)]();else{if(_0x5c8921==='alive\x20actors\x20not\x20user')return $gameParty['aliveMembers']()[_0x752303(0x441)](_0x4770be=>_0x4770be!==_0x8c6c6b);else{if(_0x5c8921===_0x752303(0x703))return $gameParty[_0x752303(0x1d0)]()['filter'](_0x5aba8f=>_0x5aba8f!==_0x5f42a2);else{if(_0x5c8921===_0x752303(0x2cf))return $gameParty[_0x752303(0x2e0)]();else{if(_0x5c8921[_0x752303(0xc6a)](/ACTOR INDEX (\d+)/i)){const _0x3ed4be=Number(RegExp['$1']);return[$gameParty['members']()[_0x3ed4be]];}else{if(_0x5c8921[_0x752303(0xc6a)](/ACTOR ID (\d+)/i)){const _0x272dab=Number(RegExp['$1']);return[$gameActors[_0x752303(0x72d)](_0x272dab)];}}}}}}if(_0x5c8921===_0x752303(0x783))return $gameTroop[_0x752303(0x1d0)]();else{if(_0x5c8921===_0x752303(0xb15))return $gameTroop['aliveMembers']()[_0x752303(0x441)](_0xb411b7=>_0xb411b7!==_0x8c6c6b);else{if(_0x5c8921===_0x752303(0x39a))return $gameTroop['aliveMembers']()[_0x752303(0x441)](_0x4181fc=>_0x4181fc!==_0x5f42a2);else{if(_0x5c8921==='dead\x20enemies')return $gameTroop[_0x752303(0x2e0)]();else{if(_0x5c8921[_0x752303(0xc6a)](/ENEMY INDEX (\d+)/i)){const _0x8bc8b9=Number(RegExp['$1']);return[$gameTroop[_0x752303(0x1be)]()[_0x8bc8b9]];}else{if(_0x5c8921[_0x752303(0xc6a)](/ENEMY ID (\d+)/i)){const _0x56085c=Number(RegExp['$1']);return $gameTroop[_0x752303(0x1d0)]()['filter'](_0x383ece=>_0x383ece[_0x752303(0x1d4)]()===_0x56085c);}}}}}}if(_0x5c8921==='alive\x20battlers')return _0x55e2ec[_0x752303(0x441)](_0x2c96ff=>_0x2c96ff[_0x752303(0x212)]());else{if(_0x5c8921===_0x752303(0x66f))return _0x55e2ec[_0x752303(0x441)](_0x258349=>_0x258349[_0x752303(0x212)]()&&_0x258349!==_0x8c6c6b);else{if(_0x5c8921===_0x752303(0x6ab))return _0x55e2ec[_0x752303(0x441)](_0x4ff3d5=>_0x4ff3d5[_0x752303(0x212)]()&&_0x4ff3d5!==_0x5f42a2);else{if(_0x5c8921==='dead\x20battlers')return _0x55e2ec[_0x752303(0x441)](_0x5d8bca=>_0x5d8bca[_0x752303(0x1ee)]());}}}return[];},VisuMZ[_0x1cc45e(0x9df)]=function(){return BattleManager['_target'];},VisuMZ[_0x1cc45e(0x841)]=function(_0x1055d1){const _0x4eaa8e=_0x1cc45e;return BattleManager[_0x4eaa8e(0x757)];},VisuMZ['BattleCore']['CheckCustomActSeqNotetag']=function(_0x3c02c5){const _0x24de60=_0x1cc45e;if(!VisuMZ[_0x24de60(0x2c5)][_0x24de60(0x5fb)][_0x24de60(0xc01)][_0x24de60(0xaa4)]&&_0x3c02c5[_0x24de60(0x904)]()){const _0x5ab83c=/<CUSTOM ACTION SEQUENCE>/i;if(!_0x3c02c5[_0x24de60(0x904)]()[_0x24de60(0xbe6)]['match'](_0x5ab83c)){const _0x3c3c95=_0x3c02c5[_0x24de60(0x904)]();let _0x297beb=_0x24de60(0x9d0);_0x297beb+='%1\x20%2:\x20%3\x20is\x20missing\x20the\x0a',_0x297beb+=_0x24de60(0x852);const _0x5f3a63=$dataItems[_0x24de60(0x9c4)](_0x3c3c95)?'Item':_0x24de60(0x7a8),_0x42e52e=_0x297beb[_0x24de60(0x65c)](_0x5f3a63,_0x3c3c95['id'],_0x3c3c95[_0x24de60(0xc4e)]);return alert(_0x42e52e),![];}}},PluginManager[_0x1cc45e(0x68e)](pluginData[_0x1cc45e(0xc4e)],_0x1cc45e(0x6f2),_0x45935e=>{const _0x58ab26=_0x1cc45e;if(!SceneManager['isSceneBattle']())return;VisuMZ[_0x58ab26(0x796)](_0x45935e,_0x45935e);const _0x51f5ed=$gameTemp[_0x58ab26(0x92f)](),_0x4bb18e=BattleManager['_action'],_0x17a449=BattleManager['_subject'],_0x586b42=BattleManager['_allTargets']?BattleManager[_0x58ab26(0xb50)][_0x58ab26(0x937)](0x0):[],_0x34f153=BattleManager['_logWindow'];VisuMZ[_0x58ab26(0x2c5)]['CheckCustomActSeqNotetag'](_0x4bb18e);if(!_0x51f5ed||!_0x4bb18e||!_0x17a449)return;if(!_0x4bb18e['item']())return;if(_0x45935e[_0x58ab26(0x629)])_0x34f153['displayAction'](_0x17a449,_0x4bb18e[_0x58ab26(0x904)]());_0x45935e[_0x58ab26(0xaa8)]&&_0x34f153['push'](_0x58ab26(0xc89),_0x17a449,_0x586b42,!![]);if(_0x45935e[_0x58ab26(0x28d)])_0x34f153[_0x58ab26(0xca6)]('performActionStart',_0x17a449,_0x4bb18e);if(_0x45935e[_0x58ab26(0x579)])_0x34f153[_0x58ab26(0xca6)](_0x58ab26(0x1ac));if(_0x45935e[_0x58ab26(0x961)])_0x34f153['push']('performCastAnimation',_0x17a449,_0x4bb18e);if(_0x45935e[_0x58ab26(0x7cd)])_0x34f153['push'](_0x58ab26(0x9aa));_0x51f5ed[_0x58ab26(0xb13)](_0x58ab26(0x321));}),PluginManager[_0x1cc45e(0x68e)](pluginData[_0x1cc45e(0xc4e)],'ActSeq_Set_WholeActionSet',_0x54a08a=>{const _0x348d5b=_0x1cc45e;if(!SceneManager[_0x348d5b(0x499)]())return;VisuMZ[_0x348d5b(0x796)](_0x54a08a,_0x54a08a);const _0x13023f=$gameTemp['getLastPluginCommandInterpreter'](),_0x20af98=BattleManager['_action'],_0x477434=BattleManager[_0x348d5b(0x301)],_0x1b09f0=BattleManager['_allTargets']?BattleManager[_0x348d5b(0xb50)][_0x348d5b(0x937)](0x0):[],_0x2de4d8=BattleManager[_0x348d5b(0xc9e)],_0x2181ff=_0x54a08a['DualWield']??![];VisuMZ[_0x348d5b(0x2c5)]['CheckCustomActSeqNotetag'](_0x20af98);if(!_0x13023f||!_0x20af98||!_0x477434)return;if(!_0x20af98[_0x348d5b(0x904)]())return;let _0x43d56c=_0x2181ff?_0x2de4d8[_0x348d5b(0xcf5)](_0x477434):0x1;for(let _0xf3b9f1=0x0;_0xf3b9f1<_0x43d56c;_0xf3b9f1++){_0x2181ff&&_0x477434[_0x348d5b(0x864)]()&&_0x2de4d8[_0x348d5b(0xca6)](_0x348d5b(0x462),_0x477434,_0xf3b9f1);if(_0x54a08a['PerformAction'])_0x2de4d8[_0x348d5b(0xca6)](_0x348d5b(0x59b),_0x477434,_0x20af98);if(_0x54a08a[_0x348d5b(0xb9d)]>0x0)_0x2de4d8[_0x348d5b(0xca6)](_0x348d5b(0xb9e),_0x54a08a[_0x348d5b(0xb9d)]);if(_0x54a08a['ActionAnimation'])_0x2de4d8[_0x348d5b(0xca6)]('showAnimation',_0x477434,_0x1b09f0,_0x20af98['item']()[_0x348d5b(0x1c8)]);if(_0x54a08a[_0x348d5b(0x7cd)])_0x2de4d8[_0x348d5b(0xca6)](_0x348d5b(0x9aa));for(const _0x272165 of _0x1b09f0){if(!_0x272165)continue;if(_0x54a08a[_0x348d5b(0x213)])_0x2de4d8[_0x348d5b(0xca6)](_0x348d5b(0x97b),_0x477434,_0x272165);}}_0x2181ff&&_0x477434[_0x348d5b(0x864)]()&&_0x2de4d8[_0x348d5b(0xca6)]('clearActiveWeaponSet',_0x477434);if(_0x54a08a[_0x348d5b(0xaa8)])_0x2de4d8[_0x348d5b(0xca6)](_0x348d5b(0xc89),_0x477434,_0x1b09f0,![]);_0x13023f[_0x348d5b(0xb13)](_0x348d5b(0x321));}),PluginManager[_0x1cc45e(0x68e)](pluginData[_0x1cc45e(0xc4e)],_0x1cc45e(0x4b1),_0x2d7a7e=>{const _0x30b0da=_0x1cc45e;if(!SceneManager['isSceneBattle']())return;VisuMZ[_0x30b0da(0x796)](_0x2d7a7e,_0x2d7a7e);const _0x38588b=$gameTemp[_0x30b0da(0x92f)](),_0x2eeddb=BattleManager['_action'],_0x2c2b5e=BattleManager[_0x30b0da(0x301)],_0x13d644=BattleManager['_allTargets']?BattleManager[_0x30b0da(0xb50)][_0x30b0da(0x937)](0x0):[],_0x3bec41=BattleManager[_0x30b0da(0xc9e)],_0x106e88=_0x2d7a7e[_0x30b0da(0x7c6)]??![];VisuMZ[_0x30b0da(0x2c5)]['CheckCustomActSeqNotetag'](_0x2eeddb);if(!_0x38588b||!_0x2eeddb||!_0x2c2b5e)return;if(!_0x2eeddb[_0x30b0da(0x904)]())return;let _0x3d2618=_0x106e88?_0x3bec41[_0x30b0da(0xcf5)](_0x2c2b5e):0x1;for(let _0x2fa185=0x0;_0x2fa185<_0x3d2618;_0x2fa185++){for(const _0x2b6077 of _0x13d644){if(!_0x2b6077)continue;_0x106e88&&_0x2c2b5e[_0x30b0da(0x864)]()&&_0x3bec41[_0x30b0da(0xca6)](_0x30b0da(0x462),_0x2c2b5e,_0x2fa185);if(_0x2d7a7e[_0x30b0da(0x96c)])_0x3bec41[_0x30b0da(0xca6)](_0x30b0da(0x59b),_0x2c2b5e,_0x2eeddb);if(_0x2d7a7e[_0x30b0da(0x694)]>0x0)_0x3bec41[_0x30b0da(0xca6)](_0x30b0da(0xb9e),_0x2d7a7e[_0x30b0da(0x694)]);if(_0x2d7a7e['ActionAnimation'])_0x3bec41[_0x30b0da(0xca6)](_0x30b0da(0x4dc),_0x2c2b5e,[_0x2b6077],_0x2eeddb[_0x30b0da(0x904)]()['animationId']);if(_0x2d7a7e[_0x30b0da(0x2af)]>0x0)_0x3bec41['push'](_0x30b0da(0xb9e),_0x2d7a7e[_0x30b0da(0x2af)]);if(_0x2d7a7e[_0x30b0da(0x213)])_0x3bec41['push'](_0x30b0da(0x97b),_0x2c2b5e,_0x2b6077);}}_0x106e88&&_0x2c2b5e[_0x30b0da(0x864)]()&&_0x3bec41['push']('clearActiveWeaponSet',_0x2c2b5e);if(_0x2d7a7e['ApplyImmortal'])_0x3bec41[_0x30b0da(0xca6)](_0x30b0da(0xc89),_0x2c2b5e,_0x13d644,![]);_0x38588b[_0x30b0da(0xb13)](_0x30b0da(0x321));}),PluginManager[_0x1cc45e(0x68e)](pluginData[_0x1cc45e(0xc4e)],_0x1cc45e(0xc00),_0x43b3fb=>{const _0x2a2312=_0x1cc45e;if(!SceneManager[_0x2a2312(0x499)]())return;VisuMZ['ConvertParams'](_0x43b3fb,_0x43b3fb);const _0xcb0cc7=$gameTemp['getLastPluginCommandInterpreter'](),_0x16ec44=BattleManager[_0x2a2312(0xa8b)],_0x5ea216=BattleManager[_0x2a2312(0x301)],_0x3294df=BattleManager[_0x2a2312(0xb50)]?BattleManager[_0x2a2312(0xb50)][_0x2a2312(0x937)](0x0):[],_0x47f9ea=BattleManager['_logWindow'];VisuMZ[_0x2a2312(0x2c5)][_0x2a2312(0xa2a)](_0x16ec44);if(!_0xcb0cc7||!_0x16ec44||!_0x5ea216)return;if(!_0x16ec44['item']())return;if(_0x43b3fb['ApplyImmortal'])_0x47f9ea['push'](_0x2a2312(0xc89),_0x5ea216,_0x3294df,![]);if(_0x43b3fb[_0x2a2312(0x311)])_0x47f9ea[_0x2a2312(0xca6)](_0x2a2312(0x36c));if(_0x43b3fb[_0x2a2312(0x6e8)])_0x47f9ea['push']('waitForEffect');if(_0x43b3fb[_0x2a2312(0x45e)])_0x47f9ea['push'](_0x2a2312(0x52a));if(_0x43b3fb['ActionEnd'])_0x47f9ea[_0x2a2312(0xca6)]('performActionEnd',_0x5ea216);if(_0x43b3fb[_0x2a2312(0x579)])_0x47f9ea[_0x2a2312(0xca6)](_0x2a2312(0x1ac));_0xcb0cc7[_0x2a2312(0xb13)](_0x2a2312(0x321));}),PluginManager[_0x1cc45e(0x68e)](pluginData['name'],'ActSeq_ChangeAngle',_0x2b5477=>{const _0x2862bc=_0x1cc45e;if(!SceneManager[_0x2862bc(0x499)]())return;if(!Imported['VisuMZ_3_ActSeqCamera'])return;VisuMZ[_0x2862bc(0x796)](_0x2b5477,_0x2b5477);const _0x2a08fa=$gameTemp['getLastPluginCommandInterpreter'](),_0x5df999=_0x2b5477['WaitForAngle'];if(!_0x2a08fa)return;$gameScreen[_0x2862bc(0x30a)](_0x2b5477[_0x2862bc(0x378)],_0x2b5477[_0x2862bc(0xb0f)],_0x2b5477['EasingType']);if(_0x5df999)_0x2a08fa[_0x2862bc(0xb13)](_0x2862bc(0x319));}),PluginManager[_0x1cc45e(0x68e)](pluginData[_0x1cc45e(0xc4e)],_0x1cc45e(0xc45),_0x3363da=>{const _0x50c4ca=_0x1cc45e;if(!SceneManager[_0x50c4ca(0x499)]())return;if(!Imported[_0x50c4ca(0xa81)])return;VisuMZ[_0x50c4ca(0x796)](_0x3363da,_0x3363da);const _0x1a3a53=$gameTemp[_0x50c4ca(0x92f)](),_0x1c0ee4=_0x3363da[_0x50c4ca(0x33a)];if(!_0x1a3a53)return;$gameScreen['setBattleAngle'](0x0,_0x3363da[_0x50c4ca(0xb0f)],_0x3363da[_0x50c4ca(0xc22)]);if(_0x1c0ee4)_0x1a3a53[_0x50c4ca(0xb13)](_0x50c4ca(0x319));}),PluginManager['registerCommand'](pluginData[_0x1cc45e(0xc4e)],_0x1cc45e(0x1e3),_0x587618=>{const _0x10e8bd=_0x1cc45e;if(!SceneManager[_0x10e8bd(0x499)]())return;if(!Imported[_0x10e8bd(0xa81)])return;const _0x234257=$gameTemp[_0x10e8bd(0x92f)]();if(!_0x234257)return;_0x234257[_0x10e8bd(0xb13)]('battleAngle');}),PluginManager['registerCommand'](pluginData[_0x1cc45e(0xc4e)],_0x1cc45e(0x4f8),_0x4ed4f7=>{const _0x3273f0=_0x1cc45e;if(!SceneManager[_0x3273f0(0x499)]())return;VisuMZ[_0x3273f0(0x796)](_0x4ed4f7,_0x4ed4f7);const _0x327539=$gameTemp['getLastPluginCommandInterpreter'](),_0x54e7bc=BattleManager[_0x3273f0(0xa8b)],_0x374d1a=BattleManager[_0x3273f0(0x301)],_0x3f4648=VisuMZ[_0x3273f0(0x220)](_0x4ed4f7[_0x3273f0(0x932)]),_0x378e81=_0x4ed4f7[_0x3273f0(0x7a2)],_0xb5a736=BattleManager['_logWindow'];if(!_0x327539||!_0x54e7bc||!_0x374d1a)return;if(!_0x54e7bc[_0x3273f0(0x904)]())return;let _0x3c1c64=_0x54e7bc[_0x3273f0(0x904)]()[_0x3273f0(0x1c8)];if(_0x3c1c64<0x0)_0x3c1c64=_0x374d1a['attackAnimationId1']();$gameTemp[_0x3273f0(0xa84)](_0x3f4648,_0x3c1c64,_0x378e81),_0x4ed4f7['WaitForAnimation']&&_0x327539[_0x3273f0(0xb13)](_0x3273f0(0xab6));}),PluginManager['registerCommand'](pluginData[_0x1cc45e(0xc4e)],_0x1cc45e(0xcfe),_0xd2de9e=>{const _0x46177b=_0x1cc45e;if(!SceneManager[_0x46177b(0x499)]())return;VisuMZ['ConvertParams'](_0xd2de9e,_0xd2de9e);const _0x4e77c1=$gameTemp[_0x46177b(0x92f)](),_0x2e6749=BattleManager[_0x46177b(0x301)],_0x5c6d81=VisuMZ[_0x46177b(0x220)](_0xd2de9e[_0x46177b(0x932)]),_0x466ab4=_0xd2de9e[_0x46177b(0x7a2)],_0x3e5c6e=BattleManager['_logWindow'];if(!_0x4e77c1||!_0x2e6749)return;const _0x31ffa1=_0x2e6749['attackAnimationId1']();$gameTemp[_0x46177b(0xa84)](_0x5c6d81,_0x31ffa1,_0x466ab4),_0xd2de9e[_0x46177b(0x7cd)]&&_0x4e77c1[_0x46177b(0xb13)](_0x46177b(0xab6));}),PluginManager[_0x1cc45e(0x68e)](pluginData[_0x1cc45e(0xc4e)],_0x1cc45e(0xcba),_0x32209f=>{const _0x34b9dd=_0x1cc45e;if(!SceneManager['isSceneBattle']())return;VisuMZ[_0x34b9dd(0x796)](_0x32209f,_0x32209f);const _0x2d5710=_0x13c184[_0x34b9dd(0x56c)](_0x32209f['Slot']);if(_0x2d5710<=0x0)return;const _0x621d45=$gameTemp[_0x34b9dd(0x92f)](),_0x13c184=BattleManager[_0x34b9dd(0x301)],_0x3cab6f=VisuMZ[_0x34b9dd(0x220)](_0x32209f['Targets']),_0x2ff05f=_0x32209f[_0x34b9dd(0x7a2)],_0x3b7934=BattleManager[_0x34b9dd(0xc9e)];if(!_0x621d45||!_0x13c184)return;$gameTemp[_0x34b9dd(0xa84)](_0x3cab6f,_0x2d5710,_0x2ff05f),_0x32209f[_0x34b9dd(0x7cd)]&&_0x621d45[_0x34b9dd(0xb13)](_0x34b9dd(0xab6));}),PluginManager[_0x1cc45e(0x68e)](pluginData[_0x1cc45e(0xc4e)],_0x1cc45e(0x8d4),_0x3a213c=>{const _0x2b40ce=_0x1cc45e;if(!SceneManager[_0x2b40ce(0x499)]())return;VisuMZ[_0x2b40ce(0x796)](_0x3a213c,_0x3a213c);const _0x12d8e8=$gameTemp[_0x2b40ce(0x92f)](),_0x14a5f9=VisuMZ['CreateActionSequenceTargets'](_0x3a213c[_0x2b40ce(0x932)]),_0x3248c4=_0x3a213c[_0x2b40ce(0x9d2)];let _0x3c6277=0x0;switch(_0x3248c4['toUpperCase']()['trim']()){case'!':case'EXCLAMATION':_0x3c6277=0x1;break;case'?':case _0x2b40ce(0xaa5):_0x3c6277=0x2;break;case _0x2b40ce(0xb0e):case _0x2b40ce(0x50f):case _0x2b40ce(0x9e6):case _0x2b40ce(0xc3b):case _0x2b40ce(0xcee):_0x3c6277=0x3;break;case _0x2b40ce(0x289):case _0x2b40ce(0x894):_0x3c6277=0x4;break;case _0x2b40ce(0x640):case _0x2b40ce(0x7d0):_0x3c6277=0x5;break;case _0x2b40ce(0x1b7):_0x3c6277=0x6;break;case _0x2b40ce(0x7f7):case _0x2b40ce(0xba3):case _0x2b40ce(0xcf3):_0x3c6277=0x7;break;case _0x2b40ce(0x781):case _0x2b40ce(0x4d4):_0x3c6277=0x8;break;case _0x2b40ce(0x877):case'BULB':case _0x2b40ce(0x54c):case'LIGHT-BULB':case _0x2b40ce(0x5fd):_0x3c6277=0x9;break;case'Z':case'ZZ':case _0x2b40ce(0x589):case'SLEEP':_0x3c6277=0xa;break;case _0x2b40ce(0xc59):_0x3c6277=0xb;break;case _0x2b40ce(0x492):_0x3c6277=0xc;break;case _0x2b40ce(0x310):_0x3c6277=0xd;break;case _0x2b40ce(0x2be):_0x3c6277=0xe;break;case _0x2b40ce(0x2ff):_0x3c6277=0xf;break;}for(const _0x28f4e4 of _0x14a5f9){if(!_0x28f4e4)continue;$gameTemp[_0x2b40ce(0x715)](_0x28f4e4,_0x3c6277);}_0x3a213c[_0x2b40ce(0x923)]&&_0x12d8e8&&(_0x12d8e8[_0x2b40ce(0x8f9)](0x1),_0x12d8e8[_0x2b40ce(0xb13)]('battleBalloon'));}),PluginManager[_0x1cc45e(0x68e)](pluginData[_0x1cc45e(0xc4e)],_0x1cc45e(0x964),_0x1be8fb=>{const _0x3b1737=_0x1cc45e;if(!SceneManager['isSceneBattle']())return;if(!Imported[_0x3b1737(0x21d)])return;VisuMZ['ConvertParams'](_0x1be8fb,_0x1be8fb);const _0x9df44a=$gameTemp['getLastPluginCommandInterpreter'](),_0x3d65ee=VisuMZ[_0x3b1737(0x220)](_0x1be8fb[_0x3b1737(0x932)]),_0x414ee1=_0x1be8fb['IconIndex'];for(const _0x326ebc of _0x3d65ee){if(!_0x326ebc)continue;$gameTemp[_0x3b1737(0x715)](_0x326ebc,[_0x414ee1]);}_0x1be8fb[_0x3b1737(0x923)]&&_0x9df44a&&(_0x9df44a[_0x3b1737(0x8f9)](0x1),_0x9df44a[_0x3b1737(0xb13)]('battleBalloon'));}),PluginManager[_0x1cc45e(0x68e)](pluginData[_0x1cc45e(0xc4e)],_0x1cc45e(0x8a9),_0x3e580=>{const _0x4895fe=_0x1cc45e;if(!SceneManager[_0x4895fe(0x499)]())return;if(!Imported['VisuMZ_4_IconBalloons'])return;VisuMZ[_0x4895fe(0x796)](_0x3e580,_0x3e580);const _0xd176a3=$gameTemp[_0x4895fe(0x92f)](),_0x1d9ddf=VisuMZ[_0x4895fe(0x220)](_0x3e580[_0x4895fe(0x932)]),_0x7f91ec=Math[_0x4895fe(0x6cb)](Number(_0x3e580['startIcon']||0x0),Number(_0x3e580['endIcon']||0x0)),_0x981040=Math['max'](Number(_0x3e580[_0x4895fe(0x520)]||0x0),Number(_0x3e580[_0x4895fe(0x9b0)]||0x0)),_0x5f46fb=[];for(let _0x4dc3bd=_0x7f91ec;_0x4dc3bd<=_0x981040;_0x4dc3bd++){_0x5f46fb['push'](_0x4dc3bd);}for(const _0x5ba311 of _0x1d9ddf){if(!_0x5ba311)continue;$gameTemp[_0x4895fe(0x715)](_0x5ba311,_0x5f46fb);}_0x3e580[_0x4895fe(0x923)]&&_0xd176a3&&(_0xd176a3[_0x4895fe(0x8f9)](0x1),_0xd176a3['setWaitMode'](_0x4895fe(0xa2d)));}),PluginManager[_0x1cc45e(0x68e)](pluginData['name'],_0x1cc45e(0x56f),_0x3b2145=>{const _0x178d50=_0x1cc45e;if(!SceneManager[_0x178d50(0x499)]())return;if(!Imported['VisuMZ_4_IconBalloons'])return;VisuMZ[_0x178d50(0x796)](_0x3b2145,_0x3b2145);const _0x1ab941=$gameTemp['getLastPluginCommandInterpreter'](),_0x398385=VisuMZ['CreateActionSequenceTargets'](_0x3b2145[_0x178d50(0x932)]),_0x2fc6ae=_0x3b2145[_0x178d50(0x4d0)];for(const _0x3305b9 of _0x398385){if(!_0x3305b9)continue;$gameTemp[_0x178d50(0x715)](_0x3305b9,_0x2fc6ae);}_0x3b2145[_0x178d50(0x923)]&&_0x1ab941&&(_0x1ab941[_0x178d50(0x8f9)](0x1),_0x1ab941[_0x178d50(0xb13)](_0x178d50(0xa2d)));}),PluginManager[_0x1cc45e(0x68e)](pluginData[_0x1cc45e(0xc4e)],'ActSeq_Animation_CastAnimation',_0x551a05=>{const _0x313d6d=_0x1cc45e;if(!SceneManager['isSceneBattle']())return;VisuMZ[_0x313d6d(0x796)](_0x551a05,_0x551a05);const _0x244517=$gameTemp[_0x313d6d(0x92f)](),_0x3cf36f=BattleManager[_0x313d6d(0xa8b)],_0x54356f=_0x551a05[_0x313d6d(0x7a2)],_0x389a61=VisuMZ[_0x313d6d(0x220)](_0x551a05[_0x313d6d(0x932)]);if(!_0x244517||!_0x3cf36f)return;if(!_0x3cf36f['item']())return;for(const _0xbbff6c of _0x389a61){if(!_0xbbff6c)continue;_0xbbff6c['performCastAnimation'](_0x3cf36f,_0x54356f);}if(_0x551a05[_0x313d6d(0x7cd)])_0x244517[_0x313d6d(0xb13)](_0x313d6d(0xab6));}),PluginManager[_0x1cc45e(0x68e)](pluginData[_0x1cc45e(0xc4e)],_0x1cc45e(0x8a2),_0x1c0b0a=>{const _0x3ae0cd=_0x1cc45e;VisuMZ[_0x3ae0cd(0x796)](_0x1c0b0a,_0x1c0b0a);const _0x26280f=$gameTemp[_0x3ae0cd(0x92f)](),_0x3bf7ec=VisuMZ['CreateActionSequenceTargets'](_0x1c0b0a[_0x3ae0cd(0x932)]),_0x4e110d=_0x1c0b0a[_0x3ae0cd(0x86f)];if(!_0x4e110d)return;for(const _0x10bc83 of _0x3bf7ec){if(!_0x10bc83)continue;if(!_0x10bc83['isActor']())continue;_0x10bc83[_0x3ae0cd(0x288)](_0x4e110d);}}),PluginManager[_0x1cc45e(0x68e)](pluginData[_0x1cc45e(0xc4e)],_0x1cc45e(0x7f2),_0x461d99=>{const _0x5a30ab=_0x1cc45e;VisuMZ[_0x5a30ab(0x796)](_0x461d99,_0x461d99);const _0x437906=_0x461d99[_0x5a30ab(0x3e7)](),_0x224695=$gameActors[_0x5a30ab(0x72d)](_0x437906)||null;if(!_0x224695){console[_0x5a30ab(0xbc6)]('NO\x20ACTOR\x20FOUND!');return;}const _0x7263e6=_0x461d99[_0x5a30ab(0x6f9)]();_0x224695['setBattlePortrait'](_0x7263e6);}),PluginManager['registerCommand'](pluginData[_0x1cc45e(0xc4e)],_0x1cc45e(0x66a),_0x53f841=>{const _0x5a2348=_0x1cc45e;if(!SceneManager[_0x5a2348(0x499)]())return;VisuMZ[_0x5a2348(0x796)](_0x53f841,_0x53f841);const _0x2a61fa=$gameTemp[_0x5a2348(0x92f)](),_0xc2bdbf=BattleManager[_0x5a2348(0x301)],_0x3ad442=VisuMZ[_0x5a2348(0x220)](_0x53f841[_0x5a2348(0x932)]),_0x18b225=_0x53f841[_0x5a2348(0x7a2)];if(!_0x2a61fa||!_0xc2bdbf)return;const _0xf31099=$dataSkills[_0xc2bdbf['guardSkillId']()],_0xc59919=_0xf31099[_0x5a2348(0x1c8)];$gameTemp['requestAnimation'](_0x3ad442,_0xc59919,_0x18b225),_0x53f841[_0x5a2348(0x7cd)]&&_0x2a61fa[_0x5a2348(0xb13)](_0x5a2348(0xab6));}),PluginManager[_0x1cc45e(0x68e)](pluginData[_0x1cc45e(0xc4e)],_0x1cc45e(0xaaa),_0x2dd8a4=>{const _0x102d0e=_0x1cc45e;if(!SceneManager[_0x102d0e(0x499)]())return;VisuMZ[_0x102d0e(0x796)](_0x2dd8a4,_0x2dd8a4);const _0x185ad6=$gameTemp[_0x102d0e(0x92f)](),_0xef9fc3=VisuMZ[_0x102d0e(0x220)](_0x2dd8a4['Targets']),_0x238fbc=Number(_0x2dd8a4[_0x102d0e(0x69b)]||0x1),_0x3608c6=$dataItems[_0x238fbc],_0x10ef7e=_0x2dd8a4[_0x102d0e(0x7a2)];if(!_0x185ad6)return;if(!_0x3608c6)return;let _0x5d5c27=_0x3608c6[_0x102d0e(0x1c8)];$gameTemp[_0x102d0e(0xa84)](_0xef9fc3,_0x5d5c27,_0x10ef7e),_0x2dd8a4[_0x102d0e(0x7cd)]&&_0x185ad6[_0x102d0e(0xb13)](_0x102d0e(0xab6));}),PluginManager[_0x1cc45e(0x68e)](pluginData['name'],'ActSeq_Animation_PlayAtCoordinate',_0x45f80d=>{const _0x58cc8f=_0x1cc45e;if(!SceneManager[_0x58cc8f(0x659)])return;if(!SceneManager['_scene']['_spriteset'])return;if(!Imported[_0x58cc8f(0x598)])return;VisuMZ[_0x58cc8f(0x796)](_0x45f80d,_0x45f80d);const _0x439249=$gameTemp[_0x58cc8f(0x92f)](),_0x26c159=Math[_0x58cc8f(0xb4b)](_0x45f80d[_0x58cc8f(0x346)]),_0x23540c=Math[_0x58cc8f(0xb4b)](_0x45f80d['pointY']);$gameTemp['requestPointAnimation'](_0x26c159,_0x23540c,_0x45f80d['AnimationID'],_0x45f80d[_0x58cc8f(0x7a2)],_0x45f80d[_0x58cc8f(0x3af)]),_0x45f80d[_0x58cc8f(0x923)]&&_0x439249&&(SceneManager[_0x58cc8f(0x659)][_0x58cc8f(0x2e6)][_0x58cc8f(0x97c)](),_0x439249[_0x58cc8f(0xb13)](_0x58cc8f(0xab6)));}),PluginManager[_0x1cc45e(0x68e)](pluginData[_0x1cc45e(0xc4e)],_0x1cc45e(0x5c3),_0xcf011c=>{const _0xcd400e=_0x1cc45e;if(!SceneManager[_0xcd400e(0x499)]())return;VisuMZ[_0xcd400e(0x796)](_0xcf011c,_0xcf011c);const _0x1a70e0=$gameTemp['getLastPluginCommandInterpreter'](),_0x8b339e=VisuMZ['CreateActionSequenceTargets'](_0xcf011c['Targets']),_0x62b162=_0xcf011c['AnimationID'],_0x13a28f=_0xcf011c['Mirror'];if(!_0x1a70e0)return;$gameTemp[_0xcd400e(0xa84)](_0x8b339e,_0x62b162,_0x13a28f);if(_0xcf011c['WaitForAnimation'])_0x1a70e0[_0xcd400e(0xb13)](_0xcd400e(0xab6));}),PluginManager[_0x1cc45e(0x68e)](pluginData[_0x1cc45e(0xc4e)],'ActSeq_Animation_ShowAnimationJS',_0x25582e=>{const _0x5641fb=_0x1cc45e;if(!SceneManager[_0x5641fb(0x499)]())return;VisuMZ[_0x5641fb(0x796)](_0x25582e,_0x25582e);const _0x31af48=$gameTemp[_0x5641fb(0x92f)](),_0x451147=VisuMZ[_0x5641fb(0x220)](_0x25582e[_0x5641fb(0x932)]),_0x49e6ce=Number(_0x25582e['AnimationID'])||0x1,_0x304559=_0x25582e[_0x5641fb(0x7a2)];if(!_0x31af48)return;$gameTemp[_0x5641fb(0xa84)](_0x451147,_0x49e6ce,_0x304559);if(_0x25582e[_0x5641fb(0x7cd)])_0x31af48[_0x5641fb(0xb13)]('battleAnimation');}),PluginManager[_0x1cc45e(0x68e)](pluginData[_0x1cc45e(0xc4e)],'ActSeq_Animation_SkillAnimation',_0x1afc30=>{const _0xc7aa4=_0x1cc45e;if(!SceneManager[_0xc7aa4(0x499)]())return;VisuMZ[_0xc7aa4(0x796)](_0x1afc30,_0x1afc30);const _0x20733b=$gameTemp['getLastPluginCommandInterpreter'](),_0xaa261f=VisuMZ[_0xc7aa4(0x220)](_0x1afc30['Targets']),_0x391d49=Number(_0x1afc30[_0xc7aa4(0x596)]||0x1),_0x4a8229=$dataSkills[_0x391d49],_0x8bf334=_0x1afc30[_0xc7aa4(0x7a2)];if(!_0x20733b)return;if(!_0x4a8229)return;let _0x18bea2=_0x4a8229['animationId'];$gameTemp[_0xc7aa4(0xa84)](_0xaa261f,_0x18bea2,_0x8bf334),_0x1afc30['WaitForAnimation']&&_0x20733b['setWaitMode'](_0xc7aa4(0xab6));}),PluginManager['registerCommand'](pluginData[_0x1cc45e(0xc4e)],_0x1cc45e(0x832),_0x29ebc1=>{const _0xc7bfe2=_0x1cc45e;if(!SceneManager[_0xc7bfe2(0x499)]())return;const _0x4a5d6b=$gameTemp[_0xc7bfe2(0x92f)]();if(!_0x4a5d6b)return;_0x4a5d6b[_0xc7bfe2(0xb13)](_0xc7bfe2(0xab6));}),PluginManager[_0x1cc45e(0x68e)](pluginData['name'],_0x1cc45e(0xac5),_0x7a6be6=>{const _0x3fdadd=_0x1cc45e;if(!SceneManager[_0x3fdadd(0x499)]())return;VisuMZ[_0x3fdadd(0x796)](_0x7a6be6,_0x7a6be6);const _0x3e3d7d=BattleManager['_logWindow'],_0x312c25=_0x7a6be6[_0x3fdadd(0x91b)]&&Imported[_0x3fdadd(0x3cc)];_0x3e3d7d[_0x3fdadd(0x64e)](_0x7a6be6['Text']),_0x312c25&&Imported[_0x3fdadd(0x3cc)]&&$gameSystem[_0x3fdadd(0x8ee)](_0x7a6be6['Text']||'',_0x7a6be6[_0x3fdadd(0x928)]||0x0);}),PluginManager[_0x1cc45e(0x68e)](pluginData['name'],_0x1cc45e(0x3f9),_0x87567c=>{const _0x66307c=_0x1cc45e;if(!SceneManager[_0x66307c(0x499)]())return;const _0x5412a7=BattleManager[_0x66307c(0xc9e)];_0x5412a7[_0x66307c(0x52a)]();}),PluginManager[_0x1cc45e(0x68e)](pluginData[_0x1cc45e(0xc4e)],'ActSeq_BattleLog_DisplayAction',_0x5d6318=>{const _0x16844e=_0x1cc45e;if(!SceneManager[_0x16844e(0x499)]())return;const _0x4dabf7=$gameTemp[_0x16844e(0x92f)](),_0x513724=BattleManager[_0x16844e(0xa8b)],_0x40bab2=BattleManager[_0x16844e(0x301)],_0x295953=BattleManager[_0x16844e(0xc9e)];if(!_0x4dabf7||!_0x513724||!_0x40bab2)return;if(!_0x513724['item']())return;_0x295953[_0x16844e(0x4df)](_0x40bab2,_0x513724['item']()),_0x4dabf7['setWaitMode']('battlelog');}),PluginManager['registerCommand'](pluginData[_0x1cc45e(0xc4e)],'ActSeq_BattleLog_PopBaseLine',_0x3f20f2=>{const _0x58de1e=_0x1cc45e;if(!SceneManager['isSceneBattle']())return;const _0x676800=BattleManager['_logWindow'];_0x676800[_0x58de1e(0x398)]();}),PluginManager['registerCommand'](pluginData['name'],_0x1cc45e(0x52e),_0x50252d=>{const _0x8a6858=_0x1cc45e;if(!SceneManager[_0x8a6858(0x499)]())return;const _0x594cf4=BattleManager[_0x8a6858(0xc9e)];_0x594cf4[_0x8a6858(0x58c)]();}),PluginManager[_0x1cc45e(0x68e)](pluginData[_0x1cc45e(0xc4e)],_0x1cc45e(0x3e8),_0x22e498=>{const _0xcf7236=_0x1cc45e;if(!SceneManager[_0xcf7236(0x499)]())return;const _0x3a89fc=BattleManager['_logWindow'];_0x3a89fc[_0xcf7236(0x299)]();}),PluginManager[_0x1cc45e(0x68e)](pluginData[_0x1cc45e(0xc4e)],_0x1cc45e(0xc25),_0xd6d401=>{const _0x33a1fd=_0x1cc45e;if(!SceneManager[_0x33a1fd(0x499)]())return;VisuMZ[_0x33a1fd(0x796)](_0xd6d401,_0xd6d401),SceneManager[_0x33a1fd(0x659)][_0x33a1fd(0x9d9)](_0xd6d401[_0x33a1fd(0xad5)]);}),PluginManager[_0x1cc45e(0x68e)](pluginData[_0x1cc45e(0xc4e)],'ActSeq_BattleLog_WaitForBattleLog',_0x2f14cd=>{const _0x1b7f01=_0x1cc45e;if(!SceneManager[_0x1b7f01(0x499)]())return;const _0x4b3a43=$gameTemp[_0x1b7f01(0x92f)]();_0x4b3a43[_0x1b7f01(0xb13)]('battlelog');}),PluginManager['registerCommand'](pluginData[_0x1cc45e(0xc4e)],'ActSeq_BattleLog_WaitForNewLine',_0x362eaf=>{const _0x1cfa87=_0x1cc45e;if(!SceneManager[_0x1cfa87(0x499)]())return;const _0x2da95b=$gameTemp[_0x1cfa87(0x92f)](),_0x5315e5=BattleManager[_0x1cfa87(0xc9e)];_0x5315e5[_0x1cfa87(0x36c)](),_0x2da95b[_0x1cfa87(0xb13)](_0x1cfa87(0x321));}),PluginManager[_0x1cc45e(0x68e)](pluginData[_0x1cc45e(0xc4e)],'ActSeq_Camera_Clamp',_0xd1830b=>{const _0x1fe161=_0x1cc45e;if(!SceneManager[_0x1fe161(0x499)]())return;if(!Imported[_0x1fe161(0xa81)])return;VisuMZ[_0x1fe161(0x796)](_0xd1830b,_0xd1830b);const _0x591963=$gameScreen[_0x1fe161(0x5e7)]();_0x591963[_0x1fe161(0x3e0)]=_0xd1830b[_0x1fe161(0x467)];}),PluginManager[_0x1cc45e(0x68e)](pluginData['name'],_0x1cc45e(0x5c7),_0x393e95=>{const _0x22088c=_0x1cc45e;if(!SceneManager[_0x22088c(0x499)]())return;if(!Imported[_0x22088c(0xa81)])return;VisuMZ[_0x22088c(0x796)](_0x393e95,_0x393e95);const _0x5c3ffa=$gameTemp[_0x22088c(0x92f)](),_0x5099ff=_0x393e95[_0x22088c(0x8c3)];$gameScreen[_0x22088c(0x39f)](_0x393e95['FocusX'],_0x393e95['FocusY'],_0x393e95['Duration'],_0x393e95[_0x22088c(0xc22)]);if(_0x5099ff)_0x5c3ffa[_0x22088c(0xb13)](_0x22088c(0x5e2));}),PluginManager[_0x1cc45e(0x68e)](pluginData[_0x1cc45e(0xc4e)],_0x1cc45e(0x60c),_0xdc1052=>{const _0x23c1f6=_0x1cc45e;if(!SceneManager[_0x23c1f6(0x499)]())return;if(!Imported[_0x23c1f6(0xa81)])return;VisuMZ[_0x23c1f6(0x796)](_0xdc1052,_0xdc1052);const _0x5c2898=$gameTemp[_0x23c1f6(0x92f)](),_0x1b3c28=VisuMZ[_0x23c1f6(0x220)](_0xdc1052[_0x23c1f6(0x932)]),_0x529a5f=_0xdc1052['WaitForCamera'];$gameScreen[_0x23c1f6(0x9fb)](_0x1b3c28,_0xdc1052[_0x23c1f6(0xb0f)],_0xdc1052[_0x23c1f6(0xc22)]);if(_0x529a5f)_0x5c2898[_0x23c1f6(0xb13)](_0x23c1f6(0x5e2));}),PluginManager[_0x1cc45e(0x68e)](pluginData['name'],_0x1cc45e(0x563),_0x1e63ee=>{const _0x511060=_0x1cc45e;if(!SceneManager[_0x511060(0x499)]())return;if(!Imported[_0x511060(0xa81)])return;VisuMZ[_0x511060(0x796)](_0x1e63ee,_0x1e63ee);const _0x2cda3b=$gameTemp[_0x511060(0x92f)](),_0x1c3982=_0x1e63ee[_0x511060(0x8c3)];$gameScreen['setBattleCameraOffset'](_0x1e63ee[_0x511060(0x564)],_0x1e63ee[_0x511060(0x6e0)],_0x1e63ee[_0x511060(0xb0f)],_0x1e63ee[_0x511060(0xc22)]);if(_0x1c3982)_0x2cda3b[_0x511060(0xb13)](_0x511060(0x5e2));}),PluginManager[_0x1cc45e(0x68e)](pluginData[_0x1cc45e(0xc4e)],'ActSeq_Camera_Reset',_0x26dc41=>{const _0x167231=_0x1cc45e;if(!SceneManager['isSceneBattle']())return;if(!Imported[_0x167231(0xa81)])return;VisuMZ[_0x167231(0x796)](_0x26dc41,_0x26dc41);const _0x1db899=$gameTemp[_0x167231(0x92f)](),_0x61171a=_0x26dc41['ResetFocus'],_0x4c2630=_0x26dc41[_0x167231(0x57a)],_0x520daf=_0x26dc41['WaitForCamera'];if(_0x61171a){const _0xd43725=Math[_0x167231(0xb4b)](Graphics['width']/0x2),_0x124eb1=Math[_0x167231(0xb4b)](Graphics[_0x167231(0x20f)]/0x2);$gameScreen['setBattleCameraPoint'](_0xd43725,_0x124eb1,_0x26dc41[_0x167231(0xb0f)],_0x26dc41[_0x167231(0xc22)]);}_0x4c2630&&$gameScreen['setBattleCameraOffset'](0x0,0x0,_0x26dc41[_0x167231(0xb0f)],_0x26dc41[_0x167231(0xc22)]);if(_0x520daf)_0x1db899[_0x167231(0xb13)]('battleCamera');}),PluginManager[_0x1cc45e(0x68e)](pluginData[_0x1cc45e(0xc4e)],_0x1cc45e(0x779),_0x4ec4a8=>{const _0x248f78=_0x1cc45e;if(!SceneManager[_0x248f78(0x499)]())return;if(!Imported[_0x248f78(0xa81)])return;const _0x4ed28f=$gameTemp['getLastPluginCommandInterpreter']();if(!_0x4ed28f)return;_0x4ed28f['setWaitMode'](_0x248f78(0x5e2));}),VisuMZ[_0x1cc45e(0x2c5)]['CreateCutinSettings']=function(_0x224c63){const _0x29ef04=_0x1cc45e;_0x224c63['portraitFilename']='';const _0x5ad666=VisuMZ[_0x29ef04(0x607)][_0x29ef04(0xbb4)](_0x224c63),_0x425218=VisuMZ['CreateActionSequenceTargets'](_0x224c63[_0x29ef04(0x932)])[0x0]||null;return _0x425218&&(_0x5ad666[_0x29ef04(0x2a9)]=_0x425218[_0x29ef04(0xbd7)](),_0x5ad666[_0x29ef04(0xa7d)]=_0x425218[_0x29ef04(0x366)](),_0x5ad666[_0x29ef04(0x5d8)]=_0x425218[_0x29ef04(0x90a)](),_0x5ad666[_0x29ef04(0x9af)]=_0x425218[_0x29ef04(0x971)](),_0x425218['isEnemy']()&&(_0x425218[_0x29ef04(0xad9)]()&&(_0x5ad666[_0x29ef04(0xca4)]=!_0x5ad666[_0x29ef04(0xca4)]),_0x425218[_0x29ef04(0x555)]()&&(_0x5ad666['portraitFlipVert']=!_0x5ad666[_0x29ef04(0x48d)]),_0x5ad666['portraitType']===_0x29ef04(0xb49)&&(_0x5ad666[_0x29ef04(0xca4)]=!_0x5ad666['portraitFlipHorz']),_0x224c63[_0x29ef04(0x362)][_0x29ef04(0x93b)]&&(_0x5ad666[_0x29ef04(0x4ed)]*=-0x1),_0x224c63[_0x29ef04(0x362)][_0x29ef04(0x72e)]&&(_0x5ad666[_0x29ef04(0x996)]*=-0x1),_0x5ad666[_0x29ef04(0x649)]+=_0x224c63[_0x29ef04(0x362)][_0x29ef04(0xaad)]??0x0)),_0x5ad666;},PluginManager[_0x1cc45e(0x68e)](pluginData['name'],_0x1cc45e(0xb06),_0x190772=>{const _0x4e9200=_0x1cc45e;if(!SceneManager[_0x4e9200(0x499)]())return;if(!Imported[_0x4e9200(0x55a)])return;VisuMZ[_0x4e9200(0x796)](_0x190772,_0x190772);const _0x57aa8c=VisuMZ[_0x4e9200(0x2c5)][_0x4e9200(0xbb4)](_0x190772);SceneManager[_0x4e9200(0x659)][_0x4e9200(0xb48)](_0x57aa8c);const _0x233c07=$gameTemp[_0x4e9200(0x92f)]();_0x233c07&&_0x190772[_0x4e9200(0xb69)]&&_0x233c07[_0x4e9200(0xb13)](_0x4e9200(0x674));}),PluginManager[_0x1cc45e(0x68e)](pluginData[_0x1cc45e(0xc4e)],_0x1cc45e(0x4e1),_0x41f31d=>{const _0x38606b=_0x1cc45e;if(!SceneManager[_0x38606b(0x499)]())return;if(!Imported['VisuMZ_3_VisualCutinEffect'])return;VisuMZ[_0x38606b(0x796)](_0x41f31d,_0x41f31d),SceneManager[_0x38606b(0x659)][_0x38606b(0x4de)]();const _0x50b666=$gameTemp[_0x38606b(0x92f)]();_0x50b666&&_0x41f31d[_0x38606b(0x276)]&&_0x50b666[_0x38606b(0xb13)](_0x38606b(0x7bb));}),PluginManager['registerCommand'](pluginData['name'],_0x1cc45e(0x865),_0x4ff8e4=>{const _0x4b1998=_0x1cc45e;if(!SceneManager[_0x4b1998(0x499)]())return;if(!Imported[_0x4b1998(0x55a)])return;VisuMZ[_0x4b1998(0x796)](_0x4ff8e4,_0x4ff8e4);const _0x10e9d0=_0x4ff8e4[_0x4b1998(0x729)][_0x4b1998(0xbb5)]()[_0x4b1998(0xc8e)]();SceneManager[_0x4b1998(0x659)][_0x4b1998(0x664)](_0x10e9d0);const _0x27cad4=$gameTemp[_0x4b1998(0x92f)]();_0x27cad4&&_0x4ff8e4['WaitForExit']&&_0x27cad4[_0x4b1998(0xb13)](_0x4b1998(0x7bb));}),PluginManager[_0x1cc45e(0x68e)](pluginData['name'],'ActSeq_Cutin_WaitForEntrance',_0x1b73e1=>{const _0x4d5eed=_0x1cc45e;if(!SceneManager[_0x4d5eed(0x499)]())return;if(!Imported[_0x4d5eed(0x55a)])return;const _0x5f36dc=$gameTemp[_0x4d5eed(0x92f)]();_0x5f36dc[_0x4d5eed(0xb13)](_0x4d5eed(0x674));}),PluginManager[_0x1cc45e(0x68e)](pluginData[_0x1cc45e(0xc4e)],'ActSeq_Cutin_WaitForExit',_0x433356=>{const _0x3e853e=_0x1cc45e;if(!SceneManager[_0x3e853e(0x499)]())return;if(!Imported[_0x3e853e(0x55a)])return;const _0x54455f=$gameTemp[_0x3e853e(0x92f)]();_0x54455f[_0x3e853e(0xb13)](_0x3e853e(0x7bb));}),PluginManager['registerCommand'](pluginData[_0x1cc45e(0xc4e)],_0x1cc45e(0x657),_0x3a118f=>{const _0x7e22c0=_0x1cc45e;if(!SceneManager[_0x7e22c0(0x499)]())return;if(!Imported['VisuMZ_2_DragonbonesUnion'])return;VisuMZ[_0x7e22c0(0x796)](_0x3a118f,_0x3a118f);const _0x47d442=VisuMZ[_0x7e22c0(0x220)](_0x3a118f[_0x7e22c0(0x932)]),_0x263c60=_0x3a118f[_0x7e22c0(0xbe5)][_0x7e22c0(0xbb5)]()[_0x7e22c0(0xc8e)]();for(const _0x4659cb of _0x47d442){if(!_0x4659cb)continue;_0x4659cb[_0x7e22c0(0x1e2)](_0x263c60);}}),PluginManager[_0x1cc45e(0x68e)](pluginData['name'],_0x1cc45e(0x337),_0x2b2d92=>{const _0x251d89=_0x1cc45e;if(!SceneManager['isSceneBattle']())return;if(!Imported[_0x251d89(0x5a3)])return;VisuMZ[_0x251d89(0x796)](_0x2b2d92,_0x2b2d92);const _0x44ec5c=VisuMZ[_0x251d89(0x220)](_0x2b2d92[_0x251d89(0x932)]),_0x266040=_0x2b2d92[_0x251d89(0x355)];for(const _0x1d94a8 of _0x44ec5c){if(!_0x1d94a8)continue;_0x1d94a8[_0x251d89(0xbe8)]()[_0x251d89(0xbd9)]=_0x266040;}}),PluginManager[_0x1cc45e(0x68e)](pluginData['name'],_0x1cc45e(0x99e),_0x2556e1=>{const _0x315518=_0x1cc45e;if(!SceneManager[_0x315518(0x499)]())return;if(!Imported['VisuMZ_1_ElementStatusCore'])return;VisuMZ[_0x315518(0x796)](_0x2556e1,_0x2556e1);const _0x3259a4=BattleManager[_0x315518(0xa8b)],_0x30c7ff=_0x2556e1['Elements'];if(!_0x3259a4)return;_0x3259a4[_0x315518(0x372)]=_0x30c7ff;}),PluginManager['registerCommand'](pluginData[_0x1cc45e(0xc4e)],_0x1cc45e(0x65b),_0x503f94=>{const _0xec2646=_0x1cc45e;if(!SceneManager['isSceneBattle']())return;if(!Imported['VisuMZ_1_ElementStatusCore'])return;const _0x1361e3=BattleManager[_0xec2646(0xa8b)];if(!_0x1361e3)return;_0x1361e3[_0xec2646(0x1f5)]();}),PluginManager[_0x1cc45e(0x68e)](pluginData[_0x1cc45e(0xc4e)],_0x1cc45e(0x8d6),_0x26b749=>{const _0x317a59=_0x1cc45e;if(!SceneManager[_0x317a59(0x499)]())return;if(!Imported['VisuMZ_1_ElementStatusCore'])return;VisuMZ['ConvertParams'](_0x26b749,_0x26b749);const _0x56c67e=BattleManager[_0x317a59(0xa8b)],_0x2e20a8=_0x26b749['Elements'];if(!_0x56c67e)return;_0x56c67e['_battleCoreForcedElements']=_0x2e20a8;}),PluginManager['registerCommand'](pluginData[_0x1cc45e(0xc4e)],'ActSeq_Element_NullElements',_0x5db9c5=>{const _0x17d6f9=_0x1cc45e;if(!SceneManager[_0x17d6f9(0x499)]())return;if(!Imported['VisuMZ_1_ElementStatusCore'])return;const _0x4267b6=BattleManager[_0x17d6f9(0xa8b)];if(!_0x4267b6)return;_0x4267b6[_0x17d6f9(0xcbd)]=!![];}),PluginManager['registerCommand'](pluginData[_0x1cc45e(0xc4e)],_0x1cc45e(0x823),_0x1b1d2b=>{const _0x1d0c38=_0x1cc45e;VisuMZ[_0x1d0c38(0xb96)][_0x1d0c38(0x823)](_0x1b1d2b);}),PluginManager[_0x1cc45e(0x68e)](pluginData[_0x1cc45e(0xc4e)],_0x1cc45e(0x4e8),_0x20e17f=>{const _0x1ca346=_0x1cc45e;VisuMZ['BattleGridSystem'][_0x1ca346(0x4e8)](_0x20e17f);}),PluginManager[_0x1cc45e(0x68e)](pluginData[_0x1cc45e(0xc4e)],_0x1cc45e(0x6b1),_0x5e732c=>{const _0x2d5af4=_0x1cc45e;VisuMZ[_0x2d5af4(0xb96)][_0x2d5af4(0x6b1)](_0x5e732c);}),PluginManager[_0x1cc45e(0x68e)](pluginData[_0x1cc45e(0xc4e)],_0x1cc45e(0x986),_0x3d214a=>{const _0x29b2b0=_0x1cc45e;VisuMZ[_0x29b2b0(0xb96)][_0x29b2b0(0x6b1)](_0x3d214a);}),PluginManager['registerCommand'](pluginData[_0x1cc45e(0xc4e)],_0x1cc45e(0x6fc),_0x593b7b=>{const _0x372cf0=_0x1cc45e;VisuMZ[_0x372cf0(0xb96)][_0x372cf0(0x6fc)](_0x593b7b);}),PluginManager[_0x1cc45e(0x68e)](pluginData[_0x1cc45e(0xc4e)],_0x1cc45e(0x75d),_0x48538e=>{const _0x2a8e08=_0x1cc45e;VisuMZ[_0x2a8e08(0xb96)][_0x2a8e08(0x75d)](_0x48538e);}),PluginManager[_0x1cc45e(0x68e)](pluginData[_0x1cc45e(0xc4e)],_0x1cc45e(0x3d8),_0x7482d7=>{const _0x307e40=_0x1cc45e;VisuMZ[_0x307e40(0xb96)][_0x307e40(0x3d8)](_0x7482d7);}),PluginManager[_0x1cc45e(0x68e)](pluginData[_0x1cc45e(0xc4e)],_0x1cc45e(0x974),_0x4d56a2=>{VisuMZ['BattleGridSystem']['ActSeq_Grid_ClearPassiveStatesFromNode'](_0x4d56a2);}),PluginManager[_0x1cc45e(0x68e)](pluginData[_0x1cc45e(0xc4e)],'ActSeq_Grid_MoveTargetsInDirection',_0x43856d=>{const _0xdec80=_0x1cc45e;VisuMZ['BattleGridSystem'][_0xdec80(0x31d)](_0x43856d);}),PluginManager[_0x1cc45e(0x68e)](pluginData[_0x1cc45e(0xc4e)],_0x1cc45e(0x691),_0x1ecaef=>{const _0x423007=_0x1cc45e;VisuMZ['BattleGridSystem'][_0x423007(0x691)](_0x1ecaef);}),PluginManager[_0x1cc45e(0x68e)](pluginData['name'],'ActSeq_Grid_PushFromTargetNode',_0x46fcf4=>{const _0x1d0b30=_0x1cc45e;VisuMZ[_0x1d0b30(0xb96)][_0x1d0b30(0x736)](_0x46fcf4);}),PluginManager['registerCommand'](pluginData[_0x1cc45e(0xc4e)],_0x1cc45e(0x3d7),_0x27fff3=>{const _0x3ba283=_0x1cc45e;VisuMZ[_0x3ba283(0xb96)][_0x3ba283(0x3d7)](_0x27fff3);}),PluginManager[_0x1cc45e(0x68e)](pluginData['name'],_0x1cc45e(0x58e),_0x554b5e=>{VisuMZ['BattleGridSystem']['ActSeq_Grid_RemoveTriggerFromNode'](_0x554b5e);}),PluginManager['registerCommand'](pluginData[_0x1cc45e(0xc4e)],_0x1cc45e(0x753),_0x372b9a=>{const _0x24595c=_0x1cc45e;VisuMZ['BattleGridSystem'][_0x24595c(0x753)](_0x372b9a);}),PluginManager['registerCommand'](pluginData[_0x1cc45e(0xc4e)],_0x1cc45e(0x53c),_0x542fab=>{const _0x281342=_0x1cc45e;VisuMZ[_0x281342(0xb96)][_0x281342(0x53c)](_0x542fab);}),PluginManager[_0x1cc45e(0x68e)](pluginData['name'],_0x1cc45e(0x4e2),_0x50bc75=>{const _0x13a93a=_0x1cc45e;if(!Imported[_0x13a93a(0x9da)])return;if(!SceneManager[_0x13a93a(0x499)]())return;VisuMZ['ConvertParams'](_0x50bc75,_0x50bc75);const _0x387f2b=VisuMZ['CreateActionSequenceTargets'](_0x50bc75[_0x13a93a(0x932)]);for(const _0x233a97 of _0x387f2b){if(!_0x233a97)continue;_0x233a97['removeHorrorEffect'](_0x13a93a(0x3d6)),_0x233a97[_0x13a93a(0x2a8)](_0x13a93a(0x27b)),_0x233a97[_0x13a93a(0x2a8)]('tv'),_0x233a97[_0x13a93a(0x942)]();}$gamePlayer[_0x13a93a(0x299)]();}),PluginManager[_0x1cc45e(0x68e)](pluginData[_0x1cc45e(0xc4e)],_0x1cc45e(0x790),_0x76394a=>{const _0x10d519=_0x1cc45e;if(!Imported[_0x10d519(0x9da)])return;if(!SceneManager[_0x10d519(0x499)]())return;VisuMZ[_0x10d519(0x796)](_0x76394a,_0x76394a);const _0x117807=VisuMZ[_0x10d519(0x220)](_0x76394a['Targets']),_0x3c19ee=_0x10d519(0x27b);_0x76394a[_0x10d519(0xa03)]=Math[_0x10d519(0xb4e)](_0x76394a[_0x10d519(0x7cf)]/0x2),_0x76394a[_0x10d519(0x929)]=_0x76394a[_0x10d519(0x7cf)],_0x76394a[_0x10d519(0x850)]=!![];for(const _0x3d54d6 of _0x117807){if(!_0x3d54d6)continue;_0x3d54d6[_0x10d519(0x7e0)](_0x3c19ee,_0x76394a);}$gamePlayer['refresh']();}),PluginManager[_0x1cc45e(0x68e)](pluginData['name'],'ActSeq_Horror_GlitchRemove',_0x4c6654=>{const _0x46cafb=_0x1cc45e;if(!Imported[_0x46cafb(0x9da)])return;if(!SceneManager[_0x46cafb(0x499)]())return;VisuMZ['ConvertParams'](_0x4c6654,_0x4c6654);const _0x36be23=VisuMZ['CreateActionSequenceTargets'](_0x4c6654['Targets']);for(const _0x154a18 of _0x36be23){if(!_0x154a18)continue;_0x154a18['removeHorrorEffect'](_0x46cafb(0x27b));}$gamePlayer[_0x46cafb(0x299)]();}),PluginManager['registerCommand'](pluginData[_0x1cc45e(0xc4e)],'ActSeq_Horror_NoiseCreate',_0x583d03=>{const _0x3e8361=_0x1cc45e;if(!Imported[_0x3e8361(0x9da)])return;if(!SceneManager[_0x3e8361(0x499)]())return;VisuMZ['ConvertParams'](_0x583d03,_0x583d03);const _0x2252c7=VisuMZ[_0x3e8361(0x220)](_0x583d03['Targets']),_0x517c9a=_0x3e8361(0x3d6);for(const _0x2e9bc1 of _0x2252c7){if(!_0x2e9bc1)continue;_0x2e9bc1[_0x3e8361(0x7e0)](_0x517c9a,_0x583d03);}$gamePlayer[_0x3e8361(0x299)]();}),PluginManager[_0x1cc45e(0x68e)](pluginData[_0x1cc45e(0xc4e)],_0x1cc45e(0x37c),_0x122f43=>{const _0x57ae06=_0x1cc45e;if(!Imported[_0x57ae06(0x9da)])return;if(!SceneManager[_0x57ae06(0x499)]())return;VisuMZ[_0x57ae06(0x796)](_0x122f43,_0x122f43);const _0x3490eb=VisuMZ[_0x57ae06(0x220)](_0x122f43[_0x57ae06(0x932)]);for(const _0x798b1e of _0x3490eb){if(!_0x798b1e)continue;_0x798b1e['removeHorrorEffect'](_0x57ae06(0x3d6));}$gamePlayer[_0x57ae06(0x299)]();}),PluginManager[_0x1cc45e(0x68e)](pluginData[_0x1cc45e(0xc4e)],_0x1cc45e(0x335),_0x18b6f1=>{const _0x1bd997=_0x1cc45e;if(!Imported[_0x1bd997(0x9da)])return;if(!SceneManager[_0x1bd997(0x499)]())return;VisuMZ[_0x1bd997(0x796)](_0x18b6f1,_0x18b6f1);const _0x150c5b=VisuMZ['CreateActionSequenceTargets'](_0x18b6f1[_0x1bd997(0x932)]),_0x4d848b='tv';for(const _0x2dfa99 of _0x150c5b){if(!_0x2dfa99)continue;_0x2dfa99['setHorrorEffectSettings'](_0x4d848b,_0x18b6f1);}$gamePlayer[_0x1bd997(0x299)]();}),PluginManager[_0x1cc45e(0x68e)](pluginData[_0x1cc45e(0xc4e)],_0x1cc45e(0x3d1),_0x14d5ef=>{const _0xb8a925=_0x1cc45e;if(!Imported[_0xb8a925(0x9da)])return;if(!SceneManager[_0xb8a925(0x499)]())return;VisuMZ[_0xb8a925(0x796)](_0x14d5ef,_0x14d5ef);const _0x24051e=VisuMZ[_0xb8a925(0x220)](_0x14d5ef[_0xb8a925(0x932)]);for(const _0x849db2 of _0x24051e){if(!_0x849db2)continue;_0x849db2[_0xb8a925(0x2a8)]('tv');}$gamePlayer[_0xb8a925(0x299)]();}),PluginManager[_0x1cc45e(0x68e)](pluginData[_0x1cc45e(0xc4e)],'ActSeq_Impact_BlueRedInvert',_0xd67491=>{const _0x3fe00a=_0x1cc45e;if(!Imported[_0x3fe00a(0x1f0)])return;const _0x578bf5=SceneManager[_0x3fe00a(0x659)][_0x3fe00a(0x2e6)];if(!_0x578bf5)return;if(VisuMZ[_0x3fe00a(0x383)][_0x3fe00a(0x6bc)]<=1.04){alert(_0x3fe00a(0x1e8)),SceneManager[_0x3fe00a(0x5c1)]();return;}VisuMZ['ConvertParams'](_0xd67491,_0xd67491);const _0x3d139c=_0xd67491[_0x3fe00a(0xccb)];_0x578bf5[_0x3fe00a(0x692)](_0x3d139c);}),PluginManager[_0x1cc45e(0x68e)](pluginData[_0x1cc45e(0xc4e)],_0x1cc45e(0x1db),_0x199fd3=>{const _0x2e59c5=_0x1cc45e;if(!SceneManager[_0x2e59c5(0x499)]())return;if(!Imported[_0x2e59c5(0x1f0)])return;const _0x8fc48f=SceneManager[_0x2e59c5(0x659)][_0x2e59c5(0x2e6)];if(!_0x8fc48f)return;VisuMZ[_0x2e59c5(0x796)](_0x199fd3,_0x199fd3);const _0x520866=_0x199fd3[_0x2e59c5(0x7e8)]||0x1,_0x152c19=_0x199fd3[_0x2e59c5(0xb0f)]||0x1,_0x3d425f=_0x199fd3[_0x2e59c5(0xc22)]||'Linear';_0x8fc48f[_0x2e59c5(0x8c9)](_0x520866,_0x152c19,_0x3d425f);}),PluginManager[_0x1cc45e(0x68e)](pluginData['name'],_0x1cc45e(0x83f),_0x34a056=>{const _0x5efbbd=_0x1cc45e;if(!Imported['VisuMZ_3_ActSeqImpact'])return;const _0xdff748=SceneManager[_0x5efbbd(0x659)]['_spriteset'];if(!_0xdff748)return;if(VisuMZ[_0x5efbbd(0x383)][_0x5efbbd(0x6bc)]<=1.04){alert('Action\x20Sequence\x20Impact\x20needs\x20an\x20update!'),SceneManager[_0x5efbbd(0x5c1)]();return;}VisuMZ['ConvertParams'](_0x34a056,_0x34a056);const _0x2855da=_0x34a056['Enable'];_0xdff748[_0x5efbbd(0x86e)](_0x2855da);}),PluginManager['registerCommand'](pluginData[_0x1cc45e(0xc4e)],_0x1cc45e(0xc48),_0x5edde9=>{const _0x11ef1f=_0x1cc45e;if(!SceneManager['isSceneBattle']())return;if(!Imported[_0x11ef1f(0x1f0)])return;const _0x11385e=SceneManager[_0x11ef1f(0x659)][_0x11ef1f(0x2e6)];if(!_0x11385e)return;VisuMZ['ConvertParams'](_0x5edde9,_0x5edde9);const _0x4cd55=Number(_0x5edde9['Angle'])||0x0,_0x142c08=Number(_0x5edde9[_0x11ef1f(0x82e)]),_0xe36e6=_0x5edde9[_0x11ef1f(0xb0f)]||0x1,_0xd729e3=_0x5edde9['EasingType']||_0x11ef1f(0xbfc);_0x11385e[_0x11ef1f(0x4a4)](_0x4cd55,_0x142c08,_0xe36e6,_0xd729e3);}),PluginManager[_0x1cc45e(0x68e)](pluginData[_0x1cc45e(0xc4e)],_0x1cc45e(0xac2),_0x3cadae=>{const _0x2b52dc=_0x1cc45e;if(!SceneManager['isSceneBattle']())return;if(!Imported[_0x2b52dc(0x1f0)])return;const _0x7f3996=SceneManager[_0x2b52dc(0x659)][_0x2b52dc(0x2e6)];if(!_0x7f3996)return;VisuMZ[_0x2b52dc(0x796)](_0x3cadae,_0x3cadae);const _0x8f0c03=Number(_0x3cadae[_0x2b52dc(0x378)])||0x0,_0x123e72=Number(_0x3cadae[_0x2b52dc(0x82e)]),_0x488155=_0x3cadae['Duration']||0x1,_0x1c17e5=_0x3cadae[_0x2b52dc(0xc22)]||'Linear',_0x319ac1=VisuMZ['CreateActionSequenceTargets'](_0x3cadae[_0x2b52dc(0x932)]);for(const _0x9fb991 of _0x319ac1){if(!_0x9fb991)continue;if(!_0x9fb991['battler']())continue;_0x9fb991['battler']()[_0x2b52dc(0x4a4)](_0x8f0c03,_0x123e72,_0x488155,_0x1c17e5);}}),PluginManager[_0x1cc45e(0x68e)](pluginData[_0x1cc45e(0xc4e)],_0x1cc45e(0xa1d),_0xa888f5=>{const _0x330c71=_0x1cc45e;if(!SceneManager['isSceneBattle']())return;if(!Imported[_0x330c71(0x1f0)])return;VisuMZ[_0x330c71(0x796)](_0xa888f5,_0xa888f5);const _0x2fa279={'delay':_0xa888f5[_0x330c71(0x8fe)],'duration':_0xa888f5[_0x330c71(0x275)],'hue':_0xa888f5[_0x330c71(0x8e4)],'opacityStart':_0xa888f5[_0x330c71(0x23b)],'tone':_0xa888f5[_0x330c71(0x559)],'visible':!![]},_0x56e11a=VisuMZ[_0x330c71(0x220)](_0xa888f5[_0x330c71(0x932)]);for(const _0x4aa3fa of _0x56e11a){if(!_0x4aa3fa)continue;_0x4aa3fa[_0x330c71(0x32a)](_0x2fa279);}}),PluginManager[_0x1cc45e(0x68e)](pluginData[_0x1cc45e(0xc4e)],_0x1cc45e(0x45f),_0x1bbbc4=>{const _0x2f7140=_0x1cc45e;if(!SceneManager[_0x2f7140(0x499)]())return;if(!Imported[_0x2f7140(0x1f0)])return;VisuMZ[_0x2f7140(0x796)](_0x1bbbc4,_0x1bbbc4);const _0x4d8203=VisuMZ[_0x2f7140(0x220)](_0x1bbbc4[_0x2f7140(0x932)]);for(const _0x569a8c of _0x4d8203){if(!_0x569a8c)continue;_0x569a8c[_0x2f7140(0xb2b)]();}}),PluginManager['registerCommand'](pluginData[_0x1cc45e(0xc4e)],_0x1cc45e(0x4f9),_0x5a868e=>{const _0x4664b5=_0x1cc45e;if(!Imported[_0x4664b5(0x1f0)])return;const _0xa1d5d5=SceneManager[_0x4664b5(0x659)]['_spriteset'];if(!_0xa1d5d5)return;if(VisuMZ[_0x4664b5(0x383)]['version']<=1.04){alert(_0x4664b5(0x1e8)),SceneManager['exit']();return;}VisuMZ[_0x4664b5(0x796)](_0x5a868e,_0x5a868e);const _0x1b90bd=_0x5a868e[_0x4664b5(0xccb)];_0xa1d5d5[_0x4664b5(0x879)](_0x1b90bd);}),PluginManager[_0x1cc45e(0x68e)](pluginData[_0x1cc45e(0xc4e)],_0x1cc45e(0x2b7),_0x5f0e55=>{const _0x36e2e3=_0x1cc45e;if(!Imported[_0x36e2e3(0x1f0)])return;const _0x4adae4=SceneManager[_0x36e2e3(0x659)][_0x36e2e3(0x2e6)];if(!_0x4adae4)return;if(VisuMZ[_0x36e2e3(0x383)][_0x36e2e3(0x6bc)]<=1.04){alert(_0x36e2e3(0x1e8)),SceneManager[_0x36e2e3(0x5c1)]();return;}VisuMZ[_0x36e2e3(0x796)](_0x5f0e55,_0x5f0e55);const _0x210caf=_0x5f0e55[_0x36e2e3(0xccb)];_0x4adae4['setupOversaturateImpactFilter'](_0x210caf);}),PluginManager[_0x1cc45e(0x68e)](pluginData['name'],'ActSeq_Impact_ShockwavePoint',_0x4be136=>{const _0x5d3e4c=_0x1cc45e;if(!Imported['VisuMZ_3_ActSeqImpact'])return;const _0x32bf20=SceneManager[_0x5d3e4c(0x659)]['_spriteset'];if(!_0x32bf20)return;VisuMZ[_0x5d3e4c(0x796)](_0x4be136,_0x4be136);const _0x22726f=_0x4be136['X']||0x0,_0xcb3d3a=_0x4be136['Y']||0x0,_0x3d2bc1=_0x4be136[_0x5d3e4c(0x899)]||0x0,_0x16714b=_0x4be136[_0x5d3e4c(0x6af)]||0x0,_0xd09bf6=_0x4be136[_0x5d3e4c(0xb0f)]||0x1;_0x32bf20[_0x5d3e4c(0x7d5)](_0x22726f,_0xcb3d3a,_0x3d2bc1,_0x16714b,_0xd09bf6);}),PluginManager[_0x1cc45e(0x68e)](pluginData[_0x1cc45e(0xc4e)],_0x1cc45e(0x5d2),_0x260282=>{const _0x5a6878=_0x1cc45e;if(!SceneManager['isSceneBattle']())return;if(!Imported['VisuMZ_3_ActSeqImpact'])return;const _0x58a923=SceneManager[_0x5a6878(0x659)][_0x5a6878(0x2e6)];if(!_0x58a923)return;VisuMZ[_0x5a6878(0x796)](_0x260282,_0x260282);const _0x34c515=VisuMZ[_0x5a6878(0x220)](_0x260282['Targets']),_0x150041=_0x260282['TargetLocation'],_0x201ea6=_0x260282[_0x5a6878(0x564)]||0x0,_0x527593=_0x260282[_0x5a6878(0x6e0)]||0x0,_0x2955a3=_0x260282[_0x5a6878(0x899)]||0x0,_0x31e9d6=_0x260282['Wave']||0x0,_0x2eae91=_0x260282[_0x5a6878(0xb0f)]||0x1;for(const _0x272632 of _0x34c515){if(!_0x272632)continue;if(!_0x272632[_0x5a6878(0x3ba)]())continue;const _0x4e2f54=_0x272632[_0x5a6878(0x3ba)]();let _0x140e06=_0x4e2f54[_0x5a6878(0x29f)],_0x394f1c=_0x4e2f54[_0x5a6878(0xb2d)];_0x140e06+=(Graphics[_0x5a6878(0x885)]-Graphics[_0x5a6878(0x46e)])/0x2,_0x394f1c+=(Graphics[_0x5a6878(0x20f)]-Graphics[_0x5a6878(0x76d)])/0x2;if(_0x150041['match'](/front/i))_0x140e06+=(_0x272632[_0x5a6878(0x348)]()?0x1:-0x1)*_0x4e2f54[_0x5a6878(0x2cc)]()/0x2;else _0x150041['match'](/back/i)&&(_0x140e06+=(_0x272632[_0x5a6878(0x348)]()?-0x1:0x1)*_0x4e2f54['mainSpriteWidth']()/0x2);if(_0x150041[_0x5a6878(0xc6a)](/head/i))_0x394f1c-=_0x4e2f54[_0x5a6878(0x75e)]();else _0x150041[_0x5a6878(0xc6a)](/center/i)&&(_0x394f1c-=_0x4e2f54['mainSpriteHeight']()/0x2);_0x140e06+=_0x201ea6,_0x394f1c+=_0x527593,_0x58a923[_0x5a6878(0x7d5)](_0x140e06,_0x394f1c,_0x2955a3,_0x31e9d6,_0x2eae91);}}),PluginManager[_0x1cc45e(0x68e)](pluginData[_0x1cc45e(0xc4e)],_0x1cc45e(0xcf0),_0x1e94b5=>{const _0x21e7ba=_0x1cc45e;if(!SceneManager['isSceneBattle']())return;if(!Imported[_0x21e7ba(0x1f0)])return;const _0x826c25=SceneManager[_0x21e7ba(0x659)][_0x21e7ba(0x2e6)];if(!_0x826c25)return;VisuMZ[_0x21e7ba(0x796)](_0x1e94b5,_0x1e94b5);const _0x9bce47=VisuMZ[_0x21e7ba(0x220)](_0x1e94b5['Targets']),_0x115ee8=_0x1e94b5[_0x21e7ba(0xa3f)],_0x2674b6=_0x1e94b5[_0x21e7ba(0x564)]||0x0,_0xc65efd=_0x1e94b5[_0x21e7ba(0x6e0)]||0x0,_0x342113=_0x1e94b5[_0x21e7ba(0x899)]||0x0,_0x314268=_0x1e94b5[_0x21e7ba(0x6af)]||0x0,_0x4376c6=_0x1e94b5['Duration']||0x1,_0x32e358=Math['min'](..._0x9bce47[_0x21e7ba(0x63c)](_0x26c866=>_0x26c866[_0x21e7ba(0x3ba)]()[_0x21e7ba(0x29f)]-_0x26c866['battler']()[_0x21e7ba(0x2cc)]()/0x2)),_0x2e1209=Math[_0x21e7ba(0x485)](..._0x9bce47[_0x21e7ba(0x63c)](_0x4b0fa3=>_0x4b0fa3[_0x21e7ba(0x3ba)]()['_baseX']+_0x4b0fa3[_0x21e7ba(0x3ba)]()[_0x21e7ba(0x2cc)]()/0x2)),_0x975f56=Math[_0x21e7ba(0x6cb)](..._0x9bce47['map'](_0x16205e=>_0x16205e['battler']()[_0x21e7ba(0xb2d)]-_0x16205e['battler']()[_0x21e7ba(0x75e)]())),_0x1e29f8=Math[_0x21e7ba(0x485)](..._0x9bce47[_0x21e7ba(0x63c)](_0x1f4684=>_0x1f4684['battler']()['_baseY'])),_0xaf52ef=_0x9bce47[_0x21e7ba(0x441)](_0x2f68d9=>_0x2f68d9[_0x21e7ba(0x864)]())[_0x21e7ba(0x96d)],_0xeaa0da=_0x9bce47[_0x21e7ba(0x441)](_0xd41a2e=>_0xd41a2e[_0x21e7ba(0x348)]())[_0x21e7ba(0x96d)];let _0xe0104e=0x0,_0x51a19e=0x0;if(_0x115ee8[_0x21e7ba(0xc6a)](/front/i))_0xe0104e=_0xaf52ef>=_0xeaa0da?_0x32e358:_0x2e1209;else{if(_0x115ee8[_0x21e7ba(0xc6a)](/middle/i))_0xe0104e=(_0x32e358+_0x2e1209)/0x2,melee=-0x1;else _0x115ee8[_0x21e7ba(0xc6a)](/back/i)&&(_0xe0104e=_0xaf52ef>=_0xeaa0da?_0x2e1209:_0x32e358);}if(_0x115ee8['match'](/head/i))_0x51a19e=_0x975f56;else{if(_0x115ee8[_0x21e7ba(0xc6a)](/center/i))_0x51a19e=(_0x975f56+_0x1e29f8)/0x2;else _0x115ee8[_0x21e7ba(0xc6a)](/base/i)&&(_0x51a19e=_0x1e29f8);}_0xe0104e+=(Graphics[_0x21e7ba(0x885)]-Graphics[_0x21e7ba(0x46e)])/0x2,_0x51a19e+=(Graphics['height']-Graphics[_0x21e7ba(0x76d)])/0x2,_0xe0104e+=_0x2674b6,_0x51a19e+=_0xc65efd,_0x826c25[_0x21e7ba(0x7d5)](_0xe0104e,_0x51a19e,_0x342113,_0x314268,_0x4376c6);}),PluginManager['registerCommand'](pluginData[_0x1cc45e(0xc4e)],_0x1cc45e(0x892),_0x402adc=>{const _0x470373=_0x1cc45e;if(!Imported[_0x470373(0x1f0)])return;const _0x58cce4=SceneManager[_0x470373(0x659)][_0x470373(0x2e6)];if(!_0x58cce4)return;if(VisuMZ['ActSeqImpact'][_0x470373(0x6bc)]<=1.04){alert(_0x470373(0x1e8)),SceneManager[_0x470373(0x5c1)]();return;}VisuMZ['ConvertParams'](_0x402adc,_0x402adc);const _0x1c5d35=$gameTemp[_0x470373(0x92f)](),_0x2c54a2=Math[_0x470373(0x485)](0.01,_0x402adc['Scale']);$gameTemp[_0x470373(0xcd3)](_0x2c54a2,_0x1c5d35);}),PluginManager[_0x1cc45e(0x68e)](pluginData[_0x1cc45e(0xc4e)],_0x1cc45e(0xaeb),_0x13fcf9=>{const _0x16f747=_0x1cc45e;if(!Imported[_0x16f747(0x1f0)])return;const _0x5888d0=SceneManager[_0x16f747(0x659)][_0x16f747(0x2e6)];if(!_0x5888d0)return;if(VisuMZ['ActSeqImpact'][_0x16f747(0x6bc)]<=1.04){alert(_0x16f747(0x1e8)),SceneManager[_0x16f747(0x5c1)]();return;}VisuMZ[_0x16f747(0x796)](_0x13fcf9,_0x13fcf9);const _0x3803be=$gameTemp[_0x16f747(0x92f)](),_0x57f6d7=_0x13fcf9['ms']||0x1;VisuMZ['ActSeqImpact'][_0x16f747(0x7ee)](_0x57f6d7,_0x3803be);}),PluginManager[_0x1cc45e(0x68e)](pluginData[_0x1cc45e(0xc4e)],_0x1cc45e(0x8bb),_0x94bc6c=>{const _0x306a36=_0x1cc45e;if(!Imported[_0x306a36(0x1f0)])return;const _0x5befd1=SceneManager['_scene'][_0x306a36(0x2e6)];if(!_0x5befd1)return;VisuMZ['ConvertParams'](_0x94bc6c,_0x94bc6c);const _0x58fb01=_0x94bc6c['X']||0x0,_0x1f4ad7=_0x94bc6c['Y']||0x0,_0x3fd8fe=_0x94bc6c[_0x306a36(0x4d2)]||0x0,_0x3c63c2=_0x94bc6c['Radius']||0x0,_0x2354a0=_0x94bc6c[_0x306a36(0xb0f)]||0x1,_0x4b636a=_0x94bc6c[_0x306a36(0xc22)]||_0x306a36(0xbfc);_0x5befd1[_0x306a36(0x2ab)](_0x3fd8fe,_0x58fb01,_0x1f4ad7,_0x3c63c2,_0x2354a0,_0x4b636a);}),PluginManager['registerCommand'](pluginData['name'],_0x1cc45e(0x5d1),_0xe4ec70=>{const _0xcbb09=_0x1cc45e;if(!Imported[_0xcbb09(0x1f0)])return;const _0x3889fa=SceneManager[_0xcbb09(0x659)][_0xcbb09(0x2e6)];if(!_0x3889fa)return;VisuMZ[_0xcbb09(0x796)](_0xe4ec70,_0xe4ec70);const _0x1dc7b8=VisuMZ[_0xcbb09(0x220)](_0xe4ec70['Targets']),_0x4c4e47=_0xe4ec70[_0xcbb09(0xa3f)],_0x45dcfc=_0xe4ec70['OffsetX']||0x0,_0x28dbe9=_0xe4ec70[_0xcbb09(0x6e0)]||0x0,_0x356c39=_0xe4ec70[_0xcbb09(0x4d2)]||0x0,_0x2c8193=_0xe4ec70[_0xcbb09(0x5cd)]||0x0,_0x49fbe1=_0xe4ec70[_0xcbb09(0xb0f)]||0x1,_0x2d3d1e=_0xe4ec70[_0xcbb09(0xc22)]||'Linear',_0x39d193=Math[_0xcbb09(0x6cb)](..._0x1dc7b8[_0xcbb09(0x63c)](_0x1ed14a=>_0x1ed14a[_0xcbb09(0x3ba)]()[_0xcbb09(0x29f)]-_0x1ed14a[_0xcbb09(0x3ba)]()['mainSpriteWidth']()/0x2)),_0x9b6526=Math[_0xcbb09(0x485)](..._0x1dc7b8[_0xcbb09(0x63c)](_0x4715bd=>_0x4715bd[_0xcbb09(0x3ba)]()[_0xcbb09(0x29f)]+_0x4715bd[_0xcbb09(0x3ba)]()['mainSpriteWidth']()/0x2)),_0x25b38c=Math[_0xcbb09(0x6cb)](..._0x1dc7b8[_0xcbb09(0x63c)](_0x2b2072=>_0x2b2072[_0xcbb09(0x3ba)]()['_baseY']-_0x2b2072[_0xcbb09(0x3ba)]()[_0xcbb09(0x75e)]())),_0x33193e=Math[_0xcbb09(0x485)](..._0x1dc7b8[_0xcbb09(0x63c)](_0x47c78b=>_0x47c78b[_0xcbb09(0x3ba)]()[_0xcbb09(0xb2d)])),_0x1deb58=_0x1dc7b8[_0xcbb09(0x441)](_0x1ba24e=>_0x1ba24e[_0xcbb09(0x864)]())[_0xcbb09(0x96d)],_0x3bfa96=_0x1dc7b8[_0xcbb09(0x441)](_0x1a045f=>_0x1a045f[_0xcbb09(0x348)]())['length'];let _0x1774fd=0x0,_0x360677=0x0;if(_0x4c4e47[_0xcbb09(0xc6a)](/front/i))_0x1774fd=_0x1deb58>=_0x3bfa96?_0x39d193:_0x9b6526;else{if(_0x4c4e47[_0xcbb09(0xc6a)](/middle/i))_0x1774fd=(_0x39d193+_0x9b6526)/0x2,melee=-0x1;else _0x4c4e47['match'](/back/i)&&(_0x1774fd=_0x1deb58>=_0x3bfa96?_0x9b6526:_0x39d193);}if(_0x4c4e47['match'](/head/i))_0x360677=_0x25b38c;else{if(_0x4c4e47[_0xcbb09(0xc6a)](/center/i))_0x360677=(_0x25b38c+_0x33193e)/0x2;else _0x4c4e47[_0xcbb09(0xc6a)](/base/i)&&(_0x360677=_0x33193e);}_0x1774fd+=(Graphics[_0xcbb09(0x885)]-Graphics[_0xcbb09(0x46e)])/0x2,_0x360677+=(Graphics[_0xcbb09(0x20f)]-Graphics[_0xcbb09(0x76d)])/0x2,_0x1774fd+=_0x45dcfc,_0x360677+=_0x28dbe9,_0x3889fa[_0xcbb09(0x2ab)](_0x356c39,_0x1774fd,_0x360677,_0x2c8193,_0x49fbe1,_0x2d3d1e);}),PluginManager[_0x1cc45e(0x68e)](pluginData[_0x1cc45e(0xc4e)],_0x1cc45e(0x838),_0x1014f9=>{const _0x13c9f8=_0x1cc45e;if(!Imported[_0x13c9f8(0x1f0)])return;const _0xab7d70=SceneManager[_0x13c9f8(0x659)][_0x13c9f8(0x2e6)];if(!_0xab7d70)return;if(VisuMZ[_0x13c9f8(0x383)][_0x13c9f8(0x6bc)]<=1.05){alert(_0x13c9f8(0x1e8)),SceneManager['exit']();return;}VisuMZ['ConvertParams'](_0x1014f9,_0x1014f9);const _0x3cac05=VisuMZ[_0x13c9f8(0x220)](_0x1014f9[_0x13c9f8(0x932)]),_0x408025={'filename':_0x1014f9['Filename'],'horzCells':_0x1014f9['horzCells']||0x1,'vertCells':_0x1014f9[_0x13c9f8(0x347)]||0x1,'frameDelay':_0x1014f9[_0x13c9f8(0x8cd)]||0x1,'smooth':_0x1014f9[_0x13c9f8(0xa0b)]||![],'anchorX':_0x1014f9[_0x13c9f8(0x9e3)]||0x0,'anchorY':_0x1014f9[_0x13c9f8(0x690)]||0x0,'offsetX':_0x1014f9['offsetX']||0x0,'offsetY':_0x1014f9[_0x13c9f8(0x332)]||0x0};for(const _0x15caff of _0x3cac05){if(!_0x15caff)continue;if(!_0x15caff[_0x13c9f8(0x3ba)]())continue;_0x15caff[_0x13c9f8(0x3ba)]()[_0x13c9f8(0xc0e)](_0x408025);}const _0x5616b6=$gameTemp[_0x13c9f8(0x92f)]();_0x5616b6&&_0x5616b6[_0x13c9f8(0xb13)](_0x13c9f8(0x602));}),PluginManager[_0x1cc45e(0x68e)](pluginData[_0x1cc45e(0xc4e)],'ActSeq_Inject_AnimationEnd',_0x5d525c=>{const _0x56bc42=_0x1cc45e;if(!Imported['VisuMZ_3_ActSeqImpact'])return;const _0xff61f4=SceneManager['_scene'][_0x56bc42(0x2e6)];if(!_0xff61f4)return;if(VisuMZ[_0x56bc42(0x383)]['version']<=1.05){alert(_0x56bc42(0x1e8)),SceneManager['exit']();return;}VisuMZ['ConvertParams'](_0x5d525c,_0x5d525c);const _0x2e25e7=VisuMZ[_0x56bc42(0x220)](_0x5d525c[_0x56bc42(0x932)]);for(const _0x40e75b of _0x2e25e7){if(!_0x40e75b)continue;if(!_0x40e75b[_0x56bc42(0x3ba)]())continue;_0x40e75b[_0x56bc42(0x3ba)]()[_0x56bc42(0x296)]();}}),PluginManager[_0x1cc45e(0x68e)](pluginData['name'],_0x1cc45e(0x767),_0x1449c0=>{const _0x3c25d7=_0x1cc45e;if(!Imported[_0x3c25d7(0x1f0)])return;const _0x5a8dfe=SceneManager[_0x3c25d7(0x659)]['_spriteset'];if(!_0x5a8dfe)return;if(VisuMZ['ActSeqImpact'][_0x3c25d7(0x6bc)]<=1.05){alert('Action\x20Sequence\x20Impact\x20needs\x20an\x20update!'),SceneManager[_0x3c25d7(0x5c1)]();return;}VisuMZ[_0x3c25d7(0x796)](_0x1449c0,_0x1449c0);const _0x40ba03=VisuMZ[_0x3c25d7(0x220)](_0x1449c0['Targets']),_0x5b91de=_0x1449c0['pause'];for(const _0x1e64c3 of _0x40ba03){if(!_0x1e64c3)continue;if(!_0x1e64c3[_0x3c25d7(0x3ba)]())continue;_0x1e64c3['battler']()['pauseInjectAnimation'](_0x5b91de);}}),PluginManager[_0x1cc45e(0x68e)](pluginData[_0x1cc45e(0xc4e)],'ActSeq_Inject_WaitForInjectAni',_0x2e0275=>{const _0x777db7=_0x1cc45e;if(!SceneManager['isSceneBattle']())return;const _0x5b001d=$gameTemp['getLastPluginCommandInterpreter']();if(!_0x5b001d)return;_0x5b001d[_0x777db7(0xb13)]('battleInjectAni');}),PluginManager[_0x1cc45e(0x68e)](pluginData[_0x1cc45e(0xc4e)],_0x1cc45e(0xaec),_0x898b11=>{const _0x257911=_0x1cc45e;if(!SceneManager['isSceneBattle']())return;VisuMZ[_0x257911(0x796)](_0x898b11,_0x898b11);const _0x17f8e2=$gameTemp[_0x257911(0x92f)](),_0x2d36da=BattleManager['_action'],_0x5010e1=BattleManager[_0x257911(0x301)],_0x2fe14b=BattleManager[_0x257911(0xc9e)];if(!_0x17f8e2||!_0x2d36da||!_0x5010e1)return;if(!_0x2d36da['item']())return;const _0x360b42=VisuMZ['CreateActionSequenceTargets'](_0x898b11[_0x257911(0x932)]);for(const _0x1aff30 of _0x360b42){if(!_0x1aff30)continue;_0x2fe14b[_0x257911(0xca6)](_0x257911(0x97b),_0x5010e1,_0x1aff30);}_0x17f8e2['setWaitMode'](_0x257911(0x321));}),PluginManager['registerCommand'](pluginData['name'],_0x1cc45e(0x418),_0x7f979c=>{const _0x1d8f7c=_0x1cc45e;if(!SceneManager['isSceneBattle']())return;if(!Imported[_0x1d8f7c(0xc42)])return;$gameTemp[_0x1d8f7c(0x249)]=!![];}),PluginManager['registerCommand'](pluginData[_0x1cc45e(0xc4e)],_0x1cc45e(0x77b),_0x3b194b=>{const _0x5bbc8f=_0x1cc45e;if(!SceneManager[_0x5bbc8f(0x499)]())return;VisuMZ[_0x5bbc8f(0x796)](_0x3b194b,_0x3b194b);const _0x28a625=['MAXHP',_0x5bbc8f(0x306),'ATK',_0x5bbc8f(0x426),'MAT',_0x5bbc8f(0x453),_0x5bbc8f(0xc9f),_0x5bbc8f(0x938)],_0x516eea=_0x3b194b[_0x5bbc8f(0xa46)],_0x3bd63e=_0x3b194b[_0x5bbc8f(0x3d0)],_0x33ccf9=_0x3b194b[_0x5bbc8f(0x81b)],_0x37b1b5=VisuMZ[_0x5bbc8f(0x220)](_0x3b194b[_0x5bbc8f(0x932)]);for(const _0x29cf3c of _0x37b1b5){if(!_0x29cf3c)continue;for(const _0x1f0abe of _0x516eea){const _0x1e8466=_0x28a625['indexOf'](_0x1f0abe[_0x5bbc8f(0x2b6)]()['trim']());_0x1e8466>=0x0&&_0x1e8466<=0x7&&_0x29cf3c[_0x5bbc8f(0xab7)](_0x1e8466,_0x33ccf9);}for(const _0x21a4cc of _0x3bd63e){const _0x3b61a7=_0x28a625[_0x5bbc8f(0x6e9)](_0x21a4cc[_0x5bbc8f(0x2b6)]()[_0x5bbc8f(0xc8e)]());_0x3b61a7>=0x0&&_0x3b61a7<=0x7&&_0x29cf3c['addDebuff'](_0x3b61a7,_0x33ccf9);}}}),PluginManager[_0x1cc45e(0x68e)](pluginData['name'],_0x1cc45e(0x512),_0x5bed2f=>{const _0x26dd93=_0x1cc45e;if(!SceneManager[_0x26dd93(0x499)]())return;VisuMZ[_0x26dd93(0x796)](_0x5bed2f,_0x5bed2f);const _0x1bdb6b=_0x5bed2f[_0x26dd93(0x548)],_0x5ac8d8=VisuMZ[_0x26dd93(0x220)](_0x5bed2f[_0x26dd93(0x932)]);for(const _0x5541f6 of _0x5ac8d8){if(!_0x5541f6)continue;for(const _0x44d1e2 of _0x1bdb6b){_0x5541f6[_0x26dd93(0xcc6)](_0x44d1e2);}}}),PluginManager[_0x1cc45e(0x68e)](pluginData['name'],_0x1cc45e(0xb47),_0x418413=>{const _0x1af53e=_0x1cc45e;if(!SceneManager[_0x1af53e(0x499)]())return;VisuMZ['ConvertParams'](_0x418413,_0x418413);const _0x5bffd7=BattleManager[_0x1af53e(0xa8b)],_0x94debe={'arPenRate':_0x418413[_0x1af53e(0xc53)],'arPenFlat':_0x418413['ArPenFlat'],'arRedRate':_0x418413[_0x1af53e(0x9f3)],'arRedFlat':_0x418413[_0x1af53e(0x4d9)]};_0x5bffd7[_0x1af53e(0x636)]=_0x94debe;}),PluginManager[_0x1cc45e(0x68e)](pluginData[_0x1cc45e(0xc4e)],_0x1cc45e(0x509),_0x21a568=>{const _0x228137=_0x1cc45e;if(!SceneManager['isSceneBattle']())return;if(!Imported['VisuMZ_3_WeaknessDisplay'])return;VisuMZ[_0x228137(0x796)](_0x21a568,_0x21a568);const _0x3f9a0f=VisuMZ[_0x228137(0x220)](_0x21a568['Targets']),_0x389c50=_0x21a568['Reveal']||0x1;for(const _0x3167eb of _0x3f9a0f){if(!_0x3167eb)continue;if(!_0x3167eb[_0x228137(0x348)]())continue;_0x3167eb[_0x228137(0x4f5)](_0x389c50);}}),PluginManager['registerCommand'](pluginData[_0x1cc45e(0xc4e)],_0x1cc45e(0x2e1),_0x63aadf=>{const _0x2b8a3f=_0x1cc45e;if(!SceneManager[_0x2b8a3f(0x499)]())return;if(!Imported[_0x2b8a3f(0x2ec)])return;if(!BattleManager['isATB']())return;VisuMZ['ConvertParams'](_0x63aadf,_0x63aadf);const _0xc51971=VisuMZ[_0x2b8a3f(0x220)](_0x63aadf[_0x2b8a3f(0x932)]),_0x148ed3=_0x63aadf[_0x2b8a3f(0x371)],_0xc364e6=_0x63aadf[_0x2b8a3f(0x371)],_0x33787a=_0x63aadf[_0x2b8a3f(0x1d5)];for(const _0x117aec of _0xc51971){if(!_0x117aec)continue;if(_0x117aec['isAtbChargingState']())_0x117aec[_0x2b8a3f(0xaac)](_0x148ed3);else{if(_0x117aec[_0x2b8a3f(0x969)]()){_0x117aec[_0x2b8a3f(0x656)](_0xc364e6);if(_0x33787a)_0x117aec[_0x2b8a3f(0x274)]();}}}}),PluginManager['registerCommand'](pluginData[_0x1cc45e(0xc4e)],_0x1cc45e(0xbcc),_0x237ee7=>{const _0x571e6c=_0x1cc45e;if(!SceneManager[_0x571e6c(0x499)]())return;if(!Imported[_0x571e6c(0xcea)])return;VisuMZ['ConvertParams'](_0x237ee7,_0x237ee7);const _0x5b2e3f=VisuMZ[_0x571e6c(0x220)](_0x237ee7[_0x571e6c(0x932)]),_0x4ab1f4=_0x237ee7['BoostPoints'];for(const _0x5b2515 of _0x5b2e3f){if(!_0x5b2515)continue;_0x5b2515[_0x571e6c(0x945)](_0x4ab1f4);}}),PluginManager[_0x1cc45e(0x68e)](pluginData[_0x1cc45e(0xc4e)],_0x1cc45e(0x457),_0x461715=>{const _0x4ffcc5=_0x1cc45e;if(!SceneManager[_0x4ffcc5(0x499)]())return;if(!Imported[_0x4ffcc5(0xcea)])return;if(!BattleManager['_subject'])return;VisuMZ[_0x4ffcc5(0x796)](_0x461715,_0x461715);const _0x27b2f7=_0x461715[_0x4ffcc5(0xb00)];$gameVariables[_0x4ffcc5(0x97a)](_0x27b2f7,BattleManager[_0x4ffcc5(0x301)]['toUseBoostPoints']());}),PluginManager[_0x1cc45e(0x68e)](pluginData[_0x1cc45e(0xc4e)],_0x1cc45e(0x682),_0x73c08f=>{const _0x3e1f4b=_0x1cc45e;if(!SceneManager[_0x3e1f4b(0x499)]())return;if(!Imported['VisuMZ_4_BreakShields'])return;VisuMZ[_0x3e1f4b(0x796)](_0x73c08f,_0x73c08f);const _0x5537a4=VisuMZ['CreateActionSequenceTargets'](_0x73c08f[_0x3e1f4b(0x932)]),_0x373b2d=_0x73c08f[_0x3e1f4b(0x25f)];for(const _0x4116b0 of _0x5537a4){if(!_0x4116b0)continue;if(_0x4116b0[_0x3e1f4b(0x4c0)]())continue;if(!_0x4116b0[_0x3e1f4b(0xb46)]())continue;_0x4116b0[_0x3e1f4b(0x5f9)](_0x373b2d);}}),PluginManager[_0x1cc45e(0x68e)](pluginData[_0x1cc45e(0xc4e)],'ActSeq_Mechanics_BreakShieldReset',_0x5badb6=>{const _0x464c90=_0x1cc45e;if(!SceneManager[_0x464c90(0x499)]())return;if(!Imported[_0x464c90(0x5db)])return;VisuMZ[_0x464c90(0x796)](_0x5badb6,_0x5badb6);const _0x20696d=VisuMZ[_0x464c90(0x220)](_0x5badb6[_0x464c90(0x932)]);for(const _0x4dd52f of _0x20696d){if(!_0x4dd52f)continue;if(_0x4dd52f['isBreakStunned']())continue;if(!_0x4dd52f[_0x464c90(0xb46)]())continue;_0x4dd52f[_0x464c90(0xc37)]();}}),PluginManager[_0x1cc45e(0x68e)](pluginData[_0x1cc45e(0xc4e)],_0x1cc45e(0x3c9),_0x35e603=>{const _0x3bd9f7=_0x1cc45e;if(!SceneManager[_0x3bd9f7(0x499)]())return;if(!Imported['VisuMZ_2_BattleSystemBTB'])return;if(!BattleManager[_0x3bd9f7(0xa96)]())return;VisuMZ['ConvertParams'](_0x35e603,_0x35e603);const _0x5ef590=VisuMZ[_0x3bd9f7(0x220)](_0x35e603[_0x3bd9f7(0x932)]),_0x386edc=_0x35e603[_0x3bd9f7(0x35a)];for(const _0x27144a of _0x5ef590){if(!_0x27144a)continue;_0x27144a['gainBravePoints'](_0x386edc);}}),PluginManager[_0x1cc45e(0x68e)](pluginData[_0x1cc45e(0xc4e)],_0x1cc45e(0x1b3),_0x47ff85=>{const _0x116019=_0x1cc45e;if(!SceneManager[_0x116019(0x499)]())return;VisuMZ['ConvertParams'](_0x47ff85,_0x47ff85);const _0x27f5b4=$gameTemp[_0x116019(0x92f)](),_0x3378db=BattleManager[_0x116019(0xa8b)],_0x381e29=BattleManager[_0x116019(0x301)];if(!_0x27f5b4||!_0x3378db||!_0x381e29)return;if(!_0x3378db[_0x116019(0x904)]())return;const _0x3192d7=VisuMZ['CreateActionSequenceTargets'](_0x47ff85[_0x116019(0x932)]);for(const _0x1e2b7e of _0x3192d7){if(!_0x1e2b7e)continue;_0x47ff85[_0x116019(0xa9c)]&&(_0x1e2b7e[_0x116019(0xc31)](),_0x1e2b7e[_0x116019(0xcc6)](_0x1e2b7e[_0x116019(0x36e)]())),_0x1e2b7e[_0x116019(0x922)]()&&_0x1e2b7e[_0x116019(0xcc2)]();}_0x27f5b4[_0x116019(0xb13)](_0x116019(0x717));}),PluginManager[_0x1cc45e(0x68e)](pluginData[_0x1cc45e(0xc4e)],_0x1cc45e(0x74a),_0x492f9a=>{const _0x349a17=_0x1cc45e;if(!SceneManager[_0x349a17(0x499)]())return;if(!Imported[_0x349a17(0x570)])return;if(!BattleManager[_0x349a17(0x9a5)]())return;VisuMZ[_0x349a17(0x796)](_0x492f9a,_0x492f9a);const _0x5b708f=VisuMZ['CreateActionSequenceTargets'](_0x492f9a[_0x349a17(0x932)]),_0x20c053=_0x492f9a[_0x349a17(0x7cb)];for(const _0x1f473b of _0x5b708f){if(!_0x1f473b)continue;_0x1f473b['changeTurnOrderByCTB'](_0x20c053);}}),PluginManager['registerCommand'](pluginData[_0x1cc45e(0xc4e)],_0x1cc45e(0x702),_0x3a3596=>{const _0x27b995=_0x1cc45e;if(!SceneManager[_0x27b995(0x499)]())return;if(!Imported[_0x27b995(0x570)])return;if(!BattleManager[_0x27b995(0x9a5)]())return;VisuMZ[_0x27b995(0x796)](_0x3a3596,_0x3a3596);const _0x153ce9=VisuMZ[_0x27b995(0x220)](_0x3a3596[_0x27b995(0x932)]),_0x57e57a=_0x3a3596[_0x27b995(0x371)],_0x414e6f=_0x3a3596[_0x27b995(0x371)];for(const _0x4699ee of _0x153ce9){if(!_0x4699ee)continue;if(_0x4699ee[_0x27b995(0xa27)]===_0x27b995(0x7dd))_0x4699ee[_0x27b995(0x9b8)](_0x57e57a);else _0x4699ee[_0x27b995(0xa27)]===_0x27b995(0xae6)&&_0x4699ee['changeCtbCastTime'](_0x414e6f);}}),PluginManager[_0x1cc45e(0x68e)](pluginData[_0x1cc45e(0xc4e)],_0x1cc45e(0xa34),_0x26b7c8=>{const _0x263782=_0x1cc45e;if(!SceneManager['isSceneBattle']())return;VisuMZ['ConvertParams'](_0x26b7c8,_0x26b7c8);const _0x2d3e42=BattleManager[_0x263782(0xa8b)];if(!_0x2d3e42)return;let _0x480eec=_0x26b7c8[_0x263782(0xbff)];_0x2d3e42[_0x263782(0x9dc)](_0x480eec);}),PluginManager[_0x1cc45e(0x68e)](pluginData['name'],_0x1cc45e(0x25c),_0x6883ed=>{const _0x3991cb=_0x1cc45e;if(!SceneManager[_0x3991cb(0x499)]())return;VisuMZ[_0x3991cb(0x796)](_0x6883ed,_0x6883ed);const _0x36c1f5=VisuMZ['CreateActionSequenceTargets'](_0x6883ed[_0x3991cb(0x932)]);for(const _0x412a99 of _0x36c1f5){if(!_0x412a99)continue;if(_0x412a99[_0x3991cb(0x216)]())_0x412a99[_0x3991cb(0xc6c)]();}}),PluginManager[_0x1cc45e(0x68e)](pluginData['name'],_0x1cc45e(0x6bd),_0x4dda3c=>{const _0x5da3ad=_0x1cc45e;if(!SceneManager['isSceneBattle']())return;VisuMZ[_0x5da3ad(0x796)](_0x4dda3c,_0x4dda3c);const _0x2ffad6=$gameTemp['getLastPluginCommandInterpreter'](),_0x31cd7d=BattleManager[_0x5da3ad(0x301)],_0x63ba82=_0x4dda3c[_0x5da3ad(0x1e0)];if(!_0x2ffad6)return;if(!_0x31cd7d)return;_0x31cd7d&&_0x31cd7d[_0x5da3ad(0x1ee)]()&&_0x63ba82[_0x5da3ad(0x2b6)]()[_0x5da3ad(0xc8e)]()!==_0x5da3ad(0xbc8)&&_0x2ffad6[_0x5da3ad(0xa5e)]([_0x63ba82]);}),PluginManager['registerCommand'](pluginData[_0x1cc45e(0xc4e)],_0x1cc45e(0x4ad),_0x5f1f2f=>{const _0x4c6df2=_0x1cc45e;if(!SceneManager[_0x4c6df2(0x499)]())return;VisuMZ[_0x4c6df2(0x796)](_0x5f1f2f,_0x5f1f2f);const _0x5f581d=$gameTemp[_0x4c6df2(0x92f)](),_0x2735fa=BattleManager[_0x4c6df2(0xc9e)];if(!_0x5f581d)return;const _0x27f8d8=VisuMZ[_0x4c6df2(0x220)](_0x5f1f2f[_0x4c6df2(0x7ae)]),_0xd4071b=VisuMZ['CreateActionSequenceTargets'](_0x5f1f2f[_0x4c6df2(0x932)]);for(const _0x129ba5 of _0x27f8d8){for(const _0x2306c9 of _0xd4071b){if(!_0x2306c9)continue;const _0x14026d=$dataSkills[_0x129ba5[_0x4c6df2(0x24a)]()];_0x2735fa[_0x4c6df2(0xca6)](_0x4c6df2(0xbd3),_0x129ba5,_0x2306c9,_0x14026d);}}_0x5f581d['setWaitMode'](_0x4c6df2(0x321));}),PluginManager[_0x1cc45e(0x68e)](pluginData[_0x1cc45e(0xc4e)],'ActSeq_Mechanics_EmulateGuardEffect',_0x4585f3=>{const _0x3ff401=_0x1cc45e;if(!SceneManager[_0x3ff401(0x499)]())return;VisuMZ[_0x3ff401(0x796)](_0x4585f3,_0x4585f3);const _0x2b9b88=$gameTemp[_0x3ff401(0x92f)](),_0xdc4609=BattleManager[_0x3ff401(0xc9e)];if(!_0x2b9b88)return;const _0x4e2ce5=VisuMZ['CreateActionSequenceTargets'](_0x4585f3[_0x3ff401(0x7ae)]),_0x486f80=VisuMZ[_0x3ff401(0x220)](_0x4585f3[_0x3ff401(0x932)]);for(const _0x3ff9f5 of _0x4e2ce5){for(const _0x3172de of _0x486f80){if(!_0x3172de)continue;const _0x33001f=$dataSkills[_0x3ff9f5[_0x3ff401(0xd05)]()];_0xdc4609[_0x3ff401(0xca6)](_0x3ff401(0xbd3),_0x3ff9f5,_0x3172de,_0x33001f);}}_0x2b9b88[_0x3ff401(0xb13)](_0x3ff401(0x321));}),PluginManager[_0x1cc45e(0x68e)](pluginData[_0x1cc45e(0xc4e)],_0x1cc45e(0x27d),_0x3ca570=>{const _0x556409=_0x1cc45e;if(!SceneManager[_0x556409(0x499)]())return;VisuMZ[_0x556409(0x796)](_0x3ca570,_0x3ca570);const _0x284198=$gameTemp[_0x556409(0x92f)](),_0x4b5b6=BattleManager[_0x556409(0xc9e)],_0xc6efb2=Number(_0x3ca570[_0x556409(0x69b)]||0x1),_0xc9591c=$dataItems[_0xc6efb2];if(!_0x284198)return;if(!_0xc9591c)return;const _0x35a9d2=VisuMZ[_0x556409(0x220)](_0x3ca570[_0x556409(0x7ae)]),_0x3a6466=VisuMZ['CreateActionSequenceTargets'](_0x3ca570[_0x556409(0x932)]);for(const _0x2d813d of _0x35a9d2){for(const _0xc8af8b of _0x3a6466){if(!_0xc8af8b)continue;_0x4b5b6[_0x556409(0xca6)]('emulateActionEffect',_0x2d813d,_0xc8af8b,_0xc9591c);}}_0x284198[_0x556409(0xb13)](_0x556409(0x321));}),PluginManager['registerCommand'](pluginData[_0x1cc45e(0xc4e)],_0x1cc45e(0x7cc),_0x2c7461=>{const _0x2b8f5a=_0x1cc45e;if(!SceneManager[_0x2b8f5a(0x499)]())return;VisuMZ[_0x2b8f5a(0x796)](_0x2c7461,_0x2c7461);let _0x4393c9=Number(_0x2c7461['SkillID']||0x0);if(_0x4393c9<=0x0){const _0x394168=BattleManager[_0x2b8f5a(0xa8b)];if(_0x394168&&_0x394168[_0x2b8f5a(0x2b1)]())_0x4393c9=_0x394168[_0x2b8f5a(0x904)]()['id'];else return;}const _0x107104=$dataSkills[_0x4393c9];if(!_0x107104)return;const _0x20f75f=VisuMZ[_0x2b8f5a(0x220)](_0x2c7461[_0x2b8f5a(0x7ae)]);for(const _0x49959e of _0x20f75f){_0x49959e['paySkillCost'](_0x107104);}}),PluginManager['registerCommand'](pluginData[_0x1cc45e(0xc4e)],_0x1cc45e(0x4e4),_0x293e90=>{const _0xa0672b=_0x1cc45e;if(!SceneManager[_0xa0672b(0x499)]())return;VisuMZ[_0xa0672b(0x796)](_0x293e90,_0x293e90);const _0x35d08d=$gameTemp['getLastPluginCommandInterpreter'](),_0x38f3a7=BattleManager[_0xa0672b(0xc9e)],_0x397623=Number(_0x293e90[_0xa0672b(0x596)]||0x1),_0x25f2a5=$dataSkills[_0x397623];if(!_0x35d08d)return;if(!_0x25f2a5)return;const _0x2a71c9=VisuMZ[_0xa0672b(0x220)](_0x293e90[_0xa0672b(0x7ae)]),_0x54f754=VisuMZ[_0xa0672b(0x220)](_0x293e90[_0xa0672b(0x932)]);for(const _0x41a168 of _0x2a71c9){for(const _0x354449 of _0x54f754){if(!_0x354449)continue;_0x38f3a7[_0xa0672b(0xca6)]('emulateActionEffect',_0x41a168,_0x354449,_0x25f2a5);}}_0x35d08d[_0xa0672b(0xb13)](_0xa0672b(0x321));}),PluginManager['registerCommand'](pluginData[_0x1cc45e(0xc4e)],'ActSeq_Mechanics_EnemyEscape',_0x2f064c=>{const _0x2ef2e4=_0x1cc45e;if(!SceneManager[_0x2ef2e4(0x499)]())return;VisuMZ[_0x2ef2e4(0x796)](_0x2f064c,_0x2f064c);const _0x308a2d=VisuMZ[_0x2ef2e4(0x220)](_0x2f064c[_0x2ef2e4(0x932)]);for(const _0x32f735 of _0x308a2d){if(!_0x32f735)continue;if(!_0x32f735[_0x2ef2e4(0x348)]())continue;_0x32f735[_0x2ef2e4(0x208)]();}}),PluginManager['registerCommand'](pluginData[_0x1cc45e(0xc4e)],_0x1cc45e(0x2d9),_0x2b30e4=>{const _0x5ec99b=_0x1cc45e;if(!SceneManager[_0x5ec99b(0x499)]())return;if(!Imported[_0x5ec99b(0x460)])return;if(!BattleManager[_0x5ec99b(0x716)]())return;VisuMZ[_0x5ec99b(0x796)](_0x2b30e4,_0x2b30e4);const _0x24703f=_0x2b30e4[_0x5ec99b(0x41f)];BattleManager[_0x5ec99b(0x301)]&&BattleManager[_0x5ec99b(0x301)]['friendsUnit']()[_0x5ec99b(0x70a)](_0x24703f);}),PluginManager[_0x1cc45e(0x68e)](pluginData[_0x1cc45e(0xc4e)],'ActSeq_Mechanics_FtbAction',_0x3aaee0=>{const _0x395c2d=_0x1cc45e;if(!SceneManager['isSceneBattle']())return;if(!Imported[_0x395c2d(0xaf4)])return;if(!BattleManager[_0x395c2d(0x381)]())return;VisuMZ[_0x395c2d(0x796)](_0x3aaee0,_0x3aaee0);const _0x5f4040=_0x3aaee0[_0x395c2d(0x41f)];BattleManager[_0x395c2d(0x301)]&&BattleManager[_0x395c2d(0x301)][_0x395c2d(0x917)]()['gainCurrentActionsFTB'](_0x5f4040);}),PluginManager['registerCommand'](pluginData[_0x1cc45e(0xc4e)],_0x1cc45e(0x31e),_0x37ed08=>{const _0xc28295=_0x1cc45e;if(!SceneManager[_0xc28295(0x499)]())return;VisuMZ[_0xc28295(0x796)](_0x37ed08,_0x37ed08);const _0x6bf32=VisuMZ[_0xc28295(0x220)](_0x37ed08[_0xc28295(0x932)]),_0x45768a=_0x37ed08[_0xc28295(0x284)],_0x5ad18e=_0x37ed08[_0xc28295(0x527)],_0x2347e7=_0x37ed08[_0xc28295(0x47e)],_0xc508a5=_0x37ed08['MP_Flat'],_0x275111=_0x37ed08['TP_Rate'],_0x1fab6a=_0x37ed08[_0xc28295(0x686)],_0x4b9bbc=_0x37ed08['ShowPopup'];for(const _0x5c0950 of _0x6bf32){if(!_0x5c0950)continue;const _0x401499=_0x5c0950[_0xc28295(0x212)](),_0x998d12=Math[_0xc28295(0xb4b)](_0x45768a*_0x5c0950['mhp']+_0x5ad18e),_0x59ce00=Math[_0xc28295(0xb4b)](_0x2347e7*_0x5c0950[_0xc28295(0xa61)]+_0xc508a5),_0xc8ab42=Math[_0xc28295(0xb4b)](_0x275111*_0x5c0950[_0xc28295(0x64c)]()+_0x1fab6a);if(_0x998d12!==0x0)_0x5c0950['gainHp'](_0x998d12);if(_0x59ce00!==0x0)_0x5c0950['gainMp'](_0x59ce00);if(_0xc8ab42!==0x0)_0x5c0950[_0xc28295(0x4cb)](_0xc8ab42);if(_0x4b9bbc)_0x5c0950[_0xc28295(0xc6c)]();_0x401499&&_0x5c0950[_0xc28295(0x1ee)]()&&_0x5c0950[_0xc28295(0xcc2)]();}}),PluginManager[_0x1cc45e(0x68e)](pluginData[_0x1cc45e(0xc4e)],_0x1cc45e(0x4d3),_0x2b6014=>{const _0x3cc9b9=_0x1cc45e;if(!SceneManager[_0x3cc9b9(0x499)]())return;VisuMZ[_0x3cc9b9(0x796)](_0x2b6014,_0x2b6014);const _0x5626c8=VisuMZ[_0x3cc9b9(0x220)](_0x2b6014[_0x3cc9b9(0x932)]);for(const _0x311b79 of _0x5626c8){if(!_0x311b79)continue;_0x311b79[_0x3cc9b9(0xb24)](_0x2b6014[_0x3cc9b9(0x318)]);}}),PluginManager[_0x1cc45e(0x68e)](pluginData[_0x1cc45e(0xc4e)],'ActSeq_Mechanics_Multipliers',_0x3727ce=>{const _0x25c744=_0x1cc45e;if(!SceneManager[_0x25c744(0x499)]())return;VisuMZ['ConvertParams'](_0x3727ce,_0x3727ce);const _0x12e0ef=BattleManager[_0x25c744(0xa8b)],_0x65209c={'criticalHitRate':_0x3727ce[_0x25c744(0x86d)],'criticalHitFlat':_0x3727ce['CriticalHitFlat'],'criticalDmgRate':_0x3727ce['CriticalDmgRate'],'criticalDmgFlat':_0x3727ce[_0x25c744(0x655)],'damageRate':_0x3727ce[_0x25c744(0x241)],'damageFlat':_0x3727ce[_0x25c744(0xa1e)],'hitRate':_0x3727ce['HitRate'],'hitFlat':_0x3727ce[_0x25c744(0x207)]};_0x12e0ef[_0x25c744(0xaf1)]=_0x65209c;}),PluginManager[_0x1cc45e(0x68e)](pluginData['name'],'ActSeq_Mechanics_OnceParallel',_0x4998df=>{const _0x514771=_0x1cc45e;if(!SceneManager['isSceneBattle']())return;VisuMZ[_0x514771(0x796)](_0x4998df,_0x4998df);const _0x295ae1=_0x4998df[_0x514771(0x815)];SceneManager[_0x514771(0x659)][_0x514771(0x976)](_0x295ae1);}),PluginManager[_0x1cc45e(0x68e)](pluginData[_0x1cc45e(0xc4e)],_0x1cc45e(0x8cc),_0x1738ad=>{const _0x29c8fa=_0x1cc45e;if(!SceneManager[_0x29c8fa(0x499)]())return;if(!Imported[_0x29c8fa(0x814)])return;if(!BattleManager['isOTB']())return;VisuMZ[_0x29c8fa(0x796)](_0x1738ad,_0x1738ad);const _0x28d3db=VisuMZ[_0x29c8fa(0x220)](_0x1738ad[_0x29c8fa(0x932)]);for(const _0x1defea of _0x28d3db){if(!_0x1defea)continue;let _0x55704d=_0x1738ad['CurrentTurn'],_0x166d78=_0x1738ad[_0x29c8fa(0x4af)],_0x10c1f2=_0x1738ad[_0x29c8fa(0xc5d)];BattleManager[_0x29c8fa(0x69f)][_0x29c8fa(0x9c4)](_0x1defea)?_0x55704d+=_0x10c1f2:_0x166d78+=_0x10c1f2,BattleManager['turnOrderChangeOTB'](_0x1defea,-_0x55704d,![]),BattleManager[_0x29c8fa(0x622)](_0x1defea,-_0x166d78,!![]);}}),PluginManager['registerCommand'](pluginData['name'],_0x1cc45e(0xc52),_0x38f527=>{const _0x40ec27=_0x1cc45e;if(!SceneManager['isSceneBattle']())return;if(!Imported[_0x40ec27(0x633)])return;if(!BattleManager[_0x40ec27(0xa60)]())return;VisuMZ[_0x40ec27(0x796)](_0x38f527,_0x38f527);const _0x48642e=BattleManager[_0x40ec27(0x301)]['friendsUnit'](),_0x52b12e=_0x38f527['Override'],_0x1a07ad=_0x38f527[_0x40ec27(0xadc)]||_0x40ec27(0x3d5),_0x329fa4=_0x38f527[_0x40ec27(0x2c7)]||'unchanged',_0x53e5ad=_0x38f527[_0x40ec27(0x5b5)]||0x0,_0x282493=_0x38f527[_0x40ec27(0x554)]||0x0;(_0x48642e[_0x40ec27(0x3a2)]()||_0x52b12e)&&(_0x52b12e&&(_0x48642e['_ptbActionCost']=_0x48642e['_ptbActionCost']||{},_0x48642e['_ptbActionCost'][_0x40ec27(0xbcd)]=0x0),_0x48642e[_0x40ec27(0x481)](_0x1a07ad,_0x329fa4,_0x53e5ad,_0x282493));}),PluginManager[_0x1cc45e(0x68e)](pluginData[_0x1cc45e(0xc4e)],'ActSeq_Mechanics_PtbConvert',_0x7e27c9=>{const _0x3eea08=_0x1cc45e;if(!SceneManager[_0x3eea08(0x499)]())return;if(!Imported['VisuMZ_2_BattleSystemPTB'])return;if(!BattleManager[_0x3eea08(0xa60)]())return;VisuMZ[_0x3eea08(0x796)](_0x7e27c9,_0x7e27c9);const _0x37a4d3=BattleManager['_subject'][_0x3eea08(0x917)]();let _0x2afea5=Math[_0x3eea08(0x485)](_0x7e27c9[_0x3eea08(0x926)],0x0),_0x270cc0=_0x37a4d3['getFullActionsPTB'](),_0x27f760=_0x37a4d3[_0x3eea08(0x911)]();while(_0x2afea5--){if(_0x270cc0<=0x0&&_0x27f760<=0x0)break;else _0x270cc0>0x0?(_0x270cc0--,_0x27f760++):_0x27f760--;}_0x37a4d3[_0x3eea08(0x7e9)](_0x270cc0),_0x37a4d3[_0x3eea08(0x6d9)](_0x27f760);}),PluginManager[_0x1cc45e(0x68e)](pluginData['name'],_0x1cc45e(0x36d),_0x4a2ae8=>{const _0x2ef290=_0x1cc45e;if(!SceneManager[_0x2ef290(0x499)]())return;if(!Imported['VisuMZ_2_BattleSystemPTB'])return;if(!BattleManager[_0x2ef290(0xa60)]())return;VisuMZ[_0x2ef290(0x796)](_0x4a2ae8,_0x4a2ae8);const _0x22deb8=BattleManager[_0x2ef290(0x301)][_0x2ef290(0x917)]();let _0x26fd34=_0x4a2ae8[_0x2ef290(0x4bb)],_0x25a063=_0x4a2ae8['HalfActions'];_0x22deb8[_0x2ef290(0x28a)](_0x26fd34),_0x22deb8[_0x2ef290(0x5f6)](_0x25a063);}),PluginManager[_0x1cc45e(0x68e)](pluginData[_0x1cc45e(0xc4e)],_0x1cc45e(0x1bc),_0x522052=>{const _0x32d047=_0x1cc45e;if(!SceneManager['isSceneBattle']())return;VisuMZ['ConvertParams'](_0x522052,_0x522052);const _0x48e2f7=[_0x32d047(0x7fa),_0x32d047(0x306),_0x32d047(0x8da),_0x32d047(0x426),'MAT',_0x32d047(0x453),_0x32d047(0xc9f),_0x32d047(0x938)],_0x409b40=_0x522052['Buffs'],_0x4bbcb0=_0x522052[_0x32d047(0x3d0)],_0x2c3b6b=VisuMZ['CreateActionSequenceTargets'](_0x522052[_0x32d047(0x932)]);for(const _0xc7dd66 of _0x2c3b6b){if(!_0xc7dd66)continue;for(const _0x5d3993 of _0x409b40){const _0x59aad1=_0x48e2f7['indexOf'](_0x5d3993['toUpperCase']()[_0x32d047(0xc8e)]());_0x59aad1>=0x0&&_0x59aad1<=0x7&&_0xc7dd66[_0x32d047(0x580)](_0x59aad1)&&_0xc7dd66['removeBuff'](_0x59aad1);}for(const _0x4172fb of _0x4bbcb0){const _0x3df0d0=_0x48e2f7['indexOf'](_0x4172fb['toUpperCase']()[_0x32d047(0xc8e)]());_0x3df0d0>=0x0&&_0x3df0d0<=0x7&&_0xc7dd66[_0x32d047(0x583)](_0x3df0d0)&&_0xc7dd66['removeBuff'](_0x3df0d0);}}}),PluginManager['registerCommand'](pluginData[_0x1cc45e(0xc4e)],_0x1cc45e(0xca7),_0x159bce=>{const _0x1875dc=_0x1cc45e;if(!SceneManager[_0x1875dc(0x499)]())return;VisuMZ[_0x1875dc(0x796)](_0x159bce,_0x159bce);const _0x3e67c8=_0x159bce[_0x1875dc(0x548)],_0x586d56=VisuMZ[_0x1875dc(0x220)](_0x159bce[_0x1875dc(0x932)]);for(const _0x53dd3c of _0x586d56){if(!_0x53dd3c)continue;for(const _0x16e9dc of _0x3e67c8){_0x53dd3c[_0x1875dc(0x2d2)](_0x16e9dc);}}}),PluginManager[_0x1cc45e(0x68e)](pluginData['name'],_0x1cc45e(0xce3),_0x4254d3=>{const _0x3cb7eb=_0x1cc45e;if(!SceneManager[_0x3cb7eb(0x499)]())return;if(!Imported['VisuMZ_1_SkillsStatesCore'])return;VisuMZ[_0x3cb7eb(0x796)](_0x4254d3,_0x4254d3);const _0x397432=VisuMZ[_0x3cb7eb(0x220)](_0x4254d3['Targets']),_0x28cad9=Number(_0x4254d3['StateID']),_0x296f4f=Number(_0x4254d3[_0x3cb7eb(0x81b)]),_0x58f803=_0x4254d3[_0x3cb7eb(0x97e)];for(const _0x3164d7 of _0x397432){if(!_0x3164d7)continue;_0x58f803&&!_0x3164d7['isStateAffected'](_0x28cad9)?(_0x3164d7[_0x3cb7eb(0xcc6)](_0x28cad9),_0x3164d7[_0x3cb7eb(0xb2f)](_0x28cad9,_0x296f4f)):_0x3164d7[_0x3cb7eb(0x7c8)](_0x28cad9,_0x296f4f);}}),PluginManager[_0x1cc45e(0x68e)](pluginData[_0x1cc45e(0xc4e)],'ActSeq_Mechanics_StateTurnsChangeTo',_0x5d563d=>{const _0xbf39c0=_0x1cc45e;if(!SceneManager[_0xbf39c0(0x499)]())return;if(!Imported[_0xbf39c0(0x47f)])return;VisuMZ[_0xbf39c0(0x796)](_0x5d563d,_0x5d563d);const _0x3decc0=VisuMZ[_0xbf39c0(0x220)](_0x5d563d[_0xbf39c0(0x932)]),_0x470a30=Number(_0x5d563d[_0xbf39c0(0x479)]),_0x58398e=Math[_0xbf39c0(0x485)](Number(_0x5d563d['Turns']),0x0),_0xc61d8f=_0x5d563d[_0xbf39c0(0x97e)];for(const _0x38ba03 of _0x3decc0){if(!_0x38ba03)continue;_0xc61d8f&&!_0x38ba03[_0xbf39c0(0x6a7)](_0x470a30)&&_0x38ba03[_0xbf39c0(0xcc6)](_0x470a30),_0x38ba03[_0xbf39c0(0xb2f)](_0x470a30,_0x58398e);}}),PluginManager[_0x1cc45e(0x68e)](pluginData[_0x1cc45e(0xc4e)],_0x1cc45e(0x627),_0x570c1b=>{const _0x17f223=_0x1cc45e;if(!SceneManager['isSceneBattle']())return;if(!Imported[_0x17f223(0x4b7)])return;if(!BattleManager[_0x17f223(0x6ad)]())return;VisuMZ[_0x17f223(0x796)](_0x570c1b,_0x570c1b);const _0x34479b=_0x570c1b['Exploited'],_0x24714d=VisuMZ[_0x17f223(0x220)](_0x570c1b[_0x17f223(0x932)]),_0x161b6f=_0x570c1b[_0x17f223(0x91d)],_0x135f55=_0x570c1b[_0x17f223(0x401)],_0x4673b5=_0x570c1b[_0x17f223(0x62b)],_0x2953d8=BattleManager[_0x17f223(0xa8b)];if(_0x34479b)for(const _0x14f5f9 of _0x24714d){if(!_0x14f5f9)continue;if(_0x14f5f9===BattleManager[_0x17f223(0x301)])continue;if(_0x161b6f)_0x14f5f9[_0x17f223(0xbe3)](![]);_0x14f5f9['becomeSTBExploited'](BattleManager[_0x17f223(0x301)],_0x2953d8);}if(_0x135f55&&BattleManager[_0x17f223(0x301)]){if(_0x4673b5)BattleManager[_0x17f223(0x301)]['setSTBExploited'](![]);const _0x5e5b27=_0x24714d[0x0];BattleManager[_0x17f223(0x301)]['performSTBExploiter'](_0x5e5b27,_0x2953d8);}}),PluginManager[_0x1cc45e(0x68e)](pluginData[_0x1cc45e(0xc4e)],'ActSeq_Mechanics_StbExtraAction',_0xae973c=>{const _0x7cc99=_0x1cc45e;if(!SceneManager['isSceneBattle']())return;if(!Imported[_0x7cc99(0x4b7)])return;if(!BattleManager[_0x7cc99(0x6ad)]())return;VisuMZ[_0x7cc99(0x796)](_0xae973c,_0xae973c);const _0x27c8f3=_0xae973c[_0x7cc99(0x556)];BattleManager['_subject']&&BattleManager[_0x7cc99(0x301)][_0x7cc99(0x235)](_0x27c8f3);}),PluginManager[_0x1cc45e(0x68e)](pluginData[_0x1cc45e(0xc4e)],'ActSeq_Mechanics_StbRemoveExcessActions',_0x525c9c=>{const _0xb6d152=_0x1cc45e;if(!SceneManager[_0xb6d152(0x499)]())return;if(!Imported[_0xb6d152(0x4b7)])return;if(!BattleManager[_0xb6d152(0x6ad)]())return;VisuMZ[_0xb6d152(0x796)](_0x525c9c,_0x525c9c);let _0x4b0138=_0x525c9c[_0xb6d152(0x556)];if(BattleManager['_subject']){BattleManager[_0xb6d152(0x301)]['_actions']=BattleManager[_0xb6d152(0x301)][_0xb6d152(0x89d)]||[];while(_0x4b0138--){if(BattleManager['_subject'][_0xb6d152(0x89d)][_0xb6d152(0x96d)]<=0x0)break;BattleManager[_0xb6d152(0x301)][_0xb6d152(0x89d)][_0xb6d152(0x597)]();}}}),PluginManager['registerCommand'](pluginData[_0x1cc45e(0xc4e)],'ActSeq_Mechanics_SwapWeapon',_0x927e08=>{const _0x1ac3b5=_0x1cc45e;if(!SceneManager[_0x1ac3b5(0x499)]())return;if(!Imported[_0x1ac3b5(0x9a1)])return;VisuMZ[_0x1ac3b5(0x796)](_0x927e08,_0x927e08);const _0x56f573=VisuMZ[_0x1ac3b5(0x220)](_0x927e08[_0x1ac3b5(0x932)]),_0x2937b5=_0x927e08[_0x1ac3b5(0x73d)];for(const _0x1f6dff of _0x56f573){if(!_0x1f6dff)continue;if(!_0x1f6dff[_0x1ac3b5(0x864)]())continue;_0x1f6dff[_0x1ac3b5(0xaa9)](_0x2937b5);}}),PluginManager[_0x1cc45e(0x68e)](pluginData[_0x1cc45e(0xc4e)],_0x1cc45e(0x374),_0x10d117=>{const _0x5c28a8=_0x1cc45e;if(!SceneManager[_0x5c28a8(0x499)]())return;VisuMZ[_0x5c28a8(0x796)](_0x10d117,_0x10d117);const _0x125130=VisuMZ[_0x5c28a8(0x220)](_0x10d117['Targets']),_0x1b913a=_0x10d117[_0x5c28a8(0x79d)],_0x5ac4af={'textColor':ColorManager[_0x5c28a8(0xa69)](_0x10d117[_0x5c28a8(0xc27)]),'flashColor':_0x10d117['FlashColor'],'flashDuration':_0x10d117[_0x5c28a8(0x542)]};for(const _0x576d04 of _0x125130){if(!_0x576d04)continue;_0x576d04[_0x5c28a8(0x4d8)](_0x1b913a,_0x5ac4af);}}),PluginManager[_0x1cc45e(0x68e)](pluginData[_0x1cc45e(0xc4e)],_0x1cc45e(0xc3e),_0x5e6383=>{const _0x7b128a=_0x1cc45e;if(!SceneManager[_0x7b128a(0x499)]())return;VisuMZ['ConvertParams'](_0x5e6383,_0x5e6383);const _0x1a1179=VisuMZ[_0x7b128a(0x220)](_0x5e6383[_0x7b128a(0x932)]);let _0x1aa2c3=$gameVariables['value'](_0x5e6383[_0x7b128a(0x760)]);Imported[_0x7b128a(0x598)]&&_0x5e6383[_0x7b128a(0x3b4)]&&(_0x1aa2c3=VisuMZ['GroupDigits'](_0x1aa2c3));const _0x54cb9b=String(_0x1aa2c3),_0x4fa599={'textColor':ColorManager['getColor'](_0x5e6383[_0x7b128a(0xc27)]),'flashColor':_0x5e6383[_0x7b128a(0x77d)],'flashDuration':_0x5e6383[_0x7b128a(0x542)]};for(const _0x3202fb of _0x1a1179){if(!_0x3202fb)continue;_0x3202fb[_0x7b128a(0x4d8)](_0x54cb9b,_0x4fa599);}}),PluginManager[_0x1cc45e(0x68e)](pluginData[_0x1cc45e(0xc4e)],_0x1cc45e(0xc9c),_0x253ad2=>{const _0x168d67=_0x1cc45e;if(!SceneManager[_0x168d67(0x499)]())return;const _0x2275ee=$gameTemp['getLastPluginCommandInterpreter']();if(!_0x2275ee)return;_0x2275ee[_0x168d67(0xb13)](_0x168d67(0x717));}),PluginManager[_0x1cc45e(0x68e)](pluginData[_0x1cc45e(0xc4e)],_0x1cc45e(0xa35),_0x33b327=>{const _0x5203ed=_0x1cc45e;if(!SceneManager[_0x5203ed(0x499)]())return;VisuMZ['ConvertParams'](_0x33b327,_0x33b327);const _0x585aae=VisuMZ[_0x5203ed(0x220)](_0x33b327['Targets']);for(const _0x5d1278 of _0x585aae){if(!_0x5d1278)continue;_0x5d1278['clearFreezeMotion']();}}),PluginManager['registerCommand'](pluginData[_0x1cc45e(0xc4e)],_0x1cc45e(0xa40),_0x2b3d14=>{const _0x2f16c5=_0x1cc45e;if(!SceneManager[_0x2f16c5(0x499)]())return;VisuMZ[_0x2f16c5(0x796)](_0x2b3d14,_0x2b3d14);const _0x4f17fa=VisuMZ[_0x2f16c5(0x220)](_0x2b3d14['Targets']),_0x47167f=_0x2b3d14[_0x2f16c5(0x3a6)][_0x2f16c5(0xbb5)]()[_0x2f16c5(0xc8e)]();let _0x100d16=_0x2b3d14[_0x2f16c5(0xcdc)];const _0x2d3a86=_0x2b3d14[_0x2f16c5(0xcdb)];![_0x2f16c5(0xab8),'thrust',_0x2f16c5(0x5a9),_0x2f16c5(0xb33)][_0x2f16c5(0x9c4)](_0x47167f)&&(_0x100d16=![]);for(const _0x32c47c of _0x4f17fa){if(!_0x32c47c)continue;_0x32c47c[_0x2f16c5(0x805)](_0x47167f,_0x100d16,_0x2d3a86);}}),PluginManager[_0x1cc45e(0x68e)](pluginData[_0x1cc45e(0xc4e)],_0x1cc45e(0xb44),_0x115180=>{const _0x266784=_0x1cc45e;if(!SceneManager[_0x266784(0x499)]())return;VisuMZ[_0x266784(0x796)](_0x115180,_0x115180);const _0x4fd79e=VisuMZ['CreateActionSequenceTargets'](_0x115180['Targets']),_0x119e24=_0x115180['MotionType']['toLowerCase']()[_0x266784(0xc8e)](),_0x3e265b=_0x115180[_0x266784(0xcdc)];for(const _0x312a92 of _0x4fd79e){if(!_0x312a92)continue;_0x312a92[_0x266784(0x988)]=_0x3e265b;if(_0x119e24[_0x266784(0xc6a)](/ATTACK[ ](\d+)/i))_0x312a92[_0x266784(0x2c8)](Number(RegExp['$1']));else _0x119e24==='attack'?_0x312a92[_0x266784(0x455)]():_0x312a92[_0x266784(0x9a8)](_0x119e24);if(!_0x3e265b)_0x312a92[_0x266784(0x56a)](0x0);else{if(_0x3e265b&&['thrust',_0x266784(0x5a9),_0x266784(0x9fc)][_0x266784(0x9c4)](_0x119e24)){}}_0x312a92['_showWeapon']=undefined;}}),PluginManager['registerCommand'](pluginData[_0x1cc45e(0xc4e)],'ActSeq_Motion_PerformAction',_0x1bf4d3=>{const _0x1fd72d=_0x1cc45e;if(!SceneManager['isSceneBattle']())return;VisuMZ['ConvertParams'](_0x1bf4d3,_0x1bf4d3);const _0x2ad3be=BattleManager['_action'];if(!_0x2ad3be)return;if(!_0x2ad3be[_0x1fd72d(0x904)]())return;const _0x5660b4=VisuMZ[_0x1fd72d(0x220)](_0x1bf4d3[_0x1fd72d(0x932)]);for(const _0xed623e of _0x5660b4){if(!_0xed623e)continue;_0xed623e[_0x1fd72d(0x59b)](_0x2ad3be);}}),PluginManager[_0x1cc45e(0x68e)](pluginData[_0x1cc45e(0xc4e)],_0x1cc45e(0xace),_0x327559=>{const _0x5297c3=_0x1cc45e;if(!SceneManager[_0x5297c3(0x499)]())return;VisuMZ[_0x5297c3(0x796)](_0x327559,_0x327559);const _0x3e10be=VisuMZ['CreateActionSequenceTargets'](_0x327559[_0x5297c3(0x932)]);for(const _0x4eb7bb of _0x3e10be){if(!_0x4eb7bb)continue;if(!_0x4eb7bb['battler']())continue;_0x4eb7bb['battler']()[_0x5297c3(0xba7)]();}}),PluginManager[_0x1cc45e(0x68e)](pluginData[_0x1cc45e(0xc4e)],_0x1cc45e(0x8f2),_0x5e2d42=>{const _0x23ccc7=_0x1cc45e;if(!SceneManager[_0x23ccc7(0x499)]())return;VisuMZ[_0x23ccc7(0x796)](_0x5e2d42,_0x5e2d42);const _0x1e0218=$gameTemp[_0x23ccc7(0x92f)](),_0x26b4b9=_0x5e2d42['MotionFrameWait']*Sprite_Battler[_0x23ccc7(0x4ca)];_0x1e0218[_0x23ccc7(0x8f9)](_0x26b4b9);}),PluginManager[_0x1cc45e(0x68e)](pluginData[_0x1cc45e(0xc4e)],_0x1cc45e(0xc2c),_0x3d2537=>{const _0x2c6e03=_0x1cc45e;if(!SceneManager[_0x2c6e03(0x499)]())return;VisuMZ['ConvertParams'](_0x3d2537,_0x3d2537);const _0x2814b1=$gameTemp[_0x2c6e03(0x92f)](),_0x31910a=BattleManager[_0x2c6e03(0xa8b)];if(!_0x2814b1||!_0x31910a)return;if(!_0x31910a[_0x2c6e03(0x904)]())return;const _0x4228d6=VisuMZ[_0x2c6e03(0x220)](_0x3d2537[_0x2c6e03(0x932)]);for(const _0x4d28e7 of _0x4228d6){if(!_0x4d28e7)continue;_0x4d28e7['performActionStart'](_0x31910a);}if(_0x3d2537[_0x2c6e03(0x579)])_0x2814b1['setWaitMode'](_0x2c6e03(0x386));}),PluginManager[_0x1cc45e(0x68e)](pluginData[_0x1cc45e(0xc4e)],_0x1cc45e(0x6db),_0x20f2bc=>{const _0x27a824=_0x1cc45e;if(!SceneManager['isSceneBattle']())return;if(!$gameSystem[_0x27a824(0xbb2)]())return;VisuMZ[_0x27a824(0x796)](_0x20f2bc,_0x20f2bc);const _0x9a2f97=$gameTemp[_0x27a824(0x92f)](),_0x5ee4c0=VisuMZ['CreateActionSequenceTargets'](_0x20f2bc[_0x27a824(0x932)]),_0x1ccafc=_0x20f2bc[_0x27a824(0x9a7)],_0x3fd79c=_0x20f2bc[_0x27a824(0x9d7)],_0x380f30=_0x20f2bc[_0x27a824(0x873)],_0x2a6110=_0x20f2bc[_0x27a824(0xb0f)],_0x1fd84f=_0x20f2bc[_0x27a824(0x73e)],_0x146660=_0x20f2bc[_0x27a824(0xc22)],_0x40285d=_0x20f2bc['MotionType'],_0x27b974=_0x20f2bc['WaitForMovement'];if(!_0x9a2f97)return;for(const _0x4ec5a4 of _0x5ee4c0){if(!_0x4ec5a4)continue;let _0x4fc090=_0x3fd79c,_0xfc5ab8=_0x380f30;if(_0x1ccafc[_0x27a824(0xc6a)](/horz/i))_0x4fc090*=_0x4ec5a4[_0x27a824(0x864)]()?-0x1:0x1;if(_0x1ccafc['match'](/vert/i))_0xfc5ab8*=_0x4ec5a4[_0x27a824(0x864)]()?-0x1:0x1;_0x4ec5a4[_0x27a824(0x20d)](_0x4fc090,_0xfc5ab8,_0x2a6110,_0x1fd84f,_0x146660),_0x4ec5a4[_0x27a824(0x9a8)](_0x40285d);}if(_0x27b974)_0x9a2f97['setWaitMode'](_0x27a824(0x386));}),PluginManager['registerCommand'](pluginData[_0x1cc45e(0xc4e)],_0x1cc45e(0xc85),_0x51ec3c=>{const _0x9b5b95=_0x1cc45e;if(!SceneManager[_0x9b5b95(0x499)]())return;if(!$gameSystem[_0x9b5b95(0xbb2)]())return;VisuMZ['ConvertParams'](_0x51ec3c,_0x51ec3c);const _0x2f31e1=$gameTemp[_0x9b5b95(0x92f)](),_0xec9aef=VisuMZ[_0x9b5b95(0x220)](_0x51ec3c[_0x9b5b95(0x932)]),_0x41ea0e=_0x51ec3c[_0x9b5b95(0x44c)],_0x56ad4c=_0x51ec3c[_0x9b5b95(0x564)],_0x464247=_0x51ec3c['OffsetY'],_0xacae2c=_0x51ec3c[_0x9b5b95(0xb0f)],_0x44b291=_0x51ec3c[_0x9b5b95(0x73e)],_0x3ee851=_0x51ec3c[_0x9b5b95(0xc22)],_0x8c94e=_0x51ec3c['MotionType'],_0x303ff9=_0x51ec3c['WaitForMovement'];if(!_0x2f31e1)return;for(const _0x351159 of _0xec9aef){if(!_0x351159)continue;const _0x6b17bb=_0x51ec3c['DestinationJS'](_0x351159)||{'x':0x0,'y':0x0};let _0x3ab78c=_0x6b17bb['x'],_0xfee283=_0x6b17bb['y'];if(_0x41ea0e['match'](/none/i))_0x3ab78c+=_0x56ad4c,_0xfee283+=_0x464247;else{if(_0x41ea0e[_0x9b5b95(0xc6a)](/horz/i)&&_0x41ea0e[_0x9b5b95(0xc6a)](/vert/i))_0x3ab78c+=_0x351159['isActor']()?-_0x56ad4c:_0x56ad4c,_0xfee283+=_0x351159[_0x9b5b95(0x864)]()?-_0x464247:_0x464247;else{if(_0x41ea0e[_0x9b5b95(0xc6a)](/horz/i))_0x3ab78c+=_0x351159['isActor']()?-_0x56ad4c:_0x56ad4c,_0xfee283+=_0x464247;else _0x41ea0e[_0x9b5b95(0xc6a)](/vert/i)&&(_0x3ab78c+=_0x56ad4c,_0xfee283+=_0x351159[_0x9b5b95(0x864)]()?-_0x464247:_0x464247);}}_0x351159[_0x9b5b95(0x271)](_0x3ab78c,_0xfee283,_0xacae2c,_0x44b291,_0x3ee851,-0x1),_0x351159[_0x9b5b95(0x9a8)](_0x8c94e);}if(_0x303ff9)_0x2f31e1[_0x9b5b95(0xb13)](_0x9b5b95(0x386));}),PluginManager[_0x1cc45e(0x68e)](pluginData[_0x1cc45e(0xc4e)],_0x1cc45e(0xaf5),_0x1a0861=>{const _0x282671=_0x1cc45e;if(!SceneManager[_0x282671(0x499)]())return;if(!$gameSystem[_0x282671(0xbb2)]())return;VisuMZ['ConvertParams'](_0x1a0861,_0x1a0861);const _0x218953=$gameTemp['getLastPluginCommandInterpreter'](),_0x1f31ac=VisuMZ[_0x282671(0x220)](_0x1a0861[_0x282671(0x932)]),_0xd1d24=_0x1a0861[_0x282671(0x36b)],_0x44181a=_0x1a0861[_0x282671(0x44c)],_0x3ddb29=_0x1a0861['OffsetX'],_0x56cbaf=_0x1a0861[_0x282671(0x6e0)],_0x53995d=_0x1a0861[_0x282671(0xb0f)],_0x4b09e2=_0x1a0861[_0x282671(0x73e)],_0x5e239b=_0x1a0861['EasingType'],_0xacad47=_0x1a0861[_0x282671(0x3a6)],_0x470d72=_0x1a0861[_0x282671(0x579)];if(!_0x218953)return;for(const _0xab190e of _0x1f31ac){if(!_0xab190e)continue;let _0x3690c3=_0xab190e[_0x282671(0x3ba)]()[_0x282671(0x29f)],_0x9bb1a9=_0xab190e[_0x282671(0x3ba)]()[_0x282671(0xb2d)];if(_0xd1d24[_0x282671(0xc6a)](/home/i))_0x3690c3=_0xab190e[_0x282671(0x3ba)]()[_0x282671(0x26e)],_0x9bb1a9=_0xab190e[_0x282671(0x3ba)]()[_0x282671(0x45b)];else{if(_0xd1d24[_0x282671(0xc6a)](/center/i))_0x3690c3=Graphics[_0x282671(0x46e)]/0x2,_0x9bb1a9=Graphics[_0x282671(0x76d)]/0x2;else _0xd1d24[_0x282671(0xc6a)](/point (\d+), (\d+)/i)&&(_0x3690c3=Number(RegExp['$1']),_0x9bb1a9=Number(RegExp['$2']));}if(_0x44181a[_0x282671(0xc6a)](/none/i))_0x3690c3+=_0x3ddb29,_0x9bb1a9+=_0x56cbaf;else{if(_0x44181a[_0x282671(0xc6a)](/horz/i)&&_0x44181a[_0x282671(0xc6a)](/vert/i))_0x3690c3+=_0xab190e[_0x282671(0x864)]()?-_0x3ddb29:_0x3ddb29,_0x9bb1a9+=_0xab190e[_0x282671(0x864)]()?-_0x56cbaf:_0x56cbaf;else{if(_0x44181a['match'](/horz/i))_0x3690c3+=_0xab190e[_0x282671(0x864)]()?-_0x3ddb29:_0x3ddb29,_0x9bb1a9+=_0x56cbaf;else _0x44181a[_0x282671(0xc6a)](/vert/i)&&(_0x3690c3+=_0x3ddb29,_0x9bb1a9+=_0xab190e[_0x282671(0x864)]()?-_0x56cbaf:_0x56cbaf);}}_0xab190e[_0x282671(0x271)](_0x3690c3,_0x9bb1a9,_0x53995d,_0x4b09e2,_0x5e239b,-0x1),_0xab190e[_0x282671(0x9a8)](_0xacad47);}if(_0x470d72)_0x218953['setWaitMode']('battleMove');}),PluginManager['registerCommand'](pluginData[_0x1cc45e(0xc4e)],'ActSeq_Movement_HomeMoveToTarget',_0x29f461=>{const _0x1adccb=_0x1cc45e;if(!SceneManager[_0x1adccb(0x499)]())return;if(!$gameSystem['isSideView']())return;VisuMZ['ConvertParams'](_0x29f461,_0x29f461);const _0x49d1af=$gameTemp[_0x1adccb(0x92f)](),_0x191d40=VisuMZ['CreateActionSequenceTargets'](_0x29f461[_0x1adccb(0x493)]),_0x386e69=VisuMZ[_0x1adccb(0x220)](_0x29f461[_0x1adccb(0x9e4)]),_0x423149=_0x29f461[_0x1adccb(0xa3f)];let _0x523862=_0x29f461[_0x1adccb(0x59c)];const _0x39c66e=_0x29f461[_0x1adccb(0x44c)],_0x5646a2=_0x29f461[_0x1adccb(0x564)],_0x289863=_0x29f461[_0x1adccb(0x6e0)],_0x27f3b4=_0x29f461[_0x1adccb(0xb0f)],_0x39f543=_0x29f461[_0x1adccb(0x73e)],_0x348d20=_0x29f461[_0x1adccb(0xc22)],_0x311f63=_0x29f461[_0x1adccb(0x3a6)],_0x15bdd1=_0x29f461[_0x1adccb(0x579)],_0x4de193=Math[_0x1adccb(0x6cb)](..._0x386e69[_0x1adccb(0x63c)](_0x2dc147=>_0x2dc147[_0x1adccb(0x3ba)]()[_0x1adccb(0x29f)]-_0x2dc147[_0x1adccb(0x3ba)]()[_0x1adccb(0x2cc)]()/0x2)),_0xf068e9=Math['max'](..._0x386e69['map'](_0x11645b=>_0x11645b[_0x1adccb(0x3ba)]()['_baseX']+_0x11645b['battler']()[_0x1adccb(0x2cc)]()/0x2)),_0x4cbd3b=Math[_0x1adccb(0x6cb)](..._0x386e69[_0x1adccb(0x63c)](_0x1d796b=>_0x1d796b['battler']()[_0x1adccb(0xb2d)]-_0x1d796b['battler']()[_0x1adccb(0x75e)]())),_0x5a5c47=Math['max'](..._0x386e69[_0x1adccb(0x63c)](_0x2ad919=>_0x2ad919[_0x1adccb(0x3ba)]()['_baseY'])),_0x1806c2=_0x386e69[_0x1adccb(0x441)](_0x59b65b=>_0x59b65b[_0x1adccb(0x864)]())[_0x1adccb(0x96d)],_0x16ff04=_0x386e69[_0x1adccb(0x441)](_0x88571f=>_0x88571f[_0x1adccb(0x348)]())[_0x1adccb(0x96d)];let _0x3ec66f=0x0,_0x348d19=0x0;if(_0x423149[_0x1adccb(0xc6a)](/front/i))_0x3ec66f=_0x1806c2>=_0x16ff04?_0x4de193:_0xf068e9;else{if(_0x423149[_0x1adccb(0xc6a)](/middle/i))_0x3ec66f=(_0x4de193+_0xf068e9)/0x2,_0x523862=-0x1;else _0x423149[_0x1adccb(0xc6a)](/back/i)&&(_0x3ec66f=_0x1806c2>=_0x16ff04?_0xf068e9:_0x4de193);}if(_0x423149['match'](/head/i))_0x348d19=_0x4cbd3b;else{if(_0x423149['match'](/center/i))_0x348d19=(_0x4cbd3b+_0x5a5c47)/0x2;else _0x423149[_0x1adccb(0xc6a)](/base/i)&&(_0x348d19=_0x5a5c47);}if(!_0x49d1af)return;for(const _0x297cff of _0x191d40){if(!_0x297cff)continue;let _0x105f93=_0x3ec66f,_0x167a12=_0x348d19;if(_0x39c66e[_0x1adccb(0xc6a)](/none/i))_0x105f93+=_0x5646a2,_0x167a12+=_0x289863;else{if(_0x39c66e[_0x1adccb(0xc6a)](/horz/i)&&_0x39c66e[_0x1adccb(0xc6a)](/vert/i))_0x105f93+=_0x297cff[_0x1adccb(0x864)]()?-_0x5646a2:_0x5646a2,_0x167a12+=_0x297cff[_0x1adccb(0x864)]()?-_0x289863:_0x289863;else{if(_0x39c66e[_0x1adccb(0xc6a)](/horz/i))_0x105f93+=_0x297cff[_0x1adccb(0x864)]()?-_0x5646a2:_0x5646a2,_0x167a12+=_0x289863;else _0x39c66e[_0x1adccb(0xc6a)](/vert/i)&&(_0x105f93+=_0x5646a2,_0x167a12+=_0x297cff['isActor']()?-_0x289863:_0x289863);}}_0x297cff[_0x1adccb(0x271)](_0x105f93,_0x167a12,_0x27f3b4,_0x39f543,_0x348d20,_0x523862),_0x297cff[_0x1adccb(0x9a8)](_0x311f63);}if(_0x15bdd1)_0x49d1af[_0x1adccb(0xb13)]('battleMove');}),PluginManager[_0x1cc45e(0x68e)](pluginData[_0x1cc45e(0xc4e)],_0x1cc45e(0x8e2),_0x1a69ea=>{const _0x413eab=_0x1cc45e;if(!SceneManager['isSceneBattle']())return;if(!$gameSystem['isSideView']())return;VisuMZ[_0x413eab(0x796)](_0x1a69ea,_0x1a69ea);const _0x19d147=VisuMZ[_0x413eab(0x220)](_0x1a69ea[_0x413eab(0x932)]);let _0x59ca01=_0x1a69ea[_0x413eab(0xb32)]['match'](/back/i);for(const _0x581d9e of _0x19d147){if(!_0x581d9e)continue;if(_0x1a69ea[_0x413eab(0xb32)][_0x413eab(0xc6a)](/rand/i))_0x59ca01=Math['randomInt'](0x2);_0x581d9e[_0x413eab(0x697)](!!_0x59ca01);}}),PluginManager['registerCommand'](pluginData[_0x1cc45e(0xc4e)],'ActSeq_Movement_FaceJsPoint',_0x111d0e=>{const _0x1b3334=_0x1cc45e;if(!SceneManager[_0x1b3334(0x499)]())return;if(!$gameSystem[_0x1b3334(0xbb2)]())return;VisuMZ[_0x1b3334(0x796)](_0x111d0e,_0x111d0e);const _0x34955d=VisuMZ[_0x1b3334(0x220)](_0x111d0e['Targets']),_0x3b1dfe=_0x111d0e[_0x1b3334(0x910)];for(const _0x265706 of _0x34955d){if(!_0x265706)continue;const _0x3a8fe0=_0x111d0e['PointJS'](_0x265706)||{'x':0x0,'y':0x0};let _0x7e5fb2=_0x3a8fe0['x'],_0x205645=_0x3a8fe0['y'];_0x265706[_0x1b3334(0x696)](Math[_0x1b3334(0xb4b)](_0x7e5fb2),Math[_0x1b3334(0xb4b)](_0x205645),!!_0x3b1dfe);}}),PluginManager[_0x1cc45e(0x68e)](pluginData[_0x1cc45e(0xc4e)],_0x1cc45e(0x4ee),_0x1a61ad=>{const _0x7da7bc=_0x1cc45e;if(!SceneManager[_0x7da7bc(0x499)]())return;if(!$gameSystem[_0x7da7bc(0xbb2)]())return;VisuMZ['ConvertParams'](_0x1a61ad,_0x1a61ad);const _0x2fe211=VisuMZ['CreateActionSequenceTargets'](_0x1a61ad['Targets']);let _0xe603aa=_0x1a61ad[_0x7da7bc(0x263)];const _0x3deb6a=_0x1a61ad[_0x7da7bc(0x910)];for(const _0x1510ef of _0x2fe211){if(!_0x1510ef)continue;let _0x7153eb=_0x1510ef[_0x7da7bc(0x3ba)]()['_baseX'],_0x47d35d=_0x1510ef[_0x7da7bc(0x3ba)]()[_0x7da7bc(0xb2d)];if(_0xe603aa[_0x7da7bc(0xc6a)](/home/i))_0x7153eb=_0x1510ef[_0x7da7bc(0x3ba)]()[_0x7da7bc(0x26e)],_0x47d35d=_0x1510ef[_0x7da7bc(0x3ba)]()[_0x7da7bc(0x45b)];else{if(_0xe603aa[_0x7da7bc(0xc6a)](/center/i))_0x7153eb=Graphics[_0x7da7bc(0x46e)]/0x2,_0x47d35d=Graphics[_0x7da7bc(0x76d)]/0x2;else _0xe603aa[_0x7da7bc(0xc6a)](/point (\d+), (\d+)/i)&&(_0x7153eb=Number(RegExp['$1']),_0x47d35d=Number(RegExp['$2']));}_0x1510ef[_0x7da7bc(0x696)](Math[_0x7da7bc(0xb4b)](_0x7153eb),Math[_0x7da7bc(0xb4b)](_0x47d35d),!!_0x3deb6a);}}),PluginManager[_0x1cc45e(0x68e)](pluginData[_0x1cc45e(0xc4e)],_0x1cc45e(0x908),_0x341726=>{const _0x4521eb=_0x1cc45e;if(!SceneManager[_0x4521eb(0x499)]())return;if(!$gameSystem[_0x4521eb(0xbb2)]())return;VisuMZ['ConvertParams'](_0x341726,_0x341726);const _0x5e69c1=VisuMZ[_0x4521eb(0x220)](_0x341726[_0x4521eb(0x493)]),_0x43d6fe=VisuMZ['CreateActionSequenceTargets'](_0x341726[_0x4521eb(0x9e4)]),_0x327f92=_0x43d6fe[_0x4521eb(0x63c)](_0x3e7998=>_0x3e7998&&_0x3e7998[_0x4521eb(0x3ba)]()?_0x3e7998['battler']()[_0x4521eb(0x29f)]:0x0)/(_0x43d6fe[_0x4521eb(0x96d)]||0x1),_0x1f44b3=_0x43d6fe['map'](_0x2d095b=>_0x2d095b&&_0x2d095b[_0x4521eb(0x3ba)]()?_0x2d095b[_0x4521eb(0x3ba)]()[_0x4521eb(0xb2d)]:0x0)/(_0x43d6fe['length']||0x1),_0xfdef0a=_0x341726['FaceAway'];for(const _0x26a8f3 of _0x5e69c1){if(!_0x26a8f3)continue;_0x26a8f3[_0x4521eb(0x696)](Math[_0x4521eb(0xb4b)](_0x327f92),Math[_0x4521eb(0xb4b)](_0x1f44b3),!!_0xfdef0a);}}),PluginManager['registerCommand'](pluginData[_0x1cc45e(0xc4e)],'ActSeq_Movement_Float',_0x3430f5=>{const _0x1b3b26=_0x1cc45e;if(!SceneManager[_0x1b3b26(0x499)]())return;VisuMZ[_0x1b3b26(0x796)](_0x3430f5,_0x3430f5);const _0x4146c2=$gameTemp['getLastPluginCommandInterpreter'](),_0x43c33a=VisuMZ[_0x1b3b26(0x220)](_0x3430f5['Targets']),_0x508559=_0x3430f5['Height'],_0x4ceba7=_0x3430f5[_0x1b3b26(0xb0f)],_0x1c278a=_0x3430f5[_0x1b3b26(0xc22)],_0x7ca3cb=_0x3430f5[_0x1b3b26(0xb8e)];if(!_0x4146c2)return;for(const _0x56e4e4 of _0x43c33a){if(!_0x56e4e4)continue;_0x56e4e4[_0x1b3b26(0x792)](_0x508559,_0x4ceba7,_0x1c278a);}if(_0x7ca3cb)_0x4146c2[_0x1b3b26(0xb13)](_0x1b3b26(0x1fd));}),PluginManager[_0x1cc45e(0x68e)](pluginData[_0x1cc45e(0xc4e)],_0x1cc45e(0x616),_0x30dc71=>{const _0x42e383=_0x1cc45e;if(!SceneManager[_0x42e383(0x499)]())return;VisuMZ[_0x42e383(0x796)](_0x30dc71,_0x30dc71);const _0x144a0f=$gameTemp[_0x42e383(0x92f)]();if(!_0x144a0f)return;const _0x5a12b7=VisuMZ[_0x42e383(0x220)](_0x30dc71[_0x42e383(0x932)]);for(const _0x30fde5 of _0x5a12b7){if(!_0x30fde5)continue;_0x30fde5[_0x42e383(0xad6)]();}BattleManager['_subject']&&BattleManager[_0x42e383(0x301)][_0x42e383(0x85f)]();if(_0x30dc71[_0x42e383(0x579)])_0x144a0f['setWaitMode'](_0x42e383(0x386));}),PluginManager[_0x1cc45e(0x68e)](pluginData[_0x1cc45e(0xc4e)],_0x1cc45e(0xa8e),_0x42d938=>{const _0x221987=_0x1cc45e;if(!SceneManager['isSceneBattle']())return;VisuMZ['ConvertParams'](_0x42d938,_0x42d938);const _0x531e0d=$gameTemp[_0x221987(0x92f)](),_0x56e354=VisuMZ[_0x221987(0x220)](_0x42d938[_0x221987(0x932)]),_0x2e95f1=_0x42d938[_0x221987(0xcaa)],_0x29232e=_0x42d938[_0x221987(0xb0f)],_0x2fe9bd=_0x42d938[_0x221987(0xbbd)];if(!_0x531e0d)return;for(const _0x20a7b6 of _0x56e354){if(!_0x20a7b6)continue;_0x20a7b6[_0x221987(0x40c)](_0x2e95f1,_0x29232e);}if(_0x2fe9bd)_0x531e0d['setWaitMode'](_0x221987(0xa2e));}),PluginManager[_0x1cc45e(0x68e)](pluginData[_0x1cc45e(0xc4e)],_0x1cc45e(0x8d1),_0x5e36ca=>{const _0x2c3e61=_0x1cc45e;if(!SceneManager[_0x2c3e61(0x499)]())return;if(!$gameSystem[_0x2c3e61(0xbb2)]())return;VisuMZ['ConvertParams'](_0x5e36ca,_0x5e36ca);const _0x5e2f3d=$gameTemp[_0x2c3e61(0x92f)](),_0x53d68b=VisuMZ['CreateActionSequenceTargets'](_0x5e36ca[_0x2c3e61(0x932)]),_0x2595e6=_0x5e36ca['DistanceAdjust'],_0x3393a6=_0x5e36ca['DistanceX'],_0x3c4999=_0x5e36ca[_0x2c3e61(0x873)],_0x4309db=_0x5e36ca[_0x2c3e61(0xb0f)],_0x141e33=_0x5e36ca['FaceDirection'],_0x44f12d=_0x5e36ca[_0x2c3e61(0xc22)],_0x5dd090=_0x5e36ca['MotionType'],_0x4a0d59=_0x5e36ca[_0x2c3e61(0x579)];if(!_0x5e2f3d)return;for(const _0x23437e of _0x53d68b){if(!_0x23437e)continue;let _0x2e55bd=_0x3393a6,_0x1f1194=_0x3c4999;if(_0x2595e6['match'](/horz/i))_0x2e55bd*=_0x23437e[_0x2c3e61(0x864)]()?-0x1:0x1;if(_0x2595e6[_0x2c3e61(0xc6a)](/vert/i))_0x1f1194*=_0x23437e[_0x2c3e61(0x864)]()?-0x1:0x1;_0x23437e[_0x2c3e61(0x39e)](_0x2e55bd,_0x1f1194,_0x4309db,_0x141e33,_0x44f12d),_0x23437e['requestMotion'](_0x5dd090);}if(_0x4a0d59)_0x5e2f3d[_0x2c3e61(0xb13)](_0x2c3e61(0x386));}),PluginManager[_0x1cc45e(0x68e)](pluginData[_0x1cc45e(0xc4e)],_0x1cc45e(0x95a),_0x1c4213=>{const _0x21dede=_0x1cc45e;if(!SceneManager[_0x21dede(0x499)]())return;if(!$gameSystem[_0x21dede(0xbb2)]())return;VisuMZ['ConvertParams'](_0x1c4213,_0x1c4213);const _0x13fbdd=$gameTemp[_0x21dede(0x92f)](),_0x21a2dd=VisuMZ[_0x21dede(0x220)](_0x1c4213[_0x21dede(0x932)]),_0x49d0d9=_0x1c4213[_0x21dede(0x44c)],_0x24b9aa=_0x1c4213[_0x21dede(0x564)],_0x26b49c=_0x1c4213[_0x21dede(0x6e0)],_0xcf03e9=_0x1c4213[_0x21dede(0xb0f)],_0x2de47f=_0x1c4213[_0x21dede(0x73e)],_0x26846a=_0x1c4213[_0x21dede(0xc22)],_0x4e2167=_0x1c4213['MotionType'],_0x572228=_0x1c4213[_0x21dede(0x579)];if(!_0x13fbdd)return;for(const _0x2e18ae of _0x21a2dd){if(!_0x2e18ae)continue;const _0x5e2e64=_0x1c4213['DestinationJS'](_0x2e18ae)||{'x':0x0,'y':0x0};let _0x2722ac=_0x5e2e64['x'],_0x3e5f3b=_0x5e2e64['y'];if(_0x49d0d9[_0x21dede(0xc6a)](/none/i))_0x2722ac+=_0x24b9aa,_0x3e5f3b+=_0x26b49c;else{if(_0x49d0d9['match'](/horz/i)&&_0x49d0d9[_0x21dede(0xc6a)](/vert/i))_0x2722ac+=_0x2e18ae[_0x21dede(0x864)]()?-_0x24b9aa:_0x24b9aa,_0x3e5f3b+=_0x2e18ae[_0x21dede(0x864)]()?-_0x26b49c:_0x26b49c;else{if(_0x49d0d9[_0x21dede(0xc6a)](/horz/i))_0x2722ac+=_0x2e18ae['isActor']()?-_0x24b9aa:_0x24b9aa,_0x3e5f3b+=_0x26b49c;else _0x49d0d9[_0x21dede(0xc6a)](/vert/i)&&(_0x2722ac+=_0x24b9aa,_0x3e5f3b+=_0x2e18ae[_0x21dede(0x864)]()?-_0x26b49c:_0x26b49c);}}_0x2e18ae[_0x21dede(0xcdf)](_0x2722ac,_0x3e5f3b,_0xcf03e9,_0x2de47f,_0x26846a,-0x1),_0x2e18ae[_0x21dede(0x9a8)](_0x4e2167);}if(_0x572228)_0x13fbdd[_0x21dede(0xb13)]('battleMove');}),PluginManager['registerCommand'](pluginData[_0x1cc45e(0xc4e)],_0x1cc45e(0xc04),_0x2e5364=>{const _0x1aac10=_0x1cc45e;if(!SceneManager[_0x1aac10(0x499)]())return;if(!$gameSystem[_0x1aac10(0xbb2)]())return;VisuMZ['ConvertParams'](_0x2e5364,_0x2e5364);const _0x2fbae5=$gameTemp[_0x1aac10(0x92f)](),_0x5e5f14=VisuMZ[_0x1aac10(0x220)](_0x2e5364[_0x1aac10(0x932)]),_0x270210=_0x2e5364[_0x1aac10(0x36b)],_0x4070ee=_0x2e5364[_0x1aac10(0x44c)],_0x5ecf6c=_0x2e5364[_0x1aac10(0x564)],_0x16dde8=_0x2e5364['OffsetY'],_0x3e84c8=_0x2e5364['Duration'],_0x51d611=_0x2e5364[_0x1aac10(0x73e)],_0x2295be=_0x2e5364[_0x1aac10(0xc22)],_0x9813cb=_0x2e5364['MotionType'],_0x3ed2c6=_0x2e5364['WaitForMovement'];if(!_0x2fbae5)return;for(const _0x4cffbb of _0x5e5f14){if(!_0x4cffbb)continue;let _0x43e039=_0x4cffbb[_0x1aac10(0x3ba)]()[_0x1aac10(0x29f)],_0x2a0fce=_0x4cffbb['battler']()[_0x1aac10(0xb2d)];if(_0x270210['match'](/home/i))_0x43e039=_0x4cffbb['battler']()[_0x1aac10(0x26e)],_0x2a0fce=_0x4cffbb[_0x1aac10(0x3ba)]()['_homeY'];else{if(_0x270210[_0x1aac10(0xc6a)](/center/i))_0x43e039=Graphics[_0x1aac10(0x46e)]/0x2,_0x2a0fce=Graphics[_0x1aac10(0x76d)]/0x2;else _0x270210[_0x1aac10(0xc6a)](/point (\d+), (\d+)/i)&&(_0x43e039=Number(RegExp['$1']),_0x2a0fce=Number(RegExp['$2']));}if(_0x4070ee[_0x1aac10(0xc6a)](/none/i))_0x43e039+=_0x5ecf6c,_0x2a0fce+=_0x16dde8;else{if(_0x4070ee[_0x1aac10(0xc6a)](/horz/i)&&_0x4070ee['match'](/vert/i))_0x43e039+=_0x4cffbb['isActor']()?-_0x5ecf6c:_0x5ecf6c,_0x2a0fce+=_0x4cffbb[_0x1aac10(0x864)]()?-_0x16dde8:_0x16dde8;else{if(_0x4070ee[_0x1aac10(0xc6a)](/horz/i))_0x43e039+=_0x4cffbb[_0x1aac10(0x864)]()?-_0x5ecf6c:_0x5ecf6c,_0x2a0fce+=_0x16dde8;else _0x4070ee[_0x1aac10(0xc6a)](/vert/i)&&(_0x43e039+=_0x5ecf6c,_0x2a0fce+=_0x4cffbb['isActor']()?-_0x16dde8:_0x16dde8);}}_0x4cffbb[_0x1aac10(0xcdf)](_0x43e039,_0x2a0fce,_0x3e84c8,_0x51d611,_0x2295be,-0x1),_0x4cffbb[_0x1aac10(0x9a8)](_0x9813cb);}if(_0x3ed2c6)_0x2fbae5['setWaitMode'](_0x1aac10(0x386));}),PluginManager[_0x1cc45e(0x68e)](pluginData[_0x1cc45e(0xc4e)],_0x1cc45e(0x65a),_0x3b9929=>{const _0x3bb9cb=_0x1cc45e;if(!SceneManager['isSceneBattle']())return;if(!$gameSystem[_0x3bb9cb(0xbb2)]())return;VisuMZ[_0x3bb9cb(0x796)](_0x3b9929,_0x3b9929);const _0x100b7a=$gameTemp[_0x3bb9cb(0x92f)](),_0x3b0743=VisuMZ[_0x3bb9cb(0x220)](_0x3b9929[_0x3bb9cb(0x493)]),_0x9e7c6f=VisuMZ[_0x3bb9cb(0x220)](_0x3b9929[_0x3bb9cb(0x9e4)]),_0x474b43=_0x3b9929[_0x3bb9cb(0xa3f)];let _0x29f2af=_0x3b9929[_0x3bb9cb(0x59c)];const _0x2f6113=_0x3b9929['OffsetAdjust'],_0x4db665=_0x3b9929[_0x3bb9cb(0x564)],_0x297eae=_0x3b9929['OffsetY'],_0x5dbff8=_0x3b9929['Duration'],_0x2da7b0=_0x3b9929[_0x3bb9cb(0x73e)],_0x14dff9=_0x3b9929[_0x3bb9cb(0xc22)],_0x8114ee=_0x3b9929[_0x3bb9cb(0x3a6)],_0x219194=_0x3b9929['WaitForMovement'],_0x4fba51=Math[_0x3bb9cb(0x6cb)](..._0x9e7c6f['map'](_0x5457d3=>_0x5457d3[_0x3bb9cb(0x3ba)]()[_0x3bb9cb(0x29f)]-_0x5457d3['battler']()[_0x3bb9cb(0x2cc)]()/0x2)),_0x7538f6=Math[_0x3bb9cb(0x485)](..._0x9e7c6f[_0x3bb9cb(0x63c)](_0x30a372=>_0x30a372['battler']()['_baseX']+_0x30a372[_0x3bb9cb(0x3ba)]()['mainSpriteWidth']()/0x2)),_0x17ad3e=Math[_0x3bb9cb(0x6cb)](..._0x9e7c6f[_0x3bb9cb(0x63c)](_0x57c43d=>_0x57c43d['battler']()[_0x3bb9cb(0xb2d)]-_0x57c43d[_0x3bb9cb(0x3ba)]()[_0x3bb9cb(0x75e)]())),_0x3865b8=Math[_0x3bb9cb(0x485)](..._0x9e7c6f[_0x3bb9cb(0x63c)](_0x52f96f=>_0x52f96f[_0x3bb9cb(0x3ba)]()['_baseY'])),_0x5c7e10=_0x9e7c6f[_0x3bb9cb(0x441)](_0x163be3=>_0x163be3[_0x3bb9cb(0x864)]())[_0x3bb9cb(0x96d)],_0xe3d0cd=_0x9e7c6f['filter'](_0x5a975a=>_0x5a975a['isEnemy']())['length'];let _0x21e0fb=0x0,_0x1a3636=0x0;if(_0x474b43[_0x3bb9cb(0xc6a)](/front/i))_0x21e0fb=_0x5c7e10>=_0xe3d0cd?_0x4fba51:_0x7538f6;else{if(_0x474b43[_0x3bb9cb(0xc6a)](/middle/i))_0x21e0fb=(_0x4fba51+_0x7538f6)/0x2,_0x29f2af=-0x1;else _0x474b43['match'](/back/i)&&(_0x21e0fb=_0x5c7e10>=_0xe3d0cd?_0x7538f6:_0x4fba51);}if(_0x474b43[_0x3bb9cb(0xc6a)](/head/i))_0x1a3636=_0x17ad3e;else{if(_0x474b43[_0x3bb9cb(0xc6a)](/center/i))_0x1a3636=(_0x17ad3e+_0x3865b8)/0x2;else _0x474b43['match'](/base/i)&&(_0x1a3636=_0x3865b8);}if(!_0x100b7a)return;for(const _0x51c167 of _0x3b0743){if(!_0x51c167)continue;let _0x2d2b58=_0x21e0fb,_0x4aec63=_0x1a3636;if(_0x2f6113[_0x3bb9cb(0xc6a)](/none/i))_0x2d2b58+=_0x4db665,_0x4aec63+=_0x297eae;else{if(_0x2f6113[_0x3bb9cb(0xc6a)](/horz/i)&&_0x2f6113[_0x3bb9cb(0xc6a)](/vert/i))_0x2d2b58+=_0x51c167[_0x3bb9cb(0x864)]()?-_0x4db665:_0x4db665,_0x4aec63+=_0x51c167[_0x3bb9cb(0x864)]()?-_0x297eae:_0x297eae;else{if(_0x2f6113[_0x3bb9cb(0xc6a)](/horz/i))_0x2d2b58+=_0x51c167[_0x3bb9cb(0x864)]()?-_0x4db665:_0x4db665,_0x4aec63+=_0x297eae;else _0x2f6113[_0x3bb9cb(0xc6a)](/vert/i)&&(_0x2d2b58+=_0x4db665,_0x4aec63+=_0x51c167['isActor']()?-_0x297eae:_0x297eae);}}_0x51c167[_0x3bb9cb(0xcdf)](_0x2d2b58,_0x4aec63,_0x5dbff8,_0x2da7b0,_0x14dff9,_0x29f2af),_0x51c167[_0x3bb9cb(0x9a8)](_0x8114ee);}if(_0x219194)_0x100b7a[_0x3bb9cb(0xb13)](_0x3bb9cb(0x386));}),PluginManager['registerCommand'](pluginData['name'],_0x1cc45e(0xa3e),_0x3b1438=>{const _0x4f2dae=_0x1cc45e;if(!SceneManager[_0x4f2dae(0x499)]())return;VisuMZ[_0x4f2dae(0x796)](_0x3b1438,_0x3b1438);const _0x3e36b8=$gameTemp['getLastPluginCommandInterpreter'](),_0x29082c=VisuMZ[_0x4f2dae(0x220)](_0x3b1438[_0x4f2dae(0x932)]),_0xcdf3e6=_0x3b1438[_0x4f2dae(0x459)],_0x2b2fab=_0x3b1438['Duration'],_0x45c18e=_0x3b1438[_0x4f2dae(0xc22)],_0xf01073=_0x3b1438['WaitForOpacity'];if(!_0x3e36b8)return;for(const _0x2fa006 of _0x29082c){if(!_0x2fa006)continue;_0x2fa006['changeBattlerOpacity'](_0xcdf3e6,_0x2b2fab,_0x45c18e);}if(_0xf01073)_0x3e36b8[_0x4f2dae(0xb13)](_0x4f2dae(0x9b5));}),PluginManager['registerCommand'](pluginData[_0x1cc45e(0xc4e)],_0x1cc45e(0x456),_0x800ff=>{const _0x2be29f=_0x1cc45e;if(!SceneManager[_0x2be29f(0x499)]())return;VisuMZ['ConvertParams'](_0x800ff,_0x800ff);const _0xd3497e=$gameTemp[_0x2be29f(0x92f)](),_0x398ef9=VisuMZ[_0x2be29f(0x220)](_0x800ff[_0x2be29f(0x932)]),_0xcd931a=_0x800ff[_0x2be29f(0xbdc)],_0x4479b6=_0x800ff[_0x2be29f(0x93d)],_0x3ba386=_0x800ff['Duration'],_0x31114c=_0x800ff[_0x2be29f(0xc22)],_0xbc349b=_0x800ff[_0x2be29f(0xa19)];if(!_0xd3497e)return;for(const _0x56b8b4 of _0x398ef9){if(!_0x56b8b4)continue;_0x56b8b4['growBattler'](_0xcd931a,_0x4479b6,_0x3ba386,_0x31114c);}if(_0xbc349b)_0xd3497e[_0x2be29f(0xb13)](_0x2be29f(0x74e));}),PluginManager[_0x1cc45e(0x68e)](pluginData[_0x1cc45e(0xc4e)],_0x1cc45e(0x551),_0x434254=>{const _0x1e4c57=_0x1cc45e;if(!SceneManager[_0x1e4c57(0x499)]())return;VisuMZ[_0x1e4c57(0x796)](_0x434254,_0x434254);const _0x1195b3=$gameTemp[_0x1e4c57(0x92f)](),_0x1cac12=VisuMZ[_0x1e4c57(0x220)](_0x434254[_0x1e4c57(0x932)]),_0x5ca0a3=_0x434254['SkewX'],_0x52dc18=_0x434254[_0x1e4c57(0xb35)],_0x5d12e3=_0x434254[_0x1e4c57(0xb0f)],_0x3d3346=_0x434254[_0x1e4c57(0xc22)],_0x4f992a=_0x434254['WaitForSkew'];if(!_0x1195b3)return;for(const _0x291258 of _0x1cac12){if(!_0x291258)continue;_0x291258[_0x1e4c57(0x392)](_0x5ca0a3,_0x52dc18,_0x5d12e3,_0x3d3346);}if(_0x4f992a)_0x1195b3[_0x1e4c57(0xb13)](_0x1e4c57(0x201));}),PluginManager['registerCommand'](pluginData[_0x1cc45e(0xc4e)],_0x1cc45e(0xbd8),_0x463302=>{const _0x5f2591=_0x1cc45e;if(!SceneManager[_0x5f2591(0x499)]())return;VisuMZ['ConvertParams'](_0x463302,_0x463302);const _0x5a0735=$gameTemp[_0x5f2591(0x92f)](),_0x46c0ba=VisuMZ[_0x5f2591(0x220)](_0x463302[_0x5f2591(0x932)]),_0xd275c4=_0x463302[_0x5f2591(0x378)],_0x9277e1=_0x463302['Duration'],_0x18a1f9=_0x463302[_0x5f2591(0xc22)],_0x48081a=_0x463302[_0x5f2591(0xc87)],_0x2e110d=_0x463302['WaitForSpin'];if(!_0x5a0735)return;for(const _0x27d368 of _0x46c0ba){if(!_0x27d368)continue;_0x27d368[_0x5f2591(0xaa2)](_0xd275c4,_0x9277e1,_0x18a1f9,_0x48081a);}if(_0x2e110d)_0x5a0735[_0x5f2591(0xb13)](_0x5f2591(0xaea));}),PluginManager[_0x1cc45e(0x68e)](pluginData[_0x1cc45e(0xc4e)],_0x1cc45e(0x6c7),_0x5ad759=>{const _0x28f476=_0x1cc45e;if(!SceneManager['isSceneBattle']())return;const _0x104e1f=$gameTemp[_0x28f476(0x92f)]();if(!_0x104e1f)return;_0x104e1f[_0x28f476(0xb13)](_0x28f476(0x1fd));}),PluginManager[_0x1cc45e(0x68e)](pluginData[_0x1cc45e(0xc4e)],'ActSeq_Movement_WaitForJump',_0x1058e0=>{const _0x13d49d=_0x1cc45e;if(!SceneManager[_0x13d49d(0x499)]())return;const _0x599636=$gameTemp[_0x13d49d(0x92f)]();if(!_0x599636)return;_0x599636[_0x13d49d(0xb13)]('battleJump');}),PluginManager[_0x1cc45e(0x68e)](pluginData['name'],'ActSeq_Movement_WaitForMovement',_0xa91072=>{const _0x4bbb43=_0x1cc45e;if(!SceneManager[_0x4bbb43(0x499)]())return;const _0x402c50=$gameTemp[_0x4bbb43(0x92f)]();if(!_0x402c50)return;_0x402c50[_0x4bbb43(0xb13)]('battleMove');}),PluginManager[_0x1cc45e(0x68e)](pluginData[_0x1cc45e(0xc4e)],_0x1cc45e(0x574),_0x32b5b7=>{const _0x32e18c=_0x1cc45e;if(!SceneManager[_0x32e18c(0x499)]())return;const _0xe7a8d5=$gameTemp[_0x32e18c(0x92f)]();if(!_0xe7a8d5)return;_0xe7a8d5[_0x32e18c(0xb13)]('battleOpacity');}),PluginManager[_0x1cc45e(0x68e)](pluginData['name'],_0x1cc45e(0x508),_0x33e639=>{const _0x509652=_0x1cc45e;if(!SceneManager[_0x509652(0x499)]())return;const _0x5bf462=$gameTemp[_0x509652(0x92f)]();if(!_0x5bf462)return;_0x5bf462[_0x509652(0xb13)]('battleGrow');}),PluginManager[_0x1cc45e(0x68e)](pluginData[_0x1cc45e(0xc4e)],_0x1cc45e(0x247),_0x54c74d=>{const _0x4361cd=_0x1cc45e;if(!SceneManager['isSceneBattle']())return;const _0x2eb2b6=$gameTemp[_0x4361cd(0x92f)]();if(!_0x2eb2b6)return;_0x2eb2b6[_0x4361cd(0xb13)](_0x4361cd(0x201));}),PluginManager[_0x1cc45e(0x68e)](pluginData[_0x1cc45e(0xc4e)],_0x1cc45e(0xaa1),_0x18e333=>{const _0xf32726=_0x1cc45e;if(!SceneManager[_0xf32726(0x499)]())return;const _0x39b9ea=$gameTemp['getLastPluginCommandInterpreter']();if(!_0x39b9ea)return;_0x39b9ea['setWaitMode']('battleSpin');}),VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x254)]=function(){const _0x418108=_0x1cc45e;if(!Imported[_0x418108(0x47a)])return;if(VisuMZ['ActSeqProjectiles'][_0x418108(0x6bc)]<1.08){let _0x3ccdc7='';_0x3ccdc7+=_0x418108(0x8ea),_0x3ccdc7+='in\x20order\x20for\x20VisuMZ_1_BattleCore\x20to\x20work.',alert(_0x3ccdc7),SceneManager[_0x418108(0x5c1)]();}},PluginManager['registerCommand'](pluginData[_0x1cc45e(0xc4e)],_0x1cc45e(0xa0c),_0x10ffdf=>{const _0x2759ce=_0x1cc45e;if(!SceneManager['isSceneBattle']())return;if(!Imported[_0x2759ce(0x47a)])return;VisuMZ[_0x2759ce(0x796)](_0x10ffdf,_0x10ffdf),VisuMZ['BattleCore'][_0x2759ce(0x254)]();const _0xccc519=$gameTemp[_0x2759ce(0x92f)](),_0x3a2910=_0x10ffdf['WaitForProjectile'];if(!_0xccc519)return;const _0x50182a=BattleManager[_0x2759ce(0x2e6)];if(!_0x50182a)return;_0x50182a[_0x2759ce(0x1f6)](_0x10ffdf);if(_0x3a2910)_0xccc519[_0x2759ce(0xb13)]('battleProjectiles');}),PluginManager[_0x1cc45e(0x68e)](pluginData[_0x1cc45e(0xc4e)],_0x1cc45e(0xbcb),_0x4c979c=>{const _0x545d96=_0x1cc45e;if(!SceneManager[_0x545d96(0x499)]())return;if(!Imported[_0x545d96(0x47a)])return;VisuMZ['ConvertParams'](_0x4c979c,_0x4c979c),VisuMZ[_0x545d96(0x2c5)][_0x545d96(0x254)]();const _0x3d32bc=$gameTemp['getLastPluginCommandInterpreter'](),_0x1a10c3=_0x4c979c[_0x545d96(0x70f)];if(!_0x3d32bc)return;const _0x395e16=BattleManager[_0x545d96(0x2e6)];if(!_0x395e16)return;_0x395e16[_0x545d96(0x1f6)](_0x4c979c);if(_0x1a10c3)_0x3d32bc[_0x545d96(0xb13)]('battleProjectiles');}),PluginManager[_0x1cc45e(0x68e)](pluginData[_0x1cc45e(0xc4e)],'ActSeq_Projectile_Picture',_0x2dd425=>{const _0x3f770e=_0x1cc45e;if(!SceneManager['isSceneBattle']())return;if(!Imported['VisuMZ_3_ActSeqProjectiles'])return;VisuMZ[_0x3f770e(0x796)](_0x2dd425,_0x2dd425),VisuMZ['BattleCore'][_0x3f770e(0x254)]();const _0x21e346=$gameTemp['getLastPluginCommandInterpreter'](),_0x5601be=_0x2dd425['WaitForProjectile'];if(!_0x21e346)return;const _0x119e55=BattleManager[_0x3f770e(0x2e6)];if(!_0x119e55)return;_0x119e55['createActionSequenceProjectile'](_0x2dd425);if(_0x5601be)_0x21e346[_0x3f770e(0xb13)](_0x3f770e(0x2d0));}),PluginManager[_0x1cc45e(0x68e)](pluginData[_0x1cc45e(0xc4e)],_0x1cc45e(0x958),_0xa66f2=>{const _0x328635=_0x1cc45e;if(!SceneManager[_0x328635(0x499)]())return;if(!Imported[_0x328635(0xa81)])return;VisuMZ['ConvertParams'](_0xa66f2,_0xa66f2);const _0x56937d=$gameTemp['getLastPluginCommandInterpreter'](),_0x1301b1=_0xa66f2[_0x328635(0xb62)];if(!_0x56937d)return;$gameScreen[_0x328635(0x88a)](_0xa66f2[_0x328635(0xc2f)],_0xa66f2[_0x328635(0xb35)],_0xa66f2[_0x328635(0xb0f)],_0xa66f2[_0x328635(0xc22)]);if(_0x1301b1)_0x56937d['setWaitMode'](_0x328635(0x1bd));}),PluginManager[_0x1cc45e(0x68e)](pluginData[_0x1cc45e(0xc4e)],_0x1cc45e(0x326),_0xf18839=>{const _0x57ed08=_0x1cc45e;if(!SceneManager[_0x57ed08(0x499)]())return;if(!Imported[_0x57ed08(0xa81)])return;VisuMZ[_0x57ed08(0x796)](_0xf18839,_0xf18839);const _0x56571f=$gameTemp['getLastPluginCommandInterpreter'](),_0xc747e3=_0xf18839[_0x57ed08(0xb62)];if(!_0x56571f)return;$gameScreen[_0x57ed08(0x88a)](0x0,0x0,_0xf18839[_0x57ed08(0xb0f)],_0xf18839[_0x57ed08(0xc22)]);if(_0xc747e3)_0x56571f[_0x57ed08(0xb13)](_0x57ed08(0x1bd));}),PluginManager['registerCommand'](pluginData['name'],_0x1cc45e(0xca1),_0x1ec552=>{const _0x4ac77d=_0x1cc45e;if(!SceneManager[_0x4ac77d(0x499)]())return;if(!Imported[_0x4ac77d(0xa81)])return;const _0x3f09a5=$gameTemp[_0x4ac77d(0x92f)]();if(!_0x3f09a5)return;_0x3f09a5[_0x4ac77d(0xb13)](_0x4ac77d(0x1bd));}),PluginManager[_0x1cc45e(0x68e)](pluginData[_0x1cc45e(0xc4e)],_0x1cc45e(0x1c2),_0x2c1b90=>{const _0x1f0e62=_0x1cc45e;if(!SceneManager[_0x1f0e62(0x499)]())return;VisuMZ['ConvertParams'](_0x2c1b90,_0x2c1b90);const _0x21f017=$gameTemp[_0x1f0e62(0x92f)](),_0x205389=_0x2c1b90[_0x1f0e62(0xb10)],_0x2952db=_0x2c1b90[_0x1f0e62(0x1e0)];if(!_0x21f017)return;BattleManager[_0x1f0e62(0x259)]=_0x205389,BattleManager[_0x1f0e62(0x757)]=BattleManager[_0x1f0e62(0xb50)]?BattleManager[_0x1f0e62(0xb50)][BattleManager[_0x1f0e62(0x259)]]||null:null;if(window[_0x1f0e62(0xbf4)])BattleManager['updateBattleVariables']();BattleManager['_target']&&_0x2952db['toUpperCase']()[_0x1f0e62(0xc8e)]()!==_0x1f0e62(0xbc8)&&_0x21f017[_0x1f0e62(0xa5e)]([_0x2952db]);}),PluginManager[_0x1cc45e(0x68e)](pluginData[_0x1cc45e(0xc4e)],'ActSeq_Target_NextTarget',_0x599ccb=>{const _0x6a6b05=_0x1cc45e;if(!SceneManager[_0x6a6b05(0x499)]())return;VisuMZ[_0x6a6b05(0x796)](_0x599ccb,_0x599ccb);const _0x4cf9ad=$gameTemp[_0x6a6b05(0x92f)](),_0x136c04=_0x599ccb[_0x6a6b05(0x1e0)];if(!_0x4cf9ad)return;BattleManager[_0x6a6b05(0x259)]++,BattleManager['_target']=BattleManager[_0x6a6b05(0xb50)][BattleManager[_0x6a6b05(0x259)]]||null;if(window['$target'])BattleManager[_0x6a6b05(0x7fc)]();BattleManager[_0x6a6b05(0x757)]&&_0x136c04['toUpperCase']()[_0x6a6b05(0xc8e)]()!==_0x6a6b05(0xbc8)&&_0x4cf9ad['command119']([_0x136c04]);}),PluginManager['registerCommand'](pluginData['name'],_0x1cc45e(0x3ae),_0x298441=>{const _0x588945=_0x1cc45e;if(!SceneManager['isSceneBattle']())return;VisuMZ[_0x588945(0x796)](_0x298441,_0x298441);const _0x5b4a38=$gameTemp[_0x588945(0x92f)](),_0x556538=_0x298441[_0x588945(0x1e0)];if(!_0x5b4a38)return;BattleManager['_targetIndex']--,BattleManager[_0x588945(0x757)]=BattleManager[_0x588945(0xb50)][BattleManager['_targetIndex']]||null;if(window['$target'])BattleManager[_0x588945(0x7fc)]();BattleManager['_target']&&_0x556538[_0x588945(0x2b6)]()['trim']()!==_0x588945(0xbc8)&&_0x5b4a38[_0x588945(0xa5e)]([_0x556538]);}),PluginManager[_0x1cc45e(0x68e)](pluginData['name'],'ActSeq_Target_RandTarget',_0x3bbb62=>{const _0x1322a4=_0x1cc45e;if(!SceneManager[_0x1322a4(0x499)]())return;VisuMZ[_0x1322a4(0x796)](_0x3bbb62,_0x3bbb62);const _0x26b54f=$gameTemp[_0x1322a4(0x92f)](),_0x1dd50d=_0x3bbb62['ForceRandom'],_0x3440e0=_0x3bbb62['JumpToLabel'];if(!_0x26b54f)return;const _0x27bdec=BattleManager[_0x1322a4(0x259)];for(;;){BattleManager[_0x1322a4(0x259)]=Math[_0x1322a4(0x1fe)](BattleManager[_0x1322a4(0xb50)]['length']);if(!_0x1dd50d)break;if(BattleManager[_0x1322a4(0x259)]!==_0x27bdec)break;if(BattleManager[_0x1322a4(0xb50)][_0x1322a4(0x96d)]<=0x1){BattleManager[_0x1322a4(0x259)]=0x0;break;}}BattleManager[_0x1322a4(0x757)]=BattleManager[_0x1322a4(0xb50)][BattleManager[_0x1322a4(0x259)]]||null;if(window[_0x1322a4(0xbf4)])BattleManager[_0x1322a4(0x7fc)]();BattleManager[_0x1322a4(0x757)]&&_0x3440e0['toUpperCase']()[_0x1322a4(0xc8e)]()!=='UNTITLED'&&_0x26b54f[_0x1322a4(0xa5e)]([_0x3440e0]);}),PluginManager[_0x1cc45e(0x68e)](pluginData['name'],_0x1cc45e(0x5f1),_0x39bd62=>{const _0x2057f7=_0x1cc45e;if(!SceneManager['isSceneBattle']())return;if(!Imported[_0x2057f7(0x5e0)])return;if(!ConfigManager[_0x2057f7(0xa82)])return;VisuMZ[_0x2057f7(0x796)](_0x39bd62,_0x39bd62);const _0x87d1cc=VisuMZ[_0x2057f7(0x220)](_0x39bd62[_0x2057f7(0x932)]);let _0x4fb44a=_0x39bd62[_0x2057f7(0x1e9)]||'';for(const _0x163da9 of _0x87d1cc){if(!_0x163da9)continue;_0x163da9[_0x2057f7(0x8dd)](_0x4fb44a);}}),PluginManager[_0x1cc45e(0x68e)](pluginData[_0x1cc45e(0xc4e)],_0x1cc45e(0x1d3),_0x3405a3=>{const _0x2476de=_0x1cc45e;if(!SceneManager[_0x2476de(0x499)]())return;if(!Imported[_0x2476de(0x5e0)])return;if(!ConfigManager[_0x2476de(0xa82)])return;VisuMZ[_0x2476de(0x796)](_0x3405a3,_0x3405a3);const _0xde5781=VisuMZ[_0x2476de(0x220)](_0x3405a3[_0x2476de(0x932)]);let _0x2584cd=(_0x3405a3[_0x2476de(0x689)]||'')+(_0x3405a3[_0x2476de(0x9ed)]||'');for(const _0x384461 of _0xde5781){if(!_0x384461)continue;_0x384461[_0x2476de(0x8dd)](_0x2584cd);}}),PluginManager[_0x1cc45e(0x68e)](pluginData[_0x1cc45e(0xc4e)],_0x1cc45e(0xa0f),_0x48d0db=>{const _0x509b89=_0x1cc45e;if(!SceneManager['isSceneBattle']())return;VisuMZ[_0x509b89(0x796)](_0x48d0db,_0x48d0db);const _0x156e1e=VisuMZ[_0x509b89(0x220)](_0x48d0db[_0x509b89(0x932)]);for(const _0x2254f4 of _0x156e1e){if(!_0x2254f4)continue;if(!_0x2254f4[_0x509b89(0x864)]())continue;_0x2254f4[_0x509b89(0xb04)]();}}),PluginManager['registerCommand'](pluginData[_0x1cc45e(0xc4e)],'ActSeq_Weapon_NextActiveWeapon',_0x5a51bf=>{const _0x29d4da=_0x1cc45e;if(!SceneManager[_0x29d4da(0x499)]())return;VisuMZ[_0x29d4da(0x796)](_0x5a51bf,_0x5a51bf);const _0x5b70de=$gameTemp[_0x29d4da(0x92f)]();let _0x108436=![];const _0x4a2ecf=_0x5a51bf[_0x29d4da(0x1e0)],_0x215fd4=VisuMZ[_0x29d4da(0x220)](_0x5a51bf['Targets']);for(const _0x3456ca of _0x215fd4){if(!_0x3456ca)continue;if(!_0x3456ca[_0x29d4da(0x864)]())continue;_0x3456ca[_0x29d4da(0x711)](),_0x3456ca[_0x29d4da(0xa8c)]()[_0x29d4da(0x96d)]>0x0?_0x108436=!![]:_0x3456ca['clearActiveWeaponSlot']();}_0x108436&&_0x4a2ecf[_0x29d4da(0x2b6)]()[_0x29d4da(0xc8e)]()!==_0x29d4da(0xbc8)&&_0x5b70de[_0x29d4da(0xa5e)]([_0x4a2ecf]);}),PluginManager[_0x1cc45e(0x68e)](pluginData[_0x1cc45e(0xc4e)],_0x1cc45e(0xb01),_0x3da835=>{const _0x16fd37=_0x1cc45e;if(!SceneManager[_0x16fd37(0x499)]())return;VisuMZ[_0x16fd37(0x796)](_0x3da835,_0x3da835);let _0x502c70=_0x3da835[_0x16fd37(0x8b8)];_0x502c70--,_0x502c70=Math['max'](_0x502c70,0x0);const _0x121526=VisuMZ['CreateActionSequenceTargets'](_0x3da835[_0x16fd37(0x932)]);for(const _0x519139 of _0x121526){if(!_0x519139)continue;if(!_0x519139[_0x16fd37(0x864)]())continue;_0x519139[_0x16fd37(0x667)](_0x502c70);}}),PluginManager[_0x1cc45e(0x68e)](pluginData[_0x1cc45e(0xc4e)],'ActSeq_Zoom_Scale',_0x2b0371=>{const _0x1c9450=_0x1cc45e;if(!SceneManager[_0x1c9450(0x499)]())return;if(!Imported['VisuMZ_3_ActSeqCamera'])return;VisuMZ[_0x1c9450(0x796)](_0x2b0371,_0x2b0371);const _0x511e3c=$gameTemp[_0x1c9450(0x92f)](),_0x33ce0f=_0x2b0371[_0x1c9450(0x40b)];if(!_0x511e3c)return;$gameScreen[_0x1c9450(0x44a)](_0x2b0371[_0x1c9450(0x1af)],_0x2b0371[_0x1c9450(0xb0f)],_0x2b0371[_0x1c9450(0xc22)]);if(_0x33ce0f)_0x511e3c[_0x1c9450(0xb13)]('battleZoom');}),PluginManager['registerCommand'](pluginData['name'],_0x1cc45e(0x22d),_0x30056b=>{const _0xa2d71b=_0x1cc45e;if(!SceneManager[_0xa2d71b(0x499)]())return;if(!Imported[_0xa2d71b(0xa81)])return;VisuMZ[_0xa2d71b(0x796)](_0x30056b,_0x30056b);const _0x3fd441=$gameTemp['getLastPluginCommandInterpreter'](),_0x145db3=_0x30056b[_0xa2d71b(0x40b)];if(!_0x3fd441)return;$gameScreen[_0xa2d71b(0x44a)](0x1,_0x30056b[_0xa2d71b(0xb0f)],_0x30056b[_0xa2d71b(0xc22)]);if(_0x145db3)_0x3fd441['setWaitMode'](_0xa2d71b(0xc35));}),PluginManager[_0x1cc45e(0x68e)](pluginData['name'],_0x1cc45e(0x987),_0x3ac8ad=>{const _0x2025a2=_0x1cc45e;if(!SceneManager[_0x2025a2(0x499)]())return;if(!Imported[_0x2025a2(0xa81)])return;const _0x181c58=$gameTemp[_0x2025a2(0x92f)]();if(!_0x181c58)return;_0x181c58['setWaitMode'](_0x2025a2(0xc35));}),VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x9d1)]=Scene_Boot[_0x1cc45e(0xc0b)][_0x1cc45e(0xa63)],Scene_Boot[_0x1cc45e(0xc0b)]['onDatabaseLoaded']=function(){const _0x59633b=_0x1cc45e;this[_0x59633b(0x5bb)](),this['check_VisuMZ_BattleCore_DmgFormulaMechanics'](),this[_0x59633b(0x92a)](),this[_0x59633b(0x431)](),this[_0x59633b(0x635)](),VisuMZ[_0x59633b(0x2c5)]['Scene_Boot_onDatabaseLoaded'][_0x59633b(0xa54)](this),this[_0x59633b(0xa5a)](),this[_0x59633b(0xc76)](),this[_0x59633b(0xac9)](),this[_0x59633b(0x8aa)]();},Scene_Boot[_0x1cc45e(0xc0b)]['process_VisuMZ_BattleCore_Notetags']=function(){const _0x3c7e3b=_0x1cc45e;if(VisuMZ[_0x3c7e3b(0x20a)])return;this[_0x3c7e3b(0x500)](),this['process_VisuMZ_BattleCore_TraitObject_Notetags'](),this[_0x3c7e3b(0x7ed)]();},Scene_Boot[_0x1cc45e(0xc0b)]['process_VisuMZ_BattleCore_Failsafes']=function(){const _0x2d5db5=_0x1cc45e,_0x51bb38=$dataSystem[_0x2d5db5(0xc8d)][_0x2d5db5(0x96d)];for(let _0x593dd2=0x0;_0x593dd2<_0x51bb38;_0x593dd2++){const _0x53c154=$dataSystem[_0x2d5db5(0xa42)][_0x593dd2];if(_0x53c154)continue;$dataSystem[_0x2d5db5(0xa42)][_0x593dd2]={'type':0x1,'weaponImageId':0x1};}},Scene_Boot['prototype'][_0x1cc45e(0xa5f)]=function(){const _0x36b97d=_0x1cc45e,_0x1d034e=VisuMZ[_0x36b97d(0x2c5)]['Settings'];if(!_0x1d034e[_0x36b97d(0x1de)]['CheckFormulaMechanics']??!![])return;if(!Utils['isOptionValid']('test'))return;const _0x1dee2c=$dataSkills['concat']($dataItems);let _0x2d4e6e=_0x36b97d(0x9d0);_0x2d4e6e+=_0x36b97d(0x9fa),_0x2d4e6e+=_0x36b97d(0x61a),_0x2d4e6e+=_0x36b97d(0xcf4),_0x2d4e6e+=_0x36b97d(0xae3),_0x2d4e6e+=_0x36b97d(0x898);for(const _0x170f2 of _0x1dee2c){if(!_0x170f2)continue;if(!_0x170f2[_0x36b97d(0x42e)])continue;if(_0x170f2[_0x36b97d(0x42e)][_0x36b97d(0x729)]<0x1)continue;const _0x167b6e=_0x170f2['damage'][_0x36b97d(0x665)];if(VisuMZ[_0x36b97d(0x2c5)][_0x36b97d(0x517)](_0x167b6e)){const _0x1dafc0=$dataItems[_0x36b97d(0x9c4)](_0x170f2)?_0x36b97d(0x391):_0x36b97d(0x7a8),_0x589a5f=_0x2d4e6e[_0x36b97d(0x65c)](_0x1dafc0,_0x170f2['id'],_0x170f2[_0x36b97d(0xc4e)]);alert(_0x589a5f);}}},VisuMZ['BattleCore'][_0x1cc45e(0x517)]=function(_0x31ae3a){const _0x5d1af4=_0x1cc45e;if(_0x31ae3a[_0x5d1af4(0xc6a)](/\.(?:SETVALUE)\(/i))return!![];if(_0x31ae3a[_0x5d1af4(0xc6a)](/\.(?:DIE|REVIVE|REFRESH|RECOVERALL)\(/i))return!![];if(_0x31ae3a[_0x5d1af4(0xc6a)](/\.(?:GAIN|LOSE|ADD|REMOVE|SET|REGENERATE)(?:HP|MP|TP)\(/i))return!![];if(_0x31ae3a[_0x5d1af4(0xc6a)](/\.(?:ADD|ADDNEW|REMOVE|ERASE|INCREASE|DECREASE)(?:BUFF|DEBUFF|STATE)\(/i))return!![];if(_0x31ae3a[_0x5d1af4(0xc6a)](/\.(?:CLEAR|RESET)(?:STATES|PARAMPLUS|ACTIONS|RESULT|TPBCHARGETIME)\(/i))return!![];return![];},Scene_Boot[_0x1cc45e(0xc0b)][_0x1cc45e(0x92a)]=function(){const _0x1463c2=_0x1cc45e,_0xa2a57c=VisuMZ[_0x1463c2(0x2c5)][_0x1463c2(0x5fb)];_0xa2a57c[_0x1463c2(0x1de)]['PopupPosition']===undefined&&(_0xa2a57c['Damage'][_0x1463c2(0xcec)]='base'),_0xa2a57c[_0x1463c2(0x3c1)][_0x1463c2(0x7a9)]===undefined&&(_0xa2a57c[_0x1463c2(0x3c1)][_0x1463c2(0x7a9)]=![]),_0xa2a57c['Enemy'][_0x1463c2(0x7a9)]===undefined&&(_0xa2a57c['Enemy'][_0x1463c2(0x7a9)]=!![]),_0xa2a57c['Actor'][_0x1463c2(0xaab)]===undefined&&(_0xa2a57c[_0x1463c2(0x3c1)]['PrioritySortActive']=![]),_0xa2a57c[_0x1463c2(0x3c1)]['PrioritySortActors']===undefined&&(_0xa2a57c[_0x1463c2(0x3c1)][_0x1463c2(0xab0)]=!![]);},VisuMZ['DamageStyles']={},Scene_Boot[_0x1cc45e(0xc0b)][_0x1cc45e(0x431)]=function(){const _0x130749=_0x1cc45e;for(const _0x36366f of VisuMZ[_0x130749(0x2c5)]['Settings'][_0x130749(0x1de)][_0x130749(0x77c)]){if(!_0x36366f)continue;const _0x43bf0b=_0x36366f[_0x130749(0x61f)][_0x130749(0x2b6)]()[_0x130749(0xc8e)]();VisuMZ['DamageStyles'][_0x43bf0b]=_0x36366f;}},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x84f)]={'jsAccuracy':/<JS (?:ACCURACY|ACC|HIT|EVA)>\s*([\s\S]*?)\s*<\/JS (?:ACCURACY|ACC|HIT|EVA)>/i,'jsAccuracyAsUser':/<JS (?:ACCURACY|ACC|HIT|EVA) AS USER>\s*([\s\S]*?)\s*<\/JS (?:ACCURACY|ACC|HIT|EVA) AS USER>/i,'jsAccuracyAsTarget':/<JS (?:ACCURACY|ACC|HIT|EVA) AS TARGET>\s*([\s\S]*?)\s*<\/JS (?:ACCURACY|ACC|HIT|EVA) AS TARGET>/i,'jsCritRateAsUser':/<JS (?:CRITICAL RATE|CRI) AS USER>\s*([\s\S]*?)\s*<\/JS (?:CRITICAL RATE|CRI) AS USER>/i,'jsCritRateAsTarget':/<JS (?:CRITICAL RATE|CRI) AS TARGET>\s*([\s\S]*?)\s*<\/JS (?:CRITICAL RATE|CRI) AS TARGET>/i},Scene_Boot[_0x1cc45e(0xc0b)]['process_VisuMZ_BattleCore_CreateRegExp']=function(){const _0x116c20=_0x1cc45e,_0x4dd036=VisuMZ[_0x116c20(0x2c5)][_0x116c20(0x84f)],_0x45cc20=_0x116c20(0x62a),_0x32254a=[[_0x116c20(0xac0),'PRE-'],[_0x116c20(0x839),_0x116c20(0x87e)]],_0x2edeff=[[_0x116c20(0x857),_0x116c20(0x8e6)],[_0x116c20(0xc4c),_0x116c20(0x863)]],_0x33a1e9=[['',''],[_0x116c20(0x8f3),'AS\x20USER'],[_0x116c20(0x92e),'AS\x20TARGET']];for(const _0x128339 of _0x2edeff){for(const _0x2f10d8 of _0x33a1e9){for(const _0x38fe6d of _0x32254a){const _0x312d3e=_0x128339[0x0][_0x116c20(0x65c)](_0x38fe6d[0x0],_0x2f10d8[0x0]),_0x2e6738=_0x128339[0x1][_0x116c20(0x65c)](_0x38fe6d[0x1],_0x2f10d8[0x1])['trim'](),_0x42e651=new RegExp(_0x45cc20[_0x116c20(0x65c)](_0x2e6738),'i');_0x4dd036[_0x312d3e]=_0x42e651;}}}const _0x4f2c50=[[_0x116c20(0x468),'JS\x20%1START\x20ACTION'],[_0x116c20(0x44b),_0x116c20(0x302)]];for(const _0x2cea5b of _0x4f2c50){for(const _0x3d211b of _0x32254a){const _0x2810ab=_0x2cea5b[0x0][_0x116c20(0x65c)](_0x3d211b[0x0]),_0x34283f=_0x2cea5b[0x1]['format'](_0x3d211b[0x1]),_0x4d2f35=new RegExp(_0x45cc20[_0x116c20(0x65c)](_0x34283f),'i');_0x4dd036[_0x2810ab]=_0x4d2f35;}}const _0x548f90=[[_0x116c20(0x270),_0x116c20(0x5c5)],[_0x116c20(0x35d),_0x116c20(0xcc8)],['BattleVictoryJS','JS\x20BATTLE\x20VICTORY'],[_0x116c20(0x3f3),_0x116c20(0x75c)],['EscapeSuccessJS','JS\x20ESCAPE\x20SUCCESS'],[_0x116c20(0x22e),_0x116c20(0xa2c)],['%1StartTurnJS','JS\x20%1START\x20TURN'],['%1EndTurnJS',_0x116c20(0x416)],[_0x116c20(0x652),_0x116c20(0x265)]];for(const _0x4f7dc6 of _0x548f90){for(const _0x26f478 of _0x32254a){const _0x37c346=_0x4f7dc6[0x0][_0x116c20(0x65c)](_0x26f478[0x0]),_0x4342d3=_0x4f7dc6[0x1][_0x116c20(0x65c)](_0x26f478[0x1]),_0x59833f=new RegExp(_0x45cc20[_0x116c20(0x65c)](_0x4342d3),'i');_0x4dd036[_0x37c346]=_0x59833f;}}},Scene_Boot[_0x1cc45e(0xc0b)][_0x1cc45e(0x500)]=function(){const _0x395f4d=_0x1cc45e,_0x47322b=$dataSkills[_0x395f4d(0x807)]($dataItems);for(const _0x86f244 of _0x47322b){if(!_0x86f244)continue;VisuMZ['BattleCore'][_0x395f4d(0xbab)](_0x86f244);}},Scene_Boot[_0x1cc45e(0xc0b)][_0x1cc45e(0x84a)]=function(){const _0x1352db=_0x1cc45e,_0x2e02ad=$dataActors[_0x1352db(0x807)]($dataClasses,$dataWeapons,$dataArmors,$dataEnemies,$dataStates);for(const _0x5188ba of _0x2e02ad){if(!_0x5188ba)continue;VisuMZ[_0x1352db(0x2c5)][_0x1352db(0x1f9)](_0x5188ba),_0x5188ba[_0x1352db(0x1e5)]!==undefined&&VisuMZ['BattleCore'][_0x1352db(0x7d8)](_0x5188ba);}},Scene_Boot[_0x1cc45e(0xc0b)][_0x1cc45e(0xc76)]=function(){const _0x2792f2=_0x1cc45e,_0x1e7b5c=VisuMZ[_0x2792f2(0x2c5)]['Settings'][_0x2792f2(0x56d)][_0x2792f2(0x1bf)],_0x181487=[];for(const _0x1c3b8e of _0x1e7b5c){const _0x4c3edb=$dataTroops[_0x1c3b8e];if(_0x4c3edb)_0x181487['push'](JsonEx['makeDeepCopy'](_0x4c3edb));}for(const _0x5b4ea4 of $dataTroops){if(!_0x5b4ea4)continue;for(const _0x143c1e of _0x181487){if(_0x143c1e['id']===_0x5b4ea4['id'])continue;_0x5b4ea4[_0x2792f2(0x6aa)]=_0x5b4ea4['pages'][_0x2792f2(0x807)](_0x143c1e[_0x2792f2(0x6aa)]);}}},Scene_Boot[_0x1cc45e(0xc0b)][_0x1cc45e(0xac9)]=function(){const _0x223efc=_0x1cc45e,_0x11f9c7=VisuMZ[_0x223efc(0x2c5)]['Settings'][_0x223efc(0x56d)];if(_0x11f9c7[_0x223efc(0x4bf)]>0x0&&$dataCommonEvents[_0x11f9c7[_0x223efc(0x4bf)]]){const _0x597d01=$dataCommonEvents[_0x11f9c7[_0x223efc(0x4bf)]],_0x483bc8=_0x597d01['list'][_0x223efc(0x96d)]-0x2,_0x1ecae7=_0x597d01[_0x223efc(0x8de)][_0x483bc8];if(_0x1ecae7&&_0x1ecae7[_0x223efc(0x618)]!==0xe6){const _0x120189={'code':0xe6,'indent':0x0,'parameters':[0x1]},_0x16d112=_0x597d01[_0x223efc(0x8de)][_0x223efc(0xb4d)]();_0x597d01['list'][_0x223efc(0x6a0)](_0x120189),_0x597d01[_0x223efc(0x8de)][_0x223efc(0x6a0)](_0x16d112);}}},Scene_Boot[_0x1cc45e(0xc0b)]['process_VisuMZ_BattleCore_CommonEventKeys']=function(){const _0x4a3629=_0x1cc45e;VisuMZ[_0x4a3629(0x2c5)][_0x4a3629(0x714)](),VisuMZ[_0x4a3629(0x2c5)]['BindCommonEventKeysForGroup']($dataSkills),VisuMZ['BattleCore'][_0x4a3629(0xbdf)]($dataItems);},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x714)]=function(){const _0x5354c6=_0x1cc45e;VisuMZ[_0x5354c6(0x2c5)]['_commonEventKey']={};for(const _0x14bf89 of $dataCommonEvents){if(!_0x14bf89)continue;if(_0x14bf89[_0x5354c6(0xc4e)][_0x5354c6(0xc6a)](/\[(.*)\]/i)){let _0x2337ea=String(RegExp['$1'])[_0x5354c6(0x403)](/,/g,'')[_0x5354c6(0x2b6)]()[_0x5354c6(0xc8e)]();VisuMZ['BattleCore'][_0x5354c6(0x245)][_0x2337ea]=_0x14bf89['id'];}}},VisuMZ[_0x1cc45e(0x2c5)]['BindCommonEventKeysForGroup']=function(_0x47a148){const _0x42e6e6=_0x1cc45e;for(const _0xb7536 of _0x47a148){if(!_0xb7536)continue;VisuMZ[_0x42e6e6(0x2c5)][_0x42e6e6(0x506)](_0xb7536);}},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x506)]=function(_0x1b0a0f){const _0x2b0b71=_0x1cc45e;if(!_0x1b0a0f)return;if(!_0x1b0a0f[_0x2b0b71(0xca3)])return;VisuMZ[_0x2b0b71(0x2c5)]['_commonEventKey']=VisuMZ[_0x2b0b71(0x2c5)][_0x2b0b71(0x245)]||{};const _0x42a9d2=/<COMMON EVENT (?:KEY|KEYS):[ ](.*)>/gi,_0x183445=/<COMMON EVENT (?:KEY|KEYS)>\s*([\s\S]*)\s*<\/COMMON EVENT (?:KEY|KEYS)>/i;let _0x5027da=[];const _0xbaa3f7=_0x1b0a0f[_0x2b0b71(0xbe6)][_0x2b0b71(0xc6a)](_0x42a9d2);if(_0xbaa3f7){for(const _0x5a9bc3 of _0xbaa3f7){_0x5a9bc3[_0x2b0b71(0xc6a)](_0x42a9d2);const _0x94ae5a=String(RegExp['$1'])['split'](',')[_0x2b0b71(0x63c)](_0x13ab28=>String(_0x13ab28)[_0x2b0b71(0x2b6)]()[_0x2b0b71(0xc8e)]());_0x5027da=_0x5027da[_0x2b0b71(0x807)](_0x94ae5a);}!_0x1b0a0f[_0x2b0b71(0xbe6)][_0x2b0b71(0xc6a)](/<CUSTOM ACTION SEQUENCE>/i)&&(_0x1b0a0f[_0x2b0b71(0xbe6)]+=_0x2b0b71(0x200));;}if(_0x1b0a0f[_0x2b0b71(0xbe6)][_0x2b0b71(0xc6a)](_0x183445)){const _0x5c1320=String(RegExp['$1'])[_0x2b0b71(0x368)](/[\r\n]+/)[_0x2b0b71(0x63c)](_0xc3544a=>String(_0xc3544a)[_0x2b0b71(0x2b6)]()[_0x2b0b71(0xc8e)]());_0x5027da=_0x5027da['concat'](_0x5c1320);!_0x1b0a0f[_0x2b0b71(0xbe6)][_0x2b0b71(0xc6a)](/<CUSTOM ACTION SEQUENCE>/i)&&(_0x1b0a0f[_0x2b0b71(0xbe6)]+=_0x2b0b71(0x200));;}for(const _0x25662c of _0x5027da){if(VisuMZ['BattleCore'][_0x2b0b71(0x245)][_0x25662c]){const _0x2bcb19=VisuMZ[_0x2b0b71(0x2c5)][_0x2b0b71(0x245)][_0x25662c],_0x33d817={'code':0x2c,'dataId':_0x2bcb19,'value1':0x1,'value2':0x0};_0x1b0a0f[_0x2b0b71(0xca3)]['push'](_0x33d817);}}},Scene_Boot[_0x1cc45e(0xc0b)][_0x1cc45e(0x7ed)]=function(){const _0x6fb031=_0x1cc45e,_0x264426=$dataSkills[_0x6fb031(0x807)]($dataItems);for(const _0x92f0d9 of _0x264426){if(!_0x92f0d9)continue;VisuMZ[_0x6fb031(0x2c5)][_0x6fb031(0x7a7)](_0x92f0d9);}},VisuMZ['BattleCore'][_0x1cc45e(0x94b)]=VisuMZ[_0x1cc45e(0x94b)],VisuMZ[_0x1cc45e(0x94b)]=function(_0x4303f9){const _0x4ea498=_0x1cc45e;VisuMZ[_0x4ea498(0x2c5)][_0x4ea498(0x94b)]&&VisuMZ[_0x4ea498(0x2c5)][_0x4ea498(0x94b)][_0x4ea498(0xa54)](this,_0x4303f9),VisuMZ['BattleCore']['Parse_Notetags_TraitObjects'](_0x4303f9);},VisuMZ['BattleCore']['ParseClassNotetags']=VisuMZ[_0x1cc45e(0x69c)],VisuMZ[_0x1cc45e(0x69c)]=function(_0x8efc50){const _0x2ad9f8=_0x1cc45e;VisuMZ[_0x2ad9f8(0x2c5)][_0x2ad9f8(0x69c)]&&VisuMZ[_0x2ad9f8(0x2c5)][_0x2ad9f8(0x69c)][_0x2ad9f8(0xa54)](this,_0x8efc50),VisuMZ[_0x2ad9f8(0x2c5)]['Parse_Notetags_TraitObjects'](_0x8efc50);},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x8a5)]=VisuMZ[_0x1cc45e(0x8a5)],VisuMZ[_0x1cc45e(0x8a5)]=function(_0x464928){const _0x2c0560=_0x1cc45e;VisuMZ[_0x2c0560(0x2c5)]['ParseSkillNotetags']&&VisuMZ['BattleCore'][_0x2c0560(0x8a5)]['call'](this,_0x464928),VisuMZ[_0x2c0560(0x2c5)][_0x2c0560(0xbab)](_0x464928),VisuMZ[_0x2c0560(0x2c5)]['Parse_Notetags_Targets'](_0x464928);},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x59d)]=VisuMZ[_0x1cc45e(0x59d)],VisuMZ['ParseItemNotetags']=function(_0x247c48){const _0xbe8c2=_0x1cc45e;VisuMZ[_0xbe8c2(0x2c5)]['ParseItemNotetags']&&VisuMZ[_0xbe8c2(0x2c5)]['ParseItemNotetags'][_0xbe8c2(0xa54)](this,_0x247c48),VisuMZ[_0xbe8c2(0x2c5)][_0xbe8c2(0xbab)](_0x247c48),VisuMZ[_0xbe8c2(0x2c5)][_0xbe8c2(0x7a7)](_0x247c48);},VisuMZ[_0x1cc45e(0x2c5)]['ParseWeaponNotetags']=VisuMZ[_0x1cc45e(0xabc)],VisuMZ[_0x1cc45e(0xabc)]=function(_0x3caf7a){const _0x116acb=_0x1cc45e;VisuMZ['BattleCore'][_0x116acb(0xabc)]&&VisuMZ[_0x116acb(0x2c5)]['ParseWeaponNotetags'][_0x116acb(0xa54)](this,_0x3caf7a),VisuMZ[_0x116acb(0x2c5)][_0x116acb(0x1f9)](_0x3caf7a);},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0xab4)]=VisuMZ[_0x1cc45e(0xab4)],VisuMZ['ParseArmorNotetags']=function(_0x38caad){const _0x22f390=_0x1cc45e;VisuMZ[_0x22f390(0x2c5)][_0x22f390(0xab4)]&&VisuMZ['BattleCore'][_0x22f390(0xab4)][_0x22f390(0xa54)](this,_0x38caad),VisuMZ[_0x22f390(0x2c5)]['Parse_Notetags_TraitObjects'](_0x38caad);},VisuMZ['BattleCore'][_0x1cc45e(0xcfb)]=VisuMZ[_0x1cc45e(0xcfb)],VisuMZ['ParseEnemyNotetags']=function(_0x7bed84){const _0x1f5536=_0x1cc45e;VisuMZ[_0x1f5536(0x2c5)][_0x1f5536(0xcfb)]&&VisuMZ[_0x1f5536(0x2c5)][_0x1f5536(0xcfb)][_0x1f5536(0xa54)](this,_0x7bed84),VisuMZ[_0x1f5536(0x2c5)]['Parse_Notetags_TraitObjects'](_0x7bed84);},VisuMZ['BattleCore'][_0x1cc45e(0x813)]=VisuMZ[_0x1cc45e(0x813)],VisuMZ[_0x1cc45e(0x813)]=function(_0x1f250d){const _0x3e738b=_0x1cc45e;VisuMZ[_0x3e738b(0x2c5)][_0x3e738b(0x813)]&&VisuMZ['BattleCore'][_0x3e738b(0x813)][_0x3e738b(0xa54)](this,_0x1f250d),VisuMZ[_0x3e738b(0x2c5)][_0x3e738b(0x1f9)](_0x1f250d),VisuMZ[_0x3e738b(0x2c5)][_0x3e738b(0x7d8)](_0x1f250d);},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0xbab)]=function(_0x483ecd){const _0x105309=_0x1cc45e,_0x4c6cc9=[_0x105309(0xac8),_0x105309(0xbb7),_0x105309(0x93c),_0x105309(0x540),_0x105309(0x886),_0x105309(0x3ce),'PreEndActionJS','PostEndActionJS'];for(const _0x4a9c2d of _0x4c6cc9){VisuMZ[_0x105309(0x2c5)][_0x105309(0x795)](_0x483ecd,_0x4a9c2d);}const _0xb3c0a0=_0x483ecd[_0x105309(0xbe6)];_0xb3c0a0['match'](/<ALWAYS CRITICAL/i)&&(_0x483ecd['damage']['critical']=!![]),_0xb3c0a0[_0x105309(0xc6a)](/<(?:REPEAT|REPEATS|REPEAT HITS):[ ](\d+)/i)&&(_0x483ecd[_0x105309(0xc57)]=Math['max'](0x1,Number(RegExp['$1']))),_0xb3c0a0[_0x105309(0xc6a)](/<TARGET:[ ](.*)>/i)&&(_0x483ecd[_0x105309(0x7f0)]=String(RegExp['$1'])[_0x105309(0x2b6)]()[_0x105309(0xc8e)]());},VisuMZ[_0x1cc45e(0x2c5)]['Parse_Notetags_TraitObjects']=function(_0x589e42){const _0x4e9f26=_0x1cc45e,_0x447caf=['PreApplyAsUserJS','PostApplyAsUserJS',_0x4e9f26(0x3f6),_0x4e9f26(0xb53),_0x4e9f26(0xbad),_0x4e9f26(0x52c),'PreDamageAsTargetJS',_0x4e9f26(0x6d0),'PreStartActionJS',_0x4e9f26(0x3ce),_0x4e9f26(0xa3b),_0x4e9f26(0x2a2),_0x4e9f26(0x73c),_0x4e9f26(0x60a),_0x4e9f26(0x277),_0x4e9f26(0x53f),'BattleVictoryJS',_0x4e9f26(0x3f3),_0x4e9f26(0x50a),'EscapeFailureJS',_0x4e9f26(0xcd6),_0x4e9f26(0x799),_0x4e9f26(0xbc0),_0x4e9f26(0x76b),_0x4e9f26(0xbee),_0x4e9f26(0xb51)];for(const _0x1f45ad of _0x447caf){VisuMZ['BattleCore']['createJS'](_0x589e42,_0x1f45ad);}const _0x4b884b=['jsAccuracy',_0x4e9f26(0x1ec),'jsAccuracyAsTarget','jsCritRateAsUser',_0x4e9f26(0x52f)];for(const _0x285ac2 of _0x4b884b){VisuMZ['BattleCore']['createRateJS'](_0x589e42,_0x285ac2);}},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x7a7)]=function(_0x4c5fff){const _0x83c52f=_0x1cc45e,_0x147bb1=_0x4c5fff['note'];if(_0x147bb1[_0x83c52f(0xc6a)](/<JS TARGETS>\s*([\s\S]*)\s*<\/JS TARGETS>/i)){const _0x6a5452=String(RegExp['$1']),_0x332409=VisuMZ[_0x83c52f(0x2c5)][_0x83c52f(0x498)](_0x4c5fff,_0x83c52f(0x932));VisuMZ[_0x83c52f(0x2c5)][_0x83c52f(0x8bf)](_0x6a5452,_0x332409);}if(_0x147bb1['match'](/<JS COMMAND (?:VISIBLE|SHOW|HIDE)>\s*([\s\S]*)\s*<\/JS COMMAND (?:VISIBLE|SHOW|HIDE)>/i)){const _0x576b06=String(RegExp['$1']),_0x5e4b93=VisuMZ['BattleCore'][_0x83c52f(0x498)](_0x4c5fff,'CommandVisible');VisuMZ[_0x83c52f(0x2c5)][_0x83c52f(0x28e)](_0x576b06,_0x5e4b93);}},VisuMZ[_0x1cc45e(0x2c5)]['JS']={},VisuMZ['BattleCore'][_0x1cc45e(0x795)]=function(_0x392c56,_0x3f0063){const _0x1c8a95=_0x1cc45e,_0x1b0c7f=_0x392c56[_0x1c8a95(0xbe6)];if(_0x1b0c7f['match'](VisuMZ[_0x1c8a95(0x2c5)]['RegExp'][_0x3f0063])){const _0x43f46f=RegExp['$1'],_0x29be99=_0x1c8a95(0x861)[_0x1c8a95(0x65c)](_0x43f46f),_0x4ebc4a=VisuMZ['BattleCore'][_0x1c8a95(0x498)](_0x392c56,_0x3f0063);VisuMZ[_0x1c8a95(0x2c5)]['JS'][_0x4ebc4a]=new Function(_0x29be99);}},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x498)]=function(_0xc35031,_0x1a52bf){const _0x226573=_0x1cc45e;if(VisuMZ[_0x226573(0x498)])return VisuMZ[_0x226573(0x498)](_0xc35031,_0x1a52bf);let _0x2f960e='';if($dataActors[_0x226573(0x9c4)](_0xc35031))_0x2f960e=_0x226573(0x23e)[_0x226573(0x65c)](_0xc35031['id'],_0x1a52bf);if($dataClasses['includes'](_0xc35031))_0x2f960e='Class-%1-%2'[_0x226573(0x65c)](_0xc35031['id'],_0x1a52bf);if($dataSkills['includes'](_0xc35031))_0x2f960e=_0x226573(0x42b)[_0x226573(0x65c)](_0xc35031['id'],_0x1a52bf);if($dataItems[_0x226573(0x9c4)](_0xc35031))_0x2f960e='Item-%1-%2'['format'](_0xc35031['id'],_0x1a52bf);if($dataWeapons['includes'](_0xc35031))_0x2f960e=_0x226573(0x2ba)['format'](_0xc35031['id'],_0x1a52bf);if($dataArmors[_0x226573(0x9c4)](_0xc35031))_0x2f960e=_0x226573(0x777)['format'](_0xc35031['id'],_0x1a52bf);if($dataEnemies[_0x226573(0x9c4)](_0xc35031))_0x2f960e=_0x226573(0x49b)['format'](_0xc35031['id'],_0x1a52bf);if($dataStates[_0x226573(0x9c4)](_0xc35031))_0x2f960e='State-%1-%2'[_0x226573(0x65c)](_0xc35031['id'],_0x1a52bf);return _0x2f960e;},VisuMZ[_0x1cc45e(0x2c5)]['createTargetsJS']=function(_0x2c1af5,_0x2bb341){const _0x56c234=_0x1cc45e,_0x41e9ac=_0x56c234(0x4dd)[_0x56c234(0x65c)](_0x2c1af5);VisuMZ['BattleCore']['JS'][_0x2bb341]=new Function(_0x41e9ac);},VisuMZ['BattleCore'][_0x1cc45e(0x28e)]=function(_0x852f62,_0x5178c8){const _0x3b8c4f=_0x1cc45e,_0x5d1e16=_0x3b8c4f(0x264)[_0x3b8c4f(0x65c)](_0x852f62);VisuMZ[_0x3b8c4f(0x2c5)]['JS'][_0x5178c8]=new Function(_0x5d1e16);},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x8cb)]=function(_0x9284b3,_0xdd7b5){const _0x5deca0=_0x1cc45e,_0x1ac60b=_0x9284b3[_0x5deca0(0xbe6)];if(_0x1ac60b['match'](VisuMZ[_0x5deca0(0x2c5)][_0x5deca0(0x84f)][_0xdd7b5])){const _0x2bfa43=RegExp['$1'],_0x3f3a79=_0x5deca0(0x78d)[_0x5deca0(0x65c)](_0x2bfa43),_0x5ded99=VisuMZ[_0x5deca0(0x2c5)][_0x5deca0(0x498)](_0x9284b3,_0xdd7b5);VisuMZ['BattleCore']['JS'][_0x5ded99]=new Function(_0x3f3a79);}},VisuMZ[_0x1cc45e(0x2c5)]['Parse_Notetags_HelpDescription']=function(_0x58d8a4){const _0x316449=_0x1cc45e;_0x58d8a4[_0x316449(0x240)]='-';const _0x7d93ca=_0x58d8a4['note'];_0x7d93ca[_0x316449(0xc6a)](/<(?:HELP|HELP DESCRIPTION|DESCRIPTION)>\s*([\s\S]*)\s*<\/(?:HELP|HELP DESCRIPTION|DESCRIPTION)>/i)&&(_0x58d8a4['description']=String(RegExp['$1'])[_0x316449(0xc8e)]()),_0x7d93ca[_0x316449(0xc6a)](/<(?:IN-BATTLE |)STATUS DESCRIPTION>\s*([\s\S]*)\s*<\/(?:IN-BATTLE |)STATUS DESCRIPTION>/i)&&(_0x58d8a4['statusDescription']=String(RegExp['$1'])[_0x316449(0xc8e)]()),_0x7d93ca[_0x316449(0xc6a)](/<EXCLUDE FROM (?:HELP|STATUS|STATUS LIST|LISTING|STATUS LISTING)>/i)&&(_0x58d8a4[_0x316449(0x477)]=!![]);},TextManager[_0x1cc45e(0x915)]=VisuMZ[_0x1cc45e(0x2c5)]['Settings'][_0x1cc45e(0x88b)][_0x1cc45e(0x4be)],TextManager['autoBattleStart']=VisuMZ['BattleCore'][_0x1cc45e(0x5fb)][_0x1cc45e(0xac7)][_0x1cc45e(0x25a)],TextManager[_0x1cc45e(0xb76)]=VisuMZ['BattleCore']['Settings']['AutoBattle']['StyleName'],TextManager[_0x1cc45e(0x6b6)]=VisuMZ['BattleCore'][_0x1cc45e(0x5fb)]['HpGauge'][_0x1cc45e(0x61f)],ColorManager[_0x1cc45e(0xa69)]=function(_0x5aca02){const _0x5918b7=_0x1cc45e;return _0x5aca02=String(_0x5aca02),_0x5aca02[_0x5918b7(0xc6a)](/#(.*)/i)?_0x5918b7(0xa87)[_0x5918b7(0x65c)](String(RegExp['$1'])):this[_0x5918b7(0xb38)](Number(_0x5aca02));},DataManager[_0x1cc45e(0xc6e)]=function(_0x106a08){const _0x2fcd9d=_0x1cc45e;if(_0x106a08[_0x2fcd9d(0xbe6)][_0x2fcd9d(0xc6a)](/<DAMAGE STYLE:[ ](.*)>/i)){const _0x97b4e6=String(RegExp['$1'])[_0x2fcd9d(0x2b6)]()[_0x2fcd9d(0xc8e)]();if(_0x97b4e6===_0x2fcd9d(0x5a2))return _0x2fcd9d(0x5a2);if(VisuMZ['DamageStyles'][_0x97b4e6])return _0x97b4e6;}const _0x3e2472=VisuMZ['BattleCore'][_0x2fcd9d(0x5fb)][_0x2fcd9d(0x1de)][_0x2fcd9d(0xa13)][_0x2fcd9d(0x2b6)]()['trim']();if(VisuMZ[_0x2fcd9d(0x4c2)][_0x3e2472])return _0x3e2472;return _0x2fcd9d(0x5a2);},DataManager[_0x1cc45e(0x489)]=function(_0x5819ce){const _0x2f3f64=_0x1cc45e;_0x5819ce=_0x5819ce['toUpperCase']()['trim'](),this[_0x2f3f64(0x8c0)]=this[_0x2f3f64(0x8c0)]||{};if(this[_0x2f3f64(0x8c0)][_0x5819ce])return this[_0x2f3f64(0x8c0)][_0x5819ce];for(let _0x372deb=0x1;_0x372deb<0x64;_0x372deb++){if(!$dataSystem[_0x2f3f64(0x914)][_0x372deb])continue;let _0x3f6737=$dataSystem[_0x2f3f64(0x914)][_0x372deb][_0x2f3f64(0x2b6)]()[_0x2f3f64(0xc8e)]();_0x3f6737=_0x3f6737['replace'](/\x1I\[(\d+)\]/gi,''),_0x3f6737=_0x3f6737[_0x2f3f64(0x403)](/\\I\[(\d+)\]/gi,''),this[_0x2f3f64(0x8c0)][_0x3f6737]=_0x372deb;}return this[_0x2f3f64(0x8c0)][_0x5819ce]||0x0;},DataManager[_0x1cc45e(0x891)]=function(_0x550ce){const _0x57bad4=_0x1cc45e;_0x550ce=_0x550ce[_0x57bad4(0x2b6)]()[_0x57bad4(0xc8e)](),this[_0x57bad4(0xcce)]=this[_0x57bad4(0xcce)]||{};if(this[_0x57bad4(0xcce)][_0x550ce])return this[_0x57bad4(0xcce)][_0x550ce];for(const _0x3821dc of $dataSkills){if(!_0x3821dc)continue;this['_skillIDs'][_0x3821dc[_0x57bad4(0xc4e)][_0x57bad4(0x2b6)]()[_0x57bad4(0xc8e)]()]=_0x3821dc['id'];}return this[_0x57bad4(0xcce)][_0x550ce]||0x0;},DataManager[_0x1cc45e(0x531)]=function(_0x392e97){const _0x455440=_0x1cc45e;_0x392e97=_0x392e97[_0x455440(0x2b6)]()[_0x455440(0xc8e)](),this[_0x455440(0x613)]=this['_enemyIDs']||{};if(this['_enemyIDs'][_0x392e97])return this[_0x455440(0x613)][_0x392e97];for(const _0xd9e8f9 of $dataEnemies){if(!_0xd9e8f9)continue;this[_0x455440(0x613)][_0xd9e8f9[_0x455440(0xc4e)]['toUpperCase']()['trim']()]=_0xd9e8f9['id'];}return this['_enemyIDs'][_0x392e97]||0x0;},DataManager['getWtypeIdWithName']=function(_0x1e0f17){const _0x1bb04c=_0x1cc45e;_0x1e0f17=_0x1e0f17[_0x1bb04c(0x2b6)]()['trim'](),this[_0x1bb04c(0x252)]=this[_0x1bb04c(0x252)]||{};if(this[_0x1bb04c(0x252)][_0x1e0f17])return this[_0x1bb04c(0x252)][_0x1e0f17];for(let _0x187f72=0x1;_0x187f72<0x64;_0x187f72++){if(!$dataSystem[_0x1bb04c(0xc8d)][_0x187f72])continue;let _0x4de45a=$dataSystem[_0x1bb04c(0xc8d)][_0x187f72][_0x1bb04c(0x2b6)]()[_0x1bb04c(0xc8e)]();_0x4de45a=_0x4de45a[_0x1bb04c(0x403)](/\x1I\[(\d+)\]/gi,''),_0x4de45a=_0x4de45a[_0x1bb04c(0x403)](/\\I\[(\d+)\]/gi,''),this[_0x1bb04c(0x252)][_0x4de45a]=_0x187f72;}return this[_0x1bb04c(0x252)][_0x1bb04c(0x991)]=0x0,this['_wtypeIDs'][_0x1e0f17]||0x0;},DataManager[_0x1cc45e(0x1d2)]=function(_0x4ee97f){const _0x55cf1e=_0x1cc45e,_0x280685='\x5cI[%1]%2';let _0x503880=_0x4ee97f[_0x55cf1e(0x510)],_0x553733=_0x4ee97f['name'];const _0x20275c=_0x4ee97f[_0x55cf1e(0xbe6)];return _0x20275c['match'](/<DISPLAY ICON: (\d+)>/i)&&(_0x503880=Number(RegExp['$1'])),_0x20275c[_0x55cf1e(0xc6a)](/<DISPLAY TEXT: (.*)>/i)&&(_0x553733=String(RegExp['$1'])),_0x280685[_0x55cf1e(0x65c)](_0x503880,_0x553733);},DataManager[_0x1cc45e(0xb2c)]=function(_0xfd94cb){const _0x4373ef=_0x1cc45e;if(_0xfd94cb['note']['match'](/<COMMAND TEXT: (.*)>/i))return String(RegExp['$1']);else return _0xfd94cb[_0x4373ef(0xbe6)][_0x4373ef(0xc6a)](/<LIST NAME: (.*)>/i)?String(RegExp['$1']):_0xfd94cb[_0x4373ef(0xc4e)];},DataManager['battleCommandIcon']=function(_0x283a2d){const _0x30e984=_0x1cc45e;return _0x283a2d[_0x30e984(0xbe6)]['match'](/<COMMAND ICON: (\d+)>/i)?Number(RegExp['$1']):_0x283a2d[_0x30e984(0x510)];},DataManager[_0x1cc45e(0xbf9)]=function(_0x1876d0){const _0x350767=_0x1cc45e,_0x440cb5=$dataEnemies[_0x1876d0];if(_0x440cb5){if(_0x440cb5[_0x350767(0xbe6)][_0x350767(0xc6a)](/<SWAP ENEMIES>\s*([\s\S]*)\s*<\/SWAP ENEMIES>/i)){const _0xf038ea=String(RegExp['$1'])[_0x350767(0x368)](/[\r\n]+/)[_0x350767(0x280)](''),_0x56d2d4=this[_0x350767(0x217)](_0xf038ea);_0x1876d0=this['getEnemyIdWithName'](_0x56d2d4)||_0x1876d0,_0x1876d0=DataManager[_0x350767(0xbf9)](_0x1876d0);}}return _0x1876d0;},DataManager['processRandomizedData']=function(_0x58b008){const _0x1773f0=_0x1cc45e;let _0x48c5a5=0x0;const _0x2d2b4a={};for(const _0x57816d of _0x58b008){if(_0x57816d[_0x1773f0(0xc6a)](/(.*):[ ](\d+)/i)){const _0x104ed4=String(RegExp['$1'])[_0x1773f0(0xc8e)](),_0xa1445f=Number(RegExp['$2']);_0x2d2b4a[_0x104ed4]=_0xa1445f,_0x48c5a5+=_0xa1445f;}else{if(_0x57816d[_0x1773f0(0xc6a)](/(.*):[ ](\d+\.?\d+)/i)){const _0x59f2f3=String(RegExp['$1'])[_0x1773f0(0xc8e)](),_0x3fba9c=Number(RegExp['$2']);_0x2d2b4a[_0x59f2f3]=_0x3fba9c,_0x48c5a5+=_0x3fba9c;}else _0x57816d!==''&&(_0x2d2b4a[_0x57816d]=0x1,_0x48c5a5++);}}if(_0x48c5a5<=0x0)return'';let _0x3abff4=Math[_0x1773f0(0x76a)]()*_0x48c5a5;for(const _0x410621 in _0x2d2b4a){_0x3abff4-=_0x2d2b4a[_0x410621];if(_0x3abff4<=0x0)return _0x410621;}return'';},DataManager['checkAutoCustomActionSequenceNotetagEffect']=function(_0x51a06d){const _0x53cb9d=_0x1cc45e;if(!_0x51a06d)return![];if(!VisuMZ[_0x53cb9d(0x2c5)][_0x53cb9d(0x5fb)][_0x53cb9d(0xc01)][_0x53cb9d(0xaa4)])return![];if(_0x51a06d[_0x53cb9d(0xbe6)][_0x53cb9d(0xc6a)](/<AUTO ACTION SEQUENCE>/i))return![];if(_0x51a06d[_0x53cb9d(0xbe6)]['match'](/<COMMON (?:EVENT|EVENTS):[ ](.*)>/gi))return!![];for(const _0x14f565 of _0x51a06d[_0x53cb9d(0xca3)]){if(!_0x14f565)continue;if(_0x14f565[_0x53cb9d(0x618)]===Game_Action[_0x53cb9d(0xa59)])return!![];}return![];},DataManager[_0x1cc45e(0x5f8)]=function(_0x4a9061){const _0x2be15b=_0x1cc45e,_0x2048d9=$dataTroops[_0x4a9061];if(!_0x2048d9)return'';let _0xe09517='';_0xe09517+=_0x2048d9[_0x2be15b(0xc4e)];for(const _0x41c0ce of _0x2048d9[_0x2be15b(0x6aa)]){for(const _0x3011f5 of _0x41c0ce[_0x2be15b(0x8de)]){[0x6c,0x198][_0x2be15b(0x9c4)](_0x3011f5[_0x2be15b(0x618)])&&(_0xe09517+='\x0a',_0xe09517+=_0x3011f5['parameters'][0x0]);}}return _0xe09517;},ConfigManager[_0x1cc45e(0x950)]=ConfigManager[_0x1cc45e(0x950)]??![],ConfigManager[_0x1cc45e(0x4d1)]=ConfigManager[_0x1cc45e(0x4d1)]??![],ConfigManager[_0x1cc45e(0x6b6)]=ConfigManager[_0x1cc45e(0x6b6)]??!![],VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x258)]=ConfigManager[_0x1cc45e(0x631)],ConfigManager[_0x1cc45e(0x631)]=function(){const _0x5d6f29=_0x1cc45e,_0xbd9053=VisuMZ['BattleCore']['ConfigManager_makeData'][_0x5d6f29(0xa54)](this);return _0xbd9053['autoBattleAtStart']=this[_0x5d6f29(0x950)],_0xbd9053[_0x5d6f29(0x4d1)]=this[_0x5d6f29(0x4d1)],_0xbd9053[_0x5d6f29(0x6b6)]=this[_0x5d6f29(0x6b6)],_0xbd9053;},VisuMZ['BattleCore'][_0x1cc45e(0x54f)]=ConfigManager[_0x1cc45e(0x706)],ConfigManager['applyData']=function(_0x1a5933){const _0x54fc39=_0x1cc45e;VisuMZ[_0x54fc39(0x2c5)][_0x54fc39(0x54f)][_0x54fc39(0xa54)](this,_0x1a5933),_0x54fc39(0x950)in _0x1a5933?this[_0x54fc39(0x950)]=_0x1a5933[_0x54fc39(0x950)]:this[_0x54fc39(0x950)]=![],_0x54fc39(0x4d1)in _0x1a5933?this['autoBattleUseSkills']=_0x1a5933['autoBattleUseSkills']:this['autoBattleUseSkills']=![],_0x54fc39(0x6b6)in _0x1a5933?this['visualHpGauge']=_0x1a5933[_0x54fc39(0x6b6)]:this[_0x54fc39(0x6b6)]=!![];},ImageManager[_0x1cc45e(0xa04)]=ImageManager[_0x1cc45e(0xa04)]||0x9,ImageManager[_0x1cc45e(0x648)]=ImageManager[_0x1cc45e(0x648)]||0x6,VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x948)]=BattleManager['setup'],BattleManager[_0x1cc45e(0x620)]=function(_0x30f515,_0x37cf39,_0x1f17e5){const _0xe684de=_0x1cc45e;VisuMZ[_0xe684de(0x2c5)][_0xe684de(0x948)]['call'](this,_0x30f515,_0x37cf39,_0x1f17e5),this[_0xe684de(0xc70)]={};},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0xb95)]=BattleManager[_0x1cc45e(0x522)],BattleManager['initMembers']=function(){const _0x57ea02=_0x1cc45e;VisuMZ['BattleCore'][_0x57ea02(0xb95)][_0x57ea02(0xa54)](this),this[_0x57ea02(0x1c7)]=[];},BattleManager['updateBattleVariables']=function(){const _0xcb16af=_0x1cc45e;$subject=this['_subject'],$targets=this[_0xcb16af(0x5f3)],$target=this[_0xcb16af(0x757)]||this[_0xcb16af(0x5f3)][this[_0xcb16af(0x259)]||0x0];},BattleManager['refreshStatusWindow']=function(){const _0x476c72=_0x1cc45e;if(!SceneManager[_0x476c72(0x499)]())return;const _0x3a030e=SceneManager['_scene'][_0x476c72(0x5b3)];if(_0x3a030e)_0x3a030e[_0x476c72(0x290)]();},BattleManager[_0x1cc45e(0x3de)]=function(){const _0x230191=_0x1cc45e;if(BattleManager['isTpb']())return _0x230191(0xade);return'DTB';},BattleManager[_0x1cc45e(0x61d)]=function(_0x3981b1){const _0x158b90=_0x1cc45e;return _0x3981b1=_0x3981b1[_0x158b90(0x2b6)]()[_0x158b90(0xc8e)](),this['battleSys']()===_0x3981b1;},BattleManager['isDTB']=function(){const _0x59b929=_0x1cc45e;return this[_0x59b929(0x61d)](_0x59b929(0x440));},BattleManager[_0x1cc45e(0x529)]=function(){const _0x58e9d3=_0x1cc45e;return this[_0x58e9d3(0x452)]();},BattleManager[_0x1cc45e(0x404)]=function(){const _0xb8a521=_0x1cc45e;return!this[_0xb8a521(0x529)]();},BattleManager[_0x1cc45e(0xcf9)]=function(){const _0x58e864=_0x1cc45e;return!this[_0x58e864(0x529)]()&&!this[_0x58e864(0x404)]();},BattleManager[_0x1cc45e(0x2e8)]=function(_0x59383c){const _0x13be73=_0x1cc45e;this[_0x13be73(0xc70)]=this[_0x13be73(0xc70)]||{};if(this[_0x13be73(0xc70)][_0x59383c]!==undefined)return this[_0x13be73(0xc70)][_0x59383c];this[_0x13be73(0xc70)][_0x59383c]=null;const _0x37934c=this[_0x13be73(0xb3c)](),_0x3ed963=_0x37934c['find'](_0x1373ec=>_0x1373ec[_0x13be73(0x9e5)]()===_0x59383c);if(_0x3ed963)this[_0x13be73(0xc70)][_0x59383c]=_0x3ed963;return this['_battlerKeyCache'][_0x59383c];},Game_BattlerBase[_0x1cc45e(0xc0b)][_0x1cc45e(0x9e5)]=function(){const _0xa68b1b=_0x1cc45e;return _0xa68b1b(0xaf7)[_0xa68b1b(0x65c)](this[_0xa68b1b(0x864)]()?'actor':_0xa68b1b(0x48a),this['name']()+'-'+(this['isActor']()?this[_0xa68b1b(0x393)]():this[_0xa68b1b(0x7b5)]()));},Game_Action[_0x1cc45e(0xc0b)][_0x1cc45e(0x78a)]=function(_0x24ed3a){const _0x624824=_0x1cc45e;if(this[_0x624824(0xad3)]!=='')return;typeof _0x24ed3a===_0x624824(0x1c9)?this[_0x624824(0xad3)]=_0x24ed3a[_0x624824(0xbb5)]()[_0x624824(0xc8e)]():this[_0x624824(0xad3)]=_0x24ed3a[_0x624824(0x9e5)]();},Game_Action[_0x1cc45e(0xc0b)][_0x1cc45e(0x965)]=function(){const _0x175223=_0x1cc45e;return[this[_0x175223(0x862)]()];},Game_Action['prototype'][_0x1cc45e(0x862)]=function(){const _0x4a0ac8=_0x1cc45e,_0x5d3d36=this[_0x4a0ac8(0xad3)]||'',_0x3672e2=BattleManager[_0x4a0ac8(0x2e8)](_0x5d3d36);if(!_0x3672e2)return this['getBattlerKeyTargetReplacement']();if(!_0x3672e2[_0x4a0ac8(0x212)]())return this[_0x4a0ac8(0x339)]();return _0x3672e2;},Game_Action['prototype'][_0x1cc45e(0x339)]=function(){const _0xdf1864=_0x1cc45e,_0x39ae14=this[_0xdf1864(0xad3)];return _0x39ae14[_0xdf1864(0xc6a)](/ACTOR/i)?this[_0xdf1864(0x917)]()[_0xdf1864(0x2bf)]():this[_0xdf1864(0x24e)]()[_0xdf1864(0x2bf)]();},BattleManager[_0x1cc45e(0x8eb)]=function(){const _0x1ea785=_0x1cc45e;return this['allBattleMembers']()['filter'](_0x4be897=>_0x4be897[_0x1ea785(0x2dc)]());},BattleManager['processBattleCoreJS']=function(_0x22baf0){const _0x2f584d=_0x1cc45e;_0x22baf0===_0x2f584d(0x8f5)&&(this[_0x2f584d(0x9ac)]=!![]),$gameParty['processBattleCoreJS'](_0x22baf0),$gameTroop[_0x2f584d(0x6a5)](_0x22baf0);},VisuMZ['BattleCore'][_0x1cc45e(0x4ef)]=BattleManager[_0x1cc45e(0x3ea)],BattleManager[_0x1cc45e(0x3ea)]=function(){const _0x422e17=_0x1cc45e;this['_endBattle']=![],this[_0x422e17(0x6a6)]=ConfigManager[_0x422e17(0x950)],this[_0x422e17(0x9ac)]=![],this[_0x422e17(0x6a5)](_0x422e17(0x73c)),VisuMZ['BattleCore'][_0x422e17(0x4ef)]['call'](this),this[_0x422e17(0x6a5)](_0x422e17(0x60a));},BattleManager[_0x1cc45e(0x31f)]=function(_0x4a74fc){const _0x29e362=_0x1cc45e,_0x1cf424=VisuMZ[_0x29e362(0x2c5)][_0x29e362(0x5fb)][_0x29e362(0x56d)];_0x4a74fc!==_0x29e362(0x7dc)&&_0x1cf424[_0x29e362(0x4a6)]&&VisuMZ[_0x29e362(0x2c5)]['CheckMapBattleEventValid'](_0x1cf424['BattleEndEvent'])&&$gameTemp[_0x29e362(0xbc7)](_0x1cf424[_0x29e362(0x4a6)]);const _0x349652=_0x29e362(0x2a5)['format'](_0x4a74fc);_0x1cf424[_0x349652]&&VisuMZ[_0x29e362(0x2c5)][_0x29e362(0x331)](_0x1cf424[_0x349652])&&$gameTemp['reserveCommonEvent'](_0x1cf424[_0x349652]);},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x2d3)]=BattleManager[_0x1cc45e(0x2f8)],BattleManager[_0x1cc45e(0x2f8)]=function(){const _0x257f31=_0x1cc45e;VisuMZ['BattleCore']['BattleManager_abort'][_0x257f31(0xa54)](this),SceneManager['isSceneBattle']()&&BattleManager[_0x257f31(0xc02)]();},VisuMZ[_0x1cc45e(0x2c5)]['BattleManager_checkBattleEnd']=BattleManager[_0x1cc45e(0x25b)],BattleManager[_0x1cc45e(0x25b)]=function(){const _0x262899=_0x1cc45e;if(this[_0x262899(0x225)]===_0x262899(0x646)){if($gameTemp[_0x262899(0x524)]())return![];}return VisuMZ['BattleCore'][_0x262899(0x83a)]['call'](this);},VisuMZ['BattleCore'][_0x1cc45e(0x5ec)]=BattleManager[_0x1cc45e(0x9be)],BattleManager['processVictory']=function(){const _0x458fbf=_0x1cc45e;this['_endingBattle']=!![],this[_0x458fbf(0x6a5)](_0x458fbf(0x8f5)),VisuMZ[_0x458fbf(0x2c5)]['BattleManager_processVictory'][_0x458fbf(0xa54)](this),this[_0x458fbf(0x31f)]('Victory');},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0xacd)]=BattleManager[_0x1cc45e(0xcef)],BattleManager['processAbort']=function(){const _0x597ff8=_0x1cc45e;this[_0x597ff8(0x9ac)]=!![],VisuMZ[_0x597ff8(0x2c5)]['BattleManager_processAbort'][_0x597ff8(0xa54)](this);},VisuMZ[_0x1cc45e(0x2c5)]['BattleManager_processDefeat']=BattleManager['processDefeat'],BattleManager[_0x1cc45e(0x789)]=function(){const _0x204f42=_0x1cc45e;this[_0x204f42(0x9ac)]=!![],this[_0x204f42(0x6a5)](_0x204f42(0x3f3)),VisuMZ['BattleCore']['BattleManager_processDefeat'][_0x204f42(0xa54)](this),this[_0x204f42(0x31f)]('Defeat');},VisuMZ[_0x1cc45e(0x2c5)]['BattleManager_endBattle']=BattleManager[_0x1cc45e(0x48f)],BattleManager[_0x1cc45e(0x48f)]=function(_0xee75c2){const _0xaaa4fe=_0x1cc45e;this['_endBattle']=!![],this[_0xaaa4fe(0x6a6)]=![],this['processBattleCoreJS'](_0xaaa4fe(0x277)),VisuMZ[_0xaaa4fe(0x2c5)][_0xaaa4fe(0xc0a)]['call'](this,_0xee75c2),this[_0xaaa4fe(0x6a5)](_0xaaa4fe(0x53f));},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0xcac)]=BattleManager[_0x1cc45e(0xc61)],BattleManager[_0x1cc45e(0xc61)]=function(){const _0x188802=_0x1cc45e;if(this['isTurnBased']())this[_0x188802(0x6a5)]('PreStartTurnJS');VisuMZ['BattleCore'][_0x188802(0xcac)][_0x188802(0xa54)](this);if(this[_0x188802(0x529)]())this[_0x188802(0x6a5)](_0x188802(0x799));},BattleManager[_0x1cc45e(0x6be)]=function(){const _0x514e1e=_0x1cc45e,_0x3f93f6=this[_0x514e1e(0x301)],_0x374c17=_0x3f93f6['currentAction']();_0x374c17?(_0x374c17[_0x514e1e(0xad4)](),_0x374c17['isValid']()?(this[_0x514e1e(0xbaf)](),_0x3f93f6[_0x514e1e(0x60b)]()):(_0x3f93f6['removeCurrentAction'](),this[_0x514e1e(0x2ea)]())):(this[_0x514e1e(0x2ea)](),this[_0x514e1e(0x301)]=null);},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x395)]=BattleManager[_0x1cc45e(0xbaf)],BattleManager['startAction']=function(){const _0x33453d=_0x1cc45e,_0x5a1b2a=this[_0x33453d(0x301)][_0x33453d(0xbfb)](),_0x5eec67=this['_subject'];_0x5a1b2a&&_0x5a1b2a[_0x33453d(0x786)]()===_0x5eec67&&_0x5a1b2a['actionBattleCoreJS']('PreStartActionJS'),VisuMZ['BattleCore'][_0x33453d(0x395)][_0x33453d(0xa54)](this),_0x5a1b2a&&_0x5a1b2a['subject']()===_0x5eec67&&_0x5a1b2a[_0x33453d(0x2fe)](_0x33453d(0x3ce));},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x953)]=BattleManager[_0x1cc45e(0x2ea)],BattleManager[_0x1cc45e(0x2ea)]=function(){const _0x29f363=_0x1cc45e,_0x1f4895=this['_action'],_0x583b38=this[_0x29f363(0x301)];_0x1f4895&&_0x1f4895!==this[_0x29f363(0x205)]&&_0x1f4895[_0x29f363(0x786)]()===_0x583b38&&_0x1f4895[_0x29f363(0x2fe)](_0x29f363(0xa3b)),this['_subject']?VisuMZ['BattleCore']['BattleManager_endAction'][_0x29f363(0xa54)](this):this[_0x29f363(0x225)]=_0x29f363(0x646),_0x1f4895&&_0x1f4895!==this[_0x29f363(0x205)]&&_0x1f4895[_0x29f363(0x786)]()===_0x583b38&&_0x1f4895[_0x29f363(0x2fe)](_0x29f363(0x2a2)),this[_0x29f363(0x70c)](this[_0x29f363(0xb3c)]()),this[_0x29f363(0x205)]=this[_0x29f363(0xa8b)];},BattleManager[_0x1cc45e(0x70c)]=function(_0x458e57){const _0xafc9c9=_0x1cc45e;for(const _0x17ed5c of _0x458e57){if(!_0x17ed5c)continue;if(!_0x17ed5c[_0xafc9c9(0x3ba)]())continue;_0x17ed5c[_0xafc9c9(0x3ba)]()['refreshMotion']();}},BattleManager[_0x1cc45e(0x303)]=function(){const _0xccffa=_0x1cc45e;!this['_logWindow'][_0xccffa(0xc94)]()&&this['endAction']();},Game_Battler[_0x1cc45e(0xc0b)]['onAllActionsEnd']=function(){const _0x56dbe9=_0x1cc45e;this['clearResult']();if(Imported[_0x56dbe9(0x47f)]){const _0x55d34e=VisuMZ[_0x56dbe9(0x5d5)][_0x56dbe9(0x5fb)][_0x56dbe9(0x548)];_0x55d34e&&_0x55d34e[_0x56dbe9(0x9ba)]===![]&&this[_0x56dbe9(0x2e3)](0x1);}else this[_0x56dbe9(0x2e3)](0x1);this[_0x56dbe9(0x3d2)]();},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x812)]=BattleManager['invokeCounterAttack'],BattleManager[_0x1cc45e(0x973)]=function(_0x4e27e0,_0xd702ab){const _0x14b4ef=_0x1cc45e;this[_0x14b4ef(0xa6b)]=!![],VisuMZ['BattleCore'][_0x14b4ef(0x812)][_0x14b4ef(0xa54)](this,_0x4e27e0,_0xd702ab),this[_0x14b4ef(0xa6b)]=undefined;},BattleManager[_0x1cc45e(0x80e)]=function(){const _0x2bfad6=_0x1cc45e;this[_0x2bfad6(0x836)]=VisuMZ[_0x2bfad6(0x2c5)][_0x2bfad6(0x5fb)][_0x2bfad6(0x56d)][_0x2bfad6(0x62c)][_0x2bfad6(0xa54)](this);},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0xb42)]=BattleManager[_0x1cc45e(0xc8c)],BattleManager[_0x1cc45e(0xc8c)]=function(){const _0x5c4495=_0x1cc45e;this[_0x5c4495(0x6a5)]('EscapeSuccessJS'),BattleManager[_0x5c4495(0x2e6)][_0x5c4495(0xb73)](),VisuMZ[_0x5c4495(0x2c5)][_0x5c4495(0xb42)][_0x5c4495(0xa54)](this),this[_0x5c4495(0x31f)](_0x5c4495(0x3f7));},VisuMZ['BattleCore'][_0x1cc45e(0x7f1)]=BattleManager[_0x1cc45e(0x5dc)],BattleManager[_0x1cc45e(0x5dc)]=function(){const _0x154ecd=_0x1cc45e;this[_0x154ecd(0x6a5)]('EscapeFailureJS');const _0x21656d=this[_0x154ecd(0x836)];VisuMZ[_0x154ecd(0x2c5)]['BattleManager_onEscapeFailure'][_0x154ecd(0xa54)](this),this[_0x154ecd(0x836)]=_0x21656d+VisuMZ[_0x154ecd(0x2c5)][_0x154ecd(0x5fb)][_0x154ecd(0x56d)]['CalcEscapeRaiseJS'][_0x154ecd(0xa54)](this),this[_0x154ecd(0x370)]=![],this[_0x154ecd(0x31f)](_0x154ecd(0x7dc));},BattleManager['displayStartMessages']=function(){const _0x38bea2=_0x1cc45e;let _0x11232b=![];if(this[_0x38bea2(0xca5)]())for(const _0x4672f5 of $gameTroop[_0x38bea2(0x369)]()){this[_0x38bea2(0xc9e)][_0x38bea2(0xca6)](_0x38bea2(0x64e),TextManager[_0x38bea2(0xa80)]['format'](_0x4672f5)),this['_logWindow']['push'](_0x38bea2(0x8f9)),_0x11232b=!![];}if(this[_0x38bea2(0xa9a)])this[_0x38bea2(0xc9e)][_0x38bea2(0xca6)]('addText',TextManager[_0x38bea2(0x549)]['format']($gameParty[_0x38bea2(0xc4e)]())),this[_0x38bea2(0xc9e)][_0x38bea2(0xca6)](_0x38bea2(0x8f9));else this[_0x38bea2(0x632)]&&(this['_logWindow']['push']('addText',TextManager[_0x38bea2(0x817)][_0x38bea2(0x65c)]($gameParty['name']())),this[_0x38bea2(0xc9e)][_0x38bea2(0xca6)]('wait'));_0x11232b&&(this[_0x38bea2(0xc9e)][_0x38bea2(0xca6)](_0x38bea2(0x8f9)),this[_0x38bea2(0xc9e)][_0x38bea2(0xca6)]('clear')),this[_0x38bea2(0x644)]()&&this[_0x38bea2(0x5c9)]()&&(this[_0x38bea2(0x569)]=![]);},BattleManager[_0x1cc45e(0xca5)]=function(){const _0x13c602=_0x1cc45e;if(BattleManager[_0x13c602(0x6a6)])return![];return VisuMZ[_0x13c602(0x2c5)][_0x13c602(0x5fb)][_0x13c602(0x1a9)][_0x13c602(0x543)];},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0xb81)]=BattleManager[_0x1cc45e(0x27e)],BattleManager['startInput']=function(){const _0x59d356=_0x1cc45e;VisuMZ[_0x59d356(0x2c5)]['BattleManager_startInput'][_0x59d356(0xa54)](this),this[_0x59d356(0x452)]()&&this[_0x59d356(0x5c9)]()&&!this['_surprise']&&$gameParty[_0x59d356(0x761)]()&&this[_0x59d356(0x698)]();},BattleManager[_0x1cc45e(0x5c9)]=function(){const _0x35eeae=_0x1cc45e;return VisuMZ['BattleCore'][_0x35eeae(0x5fb)][_0x35eeae(0x88b)][_0x35eeae(0xd0c)];},BattleManager['checkTpbInputOpen']=function(){const _0xf0bd0=_0x1cc45e;this[_0xf0bd0(0x5ee)]()&&this[_0xf0bd0(0x698)]();},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0xc41)]=Scene_Battle['prototype'][_0x1cc45e(0xc72)],Scene_Battle[_0x1cc45e(0xc0b)][_0x1cc45e(0xc72)]=function(){const _0x1631b5=_0x1cc45e;VisuMZ[_0x1631b5(0x2c5)][_0x1631b5(0xc41)]['call'](this),BattleManager[_0x1631b5(0x644)]()&&BattleManager[_0x1631b5(0x569)]&&(BattleManager[_0x1631b5(0x569)]=![],this[_0x1631b5(0xcfd)]());},BattleManager[_0x1cc45e(0x34e)]=function(_0x1134de,_0x46528b,_0x5cc8f0){const _0xc8b821=_0x1cc45e;if(!_0x5cc8f0)return;if(!_0x1134de)return;if(!_0x46528b)return;const _0x446fbc=this['_action'];this[_0xc8b821(0xa8b)]=new Game_Action(_0x1134de);if(DataManager[_0xc8b821(0x610)](_0x5cc8f0))this[_0xc8b821(0xa8b)][_0xc8b821(0x8b2)](_0x5cc8f0['id']);if(DataManager[_0xc8b821(0x2b1)](_0x5cc8f0))this['_action']['setSkill'](_0x5cc8f0['id']);if(this[_0xc8b821(0xa8b)][_0xc8b821(0x904)]())BattleManager[_0xc8b821(0xa39)](_0x1134de,_0x46528b);this[_0xc8b821(0xa8b)]=_0x446fbc;},BattleManager[_0x1cc45e(0xa73)]=function(_0x352863,_0x48abc6){const _0x268e7c=_0x1cc45e;this['_action'][_0x268e7c(0x9ea)]=_0x48abc6,this[_0x268e7c(0xc9e)][_0x268e7c(0x600)](_0x48abc6),this[_0x268e7c(0xc9e)][_0x268e7c(0x76f)](_0x352863,this['_action']),this[_0x268e7c(0xa8b)][_0x268e7c(0xca2)](_0x352863),this['_logWindow']['displayActionResults'](_0x352863,_0x352863);},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0xc73)]=BattleManager['makeActionOrders'],BattleManager['makeActionOrders']=function(){const _0xfc89c3=_0x1cc45e;VisuMZ[_0xfc89c3(0x2c5)][_0xfc89c3(0xc73)]['call'](this),this[_0xfc89c3(0x69f)]=this[_0xfc89c3(0x69f)][_0xfc89c3(0x441)](_0x118139=>_0x118139&&_0x118139[_0xfc89c3(0x7e3)]());},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x28c)]=BattleManager[_0x1cc45e(0x8b1)],BattleManager[_0x1cc45e(0x8b1)]=function(_0x8314de){const _0x17175b=_0x1cc45e;if(this[_0x17175b(0x225)]==='custom')this[_0x17175b(0x7e2)]();else this[_0x17175b(0x225)]===_0x17175b(0x483)?this[_0x17175b(0x8f8)]():VisuMZ[_0x17175b(0x2c5)][_0x17175b(0x28c)][_0x17175b(0xa54)](this,_0x8314de);},BattleManager[_0x1cc45e(0x756)]=function(){const _0x37f1aa=_0x1cc45e;this[_0x37f1aa(0xb50)]=this['_targets'][_0x37f1aa(0x937)](0x0),this['_targetIndex']=0x0,this['_target']=this['_allTargets'][0x0]||null,this[_0x37f1aa(0x225)]=_0x37f1aa(0x87c);},BattleManager[_0x1cc45e(0x7e2)]=function(){const _0x5e225f=_0x1cc45e;!this[_0x5e225f(0x67e)]()&&!this[_0x5e225f(0xc9e)][_0x5e225f(0xc94)]()&&(this[_0x5e225f(0x225)]=_0x5e225f(0xb87));},BattleManager[_0x1cc45e(0x483)]=function(_0x20b473){const _0x4da145=_0x1cc45e;this[_0x4da145(0x69f)][_0x4da145(0x280)](_0x20b473);if(_0x20b473===this['_subject'])return;const _0x15eda4=JsonEx['makeDeepCopy'](_0x20b473[_0x4da145(0xbfb)]());this['_forcedBattlers'][_0x4da145(0xca6)]([_0x20b473,_0x15eda4]);},BattleManager[_0x1cc45e(0xc17)]=function(){},BattleManager['updateStart']=function(){const _0x253b29=_0x1cc45e;if(this[_0x253b29(0x644)]())this[_0x253b29(0x225)]='turn';else this['_forcedBattlers'][_0x253b29(0x96d)]>0x0?this[_0x253b29(0x225)]=_0x253b29(0x646):this[_0x253b29(0x27e)]();},BattleManager[_0x1cc45e(0xc3d)]=function(){const _0x388e3d=_0x1cc45e,_0x5c1ddc=this['_subject'];_0x5c1ddc&&this[_0x388e3d(0x644)]()&&_0x5c1ddc[_0x388e3d(0xcb4)]('undecided');for(;;){const _0xc352fb=this[_0x388e3d(0x8a6)]();if(!_0xc352fb)return null;if(_0xc352fb[_0x388e3d(0xb90)]()&&_0xc352fb[_0x388e3d(0x212)]())return _0xc352fb;}},BattleManager[_0x1cc45e(0x8a6)]=function(){const _0x22003b=_0x1cc45e;if(this[_0x22003b(0x1c7)][_0x22003b(0x96d)]>0x0){const _0x1959d0=this[_0x22003b(0x1c7)][_0x22003b(0x597)](),_0xb2a5b1=_0x1959d0[0x0];return _0xb2a5b1[_0x22003b(0x89d)]=_0xb2a5b1['_actions']||[],_0xb2a5b1[_0x22003b(0x89d)][0x0]=_0x1959d0[0x1],_0xb2a5b1;}else return this[_0x22003b(0x69f)][_0x22003b(0x597)]();},VisuMZ['BattleCore'][_0x1cc45e(0xcf2)]=Game_Battler['prototype']['forceAction'],Game_Battler[_0x1cc45e(0xc0b)]['forceAction']=function(_0x10e398,_0x2949d4){const _0x313ab1=_0x1cc45e;VisuMZ[_0x313ab1(0x2c5)][_0x313ab1(0xcf2)][_0x313ab1(0xa54)](this,_0x10e398,_0x2949d4),this['_actions'][this[_0x313ab1(0x89d)][_0x313ab1(0x96d)]-0x1][_0x313ab1(0x6ee)]=!![];},Game_Interpreter[_0x1cc45e(0xc0b)][_0x1cc45e(0xcad)]=function(_0x5cf92a){const _0x4eb76e=_0x1cc45e;return this[_0x4eb76e(0x845)](_0x5cf92a[0x0],_0x5cf92a[0x1],_0x3f1904=>{const _0x1de563=_0x4eb76e;!_0x3f1904[_0x1de563(0x922)]()&&(_0x3f1904['forceAction'](_0x5cf92a[0x2],_0x5cf92a[0x3]),BattleManager[_0x1de563(0x483)](_0x3f1904));}),!![];},VisuMZ[_0x1cc45e(0x2c5)]['Game_Battler_makeSpeed']=Game_Battler[_0x1cc45e(0xc0b)][_0x1cc45e(0x5a7)],Game_Battler[_0x1cc45e(0xc0b)][_0x1cc45e(0x5a7)]=function(){const _0x1eb6a1=_0x1cc45e;VisuMZ['BattleCore'][_0x1eb6a1(0x526)][_0x1eb6a1(0xa54)](this),this[_0x1eb6a1(0x89d)][_0x1eb6a1(0x96d)]<=0x0&&(this[_0x1eb6a1(0x5d3)]=Number[_0x1eb6a1(0x8df)]);},BattleManager[_0x1cc45e(0x2fd)]=function(){const _0x1a40b7=_0x1cc45e;if(VisuMZ[_0x1a40b7(0x2c5)]['Settings'][_0x1a40b7(0x1de)][_0x1a40b7(0x866)]??!![])return![];return SceneManager[_0x1a40b7(0x499)]()&&this[_0x1a40b7(0x9ac)];},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x887)]=BattleManager['selectNextCommand'],BattleManager[_0x1cc45e(0x698)]=function(){const _0x470ffe=_0x1cc45e;this['isTpb']()?this[_0x470ffe(0x3ee)]():VisuMZ[_0x470ffe(0x2c5)][_0x470ffe(0x887)][_0x470ffe(0xa54)](this);},BattleManager[_0x1cc45e(0x3ee)]=function(){const _0x301a95=_0x1cc45e;if(this['_currentActor']){if(this[_0x301a95(0x707)]['selectNextCommand']())return;this[_0x301a95(0x5a8)](),this[_0x301a95(0x54b)](),!this[_0x301a95(0x301)]&&!this[_0x301a95(0x707)]&&SceneManager[_0x301a95(0x659)]['updateBattleProcess']();}else!this[_0x301a95(0x301)]&&this[_0x301a95(0x9f9)]();},BattleManager[_0x1cc45e(0x54b)]=function(){const _0xc19d9a=_0x1cc45e;(!this['isPartyTpbInputtable']()||this[_0xc19d9a(0x51c)]())&&(this['_tpbSceneChangeCacheActor']&&(!$gameParty[_0xc19d9a(0xaee)]()[_0xc19d9a(0x9c4)](this[_0xc19d9a(0x61c)])&&(this[_0xc19d9a(0x61c)]=null)),!this[_0xc19d9a(0x61c)]?(this[_0xc19d9a(0x343)](),this[_0xc19d9a(0x707)]=null,this['_inputting']=![]):this[_0xc19d9a(0x765)]());},BattleManager[_0x1cc45e(0x765)]=function(){const _0x315c91=_0x1cc45e;!$gameParty[_0x315c91(0xaee)]()[_0x315c91(0x9c4)](this[_0x315c91(0x61c)])&&(this['_tpbSceneChangeCacheActor']=null),this['_tpbSceneChangeCacheActor']?(this[_0x315c91(0x707)]=this[_0x315c91(0x61c)],this[_0x315c91(0x707)][_0x315c91(0xa27)]='charged',this['_inputting']=!![],this[_0x315c91(0x61c)]=null):(this['cancelActorInput'](),this['_currentActor']=null,this['_inputting']=![]);},VisuMZ['BattleCore'][_0x1cc45e(0x6d5)]=BattleManager[_0x1cc45e(0x721)],BattleManager[_0x1cc45e(0x721)]=function(){const _0xfa02ee=_0x1cc45e;return this[_0xfa02ee(0x225)]===_0xfa02ee(0x87c)?this[_0xfa02ee(0x308)]():VisuMZ['BattleCore'][_0xfa02ee(0x6d5)]['call'](this);},BattleManager[_0x1cc45e(0x308)]=function(){const _0x1eb427=_0x1cc45e;return this[_0x1eb427(0x718)]();},VisuMZ[_0x1cc45e(0x2c5)]['BattleManager_cancelActorInput']=BattleManager['cancelActorInput'],BattleManager[_0x1cc45e(0x343)]=function(){const _0x2411f8=_0x1cc45e;this[_0x2411f8(0x644)]()&&this[_0x2411f8(0x225)]==='battleEnd'&&(this[_0x2411f8(0x707)]=null),VisuMZ[_0x2411f8(0x2c5)][_0x2411f8(0xcb8)][_0x2411f8(0xa54)](this);},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x413)]=BattleManager[_0x1cc45e(0x82b)],BattleManager[_0x1cc45e(0x82b)]=function(){const _0x3bfe5b=_0x1cc45e,_0x4f2746=this[_0x3bfe5b(0x707)];if(_0x4f2746&&!_0x4f2746[_0x3bfe5b(0x82b)]()){const _0x39d785=_0x4f2746[_0x3bfe5b(0x74f)];_0x4f2746[_0x3bfe5b(0x89d)][_0x39d785]=new Game_Action(_0x4f2746);}return VisuMZ[_0x3bfe5b(0x2c5)][_0x3bfe5b(0x413)][_0x3bfe5b(0xa54)](this);},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0xc09)]=BattleManager[_0x1cc45e(0xb68)],BattleManager[_0x1cc45e(0xb68)]=function(_0x54132c){const _0x1b4494=_0x1cc45e;if(this[_0x1b4494(0x301)]&&this[_0x1b4494(0x301)][_0x1b4494(0x864)]()===_0x54132c[_0x1b4494(0x864)]())return![];return VisuMZ['BattleCore']['BattleManager_checkSubstitute'][_0x1b4494(0xa54)](this,_0x54132c);},SceneManager[_0x1cc45e(0x499)]=function(){const _0x3875f5=_0x1cc45e;return this['_scene']&&this[_0x3875f5(0x659)][_0x3875f5(0x2e2)]===Scene_Battle;},SceneManager['isBattleFlipped']=function(){const _0x1eb64f=_0x1cc45e;return Spriteset_Battle[_0x1eb64f(0xc0b)]['isFlipped']();},SceneManager[_0x1cc45e(0x581)]=function(){if(SceneManager['isPreviousScene'](Scene_Options))return!![];return![];},SceneManager[_0x1cc45e(0x827)]=function(){if(SceneManager['isNextScene'](Scene_Options))return!![];return![];},SceneManager[_0x1cc45e(0x871)]=function(_0x26006c){const _0x293ffd=_0x1cc45e;if(!SceneManager[_0x293ffd(0x499)]())return!![];const _0x3da29a=['Scene_Options','Scene_Party',_0x293ffd(0x748)];return _0x3da29a[_0x293ffd(0x9c4)](_0x26006c[_0x293ffd(0xc4e)]);},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x963)]=SceneManager[_0x1cc45e(0xca6)],SceneManager[_0x1cc45e(0xca6)]=function(_0x1327db){const _0x426b60=_0x1cc45e;if(!SceneManager[_0x426b60(0x871)](_0x1327db))return this['displayBattleCoreTransitionErrorMsg'](_0x1327db);VisuMZ[_0x426b60(0x2c5)][_0x426b60(0x963)][_0x426b60(0xa54)](this,_0x1327db);},SceneManager['displayBattleCoreTransitionErrorMsg']=function(_0x52cf00){const _0x13a013=_0x1cc45e;if(!$gameTemp['isPlaytest']())return;if(this[_0x13a013(0x293)])return;this[_0x13a013(0x293)]=!![];let _0x1eb61a='';_0x1eb61a+='VisuMZ_1_BattleCore\x20does\x20NOT\x20support\x20changing',_0x1eb61a+=_0x13a013(0x2bb)[_0x13a013(0x65c)](_0x52cf00['name']),alert(_0x1eb61a);},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x7f3)]=Game_Temp[_0x1cc45e(0xc0b)][_0x1cc45e(0x896)],Game_Temp[_0x1cc45e(0xc0b)][_0x1cc45e(0x896)]=function(){const _0x3c77c2=_0x1cc45e;VisuMZ[_0x3c77c2(0x2c5)]['Game_Temp_initialize'][_0x3c77c2(0xa54)](this),this[_0x3c77c2(0x4f6)]=[];},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x2d4)]=Game_Temp['prototype'][_0x1cc45e(0xa84)],Game_Temp['prototype'][_0x1cc45e(0xa84)]=function(_0x532dab,_0x4361b7,_0x30d5af){const _0x4c09cc=_0x1cc45e;_0x532dab[_0x4c09cc(0x280)](null)[_0x4c09cc(0x280)](undefined),_0x532dab=_0x532dab['filter']((_0x3972e6,_0x331a34,_0x5dfab4)=>_0x5dfab4[_0x4c09cc(0x6e9)](_0x3972e6)===_0x331a34);SceneManager[_0x4c09cc(0x499)]()&&SceneManager[_0x4c09cc(0x6c0)]()&&(_0x30d5af=!_0x30d5af);VisuMZ['BattleCore'][_0x4c09cc(0x2d4)][_0x4c09cc(0xa54)](this,_0x532dab,_0x4361b7,_0x30d5af);SceneManager[_0x4c09cc(0x499)]()&&BattleManager[_0x4c09cc(0x2e6)]['processAnimationRequests']();for(const _0x3f8e86 of _0x532dab){_0x3f8e86&&_0x3f8e86[_0x4c09cc(0x348)]&&_0x3f8e86[_0x4c09cc(0x348)]()&&_0x3f8e86['resetNameTempVisibility']();}},Game_Temp['prototype']['setLastPluginCommandInterpreter']=function(_0xebd28b){const _0x1b9cf1=_0x1cc45e;this[_0x1b9cf1(0x9c0)]=_0xebd28b;},Game_Temp['prototype']['getLastPluginCommandInterpreter']=function(){const _0x2675bf=_0x1cc45e;return this[_0x2675bf(0x9c0)];},Game_Temp[_0x1cc45e(0xc0b)]['clearForcedGameTroopSettingsBattleCore']=function(){const _0x5a7c58=_0x1cc45e;this[_0x5a7c58(0x3b3)]=undefined;},Game_Temp[_0x1cc45e(0xc0b)][_0x1cc45e(0xbf0)]=function(_0x2c9133){const _0x2c004a=_0x1cc45e;$gameMap&&$dataMap&&$dataMap[_0x2c004a(0xbe6)]&&this[_0x2c004a(0x50d)]($dataMap[_0x2c004a(0xbe6)]);const _0x398d48=$dataTroops[_0x2c9133];if(_0x398d48){let _0x11753d=DataManager[_0x2c004a(0x5f8)](_0x398d48['id']);this[_0x2c004a(0x50d)](_0x11753d);}},Game_Temp[_0x1cc45e(0xc0b)][_0x1cc45e(0x50d)]=function(_0x54a8aa){const _0x5c597b=_0x1cc45e;if(!_0x54a8aa)return;if(_0x54a8aa[_0x5c597b(0xc6a)](/<(?:BATTLELAYOUT|BATTLE LAYOUT|LAYOUT):[ ](.*?)>/i)){const _0x1001e2=String(RegExp['$1']);if(_0x1001e2['match'](/DEFAULT/i))this[_0x5c597b(0x3b3)]='default';else{if(_0x1001e2[_0x5c597b(0xc6a)](/LIST/i))this[_0x5c597b(0x3b3)]=_0x5c597b(0x8de);else{if(_0x1001e2['match'](/XP/i))this[_0x5c597b(0x3b3)]='xp';else{if(_0x1001e2[_0x5c597b(0xc6a)](/PORTRAIT/i))this[_0x5c597b(0x3b3)]=_0x5c597b(0x76c);else{if(_0x1001e2['match'](/BORDER/i))this[_0x5c597b(0x3b3)]=_0x5c597b(0x3ff);else{if(_0x1001e2[_0x5c597b(0xc6a)](/(?:SIDEVIEW UI|SIDEVIEW)/i))Imported[_0x5c597b(0x5f7)]?this['_forcedBattleLayout']=_0x5c597b(0x340):this[_0x5c597b(0x3b3)]=_0x5c597b(0x8d7);else _0x1001e2[_0x5c597b(0xc6a)](/(?:FRONTVIEW UI|FRONTVIEW)/i)&&(Imported[_0x5c597b(0xc63)]?this[_0x5c597b(0x3b3)]=_0x5c597b(0x26a):this[_0x5c597b(0x3b3)]=_0x5c597b(0x8d7));}}}}}}},VisuMZ['BattleCore'][_0x1cc45e(0xa83)]=Game_Temp[_0x1cc45e(0xc0b)][_0x1cc45e(0xb85)],Game_Temp[_0x1cc45e(0xc0b)][_0x1cc45e(0xb85)]=function(_0xa86751,_0x5d38af){const _0x1a70ec=_0x1cc45e;SceneManager[_0x1a70ec(0x499)]()?this[_0x1a70ec(0x715)](_0xa86751,_0x5d38af):VisuMZ['BattleCore'][_0x1a70ec(0xa83)][_0x1a70ec(0xa54)](this,_0xa86751,_0x5d38af);},Game_Temp[_0x1cc45e(0xc0b)][_0x1cc45e(0x715)]=function(_0x31433b,_0x2f71a0){const _0xa0a4f8=_0x1cc45e,_0x2709de={'target':_0x31433b,'balloonId':_0x2f71a0};this['_battleBalloonQueue']=this[_0xa0a4f8(0x4f6)]||[],this[_0xa0a4f8(0x4f6)][_0xa0a4f8(0xca6)](_0x2709de);},Game_Temp[_0x1cc45e(0xc0b)]['retrieveBattleBalloon']=function(){const _0x45946e=_0x1cc45e;return this[_0x45946e(0x4f6)]=this[_0x45946e(0x4f6)]||[],this[_0x45946e(0x4f6)][_0x45946e(0x597)]();},Game_Temp['prototype'][_0x1cc45e(0xc18)]=function(){const _0x88c6bd=_0x1cc45e;this[_0x88c6bd(0x4f6)]=[];},Spriteset_Battle[_0x1cc45e(0xc0b)][_0x1cc45e(0x4ea)]=function(){const _0x4d701c=_0x1cc45e;this[_0x4d701c(0x2c4)]===undefined&&(this[_0x4d701c(0x2c4)]=[]);for(const _0x335d0f of this[_0x4d701c(0x2c4)]){!_0x335d0f['isPlaying']()&&this['removeBattleBalloon'](_0x335d0f);}this[_0x4d701c(0x2f6)]();},Spriteset_Battle[_0x1cc45e(0xc0b)][_0x1cc45e(0x2f6)]=function(){const _0x4c4939=_0x1cc45e;for(;;){const _0x4d245d=$gameTemp[_0x4c4939(0xbe4)]();if(_0x4d245d)this[_0x4c4939(0xd03)](_0x4d245d);else break;}},Spriteset_Battle['prototype'][_0x1cc45e(0xd03)]=function(_0x3d1201){const _0x39a779=_0x1cc45e,_0x3c8230=this['findTargetSprite'](_0x3d1201[_0x39a779(0x38c)]);if(_0x3c8230){let _0x149a69=null;Imported[_0x39a779(0x21d)]&&Array[_0x39a779(0x612)](_0x3d1201[_0x39a779(0x1b4)])?_0x149a69=new Sprite_IconBalloon():_0x149a69=new Sprite_Balloon(),_0x149a69[_0x39a779(0x79f)]=_0x3d1201[_0x39a779(0x38c)],_0x149a69[_0x39a779(0x757)]=_0x3c8230,_0x149a69[_0x39a779(0x757)][_0x39a779(0x8be)]=_0x3c8230,_0x149a69['setup'](_0x3c8230,_0x3d1201[_0x39a779(0x1b4)]),BattleManager['addChildToUiContainer'](_0x149a69),this['_battleBalloonSprites']['push'](_0x149a69);}},Spriteset_Battle[_0x1cc45e(0xc0b)][_0x1cc45e(0xc1b)]=function(_0x2d3921){const _0x46e96f=_0x1cc45e;this[_0x46e96f(0x2c4)][_0x46e96f(0x280)](_0x2d3921),BattleManager[_0x46e96f(0x6e7)](_0x2d3921),_0x2d3921[_0x46e96f(0x826)]();},Sprite_Battler[_0x1cc45e(0xc0b)][_0x1cc45e(0x3fc)]=function(_0x54743e,_0x487430){},Sprite_Battler[_0x1cc45e(0xc0b)][_0x1cc45e(0x2a4)]=function(){return![];},Spriteset_Battle[_0x1cc45e(0xc0b)][_0x1cc45e(0x2a3)]=function(){const _0x851d0c=_0x1cc45e;return this[_0x851d0c(0x2c4)]=this['_battleBalloonSprites']||[],this[_0x851d0c(0x2c4)][_0x851d0c(0x96d)]>0x0;},VisuMZ[_0x1cc45e(0x2c5)]['Game_System_initialize']=Game_System['prototype']['initialize'],Game_System[_0x1cc45e(0xc0b)][_0x1cc45e(0x896)]=function(){const _0x2e27a7=_0x1cc45e;VisuMZ[_0x2e27a7(0x2c5)][_0x2e27a7(0x9f7)][_0x2e27a7(0xa54)](this),this[_0x2e27a7(0x488)]();},Game_System[_0x1cc45e(0xc0b)]['initBattleCore']=function(){const _0x9be6a8=_0x1cc45e;this[_0x9be6a8(0x6b9)]=this['_defeatedEnemies']||[];},Game_System[_0x1cc45e(0xc0b)]['getDefeatedEnemies']=function(){const _0x4a3ee2=_0x1cc45e;if(this['_defeatedEnemies']===undefined)this[_0x4a3ee2(0x488)]();return this['_defeatedEnemies'];},Game_System['prototype']['registerDefeatedEnemy']=function(_0x463570){const _0x1b661e=_0x1cc45e;if(this[_0x1b661e(0x6b9)]===undefined)this['initBattleCore']();if(!_0x463570)return;if(this[_0x1b661e(0x6b9)][_0x1b661e(0x9c4)](_0x463570))return;this[_0x1b661e(0x6b9)][_0x1b661e(0xca6)](_0x463570),this[_0x1b661e(0x6b9)]['sort']((_0x144247,_0x142d8e)=>_0x144247-_0x142d8e);},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x9eb)]=Game_BattlerBase[_0x1cc45e(0xc0b)][_0x1cc45e(0x3c7)],Game_BattlerBase[_0x1cc45e(0xc0b)]['addNewState']=function(_0x42d02f){const _0x5e93fd=_0x1cc45e,_0xa8ca2=this[_0x5e93fd(0x212)](),_0xb3e6db=this[_0x5e93fd(0xb2a)]();VisuMZ[_0x5e93fd(0x2c5)][_0x5e93fd(0x9eb)]['call'](this,_0x42d02f),this['isEnemy']()&&_0xa8ca2&&this['isDead']()&&(this[_0x5e93fd(0x661)]=!this[_0x5e93fd(0x42f)](),$gameSystem['registerDefeatedEnemy'](this[_0x5e93fd(0x1d4)]())),SceneManager[_0x5e93fd(0x499)]()&&_0xb3e6db!==this['stateMotionIndex']()&&(this[_0x5e93fd(0x3ba)]()&&this[_0x5e93fd(0x3ba)]()[_0x5e93fd(0xba7)]());},Game_Enemy[_0x1cc45e(0xc0b)][_0x1cc45e(0x42f)]=function(){const _0x549929=_0x1cc45e;return $gameSystem['getDefeatedEnemies']()[_0x549929(0x9c4)](this[_0x549929(0x7c1)]);},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x81f)]=Game_BattlerBase[_0x1cc45e(0xc0b)][_0x1cc45e(0x6f4)],Game_BattlerBase['prototype']['eraseState']=function(_0x509c78){const _0x368289=_0x1cc45e,_0x285942=this[_0x368289(0xab5)]['includes'](_0x509c78),_0x4f4ce5=this[_0x368289(0xb2a)]();VisuMZ[_0x368289(0x2c5)][_0x368289(0x81f)]['call'](this,_0x509c78),this['isEnemy']()&&_0x509c78===this[_0x368289(0x36e)]()&&this[_0x368289(0x212)]()&&(this[_0x368289(0x661)]=![]),!this[_0x368289(0x31b)]&&!this[_0x368289(0x1f2)]&&SceneManager[_0x368289(0x499)]()&&(_0x285942&&!this[_0x368289(0xab5)][_0x368289(0x9c4)](_0x509c78)&&this['requestMotionRefresh'](),_0x4f4ce5!==this['stateMotionIndex']()&&(this[_0x368289(0x3ba)]()&&this[_0x368289(0x3ba)]()['refreshMotion']()));},VisuMZ[_0x1cc45e(0x2c5)]['Game_Action_clear']=Game_Action[_0x1cc45e(0xc0b)]['clear'],Game_Action[_0x1cc45e(0xc0b)]['clear']=function(){const _0x4c9984=_0x1cc45e;VisuMZ[_0x4c9984(0x2c5)]['Game_Action_clear'][_0x4c9984(0xa54)](this),this['_armorPenetration']={'arPenRate':0x0,'arPenFlat':0x0,'arRedRate':0x0,'arRedFlat':0x0},this[_0x4c9984(0xaf1)]={'criticalHitRate':0x1,'criticalHitFlat':0x0,'criticalDmgRate':0x1,'criticalDmgFlat':0x0,'damageRate':0x1,'damageFlat':0x0,'hitRate':0x1,'hitFlat':0x0},this[_0x4c9984(0x576)]=_0x4c9984(0x8d7),this[_0x4c9984(0x26d)]();},Game_Action[_0x1cc45e(0xc0b)][_0x1cc45e(0x26d)]=function(){const _0x5aed83=_0x1cc45e;this[_0x5aed83(0xad3)]='';},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0xc58)]=Game_Action[_0x1cc45e(0xc0b)]['setSubject'],Game_Action[_0x1cc45e(0xc0b)]['setSubject']=function(_0x3d5ef5){const _0x19b457=_0x1cc45e;VisuMZ[_0x19b457(0x2c5)][_0x19b457(0xc58)][_0x19b457(0xa54)](this,_0x3d5ef5),this[_0x19b457(0x26d)]();},VisuMZ['BattleCore']['Game_Action_setSkill']=Game_Action[_0x1cc45e(0xc0b)][_0x1cc45e(0x7fd)],Game_Action['prototype'][_0x1cc45e(0x7fd)]=function(_0x519b63){const _0x33549e=_0x1cc45e;VisuMZ['BattleCore'][_0x33549e(0x623)][_0x33549e(0xa54)](this,_0x519b63),this[_0x33549e(0x26d)]();},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0xb7c)]=Game_Action[_0x1cc45e(0xc0b)]['setItem'],Game_Action['prototype']['setItem']=function(_0x1da1ba){const _0x1a1de2=_0x1cc45e;VisuMZ[_0x1a1de2(0x2c5)][_0x1a1de2(0xb7c)]['call'](this,_0x1da1ba),this[_0x1a1de2(0x26d)]();},Game_Action[_0x1cc45e(0xc0b)][_0x1cc45e(0x980)]=function(_0x4182d7,_0x137a03){const _0x374944=_0x1cc45e;return VisuMZ[_0x374944(0x2c5)][_0x374944(0x5fb)][_0x374944(0x1de)]['OverallFormulaJS'][_0x374944(0xa54)](this,_0x4182d7,_0x137a03);},Game_Action[_0x1cc45e(0xc0b)][_0x1cc45e(0x55f)]=function(_0x43cde2,_0x5a1522){const _0x50c00c=_0x1cc45e;return VisuMZ[_0x50c00c(0x2c5)][_0x50c00c(0x5fb)][_0x50c00c(0x1de)][_0x50c00c(0x2d8)][_0x50c00c(0xa54)](this,_0x43cde2,_0x5a1522);},Game_Action[_0x1cc45e(0xc0b)]['applyGuard']=function(_0x2704be,_0x5b1e1a){const _0x5ba5e2=_0x1cc45e;return VisuMZ[_0x5ba5e2(0x2c5)][_0x5ba5e2(0x5fb)][_0x5ba5e2(0x1de)][_0x5ba5e2(0x8e0)][_0x5ba5e2(0xa54)](this,_0x2704be,_0x5b1e1a);},VisuMZ[_0x1cc45e(0x2c5)]['Game_Action_itemHit']=Game_Action[_0x1cc45e(0xc0b)][_0x1cc45e(0x7c5)],Game_Action['prototype'][_0x1cc45e(0x7c5)]=function(_0x2d2115){const _0x3f0ce9=_0x1cc45e,_0x355066=this[_0x3f0ce9(0x904)]()[_0x3f0ce9(0xbe6)];if(_0x355066[_0x3f0ce9(0xc6a)](/<ALWAYS HIT>/i))return 0x1;else{if(_0x355066[_0x3f0ce9(0xc6a)](/<ALWAYS HIT RATE: (\d+)([%％])>/i))return Number(RegExp['$1'])/0x64;else{let _0x35b8da=VisuMZ[_0x3f0ce9(0x2c5)][_0x3f0ce9(0x552)][_0x3f0ce9(0xa54)](this,_0x2d2115);return _0x35b8da=this[_0x3f0ce9(0xaf1)][_0x3f0ce9(0x7e5)]*_0x35b8da+this[_0x3f0ce9(0xaf1)][_0x3f0ce9(0xbef)],$gameParty['inBattle']()&&(_0x35b8da=this['applyBattleCoreHitRateJS'](_0x35b8da,_0x2d2115)),_0x35b8da;}}},VisuMZ['BattleCore'][_0x1cc45e(0x902)]=Game_Action[_0x1cc45e(0xc0b)][_0x1cc45e(0xbc4)],Game_Action[_0x1cc45e(0xc0b)][_0x1cc45e(0xbc4)]=function(_0x5e2c82){const _0x4b9784=_0x1cc45e;this[_0x4b9784(0x97f)]=!![],VisuMZ[_0x4b9784(0x2c5)][_0x4b9784(0x902)][_0x4b9784(0xa54)](this,_0x5e2c82),this['_bypass_applyBattleCoreHitRateJS']=undefined;},Game_Action[_0x1cc45e(0xc0b)][_0x1cc45e(0x6c5)]=function(_0x3dd7bc){const _0x223b3f=_0x1cc45e;window[_0x223b3f(0xb87)]=this,window['a']=this[_0x223b3f(0x786)](),window['b']=_0x3dd7bc,window[_0x223b3f(0x33c)]=this[_0x223b3f(0x786)](),window[_0x223b3f(0x38c)]=_0x3dd7bc,window[_0x223b3f(0x363)]=this[_0x223b3f(0x904)](),window[_0x223b3f(0x95e)]=this[_0x223b3f(0x904)](),window[_0x223b3f(0x904)]=this[_0x223b3f(0x904)]();},Game_Action['prototype'][_0x1cc45e(0x8db)]=function(_0x3512b3){const _0x5960ea=_0x1cc45e;window['action']=undefined,window['a']=undefined,window['b']=undefined,window[_0x5960ea(0x33c)]=undefined,window[_0x5960ea(0x38c)]=undefined,window[_0x5960ea(0x363)]=undefined,window[_0x5960ea(0x95e)]=undefined,window[_0x5960ea(0x904)]=undefined;},Game_Action[_0x1cc45e(0xc0b)][_0x1cc45e(0x890)]=function(_0x2ddbe3,_0x219f48){const _0x4a8087=_0x1cc45e;if(this[_0x4a8087(0x97f)])return _0x2ddbe3;this['declareGlobalVariables'](_0x219f48),window['rate']=_0x2ddbe3;const _0x183389=VisuMZ[_0x4a8087(0x2c5)]['RegExp'];if(this[_0x4a8087(0x904)]()){if(this[_0x4a8087(0x904)]()[_0x4a8087(0xbe6)][_0x4a8087(0xc6a)](_0x183389[_0x4a8087(0x4cc)])){const _0x5a4275=String(RegExp['$1']);try{eval(_0x5a4275);}catch(_0x18ed7f){if($gameTemp['isPlaytest']())console[_0x4a8087(0xbc6)](_0x18ed7f);}}}{const _0x37905e=this[_0x4a8087(0x786)]()[_0x4a8087(0x394)]();for(const _0x38714f of _0x37905e){if(!_0x38714f)continue;if(_0x38714f['note'][_0x4a8087(0xc6a)](_0x183389[_0x4a8087(0x1ec)])){const _0xf02a7b=String(RegExp['$1']);try{eval(_0xf02a7b);}catch(_0x57012a){if($gameTemp[_0x4a8087(0x754)]())console[_0x4a8087(0xbc6)](_0x57012a);}}}}{const _0x40516e=_0x219f48[_0x4a8087(0x394)]();for(const _0x208ced of _0x40516e){if(!_0x208ced)continue;if(_0x208ced['note'][_0x4a8087(0xc6a)](_0x183389[_0x4a8087(0x34a)])){const _0x9fe439=String(RegExp['$1']);try{eval(_0x9fe439);}catch(_0x4a01a5){if($gameTemp['isPlaytest']())console[_0x4a8087(0xbc6)](_0x4a01a5);}}}}return _0x2ddbe3=window[_0x4a8087(0xb3d)],this[_0x4a8087(0x8db)](_0x219f48),_0x2ddbe3;},Game_Action['prototype'][_0x1cc45e(0x1d9)]=function(_0x30b6cf){const _0x1424ab=_0x1cc45e;if(!this[_0x1424ab(0x904)]()['damage'][_0x1424ab(0xa24)])return 0x0;let _0x45cb6e=VisuMZ[_0x1424ab(0x2c5)][_0x1424ab(0x5fb)]['Damage'][_0x1424ab(0x35b)][_0x1424ab(0xa54)](this,_0x30b6cf);return _0x45cb6e=this[_0x1424ab(0xaf1)]['criticalHitRate']*_0x45cb6e+this[_0x1424ab(0xaf1)][_0x1424ab(0xc5f)],$gameParty[_0x1424ab(0x7a1)]()&&(_0x45cb6e=this[_0x1424ab(0xa1c)](_0x45cb6e,_0x30b6cf)),_0x45cb6e;},Game_Action['prototype'][_0x1cc45e(0xa1c)]=function(_0xadf482,_0x309962){const _0x1f5896=_0x1cc45e;this['declareGlobalVariables'](_0x309962),window['rate']=_0xadf482;const _0x577e62=VisuMZ['BattleCore'][_0x1f5896(0x84f)];{const _0x24d821=this['subject']()[_0x1f5896(0x394)]();for(const _0x292991 of _0x24d821){if(!_0x292991)continue;if(_0x292991[_0x1f5896(0xbe6)][_0x1f5896(0xc6a)](_0x577e62[_0x1f5896(0x591)])){const _0x4063fa=String(RegExp['$1']);try{eval(_0x4063fa);}catch(_0x437bab){if($gameTemp[_0x1f5896(0x754)]())console['log'](_0x437bab);}}}}{const _0x13837c=_0x309962['traitObjects']();for(const _0x16060e of _0x13837c){if(!_0x16060e)continue;if(_0x16060e[_0x1f5896(0xbe6)][_0x1f5896(0xc6a)](_0x577e62[_0x1f5896(0x52f)])){const _0x36a1c3=String(RegExp['$1']);try{eval(_0x36a1c3);}catch(_0x304983){if($gameTemp[_0x1f5896(0x754)]())console['log'](_0x304983);}}}}return _0xadf482=window[_0x1f5896(0xb3d)],this[_0x1f5896(0x8db)](_0x309962),_0xadf482;},Game_Action[_0x1cc45e(0xc0b)][_0x1cc45e(0xa1c)]=function(_0x11bf51,_0x3bed76){const _0xd876ff=_0x1cc45e;this[_0xd876ff(0x6c5)](_0x3bed76);for(const _0x1596a5 of this[_0xd876ff(0x786)]()['traitObjects']()){if(!_0x1596a5)continue;key=VisuMZ[_0xd876ff(0x2c5)][_0xd876ff(0x498)](_0x1596a5,_0xd876ff(0x591)),VisuMZ[_0xd876ff(0x2c5)]['JS'][key]&&(_0x11bf51=VisuMZ[_0xd876ff(0x2c5)]['JS'][key][_0xd876ff(0xa54)](this,this[_0xd876ff(0x786)](),_0x3bed76,this[_0xd876ff(0x904)](),_0x11bf51));}for(const _0x1c6e2d of _0x3bed76[_0xd876ff(0x394)]()){if(!_0x1c6e2d)continue;key=VisuMZ[_0xd876ff(0x2c5)][_0xd876ff(0x498)](_0x1c6e2d,_0xd876ff(0x52f)),VisuMZ['BattleCore']['JS'][key]&&(_0x11bf51=VisuMZ[_0xd876ff(0x2c5)]['JS'][key][_0xd876ff(0xa54)](this,this[_0xd876ff(0x786)](),_0x3bed76,this[_0xd876ff(0x904)](),_0x11bf51));}return this[_0xd876ff(0x8db)](_0x3bed76),_0x11bf51;},Game_Action['prototype'][_0x1cc45e(0x89c)]=function(_0x105fff){const _0x31f854=_0x1cc45e;return _0x105fff=VisuMZ[_0x31f854(0x2c5)][_0x31f854(0x5fb)][_0x31f854(0x1de)][_0x31f854(0x6e6)][_0x31f854(0xa54)](this,_0x105fff),_0x105fff=this[_0x31f854(0xaf1)]['criticalDmgRate']*_0x105fff+this[_0x31f854(0xaf1)][_0x31f854(0xba9)],_0x105fff;},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x1f3)]=Game_Action[_0x1cc45e(0xc0b)][_0x1cc45e(0xae1)],Game_Action[_0x1cc45e(0xc0b)][_0x1cc45e(0xae1)]=function(_0x3fa2f0){const _0x17b3de=_0x1cc45e;if(this[_0x17b3de(0x576)]!=='default')return this[_0x17b3de(0x43d)](_0x3fa2f0);else return DataManager[_0x17b3de(0xc6e)](this[_0x17b3de(0x904)]())===_0x17b3de(0x5a2)?VisuMZ['BattleCore'][_0x17b3de(0x1f3)]['call'](this,_0x3fa2f0):this[_0x17b3de(0x956)](_0x3fa2f0);},Game_Action[_0x1cc45e(0xc0b)]['setCustomDamageFormula']=function(_0x299855){const _0x34a71a=_0x1cc45e;this[_0x34a71a(0x576)]=_0x299855;},Game_Action[_0x1cc45e(0xc0b)][_0x1cc45e(0x43d)]=function(_0xdf567){const _0x469717=_0x1cc45e,_0x537998=this[_0x469717(0x904)](),_0x1d554f=_0x537998[_0x469717(0x42e)][_0x469717(0x665)];_0x537998['damage']['formula']=this['_customDamageFormula'];let _0x1c4ce3=VisuMZ[_0x469717(0x2c5)][_0x469717(0x1f3)][_0x469717(0xa54)](this,_0xdf567);return _0x537998['damage'][_0x469717(0x665)]=_0x1d554f,_0x1c4ce3;},Game_Action['prototype']['damageStyle']=function(){const _0x3992ed=_0x1cc45e;if(this['item']()[_0x3992ed(0xbe6)][_0x3992ed(0xc6a)](/<DAMAGE STYLE:[ ](.*)>/i)){const _0x358eeb=String(RegExp['$1'])[_0x3992ed(0x2b6)]()[_0x3992ed(0xc8e)]();return _0x358eeb;}return _0x3992ed(0x5a2);},Game_Action[_0x1cc45e(0xc0b)][_0x1cc45e(0x956)]=function(_0xbc34e0){const _0x5bf2f9=_0x1cc45e,_0x1cc310=DataManager[_0x5bf2f9(0xc6e)](this[_0x5bf2f9(0x904)]()),_0x32566c=VisuMZ[_0x5bf2f9(0x4c2)][_0x1cc310];try{return _0x32566c[_0x5bf2f9(0xbff)]['call'](this,_0xbc34e0);}catch(_0x82bc89){if($gameTemp[_0x5bf2f9(0x754)]())console[_0x5bf2f9(0xbc6)](_0x82bc89);return VisuMZ[_0x5bf2f9(0x2c5)]['Game_Action_evalDamageFormula']['call'](this);}},Game_Action[_0x1cc45e(0xc0b)]['applyArmorModifiers']=function(_0x3de38d,_0x25b138){const _0x251092=_0x1cc45e;if(this[_0x251092(0x60d)]())return _0x25b138;const _0x3416db=this[_0x251092(0x786)](),_0xf4662=_0x3de38d;let _0x39d7a3=[],_0x56784b=[];_0x39d7a3[_0x251092(0xca6)](this['_armorPenetration'][_0x251092(0x439)],this['_armorPenetration'][_0x251092(0x534)]),_0x56784b['push'](this[_0x251092(0x636)][_0x251092(0x53e)],this[_0x251092(0x636)][_0x251092(0x5e8)]);const _0x3060bc=this[_0x251092(0xa86)]()?/<ARMOR REDUCTION:[ ](\d+\.?\d*)>/i:/<MAGIC REDUCTION:[ ](\d+\.?\d*)>/i,_0x43ca61=this[_0x251092(0xa86)]()?/<ARMOR REDUCTION:[ ](\d+\.?\d*)([%％])>/i:/<MAGIC REDUCTION:[ ](\d+\.?\d*)([%％])>/i,_0x409be5=this['isPhysical']()?/<ARMOR PENETRATION:[ ](\d+\.?\d*)>/i:/<MAGIC PENETRATION:[ ](\d+\.?\d*)>/i,_0x298f6a=this[_0x251092(0xa86)]()?/<ARMOR PENETRATION:[ ](\d+\.?\d*)([%％])>/i:/<MAGIC PENETRATION:[ ](\d+\.?\d*)([%％])>/i;return _0x39d7a3=_0x39d7a3['concat'](_0xf4662[_0x251092(0x394)]()[_0x251092(0x63c)](_0x3c6ceb=>_0x3c6ceb&&_0x3c6ceb[_0x251092(0xbe6)][_0x251092(0xc6a)](_0x3060bc)?Number(RegExp['$1']):0x0)),_0x56784b=_0x56784b[_0x251092(0x807)](_0xf4662['traitObjects']()[_0x251092(0x63c)](_0x3423bd=>_0x3423bd&&_0x3423bd[_0x251092(0xbe6)][_0x251092(0xc6a)](_0x43ca61)?Number(RegExp['$1'])/0x64:0x0)),_0x39d7a3=_0x39d7a3[_0x251092(0x807)](_0x3416db[_0x251092(0x394)]()[_0x251092(0x63c)](_0x37d2c3=>_0x37d2c3&&_0x37d2c3[_0x251092(0xbe6)][_0x251092(0xc6a)](_0x409be5)?Number(RegExp['$1']):0x0)),_0x56784b=_0x56784b[_0x251092(0x807)](_0x3416db[_0x251092(0x394)]()[_0x251092(0x63c)](_0x14b333=>_0x14b333&&_0x14b333[_0x251092(0xbe6)][_0x251092(0xc6a)](_0x298f6a)?Number(RegExp['$1'])/0x64:0x0)),this[_0x251092(0x904)]()[_0x251092(0xbe6)][_0x251092(0xc6a)](_0x409be5)&&_0x39d7a3[_0x251092(0xca6)](Number(RegExp['$1'])),this[_0x251092(0x904)]()['note'][_0x251092(0xc6a)](_0x298f6a)&&_0x56784b[_0x251092(0xca6)](Number(RegExp['$1'])),_0x25b138=_0x39d7a3[_0x251092(0x7eb)]((_0x4b17ef,_0x2f24eb)=>_0x4b17ef-_0x2f24eb,_0x25b138),_0x25b138>0x0&&(_0x25b138=_0x56784b['reduce']((_0x280610,_0x9175cf)=>_0x280610*(0x1-_0x9175cf),_0x25b138)),_0x25b138;},VisuMZ[_0x1cc45e(0x2c5)]['Game_Action_executeDamage']=Game_Action[_0x1cc45e(0xc0b)][_0x1cc45e(0x8f1)],Game_Action[_0x1cc45e(0xc0b)][_0x1cc45e(0x8f1)]=function(_0x3fff62,_0x5bbcd2){const _0x5e7f32=_0x1cc45e;_0x5bbcd2=_0x5bbcd2*this['_multipliers'][_0x5e7f32(0x585)],_0x5bbcd2+=this[_0x5e7f32(0xaf1)]['damageFlat']*(_0x5bbcd2>=0x0?0x1:-0x1),_0x5bbcd2=this[_0x5e7f32(0x96e)](_0x5e7f32(0x494),_0x3fff62,_0x5bbcd2,![]),_0x5bbcd2=this[_0x5e7f32(0x98a)](_0x5bbcd2),_0x5bbcd2>0x0?_0x5bbcd2=Math[_0x5e7f32(0xb4e)](_0x5bbcd2):_0x5bbcd2=Math[_0x5e7f32(0x884)](_0x5bbcd2),this[_0x5e7f32(0x29c)]=_0x5bbcd2,this['_totalValue']=this['_totalValue']||0x0,this[_0x5e7f32(0x47d)]+=_0x5bbcd2,VisuMZ[_0x5e7f32(0x2c5)][_0x5e7f32(0x8ec)]['call'](this,_0x3fff62,_0x5bbcd2),this[_0x5e7f32(0x96e)](_0x5e7f32(0x60f),_0x3fff62,_0x5bbcd2,!![]);},Game_Action[_0x1cc45e(0xc0b)][_0x1cc45e(0x98a)]=function(_0x41c836){const _0x31fb1d=_0x1cc45e;if(this['isBypassDamageCap']())return _0x41c836;return _0x41c836=this['applySoftDamageCap'](_0x41c836),_0x41c836=this[_0x31fb1d(0x87f)](_0x41c836),_0x41c836;},Game_Action['prototype'][_0x1cc45e(0x8c7)]=function(){const _0x46179f=_0x1cc45e,_0x50132c=/<BYPASS DAMAGE CAP>/i;if(this['item']()[_0x46179f(0xbe6)]['match'](_0x50132c))return!![];if(this[_0x46179f(0x786)]()[_0x46179f(0x394)]()[_0x46179f(0xc84)](_0x361826=>_0x361826&&_0x361826['note']['match'](_0x50132c)))return!![];return!VisuMZ[_0x46179f(0x2c5)][_0x46179f(0x5fb)][_0x46179f(0x1de)][_0x46179f(0x285)];},Game_Action[_0x1cc45e(0xc0b)][_0x1cc45e(0xb89)]=function(_0x4fc3e6){const _0x5ca452=_0x1cc45e;if(!VisuMZ[_0x5ca452(0x2c5)][_0x5ca452(0x5fb)][_0x5ca452(0x1de)][_0x5ca452(0xcc5)])return _0x4fc3e6;const _0x32bbeb=/<BYPASS SOFT DAMAGE CAP>/i;if(this[_0x5ca452(0x904)]()[_0x5ca452(0xbe6)][_0x5ca452(0xc6a)](_0x32bbeb))return _0x4fc3e6;if(this['subject']()[_0x5ca452(0x394)]()['some'](_0x1c2abd=>_0x1c2abd&&_0x1c2abd['note'][_0x5ca452(0xc6a)](_0x32bbeb)))return _0x4fc3e6;const _0x1f7f4b=_0x4fc3e6<0x0?-0x1:0x1;_0x4fc3e6=Math[_0x5ca452(0xb40)](_0x4fc3e6);let _0x2cc2af=this[_0x5ca452(0x786)]()[_0x5ca452(0xbb6)]();this[_0x5ca452(0x904)]()[_0x5ca452(0xbe6)][_0x5ca452(0xc6a)](/<SOFT DAMAGE CAP:[ ]([\+\-]\d+)([%％])>/i)&&(_0x2cc2af+=Number(RegExp['$1'])/0x64);_0x2cc2af=_0x2cc2af[_0x5ca452(0x539)](0.01,0x1);const _0x4714b0=this[_0x5ca452(0x8a1)](),_0x835156=_0x2cc2af*_0x4714b0;if(_0x4fc3e6>_0x835156&&_0x4714b0>_0x835156){_0x4fc3e6-=_0x835156;const _0x4bcc00=VisuMZ[_0x5ca452(0x2c5)][_0x5ca452(0x5fb)][_0x5ca452(0x1de)][_0x5ca452(0x7bf)],_0x1ea8eb=Math[_0x5ca452(0x485)](0x1-_0x4fc3e6/((_0x4714b0-_0x835156)*_0x4bcc00+_0x4fc3e6),0.01);_0x4fc3e6*=_0x1ea8eb,_0x4fc3e6+=_0x835156;}return _0x4fc3e6*_0x1f7f4b;},Game_Action[_0x1cc45e(0xc0b)]['getHardDamageCap']=function(){const _0x573105=_0x1cc45e;return this[_0x573105(0x904)]()[_0x573105(0xbe6)][_0x573105(0xc6a)](/<DAMAGE CAP:[ ](\d+)>/i)?Number(RegExp['$1']):this[_0x573105(0x786)]()['hardDamageCap']();},Game_Action[_0x1cc45e(0xc0b)][_0x1cc45e(0x87f)]=function(_0x5ad746){const _0xa9a735=_0x1cc45e;let _0x46268d=this[_0xa9a735(0x8a1)]();return _0x5ad746[_0xa9a735(0x539)](-_0x46268d,_0x46268d);},Game_Action[_0x1cc45e(0xc0b)][_0x1cc45e(0x921)]=function(){const _0x482d5f=_0x1cc45e;if(!this[_0x482d5f(0x904)]())return![];if(!$gameParty[_0x482d5f(0x7a1)]())return![];return(this['item']()[_0x482d5f(0xbe6)]||'')[_0x482d5f(0xc6a)](/<DISPERSE DAMAGE>/i);},Game_Action[_0x1cc45e(0xc0b)][_0x1cc45e(0x68b)]=function(_0x582c0c){const _0x29cebb=_0x1cc45e;if(this[_0x29cebb(0x921)]()){let _0x39baf1=BattleManager[_0x29cebb(0x5f3)];_0x582c0c/=_0x39baf1[_0x29cebb(0x96d)],this[_0x29cebb(0x9b7)]()&&(_0x582c0c*=this['subject']()[_0x29cebb(0x8f7)]()+0x1),_0x582c0c=_0x582c0c>0x0?Math[_0x29cebb(0xb4e)](_0x582c0c):Math[_0x29cebb(0x884)](_0x582c0c);}return _0x582c0c;},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0xaca)]=Game_Action[_0x1cc45e(0xc0b)][_0x1cc45e(0x980)],Game_Action[_0x1cc45e(0xc0b)][_0x1cc45e(0x980)]=function(_0x2d4ffc,_0x3c60d4){const _0x201d7f=_0x1cc45e;let _0x4f0133=VisuMZ[_0x201d7f(0x2c5)][_0x201d7f(0xaca)][_0x201d7f(0xa54)](this,_0x2d4ffc,_0x3c60d4);return this['disperseDamage'](_0x4f0133);},Game_Action[_0x1cc45e(0xc0b)][_0x1cc45e(0x93a)]=function(_0x5cc881,_0x38a801){const _0x513a02=_0x1cc45e;let _0x4895f2=(_0x5cc881[_0x513a02(0x52d)]*_0x38a801[_0x513a02(0x4a0)]+_0x38a801['value2'])*_0x5cc881['rec'];_0x4895f2=this[_0x513a02(0x68b)](_0x4895f2),this[_0x513a02(0x610)]()&&(_0x4895f2*=this[_0x513a02(0x786)]()['pha']),_0x4895f2=Math[_0x513a02(0x884)](_0x4895f2),_0x4895f2!==0x0&&(_0x5cc881[_0x513a02(0x25d)](_0x4895f2),this['makeSuccess'](_0x5cc881));},Game_Action['prototype'][_0x1cc45e(0x941)]=function(_0x234ca7,_0x569a13){const _0x57600d=_0x1cc45e;let _0x1d5e0b=(_0x234ca7[_0x57600d(0xa61)]*_0x569a13['value1']+_0x569a13[_0x57600d(0xce9)])*_0x234ca7[_0x57600d(0x232)];_0x1d5e0b=this[_0x57600d(0x68b)](_0x1d5e0b),this[_0x57600d(0x610)]()&&(_0x1d5e0b*=this['subject']()[_0x57600d(0x819)]),_0x1d5e0b=Math[_0x57600d(0x884)](_0x1d5e0b),_0x1d5e0b!==0x0&&(_0x234ca7[_0x57600d(0x79e)](_0x1d5e0b),this[_0x57600d(0x9e2)](_0x234ca7));},Game_Action[_0x1cc45e(0xc0b)][_0x1cc45e(0x421)]=function(_0x1a0862,_0x30e5de){const _0xf1a124=_0x1cc45e;let _0x23242b=Math[_0xf1a124(0x884)](_0x30e5de[_0xf1a124(0x4a0)]);_0x23242b=this['disperseDamage'](_0x23242b),_0x23242b!==0x0&&(_0x1a0862[_0xf1a124(0x4cb)](_0x23242b),this[_0xf1a124(0x9e2)](_0x1a0862));},VisuMZ[_0x1cc45e(0x2c5)]['Game_Action_apply']=Game_Action[_0x1cc45e(0xc0b)]['apply'],Game_Action[_0x1cc45e(0xc0b)][_0x1cc45e(0xca2)]=function(_0x44710c){const _0x1535ca=_0x1cc45e;if(_0x44710c&&_0x44710c[_0x1535ca(0x348)]())_0x44710c[_0x1535ca(0x73f)]();this[_0x1535ca(0x96e)](_0x1535ca(0xb08),_0x44710c,0x0,!![]),VisuMZ[_0x1535ca(0x2c5)]['Game_Action_apply'][_0x1535ca(0xa54)](this,_0x44710c),this[_0x1535ca(0x96e)](_0x1535ca(0xc2a),_0x44710c,this[_0x1535ca(0x29c)]||0x0,!![]),this[_0x1535ca(0xd0b)](_0x44710c);},Game_Action[_0x1cc45e(0xc0b)]['applyBattleCoreJS']=function(_0x5b81fa,_0x54eb81,_0x2fbe43,_0x57da79){const _0x475b38=_0x1cc45e;if(this[_0x475b38(0x1f2)]||this[_0x475b38(0x31b)])return;_0x2fbe43=_0x2fbe43||0x0;const _0x5d815e=_0x2fbe43,_0x534366=VisuMZ['BattleCore'][_0x475b38(0x5fb)][_0x475b38(0x56d)],_0x2856c4=_0x5b81fa[_0x475b38(0x65c)]('');if(_0x534366[_0x2856c4]){_0x2fbe43=_0x534366[_0x2856c4][_0x475b38(0xa54)](this,_0x2fbe43,_0x54eb81);if(_0x57da79)_0x2fbe43=_0x5d815e;}let _0x18ff40=VisuMZ[_0x475b38(0x2c5)][_0x475b38(0x498)](this[_0x475b38(0x904)](),_0x5b81fa[_0x475b38(0x65c)](''));if(VisuMZ[_0x475b38(0x2c5)]['JS'][_0x18ff40]){_0x2fbe43=VisuMZ[_0x475b38(0x2c5)]['JS'][_0x18ff40]['call'](this,this['subject'](),_0x54eb81,this['item'](),_0x2fbe43);if(_0x57da79)_0x2fbe43=_0x5d815e;}for(const _0x39c76 of this[_0x475b38(0x786)]()[_0x475b38(0x394)]()){if(!_0x39c76)continue;_0x18ff40=VisuMZ[_0x475b38(0x2c5)][_0x475b38(0x498)](_0x39c76,_0x5b81fa[_0x475b38(0x65c)](_0x475b38(0x8f3)));if(VisuMZ[_0x475b38(0x2c5)]['JS'][_0x18ff40]){_0x2fbe43=VisuMZ[_0x475b38(0x2c5)]['JS'][_0x18ff40]['call'](this,this[_0x475b38(0x786)](),_0x54eb81,_0x39c76,_0x2fbe43);if(_0x57da79)_0x2fbe43=_0x5d815e;}}for(const _0x1cfb77 of _0x54eb81[_0x475b38(0x394)]()){if(!_0x1cfb77)continue;_0x18ff40=VisuMZ[_0x475b38(0x2c5)]['createKeyJS'](_0x1cfb77,_0x5b81fa[_0x475b38(0x65c)](_0x475b38(0x92e)));if(VisuMZ[_0x475b38(0x2c5)]['JS'][_0x18ff40]){_0x2fbe43=VisuMZ[_0x475b38(0x2c5)]['JS'][_0x18ff40][_0x475b38(0xa54)](this,this[_0x475b38(0x786)](),_0x54eb81,_0x1cfb77,_0x2fbe43);if(_0x57da79)_0x2fbe43=_0x5d815e;}}return _0x2fbe43;},Game_Action[_0x1cc45e(0xc0b)][_0x1cc45e(0x2fe)]=function(_0x3048b3){const _0x4b070b=_0x1cc45e,_0x37ee06=this[_0x4b070b(0x47d)]||0x0,_0x2f9db9=VisuMZ[_0x4b070b(0x2c5)][_0x4b070b(0x5fb)]['Mechanics'],_0xdf36b4=_0x3048b3[_0x4b070b(0x65c)]('');_0x2f9db9[_0xdf36b4]&&_0x2f9db9[_0xdf36b4]['call'](this,_0x37ee06);let _0x33fd19=VisuMZ[_0x4b070b(0x2c5)][_0x4b070b(0x498)](this[_0x4b070b(0x904)](),_0x3048b3);VisuMZ[_0x4b070b(0x2c5)]['JS'][_0x33fd19]&&VisuMZ['BattleCore']['JS'][_0x33fd19][_0x4b070b(0xa54)](this,this[_0x4b070b(0x786)](),this[_0x4b070b(0x786)](),this['item'](),_0x37ee06);for(const _0x4cd845 of this['subject']()[_0x4b070b(0x394)]()){if(!_0x4cd845)continue;_0x33fd19=VisuMZ['BattleCore'][_0x4b070b(0x498)](_0x4cd845,_0x3048b3),VisuMZ['BattleCore']['JS'][_0x33fd19]&&VisuMZ[_0x4b070b(0x2c5)]['JS'][_0x33fd19][_0x4b070b(0xa54)](this,this[_0x4b070b(0x786)](),this[_0x4b070b(0x786)](),_0x4cd845,_0x37ee06);}},Game_Action['prototype'][_0x1cc45e(0xa8a)]=function(){const _0x34ef35=_0x1cc45e;return VisuMZ[_0x34ef35(0x2c5)]['Settings'][_0x34ef35(0x56d)][_0x34ef35(0x502)]['call'](this);},Game_Action[_0x1cc45e(0xc0b)]['allowRandomSpeed']=function(){const _0x1bb8d2=_0x1cc45e;return VisuMZ['BattleCore'][_0x1bb8d2(0x5fb)][_0x1bb8d2(0x56d)]['AllowRandomSpeed'];},Game_Action[_0x1cc45e(0xc0b)][_0x1cc45e(0xa7a)]=function(){const _0x34e719=_0x1cc45e;if(this[_0x34e719(0xad3)]==='all\x20actors')return![];if(this['_targetBattlerKey']==='all\x20enemies')return![];if(!this['item']())return![];return this[_0x34e719(0x904)]()[_0x34e719(0xbe6)]['match'](/<JS TARGETS>/i);},Game_Action[_0x1cc45e(0xc0b)][_0x1cc45e(0x1a6)]=function(){const _0xa8d3a9=_0x1cc45e;if(this['_targetBattlerKey']===_0xa8d3a9(0x75a))return![];if(this[_0xa8d3a9(0xad3)]===_0xa8d3a9(0xc4a))return![];if(!this[_0xa8d3a9(0x98f)]&&this['subject']()[_0xa8d3a9(0x4f3)]())return![];if(this[_0xa8d3a9(0xa7a)]())return!![];if(!this[_0xa8d3a9(0x904)]())return![];return typeof this['item']()[_0xa8d3a9(0x7f0)]===_0xa8d3a9(0x1c9);},VisuMZ['BattleCore'][_0x1cc45e(0x37d)]=Game_Action[_0x1cc45e(0xc0b)][_0x1cc45e(0x6ef)],Game_Action[_0x1cc45e(0xc0b)]['isForOpponent']=function(){const _0xd1b78e=_0x1cc45e;if(this['_targetBattlerKey']===_0xd1b78e(0x75a))return![];if(this[_0xd1b78e(0xad3)]===_0xd1b78e(0xc4a))return!![];return this[_0xd1b78e(0x1a6)]()&&!this[_0xd1b78e(0xa7a)]()?this[_0xd1b78e(0xbc3)]():VisuMZ['BattleCore'][_0xd1b78e(0x37d)][_0xd1b78e(0xa54)](this);},Game_Action[_0x1cc45e(0xc0b)][_0x1cc45e(0xbc3)]=function(){const _0x1b2068=_0x1cc45e,_0x14006b=String(this[_0x1b2068(0x904)]()['scope']);if(_0x14006b[_0x1b2068(0xc6a)](/ANY/i))return!![];return _0x14006b[_0x1b2068(0xc6a)](/(?:ENEMY|ENEMIES|FOE|FOES)/i);},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x5c0)]=Game_Action[_0x1cc45e(0xc0b)][_0x1cc45e(0x3e5)],Game_Action[_0x1cc45e(0xc0b)]['isForFriend']=function(){const _0x18b785=_0x1cc45e;if(this[_0x18b785(0xad3)]==='all\x20actors')return!![];if(this['_targetBattlerKey']===_0x18b785(0xc4a))return![];return this[_0x18b785(0x1a6)]()&&!this[_0x18b785(0xa7a)]()?this[_0x18b785(0x546)]():VisuMZ[_0x18b785(0x2c5)][_0x18b785(0x5c0)][_0x18b785(0xa54)](this);},Game_Action[_0x1cc45e(0xc0b)][_0x1cc45e(0x546)]=function(){const _0x30e72e=_0x1cc45e,_0x423101=String(this[_0x30e72e(0x904)]()[_0x30e72e(0x7f0)]);return _0x423101[_0x30e72e(0xc6a)](/(?:ALLY|ALLIES|FRIEND|FRIENDS)/i);},Game_Action['prototype']['isForAnyone']=function(){const _0x3eca0a=_0x1cc45e;if(this[_0x3eca0a(0x1a6)]()&&!this[_0x3eca0a(0xa7a)]()){const _0x4d91b7=String(this[_0x3eca0a(0x904)]()['scope']);return _0x4d91b7['match'](/(?:ENEMY|FOE)/i)&&_0x4d91b7[_0x3eca0a(0xc6a)](/OR/i)&&_0x4d91b7[_0x3eca0a(0xc6a)](/(?:ALLY|FRIEND)/i);}else return![];},Game_Action['prototype'][_0x1cc45e(0x2d7)]=function(){const _0x334eab=_0x1cc45e;if(this[_0x334eab(0xb59)]()){const _0xc0bb0d=String(this[_0x334eab(0x904)]()[_0x334eab(0x7f0)]);if(_0xc0bb0d['match'](/(?:ALLY|FRIEND) OR (?:ENEMY|FOE)/i))return!![];}return![];},Game_Action['prototype'][_0x1cc45e(0x9e1)]=function(){const _0x1c5e90=_0x1cc45e;if(this[_0x1c5e90(0xb59)]()){const _0x3c5ad0=String(this[_0x1c5e90(0x904)]()[_0x1c5e90(0x7f0)]);if(_0x3c5ad0['match'](/(?:ENEMY|FOE) OR (?:ALLY|FRIEND)/i))return!![];}return![];},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x4d5)]=Game_Action[_0x1cc45e(0xc0b)][_0x1cc45e(0x592)],Game_Action['prototype'][_0x1cc45e(0x592)]=function(){const _0x387e71=_0x1cc45e;if(this[_0x387e71(0xad3)]===_0x387e71(0x75a))return!![];return this[_0x387e71(0x1a6)]()&&!this[_0x387e71(0xa7a)]()?this[_0x387e71(0xbfe)]():VisuMZ[_0x387e71(0x2c5)]['Game_Action_isForAliveFriend']['call'](this);},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0xb4a)]=Game_Action[_0x1cc45e(0xc0b)][_0x1cc45e(0x809)],Game_Action[_0x1cc45e(0xc0b)][_0x1cc45e(0x809)]=function(){const _0x426d03=_0x1cc45e;if(this[_0x426d03(0xad3)]===_0x426d03(0x75a))return VisuMZ[_0x426d03(0x2c5)][_0x426d03(0xb4a)][_0x426d03(0xa54)](this);return VisuMZ[_0x426d03(0x2c5)][_0x426d03(0xb4a)][_0x426d03(0xa54)](this);},Game_Action[_0x1cc45e(0xc0b)][_0x1cc45e(0xbfe)]=function(){const _0x4cbf4c=_0x1cc45e;if(this[_0x4cbf4c(0xb59)]())return!![];return![];},Game_Action['prototype']['isForNotUser']=function(){const _0x12d03a=_0x1cc45e;return this[_0x12d03a(0x904)]()&&this[_0x12d03a(0x904)]()[_0x12d03a(0xbe6)][_0x12d03a(0xc6a)](/<CANNOT TARGET (?:USER|SELF)>/i);},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x7e1)]=Game_Action[_0x1cc45e(0xc0b)]['isForOne'],Game_Action[_0x1cc45e(0xc0b)][_0x1cc45e(0x3e6)]=function(){const _0x53754c=_0x1cc45e;if(this[_0x53754c(0xad3)]==='all\x20actors')return![];if(this[_0x53754c(0xad3)]===_0x53754c(0xc4a))return![];return this[_0x53754c(0x1a6)]()&&!this[_0x53754c(0xa7a)]()?this[_0x53754c(0x8bd)]():VisuMZ['BattleCore'][_0x53754c(0x7e1)][_0x53754c(0xa54)](this);},Game_Action[_0x1cc45e(0xc0b)][_0x1cc45e(0x8bd)]=function(){const _0x49a192=_0x1cc45e;if(this[_0x49a192(0xb59)]())return!![];return![];},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0xae2)]=Game_Action[_0x1cc45e(0xc0b)][_0x1cc45e(0x728)],Game_Action[_0x1cc45e(0xc0b)]['isForRandom']=function(){const _0x46192a=_0x1cc45e;if(this['_targetBattlerKey']===_0x46192a(0x75a))return![];if(this['_targetBattlerKey']===_0x46192a(0xc4a))return![];return this[_0x46192a(0x1a6)]()&&!this[_0x46192a(0xa7a)]()?this[_0x46192a(0x77e)]():VisuMZ[_0x46192a(0x2c5)][_0x46192a(0xae2)]['call'](this);},Game_Action[_0x1cc45e(0xc0b)][_0x1cc45e(0x77e)]=function(){const _0x396b6b=_0x1cc45e,_0x22ad21=String(this[_0x396b6b(0x904)]()['scope']);return _0x22ad21[_0x396b6b(0xc6a)](/(?:RAND|RANDOM)/i);},VisuMZ[_0x1cc45e(0x2c5)]['Game_Action_isForAll']=Game_Action['prototype'][_0x1cc45e(0x91e)],Game_Action[_0x1cc45e(0xc0b)]['isForAll']=function(){const _0x382f2c=_0x1cc45e;if(this[_0x382f2c(0xad3)]===_0x382f2c(0x75a))return!![];if(this['_targetBattlerKey']===_0x382f2c(0xc4a))return!![];return VisuMZ[_0x382f2c(0x2c5)][_0x382f2c(0xbe2)][_0x382f2c(0xa54)](this);},Game_Action['prototype'][_0x1cc45e(0x68d)]=function(){const _0x33368b=_0x1cc45e;if(!this[_0x33368b(0x904)]())return![];if(this[_0x33368b(0x809)]())return![];return(this[_0x33368b(0x904)]()['note']||'')[_0x33368b(0xc6a)](/<SINGLE OR MULTIPLE SELECT>/i);},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x1e7)]=Game_Action['prototype'][_0x1cc45e(0xbf8)],Game_Action[_0x1cc45e(0xc0b)][_0x1cc45e(0xbf8)]=function(_0xe28811){const _0x23b1d6=_0x1cc45e;if(this['isForNotUser']()&&_0xe28811===this[_0x23b1d6(0x786)]())return![];return VisuMZ['BattleCore']['Game_Action_testApply']['call'](this,_0xe28811);},VisuMZ[_0x1cc45e(0x2c5)]['Game_Action_itemTargetCandidates']=Game_Action[_0x1cc45e(0xc0b)][_0x1cc45e(0x545)],Game_Action['prototype'][_0x1cc45e(0x545)]=function(){const _0x2e1b01=_0x1cc45e,_0x30ded0=VisuMZ[_0x2e1b01(0x2c5)]['Game_Action_itemTargetCandidates'][_0x2e1b01(0xa54)](this);if(this[_0x2e1b01(0x9c3)]())_0x30ded0[_0x2e1b01(0x280)](this['subject']());return _0x30ded0;},VisuMZ[_0x1cc45e(0x2c5)]['Game_Action_needsSelection']=Game_Action[_0x1cc45e(0xc0b)][_0x1cc45e(0xb94)],Game_Action[_0x1cc45e(0xc0b)]['needsSelection']=function(){const _0x3f35dc=_0x1cc45e;return this['isBattleCoreTargetScope']()&&!this['isCustomBattleScope']()?this['needsSelectionBattleCore']():VisuMZ[_0x3f35dc(0x2c5)]['Game_Action_needsSelection'][_0x3f35dc(0xa54)](this);},Game_Action[_0x1cc45e(0xc0b)][_0x1cc45e(0xa29)]=function(){const _0x18c0d5=_0x1cc45e,_0x21f7c3=String(this[_0x18c0d5(0x904)]()[_0x18c0d5(0x7f0)]);if(_0x21f7c3[_0x18c0d5(0xc6a)](/RANDOM/i))return![];if(_0x21f7c3['match'](/ALL (?:ALLY|ALLIES|FRIEND|FRIENDS)/i))return![];if(_0x21f7c3[_0x18c0d5(0xc6a)](/ALL (?:ENEMY|ENEMIES|FOE|FOES)/i))return![];if(_0x21f7c3['match'](/(?:ENEMY|FOE) OR (?:ALLY|FRIEND)/i))return!![];if(_0x21f7c3[_0x18c0d5(0xc6a)](/(?:ALLY|FRIEND) OR (?:ENEMY|FOE)/i))return!![];return VisuMZ['BattleCore'][_0x18c0d5(0x83e)][_0x18c0d5(0xa54)](this);},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0xc92)]=Game_Action[_0x1cc45e(0xc0b)][_0x1cc45e(0x677)],Game_Action[_0x1cc45e(0xc0b)][_0x1cc45e(0x677)]=function(){const _0x42dd28=_0x1cc45e;let _0x36b37d=[];return this[_0x42dd28(0x1a6)]()?this[_0x42dd28(0xa7a)]()?_0x36b37d=this[_0x42dd28(0x44f)]():_0x36b37d=this[_0x42dd28(0x1f4)]():_0x36b37d=VisuMZ['BattleCore'][_0x42dd28(0xc92)]['call'](this),_0x36b37d=this[_0x42dd28(0x95b)](_0x36b37d),_0x36b37d;},Game_Action[_0x1cc45e(0xc0b)][_0x1cc45e(0xcbe)]=function(){const _0x38cc04=_0x1cc45e;return this['subject']()[_0x38cc04(0x864)]()&&!this[_0x38cc04(0x786)]()[_0x38cc04(0x9f2)]();},Game_Action['prototype']['makeTargetsBattleCoreJS']=function(){const _0xf083d9=_0x1cc45e,_0x11dfe7=VisuMZ[_0xf083d9(0x2c5)][_0xf083d9(0x498)](this['item'](),'Targets');if(VisuMZ[_0xf083d9(0x2c5)]['JS'][_0x11dfe7]){targets=VisuMZ[_0xf083d9(0x2c5)][_0xf083d9(0xc92)][_0xf083d9(0xa54)](this);const _0xd2d180=VisuMZ['BattleCore'][_0xf083d9(0x498)](this['item'](),_0xf083d9(0x932));return targets=VisuMZ['BattleCore']['JS'][_0xd2d180][_0xf083d9(0xa54)](this,this['subject'](),targets),this[_0xf083d9(0x970)](targets);}return this[_0xf083d9(0x1f4)]();},Game_Action['prototype'][_0x1cc45e(0x1f4)]=function(){const _0x3dba02=_0x1cc45e;let _0xe9c64c=[];const _0x3be59f=String(this[_0x3dba02(0x904)]()[_0x3dba02(0x7f0)]);if(this[_0x3dba02(0x9e1)]())return this[_0x3dba02(0xcbe)]()?(_0xe9c64c=this[_0x3dba02(0x965)](),this['repeatTargets'](_0xe9c64c)):(this[_0x3dba02(0x259)]=-0x1,_0xe9c64c[_0x3dba02(0xca6)](...this[_0x3dba02(0x8b9)]()),this[_0x3dba02(0x970)](_0xe9c64c));if(this['isForAnyoneFocusFriends']()){if(this[_0x3dba02(0xcbe)]())return _0xe9c64c=this[_0x3dba02(0x965)](),this[_0x3dba02(0x970)](_0xe9c64c);else{if(Imported[_0x3dba02(0xafd)]){if(VisuMZ[_0x3dba02(0x82a)][_0x3dba02(0x6bc)]<1.19){let _0xa59926='';_0xa59926+=_0x3dba02(0xa3d),_0xa59926+='in\x20order\x20for\x20Ally\x20or\x20Enemy\x20targeting\x20to\x20work\x20',_0xa59926+=_0x3dba02(0x853),alert(_0xa59926),SceneManager[_0x3dba02(0x5c1)]();}}return this['_targetIndex']=-0x1,_0xe9c64c[_0x3dba02(0xca6)](...this[_0x3dba02(0x6d7)]()),this['repeatTargets'](_0xe9c64c);}}if(_0x3be59f[_0x3dba02(0xc6a)](/(\d+) RANDOM ANY/i)){let _0x3502d7=Number(RegExp['$1']);while(_0x3502d7--){const _0x5a4312=Math['randomInt'](0x2)===0x0?this[_0x3dba02(0x24e)]():this[_0x3dba02(0x917)]();_0xe9c64c[_0x3dba02(0xca6)](_0x5a4312[_0x3dba02(0x2bf)]());}return this[_0x3dba02(0x970)](_0xe9c64c);}if(_0x3be59f[_0x3dba02(0xc6a)](/(\d+) RANDOM (?:ENEMY|ENEMIES|FOE|FOES)/i)){let _0x2bd09f=Number(RegExp['$1']);while(_0x2bd09f--){_0xe9c64c[_0x3dba02(0xca6)](this[_0x3dba02(0x24e)]()[_0x3dba02(0x2bf)]());}return this[_0x3dba02(0x970)](_0xe9c64c);}if(_0x3be59f[_0x3dba02(0xc6a)](/(\d+) RANDOM (?:ALLY|ALLIES|FRIEND|FRIENDS)/i)){let _0x319a9b=Number(RegExp['$1']);while(_0x319a9b--){_0xe9c64c['push'](this[_0x3dba02(0x917)]()[_0x3dba02(0x2bf)]());}return this['repeatTargets'](_0xe9c64c);}if(_0x3be59f[_0x3dba02(0xc6a)](/ALL (?:ALLY|ALLIES|FRIEND|FRIENDS) (?:BUT|EXCEPT) (?:USER|SELF)/i))return _0xe9c64c[_0x3dba02(0xca6)](...this[_0x3dba02(0x917)]()[_0x3dba02(0x1d0)]()[_0x3dba02(0x441)](_0x21b239=>_0x21b239!==this['subject']())),this['repeatTargets'](_0xe9c64c);return VisuMZ[_0x3dba02(0x2c5)][_0x3dba02(0xc92)][_0x3dba02(0xa54)](this);},Game_Action[_0x1cc45e(0xc0b)][_0x1cc45e(0x4a1)]=function(_0x1d3919){const _0x24692b=_0x1cc45e,_0x29e993=[];for(let _0x4e4300=0x0;_0x4e4300<this[_0x24692b(0xc12)]();_0x4e4300++){_0x29e993[_0x24692b(0xca6)](_0x1d3919['trueRandomTarget']());}return _0x29e993;},Game_Action['prototype'][_0x1cc45e(0x95b)]=function(_0x16816a){const _0x221f5a=_0x1cc45e;if(!this[_0x221f5a(0x904)]())return _0x16816a;const _0x54029e=this['item']()[_0x221f5a(0xbe6)];if(this[_0x221f5a(0x9c3)]()){this[_0x221f5a(0x91e)]()&&_0x16816a[_0x221f5a(0x280)](this[_0x221f5a(0x786)]());if(_0x16816a[_0x221f5a(0x9c4)](this[_0x221f5a(0x786)]())){const _0x4b0b3a=this[_0x221f5a(0x917)]()[_0x221f5a(0x1d0)]()[_0x221f5a(0x280)](this[_0x221f5a(0x786)]());if(_0x4b0b3a[_0x221f5a(0x96d)]>0x0){_0x4b0b3a[_0x221f5a(0x663)]((_0x301189,_0x5c2068)=>_0x301189[_0x221f5a(0x305)]()-_0x5c2068[_0x221f5a(0x305)]());while(_0x16816a[_0x221f5a(0x9c4)](this[_0x221f5a(0x786)]())){const _0x2c1a5e=_0x16816a[_0x221f5a(0x6e9)](this[_0x221f5a(0x786)]());_0x16816a[_0x2c1a5e]=_0x4b0b3a[Math[_0x221f5a(0x1fe)](_0x4b0b3a[_0x221f5a(0x96d)])];}}else _0x16816a[_0x221f5a(0x280)](this['subject']());}}return _0x16816a;},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x7d6)]=Game_Action[_0x1cc45e(0xc0b)][_0x1cc45e(0xb0d)],Game_Action[_0x1cc45e(0xc0b)]['itemEffectAddAttackState']=function(_0x4ee738,_0x2562d2){const _0x324a34=_0x1cc45e;VisuMZ[_0x324a34(0x2c5)]['Game_Action_itemEffectAddAttackState'][_0x324a34(0xa54)](this,_0x4ee738,_0x2562d2);if(!_0x4ee738[_0x324a34(0xbed)]())return;for(const _0x11686e of this[_0x324a34(0x786)]()[_0x324a34(0x7b9)]()){if(_0x11686e===_0x4ee738['deathStateId']()){let _0x15dfd5=_0x2562d2[_0x324a34(0x4a0)];_0x15dfd5*=_0x4ee738[_0x324a34(0x6bf)](_0x11686e),_0x15dfd5*=this[_0x324a34(0x786)]()[_0x324a34(0x447)](_0x11686e),_0x15dfd5*=this[_0x324a34(0x4b6)](_0x4ee738),Math['random']()<_0x15dfd5&&(_0x4ee738[_0x324a34(0x8fa)]=!![],this['makeSuccess'](_0x4ee738));}}},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x9a9)]=Game_Action[_0x1cc45e(0xc0b)]['itemEffectAddNormalState'],Game_Action[_0x1cc45e(0xc0b)]['itemEffectAddNormalState']=function(_0x28ea29,_0x1b4c6f){const _0x251c2a=_0x1cc45e;VisuMZ[_0x251c2a(0x2c5)][_0x251c2a(0x9a9)]['call'](this,_0x28ea29,_0x1b4c6f);if(!_0x28ea29[_0x251c2a(0xbed)]())return;if(_0x1b4c6f[_0x251c2a(0x5df)]!==_0x28ea29['deathStateId']())return;let _0x5dfaac=_0x1b4c6f[_0x251c2a(0x4a0)];!this['isCertainHit']()&&(_0x5dfaac*=_0x28ea29['stateRate'](_0x1b4c6f[_0x251c2a(0x5df)]),_0x5dfaac*=this['lukEffectRate'](_0x28ea29)),Math[_0x251c2a(0x76a)]()<_0x5dfaac&&(_0x28ea29[_0x251c2a(0x8fa)]=!![],this[_0x251c2a(0x9e2)](_0x28ea29));},VisuMZ['BattleCore'][_0x1cc45e(0x24c)]=Game_Action[_0x1cc45e(0xc0b)][_0x1cc45e(0xb16)],Game_Action[_0x1cc45e(0xc0b)][_0x1cc45e(0xb16)]=function(){const _0x4d3406=_0x1cc45e;VisuMZ[_0x4d3406(0x2c5)]['Game_Action_applyGlobal']['call'](this),this['applyGlobalCommonEventNotetags'](),this[_0x4d3406(0x837)]();},Game_Action[_0x1cc45e(0xc0b)]['applyGlobalCommonEventNotetags']=function(){const _0xe6d82a=_0x1cc45e;if(!SceneManager['isSceneBattle']())return;const _0x4c0a3e=/<COMMON (?:EVENT|EVENTS):[ ](.*)>/gi,_0x49b456=this[_0xe6d82a(0x904)]()[_0xe6d82a(0xbe6)]['match'](_0x4c0a3e);if(_0x49b456)for(const _0x47d73f of _0x49b456){if(!_0x47d73f)continue;_0x47d73f[_0xe6d82a(0xc6a)](_0x4c0a3e);const _0x3e7df3=String(RegExp['$1'])['split'](',')[_0xe6d82a(0x63c)](_0x8541d=>String(_0x8541d)['trim']()),_0x287750=_0x3e7df3['map'](_0x2608c4=>DataManager[_0xe6d82a(0x4c4)](_0x2608c4));for(const _0x49a009 of _0x287750){const _0x2a8cba=$dataCommonEvents[_0x49a009];_0x2a8cba&&$gameTemp[_0xe6d82a(0xbc7)](_0x49a009);}}},DataManager['getCommonEventIdWithName']=function(_0x46c0b5){const _0x33785d=_0x1cc45e;_0x46c0b5=_0x46c0b5[_0x33785d(0x2b6)]()[_0x33785d(0xc8e)](),this['_commonEventIDs']=this[_0x33785d(0x57c)]||{};if(this[_0x33785d(0x57c)][_0x46c0b5])return this[_0x33785d(0x57c)][_0x46c0b5];for(const _0x24973a of $dataCommonEvents){if(!_0x24973a)continue;let _0x5922ef=_0x24973a[_0x33785d(0xc4e)];_0x5922ef=_0x5922ef[_0x33785d(0x403)](/\x1I\[(\d+)\]/gi,''),_0x5922ef=_0x5922ef[_0x33785d(0x403)](/\\I\[(\d+)\]/gi,''),this[_0x33785d(0x57c)][_0x5922ef[_0x33785d(0x2b6)]()[_0x33785d(0xc8e)]()]=_0x24973a['id'];}return this['_commonEventIDs'][_0x46c0b5]||0x0;},Game_Action[_0x1cc45e(0xc0b)]['resetResultSwitches']=function(){const _0x3717e5=_0x1cc45e;if(!SceneManager[_0x3717e5(0x499)]())return;const _0x59a894=VisuMZ['BattleCore']['Settings'][_0x3717e5(0x56d)];_0x59a894[_0x3717e5(0x435)]&&$gameSwitches[_0x3717e5(0x97a)](_0x59a894[_0x3717e5(0x435)],![]),_0x59a894[_0x3717e5(0x828)]&&$gameSwitches[_0x3717e5(0x97a)](_0x59a894['SwitchMissEvade'],![]),_0x59a894[_0x3717e5(0xa33)]&&$gameVariables[_0x3717e5(0x97a)](_0x59a894[_0x3717e5(0xa33)],0x0),_0x59a894[_0x3717e5(0xc7d)]&&$gameVariables[_0x3717e5(0x97a)](_0x59a894[_0x3717e5(0xc7d)],0x0);},Game_Action[_0x1cc45e(0xc0b)][_0x1cc45e(0xd0b)]=function(_0x3ffc69){const _0x4b2206=_0x1cc45e;if(!SceneManager[_0x4b2206(0x499)]())return;if(!_0x3ffc69)return;const _0x1da84f=_0x3ffc69[_0x4b2206(0x75f)](),_0x162f57=VisuMZ[_0x4b2206(0x2c5)]['Settings'][_0x4b2206(0x56d)];_0x162f57[_0x4b2206(0x435)]&&_0x1da84f[_0x4b2206(0xa24)]&&$gameSwitches[_0x4b2206(0x97a)](_0x162f57[_0x4b2206(0x435)],!![]);_0x162f57[_0x4b2206(0x828)]&&(_0x1da84f[_0x4b2206(0x8f0)]||_0x1da84f[_0x4b2206(0x4eb)])&&$gameSwitches['setValue'](_0x162f57[_0x4b2206(0x828)],!![]);if(_0x162f57[_0x4b2206(0xa33)]){let _0x32369c=$gameVariables[_0x4b2206(0x4c8)](_0x162f57[_0x4b2206(0xa33)]);_0x1da84f[_0x4b2206(0x8b4)]>0x0&&(_0x32369c+=Math[_0x4b2206(0xb40)](_0x1da84f[_0x4b2206(0x8b4)])),$gameVariables['setValue'](_0x162f57[_0x4b2206(0xa33)],_0x32369c);}if(_0x162f57['VariableHeal']){let _0x255e1d=$gameVariables[_0x4b2206(0x4c8)](_0x162f57[_0x4b2206(0xc7d)]);_0x1da84f[_0x4b2206(0x8b4)]<0x0&&(_0x255e1d+=Math['abs'](_0x1da84f['hpDamage'])),$gameVariables[_0x4b2206(0x97a)](_0x162f57[_0x4b2206(0xc7d)],_0x255e1d);}},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0xa6c)]={'lifeSteaItem':/<(.*?) (?:LIFE|MANA) STEAL:[ ](\d+)([%％])>/gi,'lifeStealTrait':/<(.*?) (?:LIFE|MANA) STEAL (.*?):[ ]([\+\-]\d+)([%％])>/gi,'cancelLifeSteal':/<CANCEL LIFE STEAL>/i,'cancelHpLifeSteal':/<CANCEL HP LIFE STEAL>/i,'cancelMpLifeSteal':/<CANCEL MP LIFE STEAL>/i,'guardLifeSteal':/<GUARD LIFE STEAL>/i,'guardHpLifeSteal':/<GUARD HP LIFE STEAL>/i,'guardMpLifeSteal':/<GUARD MP LIFE STEAL>/i,'disarmLifeSteal':/<DISARM LIFE STEAL>/i,'disarmHpLifeSteal':/<DISARM HP LIFE STEAL>/i,'disarmMpLifeSteal':/<DISARM MP LIFE STEAL>/i,'negativeLifeSteal':/<REVERSE LIFE STEAL>/i,'negativeHpLifeSteal':/<REVERSE HP LIFE STEAL>/i,'negativeMpLifeSteal':/<REVERSE MP LIFE STEAL>/i},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x5e1)]=Game_Action[_0x1cc45e(0xc0b)][_0x1cc45e(0x30b)],Game_Action[_0x1cc45e(0xc0b)][_0x1cc45e(0x30b)]=function(_0x3049f7,_0x501315){const _0x36d6ab=_0x1cc45e;VisuMZ[_0x36d6ab(0x2c5)][_0x36d6ab(0x5e1)]['call'](this,_0x3049f7,_0x501315);!this['isDrain']()&&_0x3049f7&&_0x3049f7['result']()[_0x36d6ab(0x8b4)]>0x0&&this['performLifeSteal']('HP',_0x3049f7,_0x3049f7[_0x36d6ab(0x75f)]()[_0x36d6ab(0x8b4)]);if(_0x3049f7){this[_0x36d6ab(0x3cf)]=this['_executeHpDamage']||{};const _0x2a196a=_0x3049f7[_0x36d6ab(0x9e5)]();this[_0x36d6ab(0x3cf)][_0x2a196a]=_0x501315;}},Game_Action[_0x1cc45e(0xc0b)][_0x1cc45e(0xc8b)]=function(_0x428c2b){const _0x2d70b1=_0x1cc45e;this[_0x2d70b1(0x3cf)]=this[_0x2d70b1(0x3cf)]||{};const _0x5ba4f3=_0x428c2b[_0x2d70b1(0x9e5)]();return this[_0x2d70b1(0x3cf)][_0x5ba4f3]||0x0;},VisuMZ['BattleCore']['Game_Action_executeMpDamage']=Game_Action[_0x1cc45e(0xc0b)]['executeMpDamage'],Game_Action[_0x1cc45e(0xc0b)][_0x1cc45e(0xc0f)]=function(_0x2d7ca6,_0x479339){const _0x21c5e2=_0x1cc45e;VisuMZ[_0x21c5e2(0x2c5)]['Game_Action_executeMpDamage'][_0x21c5e2(0xa54)](this,_0x2d7ca6,_0x479339),!this['isDrain']()&&_0x2d7ca6&&_0x2d7ca6[_0x21c5e2(0x75f)]()[_0x21c5e2(0x30e)]>0x0&&this[_0x21c5e2(0x9cb)]('MP',_0x2d7ca6,_0x2d7ca6[_0x21c5e2(0x75f)]()[_0x21c5e2(0x30e)]);},Game_Action['prototype'][_0x1cc45e(0x9cb)]=function(_0x485234,_0x138d85,_0x46b883){const _0x38ae7f=_0x1cc45e;_0x485234=_0x485234[_0x38ae7f(0x2b6)]()[_0x38ae7f(0xc8e)]();const _0x3daddf=this[_0x38ae7f(0x609)](_0x485234,_0x138d85);if(_0x3daddf<=0x0)return;const _0xaa75da=Math[_0x38ae7f(0xb4b)](_0x46b883*_0x3daddf);if(_0xaa75da<=0x0)return;let _0x239a12=this['subject']();if(this[_0x38ae7f(0x9ea)])_0x239a12=this['_reflectionTarget'];const _0x2aa73a=_0x138d85[_0x38ae7f(0x978)](_0x485234)?-0x1:0x1;if(_0x485234==='HP')_0x239a12[_0x38ae7f(0x25d)](_0x2aa73a*_0xaa75da);if(_0x485234==='MP')_0x239a12[_0x38ae7f(0x79e)](_0x2aa73a*_0xaa75da);},Game_Action[_0x1cc45e(0xc0b)]['lifeStealRate']=function(_0x3e4b68,_0x55a204){const _0x338b33=_0x1cc45e;if(this[_0x338b33(0x41c)](_0x3e4b68))return 0x0;if(this['subject']()[_0x338b33(0xc3a)](_0x3e4b68))return 0x0;if(_0x55a204[_0x338b33(0xb8a)](_0x3e4b68))return 0x0;let _0x426fb8=0x0;return _0x426fb8+=this[_0x338b33(0x577)](_0x3e4b68),_0x426fb8+=this[_0x338b33(0x786)]()[_0x338b33(0x609)](_0x3e4b68,this[_0x338b33(0x904)]()[_0x338b33(0x94e)]),_0x426fb8[_0x338b33(0x539)](0x0,0x1);},Game_Action[_0x1cc45e(0xc0b)][_0x1cc45e(0x41c)]=function(_0x1dfd09){const _0x2c43de=_0x1cc45e;_0x1dfd09=_0x1dfd09[_0x2c43de(0x2b6)]()[_0x2c43de(0xc8e)]();const _0x3c5414=VisuMZ['BattleCore'][_0x2c43de(0xa6c)],_0x55d6f5=this[_0x2c43de(0x904)]()[_0x2c43de(0xbe6)]||'';if(_0x55d6f5[_0x2c43de(0xc6a)](_0x3c5414[_0x2c43de(0x732)]))return!![];if(_0x1dfd09==='HP'&&_0x55d6f5[_0x2c43de(0xc6a)](_0x3c5414['cancelHpLifeSteal']))return!![];if(_0x1dfd09==='MP'&&_0x55d6f5[_0x2c43de(0xc6a)](_0x3c5414['cancelMpLifeSteal']))return!![];return![];},Game_Action[_0x1cc45e(0xc0b)][_0x1cc45e(0x577)]=function(_0x22ed38){const _0x5adc60=_0x1cc45e,_0x3ec9d0=VisuMZ[_0x5adc60(0x2c5)][_0x5adc60(0xa6c)],_0x50997e=this[_0x5adc60(0x904)]()[_0x5adc60(0xbe6)]||'';_0x22ed38=_0x22ed38[_0x5adc60(0x2b6)]()[_0x5adc60(0xc8e)]();const _0x15df85=_0x50997e[_0x5adc60(0xc6a)](_0x3ec9d0[_0x5adc60(0x341)]);if(_0x15df85)for(const _0xc0c65f of _0x15df85){_0xc0c65f[_0x5adc60(0xc6a)](_0x3ec9d0[_0x5adc60(0x341)]);const _0x2f1dba=String(RegExp['$1'])[_0x5adc60(0x2b6)]()[_0x5adc60(0xc8e)](),_0x5cbb76=Number(RegExp['$2'])*0.01;if(_0x2f1dba!==_0x22ed38)continue;return _0x5cbb76;}return 0x0;},Game_BattlerBase[_0x1cc45e(0xc0b)][_0x1cc45e(0x609)]=function(_0x741df8,_0xf18fee){const _0x2ca77e=_0x1cc45e,_0x588a45=VisuMZ[_0x2ca77e(0x2c5)][_0x2ca77e(0xa6c)];let _0x2bced8=0x0;_0x741df8=_0x741df8[_0x2ca77e(0x2b6)]()[_0x2ca77e(0xc8e)]();for(const _0x318428 of this[_0x2ca77e(0x394)]()){if(!_0x318428)continue;const _0x48a4a9=_0x318428[_0x2ca77e(0xbe6)]||'',_0x4d851c=_0x48a4a9[_0x2ca77e(0xc6a)](_0x588a45[_0x2ca77e(0x860)]);if(_0x4d851c)for(const _0x516023 of _0x4d851c){_0x516023[_0x2ca77e(0xc6a)](_0x588a45['lifeStealTrait']);const _0x26b6be=String(RegExp['$1'])[_0x2ca77e(0x2b6)]()[_0x2ca77e(0xc8e)](),_0x35af37=String(RegExp['$2']),_0x12ece7=Number(RegExp['$3'])*0.01;if(_0x26b6be!==_0x741df8)continue;if(_0xf18fee===Game_Action[_0x2ca77e(0x24b)]&&_0x35af37[_0x2ca77e(0xc6a)](/CERTAIN/i))_0x2bced8+=_0x12ece7;else{if(_0xf18fee===Game_Action['HITTYPE_PHYSICAL']&&_0x35af37[_0x2ca77e(0xc6a)](/PHYS/i))_0x2bced8+=_0x12ece7;else _0xf18fee===Game_Action['HITTYPE_MAGICAL']&&_0x35af37['match'](/MAGIC/i)&&(_0x2bced8+=_0x12ece7);}}}return _0x2bced8;},Game_BattlerBase['prototype'][_0x1cc45e(0xc3a)]=function(_0x50443d){const _0x1f416d=_0x1cc45e;_0x50443d=_0x50443d[_0x1f416d(0x2b6)]()[_0x1f416d(0xc8e)]();const _0x476987=VisuMZ['BattleCore'][_0x1f416d(0xa6c)];for(const _0x27e16d of this[_0x1f416d(0x394)]()){if(!_0x27e16d)continue;const _0x5427f0=_0x27e16d['note']||'';if(_0x5427f0[_0x1f416d(0xc6a)](_0x476987[_0x1f416d(0x975)]))return!![];if(_0x50443d==='HP'&&_0x5427f0[_0x1f416d(0xc6a)](_0x476987[_0x1f416d(0x63a)]))return!![];if(_0x50443d==='MP'&&_0x5427f0[_0x1f416d(0xc6a)](_0x476987[_0x1f416d(0x9cd)]))return!![];}return![];},Game_BattlerBase[_0x1cc45e(0xc0b)]['isNegativeLifeSteal']=function(_0x37d014){const _0x15cb81=_0x1cc45e;_0x37d014=_0x37d014['toUpperCase']()[_0x15cb81(0xc8e)]();const _0xdfe931=VisuMZ[_0x15cb81(0x2c5)][_0x15cb81(0xa6c)];for(const _0x2ab063 of this[_0x15cb81(0x394)]()){if(!_0x2ab063)continue;const _0x117eb3=_0x2ab063['note']||'';if(_0x117eb3[_0x15cb81(0xc6a)](_0xdfe931['negativeLifeSteal']))return!![];if(_0x37d014==='HP'&&_0x117eb3[_0x15cb81(0xc6a)](_0xdfe931[_0x15cb81(0x65f)]))return!![];if(_0x37d014==='MP'&&_0x117eb3[_0x15cb81(0xc6a)](_0xdfe931[_0x15cb81(0x642)]))return!![];}return![];},Game_BattlerBase['prototype'][_0x1cc45e(0xb8a)]=function(_0x17cee7){const _0x1f61b1=_0x1cc45e;_0x17cee7=_0x17cee7[_0x1f61b1(0x2b6)]()[_0x1f61b1(0xc8e)]();const _0x27f482=VisuMZ[_0x1f61b1(0x2c5)]['LifeStealRegExp'];for(const _0x17e9c3 of this[_0x1f61b1(0x394)]()){if(!_0x17e9c3)continue;const _0x3c574f=_0x17e9c3[_0x1f61b1(0xbe6)]||'';if(_0x3c574f[_0x1f61b1(0xc6a)](_0x27f482[_0x1f61b1(0x5fc)]))return!![];if(_0x17cee7==='HP'&&_0x3c574f['match'](_0x27f482[_0x1f61b1(0x5af)]))return!![];if(_0x17cee7==='MP'&&_0x3c574f[_0x1f61b1(0xc6a)](_0x27f482[_0x1f61b1(0xa4e)]))return!![];}return![];},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x9d5)]=Game_BattlerBase[_0x1cc45e(0xc0b)][_0x1cc45e(0x522)],Game_BattlerBase[_0x1cc45e(0xc0b)][_0x1cc45e(0x522)]=function(){const _0x2e067f=_0x1cc45e;VisuMZ['BattleCore'][_0x2e067f(0x9d5)][_0x2e067f(0xa54)](this),this[_0x2e067f(0x7a6)]();},Game_BattlerBase[_0x1cc45e(0xc0b)]['initMembersBattleCore']=function(){const _0x5e2d01=_0x1cc45e;this[_0x5e2d01(0x5c2)]=![];},VisuMZ[_0x1cc45e(0x2c5)]['Game_BattlerBase_refresh']=Game_BattlerBase[_0x1cc45e(0xc0b)]['refresh'],Game_BattlerBase[_0x1cc45e(0xc0b)][_0x1cc45e(0x299)]=function(){const _0x235f3d=_0x1cc45e;this[_0x235f3d(0x595)]={},VisuMZ[_0x235f3d(0x2c5)]['Game_BattlerBase_refresh'][_0x235f3d(0xa54)](this);},Game_BattlerBase[_0x1cc45e(0xc0b)][_0x1cc45e(0x49f)]=function(_0x351663){const _0x20bb5d=_0x1cc45e;return this[_0x20bb5d(0x595)]=this[_0x20bb5d(0x595)]||{},this[_0x20bb5d(0x595)][_0x351663]!==undefined;},Game_BattlerBase[_0x1cc45e(0xc0b)][_0x1cc45e(0xad8)]=function(){const _0x4f3471=_0x1cc45e;if(this[_0x4f3471(0x595)][_0x4f3471(0xad8)]!==undefined)return this['_cache'][_0x4f3471(0xad8)];const _0x46f374=/<DAMAGE CAP:[ ](\d+)>/i,_0x4f9c35=this[_0x4f3471(0x394)]()[_0x4f3471(0x63c)](_0x313f19=>_0x313f19&&_0x313f19['note'][_0x4f3471(0xc6a)](_0x46f374)?Number(RegExp['$1']):0x0);let _0x4f05e2=_0x4f9c35[_0x4f3471(0x96d)]>0x0?Math[_0x4f3471(0x485)](..._0x4f9c35):0x0;if(_0x4f05e2<=0x0)_0x4f05e2=VisuMZ[_0x4f3471(0x2c5)][_0x4f3471(0x5fb)][_0x4f3471(0x1de)]['DefaultHardCap'];return this['_cache']['hardDamageCap']=_0x4f05e2,this['_cache']['hardDamageCap'];},Game_BattlerBase[_0x1cc45e(0xc0b)][_0x1cc45e(0xbb6)]=function(){const _0x9cbcd1=_0x1cc45e;if(this['_cache'][_0x9cbcd1(0x56e)]!==undefined)return this[_0x9cbcd1(0x595)]['softDamageCap'];let _0x473ab9=VisuMZ[_0x9cbcd1(0x2c5)][_0x9cbcd1(0x5fb)][_0x9cbcd1(0x1de)][_0x9cbcd1(0x84c)];const _0x48c3e7=/<SOFT DAMAGE CAP:[ ]([\+\-]\d+)([%％])>/i,_0x5c6dc5=this[_0x9cbcd1(0x394)]()[_0x9cbcd1(0x63c)](_0x3ff1dc=>_0x3ff1dc&&_0x3ff1dc[_0x9cbcd1(0xbe6)]['match'](_0x48c3e7)?Number(RegExp['$1'])/0x64:0x0);return _0x473ab9=_0x5c6dc5[_0x9cbcd1(0x7eb)]((_0x426f57,_0x41e110)=>_0x426f57+_0x41e110,_0x473ab9),this[_0x9cbcd1(0x595)]['softDamageCap']=_0x473ab9,this[_0x9cbcd1(0x595)]['softDamageCap']['clamp'](0.01,0x1);},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x934)]=Game_BattlerBase[_0x1cc45e(0xc0b)][_0x1cc45e(0xc0c)],Game_BattlerBase[_0x1cc45e(0xc0b)]['die']=function(){const _0x2e21cc=_0x1cc45e;VisuMZ[_0x2e21cc(0x2c5)][_0x2e21cc(0x934)]['call'](this),SceneManager[_0x2e21cc(0x499)]()&&(this['requestMotion']('dead'),this[_0x2e21cc(0x897)]=undefined);},Game_BattlerBase[_0x1cc45e(0xc0b)][_0x1cc45e(0x3ba)]=function(){const _0x4ee626=_0x1cc45e;if(!SceneManager[_0x4ee626(0x499)]())return null;if(!SceneManager[_0x4ee626(0x659)][_0x4ee626(0x2e6)])return null;return SceneManager[_0x4ee626(0x659)][_0x4ee626(0x2e6)][_0x4ee626(0xa66)](this);},Game_BattlerBase[_0x1cc45e(0xc0b)][_0x1cc45e(0xa6e)]=function(){const _0x14f495=_0x1cc45e;return VisuMZ[_0x14f495(0x2c5)][_0x14f495(0x5fb)]['Actor'][_0x14f495(0x1e1)];},Game_BattlerBase['prototype'][_0x1cc45e(0x50e)]=function(){const _0x4dbc36=_0x1cc45e;return VisuMZ[_0x4dbc36(0x2c5)][_0x4dbc36(0x5fb)][_0x4dbc36(0x3c1)][_0x4dbc36(0xb23)];},Game_BattlerBase[_0x1cc45e(0xc0b)][_0x1cc45e(0x64b)]=function(){const _0x8ac20b=_0x1cc45e;return this[_0x8ac20b(0x864)]&&this['isActor']()?VisuMZ[_0x8ac20b(0x2c5)][_0x8ac20b(0x5fb)][_0x8ac20b(0x3c1)][_0x8ac20b(0x5bc)]:VisuMZ[_0x8ac20b(0x2c5)][_0x8ac20b(0x5fb)]['Enemy']['Shadow'];},Game_BattlerBase[_0x1cc45e(0xc0b)][_0x1cc45e(0x46f)]=function(){return!![];},Game_BattlerBase[_0x1cc45e(0xc0b)][_0x1cc45e(0x588)]=function(){return 0x0;},Game_BattlerBase['prototype']['battleUIOffsetY']=function(){return 0x0;},Game_BattlerBase[_0x1cc45e(0xc0b)]['createBattleUIOffsetX']=function(_0xa7e9ee){const _0x242554=_0x1cc45e;if(!_0xa7e9ee)return 0x0;let _0x2ef820=0x0;const _0x2f8036=_0xa7e9ee[_0x242554(0xbe6)];return _0x2f8036[_0x242554(0xc6a)](/<BATTLE UI OFFSET X:[ ]([\+\-]\d+)>/i)&&(_0x2ef820+=Number(RegExp['$1'])),_0x2f8036[_0x242554(0xc6a)](/<BATTLE UI OFFSET:[ ]([\+\-]\d+),[ ]([\+\-]\d+)>/i)&&(_0x2ef820+=Number(RegExp['$1'])),_0x2ef820;},Game_BattlerBase[_0x1cc45e(0xc0b)][_0x1cc45e(0x9ef)]=function(_0x3ee280){const _0x654b96=_0x1cc45e;if(!_0x3ee280)return 0x0;let _0x27aa4d=0x0;const _0x34fc88=_0x3ee280[_0x654b96(0xbe6)];return _0x34fc88['match'](/<BATTLE UI OFFSET Y:[ ]([\+\-]\d+)>/i)&&(_0x27aa4d+=Number(RegExp['$1'])),_0x34fc88[_0x654b96(0xc6a)](/<BATTLE UI OFFSET:[ ]([\+\-]\d+),[ ]([\+\-]\d+)>/i)&&(_0x27aa4d+=Number(RegExp['$2'])),_0x27aa4d;},VisuMZ[_0x1cc45e(0x2c5)]['Game_BattlerBase_isStateResist']=Game_BattlerBase[_0x1cc45e(0xc0b)][_0x1cc45e(0x67c)],Game_BattlerBase[_0x1cc45e(0xc0b)][_0x1cc45e(0x67c)]=function(_0x472485){const _0x50ffde=_0x1cc45e;if(_0x472485===this[_0x50ffde(0x36e)]()&&this[_0x50ffde(0xbed)]())return!![];return VisuMZ[_0x50ffde(0x2c5)][_0x50ffde(0x97d)][_0x50ffde(0xa54)](this,_0x472485);},Game_BattlerBase[_0x1cc45e(0xc0b)][_0x1cc45e(0xbed)]=function(){return this['_immortal'];},Game_BattlerBase[_0x1cc45e(0xc0b)][_0x1cc45e(0xb24)]=function(_0x26f07f){const _0x5bc486=_0x1cc45e;_0x26f07f?this['addImmortal']():this[_0x5bc486(0xc31)]();},Game_BattlerBase[_0x1cc45e(0xc0b)][_0x1cc45e(0x320)]=function(){const _0x5a6fbb=_0x1cc45e;if(this[_0x5a6fbb(0x1ee)]())return;this[_0x5a6fbb(0x5c2)]=!![],this[_0x5a6fbb(0x8fa)]=![];},Game_BattlerBase['prototype']['removeImmortal']=function(){const _0x452c58=_0x1cc45e,_0x31085b=this[_0x452c58(0x212)]();this[_0x452c58(0x5c2)]=![],_0x31085b&&this[_0x452c58(0x8fa)]&&this[_0x452c58(0xc0c)](),this[_0x452c58(0x8fa)]=![],this[_0x452c58(0x299)](),this[_0x452c58(0x1ee)]()&&_0x31085b&&(this['performCollapse'](),this['requestMotionRefresh']());},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x55d)]=Game_Action['prototype']['numRepeats'],Game_Action[_0x1cc45e(0xc0b)][_0x1cc45e(0x6d2)]=function(){const _0x25f50e=_0x1cc45e;return this[_0x25f50e(0x904)]()?VisuMZ[_0x25f50e(0x2c5)][_0x25f50e(0x55d)]['call'](this):0x0;},VisuMZ[_0x1cc45e(0x2c5)]['Game_Action_setAttack']=Game_Action[_0x1cc45e(0xc0b)][_0x1cc45e(0x244)],Game_Action[_0x1cc45e(0xc0b)][_0x1cc45e(0x244)]=function(){const _0x519575=_0x1cc45e;if(this[_0x519575(0x786)]()&&this[_0x519575(0x786)]()[_0x519575(0x685)]())VisuMZ[_0x519575(0x2c5)]['Game_Action_setAttack'][_0x519575(0xa54)](this);else BattleManager['_bypassCanCounterCheck']?VisuMZ['BattleCore'][_0x519575(0x668)][_0x519575(0xa54)](this):this[_0x519575(0x52a)]();},VisuMZ['BattleCore']['Game_BattlerBase_canAttack']=Game_BattlerBase[_0x1cc45e(0xc0b)]['canAttack'],Game_BattlerBase[_0x1cc45e(0xc0b)][_0x1cc45e(0x685)]=function(){const _0x31e7fd=_0x1cc45e;if(!this[_0x31e7fd(0x820)]())return![];return VisuMZ[_0x31e7fd(0x2c5)]['Game_BattlerBase_canAttack'][_0x31e7fd(0xa54)](this);},Game_BattlerBase['prototype'][_0x1cc45e(0x820)]=function(){const _0x461a9e=_0x1cc45e;for(const _0xaab27f of this[_0x461a9e(0x394)]()){if(!_0xaab27f)continue;if(_0xaab27f[_0x461a9e(0xbe6)][_0x461a9e(0xc6a)](/<(?:ATTACK SEAL|SEAL ATTACK)>/i))return![];}return!![];},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0xcb5)]=Game_Action[_0x1cc45e(0xc0b)]['setGuard'],Game_Action[_0x1cc45e(0xc0b)][_0x1cc45e(0xb63)]=function(){const _0x15b2e8=_0x1cc45e;this[_0x15b2e8(0x786)]()[_0x15b2e8(0xc7c)]()&&VisuMZ['BattleCore'][_0x15b2e8(0xcb5)][_0x15b2e8(0xa54)](this);},VisuMZ['BattleCore']['Game_BattlerBase_canGuard']=Game_BattlerBase['prototype']['canGuard'],Game_BattlerBase['prototype'][_0x1cc45e(0xc7c)]=function(){const _0x30756a=_0x1cc45e;if(!this[_0x30756a(0x4b2)]())return![];return VisuMZ[_0x30756a(0x2c5)]['Game_BattlerBase_canGuard'][_0x30756a(0xa54)](this);},Game_BattlerBase[_0x1cc45e(0xc0b)][_0x1cc45e(0x4b2)]=function(){const _0x584ca3=_0x1cc45e;for(const _0x8bac1c of this['traitObjects']()){if(!_0x8bac1c)continue;if(_0x8bac1c[_0x584ca3(0xbe6)]['match'](/<(?:GUARD SEAL|SEAL GUARD)>/i))return![];}return!![];},Game_BattlerBase['prototype'][_0x1cc45e(0xad2)]=function(){const _0x4b6d18=_0x1cc45e;for(const _0x2d4172 of this[_0x4b6d18(0x394)]()){if(!_0x2d4172)continue;if(_0x2d4172['note']['match'](/<(?:ITEM SEAL|SEAL ITEM|SEAL ITEMS)>/i))return![];}return!![];},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x586)]=Game_BattlerBase['prototype']['meetsUsableItemConditions'],Game_BattlerBase[_0x1cc45e(0xc0b)]['meetsUsableItemConditions']=function(_0x7d81fe){const _0x4f4094=_0x1cc45e;if(_0x7d81fe&&_0x7d81fe[_0x4f4094(0xbe6)][_0x4f4094(0xc6a)](/<CANNOT TARGET (?:USER|SELF)>/i)){const _0x5e06d3=this['friendsUnit']()[_0x4f4094(0x1d0)]();if(_0x5e06d3[_0x4f4094(0x96d)]===0x1&&_0x5e06d3[0x0]===this)return![];}return VisuMZ['BattleCore'][_0x4f4094(0x586)][_0x4f4094(0xa54)](this,_0x7d81fe);},Game_Battler[_0x1cc45e(0xc0b)][_0x1cc45e(0x2b2)]=function(){const _0x2aa4e3=_0x1cc45e;return VisuMZ[_0x2aa4e3(0x2c5)]['Settings'][_0x2aa4e3(0x56d)][_0x2aa4e3(0x83c)];},VisuMZ['BattleCore'][_0x1cc45e(0x2dd)]=Game_Battler[_0x1cc45e(0xc0b)][_0x1cc45e(0x1e4)],Game_Battler[_0x1cc45e(0xc0b)][_0x1cc45e(0x1e4)]=function(){const _0x5db889=_0x1cc45e;if(SceneManager['isSceneBattle']()){if(BattleManager['isTpb']()){if(this[_0x5db889(0xcfc)]()<=0x0)return;}else{if($gameTroop[_0x5db889(0xcfc)]()<=0x0)return;}}if(SceneManager[_0x5db889(0x499)]()&&BattleManager[_0x5db889(0x644)]()&&this[_0x5db889(0x3c3)]===Graphics[_0x5db889(0x2ad)])return;this[_0x5db889(0x3c3)]=Graphics[_0x5db889(0x2ad)],SceneManager[_0x5db889(0x499)]()&&this['processBattleCoreJS'](_0x5db889(0xbee)),VisuMZ['BattleCore'][_0x5db889(0x2dd)]['call'](this),SceneManager[_0x5db889(0x499)]()&&(this['regenerateAllBattleCore'](),this[_0x5db889(0x6a5)]('PostRegenerateJS'));},Game_Battler[_0x1cc45e(0xc0b)][_0x1cc45e(0x291)]=function(){const _0x377ac3=_0x1cc45e;if(SceneManager[_0x377ac3(0x499)]())for(const _0x48e76c of this[_0x377ac3(0x394)]()){if(!_0x48e76c)continue;this[_0x377ac3(0x52b)](_0x48e76c);}},Game_Battler[_0x1cc45e(0xc0b)][_0x1cc45e(0x52b)]=function(_0x27a367){const _0x80861d=_0x1cc45e;if(!Imported[_0x80861d(0x598)])return;if(!SceneManager[_0x80861d(0x499)]())return;if(this[_0x80861d(0x1ee)]())return;if(this[_0x80861d(0x2b8)]())return;if(_0x27a367[_0x80861d(0xbe6)][_0x80861d(0xc6a)](/<(?:REGENERATE|REGEN|DEGEN|DOT|SLIP)[ ]ANIMATION:[ ](\d+)>/i)){const _0x28737e=Number(RegExp['$1']);$gameTemp[_0x80861d(0xa6d)]([this],_0x28737e,![],![]);}},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x687)]=Game_Battler[_0x1cc45e(0xc0b)][_0x1cc45e(0x557)],Game_Battler[_0x1cc45e(0xc0b)][_0x1cc45e(0x557)]=function(){const _0x53c210=_0x1cc45e;this['processBattleCoreJS'](_0x53c210(0xcd6)),VisuMZ[_0x53c210(0x2c5)]['Game_Battler_startTpbTurn'][_0x53c210(0xa54)](this),this[_0x53c210(0x6a5)](_0x53c210(0x799));},VisuMZ['BattleCore'][_0x1cc45e(0x1ed)]=Game_Battler[_0x1cc45e(0xc0b)][_0x1cc45e(0x470)],Game_Battler[_0x1cc45e(0xc0b)]['onTurnEnd']=function(){const _0x1990de=_0x1cc45e;this[_0x1990de(0x6a5)]('PreEndTurnJS'),VisuMZ[_0x1990de(0x2c5)]['Game_Battler_onTurnEnd'][_0x1990de(0xa54)](this),VisuMZ['BattleCore'][_0x1990de(0x5fb)][_0x1990de(0x56d)]['SyncBuffExpire']&&this[_0x1990de(0x3d2)](),this['processBattleCoreJS'](_0x1990de(0x76b));},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x3bf)]=Game_Battler[_0x1cc45e(0xc0b)]['initTpbChargeTime'],Game_Battler[_0x1cc45e(0xc0b)][_0x1cc45e(0xb58)]=function(_0x19d9ed){const _0x2c0023=_0x1cc45e;VisuMZ['BattleCore'][_0x2c0023(0x3bf)]['call'](this,_0x19d9ed),isNaN(this[_0x2c0023(0x7f9)])&&(VisuMZ[_0x2c0023(0x2c5)][_0x2c0023(0x3bf)][_0x2c0023(0xa54)](this,_0x19d9ed),isNaN(this[_0x2c0023(0x7f9)])&&(this['_tpbChargeTime']=0x0));},Game_Battler[_0x1cc45e(0xc0b)][_0x1cc45e(0xc60)]=function(){const _0x14167e=_0x1cc45e;if(this['_tpbState']===_0x14167e(0x7dd))this[_0x14167e(0x7f9)]+=this[_0x14167e(0xbd0)](),isNaN(this[_0x14167e(0x7f9)])&&(this[_0x14167e(0x7f9)]=this[_0x14167e(0xbd0)](),isNaN(this['_tpbChargeTime'])&&(this['_tpbChargeTime']=0x0)),this[_0x14167e(0x7f9)]>=0x1&&(this[_0x14167e(0x7f9)]=0x1,this[_0x14167e(0x695)]()),this[_0x14167e(0xb5f)]=0x0;else{if(this['_tpbState']===_0x14167e(0xb97)&&!BattleManager['_subject']&&!this['isInputting']()){this['_tpbChargedCounter']=this[_0x14167e(0xb5f)]||0x0,this[_0x14167e(0xb5f)]++;const _0x3ff47d=BattleManager[_0x14167e(0x718)]()?0x3c:0x8;this[_0x14167e(0xb5f)]>=_0x3ff47d&&(this[_0x14167e(0x60e)](),this['_tpbChargedCounter']=0x0);}}},Game_Battler['prototype'][_0x1cc45e(0x6a5)]=function(_0x1758da){const _0x357d1a=_0x1cc45e;if(this[_0x357d1a(0x1f2)]||this[_0x357d1a(0x31b)])return;const _0x43a337=VisuMZ['BattleCore']['Settings']['Mechanics'];if(_0x43a337[_0x1758da])_0x43a337[_0x1758da]['call'](this);for(const _0x335643 of this[_0x357d1a(0x394)]()){if(!_0x335643)continue;key=VisuMZ['BattleCore'][_0x357d1a(0x498)](_0x335643,_0x1758da),VisuMZ[_0x357d1a(0x2c5)]['JS'][key]&&VisuMZ['BattleCore']['JS'][key][_0x357d1a(0xa54)](this,this,this,_0x335643,0x0);}},Game_Battler[_0x1cc45e(0xc0b)][_0x1cc45e(0x824)]=function(){const _0x4899b1=_0x1cc45e;return VisuMZ[_0x4899b1(0x2c5)][_0x4899b1(0x5fb)]['Actor']['ChantStyle']||![];},Game_Battler[_0x1cc45e(0xc0b)]['isChanting']=function(){const _0xa8a700=_0x1cc45e;if(this[_0xa8a700(0x601)]()){if(this[_0xa8a700(0x824)]()){if(this['_actions'][_0xa8a700(0xc84)](_0x43b5c0=>_0x43b5c0['item']()&&_0x43b5c0[_0xa8a700(0x4e3)]()))return!![];}else{if(this['_actions']['some'](_0x111297=>_0x111297['item']()&&_0x111297[_0xa8a700(0x811)]()))return!![];}}if(BattleManager[_0xa8a700(0x644)]()&&this[_0xa8a700(0xa27)]===_0xa8a700(0xae6))return this[_0xa8a700(0x824)]()?this[_0xa8a700(0xbfb)]()&&this[_0xa8a700(0xbfb)]()[_0xa8a700(0x904)]()&&this[_0xa8a700(0xbfb)]()[_0xa8a700(0x4e3)]():this[_0xa8a700(0xbfb)]()&&this[_0xa8a700(0xbfb)]()[_0xa8a700(0x904)]()&&this[_0xa8a700(0xbfb)]()[_0xa8a700(0x811)]();return![];},Game_Battler['prototype'][_0x1cc45e(0x952)]=function(){const _0x5c61c0=_0x1cc45e;if(BattleManager['isTpb']()&&this[_0x5c61c0(0xa27)]===_0x5c61c0(0xae6))return this[_0x5c61c0(0x824)]()?this['currentAction']()&&this[_0x5c61c0(0xbfb)]()[_0x5c61c0(0x904)]()&&!this[_0x5c61c0(0xbfb)]()[_0x5c61c0(0x4e3)]():this[_0x5c61c0(0xbfb)]()&&this[_0x5c61c0(0xbfb)]()[_0x5c61c0(0x904)]()&&!this['currentAction']()['isMagicSkill']();return![];},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x3f5)]=Game_Battler[_0x1cc45e(0xc0b)][_0x1cc45e(0x519)],Game_Battler[_0x1cc45e(0xc0b)][_0x1cc45e(0x519)]=function(){const _0x1d4fe3=_0x1cc45e;VisuMZ[_0x1d4fe3(0x2c5)]['Game_Battler_clearDamagePopup']['call'](this),this[_0x1d4fe3(0x9a6)]=[];},Game_Battler[_0x1cc45e(0xc0b)][_0x1cc45e(0xafe)]=function(){const _0x3e5bac=_0x1cc45e;if(!this[_0x3e5bac(0x9a6)])this['clearDamagePopup']();return this['_damagePopupArray'][_0x3e5bac(0x96d)]>0x0;},Game_Battler[_0x1cc45e(0xc0b)][_0x1cc45e(0xc6c)]=function(){const _0x1535a0=_0x1cc45e;if(!SceneManager[_0x1535a0(0x499)]())return;if(BattleManager[_0x1535a0(0x2fd)]())return;if(!this[_0x1535a0(0x9a6)])this[_0x1535a0(0x519)]();this[_0x1535a0(0x712)]();const _0x29b50e=this[_0x1535a0(0x3ba)]();if(_0x29b50e)_0x29b50e[_0x1535a0(0xca9)]();},Game_Battler[_0x1cc45e(0xc0b)][_0x1cc45e(0x712)]=function(){const _0x32bdca=_0x1cc45e,_0xae21c=this[_0x32bdca(0x75f)]();if(_0xae21c[_0x32bdca(0x8f0)]||_0xae21c[_0x32bdca(0x4eb)]){const _0x273106=JsonEx[_0x32bdca(0xb4c)](_0xae21c);_0x273106[_0x32bdca(0x38f)]=![],_0x273106['mpDamage']=0x0,this[_0x32bdca(0x9a6)]['push'](_0x273106);if(!_0xae21c['hpDamage']&&!_0xae21c[_0x32bdca(0x30e)])return;}if(_0xae21c[_0x32bdca(0x38f)]){const _0x33a8b5=JsonEx[_0x32bdca(0xb4c)](_0xae21c);_0x33a8b5[_0x32bdca(0x8f0)]=![],_0x33a8b5['evaded']=![],_0x33a8b5['mpDamage']=0x0,this['_damagePopupArray'][_0x32bdca(0xca6)](_0x33a8b5);}if(_0xae21c[_0x32bdca(0x30e)]!==0x0){const _0x5820fb=JsonEx[_0x32bdca(0xb4c)](_0xae21c);_0x5820fb[_0x32bdca(0x8f0)]=![],_0x5820fb[_0x32bdca(0x4eb)]=![],_0x5820fb[_0x32bdca(0x38f)]=![],this[_0x32bdca(0x9a6)][_0x32bdca(0xca6)](_0x5820fb);}},Game_Battler['prototype']['getNextDamagePopup']=function(){const _0x17e2ad=_0x1cc45e;if(!this[_0x17e2ad(0x9a6)])this['clearDamagePopup']();return VisuMZ['BattleCore'][_0x17e2ad(0x5fb)][_0x17e2ad(0x1de)][_0x17e2ad(0xca0)]?this[_0x17e2ad(0x9a6)][_0x17e2ad(0x597)]():this[_0x17e2ad(0x9a6)][_0x17e2ad(0xb4d)]();},Game_Battler[_0x1cc45e(0xc0b)]['setupTextPopup']=function(_0x438284,_0x25d665){const _0x408fbb=_0x1cc45e;if(!SceneManager[_0x408fbb(0x499)]())return;if(BattleManager[_0x408fbb(0x2fd)]())return;if(!this[_0x408fbb(0x3ba)]())return;if(_0x438284[_0x408fbb(0x96d)]<=0x0)return;_0x25d665=_0x25d665||{},_0x25d665[_0x408fbb(0xb38)]=_0x25d665['textColor']||_0x408fbb(0xa56),_0x25d665['flashColor']=_0x25d665[_0x408fbb(0x746)]||[0x0,0x0,0x0,0x0],_0x25d665[_0x408fbb(0x6d4)]=_0x25d665[_0x408fbb(0x6d4)]||0x0,this['battler']()[_0x408fbb(0x4d8)](_0x438284,_0x25d665);},Game_Battler['prototype']['setupIconTextPopup']=function(_0x4ea037,_0x4abdd6,_0x41d236){const _0x1d24c5=_0x1cc45e;if(!SceneManager[_0x1d24c5(0x499)]())return;if(BattleManager[_0x1d24c5(0x2fd)]())return;if(!this['battler']())return;if(_0x4abdd6['length']<=0x0)return;_0x41d236=_0x41d236||{},_0x41d236[_0x1d24c5(0xb38)]=_0x41d236['textColor']||_0x1d24c5(0xa56),_0x41d236[_0x1d24c5(0x746)]=_0x41d236[_0x1d24c5(0x746)]||[0x0,0x0,0x0,0x0],_0x41d236[_0x1d24c5(0x6d4)]=_0x41d236[_0x1d24c5(0x6d4)]||0x0,this['battler']()[_0x1d24c5(0x7b3)](_0x4ea037,_0x4abdd6,_0x41d236);},Game_Battler[_0x1cc45e(0xc0b)]['notFocusValid']=function(){const _0x1ca049=_0x1cc45e;if(this['isHidden']())return![];if(this['isAlive']()&&this[_0x1ca049(0x7e3)]())return!![];if(this[_0x1ca049(0x348)]()&&this['hasSvBattler']()){if(this['isDead']()&&this[_0x1ca049(0x1b1)]())return![];}else{if(this[_0x1ca049(0x1ee)]())return![];}return!![];},VisuMZ['BattleCore'][_0x1cc45e(0x446)]=Game_Battler['prototype']['clearMotion'],Game_Battler[_0x1cc45e(0xc0b)]['clearMotion']=function(){const _0x42cedc=_0x1cc45e;VisuMZ[_0x42cedc(0x2c5)][_0x42cedc(0x446)][_0x42cedc(0xa54)](this),this['clearFreezeMotion']();},Game_Battler[_0x1cc45e(0xc0b)][_0x1cc45e(0xb37)]=function(){return!![];},Game_Battler['prototype']['isBattlerGrounded']=function(){return![];},VisuMZ['BattleCore'][_0x1cc45e(0x4b3)]=Game_Battler[_0x1cc45e(0xc0b)][_0x1cc45e(0xa79)],Game_Battler[_0x1cc45e(0xc0b)]['onBattleStart']=function(_0x2ca97b){const _0x442688=_0x1cc45e;VisuMZ[_0x442688(0x2c5)][_0x442688(0x4b3)]['call'](this,_0x2ca97b),this[_0x442688(0x357)](_0x2ca97b),this[_0x442688(0x519)]();},Game_Battler['prototype']['onBattleStartBattleCore']=function(_0x43db37){const _0x32f573=_0x1cc45e;this['setBattlerFlip'](![]),this[_0x32f573(0x5a6)]=undefined,this[_0x32f573(0x913)]=undefined;},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0xc36)]=Game_Battler[_0x1cc45e(0xc0b)]['onBattleEnd'],Game_Battler[_0x1cc45e(0xc0b)][_0x1cc45e(0x69e)]=function(){const _0x54dc2f=_0x1cc45e;VisuMZ[_0x54dc2f(0x2c5)][_0x54dc2f(0xc36)][_0x54dc2f(0xa54)](this),this[_0x54dc2f(0xa85)]();},Game_Battler['prototype']['onBattleEndBattleCore']=function(){const _0x35804f=_0x1cc45e;this[_0x35804f(0x5a6)]=undefined,this[_0x35804f(0x913)]=undefined;},VisuMZ[_0x1cc45e(0x2c5)]['Game_Battler_performActionStart']=Game_Battler[_0x1cc45e(0xc0b)][_0x1cc45e(0xb0a)],Game_Battler[_0x1cc45e(0xc0b)][_0x1cc45e(0xb0a)]=function(_0x207a75){const _0x323ac0=_0x1cc45e;VisuMZ[_0x323ac0(0x2c5)][_0x323ac0(0x966)][_0x323ac0(0xa54)](this,_0x207a75);if(!_0x207a75['isGuard']()){const _0x102880=this[_0x323ac0(0x3ba)]();_0x102880&&_0x102880[_0x323ac0(0x345)]();}this[_0x323ac0(0x697)](![]);},Game_Battler['prototype'][_0x1cc45e(0xad6)]=function(){const _0x152470=_0x1cc45e;this[_0x152470(0x897)]=undefined;const _0x92435b=this['_flinched'];this[_0x152470(0x955)]=![];if(BattleManager[_0x152470(0x718)]()&&this['isInputting']()){const _0x7f42c6=this[_0x152470(0x3ba)]();if(_0x7f42c6&&_0x92435b)_0x7f42c6[_0x152470(0x345)]();return;}const _0x1b3521=this[_0x152470(0x3ba)]();if(_0x1b3521)_0x1b3521[_0x152470(0x670)]();this[_0x152470(0x697)](![]),this[_0x152470(0x762)]();},Game_Battler['prototype']['performActionMotions']=function(_0x5c8d99){const _0x15d1a9=_0x1cc45e;if(_0x5c8d99[_0x15d1a9(0x9b7)]())this['performAttack']();else{if(_0x5c8d99[_0x15d1a9(0x742)]())this[_0x15d1a9(0x9a8)]('guard');else{if(_0x5c8d99[_0x15d1a9(0x4e3)]())this['requestMotion'](_0x15d1a9(0xc47));else{if(_0x5c8d99[_0x15d1a9(0x2b1)]())[0x1,0x2,0x5,0x6][_0x15d1a9(0x9c4)](_0x5c8d99[_0x15d1a9(0x904)]()[_0x15d1a9(0x42e)]['type'])?this[_0x15d1a9(0x455)]():this[_0x15d1a9(0x9a8)](_0x15d1a9(0x95e));else _0x5c8d99[_0x15d1a9(0x610)]()&&this['requestMotion'](_0x15d1a9(0x904));}}}},Game_Battler[_0x1cc45e(0xc0b)][_0x1cc45e(0x759)]=function(){const _0x2f1b7c=_0x1cc45e;return $dataSystem[_0x2f1b7c(0xa42)][0x0];},Game_Battler['prototype'][_0x1cc45e(0xc0d)]=function(){const _0xb657aa=_0x1cc45e,_0x460c05=this['getAttackMotion']();return _0x460c05?_0x460c05[_0xb657aa(0xc26)]:0x0;},Game_Battler['prototype'][_0x1cc45e(0x1ad)]=function(_0x5b8f3d){const _0x237555=_0x1cc45e;if(!$gameSystem[_0x237555(0xbb2)]())return;const _0x3b1b5c=this[_0x237555(0x3ba)](),_0xd35267=_0x5b8f3d['battler']();if(!_0x3b1b5c||!_0xd35267)return;const _0x10b7d6=_0xd35267[_0x237555(0x29f)],_0x248611=_0xd35267['_baseY'];this[_0x237555(0xcdf)](_0x10b7d6,_0x248611,0x0,![],_0x237555(0xbfc),-0x1),_0x3b1b5c['updatePosition']();const _0x168224=VisuMZ[_0x237555(0x2c5)]['Settings'][_0x237555(0xc01)];let _0x9a3962=(_0xd35267[_0x237555(0x885)]+_0x3b1b5c['width'])/0x2;_0x9a3962*=this[_0x237555(0x864)]()?0x1:-0x1;let _0x301f70=_0x168224[_0x237555(0xb55)]*(this['isActor']()?0x1:-0x1);_0x5b8f3d['moveBattlerDistance'](_0x9a3962,_0x301f70,0x0,![],_0x237555(0xbfc)),_0xd35267[_0x237555(0x211)]();},Game_Battler[_0x1cc45e(0xc0b)][_0x1cc45e(0x9a8)]=function(_0x5a96f6){const _0x49d5ab=_0x1cc45e;if(SceneManager['isSceneBattle']()){const _0x4735ca=this['battler']();_0x4735ca&&(_0x4735ca['forceMotion'](_0x5a96f6),[_0x49d5ab(0x5a9),'thrust',_0x49d5ab(0xb33)][_0x49d5ab(0x9c4)](_0x5a96f6)&&this[_0x49d5ab(0xb05)]());}this[_0x49d5ab(0x8d0)]();},Game_Battler['prototype'][_0x1cc45e(0xb05)]=function(){},Game_Battler[_0x1cc45e(0xc0b)][_0x1cc45e(0x56a)]=function(_0x151376){const _0x265081=_0x1cc45e;if(SceneManager[_0x265081(0x499)]()){const _0x4e4418=this['battler']();if(_0x4e4418)_0x4e4418['forceWeaponAnimation'](_0x151376);}},Game_Battler[_0x1cc45e(0xc0b)]['startAttackWeaponAnimation']=function(){const _0xfebc71=_0x1cc45e;if(SceneManager[_0xfebc71(0x499)]()){const _0x1ef5f7=this[_0xfebc71(0xc0d)]();this[_0xfebc71(0x56a)](_0x1ef5f7);}},Game_Battler['prototype'][_0x1cc45e(0x6da)]=function(_0x278cb0,_0x33f449){const _0x43603b=_0x1cc45e;if(!_0x278cb0)return;if(!_0x278cb0['item']())return;if(_0x278cb0[_0x43603b(0x9b7)]())return;if(_0x278cb0[_0x43603b(0x742)]())return;if(_0x278cb0['isItem']())return;if($gameTemp['_playTestFastMode'])return;let _0x1241a3=0x0;const _0x4437d6=VisuMZ[_0x43603b(0x2c5)]['Settings'][_0x43603b(0xc01)],_0x3451c4=_0x278cb0[_0x43603b(0x904)]()[_0x43603b(0xbe6)];if(_0x3451c4[_0x43603b(0xc6a)](/<CAST ANIMATION: (\d+)>/i))_0x1241a3=Number(RegExp['$1']);else{if(_0x3451c4[_0x43603b(0xc6a)](/<NO CAST ANIMATION>/i))return;else{if(_0x278cb0[_0x43603b(0x60d)]())_0x1241a3=_0x4437d6[_0x43603b(0x5ce)];else{if(_0x278cb0[_0x43603b(0xa86)]())_0x1241a3=_0x4437d6['CastPhysical'];else _0x278cb0['isMagical']()&&(_0x1241a3=_0x4437d6['CastMagical']);}}}_0x1241a3>0x0&&$gameTemp[_0x43603b(0xa84)]([this],_0x1241a3,!!_0x33f449);},Game_Battler[_0x1cc45e(0xc0b)][_0x1cc45e(0x3aa)]=function(){const _0x1c0e7f=_0x1cc45e;SoundManager[_0x1c0e7f(0x7fb)]();let _0xd18d7c=VisuMZ[_0x1c0e7f(0x2c5)]['Settings']['ActionSequence'][_0x1c0e7f(0x24f)];_0xd18d7c>0x0&&(Imported[_0x1c0e7f(0x598)]?$gameTemp['requestFauxAnimation']([this],_0xd18d7c):$gameTemp[_0x1c0e7f(0xa84)]([this],_0xd18d7c));},Game_Battler[_0x1cc45e(0xc0b)]['isActiveTpbReady']=function(){const _0x27744a=_0x1cc45e;if(!$gameSystem[_0x27744a(0xbb2)]())return![];if(!BattleManager[_0x27744a(0x718)]())return![];if(!this['isAlive']())return![];if(this[_0x27744a(0x895)]())return!![];if(this[_0x27744a(0x53d)]())return!![];if(this[_0x27744a(0x7f9)]>=0x1)return!![];return![];},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x2fb)]=Game_Battler['prototype'][_0x1cc45e(0x725)],Game_Battler[_0x1cc45e(0xc0b)][_0x1cc45e(0x725)]=function(){const _0x1b9c6d=_0x1cc45e;this['isActiveTpbReady']()&&(this[_0x1b9c6d(0x897)]=!![]),VisuMZ['BattleCore'][_0x1b9c6d(0x2fb)][_0x1b9c6d(0xa54)](this),this[_0x1b9c6d(0x62d)](),this[_0x1b9c6d(0x3bc)]();},VisuMZ[_0x1cc45e(0x2c5)]['Game_Battler_performMiss']=Game_Battler[_0x1cc45e(0xc0b)]['performMiss'],Game_Battler[_0x1cc45e(0xc0b)][_0x1cc45e(0x7b1)]=function(){const _0x3b9b27=_0x1cc45e;this[_0x3b9b27(0xce2)]()&&(this[_0x3b9b27(0x897)]=!![]),VisuMZ['BattleCore'][_0x3b9b27(0x35c)][_0x3b9b27(0xa54)](this),this['performFlinch']();},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x385)]=Game_Battler['prototype'][_0x1cc45e(0xbe7)],Game_Battler[_0x1cc45e(0xc0b)][_0x1cc45e(0xbe7)]=function(){const _0x344d30=_0x1cc45e;this[_0x344d30(0xce2)]()&&(this[_0x344d30(0x897)]=!![]),VisuMZ['BattleCore'][_0x344d30(0x385)][_0x344d30(0xa54)](this),this[_0x344d30(0x62d)]();},Game_Battler['prototype'][_0x1cc45e(0x62d)]=function(){const _0x322877=_0x1cc45e;if(!$gameSystem['isSideView']())return;if(this[_0x322877(0x955)])return;this[_0x322877(0x955)]=!![];const _0x19b3a8=this[_0x322877(0x3ba)]();if(_0x19b3a8)_0x19b3a8['stepFlinch']();},Game_Battler[_0x1cc45e(0xc0b)][_0x1cc45e(0x3bc)]=function(){const _0x10d6a5=_0x1cc45e;if(!this[_0x10d6a5(0xb37)]())return;const _0x40f01f=VisuMZ[_0x10d6a5(0x2c5)]['Settings'][_0x10d6a5(0x3c1)];if(!(_0x40f01f['ShakeFlinch']??![]))return;if(!this[_0x10d6a5(0x4fb)]&&!this[_0x10d6a5(0x3df)]&&!this[_0x10d6a5(0x286)])return;const _0x4ee622=this[_0x10d6a5(0x3ba)]();if(_0x4ee622){let _0x4593fc=0x0;if(this[_0x10d6a5(0x4fb)]>0x0){const _0x1133b5=this[_0x10d6a5(0x4fb)];_0x4593fc=_0x1133b5/(this[_0x10d6a5(0x52d)]||0x1);}else{if(this['_lastMpDamage']>0x0){const _0x295c22=this[_0x10d6a5(0x3df)];_0x4593fc=_0x295c22/(this[_0x10d6a5(0xa61)]||0x1);}else{if(this[_0x10d6a5(0x286)]>0x0){const _0x46eaeb=this[_0x10d6a5(0x286)];_0x4593fc=_0x46eaeb/(this[_0x10d6a5(0x64c)]()||0x1);}}}_0x4593fc=_0x4593fc[_0x10d6a5(0x539)](0.8,0x1);const _0x307a70=_0x40f01f[_0x10d6a5(0x9db)]??0x30,_0x9d0059=_0x4593fc*_0x307a70;_0x4ee622[_0x10d6a5(0x651)](_0x9d0059,_0x4593fc);}},Game_Battler[_0x1cc45e(0xc0b)][_0x1cc45e(0x762)]=function(){const _0x67febe=_0x1cc45e;if(this[_0x67febe(0x1ee)]()&&this['_motionType']!==_0x67febe(0xd0a)){this[_0x67febe(0x9a8)]('dead');return;}if(this[_0x67febe(0x1ee)]()&&this[_0x67febe(0x7af)]===_0x67febe(0xd0a))return;if(!!this[_0x67febe(0x203)])return;if(this['isEnemy']()){if(!this[_0x67febe(0x484)]()&&this!==BattleManager[_0x67febe(0x301)]){if(this[_0x67febe(0x3ba)]())this[_0x67febe(0x3ba)]()[_0x67febe(0xba7)]();}this[_0x67febe(0x8d0)]();return;}if(this[_0x67febe(0x7af)]===_0x67febe(0x4ae))return;if(this[_0x67febe(0x7af)]==='escape'&&!BattleManager['isInputting']())return;if(this[_0x67febe(0x7af)]===_0x67febe(0x3ef)&&!BattleManager[_0x67febe(0x895)]())return;this[_0x67febe(0x1aa)]();if(BattleManager['isActiveTpb']()&&this===BattleManager[_0x67febe(0x301)])return;if(this['battler']()&&BattleManager[_0x67febe(0x895)]()){this[_0x67febe(0x3ba)]()[_0x67febe(0xba7)](),this[_0x67febe(0x8d0)]();return;}},Game_Enemy['prototype'][_0x1cc45e(0x484)]=function(){const _0xf8b0d7=_0x1cc45e;if(!this['hasSvBattler']())return![];const _0x207168=this[_0xf8b0d7(0x3ba)]();if(!_0x207168)return![];const _0x1a8eec=_0x207168[_0xf8b0d7(0x92b)];if(!_0x1a8eec)return![];const _0x15abb7=_0x1a8eec['_motion'];return _0x15abb7&&!_0x15abb7[_0xf8b0d7(0x71f)];},Game_Battler['prototype'][_0x1cc45e(0x90b)]=function(){const _0x1c2a2c=_0x1cc45e;return this[_0x1c2a2c(0x925)];},Game_Battler['prototype'][_0x1cc45e(0x697)]=function(_0x502712){const _0x13952a=_0x1cc45e;if(!$gameSystem[_0x13952a(0xbb2)]())return;this[_0x13952a(0x925)]=_0x502712;const _0xb8477d=this[_0x13952a(0x3ba)]();if(_0xb8477d)_0xb8477d[_0x13952a(0x409)]();},Game_Battler['prototype'][_0x1cc45e(0x696)]=function(_0xa106b4,_0x1d6310,_0x59e535){const _0x4cf79a=_0x1cc45e;if(!$gameSystem[_0x4cf79a(0xbb2)]())return;const _0x2f6171=this[_0x4cf79a(0x3ba)]();if(!_0x2f6171)return;if(_0xa106b4===_0x2f6171['_baseX'])return;let _0x347a1b=![];if(this[_0x4cf79a(0x864)]()){if(_0xa106b4>_0x2f6171[_0x4cf79a(0x29f)])_0x347a1b=!![];if(_0xa106b4<_0x2f6171[_0x4cf79a(0x29f)])_0x347a1b=![];}else{if(this[_0x4cf79a(0x348)]()){if(_0xa106b4>_0x2f6171[_0x4cf79a(0x29f)])_0x347a1b=![];if(_0xa106b4<_0x2f6171[_0x4cf79a(0x29f)])_0x347a1b=!![];}};this[_0x4cf79a(0x697)](_0x59e535?!_0x347a1b:_0x347a1b),_0x2f6171['updateFlip']();},Game_Battler[_0x1cc45e(0xc0b)][_0x1cc45e(0x39e)]=function(_0x934da0,_0x19c878,_0x14a273,_0x4b47be,_0x197fa5){const _0x3d9113=_0x1cc45e;if(!$gameSystem['isSideView']())return;const _0xb30fda=this[_0x3d9113(0x3ba)]();if(!_0xb30fda)return;if(_0x4b47be)this['setBattlerFacePoint'](_0x934da0+_0xb30fda[_0x3d9113(0x29f)],_0x19c878+_0xb30fda[_0x3d9113(0xb2d)],![]);_0x934da0+=_0xb30fda[_0x3d9113(0x29f)]-_0xb30fda[_0x3d9113(0x26e)],_0x19c878+=_0xb30fda[_0x3d9113(0xb2d)]-_0xb30fda[_0x3d9113(0x45b)],_0xb30fda['startMove'](_0x934da0,_0x19c878,_0x14a273);if(Imported[_0x3d9113(0x598)])_0xb30fda[_0x3d9113(0x5f4)](_0x197fa5||_0x3d9113(0xbfc));},Game_Battler['prototype']['moveBattlerToPoint']=function(_0x4d0dc6,_0x36afa5,_0x1b00b5,_0x2bc559,_0x19351b,_0x53368f){const _0x467fca=_0x1cc45e;if(!$gameSystem[_0x467fca(0xbb2)]())return;const _0x325a36=this[_0x467fca(0x3ba)]();if(!_0x325a36)return;if(_0x4d0dc6===Infinity||_0x36afa5===Infinity)return;if(isNaN(_0x4d0dc6)||isNaN(_0x36afa5))return;_0x53368f=_0x53368f||0x0;if(_0x53368f>0x0){if(_0x325a36[_0x467fca(0x29f)]>_0x4d0dc6)_0x4d0dc6+=_0x325a36[_0x467fca(0x885)]/0x2+_0x53368f;if(_0x325a36['_baseX']<_0x4d0dc6)_0x4d0dc6-=_0x325a36[_0x467fca(0x885)]/0x2+_0x53368f;}if(_0x2bc559)this['setBattlerFacePoint'](_0x4d0dc6,_0x36afa5,![]);_0x4d0dc6-=_0x325a36['_homeX'],_0x36afa5-=_0x325a36[_0x467fca(0x45b)],_0x325a36['startMove'](_0x4d0dc6,_0x36afa5,_0x1b00b5);if(Imported[_0x467fca(0x598)])_0x325a36[_0x467fca(0x5f4)](_0x19351b||_0x467fca(0xbfc));},Game_Battler[_0x1cc45e(0xc0b)]['moveBattlerHomeDistance']=function(_0x21fa40,_0x2cd713,_0x379861,_0x5f26c3,_0x38045d){const _0x4b48f1=_0x1cc45e;if(!$gameSystem['isSideView']())return;const _0x3fe5ac=this[_0x4b48f1(0x3ba)]();if(!_0x3fe5ac)return;if(_0x5f26c3)this[_0x4b48f1(0x696)](_0x21fa40+_0x3fe5ac[_0x4b48f1(0x29f)],_0x2cd713+_0x3fe5ac[_0x4b48f1(0xb2d)],![]);_0x21fa40+=_0x3fe5ac[_0x4b48f1(0x26e)],_0x2cd713+=_0x3fe5ac[_0x4b48f1(0x45b)],_0x3fe5ac['startHomeMove'](_0x21fa40,_0x2cd713,_0x379861,_0x38045d),this['_forcedHomeX']=_0x21fa40,this[_0x4b48f1(0x913)]=_0x2cd713;},Game_Battler['prototype'][_0x1cc45e(0x271)]=function(_0x1c56ba,_0x2d1301,_0x2d422e,_0x57169a,_0xe085d2,_0x1db614){const _0x27231a=_0x1cc45e;if(!$gameSystem['isSideView']())return;const _0x29416e=this[_0x27231a(0x3ba)]();if(!_0x29416e)return;_0x1db614=_0x1db614||0x0;if(_0x1db614>0x0){if(_0x29416e[_0x27231a(0x29f)]>_0x1c56ba)_0x1c56ba+=_0x29416e['width']/0x2+_0x1db614;if(_0x29416e[_0x27231a(0x29f)]<_0x1c56ba)_0x1c56ba-=_0x29416e[_0x27231a(0x885)]/0x2+_0x1db614;}if(_0x57169a)this[_0x27231a(0x696)](_0x1c56ba,_0x2d1301,![]);_0x29416e['startHomeMove'](_0x1c56ba,_0x2d1301,_0x2d422e,_0xe085d2),this[_0x27231a(0x5a6)]=_0x1c56ba,this[_0x27231a(0x913)]=_0x2d1301;},Game_Battler['prototype'][_0x1cc45e(0x792)]=function(_0x548620,_0x539431,_0x209a0b){const _0x17080d=_0x1cc45e;if(!$gameSystem['isSideView']())return;const _0x3ddd62=this[_0x17080d(0x3ba)]();if(!_0x3ddd62)return;_0x3ddd62['startFloat'](_0x548620,_0x539431,_0x209a0b);},Game_Battler[_0x1cc45e(0xc0b)][_0x1cc45e(0x40c)]=function(_0x5ab996,_0x3aeeb8){const _0x42f07a=_0x1cc45e;if(!$gameSystem[_0x42f07a(0xbb2)]())return;const _0x48c41c=this[_0x42f07a(0x3ba)]();if(!_0x48c41c)return;_0x48c41c[_0x42f07a(0xa09)](_0x5ab996,_0x3aeeb8);},Game_Battler['prototype'][_0x1cc45e(0xaa2)]=function(_0x5a38d8,_0x370ed2,_0x123e9c,_0x24f895){const _0x56c215=_0x1cc45e;if(!$gameSystem[_0x56c215(0xbb2)]())return;const _0x58eb50=this[_0x56c215(0x3ba)]();if(!_0x58eb50)return;_0x58eb50[_0x56c215(0x6b0)](_0x5a38d8,_0x370ed2,_0x123e9c,_0x24f895);},Game_Battler[_0x1cc45e(0xc0b)][_0x1cc45e(0x392)]=function(_0x2f81ea,_0x3b692d,_0x14d4b5,_0x378502){const _0x590059=_0x1cc45e;if(!$gameSystem[_0x590059(0xbb2)]())return;const _0x5cda63=this['battler']();if(!_0x5cda63)return;this[_0x590059(0x864)]()&&(_0x2f81ea*=-0x1,_0x3b692d*=-0x1),_0x5cda63['startSkew'](_0x2f81ea,_0x3b692d,_0x14d4b5,_0x378502);},Game_Battler[_0x1cc45e(0xc0b)][_0x1cc45e(0xad1)]=function(_0x54d2b8,_0x3b49b9,_0x5e050a,_0x1ce94b){const _0x147af7=_0x1cc45e;if(!$gameSystem['isSideView']())return;const _0x3d0779=this[_0x147af7(0x3ba)]();if(!_0x3d0779)return;_0x3d0779[_0x147af7(0x541)](_0x54d2b8,_0x3b49b9,_0x5e050a,_0x1ce94b);},Game_Battler['prototype'][_0x1cc45e(0x92c)]=function(_0x1bb771,_0x5587ca,_0xa83a5a){const _0x47dae5=_0x1cc45e;if(!$gameSystem[_0x47dae5(0xbb2)]())return;const _0x193cec=this['battler']();if(!_0x193cec)return;_0x193cec[_0x47dae5(0x66b)](_0x1bb771,_0x5587ca,_0xa83a5a);},Game_Battler[_0x1cc45e(0xc0b)]['clearFreezeMotion']=function(){const _0x132467=_0x1cc45e,_0x382839=!!this[_0x132467(0x203)];this[_0x132467(0x203)]=undefined,_0x382839&&(this[_0x132467(0x762)](),this[_0x132467(0x8f4)]());},Game_Battler[_0x1cc45e(0xc0b)][_0x1cc45e(0x8f4)]=function(){const _0x1139a3=_0x1cc45e;if(!SceneManager[_0x1139a3(0x499)]())return;const _0x16764f=this[_0x1139a3(0x3ba)]();if(!_0x16764f)return;let _0x250e4a=this[_0x1139a3(0x864)]()?_0x16764f[_0x1139a3(0x248)]:_0x16764f[_0x1139a3(0x92b)]['_weaponSprite'];_0x250e4a&&_0x250e4a[_0x1139a3(0x620)](0x0);},Game_Battler[_0x1cc45e(0xc0b)][_0x1cc45e(0x805)]=function(_0x2c99ac,_0x14f733,_0xc0181){const _0x2488e2=_0x1cc45e;if(this[_0x2488e2(0x348)]()&&!this[_0x2488e2(0x842)]())return;let _0x33e419=0x0,_0x417847=0x0;_0x2c99ac[_0x2488e2(0xc6a)](/ATTACK[ ](\d+)/i)&&(_0x417847=Number(RegExp['$1']),_0x417847--);if(this['isActor']()){const _0x406fb1=this['weapons']();_0x33e419=_0x406fb1[_0x417847]?_0x406fb1[_0x417847][_0x2488e2(0x2a0)]:0x0;}else this[_0x2488e2(0x348)]()&&(_0x33e419=this['svBattlerData']()[_0x2488e2(0x2a0)]||0x0);const _0x412638=$dataSystem[_0x2488e2(0xa42)][_0x33e419];_0x2c99ac[_0x2488e2(0xc6a)](/attack/i)&&(_0x2c99ac=[_0x2488e2(0x30f),'swing','missile'][_0x412638[_0x2488e2(0x729)]]||_0x2488e2(0x5a9)),this['_freezeMotionData']={'motionType':_0x2c99ac,'weaponImageId':_0x14f733?_0x412638[_0x2488e2(0xc26)]:0x0,'pattern':_0xc0181};},Game_Battler['prototype'][_0x1cc45e(0xa4c)]=function(_0x7ea4e0){const _0x315286=_0x1cc45e;if(!_0x7ea4e0)return![];return _0x7ea4e0[_0x315286(0x917)]()===this[_0x315286(0x917)]();},Game_Battler['prototype'][_0x1cc45e(0xc1f)]=function(_0x557530){const _0x5cbc1d=_0x1cc45e;if(!_0x557530)return![];return _0x557530['opponentsUnit']()===this[_0x5cbc1d(0x917)]();},Game_Battler['prototype'][_0x1cc45e(0x4e5)]=function(){return![];},Game_Actor[_0x1cc45e(0xc0b)][_0x1cc45e(0x4e5)]=function(){return this['battlerName']()['match'](/\$/i);},Game_Enemy['prototype'][_0x1cc45e(0x4e5)]=function(){const _0x220522=_0x1cc45e;return this[_0x220522(0x842)]()&&this['svBattlerName']()[_0x220522(0xc6a)](/\$/i);},VisuMZ[_0x1cc45e(0x2c5)]['Game_Actor_setup']=Game_Actor['prototype'][_0x1cc45e(0x620)],Game_Actor[_0x1cc45e(0xc0b)][_0x1cc45e(0x620)]=function(_0x1decf2){const _0x415e03=_0x1cc45e;VisuMZ['BattleCore']['Game_Actor_setup'][_0x415e03(0xa54)](this,_0x1decf2),this[_0x415e03(0xc32)]();},Game_Actor[_0x1cc45e(0xc0b)][_0x1cc45e(0xc32)]=function(){const _0x5b747e=_0x1cc45e;this[_0x5b747e(0xd06)]='',this[_0x5b747e(0x72d)]()&&this[_0x5b747e(0x72d)]()[_0x5b747e(0xbe6)][_0x5b747e(0xc6a)](/<BATTLE (?:IMAGE|PORTRAIT):[ ](.*)>/i)&&(this[_0x5b747e(0xd06)]=String(RegExp['$1']));},Game_Actor[_0x1cc45e(0xc0b)][_0x1cc45e(0x325)]=function(){const _0x2b2370=_0x1cc45e;if(this[_0x2b2370(0x315)]()!=='')return this[_0x2b2370(0x315)]();else{if(Imported['VisuMZ_1_MainMenuCore']&&this[_0x2b2370(0xa3a)]()!=='')return this[_0x2b2370(0xa3a)]();}return'';},Game_Actor['prototype'][_0x1cc45e(0x315)]=function(){const _0x230436=_0x1cc45e;if(this[_0x230436(0xd06)]===undefined)this[_0x230436(0xc32)]();return this[_0x230436(0xd06)];},Game_Actor[_0x1cc45e(0xc0b)][_0x1cc45e(0x288)]=function(_0x35358f){const _0x244f9a=_0x1cc45e;if(this[_0x244f9a(0xd06)]===undefined)this['initBattlePortrait']();this[_0x244f9a(0xd06)]=_0x35358f;if(SceneManager['isSceneBattle']()&&$gameParty['battleMembers']()['includes'](this)){const _0x4ae070=SceneManager[_0x244f9a(0x659)][_0x244f9a(0x5b3)];_0x4ae070&&_0x4ae070[_0x244f9a(0x9d3)](this);}},Game_Actor[_0x1cc45e(0xc0b)][_0x1cc45e(0x24d)]=function(){return!![];},Game_Actor[_0x1cc45e(0xc0b)]['isAutoBattle']=function(){const _0x16a2cc=_0x1cc45e;if(!this[_0x16a2cc(0x4f3)]()&&BattleManager[_0x16a2cc(0x6a6)])return!![];return Game_Battler['prototype'][_0x16a2cc(0x9f2)][_0x16a2cc(0xa54)](this);},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x6a2)]=Game_Actor[_0x1cc45e(0xc0b)][_0x1cc45e(0x5bf)],Game_Actor[_0x1cc45e(0xc0b)][_0x1cc45e(0x5bf)]=function(){const _0x3ced71=_0x1cc45e;if(BattleManager['_autoBattle']&&!ConfigManager[_0x3ced71(0x4d1)])return this[_0x3ced71(0x38a)]();else{return VisuMZ[_0x3ced71(0x2c5)][_0x3ced71(0x6a2)][_0x3ced71(0xa54)](this);;}},Game_Actor[_0x1cc45e(0xc0b)]['makeActionListAutoAttack']=function(){const _0x5a4582=_0x1cc45e,_0x446166=[],_0x10cb6b=new Game_Action(this);return _0x10cb6b[_0x5a4582(0x244)](),_0x446166[_0x5a4582(0xca6)](_0x10cb6b),_0x446166;},Game_Actor[_0x1cc45e(0xc0b)]['battleCommands']=function(){const _0x555c5f=_0x1cc45e;return this[_0x555c5f(0xa67)]()[_0x555c5f(0xbe6)][_0x555c5f(0xc6a)](/<BATTLE COMMANDS>\s*([\s\S]*)\s*<\/BATTLE COMMANDS>/i)?String(RegExp['$1'])[_0x555c5f(0x368)](/[\r\n]+/):VisuMZ[_0x555c5f(0x2c5)][_0x555c5f(0x5fb)][_0x555c5f(0x7c3)][_0x555c5f(0x51d)];},Game_Actor[_0x1cc45e(0xc0b)][_0x1cc45e(0xa6e)]=function(){const _0x271e1f=_0x1cc45e;if(this['_cache'][_0x271e1f(0x424)]!==undefined)return this['_cache']['svAnchorX'];return this[_0x271e1f(0x72d)]()[_0x271e1f(0xbe6)]['match'](/<SIDEVIEW ANCHOR: (.*), (.*)>/i)?(this[_0x271e1f(0x595)][_0x271e1f(0x424)]=eval(RegExp['$1']),this[_0x271e1f(0x595)]['svAnchorY']=eval(RegExp['$2'])):this[_0x271e1f(0x595)]['svAnchorX']=Game_Battler['prototype'][_0x271e1f(0xa6e)][_0x271e1f(0xa54)](this),this['_cache'][_0x271e1f(0x424)];},Game_Actor['prototype'][_0x1cc45e(0x50e)]=function(){const _0x205702=_0x1cc45e;if(this[_0x205702(0x595)][_0x205702(0x209)]!==undefined)return this[_0x205702(0x595)][_0x205702(0x209)];return this[_0x205702(0x72d)]()[_0x205702(0xbe6)]['match'](/<SIDEVIEW ANCHOR: (.*), (.*)>/i)?(this['_cache'][_0x205702(0x424)]=eval(RegExp['$1']),this[_0x205702(0x595)][_0x205702(0x209)]=eval(RegExp['$2'])):this[_0x205702(0x595)][_0x205702(0x209)]=Game_Battler['prototype'][_0x205702(0x50e)]['call'](this),this[_0x205702(0x595)][_0x205702(0x209)];},Game_Actor[_0x1cc45e(0xc0b)][_0x1cc45e(0x64b)]=function(){const _0x45cd72=_0x1cc45e;if(this[_0x45cd72(0x595)][_0x45cd72(0xaf2)]!==undefined)return this['_cache']['svShadow'];if(this['actor']()[_0x45cd72(0xbe6)][_0x45cd72(0xc6a)](/<SIDEVIEW SHOW SHADOW>/i))this[_0x45cd72(0x595)]['svShadow']=!![];else this['actor']()['note'][_0x45cd72(0xc6a)](/<SIDEVIEW HIDE SHADOW>/i)?this[_0x45cd72(0x595)]['svShadow']=![]:this[_0x45cd72(0x595)][_0x45cd72(0xaf2)]=Game_Battler[_0x45cd72(0xc0b)]['svBattlerShadowVisible'][_0x45cd72(0xa54)](this);return this['_cache'][_0x45cd72(0xaf2)];},Game_Actor[_0x1cc45e(0xc0b)][_0x1cc45e(0x46f)]=function(){const _0x305500=_0x1cc45e;return VisuMZ[_0x305500(0x2c5)][_0x305500(0x5fb)][_0x305500(0x3c1)][_0x305500(0x7a9)];},Game_Actor['prototype'][_0x1cc45e(0xb05)]=function(){const _0x570cdd=_0x1cc45e,_0x1d63df=this['weapons'](),_0x4de79e=_0x1d63df[0x0]?_0x1d63df[0x0][_0x570cdd(0x2a0)]:0x0,_0x4450f6=$dataSystem[_0x570cdd(0xa42)][_0x4de79e];_0x4450f6&&this['startWeaponAnimation'](_0x4450f6[_0x570cdd(0xc26)]);},Game_Actor['prototype'][_0x1cc45e(0x59b)]=function(_0x5f94c0){const _0x3a9bac=_0x1cc45e;Game_Battler[_0x3a9bac(0xc0b)]['performAction'][_0x3a9bac(0xa54)](this,_0x5f94c0),this[_0x3a9bac(0xa68)](_0x5f94c0);},Game_Actor['prototype']['getAttackMotion']=function(){const _0x2b2142=_0x1cc45e,_0x538fe0=this[_0x2b2142(0xa8c)](),_0x39f44a=_0x538fe0[0x0]?_0x538fe0[0x0][_0x2b2142(0x2a0)]:0x0;return $dataSystem[_0x2b2142(0xa42)][_0x39f44a];},Game_Actor[_0x1cc45e(0xc0b)][_0x1cc45e(0x56c)]=function(_0x399e2f){const _0x5544f1=_0x1cc45e;_0x399e2f=_0x399e2f||0x1,_0x399e2f--;const _0x38864c=this['weapons']();return _0x38864c[_0x399e2f]?_0x38864c[_0x399e2f][_0x5544f1(0x1c8)]:0x0;},Game_Actor[_0x1cc45e(0xc0b)][_0x1cc45e(0x778)]=function(_0x2bf21d){const _0x172b64=_0x1cc45e;_0x2bf21d=_0x2bf21d||0x1,_0x2bf21d--;const _0x333c60=this[_0x172b64(0xa8c)](),_0x56ddbd=_0x333c60[_0x2bf21d]?_0x333c60[_0x2bf21d][_0x172b64(0x2a0)]:0x0;return $dataSystem['attackMotions'][_0x56ddbd];},Game_Actor['prototype']['performAttackSlot']=function(_0x537769){const _0x4ac07f=_0x1cc45e;_0x537769=_0x537769||0x1,_0x537769--;const _0x3818fb=this[_0x4ac07f(0xa8c)](),_0x3e571d=_0x3818fb[_0x537769]?_0x3818fb[_0x537769][_0x4ac07f(0x2a0)]:0x0,_0x43ff47=$dataSystem[_0x4ac07f(0xa42)][_0x3e571d];if(_0x43ff47){if(_0x43ff47[_0x4ac07f(0x729)]===0x0)this[_0x4ac07f(0x9a8)]('thrust');else{if(_0x43ff47[_0x4ac07f(0x729)]===0x1)this['requestMotion'](_0x4ac07f(0x5a9));else _0x43ff47[_0x4ac07f(0x729)]===0x2&&this['requestMotion'](_0x4ac07f(0xb33));}this[_0x4ac07f(0x56a)](_0x43ff47[_0x4ac07f(0xc26)]);}},Game_Battler['prototype'][_0x1cc45e(0x667)]=function(_0x4354f1){const _0x539c4f=_0x1cc45e;if(this[_0x539c4f(0x864)]()){const _0x22b85d=this['weapons']();if(_0x22b85d[_0x539c4f(0x96d)]>0x0){const _0x459312=_0x22b85d[_0x4354f1];if(_0x459312)_0x4354f1=this['equips']()['indexOf'](_0x459312);}}this[_0x539c4f(0xa9b)]=_0x4354f1||0x0,this['_cache']={};},Game_Battler['prototype'][_0x1cc45e(0x711)]=function(){const _0x4757eb=_0x1cc45e;this[_0x4757eb(0xa9b)]=this[_0x4757eb(0xa9b)]||0x0,this[_0x4757eb(0xa9b)]++,this[_0x4757eb(0x595)]={};},Game_Battler[_0x1cc45e(0xc0b)]['clearActiveWeaponSlot']=function(){const _0x4d80b4=_0x1cc45e;this[_0x4d80b4(0xa9b)]=undefined,this[_0x4d80b4(0x595)]={};},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x7c9)]=Game_Actor['prototype'][_0x1cc45e(0xcda)],Game_Actor[_0x1cc45e(0xc0b)][_0x1cc45e(0xcda)]=function(){const _0x175935=_0x1cc45e;let _0x1643dc=VisuMZ[_0x175935(0x2c5)][_0x175935(0x7c9)]['call'](this);if(this[_0x175935(0x774)])return _0x1643dc;if(this[_0x175935(0xa9b)]!==undefined){this['_tempEquipCheck']=!![];const _0x503f16=this[_0x175935(0xb1f)]();for(let _0x360d3a=0x0;_0x360d3a<_0x503f16[_0x175935(0x96d)];_0x360d3a++){_0x503f16[_0x360d3a]===0x1&&this[_0x175935(0xa9b)]!==_0x360d3a&&(_0x1643dc[_0x360d3a]=null);}this['_tempEquipCheck']=undefined;}return _0x1643dc;},VisuMZ['BattleCore'][_0x1cc45e(0x4a3)]=Game_BattlerBase[_0x1cc45e(0xc0b)][_0x1cc45e(0xd07)],Game_BattlerBase[_0x1cc45e(0xc0b)]['param']=function(_0x13e8f0){const _0x3faf70=_0x1cc45e;this[_0x3faf70(0xa9b)]!==undefined&&[0x0,0x1][_0x3faf70(0x9c4)](_0x13e8f0)&&(this[_0x3faf70(0x774)]=!![]);const _0x5b7ffb=VisuMZ[_0x3faf70(0x2c5)]['Game_BattlerBase_param'][_0x3faf70(0xa54)](this,_0x13e8f0);return this[_0x3faf70(0xa9b)]!==undefined&&[0x0,0x1][_0x3faf70(0x9c4)](_0x13e8f0)&&(this[_0x3faf70(0x774)]=![]),_0x5b7ffb;},Window_BattleLog[_0x1cc45e(0xc0b)][_0x1cc45e(0xcf5)]=function(_0x14c308){const _0x551785=_0x1cc45e;return _0x14c308['isActor']()?_0x14c308[_0x551785(0xa8c)]()[_0x551785(0x96d)]||0x1:0x1;},Window_BattleLog[_0x1cc45e(0xc0b)]['setActiveWeaponSet']=function(_0x57fdb7,_0x521651){const _0x72865d=_0x1cc45e;_0x57fdb7&&_0x57fdb7[_0x72865d(0x864)]()&&_0x57fdb7[_0x72865d(0x667)](_0x521651),this[_0x72865d(0x71e)]();},Window_BattleLog[_0x1cc45e(0xc0b)][_0x1cc45e(0x8fb)]=function(_0x13d6c0){const _0x464af8=_0x1cc45e;_0x13d6c0&&_0x13d6c0['isActor']()&&_0x13d6c0[_0x464af8(0xb04)](),this[_0x464af8(0x71e)]();},Game_Actor[_0x1cc45e(0xc0b)][_0x1cc45e(0x588)]=function(){const _0x282f3c=_0x1cc45e;let _0x3d0cff=_0x282f3c(0x588);if(this[_0x282f3c(0x49f)](_0x3d0cff))return this[_0x282f3c(0x595)][_0x3d0cff];return this[_0x282f3c(0x595)][_0x3d0cff]=this[_0x282f3c(0x3fe)](this['actor']()),this[_0x282f3c(0x595)][_0x3d0cff];},Game_Actor[_0x1cc45e(0xc0b)]['battleUIOffsetY']=function(){const _0x16a6c3=_0x1cc45e;let _0x5398e7='battleUIOffsetY';if(this[_0x16a6c3(0x49f)](_0x5398e7))return this[_0x16a6c3(0x595)][_0x5398e7];return this[_0x16a6c3(0x595)][_0x5398e7]=this[_0x16a6c3(0x9ef)](this[_0x16a6c3(0x72d)]()),this[_0x16a6c3(0x595)][_0x5398e7];},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x389)]=Game_Enemy[_0x1cc45e(0xc0b)][_0x1cc45e(0x620)],Game_Enemy[_0x1cc45e(0xc0b)][_0x1cc45e(0x620)]=function(_0x5b06dc,_0x53e10d,_0x3f7aa6){const _0x2281f0=_0x1cc45e;_0x5b06dc=DataManager[_0x2281f0(0xbf9)](_0x5b06dc),VisuMZ[_0x2281f0(0x2c5)][_0x2281f0(0x389)]['call'](this,_0x5b06dc,_0x53e10d,_0x3f7aa6),Imported[_0x2281f0(0x730)]&&this['initElementStatusCore'](),this[_0x2281f0(0x223)](),this[_0x2281f0(0x735)](),this[_0x2281f0(0x982)](),Imported['VisuMZ_1_ElementStatusCore']&&this['recoverAll']();},Game_Enemy[_0x1cc45e(0xc0b)][_0x1cc45e(0x223)]=function(){const _0xbed4e5=_0x1cc45e,_0x2e7652=VisuMZ[_0xbed4e5(0x2c5)]['Settings'][_0xbed4e5(0x1a9)];this[_0xbed4e5(0x7e6)]=_0x2e7652['AttackAnimation'],this[_0xbed4e5(0x473)]={},this[_0xbed4e5(0x73f)]();},Game_Enemy[_0x1cc45e(0xc0b)][_0x1cc45e(0x735)]=function(){const _0x285e48=_0x1cc45e,_0xa041d0=VisuMZ[_0x285e48(0x2c5)][_0x285e48(0x5fb)]['Enemy'],_0x1cedb7=this['enemy']()[_0x285e48(0xbe6)];this[_0x285e48(0x473)]={'name':'','wtypeId':_0xa041d0['WtypeId'],'collapse':_0xa041d0[_0x285e48(0x773)],'motionIdle':_0xa041d0[_0x285e48(0x72b)],'width':_0xa041d0[_0x285e48(0x930)]||0x40,'height':_0xa041d0['Height']||0x40,'anchorX':_0xa041d0[_0x285e48(0x1e1)]||0x0,'anchorY':_0xa041d0['AnchorY']||0x0,'shadow':_0xa041d0['Shadow']};_0x1cedb7['match'](/<ATTACK ANIMATION:[ ](\d+)>/i)&&(this['_attackAnimationId']=Number(RegExp['$1']));const _0x5572d8=this[_0x285e48(0x473)];if(_0x1cedb7[_0x285e48(0xc6a)](/<SIDEVIEW BATTLER: (.*)>/i))_0x5572d8[_0x285e48(0xc4e)]=String(RegExp['$1']);else{if(_0x1cedb7[_0x285e48(0xc6a)](/<SIDEVIEW BATTLERS>\s*([\s\S]*)\s*<\/SIDEVIEW BATTLERS>/i)){const _0x37c397=String(RegExp['$1'])[_0x285e48(0x368)](/[\r\n]+/)['remove']('');_0x5572d8[_0x285e48(0xc4e)]=DataManager[_0x285e48(0x217)](_0x37c397);}}_0x1cedb7[_0x285e48(0xc6a)](/<SIDEVIEW ANCHOR: (.*), (.*)>/i)&&(_0x5572d8[_0x285e48(0x9e3)]=eval(RegExp['$1']),_0x5572d8[_0x285e48(0x690)]=eval(RegExp['$2']));if(_0x1cedb7[_0x285e48(0xc6a)](/<SIDEVIEW COLLAPSE>/i))_0x5572d8[_0x285e48(0x4c9)]=!![];else _0x1cedb7[_0x285e48(0xc6a)](/<SIDEVIEW NO COLLAPSE>/i)&&(_0x5572d8['collapse']=![]);if(_0x1cedb7['match'](/<SIDEVIEW SHOW SHADOW>/i))_0x5572d8[_0x285e48(0xa52)]=!![];else _0x1cedb7[_0x285e48(0xc6a)](/<SIDEVIEW HIDE SHADOW>/i)&&(_0x5572d8[_0x285e48(0xa52)]=![]);if(_0x1cedb7[_0x285e48(0xc6a)](/<SIDEVIEW IDLE MOTION: (.*)>/i))_0x5572d8[_0x285e48(0x82d)]=String(RegExp['$1'])['toLowerCase']()[_0x285e48(0xc8e)]();else{if(_0x1cedb7['match'](/<SIDEVIEW IDLE MOTIONS>\s*([\s\S]*)\s*<\/SIDEVIEW IDLE MOTIONS>/i)){const _0x293aa4=String(RegExp['$1'])[_0x285e48(0x368)](/[\r\n]+/)[_0x285e48(0x280)]('');_0x5572d8[_0x285e48(0x82d)]=DataManager[_0x285e48(0x217)](_0x293aa4);}}_0x1cedb7[_0x285e48(0xc6a)](/<SIDEVIEW SIZE: (\d+), (\d+)>/i)&&(_0x5572d8[_0x285e48(0x885)]=Number(RegExp['$1']),_0x5572d8['height']=Number(RegExp['$2']));if(_0x1cedb7['match'](/<SIDEVIEW WEAPON: (.*)>/i))_0x5572d8[_0x285e48(0x2a0)]=DataManager[_0x285e48(0x924)](RegExp['$1']);else{if(_0x1cedb7[_0x285e48(0xc6a)](/<SIDEVIEW WEAPONS>\s*([\s\S]*)\s*<\/SIDEVIEW WEAPONS>/i)){const _0x44aae8=String(RegExp['$1'])['split'](/[\r\n]+/)['remove'](''),_0x1c9ced=DataManager[_0x285e48(0x217)](_0x44aae8);_0x5572d8[_0x285e48(0x2a0)]=DataManager[_0x285e48(0x924)](_0x1c9ced);}}if(Imported['VisuMZ_1_ElementStatusCore']){const _0x17c326=this[_0x285e48(0x32d)]();for(const _0x3b202d of _0x17c326){const _0x5209d2=this[_0x285e48(0xb7e)](_0x3b202d)[_0x285e48(0x61f)][_0x285e48(0x2b6)]()[_0x285e48(0xc8e)](),_0x145278=_0x3b202d[_0x285e48(0x2b6)]()['trim']();if(_0x1cedb7[_0x285e48(0xc6a)](VisuMZ[_0x285e48(0x1ea)][_0x285e48(0x84f)][_0x285e48(0xce8)[_0x285e48(0x65c)](_0x145278,_0x5209d2)]))_0x5572d8[_0x285e48(0xc4e)]=String(RegExp['$1']);else{if(_0x1cedb7[_0x285e48(0xc6a)](VisuMZ[_0x285e48(0x1ea)][_0x285e48(0x84f)]['SvBattlerMass-%1-%2'[_0x285e48(0x65c)](_0x145278,_0x5209d2)])){const _0x279098=String(RegExp['$1'])['split'](/[\r\n]+/)[_0x285e48(0x280)]('');_0x5572d8[_0x285e48(0xc4e)]=DataManager[_0x285e48(0x217)](_0x279098);}}if(_0x1cedb7[_0x285e48(0xc6a)](VisuMZ[_0x285e48(0x1ea)][_0x285e48(0x84f)][_0x285e48(0x3c2)[_0x285e48(0x65c)](_0x145278,_0x5209d2)]))_0x5572d8[_0x285e48(0x2a0)]=DataManager[_0x285e48(0x924)](RegExp['$1']);else{if(_0x1cedb7[_0x285e48(0xc6a)](VisuMZ[_0x285e48(0x1ea)]['RegExp'][_0x285e48(0x51e)['format'](_0x145278,_0x5209d2)])){const _0x160f41=String(RegExp['$1'])[_0x285e48(0x368)](/[\r\n]+/)['remove'](''),_0x16d728=DataManager[_0x285e48(0x217)](_0x160f41);_0x5572d8[_0x285e48(0x2a0)]=DataManager[_0x285e48(0x924)](_0x16d728);}}if(_0x1cedb7['match'](VisuMZ['ElementStatusCore'][_0x285e48(0x84f)][_0x285e48(0x9ff)[_0x285e48(0x65c)](_0x145278,_0x5209d2)]))_0x5572d8[_0x285e48(0x82d)]=String(RegExp['$1'])[_0x285e48(0xbb5)]()[_0x285e48(0xc8e)]();else{if(_0x1cedb7[_0x285e48(0xc6a)](VisuMZ[_0x285e48(0x1ea)][_0x285e48(0x84f)][_0x285e48(0x9fe)['format'](_0x145278,_0x5209d2)])){const _0x365356=String(RegExp['$1'])[_0x285e48(0x368)](/[\r\n]+/)[_0x285e48(0x280)]('');_0x5572d8[_0x285e48(0x82d)]=DataManager[_0x285e48(0x217)](_0x365356);}}}}},Game_Enemy[_0x1cc45e(0xc0b)][_0x1cc45e(0xab3)]=function(){const _0x273b63=_0x1cc45e;return this[_0x273b63(0x7e6)]||0x0;},Game_Enemy['prototype']['attackAnimationId2']=function(){const _0x3c164e=_0x1cc45e;return this[_0x3c164e(0xab3)]();},Game_Enemy[_0x1cc45e(0xc0b)][_0x1cc45e(0x56c)]=function(_0x2b3c2a){return this['attackAnimationId1']();},Game_Enemy[_0x1cc45e(0xc0b)][_0x1cc45e(0xb37)]=function(){const _0x4e81d1=_0x1cc45e;if(this[_0x4e81d1(0x48a)]()[_0x4e81d1(0xbe6)]['match'](/<BATTLER SPRITE CANNOT MOVE>/i))return![];return Game_Battler[_0x4e81d1(0xc0b)][_0x4e81d1(0xb37)]['call'](this);},Game_Enemy[_0x1cc45e(0xc0b)][_0x1cc45e(0x614)]=function(){const _0x151857=_0x1cc45e;if(this[_0x151857(0x48a)]()[_0x151857(0xbe6)][_0x151857(0xc6a)](/<BATTLER SPRITE GROUNDED>/i))return!![];return![];},Game_Enemy[_0x1cc45e(0xc0b)]['skills']=function(){const _0x180706=_0x1cc45e,_0x4cb361=[];for(const _0x4f2c4d of this[_0x180706(0x48a)]()[_0x180706(0x6b2)]){const _0x3290a0=$dataSkills[_0x4f2c4d[_0x180706(0x94a)]];if(_0x3290a0&&!_0x4cb361[_0x180706(0x9c4)](_0x3290a0))_0x4cb361[_0x180706(0xca6)](_0x3290a0);}return _0x4cb361;},Game_Enemy[_0x1cc45e(0xc0b)][_0x1cc45e(0x588)]=function(){const _0x3876cf=_0x1cc45e;let _0x59466f=_0x3876cf(0x588);if(this['checkCacheKey'](_0x59466f))return this[_0x3876cf(0x595)][_0x59466f];return this['_cache'][_0x59466f]=this[_0x3876cf(0x3fe)](this[_0x3876cf(0x48a)]()),this[_0x3876cf(0x595)][_0x59466f];},Game_Enemy[_0x1cc45e(0xc0b)]['battleUIOffsetY']=function(){const _0x435e20=_0x1cc45e;let _0x44ab1b=_0x435e20(0xb36);if(this['checkCacheKey'](_0x44ab1b))return this[_0x435e20(0x595)][_0x44ab1b];return this['_cache'][_0x44ab1b]=this[_0x435e20(0x9ef)](this[_0x435e20(0x48a)]()),this[_0x435e20(0x595)][_0x44ab1b];},Game_Enemy[_0x1cc45e(0xc0b)][_0x1cc45e(0x5b1)]=function(){const _0x5480a8=_0x1cc45e;if(this[_0x5480a8(0x473)]!==undefined)return this['_svBattlerData'];return this[_0x5480a8(0x735)](),this[_0x5480a8(0x473)];},Game_Enemy[_0x1cc45e(0xc0b)][_0x1cc45e(0x842)]=function(){const _0x911441=_0x1cc45e;return this[_0x911441(0x5b1)]()[_0x911441(0xc4e)]!=='';},Game_Enemy[_0x1cc45e(0xc0b)][_0x1cc45e(0x54e)]=function(){const _0xec43ae=_0x1cc45e;return this[_0xec43ae(0x5b1)]()[_0xec43ae(0xc4e)];},Game_Enemy['prototype']['battlerSmoothImage']=function(){const _0x344113=_0x1cc45e;return this[_0x344113(0x842)]()?VisuMZ[_0x344113(0x2c5)][_0x344113(0x5fb)]['Actor'][_0x344113(0x7a9)]:VisuMZ[_0x344113(0x2c5)][_0x344113(0x5fb)][_0x344113(0x1a9)]['SmoothImage'];},Game_Enemy[_0x1cc45e(0xc0b)][_0x1cc45e(0x59b)]=function(_0x40b980){const _0x37ceca=_0x1cc45e;Game_Battler[_0x37ceca(0xc0b)][_0x37ceca(0x59b)][_0x37ceca(0xa54)](this,_0x40b980);if(this[_0x37ceca(0x842)]())this[_0x37ceca(0xa68)](_0x40b980);},Game_Enemy[_0x1cc45e(0xc0b)][_0x1cc45e(0x455)]=function(){const _0x312b05=_0x1cc45e,_0x495dd8=this['svBattlerData']()[_0x312b05(0x2a0)]||0x0,_0x1c97ad=$dataSystem['attackMotions'][_0x495dd8];if(_0x1c97ad){if(_0x1c97ad[_0x312b05(0x729)]===0x0)this['requestMotion'](_0x312b05(0x30f));else{if(_0x1c97ad[_0x312b05(0x729)]===0x1)this[_0x312b05(0x9a8)](_0x312b05(0x5a9));else _0x1c97ad[_0x312b05(0x729)]===0x2&&this[_0x312b05(0x9a8)](_0x312b05(0xb33));}}},Game_Enemy[_0x1cc45e(0xc0b)][_0x1cc45e(0xb05)]=function(){const _0x1cabf3=_0x1cc45e,_0x22e462=this[_0x1cabf3(0x5b1)]()[_0x1cabf3(0x2a0)]||0x0,_0x39d6f4=$dataSystem[_0x1cabf3(0xa42)][_0x22e462];_0x39d6f4&&this[_0x1cabf3(0x56a)](_0x39d6f4[_0x1cabf3(0xc26)]);},Game_Enemy[_0x1cc45e(0xc0b)][_0x1cc45e(0x759)]=function(){const _0x139673=_0x1cc45e,_0x5adec2=this[_0x139673(0x5b1)]()['wtypeId']||0x0;return $dataSystem[_0x139673(0xa42)][_0x5adec2];},Game_Enemy[_0x1cc45e(0xc0b)]['getAttackMotionSlot']=function(_0x309b22){const _0x307255=_0x1cc45e;return this[_0x307255(0x759)]();},Game_Enemy['prototype']['performDamage']=function(){const _0x30fde6=_0x1cc45e;Game_Battler['prototype'][_0x30fde6(0x725)]['call'](this),this['isSpriteVisible']()&&this[_0x30fde6(0x842)]()&&this['requestMotion']('damage'),SoundManager[_0x30fde6(0xb88)]();},Game_Enemy[_0x1cc45e(0xc0b)][_0x1cc45e(0xbe7)]=function(){const _0x7c92ab=_0x1cc45e;Game_Battler[_0x7c92ab(0xc0b)][_0x7c92ab(0xbe7)]['call'](this),this[_0x7c92ab(0x9a8)]('evade');},Game_Enemy[_0x1cc45e(0xc0b)][_0x1cc45e(0x587)]=function(){const _0x325511=_0x1cc45e;Game_Battler['prototype'][_0x325511(0x587)]['call'](this),this[_0x325511(0x9a8)]('evade');},Game_Enemy[_0x1cc45e(0xc0b)][_0x1cc45e(0x45a)]=function(){const _0x46b2e3=_0x1cc45e;Game_Battler[_0x46b2e3(0xc0b)][_0x46b2e3(0x45a)][_0x46b2e3(0xa54)](this),this[_0x46b2e3(0x455)]();},Game_Enemy['prototype']['allowCollapse']=function(){const _0x116640=_0x1cc45e;if(this['hasSvBattler']()){if(this[_0x116640(0xc10)]()>=0x1)return!![];return this[_0x116640(0x5b1)]()[_0x116640(0x4c9)];}else return!![];},Game_Enemy[_0x1cc45e(0xc0b)][_0x1cc45e(0xa6e)]=function(){const _0x18a677=_0x1cc45e;return this['svBattlerData']()[_0x18a677(0x9e3)];},Game_Enemy[_0x1cc45e(0xc0b)][_0x1cc45e(0x50e)]=function(){const _0x1d45c3=_0x1cc45e;return this[_0x1d45c3(0x5b1)]()['anchorY'];},Game_Enemy['prototype'][_0x1cc45e(0x64b)]=function(){return this['svBattlerData']()['shadow'];},VisuMZ['BattleCore']['Game_Enemy_transform']=Game_Enemy[_0x1cc45e(0xc0b)][_0x1cc45e(0x6ba)],Game_Enemy['prototype'][_0x1cc45e(0x6ba)]=function(_0xde4f63){const _0x390296=_0x1cc45e;VisuMZ[_0x390296(0x2c5)][_0x390296(0x28f)][_0x390296(0xa54)](this,_0xde4f63),this[_0x390296(0x223)](),this['setupBattleCoreData']();const _0x269770=this[_0x390296(0x3ba)]();_0x269770&&(_0x269770[_0x390296(0x4a2)]=undefined,_0x269770[_0x390296(0x476)](this));},Game_Enemy[_0x1cc45e(0xc0b)]['resetNameTempVisibility']=function(){const _0xe556b1=_0x1cc45e,_0x553338=VisuMZ['BattleCore'][_0xe556b1(0x5fb)]['Enemy'];this['_nameTempVisibleDuration']=_0x553338['NameDamageVisibility']??0x0;},Game_Enemy[_0x1cc45e(0xc0b)][_0x1cc45e(0x430)]=function(){const _0x482a45=_0x1cc45e;return this[_0x482a45(0x63e)]&&this[_0x482a45(0x63e)]>0x0;},Game_Enemy[_0x1cc45e(0xc0b)][_0x1cc45e(0xc51)]=function(){const _0x18f2d6=_0x1cc45e;this['_nameTempVisibleDuration']&&this[_0x18f2d6(0x63e)]>0x0&&this[_0x18f2d6(0x63e)]--;},Game_Enemy[_0x1cc45e(0xc0b)][_0x1cc45e(0xa58)]=function(){const _0x5963a0=_0x1cc45e;this[_0x5963a0(0x63e)]=0x0;},Game_Enemy[_0x1cc45e(0xc0b)][_0x1cc45e(0x982)]=function(){const _0x534b2f=_0x1cc45e;this[_0x534b2f(0x2cd)]();const _0x31abb0=this['enemy']()[_0x534b2f(0xbe6)]||'';if(_0x31abb0[_0x534b2f(0xc6a)](/<ASPECT NAME:[ ](.*)>/i)){const _0x27198f=String(RegExp['$1']);this[_0x534b2f(0xd08)]()[_0x534b2f(0xc4e)]=_0x27198f[_0x534b2f(0x65c)](this[_0x534b2f(0x23d)]());}_0x31abb0[_0x534b2f(0xc6a)](/<ASPECT ICON:[ ](\d+)>/i)&&(this[_0x534b2f(0xd08)]()[_0x534b2f(0x510)]=Number(RegExp['$1'])),_0x31abb0[_0x534b2f(0xc6a)](/<ASPECT COLOR:[ ](.*)>/i)&&(this[_0x534b2f(0xd08)]()[_0x534b2f(0xcb0)]=String(RegExp['$1'])),_0x31abb0['match'](/<ASPECT DESCRIPTION>\s*([\s\S]*)\s*<\/ASPECT DESCRIPTION>/i)&&(this[_0x534b2f(0xd08)]()[_0x534b2f(0x240)]=String(RegExp['$1']));},Game_Enemy[_0x1cc45e(0xc0b)][_0x1cc45e(0x2cd)]=function(){const _0x497164=_0x1cc45e,_0x23ef24=VisuMZ['BattleCore'][_0x497164(0x5fb)]['Enemy']['AspectNameFmt']??_0x497164(0x2c9);this[_0x497164(0xc6b)]={'name':_0x23ef24['format'](this[_0x497164(0x23d)]()),'iconIndex':VisuMZ[_0x497164(0x2c5)][_0x497164(0x5fb)][_0x497164(0x1a9)][_0x497164(0x7ab)]??0x1a,'nameColor':VisuMZ['BattleCore'][_0x497164(0x5fb)][_0x497164(0x1a9)][_0x497164(0xa5b)]??'2','description':''};},Game_Enemy['prototype'][_0x1cc45e(0xd08)]=function(){const _0x5a3ba2=_0x1cc45e;if(this[_0x5a3ba2(0xc6b)]===undefined)this[_0x5a3ba2(0x982)]();return this[_0x5a3ba2(0xc6b)];},Game_Enemy[_0x1cc45e(0xc0b)][_0x1cc45e(0xb14)]=function(){const _0x4ce66d=_0x1cc45e;return(this[_0x4ce66d(0xd08)]()[_0x4ce66d(0x240)]||'')['length']>0x0;},Game_BattlerBase[_0x1cc45e(0xc0b)]['damagePopupPosition']=function(){const _0x5b0933=_0x1cc45e;return VisuMZ['BattleCore'][_0x5b0933(0x5fb)][_0x5b0933(0x1de)][_0x5b0933(0xcec)];},Game_Enemy[_0x1cc45e(0xc0b)]['damagePopupPosition']=function(){const _0x177274=_0x1cc45e,_0x117963=this['enemy']()?this[_0x177274(0x48a)]()[_0x177274(0xbe6)]||'':'';if(_0x117963[_0x177274(0xc6a)](/<POPUP POSITION: HEAD>/i))return'head';else{if(_0x117963[_0x177274(0xc6a)](/<POPUP POSITION: CENTER>/i))return _0x177274(0x669);else{if(_0x117963['match'](/<POPUP POSITION: BASE>/i))return _0x177274(0x641);}}return Game_BattlerBase[_0x177274(0xc0b)][_0x177274(0x8d2)][_0x177274(0xa54)](this);},Game_BattlerBase[_0x1cc45e(0xc0b)]['damagePopupOffsetX']=function(){return 0x0;},Game_Enemy[_0x1cc45e(0xc0b)][_0x1cc45e(0x818)]=function(){const _0x47a223=_0x1cc45e,_0x42633e=this[_0x47a223(0x48a)]()?this['enemy']()['note']||'':'';if(_0x42633e[_0x47a223(0xc6a)](/<POPUP OFFSET X: ([\+\-]\d+)>/i))return Number(RegExp['$1']);return Game_BattlerBase[_0x47a223(0xc0b)][_0x47a223(0x818)][_0x47a223(0xa54)](this);},Game_BattlerBase['prototype']['damagePopupOffsetY']=function(){return 0x0;},Game_Enemy[_0x1cc45e(0xc0b)][_0x1cc45e(0x688)]=function(){const _0x2d4593=_0x1cc45e,_0x1d2651=this[_0x2d4593(0x48a)]()?this[_0x2d4593(0x48a)]()[_0x2d4593(0xbe6)]||'':'';if(_0x1d2651['match'](/<POPUP OFFSET Y: ([\+\-]\d+)>/i))return Number(RegExp['$1']);return Game_BattlerBase[_0x2d4593(0xc0b)][_0x2d4593(0x688)]['call'](this);},Game_Unit['prototype']['processBattleCoreJS']=function(_0x49b619){const _0x36c2ad=_0x1cc45e;for(const _0x15ea84 of this[_0x36c2ad(0x1be)]()){if(_0x15ea84)_0x15ea84['processBattleCoreJS'](_0x49b619);}},Game_Unit['prototype'][_0x1cc45e(0x2bf)]=function(){const _0x36e787=_0x1cc45e,_0x555076=this[_0x36e787(0x1d0)]();return _0x555076[Math[_0x36e787(0x1fe)](_0x555076['length'])];},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x475)]=Game_Party[_0x1cc45e(0xc0b)]['addActor'],Game_Party[_0x1cc45e(0xc0b)][_0x1cc45e(0x5b0)]=function(_0x51311d){const _0x49e42a=_0x1cc45e;VisuMZ[_0x49e42a(0x2c5)][_0x49e42a(0x475)][_0x49e42a(0xa54)](this,_0x51311d),BattleManager[_0x49e42a(0x6ce)]();},VisuMZ[_0x1cc45e(0x2c5)]['Game_Party_removeActor']=Game_Party[_0x1cc45e(0xc0b)]['removeActor'],Game_Party['prototype'][_0x1cc45e(0x875)]=function(_0x5a6513){const _0x49864e=_0x1cc45e;VisuMZ[_0x49864e(0x2c5)][_0x49864e(0x239)][_0x49864e(0xa54)](this,_0x5a6513),BattleManager[_0x49864e(0x6ce)]();},VisuMZ[_0x1cc45e(0x2c5)]['Game_Troop_setup']=Game_Troop[_0x1cc45e(0xc0b)]['setup'],Game_Troop[_0x1cc45e(0xc0b)][_0x1cc45e(0x620)]=function(_0x34a89d){const _0x34c39b=_0x1cc45e;$gameTemp['clearForcedGameTroopSettingsBattleCore'](),$gameTemp['applyForcedGameTroopSettingsBattleCore'](_0x34a89d),VisuMZ[_0x34c39b(0x2c5)][_0x34c39b(0x261)][_0x34c39b(0xa54)](this,_0x34a89d),this[_0x34c39b(0xa75)]();},VisuMZ['BattleCore']['Game_Troop_expTotal']=Game_Troop[_0x1cc45e(0xc0b)]['expTotal'],Game_Troop[_0x1cc45e(0xc0b)][_0x1cc45e(0x442)]=function(){const _0x2efa57=_0x1cc45e;let _0x2622d6=VisuMZ[_0x2efa57(0x2c5)][_0x2efa57(0x6a1)]['call'](this);return this[_0x2efa57(0xb25)]&&(_0x2622d6*=this[_0x2efa57(0xb25)]()),Math['ceil'](_0x2622d6);},Game_Troop[_0x1cc45e(0xc0b)][_0x1cc45e(0xb25)]=function(){return 0x1;},Game_Troop[_0x1cc45e(0xc0b)][_0x1cc45e(0xa75)]=function(){const _0x337534=_0x1cc45e,_0x50774d=DataManager[_0x337534(0x5f8)](this[_0x337534(0xa7c)]()['id']);if(_0x50774d[_0x337534(0xc6a)](/<(?:EXTEND|ADD):[ ](.*?)>/i)){const _0x11d234=RegExp['$1'][_0x337534(0x368)](',')[_0x337534(0x63c)](_0x45e4e9=>Number(_0x45e4e9));this[_0x337534(0x650)](),this['processExtendTroopMembers'](_0x11d234);}},Game_Troop[_0x1cc45e(0xc0b)][_0x1cc45e(0x650)]=function(){const _0x339884=_0x1cc45e;let _0x557aa9=_0x339884(0xa94)+'\x0a';_0x557aa9+=_0x339884(0x960),Imported[_0x339884(0x85a)]&&(VisuMZ[_0x339884(0x3b0)][_0x339884(0x6bc)]<1.11&&(alert(_0x557aa9[_0x339884(0x65c)](_0x339884(0x1b0))),SceneManager[_0x339884(0x5c1)]())),Imported[_0x339884(0x570)]&&(VisuMZ['BattleSystemCTB'][_0x339884(0x6bc)]<1.19&&(alert(_0x557aa9[_0x339884(0x65c)]('CTB')),SceneManager[_0x339884(0x5c1)]())),Imported[_0x339884(0x4b7)]&&(VisuMZ[_0x339884(0x946)][_0x339884(0x6bc)]<1.15&&(alert(_0x557aa9['format'](_0x339884(0x43c))),SceneManager[_0x339884(0x5c1)]()));},Game_Troop[_0x1cc45e(0xc0b)][_0x1cc45e(0x6b7)]=function(_0x3085cb){const _0x48fd8a=_0x1cc45e;this['_namesCount']={};for(const _0x3ed856 of this['members']()){if(!_0x3ed856)continue;_0x3ed856[_0x48fd8a(0x4ec)]('');}for(const _0x3aee75 of _0x3085cb){const _0x34d665=$dataTroops[_0x3aee75];if(_0x34d665)this[_0x48fd8a(0x1fb)](_0x34d665);}this[_0x48fd8a(0xce7)]();},Game_Troop[_0x1cc45e(0xc0b)][_0x1cc45e(0x1fb)]=function(_0x154fb9){const _0x11e295=_0x1cc45e;for(const _0x3afbae of _0x154fb9[_0x11e295(0x1be)]){if($dataEnemies[_0x3afbae[_0x11e295(0x1d4)]]){const _0x1e57df=_0x3afbae[_0x11e295(0x1d4)],_0x5624cd=_0x3afbae['x'],_0xf25a1f=_0x3afbae['y'],_0x53f5df=new Game_Enemy(_0x1e57df,_0x5624cd,_0xf25a1f);_0x3afbae[_0x11e295(0x37f)]&&_0x53f5df[_0x11e295(0xc4d)](),this[_0x11e295(0x1d1)][_0x11e295(0xca6)](_0x53f5df);}}},VisuMZ[_0x1cc45e(0x2c5)]['Game_Map_setupBattleback']=Game_Map[_0x1cc45e(0xc0b)][_0x1cc45e(0x322)],Game_Map[_0x1cc45e(0xc0b)][_0x1cc45e(0x322)]=function(){const _0xeed08e=_0x1cc45e;VisuMZ[_0xeed08e(0x2c5)][_0xeed08e(0xb52)]['call'](this),this[_0xeed08e(0x755)]();},Game_Map[_0x1cc45e(0xc0b)]['setupBattlebackBattleCore']=function(){const _0x22bc4d=_0x1cc45e;this[_0x22bc4d(0x4b9)]={},this['_regionBattleback2']={};if(!$dataMap)return;const _0x12b6f7=$dataMap[_0x22bc4d(0xbe6)];if(!_0x12b6f7)return;const _0x5df836=_0x12b6f7['match'](/<REGION (\d+) BATTLEBACK(\d+): (.*)>/gi);if(_0x5df836)for(const _0x58ddfd of _0x5df836){_0x58ddfd[_0x22bc4d(0xc6a)](/<REGION (\d+) BATTLEBACK(\d+): (.*)>/i);const _0x145c9f=Number(RegExp['$1']),_0x52df28=Number(RegExp['$2']),_0x2b39fa=_0x52df28===0x1?this[_0x22bc4d(0x4b9)]:this[_0x22bc4d(0xbda)],_0x3a238a=String(RegExp['$3']);_0x2b39fa[_0x145c9f]=_0x3a238a;}},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x2ee)]=Game_Map['prototype'][_0x1cc45e(0xa9f)],Game_Map[_0x1cc45e(0xc0b)][_0x1cc45e(0xa9f)]=function(){const _0x349938=_0x1cc45e;if(!BattleManager[_0x349938(0x350)]()){const _0x5a1377=$gamePlayer[_0x349938(0xb74)]($gamePlayer['x'],$gamePlayer['y']);if(this[_0x349938(0x4b9)]&&this[_0x349938(0x4b9)][_0x5a1377])return this[_0x349938(0x4b9)][_0x5a1377];}return VisuMZ[_0x349938(0x2c5)][_0x349938(0x2ee)][_0x349938(0xa54)](this);},VisuMZ[_0x1cc45e(0x2c5)]['Game_Map_battleback2Name']=Game_Map[_0x1cc45e(0xc0b)][_0x1cc45e(0x834)],Game_Map[_0x1cc45e(0xc0b)][_0x1cc45e(0x834)]=function(){const _0x4a5442=_0x1cc45e;if(!BattleManager[_0x4a5442(0x350)]()){const _0x49abd5=$gamePlayer['regionId']($gamePlayer['x'],$gamePlayer['y']);if(this[_0x4a5442(0x4b9)]&&this[_0x4a5442(0xbda)][_0x49abd5])return this['_regionBattleback2'][_0x49abd5];}return VisuMZ['BattleCore'][_0x4a5442(0x7d2)]['call'](this);},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x992)]=Game_Map[_0x1cc45e(0xc0b)][_0x1cc45e(0x59e)],Game_Map[_0x1cc45e(0xc0b)][_0x1cc45e(0x59e)]=function(){const _0x553b1d=_0x1cc45e;let _0x4e92ee=JsonEx[_0x553b1d(0xb4c)](VisuMZ[_0x553b1d(0x2c5)]['Game_Map_encounterList']['call'](this));return VisuMZ[_0x553b1d(0x2c5)][_0x553b1d(0x1ef)](_0x4e92ee);},VisuMZ[_0x1cc45e(0x2c5)]['ShuffleArray']=function(_0x33f694){const _0x342ddd=_0x1cc45e;var _0x135176,_0x257b36,_0x672e3b;for(_0x672e3b=_0x33f694[_0x342ddd(0x96d)]-0x1;_0x672e3b>0x0;_0x672e3b--){_0x135176=Math['floor'](Math[_0x342ddd(0x76a)]()*(_0x672e3b+0x1)),_0x257b36=_0x33f694[_0x672e3b],_0x33f694[_0x672e3b]=_0x33f694[_0x135176],_0x33f694[_0x135176]=_0x257b36;}return _0x33f694;},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x215)]=Game_Interpreter[_0x1cc45e(0xc0b)][_0x1cc45e(0x972)],Game_Interpreter[_0x1cc45e(0xc0b)]['command357']=function(_0x20131d){const _0x50e7b7=_0x1cc45e;return $gameTemp[_0x50e7b7(0x672)](this),VisuMZ[_0x50e7b7(0x2c5)][_0x50e7b7(0x215)][_0x50e7b7(0xa54)](this,_0x20131d);},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x709)]=Game_Interpreter[_0x1cc45e(0xc0b)][_0x1cc45e(0xd04)],Game_Interpreter['prototype'][_0x1cc45e(0xd04)]=function(){const _0x2ae36b=_0x1cc45e;if(SceneManager['isSceneBattle']())switch(this[_0x2ae36b(0x7ec)]){case'battleAngle':if(Imported[_0x2ae36b(0xa81)]){if($gameScreen['battleCameraData']()[_0x2ae36b(0x9cc)]>0x0)return!![];this['_waitMode']='';}break;case _0x2ae36b(0xab6):if(BattleManager[_0x2ae36b(0x2e6)]['isAnimationPlaying']())return!![];this[_0x2ae36b(0x7ec)]='';break;case'battleBalloon':if(BattleManager[_0x2ae36b(0x2e6)]['isAnyBattleBalloonPlaying']())return!![];this[_0x2ae36b(0x7ec)]='';break;case _0x2ae36b(0x5e2):if(Imported[_0x2ae36b(0xa81)]){if($gameScreen[_0x2ae36b(0x5e7)]()[_0x2ae36b(0x909)]>0x0)return!![];if($gameScreen[_0x2ae36b(0x5e7)]()[_0x2ae36b(0xa0d)]>0x0)return!![];this['_waitMode']='';}break;case _0x2ae36b(0x717):if(BattleManager['_spriteset'][_0x2ae36b(0x42c)]())return!![];this[_0x2ae36b(0x7ec)]='';break;case _0x2ae36b(0x1fd):if(BattleManager[_0x2ae36b(0x2e6)][_0x2ae36b(0x660)]())return!![];this[_0x2ae36b(0x7ec)]='';break;case _0x2ae36b(0xa2e):if(BattleManager[_0x2ae36b(0x2e6)][_0x2ae36b(0x701)]())return!![];this['_waitMode']='';break;case _0x2ae36b(0x321):if(BattleManager['_logWindow'][_0x2ae36b(0xc94)]())return!![];this['_waitMode']='';break;case'battleMove':if(BattleManager[_0x2ae36b(0x2e6)][_0x2ae36b(0xa5c)]())return!![];this[_0x2ae36b(0x7ec)]='';break;case _0x2ae36b(0x9b5):if(BattleManager['_spriteset']['isAnyoneChangingOpacity']())return!![];this[_0x2ae36b(0x7ec)]='';break;case'battleGrow':if(BattleManager[_0x2ae36b(0x2e6)][_0x2ae36b(0x68c)]())return!![];this[_0x2ae36b(0x7ec)]='';break;case _0x2ae36b(0x201):if(BattleManager[_0x2ae36b(0x2e6)]['isAnyoneSkewing']())return!![];this[_0x2ae36b(0x7ec)]='';break;case'battleProjectiles':if(Imported[_0x2ae36b(0x47a)]){if(BattleManager[_0x2ae36b(0x2e6)]['isAnyProjectilePresent']())return!![];this[_0x2ae36b(0x7ec)]='';}break;case _0x2ae36b(0x1bd):if(Imported[_0x2ae36b(0xa81)]){if($gameScreen['battleCameraData']()[_0x2ae36b(0x5ff)]>0x0)return!![];this['_waitMode']='';}break;case'battleSpin':if(BattleManager[_0x2ae36b(0x2e6)][_0x2ae36b(0xb6d)]())return!![];this['_waitMode']='';break;case'battleZoom':if(Imported['VisuMZ_3_ActSeqCamera']){if($gameScreen[_0x2ae36b(0x5e7)]()['zoomDuration']>0x0)return!![];this['_waitMode']='';}break;case _0x2ae36b(0x602):if(Imported[_0x2ae36b(0x1f0)]){if(BattleManager['_spriteset'][_0x2ae36b(0x808)]){if(BattleManager['_spriteset']['isAnyoneInjectAniPrepping']())return!![];this[_0x2ae36b(0x7ec)]=_0x2ae36b(0x590);}else this[_0x2ae36b(0x7ec)]='';break;}break;case _0x2ae36b(0x590):if(Imported[_0x2ae36b(0x1f0)]){if(BattleManager[_0x2ae36b(0x2e6)][_0x2ae36b(0x490)]())return!![];this[_0x2ae36b(0x7ec)]='';}break;}return VisuMZ['BattleCore'][_0x2ae36b(0x709)]['call'](this);},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x2f1)]=Game_Interpreter[_0x1cc45e(0xc0b)]['command301'],Game_Interpreter['prototype'][_0x1cc45e(0x6cf)]=function(_0x31c759){const _0x4c4163=_0x1cc45e;return!$gameParty[_0x4c4163(0x7a1)]()?this[_0x4c4163(0x8c8)](_0x31c759):VisuMZ['BattleCore'][_0x4c4163(0x2f1)][_0x4c4163(0xa54)](this,_0x31c759);},Game_Interpreter[_0x1cc45e(0xc0b)][_0x1cc45e(0x8c5)]=function(_0xb9944c){const _0x1f6f69=_0x1cc45e;return VisuMZ[_0x1f6f69(0x2c5)][_0x1f6f69(0x2f1)][_0x1f6f69(0xa54)](this,_0xb9944c),BattleManager[_0x1f6f69(0x6f5)](_0x561b5c=>{const _0x4c9c31=_0x1f6f69;this[_0x4c9c31(0x906)][this[_0x4c9c31(0xc65)]]=_0x561b5c;}),!![];},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x331)]=function(_0x136b43){const _0x3d4bfe=_0x1cc45e,_0x4a658c=$dataCommonEvents[_0x136b43];if(!_0x4a658c)return![];if(_0x4a658c[_0x3d4bfe(0x8de)]['length']<=0x1)return![];return!![];},Game_Interpreter['prototype'][_0x1cc45e(0x8c8)]=function(_0x3a360d){const _0x557991=_0x1cc45e,_0x42dcf1=VisuMZ[_0x557991(0x2c5)]['Settings'][_0x557991(0x56d)],_0x27f212=_0x42dcf1[_0x557991(0x4bf)],_0x2715f4=$dataCommonEvents[_0x27f212];if(_0x2715f4&&VisuMZ[_0x557991(0x2c5)][_0x557991(0x331)](_0x27f212)){const _0x49e58a=this[_0x557991(0x36a)]()?this[_0x557991(0x849)]:0x0,_0x356360=_0x2715f4[_0x557991(0x8de)];this['setupChild'](_0x356360,_0x49e58a),this[_0x557991(0x562)]=JsonEx[_0x557991(0xb4c)](this['_list']);const _0x17e078={'code':0xbc3,'indent':this[_0x557991(0xc65)],'parameters':JsonEx['makeDeepCopy'](_0x3a360d)};return this[_0x557991(0x562)]['splice'](this[_0x557991(0xcb6)]+0x1,0x0,_0x17e078),!![];}else return VisuMZ[_0x557991(0x2c5)][_0x557991(0x2f1)][_0x557991(0xa54)](this,_0x3a360d);},VisuMZ['BattleCore'][_0x1cc45e(0x33d)]=BattleManager['onEncounter'],BattleManager[_0x1cc45e(0x5b7)]=function(){const _0x182a0a=_0x1cc45e;VisuMZ['BattleCore'][_0x182a0a(0x33d)]['call'](this),this['onEncounterBattleCore']();},BattleManager[_0x1cc45e(0x287)]=function(){const _0x38683f=_0x1cc45e,_0x49a7b4=VisuMZ['BattleCore']['Settings'][_0x38683f(0x56d)],_0x5a58d5=_0x49a7b4[_0x38683f(0x4bf)];_0x5a58d5&&VisuMZ[_0x38683f(0x2c5)][_0x38683f(0x331)](_0x5a58d5)&&(this['_battleCoreBattleStartEvent']=!![],$gameTemp[_0x38683f(0xbc7)](_0x49a7b4[_0x38683f(0x4bf)]),$gameMap['updateInterpreter'](),$gameMap[_0x38683f(0xc91)][_0x38683f(0xc21)]=!![]),_0x49a7b4[_0x38683f(0x72c)]>0x0&&(this[_0x38683f(0x547)]=!![]);},VisuMZ['BattleCore'][_0x1cc45e(0xc5a)]=Scene_Map['prototype'][_0x1cc45e(0xbf2)],Scene_Map[_0x1cc45e(0xc0b)][_0x1cc45e(0xbf2)]=function(){const _0x1d15be=_0x1cc45e;if(BattleManager['_battleCoreBattleStartEvent'])return;VisuMZ[_0x1d15be(0x2c5)][_0x1d15be(0xc5a)]['call'](this);},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x7b4)]=Scene_Map[_0x1cc45e(0xc0b)][_0x1cc45e(0xa90)],Scene_Map[_0x1cc45e(0xc0b)][_0x1cc45e(0xa90)]=function(){const _0x312091=_0x1cc45e;BattleManager[_0x312091(0xabf)]?this[_0x312091(0x91a)]():VisuMZ[_0x312091(0x2c5)][_0x312091(0x7b4)][_0x312091(0xa54)](this);},Scene_Map[_0x1cc45e(0xc0b)][_0x1cc45e(0x91a)]=function(){this['_active']=!![];},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x4aa)]=SceneManager[_0x1cc45e(0x49e)],SceneManager['isSceneChanging']=function(){const _0x13688e=_0x1cc45e;if(BattleManager[_0x13688e(0xabf)])return![];return VisuMZ[_0x13688e(0x2c5)][_0x13688e(0x4aa)][_0x13688e(0xa54)](this);},VisuMZ['BattleCore'][_0x1cc45e(0x4f1)]=Game_Interpreter[_0x1cc45e(0xc0b)][_0x1cc45e(0x8ba)],Game_Interpreter[_0x1cc45e(0xc0b)]['terminate']=function(){const _0xb15784=_0x1cc45e;VisuMZ[_0xb15784(0x2c5)][_0xb15784(0x4f1)]['call'](this),this[_0xb15784(0xc21)]&&(this[_0xb15784(0xc21)]=undefined,SceneManager['_scene'][_0xb15784(0x4e6)]());},Scene_Map[_0x1cc45e(0xc0b)]['battleCoreResumeLaunchBattle']=function(){const _0x4da6b9=_0x1cc45e;BattleManager[_0x4da6b9(0xabf)]=undefined,BattleManager['_battleCoreBattleResumeAfter']=!![],this[_0x4da6b9(0xc7a)]();},VisuMZ[_0x1cc45e(0x2c5)]['Scene_Map_initializeAfter']=Scene_Map['prototype']['initialize'],Scene_Map[_0x1cc45e(0xc0b)][_0x1cc45e(0x896)]=function(){const _0x2e4fdb=_0x1cc45e;VisuMZ['BattleCore']['Scene_Map_initializeAfter'][_0x2e4fdb(0xa54)](this),BattleManager['_battleCoreBattleResumeAfter']&&(this[_0x2e4fdb(0x70b)]=!![],BattleManager[_0x2e4fdb(0x2bd)]=undefined);},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0xc13)]=Scene_Map['prototype'][_0x1cc45e(0x896)],Scene_Map[_0x1cc45e(0xc0b)]['initialize']=function(){const _0x1901c7=_0x1cc45e;VisuMZ['BattleCore'][_0x1901c7(0xc13)]['call'](this),$gameTemp[_0x1901c7(0x927)]();},VisuMZ['BattleCore'][_0x1cc45e(0x292)]=Scene_ItemBase['prototype'][_0x1cc45e(0x437)],Scene_ItemBase[_0x1cc45e(0xc0b)][_0x1cc45e(0x437)]=function(){const _0x5e9c4c=_0x1cc45e;VisuMZ[_0x5e9c4c(0x2c5)][_0x5e9c4c(0x292)][_0x5e9c4c(0xa54)](this);if(this[_0x5e9c4c(0x904)]()[_0x5e9c4c(0xbe6)]['match'](/<BYPASS AUTO ACTION SEQUENCE>/i))return;this[_0x5e9c4c(0x904)]()['note'][_0x5e9c4c(0xc6a)](/<CUSTOM ACTION SEQUENCE>/i)&&($gameTemp[_0x5e9c4c(0xa06)]=[]),DataManager[_0x5e9c4c(0x7f6)](this[_0x5e9c4c(0x904)]())&&($gameTemp['_commonEventQueue']=[]);},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x8ce)]=Scene_Options[_0x1cc45e(0xc0b)][_0x1cc45e(0x58b)],Scene_Options[_0x1cc45e(0xc0b)][_0x1cc45e(0x58b)]=function(){const _0x192c91=_0x1cc45e;let _0x431ffb=VisuMZ[_0x192c91(0x2c5)][_0x192c91(0x8ce)][_0x192c91(0xa54)](this);const _0x4ebb94=VisuMZ[_0x192c91(0x2c5)][_0x192c91(0x5fb)];if(_0x4ebb94['AutoBattle'][_0x192c91(0x9c8)]&&_0x4ebb94[_0x192c91(0xac7)]['AdjustRect'])_0x431ffb+=0x2;if(_0x4ebb94[_0x192c91(0x984)][_0x192c91(0x9c8)]&&_0x4ebb94[_0x192c91(0x984)][_0x192c91(0x68a)])_0x431ffb+=0x1;return _0x431ffb;},VisuMZ[_0x1cc45e(0x2c5)]['Scene_Battle_initialize']=Scene_Battle[_0x1cc45e(0xc0b)][_0x1cc45e(0x896)],Scene_Battle[_0x1cc45e(0xc0b)]['initialize']=function(){const _0x4dc3b6=_0x1cc45e;VisuMZ[_0x4dc3b6(0x2c5)][_0x4dc3b6(0xb1d)][_0x4dc3b6(0xa54)](this),this[_0x4dc3b6(0x327)]();},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x80f)]=Scene_Battle['prototype'][_0x1cc45e(0x727)],Scene_Battle[_0x1cc45e(0xc0b)][_0x1cc45e(0x727)]=function(){const _0x198d79=_0x1cc45e;SceneManager[_0x198d79(0x581)]()?(Scene_Message[_0x198d79(0xc0b)]['start'][_0x198d79(0xa54)](this),this[_0x198d79(0x2e6)]&&this['_spriteset'][_0x198d79(0x90f)](),BattleManager[_0x198d79(0x61c)]&&BattleManager[_0x198d79(0x765)]()):(VisuMZ[_0x198d79(0x2c5)][_0x198d79(0x80f)][_0x198d79(0xa54)](this),$gameTroop['onBattleStartOnceParallels']());},VisuMZ['BattleCore'][_0x1cc45e(0x352)]=Scene_Battle[_0x1cc45e(0xc0b)][_0x1cc45e(0xc7a)],Scene_Battle[_0x1cc45e(0xc0b)][_0x1cc45e(0xc7a)]=function(){const _0x703544=_0x1cc45e;SceneManager[_0x703544(0x827)]()?Scene_Message['prototype'][_0x703544(0xc7a)][_0x703544(0xa54)](this):VisuMZ['BattleCore'][_0x703544(0x352)][_0x703544(0xa54)](this);},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0xcae)]=Scene_Battle['prototype'][_0x1cc45e(0x8ba)],Scene_Battle[_0x1cc45e(0xc0b)]['terminate']=function(){const _0x39c814=_0x1cc45e;SceneManager[_0x39c814(0x827)]()?Scene_Message['prototype'][_0x39c814(0x8ba)][_0x39c814(0xa54)](this):VisuMZ[_0x39c814(0x2c5)]['Scene_Battle_terminate']['call'](this),$gameTemp[_0x39c814(0xc18)](),this['clearOnceParallelInterpreters']();},Scene_Battle[_0x1cc45e(0xc0b)][_0x1cc45e(0x7ef)]=function(){const _0x117cc1=_0x1cc45e;if(ConfigManager[_0x117cc1(0xbdb)]&&ConfigManager[_0x117cc1(0x57b)]!==undefined)return ConfigManager[_0x117cc1(0x57b)];else{if(this[_0x117cc1(0x2f9)]()===_0x117cc1(0x3ff))return![];else{return Scene_Message[_0x117cc1(0xc0b)][_0x117cc1(0x7ef)][_0x117cc1(0xa54)](this);;}}},VisuMZ['BattleCore'][_0x1cc45e(0x234)]=Scene_Battle[_0x1cc45e(0xc0b)][_0x1cc45e(0x85b)],Scene_Battle[_0x1cc45e(0xc0b)][_0x1cc45e(0x85b)]=function(){const _0x1ceab1=_0x1cc45e;VisuMZ[_0x1ceab1(0x2c5)]['Scene_Battle_createCancelButton'][_0x1ceab1(0xa54)](this),this[_0x1ceab1(0x2f9)]()==='border'&&this[_0x1ceab1(0x45c)]();},Scene_Battle[_0x1cc45e(0xc0b)][_0x1cc45e(0x9d9)]=function(_0x38ba94){const _0x502865=_0x1cc45e;_0x38ba94?(this[_0x502865(0xa55)]['x']=(Graphics[_0x502865(0x885)]-Graphics[_0x502865(0x46e)])/0x2,this[_0x502865(0xa55)]['y']=(Graphics[_0x502865(0x20f)]-Graphics['boxHeight'])/0x2):(this['_windowLayer']['x']=Graphics[_0x502865(0x885)]*0xa,this[_0x502865(0xa55)]['y']=Graphics[_0x502865(0x20f)]*0xa);},VisuMZ['BattleCore'][_0x1cc45e(0x214)]=Scene_Battle[_0x1cc45e(0xc0b)][_0x1cc45e(0x698)],Scene_Battle[_0x1cc45e(0xc0b)][_0x1cc45e(0x698)]=function(){const _0x3be583=_0x1cc45e,_0x23af03=BattleManager[_0x3be583(0x72d)]();VisuMZ['BattleCore']['Scene_Battle_selectNextCommand'][_0x3be583(0xa54)](this);if(_0x23af03){if(_0x23af03===BattleManager['actor']())return;if(_0x23af03===BattleManager[_0x3be583(0x301)])return;if(_0x23af03[_0x3be583(0x3ba)]())_0x23af03[_0x3be583(0x3ba)]()['stepBack']();}},VisuMZ[_0x1cc45e(0x2c5)]['Scene_Battle_selectPreviousCommand']=Scene_Battle['prototype'][_0x1cc45e(0x34c)],Scene_Battle[_0x1cc45e(0xc0b)][_0x1cc45e(0x34c)]=function(){const _0xea13e8=_0x1cc45e,_0x27dbb2=BattleManager[_0xea13e8(0x72d)]();if(_0x27dbb2&&_0x27dbb2[_0xea13e8(0x3ba)])_0x27dbb2[_0xea13e8(0x3ba)]()[_0xea13e8(0x670)]();VisuMZ['BattleCore']['Scene_Battle_selectPreviousCommand'][_0xea13e8(0xa54)](this);},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0xbcf)]=Scene_Battle['prototype'][_0x1cc45e(0x9d6)],Scene_Battle[_0x1cc45e(0xc0b)][_0x1cc45e(0x9d6)]=function(){const _0x227ce1=_0x1cc45e;this[_0x227ce1(0xa9d)](),VisuMZ['BattleCore'][_0x227ce1(0xbcf)][_0x227ce1(0xa54)](this),this[_0x227ce1(0xaf8)]();},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x671)]=Scene_Battle[_0x1cc45e(0xc0b)][_0x1cc45e(0x27a)],Scene_Battle[_0x1cc45e(0xc0b)][_0x1cc45e(0x27a)]=function(){const _0x4cff1b=_0x1cc45e;if(VisuMZ[_0x4cff1b(0x2c5)]['Settings'][_0x4cff1b(0x5c8)][_0x4cff1b(0xc46)])return VisuMZ['BattleCore'][_0x4cff1b(0x5fb)][_0x4cff1b(0x5c8)][_0x4cff1b(0xc46)][_0x4cff1b(0xa54)](this);return VisuMZ['BattleCore'][_0x4cff1b(0x671)][_0x4cff1b(0xa54)](this);},VisuMZ[_0x1cc45e(0x2c5)]['Scene_Battle_createPartyCommandWindow']=Scene_Battle[_0x1cc45e(0xc0b)][_0x1cc45e(0x8dc)],Scene_Battle[_0x1cc45e(0xc0b)][_0x1cc45e(0x8dc)]=function(){const _0x30def0=_0x1cc45e;VisuMZ[_0x30def0(0x2c5)][_0x30def0(0x1ca)]['call'](this),this[_0x30def0(0x810)]();},Scene_Battle['prototype'][_0x1cc45e(0x810)]=function(){const _0x421462=_0x1cc45e,_0x1bac6f=this[_0x421462(0x571)];_0x1bac6f[_0x421462(0x94f)]('autoBattle',this[_0x421462(0x38d)][_0x421462(0x344)](this)),_0x1bac6f['setHandler']('options',this[_0x421462(0xc19)][_0x421462(0x344)](this));const _0x2a8e86=this[_0x421462(0x2f9)]();switch(_0x2a8e86){case'xp':case _0x421462(0x76c):return this['_partyCommandWindow'][_0x421462(0x7b8)](0x1);break;}},Scene_Battle['prototype'][_0x1cc45e(0x38d)]=function(){const _0x186e2c=_0x1cc45e;BattleManager['_autoBattle']=!![],$gameParty[_0x186e2c(0x553)](),this[_0x186e2c(0x698)](),BattleManager[_0x186e2c(0x644)]()&&(BattleManager[_0x186e2c(0x370)]=![]);},Scene_Battle[_0x1cc45e(0xc0b)][_0x1cc45e(0xc19)]=function(){const _0x1ac2f9=_0x1cc45e;this[_0x1ac2f9(0x3a1)]()?(this[_0x1ac2f9(0xccf)]=!![],this[_0x1ac2f9(0xc9e)][_0x1ac2f9(0xca6)](_0x1ac2f9(0x64e),VisuMZ[_0x1ac2f9(0x2c5)][_0x1ac2f9(0x5fb)][_0x1ac2f9(0x88b)][_0x1ac2f9(0x236)])):this['callOptions']();},Scene_Battle[_0x1cc45e(0xc0b)][_0x1cc45e(0x3a1)]=function(){const _0x3cafaf=_0x1cc45e;return BattleManager[_0x3cafaf(0x718)]();},Scene_Battle[_0x1cc45e(0xc0b)][_0x1cc45e(0xc3c)]=function(){const _0x45fea1=_0x1cc45e;this['_callSceneOptions']=![],this[_0x45fea1(0x2e6)][_0x45fea1(0x90f)](),this[_0x45fea1(0xa55)]['visible']=![];if(BattleManager[_0x45fea1(0x350)]())($dataSystem[_0x45fea1(0xa9f)]||$dataSystem[_0x45fea1(0x834)])&&SceneManager[_0x45fea1(0x50b)]();else($gameMap['battleback1Name']()||$gameMap[_0x45fea1(0x834)]())&&SceneManager[_0x45fea1(0x50b)]();SceneManager[_0x45fea1(0xca6)](Scene_Options),BattleManager[_0x45fea1(0x644)]()&&(BattleManager[_0x45fea1(0x61c)]=BattleManager[_0x45fea1(0x72d)]());},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0xb03)]=Scene_Battle[_0x1cc45e(0xc0b)][_0x1cc45e(0x658)],Scene_Battle[_0x1cc45e(0xc0b)][_0x1cc45e(0x658)]=function(){const _0x3ce982=_0x1cc45e;VisuMZ['BattleCore'][_0x3ce982(0xb03)][_0x3ce982(0xa54)](this);if(this[_0x3ce982(0xccf)]&&!BattleManager[_0x3ce982(0x301)])this['callOptions']();},VisuMZ['BattleCore'][_0x1cc45e(0x91c)]=Scene_Battle[_0x1cc45e(0xc0b)][_0x1cc45e(0x90f)],Scene_Battle[_0x1cc45e(0xc0b)]['update']=function(){const _0x5c0beb=_0x1cc45e;VisuMZ[_0x5c0beb(0x2c5)][_0x5c0beb(0x91c)][_0x5c0beb(0xa54)](this),this[_0x5c0beb(0xa45)]();},Scene_Battle[_0x1cc45e(0xc0b)][_0x1cc45e(0xaf8)]=function(){const _0x51ef4b=_0x1cc45e,_0xd25020=this[_0x51ef4b(0x7ea)]();this[_0x51ef4b(0xb5c)]=new Window_AutoBattleCancel(_0xd25020),this['_autoBattleWindow']['hide'](),this['addChild'](this[_0x51ef4b(0xb5c)]);},Scene_Battle[_0x1cc45e(0xc0b)][_0x1cc45e(0x7ea)]=function(){const _0x4e2374=_0x1cc45e;return VisuMZ[_0x4e2374(0x2c5)]['Settings']['AutoBattle'][_0x4e2374(0x29e)]['call'](this);},Scene_Battle['prototype'][_0x1cc45e(0x327)]=function(){this['_onceParallelInterpreters']=[];},Scene_Battle[_0x1cc45e(0xc0b)][_0x1cc45e(0xa45)]=function(){const _0x7b2e70=_0x1cc45e;if(!this[_0x7b2e70(0xaf6)])return;for(const _0x405db5 of this[_0x7b2e70(0xaf6)]){_0x405db5&&_0x405db5[_0x7b2e70(0x90f)]();}},Scene_Battle[_0x1cc45e(0xc0b)][_0x1cc45e(0x976)]=function(_0x50ac7c){const _0x5c54a4=$dataCommonEvents[_0x50ac7c];if(!_0x5c54a4)return;const _0x3fe492=new Game_BattleOnceParallelInterpreter();this['addOnceParallelInterpreter'](_0x3fe492),_0x3fe492['setCommonEvent'](_0x50ac7c);},Scene_Battle['prototype'][_0x1cc45e(0xcd9)]=function(_0x5b48f5){const _0x1069bb=_0x1cc45e;this['_onceParallelInterpreters']=this[_0x1069bb(0xaf6)]||[],this[_0x1069bb(0xaf6)]['push'](_0x5b48f5);},Scene_Battle[_0x1cc45e(0xc0b)][_0x1cc45e(0x4bc)]=function(_0x4d96ee){const _0x3f0039=_0x1cc45e;this[_0x3f0039(0xaf6)]=this[_0x3f0039(0xaf6)]||[],this[_0x3f0039(0xaf6)]['remove'](_0x4d96ee);},Game_Troop[_0x1cc45e(0xc0b)]['onBattleStartOnceParallels']=function(){const _0x2d1b16=_0x1cc45e;for(const _0x2b9e70 of this['troop']()[_0x2d1b16(0x6aa)]){if(!this[_0x2d1b16(0xb1c)](_0x2b9e70))continue;SceneManager[_0x2d1b16(0x659)][_0x2d1b16(0x91f)](_0x2b9e70);}},Game_Troop[_0x1cc45e(0xc0b)][_0x1cc45e(0xb1c)]=function(_0x4f642e){const _0x5afb6e=_0x1cc45e;if(!_0x4f642e)return;for(const _0x3ffb0d of _0x4f642e[_0x5afb6e(0x8de)]){if([0x6c,0x198][_0x5afb6e(0x9c4)](_0x3ffb0d['code'])){const _0x7d7391=_0x3ffb0d['parameters'][0x0];if(_0x7d7391['match'](/<ONCE PARALLEL WHEN START BATTLE>/i))return!![];}}return![];},Scene_Battle['prototype'][_0x1cc45e(0x91f)]=function(_0x197b97){const _0x1f1b6e=_0x1cc45e;if(!_0x197b97)return;const _0xfd530f=new Game_BattleOnceParallelInterpreter();this[_0x1f1b6e(0xcd9)](_0xfd530f),_0xfd530f[_0x1f1b6e(0x5d6)](_0x197b97);};function Game_BattleOnceParallelInterpreter(){this['initialize'](...arguments);}Game_BattleOnceParallelInterpreter['prototype']=Object['create'](Game_Interpreter[_0x1cc45e(0xc0b)]),Game_BattleOnceParallelInterpreter['prototype'][_0x1cc45e(0x2e2)]=Game_BattleOnceParallelInterpreter,Game_BattleOnceParallelInterpreter[_0x1cc45e(0xc0b)][_0x1cc45e(0x743)]=function(_0x553169){const _0x28565d=_0x1cc45e,_0x3e2f70=$dataCommonEvents[_0x553169];_0x3e2f70?this[_0x28565d(0x620)](_0x3e2f70['list'],0x0):this[_0x28565d(0x8ba)]();},Game_BattleOnceParallelInterpreter[_0x1cc45e(0xc0b)][_0x1cc45e(0x8ba)]=function(){const _0x1e04ac=_0x1cc45e;if(!SceneManager[_0x1e04ac(0x499)]())return;SceneManager[_0x1e04ac(0x659)][_0x1e04ac(0x4bc)](this),Game_Interpreter[_0x1e04ac(0xc0b)][_0x1e04ac(0x8ba)][_0x1e04ac(0xa54)](this);},Game_BattleOnceParallelInterpreter[_0x1cc45e(0xc0b)]['setTroopPage']=function(_0x478567){const _0x545e4f=_0x1cc45e;_0x478567?this[_0x545e4f(0x620)](_0x478567[_0x545e4f(0x8de)],0x0):this[_0x545e4f(0x8ba)]();},Scene_Battle[_0x1cc45e(0xc0b)]['isPartyCommandWindowDisabled']=function(){const _0x20bdc6=_0x1cc45e;return VisuMZ[_0x20bdc6(0x2c5)][_0x20bdc6(0x5fb)][_0x20bdc6(0x88b)][_0x20bdc6(0x867)];},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x9d8)]=Scene_Battle[_0x1cc45e(0xc0b)][_0x1cc45e(0x768)],Scene_Battle[_0x1cc45e(0xc0b)][_0x1cc45e(0x768)]=function(){const _0x4661e3=_0x1cc45e;this[_0x4661e3(0x32c)]()?this[_0x4661e3(0xbac)]():VisuMZ[_0x4661e3(0x2c5)][_0x4661e3(0x9d8)][_0x4661e3(0xa54)](this);},Scene_Battle[_0x1cc45e(0xc0b)]['onDisabledPartyCommandSelection']=function(){const _0x473321=_0x1cc45e;if(BattleManager[_0x473321(0x452)]())this[_0x473321(0x698)]();else BattleManager[_0x473321(0x644)]()&&VisuMZ['BattleCore']['Scene_Battle_startPartyCommandSelection'][_0x473321(0xa54)](this);},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x8ac)]=Scene_Battle[_0x1cc45e(0xc0b)][_0x1cc45e(0x745)],Scene_Battle[_0x1cc45e(0xc0b)]['commandFight']=function(){const _0x3daac2=_0x1cc45e;BattleManager[_0x3daac2(0x644)]()?(this[_0x3daac2(0x80c)](),this['startActorCommandSelection']()):VisuMZ[_0x3daac2(0x2c5)][_0x3daac2(0x8ac)][_0x3daac2(0xa54)](this);},Scene_Battle['prototype'][_0x1cc45e(0x80c)]=function(){const _0x503b3a=_0x1cc45e;if(!VisuMZ[_0x503b3a(0x2c5)][_0x503b3a(0x1b5)])return;if(Imported['VisuMZ_2_BattleSystemCTB']&&BattleManager[_0x503b3a(0x9a5)]())return;const _0x139b3d=$gameParty[_0x503b3a(0x1d0)]()[_0x503b3a(0x441)](_0x560ae7=>_0x560ae7[_0x503b3a(0x8e9)]()&&_0x560ae7['canInput']());BattleManager[_0x503b3a(0x707)]=_0x139b3d[0x0]||null,BattleManager[_0x503b3a(0x707)]&&BattleManager[_0x503b3a(0x707)][_0x503b3a(0xcb4)]('inputting');},VisuMZ['BattleCore'][_0x1cc45e(0x3b9)]=Scene_Battle[_0x1cc45e(0xc0b)][_0x1cc45e(0x951)],Scene_Battle[_0x1cc45e(0xc0b)][_0x1cc45e(0x951)]=function(){const _0x45c075=_0x1cc45e;VisuMZ[_0x45c075(0x2c5)]['Scene_Battle_commandEscape'][_0x45c075(0xa54)](this);if(!BattleManager[_0x45c075(0x644)]())BattleManager[_0x45c075(0x707)]=null;},VisuMZ['BattleCore'][_0x1cc45e(0xa77)]=Scene_Battle[_0x1cc45e(0xc0b)][_0x1cc45e(0xa74)],Scene_Battle[_0x1cc45e(0xc0b)][_0x1cc45e(0xa74)]=function(){const _0x3af191=_0x1cc45e;VisuMZ[_0x3af191(0x2c5)][_0x3af191(0xa77)][_0x3af191(0xa54)](this),this['createActorCommandWindowBattleCore']();},Scene_Battle[_0x1cc45e(0xc0b)]['createActorCommandWindowBattleCore']=function(){const _0x42734a=_0x1cc45e,_0x30e601=this[_0x42734a(0x6a3)];_0x30e601['setHandler'](_0x42734a(0x208),this[_0x42734a(0x25e)][_0x42734a(0x344)](this)),_0x30e601[_0x42734a(0x94f)](_0x42734a(0x915),this['actorCommandAutoBattle'][_0x42734a(0x344)](this)),_0x30e601[_0x42734a(0x94f)](_0x42734a(0x2f0),this['actorCommandSingleSkill'][_0x42734a(0x344)](this)),BattleManager[_0x42734a(0x644)]()&&(this[_0x42734a(0x32c)]()?delete _0x30e601[_0x42734a(0xa49)][_0x42734a(0x1f7)]:_0x30e601['setHandler'](_0x42734a(0x1f7),this[_0x42734a(0xcfd)][_0x42734a(0x344)](this)));},Scene_Battle[_0x1cc45e(0xc0b)][_0x1cc45e(0x25e)]=function(){const _0x55426d=_0x1cc45e;this[_0x55426d(0x951)]();},Scene_Battle[_0x1cc45e(0xc0b)][_0x1cc45e(0x98e)]=function(){const _0x41a412=_0x1cc45e;BattleManager[_0x41a412(0x72d)]()[_0x41a412(0x3b6)](),BattleManager[_0x41a412(0x5a8)](),BattleManager[_0x41a412(0x9f9)](),this[_0x41a412(0x298)]();},Scene_Battle[_0x1cc45e(0xc0b)][_0x1cc45e(0x4fa)]=function(){const _0x359ad9=_0x1cc45e,_0x8e6ce4=BattleManager['inputtingAction'](),_0x5a56cc=this[_0x359ad9(0x6a3)][_0x359ad9(0xa15)]();_0x8e6ce4[_0x359ad9(0x7fd)](_0x5a56cc),BattleManager[_0x359ad9(0x72d)]()[_0x359ad9(0x679)]($dataSkills[_0x5a56cc]),this['onSelectAction']();},Scene_Battle[_0x1cc45e(0xc0b)][_0x1cc45e(0xcfd)]=function(){const _0x5c9acd=_0x1cc45e;this['tpbActorSwitchConditionsMet']()?this[_0x5c9acd(0x4a5)]():this[_0x5c9acd(0x57f)]();},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x1b5)]=![],Scene_Battle[_0x1cc45e(0xc0b)]['tpbActorSwitchConditionsMet']=function(){const _0x20e66c=_0x1cc45e;if(Imported[_0x20e66c(0x570)]&&BattleManager['isCTB']())return![];else{if(!VisuMZ[_0x20e66c(0x2c5)]['TpbActiveChangeEnabled'])return![];const _0xce2b26=$gameParty[_0x20e66c(0x1d0)]()[_0x20e66c(0x441)](_0x56beaf=>_0x56beaf[_0x20e66c(0x8e9)]()&&_0x56beaf[_0x20e66c(0x761)]());return _0xce2b26[_0x20e66c(0x96d)]>0x0&&BattleManager[_0x20e66c(0x72d)]()!==_0xce2b26[_0xce2b26[_0x20e66c(0x96d)]-0x1];}},Scene_Battle[_0x1cc45e(0xc0b)][_0x1cc45e(0x4a5)]=function(){const _0x80dcaf=_0x1cc45e,_0x5421e2=BattleManager['actor'](),_0x4a96d0=_0x5421e2[_0x80dcaf(0x3ba)]();if(_0x4a96d0)_0x4a96d0['stepBack']();const _0x59c0ba=$gameParty[_0x80dcaf(0x1d0)]()[_0x80dcaf(0x441)](_0x3448b3=>_0x3448b3[_0x80dcaf(0x8e9)]()&&_0x3448b3[_0x80dcaf(0x761)]()),_0x349386=_0x59c0ba[_0x80dcaf(0x6e9)](_0x5421e2),_0x3549b2=_0x59c0ba[_0x349386+0x1];BattleManager[_0x80dcaf(0x707)]=_0x3549b2||null;if(_0x3549b2)_0x3549b2[_0x80dcaf(0xcb4)]('inputting');_0x5421e2[_0x80dcaf(0xcb4)]('undecided'),this['changeInputWindow']();},Scene_Battle[_0x1cc45e(0xc0b)]['processActorCommandCancelTPB']=function(){const _0x5f0008=_0x1cc45e;this[_0x5f0008(0x571)][_0x5f0008(0x620)](),this[_0x5f0008(0x6a3)][_0x5f0008(0x9f0)]();if(!VisuMZ[_0x5f0008(0x2c5)][_0x5f0008(0x1b5)])return;if(Imported[_0x5f0008(0x570)]&&BattleManager[_0x5f0008(0x9a5)]())return;if(BattleManager[_0x5f0008(0x707)]){BattleManager[_0x5f0008(0x707)][_0x5f0008(0xcb4)](_0x5f0008(0x532));const _0x18be2a=BattleManager[_0x5f0008(0x707)][_0x5f0008(0x3ba)]();if(_0x18be2a)_0x18be2a[_0x5f0008(0x670)]();}BattleManager[_0x5f0008(0x707)]=null;},VisuMZ['BattleCore'][_0x1cc45e(0x803)]=Scene_Battle[_0x1cc45e(0xc0b)][_0x1cc45e(0x2c0)],Scene_Battle[_0x1cc45e(0xc0b)][_0x1cc45e(0x2c0)]=function(){const _0x14177c=_0x1cc45e;VisuMZ[_0x14177c(0x2c5)]['Scene_Battle_createHelpWindow'][_0x14177c(0xa54)](this),this[_0x14177c(0x8a7)]();},Scene_Battle[_0x1cc45e(0xc0b)]['createHelpWindowBattleCore']=function(){const _0x162c49=_0x1cc45e;this[_0x162c49(0x6a3)][_0x162c49(0x6f6)](this['_helpWindow']),this[_0x162c49(0x571)][_0x162c49(0x6f6)](this[_0x162c49(0x317)]);},Scene_Battle[_0x1cc45e(0xc0b)]['createEnemyNameContainer']=function(){const _0x2af926=_0x1cc45e;if(!VisuMZ[_0x2af926(0x2c5)]['Settings'][_0x2af926(0x1a9)][_0x2af926(0x4f4)])return;this[_0x2af926(0x2d6)]=new Sprite(),this[_0x2af926(0x2d6)]['x']=this[_0x2af926(0xa55)]['x'],this['_enemyNameContainer']['y']=this[_0x2af926(0xa55)]['y'];const _0xa59962=this[_0x2af926(0x705)]['indexOf'](this['_windowLayer']);this[_0x2af926(0x4b5)](this[_0x2af926(0x2d6)],_0xa59962);for(let _0x544792=0x0;_0x544792<0x8;_0x544792++){const _0x178b34=new Window_EnemyName(_0x544792);this[_0x2af926(0x2d6)][_0x2af926(0x84d)](_0x178b34);}},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x96f)]=Scene_Battle[_0x1cc45e(0xc0b)][_0x1cc45e(0x356)],Scene_Battle['prototype'][_0x1cc45e(0x356)]=function(){const _0x382f1b=_0x1cc45e;VisuMZ[_0x382f1b(0x2c5)]['Scene_Battle_createEnemyWindow'][_0x382f1b(0xa54)](this),this['createMultiTargetWindows']();},Scene_Battle[_0x1cc45e(0xc0b)][_0x1cc45e(0x66c)]=function(){const _0x341f9e=_0x1cc45e;this[_0x341f9e(0x243)](!![]),this[_0x341f9e(0x243)](![]);},Scene_Battle[_0x1cc45e(0xc0b)][_0x1cc45e(0xac3)]=function(_0x5f03fa){const _0x500fd8=_0x1cc45e,_0x162ed9=Window_BattleMultiTarget[_0x500fd8(0xb20)],_0x30a1db=this[_0x500fd8(0x621)](0x1,!![]);let _0x33f239=_0x5f03fa?Graphics[_0x500fd8(0x46e)]-_0x162ed9:0x0;_0x33f239+=_0x5f03fa?Window_BattleMultiTarget[_0x500fd8(0x330)]:Window_BattleMultiTarget['ENEMY_OFFSET_X'];const _0xb9a4ba=[_0x500fd8(0x26a)][_0x500fd8(0x9c4)](this['battleLayoutStyle']())?0x0:this[_0x500fd8(0x5b3)]['height'];let _0x301044=Graphics['boxHeight']-_0xb9a4ba-_0x30a1db;return _0x301044+=_0x5f03fa?Window_BattleMultiTarget[_0x500fd8(0xb6a)]:Window_BattleMultiTarget[_0x500fd8(0xa0a)],new Rectangle(_0x33f239,_0x301044,_0x162ed9,_0x30a1db);},Scene_Battle[_0x1cc45e(0xc0b)][_0x1cc45e(0x243)]=function(_0xabcbe5){const _0x2dc941=_0x1cc45e,_0x2b2e0c=this['multiTargetWindowRect'](_0xabcbe5),_0xf78573=new Window_BattleMultiTarget(_0x2b2e0c,_0xabcbe5);this[_0x2dc941(0x3b8)](_0xf78573),_0xabcbe5?this[_0x2dc941(0xcaf)]=_0xf78573:this[_0x2dc941(0x533)]=_0xf78573;},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x6c9)]=Scene_Battle[_0x1cc45e(0xc0b)][_0x1cc45e(0xcc3)],Scene_Battle[_0x1cc45e(0xc0b)][_0x1cc45e(0xcc3)]=function(){const _0x4b413a=_0x1cc45e;if(this['_inBattleStatusMode'])return![];return VisuMZ['BattleCore']['Scene_Battle_needsInputWindowChangeIBS'][_0x4b413a(0xa54)](this);},VisuMZ[_0x1cc45e(0x2c5)]['Scene_Battle_updateCancelButton']=Scene_Battle[_0x1cc45e(0xc0b)][_0x1cc45e(0x61b)],Scene_Battle[_0x1cc45e(0xc0b)][_0x1cc45e(0x61b)]=function(){const _0x57e30c=_0x1cc45e;if(this['_cancelButton']&&this[_0x57e30c(0x82c)]){this['_cancelButton'][_0x57e30c(0x9b2)]=!![];return;}VisuMZ[_0x57e30c(0x2c5)][_0x57e30c(0x5da)][_0x57e30c(0xa54)](this);},VisuMZ[_0x1cc45e(0x2c5)]['Scene_Battle_isTimeActiveIBS']=Scene_Battle[_0x1cc45e(0xc0b)][_0x1cc45e(0x8b5)],Scene_Battle[_0x1cc45e(0xc0b)]['isTimeActive']=function(){const _0x5207f2=_0x1cc45e;if(this[_0x5207f2(0x82c)])return![];return VisuMZ['BattleCore'][_0x5207f2(0x43b)]['call'](this);},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x7ca)]=Scene_Battle['prototype'][_0x1cc45e(0x9d6)],Scene_Battle[_0x1cc45e(0xc0b)][_0x1cc45e(0x9d6)]=function(){const _0x2bed81=_0x1cc45e;VisuMZ[_0x2bed81(0x2c5)][_0x2bed81(0x7ca)][_0x2bed81(0xa54)](this),this[_0x2bed81(0x90e)]();},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x30c)]=Scene_Battle[_0x1cc45e(0xc0b)][_0x1cc45e(0x8dc)],Scene_Battle['prototype'][_0x1cc45e(0x8dc)]=function(){const _0x1560e0=_0x1cc45e;VisuMZ[_0x1560e0(0x2c5)]['Scene_Battle_createPartyCommandWindowIBS'][_0x1560e0(0xa54)](this);const _0x143b6d=this[_0x1560e0(0x571)];_0x143b6d[_0x1560e0(0x94f)](_0x1560e0(0x251),this[_0x1560e0(0xc33)][_0x1560e0(0x344)](this,_0x143b6d));},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0xa53)]=Scene_Battle[_0x1cc45e(0xc0b)][_0x1cc45e(0xa74)],Scene_Battle['prototype'][_0x1cc45e(0xa74)]=function(){const _0x3e9971=_0x1cc45e;VisuMZ[_0x3e9971(0x2c5)][_0x3e9971(0xa53)][_0x3e9971(0xa54)](this);const _0xfef2b6=this[_0x3e9971(0x6a3)];_0xfef2b6[_0x3e9971(0x94f)]('status',this[_0x3e9971(0xc33)][_0x3e9971(0x344)](this,_0xfef2b6));},Scene_Battle[_0x1cc45e(0xc0b)][_0x1cc45e(0x90e)]=function(){const _0x211719=_0x1cc45e,_0x1f50ce=this[_0x211719(0xa5d)](),_0xb12d0c=new Window_InBattleStatus(_0x1f50ce);this[_0x211719(0x3b8)](_0xb12d0c),_0xb12d0c[_0x211719(0xc4d)](),_0xb12d0c['close'](),this[_0x211719(0x4fd)]=_0xb12d0c;},Scene_Battle[_0x1cc45e(0xc0b)][_0x1cc45e(0xa5d)]=function(){const _0x24ec09=_0x1cc45e;if(VisuMZ[_0x24ec09(0x2c5)]['Settings'][_0x24ec09(0xb82)][_0x24ec09(0x625)])return VisuMZ['BattleCore'][_0x24ec09(0x5fb)][_0x24ec09(0xb82)]['StatusWindow_RectJS'][_0x24ec09(0xa54)](this);const _0xbc197d=Graphics['boxWidth']>0x3e8?0x78:0x0,_0x55934a=this['_helpWindow']['y']+this['_helpWindow'][_0x24ec09(0x20f)],_0x23f085=Graphics[_0x24ec09(0x46e)]-_0xbc197d*0x2,_0x19ebd5=Graphics[_0x24ec09(0x76d)]-_0x55934a-this[_0x24ec09(0xba1)]();return new Rectangle(_0xbc197d,_0x55934a,_0x23f085,_0x19ebd5);},Scene_Battle[_0x1cc45e(0xc0b)]['startInBattleStatus']=function(_0x2ee36d){const _0x2aa819=_0x1cc45e;this[_0x2aa819(0x3b8)](this[_0x2aa819(0x4fd)]),this[_0x2aa819(0x82c)]=!![],this[_0x2aa819(0x317)][_0x2aa819(0x4e7)]();const _0x11b73b=['xp',_0x2aa819(0x76c),'border','sideview_ui','frontview_ui'];let _0x616857=_0x11b73b['includes'](this[_0x2aa819(0x2f9)]());_0x616857&&(_0x2ee36d[_0x2aa819(0xc4d)](),_0x2ee36d[_0x2aa819(0x9f0)]()),this[_0x2aa819(0x4fd)]['setBattler'](BattleManager[_0x2aa819(0x72d)]()||$gameParty[_0x2aa819(0xaee)]()[0x0]),this['_inBattleStatusWindow']['setReturnWindow'](_0x2ee36d),this[_0x2aa819(0x4fd)][_0x2aa819(0x4e7)](),this[_0x2aa819(0x4fd)][_0x2aa819(0x256)]();},Scene_Battle[_0x1cc45e(0xc0b)]['endInBattleStatus']=function(){const _0x454625=_0x1cc45e;this[_0x454625(0x82c)]=![],this['_helpWindow'][_0x454625(0xc4d)]();const _0x4e71ec=this['_inBattleStatusWindow']['getReturnWindow']();_0x4e71ec[_0x454625(0x4e7)](),_0x4e71ec[_0x454625(0x256)](),_0x4e71ec['activate'](),this[_0x454625(0x4fd)][_0x454625(0xc4d)](),this[_0x454625(0x4fd)][_0x454625(0x9f0)]();},Scene_Battle[_0x1cc45e(0xc0b)]['battleLayoutStyle']=function(){const _0x5edb23=_0x1cc45e;if($gameTemp[_0x5edb23(0x3b3)]!==undefined)return $gameTemp[_0x5edb23(0x3b3)];if(this['_battleLayoutStyle'])return this['_battleLayoutStyle'];return this[_0x5edb23(0xb11)]=VisuMZ[_0x5edb23(0x2c5)][_0x5edb23(0x5fb)][_0x5edb23(0x5d4)][_0x5edb23(0x5ae)][_0x5edb23(0xbb5)]()[_0x5edb23(0xc8e)](),this['_battleLayoutStyle']===_0x5edb23(0x340)&&!Imported[_0x5edb23(0x5f7)]&&(this['_battleLayoutStyle']=_0x5edb23(0x8d7)),this[_0x5edb23(0xb11)]==='frontview_ui'&&!Imported[_0x5edb23(0xc63)]&&(this[_0x5edb23(0xb11)]=_0x5edb23(0x8d7)),this['_battleLayoutStyle'];},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x3ca)]=Scene_Battle[_0x1cc45e(0xc0b)][_0x1cc45e(0xba1)],Scene_Battle[_0x1cc45e(0xc0b)][_0x1cc45e(0xba1)]=function(){const _0xc1c00=_0x1cc45e,_0x179c30=this[_0xc1c00(0x2f9)]();switch(_0x179c30){case _0xc1c00(0x8de):const _0x490e7b=VisuMZ[_0xc1c00(0x2c5)][_0xc1c00(0x5fb)][_0xc1c00(0x5d4)][_0xc1c00(0xa92)]??0x4;return this[_0xc1c00(0x621)](Math[_0xc1c00(0x485)](_0x490e7b,$gameParty[_0xc1c00(0x680)]()),!![]);break;case'border':return this[_0xc1c00(0x621)](0x4,!![]);break;default:return VisuMZ['BattleCore'][_0xc1c00(0x3ca)][_0xc1c00(0xa54)](this);break;}},VisuMZ[_0x1cc45e(0x2c5)]['Scene_Battle_helpWindowRect']=Scene_Battle[_0x1cc45e(0xc0b)][_0x1cc45e(0xb7b)],Scene_Battle['prototype'][_0x1cc45e(0xb7b)]=function(){const _0x2920bd=_0x1cc45e,_0x1ff0bb=this[_0x2920bd(0x2f9)]();switch(_0x1ff0bb){case'border':return this['helpWindowRectBorderStyle']();break;case _0x2920bd(0x8d7):case _0x2920bd(0x8de):case'xp':case'portrait':default:return VisuMZ['BattleCore'][_0x2920bd(0xc82)][_0x2920bd(0xa54)](this);break;}},Scene_Battle[_0x1cc45e(0xc0b)][_0x1cc45e(0x23a)]=function(){const _0x390a31=_0x1cc45e,_0x4b3f7b=this[_0x390a31(0x2f9)]();switch(_0x4b3f7b){case'xp':case _0x390a31(0x76c):return this[_0x390a31(0xb84)]();break;case _0x390a31(0x3ff):return this[_0x390a31(0x726)]();break;case _0x390a31(0x8d7):case _0x390a31(0x8de):default:return this[_0x390a31(0xcd8)]();break;}},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x829)]=Scene_Battle[_0x1cc45e(0xc0b)]['partyCommandWindowRect'],Scene_Battle[_0x1cc45e(0xc0b)][_0x1cc45e(0xa01)]=function(){const _0x2f6a90=_0x1cc45e,_0xd73f63=this['battleLayoutStyle']();switch(_0xd73f63){case'xp':case _0x2f6a90(0x76c):return this[_0x2f6a90(0xcd4)]();break;case _0x2f6a90(0x3ff):return this[_0x2f6a90(0x4f2)]();case'default':case _0x2f6a90(0x8de):default:return this['partyCommandWindowRectDefaultStyle']();break;}},Scene_Battle[_0x1cc45e(0xc0b)]['partyCommandWindowRectDefaultStyle']=function(){const _0x50cb8f=_0x1cc45e,_0x4cf3c0=VisuMZ[_0x50cb8f(0x2c5)][_0x50cb8f(0x5fb)][_0x50cb8f(0x5d4)],_0x56899e=_0x4cf3c0['CommandWidth']||0xc0,_0x498cd7=this[_0x50cb8f(0xba1)](),_0x3e6e34=this['isRightInputMode']()?Graphics[_0x50cb8f(0x46e)]-_0x56899e:0x0,_0xa44b6e=Graphics[_0x50cb8f(0x76d)]-_0x498cd7;return new Rectangle(_0x3e6e34,_0xa44b6e,_0x56899e,_0x498cd7);},Scene_Battle[_0x1cc45e(0xc0b)][_0x1cc45e(0xcb1)]=function(){const _0x58a54b=_0x1cc45e;return this[_0x58a54b(0xa01)]();},VisuMZ['BattleCore'][_0x1cc45e(0x7bd)]=Scene_Battle[_0x1cc45e(0xc0b)][_0x1cc45e(0xbf5)],Scene_Battle[_0x1cc45e(0xc0b)][_0x1cc45e(0xbf5)]=function(){const _0x501c7d=_0x1cc45e;if(this[_0x501c7d(0x82c)])return;const _0xaa5035=this[_0x501c7d(0x2f9)]();switch(_0xaa5035){case'xp':case _0x501c7d(0x76c):case _0x501c7d(0x3ff):break;case'default':case'list':default:VisuMZ[_0x501c7d(0x2c5)][_0x501c7d(0x7bd)][_0x501c7d(0xa54)](this);break;}},Scene_Battle[_0x1cc45e(0xc0b)][_0x1cc45e(0xcd8)]=function(){const _0x5cb5a4=_0x1cc45e,_0x480fe0=VisuMZ[_0x5cb5a4(0x2c5)][_0x5cb5a4(0x5fb)]['BattleLayout'],_0x38a712=Window_BattleStatus[_0x5cb5a4(0xc0b)]['extraHeight'](),_0x5d415a=Graphics[_0x5cb5a4(0x46e)]-(_0x480fe0[_0x5cb5a4(0x9bf)]||0xc0),_0x4c831e=this['windowAreaHeight']()+_0x38a712,_0x224d40=this['isRightInputMode']()?0x0:Graphics[_0x5cb5a4(0x46e)]-_0x5d415a,_0x3b135a=Graphics[_0x5cb5a4(0x76d)]-_0x4c831e+_0x38a712;return new Rectangle(_0x224d40,_0x3b135a,_0x5d415a,_0x4c831e);},Scene_Battle['prototype'][_0x1cc45e(0xb84)]=function(){const _0x386105=_0x1cc45e,_0x15353a=Window_BattleStatus[_0x386105(0xc0b)][_0x386105(0x798)](),_0x4e31c9=Graphics[_0x386105(0x46e)],_0x25dec3=this[_0x386105(0xba1)]()+_0x15353a,_0x4595ac=0x0,_0x2ef553=Graphics[_0x386105(0x76d)]-_0x25dec3+_0x15353a;return new Rectangle(_0x4595ac,_0x2ef553,_0x4e31c9,_0x25dec3);},Scene_Battle[_0x1cc45e(0xc0b)][_0x1cc45e(0xcd4)]=function(){const _0x6208a4=_0x1cc45e,_0x5ad7f2=Graphics[_0x6208a4(0x46e)]/0x2,_0x5d4940=this[_0x6208a4(0x621)](VisuMZ[_0x6208a4(0x2c5)][_0x6208a4(0x5fb)][_0x6208a4(0x5d4)][_0x6208a4(0x825)],!![]),_0x4dc27f=Math['round']((Graphics[_0x6208a4(0x46e)]-_0x5ad7f2)/0x2),_0xd92b3b=Graphics['boxHeight']-_0x5d4940-this['statusWindowRectXPStyle']()['height'];return new Rectangle(_0x4dc27f,_0xd92b3b,_0x5ad7f2,_0x5d4940);},Scene_Battle[_0x1cc45e(0xc0b)][_0x1cc45e(0x3d4)]=function(){const _0x5ade71=_0x1cc45e,_0x2384e5=Graphics[_0x5ade71(0x885)],_0x16f47e=Math[_0x5ade71(0xb4b)]((Graphics[_0x5ade71(0x46e)]-_0x2384e5)/0x2),_0x25ec6c=this[_0x5ade71(0xc83)](),_0x1513ff=(Graphics[_0x5ade71(0x20f)]-Graphics['boxHeight'])/-0x2;return new Rectangle(_0x16f47e,_0x1513ff,_0x2384e5,_0x25ec6c);},Scene_Battle[_0x1cc45e(0xc0b)]['statusWindowRectBorderStyle']=function(){const _0x4200e6=_0x1cc45e,_0x460178=Graphics['width'],_0x2b6d95=Math[_0x4200e6(0xb4b)]((Graphics[_0x4200e6(0x46e)]-_0x460178)/0x2),_0x39e3b0=this[_0x4200e6(0x621)](0x4,!![]),_0x3b1036=Graphics[_0x4200e6(0x76d)]-_0x39e3b0+(Graphics['height']-Graphics[_0x4200e6(0x76d)])/0x2;return new Rectangle(_0x2b6d95,_0x3b1036,_0x460178,_0x39e3b0);},Scene_Battle[_0x1cc45e(0xc0b)]['partyCommandWindowRectBorderStyle']=function(){const _0x5ab8d9=_0x1cc45e,_0xdb9641=Math[_0x5ab8d9(0x884)](Graphics[_0x5ab8d9(0x885)]/0x3),_0x3e5601=this[_0x5ab8d9(0x7ef)]()?(Graphics[_0x5ab8d9(0x885)]+Graphics[_0x5ab8d9(0x46e)])/0x2-_0xdb9641:(Graphics[_0x5ab8d9(0x885)]-Graphics['boxWidth'])/-0x2,_0x1363ca=this['helpWindowRectBorderStyle'](),_0x4132c9=_0x1363ca['y']+_0x1363ca[_0x5ab8d9(0x20f)],_0x3a31c3=this[_0x5ab8d9(0x726)](),_0xc77d48=_0x3a31c3['y']-_0x4132c9;return new Rectangle(_0x3e5601,_0x4132c9,_0xdb9641,_0xc77d48);},Scene_Battle[_0x1cc45e(0xc0b)][_0x1cc45e(0x7b6)]=function(){const _0x500f51=_0x1cc45e,_0x196963=Math['ceil'](Graphics['width']/0x3),_0x120621=Math['round']((Graphics[_0x500f51(0x46e)]-_0x196963)/0x2),_0x469ca5=this['partyCommandWindowRectBorderStyle'](),_0x4e88e8=_0x469ca5['y'],_0x2cbb19=_0x469ca5[_0x500f51(0x20f)];return new Rectangle(_0x120621,_0x4e88e8,_0x196963,_0x2cbb19);},Scene_Battle['prototype'][_0x1cc45e(0x45c)]=function(){const _0x51ac0f=_0x1cc45e;this[_0x51ac0f(0xc08)]['y']=this[_0x51ac0f(0x317)]['y']+this[_0x51ac0f(0x317)]['height'],this[_0x51ac0f(0x7ef)]()?this[_0x51ac0f(0x2f9)]()===_0x51ac0f(0x3ff)?this[_0x51ac0f(0xc08)]['x']=0x8:this[_0x51ac0f(0xc08)]['x']=-this[_0x51ac0f(0xc08)][_0x51ac0f(0x885)]-0x4:this['_cancelButton']['x']=Graphics[_0x51ac0f(0x885)]-(Graphics['width']-Graphics['boxWidth'])/0x2-this['_cancelButton']['width']-0x4;},VisuMZ['BattleCore']['Scene_Battle_skillWindowRect']=Scene_Battle['prototype'][_0x1cc45e(0x75b)],Scene_Battle[_0x1cc45e(0xc0b)][_0x1cc45e(0x75b)]=function(){const _0x34175b=_0x1cc45e;if(this[_0x34175b(0x2f9)]()===_0x34175b(0x3ff))return this[_0x34175b(0x7b6)]();else return this[_0x34175b(0x7b7)]()?this[_0x34175b(0x268)]():VisuMZ[_0x34175b(0x2c5)][_0x34175b(0x507)][_0x34175b(0xa54)](this);},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0xacc)]=Scene_Battle[_0x1cc45e(0xc0b)][_0x1cc45e(0xc23)],Scene_Battle[_0x1cc45e(0xc0b)][_0x1cc45e(0xc23)]=function(){const _0x176a4d=_0x1cc45e;if(this[_0x176a4d(0x2f9)]()===_0x176a4d(0x3ff))return this['skillItemWindowRectBorderStyle']();else return this[_0x176a4d(0x7b7)]()?this[_0x176a4d(0x268)]():VisuMZ[_0x176a4d(0x2c5)][_0x176a4d(0xacc)][_0x176a4d(0xa54)](this);},Scene_Battle[_0x1cc45e(0xc0b)][_0x1cc45e(0x7b7)]=function(){const _0x48b74b=_0x1cc45e;return VisuMZ[_0x48b74b(0x2c5)][_0x48b74b(0x5fb)][_0x48b74b(0x5d4)][_0x48b74b(0x379)];},Scene_Battle[_0x1cc45e(0xc0b)][_0x1cc45e(0x268)]=function(){const _0x137e60=_0x1cc45e,_0x1f656c=Sprite_Button[_0x137e60(0xc0b)][_0x137e60(0xa6f)]()*0x2+0x4;let _0x328fbd=Graphics[_0x137e60(0x46e)]-_0x1f656c;Imported[_0x137e60(0x598)]&&SceneManager[_0x137e60(0x54a)]()&&(_0x328fbd+=_0x1f656c);const _0x458e80=this[_0x137e60(0x5a0)](),_0x1d5dc2=Graphics[_0x137e60(0x76d)]-_0x458e80-this['statusWindowRect']()[_0x137e60(0x20f)]+Window_BattleStatus[_0x137e60(0xc0b)]['extraHeight'](),_0x3ac78c=0x0;return new Rectangle(_0x3ac78c,_0x458e80,_0x328fbd,_0x1d5dc2);},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x32f)]=Scene_Battle['prototype'][_0x1cc45e(0xb71)],Scene_Battle['prototype'][_0x1cc45e(0xb71)]=function(){const _0x474184=_0x1cc45e;VisuMZ[_0x474184(0x2c5)][_0x474184(0x32f)][_0x474184(0xa54)](this),this[_0x474184(0x6fb)]();},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x5ca)]=Scene_Battle[_0x1cc45e(0xc0b)]['startEnemySelection'],Scene_Battle[_0x1cc45e(0xc0b)]['startEnemySelection']=function(){const _0x2d6a84=_0x1cc45e;VisuMZ['BattleCore']['Scene_Battle_startEnemySelection'][_0x2d6a84(0xa54)](this),this[_0x2d6a84(0xbba)][_0x2d6a84(0x1da)](),this['makeTargetSelectionMoreVisible']();},Scene_Battle[_0x1cc45e(0xc0b)][_0x1cc45e(0x6fb)]=function(){const _0x4cf200=_0x1cc45e,_0x33dea5=this[_0x4cf200(0x2f9)]();['xp','portrait',_0x4cf200(0x3ff)]['includes'](_0x33dea5)&&this[_0x4cf200(0x6a3)]['close'](),(_0x33dea5==='border'||this['isSkillItemWindowsMiddle']())&&(this[_0x4cf200(0x99a)][_0x4cf200(0x9f0)](),this['_itemWindow'][_0x4cf200(0x9f0)]());},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x785)]=Scene_Battle[_0x1cc45e(0xc0b)]['onActorOk'],Scene_Battle['prototype'][_0x1cc45e(0x77a)]=function(){const _0x5de0a9=_0x1cc45e;VisuMZ['BattleCore']['Scene_Battle_onActorOk'][_0x5de0a9(0xa54)](this),this[_0x5de0a9(0x2df)]();},Scene_Battle[_0x1cc45e(0xc0b)][_0x1cc45e(0x57d)]=function(){const _0x5f1693=_0x1cc45e;return[_0x5f1693(0xab8),_0x5f1693(0x3ef),'singleSkill'][_0x5f1693(0x9c4)](this[_0x5f1693(0x6a3)][_0x5f1693(0x6bb)]());},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x7d7)]=Scene_Battle[_0x1cc45e(0xc0b)][_0x1cc45e(0xb5b)],Scene_Battle['prototype'][_0x1cc45e(0xb5b)]=function(){const _0x1464f3=_0x1cc45e;this[_0x1464f3(0x57d)]()?(this[_0x1464f3(0x5b3)][_0x1464f3(0x4e7)](),this[_0x1464f3(0x53a)]['hide'](),this[_0x1464f3(0x6a3)][_0x1464f3(0x3d9)]()):VisuMZ['BattleCore']['Scene_Battle_onActorCancel'][_0x1464f3(0xa54)](this),this['cancelTargetSelectionVisibility']();},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0xa36)]=Scene_Battle['prototype']['onEnemyOk'],Scene_Battle[_0x1cc45e(0xc0b)][_0x1cc45e(0x26c)]=function(){const _0x555891=_0x1cc45e;if(!this[_0x555891(0xbba)][_0x555891(0x48a)]()){this[_0x555891(0xbba)][_0x555891(0x3d9)]();return;}const _0x521b00=BattleManager[_0x555891(0x82b)]();_0x521b00[_0x555891(0x78a)](this[_0x555891(0xbba)]['enemy']()),this[_0x555891(0xbba)][_0x555891(0xcb2)](),VisuMZ[_0x555891(0x2c5)]['Scene_Battle_onEnemyOk']['call'](this),this[_0x555891(0x2df)]();},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x2b5)]=Scene_Battle[_0x1cc45e(0xc0b)][_0x1cc45e(0xa31)],Scene_Battle[_0x1cc45e(0xc0b)][_0x1cc45e(0xa31)]=function(){const _0x4cd20a=_0x1cc45e;this[_0x4cd20a(0x57d)]()?(this[_0x4cd20a(0x5b3)][_0x4cd20a(0x4e7)](),this[_0x4cd20a(0xbba)][_0x4cd20a(0xc4d)](),this[_0x4cd20a(0x6a3)][_0x4cd20a(0x3d9)]()):VisuMZ[_0x4cd20a(0x2c5)][_0x4cd20a(0x2b5)]['call'](this),this['cancelTargetSelectionVisibility'](),this[_0x4cd20a(0xbba)]['closeBattleActorWindow']();},Scene_Battle[_0x1cc45e(0xc0b)][_0x1cc45e(0x2df)]=function(){const _0x45afee=_0x1cc45e,_0x3f7c29=this[_0x45afee(0x2f9)]();(_0x3f7c29==='border'||this[_0x45afee(0x7b7)]())&&(this[_0x45afee(0x99a)][_0x45afee(0x256)](),this[_0x45afee(0x99a)][_0x45afee(0x6e4)]&&this['_skillWindow'][_0x45afee(0x4e7)](),this[_0x45afee(0xb41)][_0x45afee(0x256)](),this['_itemWindow'][_0x45afee(0x6e4)]&&this[_0x45afee(0xb41)][_0x45afee(0x4e7)]());},Scene_Battle['prototype']['cancelTargetSelectionVisibility']=function(){const _0x47d47e=_0x1cc45e,_0xde2b27=this['battleLayoutStyle']();['xp',_0x47d47e(0x76c),_0x47d47e(0x3ff)]['includes'](_0xde2b27)&&this[_0x47d47e(0x6a3)]['open'](),this[_0x47d47e(0x2df)]();},Sprite_Battler[_0x1cc45e(0x4ca)]=VisuMZ[_0x1cc45e(0x2c5)]['Settings'][_0x1cc45e(0x3c1)]['MotionSpeed'],VisuMZ['BattleCore'][_0x1cc45e(0x804)]=Sprite_Battler[_0x1cc45e(0xc0b)]['initMembers'],Sprite_Battler[_0x1cc45e(0xc0b)][_0x1cc45e(0x522)]=function(){const _0x1c9b51=_0x1cc45e;VisuMZ[_0x1c9b51(0x2c5)]['Sprite_Battler_initMembers'][_0x1c9b51(0xa54)](this),this['initMembersBattleCore']();if(this[_0x1c9b51(0x2e2)]===Sprite_Enemy)this['createShadowSprite']();this[_0x1c9b51(0x6f3)]();},Sprite_Battler[_0x1cc45e(0xc0b)][_0x1cc45e(0x7a6)]=function(){const _0x1c643c=_0x1cc45e;this[_0x1c643c(0x29f)]=0x0,this['_baseY']=0x0,this['_floatHeight']=0x0,this[_0x1c643c(0xaa0)]=0x0,this[_0x1c643c(0x333)]=0x0,this[_0x1c643c(0xccc)]=0x0,this[_0x1c643c(0x246)]='Linear',this['_jumpHeight']=0x0,this['_jumpMaxHeight']=0x0,this[_0x1c643c(0x41e)]=0x0,this[_0x1c643c(0x466)]=0x0,this[_0x1c643c(0x3eb)]=0xff,this[_0x1c643c(0x41b)]=0x0,this[_0x1c643c(0xa62)]=0x0,this[_0x1c643c(0x458)]=_0x1c643c(0xbfc),this['_currentAngle']=0x0,this['_targetAngle']=0x0,this[_0x1c643c(0x3cb)]=0x0,this[_0x1c643c(0x3da)]=0x0,this['_angleEasing']=_0x1c643c(0xbfc),this[_0x1c643c(0xa2b)]=!![],this[_0x1c643c(0x7ba)]=0x0,this['_skewY']=0x0,this[_0x1c643c(0xb83)]=0x0,this[_0x1c643c(0x351)]=0x0,this[_0x1c643c(0x482)]=0x0,this[_0x1c643c(0x919)]=0x0,this[_0x1c643c(0x95c)]='Linear',this[_0x1c643c(0x6b3)]=0x1,this['_growY']=0x1,this['_targetGrowX']=0x1,this[_0x1c643c(0x1b2)]=0x1,this[_0x1c643c(0xb8b)]=0x0,this[_0x1c643c(0x769)]=0x0,this[_0x1c643c(0x210)]=_0x1c643c(0xbfc),this[_0x1c643c(0x4cd)]=0x1,this[_0x1c643c(0xad0)]=0x0,this[_0x1c643c(0xb86)]=0x0,this[_0x1c643c(0x619)]=0x0,this['_homeWholeDuration']=0x0,this['_homeEasing']=_0x1c643c(0xbfc),this[_0x1c643c(0x89f)]=0x0,this[_0x1c643c(0x486)]=0x0;},Sprite_Battler[_0x1cc45e(0xc0b)][_0x1cc45e(0x260)]=function(){const _0x2956d8=_0x1cc45e;this['_shadowSprite']=new Sprite(),this[_0x2956d8(0x844)][_0x2956d8(0x9a4)]=ImageManager[_0x2956d8(0x408)](_0x2956d8(0x87b)),this[_0x2956d8(0x844)][_0x2956d8(0x9a4)][_0x2956d8(0xa0b)]=VisuMZ[_0x2956d8(0x2c5)][_0x2956d8(0x5fb)][_0x2956d8(0x3c1)][_0x2956d8(0x7a9)],this[_0x2956d8(0x844)][_0x2956d8(0xcf1)]['x']=0.5,this['_shadowSprite']['anchor']['y']=0.5,this['_shadowSprite']['y']=-0x2,this[_0x2956d8(0x844)][_0x2956d8(0x9b2)]=![],this[_0x2956d8(0x84d)](this[_0x2956d8(0x844)]);},Sprite_Battler['prototype'][_0x1cc45e(0x6f3)]=function(){const _0x593e55=_0x1cc45e;this[_0x593e55(0x89a)]=new Sprite(),this['_distortionSprite']['anchor']['x']=0.5,this[_0x593e55(0x89a)][_0x593e55(0xcf1)]['y']=0.5,this[_0x593e55(0x84d)](this['_distortionSprite']);},Sprite_Battler[_0x1cc45e(0xc0b)][_0x1cc45e(0x6b8)]=function(){const _0x5b3b56=_0x1cc45e;if(this[_0x5b3b56(0x58f)]&&this[_0x5b3b56(0x58f)]()){Sprite[_0x5b3b56(0xc0b)][_0x5b3b56(0x6b8)][_0x5b3b56(0xa54)](this);return;}const _0x34c3e8=this[_0x5b3b56(0x89a)];if(!_0x34c3e8)return;!_0x34c3e8[_0x5b3b56(0x2d5)]&&_0x34c3e8['_createColorFilter'](),_0x34c3e8[_0x5b3b56(0x2d5)][_0x5b3b56(0x29d)](this[_0x5b3b56(0xab9)]),_0x34c3e8[_0x5b3b56(0x2d5)][_0x5b3b56(0x872)](this['_blendColor']),_0x34c3e8[_0x5b3b56(0x2d5)][_0x5b3b56(0x45d)](this[_0x5b3b56(0x603)]);},Sprite_Battler[_0x1cc45e(0xc0b)][_0x1cc45e(0x3e9)]=function(){const _0x441c2c=_0x1cc45e;if(!this[_0x441c2c(0x89a)])return;if(this[_0x441c2c(0x844)]){const _0x174521=this[_0x441c2c(0x5b9)](this[_0x441c2c(0x89a)]);this[_0x441c2c(0x4b5)](this[_0x441c2c(0x844)],_0x174521),this[_0x441c2c(0x206)]();}this[_0x441c2c(0x92b)]&&this['_distortionSprite'][_0x441c2c(0x84d)](this[_0x441c2c(0x92b)]),this[_0x441c2c(0x248)]&&this[_0x441c2c(0x89a)][_0x441c2c(0x84d)](this['_weaponSprite']),this['_mainSprite']&&this['_distortionSprite']['addChild'](this[_0x441c2c(0xce4)]),this[_0x441c2c(0x7fe)]&&this[_0x441c2c(0x89a)]['addChild'](this['_injectAnimationSprite']),this[_0x441c2c(0xa95)]&&this[_0x441c2c(0x89a)][_0x441c2c(0x84d)](this['_dragonbonesSpriteContainer']);},Sprite_Battler['prototype']['updateShadowVisibility']=function(){const _0x3e1ee9=_0x1cc45e;if(!this[_0x3e1ee9(0x844)])return;if(this[_0x3e1ee9(0x848)]&&this[_0x3e1ee9(0x848)][_0x3e1ee9(0x64b)]()){const _0x49d94d=this['_shadowSprite'][_0x3e1ee9(0x9a4)];this[_0x3e1ee9(0x844)][_0x3e1ee9(0xc1c)](0x0,0x0,_0x49d94d[_0x3e1ee9(0x885)],_0x49d94d[_0x3e1ee9(0x20f)]);}else this['_shadowSprite'][_0x3e1ee9(0xc1c)](0x0,0x0,0x0,0x0);},Sprite_Battler['prototype']['damageContainer']=function(){const _0x31bafb=_0x1cc45e;return SceneManager[_0x31bafb(0x499)]()?SceneManager['_scene']['_spriteset'][_0x31bafb(0xc1e)]:this[_0x31bafb(0xc96)];},Sprite_Battler[_0x1cc45e(0xc0b)][_0x1cc45e(0x4d8)]=function(_0x3477a9,_0x22cef7){const _0x543e6d=_0x1cc45e;if(!this[_0x543e6d(0x848)][_0x543e6d(0x24d)]())return;if(BattleManager['shouldHideBattleEndPopups']())return;const _0x35a84b=VisuMZ[_0x543e6d(0x2c5)]['Settings']['Damage'],_0x4ab2fe=new Sprite_Damage();_0x4ab2fe[_0x543e6d(0x5f5)]=_0x35a84b[_0x543e6d(0x7ad)],this['sortDamageSprites'](_0x4ab2fe),_0x4ab2fe[_0x543e6d(0x4d8)](_0x3477a9,_0x22cef7),this[_0x543e6d(0x6c1)](_0x4ab2fe);},Sprite_Battler[_0x1cc45e(0xc0b)][_0x1cc45e(0x7b3)]=function(_0x2edd52,_0x2c302f,_0x3e2bb4){const _0x60a9b=_0x1cc45e;if(!this[_0x60a9b(0x848)][_0x60a9b(0x24d)]())return;if(BattleManager['shouldHideBattleEndPopups']())return;const _0x4cef7a=VisuMZ[_0x60a9b(0x2c5)][_0x60a9b(0x5fb)][_0x60a9b(0x1de)],_0x48a650=new Sprite_Damage();_0x48a650['_duration']=_0x4cef7a[_0x60a9b(0x7ad)],this['sortDamageSprites'](_0x48a650),_0x48a650['setupIconTextPopup'](_0x2edd52,_0x2c302f,_0x3e2bb4),this[_0x60a9b(0x6c1)](_0x48a650);},Sprite_Battler[_0x1cc45e(0xc0b)][_0x1cc45e(0xca9)]=function(){const _0x19e549=_0x1cc45e;if(!this[_0x19e549(0x848)]['isDamagePopupRequested']())return;while(this[_0x19e549(0x848)][_0x19e549(0xafe)]()){this[_0x19e549(0x848)]['isSpriteVisible']()&&this[_0x19e549(0x9b4)]();}this[_0x19e549(0x848)][_0x19e549(0x519)](),this[_0x19e549(0x848)]['clearResult']();},Sprite_Battler['prototype']['createDamageSprite']=function(){const _0x487931=_0x1cc45e;if(BattleManager[_0x487931(0x2fd)]())return;const _0x46d082=VisuMZ[_0x487931(0x2c5)][_0x487931(0x5fb)][_0x487931(0x1de)],_0x40df4b=new Sprite_Damage();_0x40df4b[_0x487931(0x5f5)]=_0x46d082[_0x487931(0x7ad)],this[_0x487931(0x6dc)](_0x40df4b),_0x40df4b[_0x487931(0x620)](this[_0x487931(0x848)]),_0x40df4b[_0x487931(0x65d)](this[_0x487931(0x848)]),this[_0x487931(0x6c1)](_0x40df4b);},Sprite_Battler[_0x1cc45e(0xc0b)][_0x1cc45e(0x6c1)]=function(_0x535bbc){const _0x23c450=_0x1cc45e;this[_0x23c450(0x772)][_0x23c450(0xca6)](_0x535bbc);if(this[_0x23c450(0x939)]()){const _0x47c40c=SceneManager[_0x23c450(0x659)]['_statusWindow'];if(_0x47c40c)_0x47c40c[_0x23c450(0x6c1)](_0x535bbc,this[_0x23c450(0x848)]);}else{this[_0x23c450(0xc81)]()[_0x23c450(0x84d)](_0x535bbc);if(SceneManager[_0x23c450(0x6c0)]())_0x535bbc[_0x23c450(0x9f1)]['x']=-0x1;}},Sprite_Battler[_0x1cc45e(0xc0b)]['isShownOnBattlePortrait']=function(){const _0x47360b=_0x1cc45e;return!$gameSystem[_0x47360b(0xbb2)]()&&this[_0x47360b(0x848)]&&this[_0x47360b(0x848)][_0x47360b(0x864)]();return!$gameSystem[_0x47360b(0xbb2)]()&&this[_0x47360b(0x848)]&&this[_0x47360b(0x848)]['isActor']()&&Window_BattleStatus[_0x47360b(0xc0b)][_0x47360b(0x2f9)]()===_0x47360b(0x76c);},Sprite_Battler[_0x1cc45e(0xc0b)]['sortDamageSprites']=function(_0x4c98b8){const _0x43c0c1=_0x1cc45e;this[_0x43c0c1(0x8a4)](_0x4c98b8,!![]);const _0x2c5078=VisuMZ['BattleCore'][_0x43c0c1(0x5fb)][_0x43c0c1(0x1de)],_0x391e18=SceneManager[_0x43c0c1(0x6c0)]()?-0x1:0x1;if(_0x2c5078[_0x43c0c1(0xca0)])for(const _0x36c103 of this['_damages']){_0x36c103['x']+=_0x2c5078[_0x43c0c1(0x436)]*_0x391e18,_0x36c103['y']+=_0x2c5078[_0x43c0c1(0x7ce)];}else{const _0x59768f=this[_0x43c0c1(0x772)][this[_0x43c0c1(0x772)][_0x43c0c1(0x96d)]-0x1];_0x59768f&&(_0x4c98b8['x']=_0x59768f['x']+_0x2c5078[_0x43c0c1(0x436)]*_0x391e18,_0x4c98b8['y']=_0x59768f['y']+_0x2c5078['PopupShiftY']);}},Sprite_Battler[_0x1cc45e(0xc0b)][_0x1cc45e(0x8a4)]=function(_0x434ec5,_0x42cec9){const _0x1f0a1d=_0x1cc45e,_0x4626a1=SceneManager['isBattleFlipped']()?-0x1:0x1;let _0x1213ab=this['_baseX'];_0x1213ab+=this[_0x1f0a1d(0x64d)]();let _0xdacfa6=this[_0x1f0a1d(0xb2d)];const _0x4bb3f7=this[_0x1f0a1d(0x89a)][_0x1f0a1d(0x9f1)]['y'];_0xdacfa6+=this[_0x1f0a1d(0x7d9)]();const _0x2e29e4=SceneManager[_0x1f0a1d(0x659)][_0x1f0a1d(0x5b3)];if(_0x2e29e4&&this[_0x1f0a1d(0xc96)]===_0x2e29e4){_0x1213ab+=_0x2e29e4['x']-this[_0x1f0a1d(0x95d)]();const _0x5d042e=_0x2e29e4[_0x1f0a1d(0x787)]()*0x3/0x4;_0xdacfa6=_0x2e29e4['y']+_0x5d042e,_0xdacfa6=Math[_0x1f0a1d(0x6cb)](_0xdacfa6,_0x2e29e4['y']+this['y']-this['height']+_0x5d042e);}_0x434ec5['x']=Math[_0x1f0a1d(0xb4b)](_0x1213ab+this['damageOffsetX']()*_0x4626a1),_0x434ec5['y']=Math[_0x1f0a1d(0xb4b)](_0xdacfa6+this['damageOffsetY']());},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x1c1)]=Sprite_Battler[_0x1cc45e(0xc0b)][_0x1cc45e(0x95d)],Sprite_Battler[_0x1cc45e(0xc0b)][_0x1cc45e(0x95d)]=function(){const _0x2f0374=_0x1cc45e;let _0xe6f9e0=VisuMZ[_0x2f0374(0x2c5)]['Sprite_Battler_damageOffsetX'][_0x2f0374(0xa54)](this),_0x33fa9b=VisuMZ[_0x2f0374(0x2c5)]['Settings'][_0x2f0374(0x1de)][_0x2f0374(0x3d3)]||0x0;return _0x33fa9b+=this[_0x2f0374(0x848)][_0x2f0374(0x818)](),Math[_0x2f0374(0xb4b)](_0xe6f9e0+_0x33fa9b);},VisuMZ['BattleCore'][_0x1cc45e(0x605)]=Sprite_Battler['prototype'][_0x1cc45e(0x96b)],Sprite_Battler[_0x1cc45e(0xc0b)]['damageOffsetY']=function(){const _0x11a52c=_0x1cc45e;let _0x817090=VisuMZ['BattleCore'][_0x11a52c(0x605)][_0x11a52c(0xa54)](this);switch(this[_0x11a52c(0x848)][_0x11a52c(0x8d2)]()){case'head':_0x817090-=this[_0x11a52c(0x20f)]*this[_0x11a52c(0x9f1)]['y'];break;case _0x11a52c(0x669):_0x817090-=this[_0x11a52c(0x20f)]*this['scale']['y']*0.5;break;}let _0x51691b=VisuMZ[_0x11a52c(0x2c5)]['Settings'][_0x11a52c(0x1de)][_0x11a52c(0xac1)]||0x0;return _0x51691b+=this[_0x11a52c(0x848)]['damagePopupOffsetY'](),Math['round'](_0x817090+_0x51691b);},Sprite_Actor['prototype'][_0x1cc45e(0x95d)]=function(){const _0x51e352=_0x1cc45e;return Sprite_Battler[_0x51e352(0xc0b)][_0x51e352(0x95d)]['call'](this);},Sprite_Actor[_0x1cc45e(0xc0b)][_0x1cc45e(0x96b)]=function(){const _0x3037f7=_0x1cc45e;return Sprite_Battler[_0x3037f7(0xc0b)][_0x3037f7(0x96b)][_0x3037f7(0xa54)](this);},Sprite_Battler['prototype'][_0x1cc45e(0x7f8)]=function(_0x5a9edb){const _0x25933e=_0x1cc45e;this[_0x25933e(0x939)]()?SceneManager[_0x25933e(0x659)][_0x25933e(0x5b3)][_0x25933e(0x2e5)](_0x5a9edb):(this[_0x25933e(0xc81)]()[_0x25933e(0x630)](_0x5a9edb),this[_0x25933e(0x772)][_0x25933e(0x280)](_0x5a9edb),_0x5a9edb[_0x25933e(0x826)]());},VisuMZ['BattleCore'][_0x1cc45e(0x3f2)]=Sprite_Battler[_0x1cc45e(0xc0b)][_0x1cc45e(0x98c)],Sprite_Battler[_0x1cc45e(0xc0b)][_0x1cc45e(0x98c)]=function(_0x277e55,_0x8af8b4){const _0x28abdc=_0x1cc45e,_0x1c73a4=VisuMZ['BattleCore'][_0x28abdc(0x5fb)];if(this['constructor']===Sprite_Actor)_0x277e55+=_0x1c73a4[_0x28abdc(0x3c1)]['OffsetX']||0x0,_0x8af8b4+=_0x1c73a4['Actor'][_0x28abdc(0x6e0)]||0x0;else this[_0x28abdc(0x2e2)]===Sprite_Enemy&&(_0x277e55+=_0x1c73a4['Enemy']['OffsetX']||0x0,_0x8af8b4+=_0x1c73a4['Enemy']['OffsetY']||0x0);this[_0x28abdc(0x848)]&&(_0x277e55=this[_0x28abdc(0x848)][_0x28abdc(0x5a6)]??_0x277e55,_0x8af8b4=this[_0x28abdc(0x848)][_0x28abdc(0x913)]??_0x8af8b4),VisuMZ['BattleCore'][_0x28abdc(0x3f2)][_0x28abdc(0xa54)](this,_0x277e55,_0x8af8b4),this[_0x28abdc(0xad0)]=this[_0x28abdc(0x26e)],this[_0x28abdc(0xb86)]=this['_homeY'],this[_0x28abdc(0x619)]=0x0,this[_0x28abdc(0x93f)]=0x0,this['_homeEasing']=_0x28abdc(0xbfc);},VisuMZ[_0x1cc45e(0x2c5)]['Sprite_Battler_update']=Sprite_Battler[_0x1cc45e(0xc0b)][_0x1cc45e(0x90f)],Sprite_Battler[_0x1cc45e(0xc0b)]['update']=function(){const _0x29e83c=_0x1cc45e;VisuMZ[_0x29e83c(0x2c5)][_0x29e83c(0x801)][_0x29e83c(0xa54)](this),!this[_0x29e83c(0x848)]&&this[_0x29e83c(0x99c)]&&(this[_0x29e83c(0x99c)][_0x29e83c(0x9b2)]=![]);},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x427)]=Sprite_Battler[_0x1cc45e(0xc0b)][_0x1cc45e(0x947)],Sprite_Battler[_0x1cc45e(0xc0b)][_0x1cc45e(0x947)]=function(){const _0x2660fa=_0x1cc45e;this['updateScale'](),this['updateSkew'](),this[_0x2660fa(0xce1)](),this['updateFlip'](),VisuMZ[_0x2660fa(0x2c5)]['Sprite_Battler_updateMain'][_0x2660fa(0xa54)](this),this[_0x2660fa(0x876)](),this[_0x2660fa(0xb65)]();if(this[_0x2660fa(0x2e2)]===Sprite_Enemy)this[_0x2660fa(0x3e1)]();},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0xbbf)]=Sprite_Battler[_0x1cc45e(0xc0b)][_0x1cc45e(0x211)],Sprite_Battler['prototype'][_0x1cc45e(0x211)]=function(){const _0x75c226=_0x1cc45e;this['updateHomeMove'](),VisuMZ[_0x75c226(0x2c5)][_0x75c226(0xbbf)][_0x75c226(0xa54)](this),this['updatePositionBattleCore'](),this[_0x75c226(0x4ff)]();},Sprite_Battler[_0x1cc45e(0xc0b)]['updateSelectionEffect']=function(){const _0x417252=_0x1cc45e,_0x1d6455=this[_0x417252(0xc74)]();if(this[_0x417252(0x848)]['isSelected']())this['_selectionEffectCount']++,Graphics[_0x417252(0x2ad)]%0x1e<0xf?_0x1d6455[_0x417252(0x872)]([0xff,0xff,0xff,0x40]):_0x1d6455['setBlendColor']([0x0,0x0,0x0,0x0]);else this[_0x417252(0x994)]>0x0&&(this[_0x417252(0x994)]=0x0,_0x1d6455[_0x417252(0x872)]([0x0,0x0,0x0,0x0]));},Sprite_Battler[_0x1cc45e(0xc0b)][_0x1cc45e(0xa16)]=function(_0x32da3c,_0x372c56){const _0xb7d15c=_0x1cc45e,_0x2f7507=VisuMZ[_0xb7d15c(0x2c5)]['Settings'];if(this[_0xb7d15c(0x2e2)]===Sprite_Actor)_0x32da3c+=_0x2f7507[_0xb7d15c(0x3c1)][_0xb7d15c(0x564)]||0x0,_0x372c56+=_0x2f7507['Actor']['OffsetY']||0x0;else this[_0xb7d15c(0x2e2)]===Sprite_Enemy&&(_0x32da3c+=_0x2f7507[_0xb7d15c(0x1a9)][_0xb7d15c(0x564)]||0x0,_0x372c56+=_0x2f7507[_0xb7d15c(0x1a9)][_0xb7d15c(0x6e0)]||0x0);const _0x224733=_0x32da3c-this[_0xb7d15c(0x26e)],_0x5c706f=_0x372c56-this[_0xb7d15c(0x45b)];this[_0xb7d15c(0x26e)]=_0x32da3c,this['_homeY']=_0x372c56,this[_0xb7d15c(0x675)]-=_0x224733,this['_offsetY']-=_0x5c706f,this[_0xb7d15c(0xc67)]-=_0x224733,this[_0xb7d15c(0xc06)]-=_0x5c706f,this[_0xb7d15c(0x211)]();},Sprite_Battler[_0x1cc45e(0xc0b)][_0x1cc45e(0xa21)]=function(_0x16421d,_0x5e7624,_0x5ac0eb,_0x35352d){const _0x59f80e=_0x1cc45e,_0x1e1c72=VisuMZ[_0x59f80e(0x2c5)][_0x59f80e(0x5fb)];if(this[_0x59f80e(0x2e2)]===Sprite_Actor)_0x16421d+=_0x1e1c72[_0x59f80e(0x3c1)]['OffsetX']||0x0,_0x5e7624+=_0x1e1c72['Actor'][_0x59f80e(0x6e0)]||0x0;else this[_0x59f80e(0x2e2)]===Sprite_Enemy&&(_0x16421d+=_0x1e1c72['Enemy'][_0x59f80e(0x564)]||0x0,_0x5e7624+=_0x1e1c72[_0x59f80e(0x1a9)][_0x59f80e(0x6e0)]||0x0);(this[_0x59f80e(0xad0)]!==_0x16421d||this[_0x59f80e(0xb86)]!==_0x5e7624)&&(this['_targetHomeX']=_0x16421d,this[_0x59f80e(0xb86)]=_0x5e7624,this[_0x59f80e(0x619)]=_0x5ac0eb,this[_0x59f80e(0x93f)]=_0x5ac0eb,this[_0x59f80e(0x905)]=_0x35352d,_0x5ac0eb<=0x0&&this['onHomeMoveEnd']());},Sprite_Battler['prototype'][_0x1cc45e(0x1e6)]=function(){const _0x572de6=_0x1cc45e;if(this['_homeDuration']<=0x0)return;const _0x5712bd=this[_0x572de6(0x619)],_0x38fbc2=this[_0x572de6(0x93f)],_0x2e73ff=this[_0x572de6(0x905)];Imported[_0x572de6(0x598)]?(this[_0x572de6(0x26e)]=this['applyEasing'](this[_0x572de6(0x26e)],this[_0x572de6(0xad0)],_0x5712bd,_0x38fbc2,_0x2e73ff),this[_0x572de6(0x45b)]=this[_0x572de6(0x67b)](this[_0x572de6(0x45b)],this[_0x572de6(0xb86)],_0x5712bd,_0x38fbc2,_0x2e73ff)):(this[_0x572de6(0x26e)]=(this[_0x572de6(0x26e)]*(_0x5712bd-0x1)+this[_0x572de6(0xad0)])/_0x5712bd,this[_0x572de6(0x45b)]=(this[_0x572de6(0x45b)]*(_0x5712bd-0x1)+this[_0x572de6(0xb86)])/_0x5712bd);this[_0x572de6(0x619)]--;if(this[_0x572de6(0x619)]<=0x0)this[_0x572de6(0xb17)]();},Sprite_Battler['prototype'][_0x1cc45e(0xb17)]=function(){const _0x42a7b8=_0x1cc45e;this[_0x42a7b8(0x26e)]=this[_0x42a7b8(0xad0)],this[_0x42a7b8(0x45b)]=this[_0x42a7b8(0xb86)];},Sprite_Battler[_0x1cc45e(0xc0b)][_0x1cc45e(0x40e)]=function(){const _0x174bd7=_0x1cc45e;this[_0x174bd7(0x29f)]=this['x'],this[_0x174bd7(0xb2d)]=this['y'],this['updateFloat'](),this[_0x174bd7(0xaf9)](),this['x']+=this[_0x174bd7(0x64d)](),this['y']+=this[_0x174bd7(0x7d9)](),this['y']+=this[_0x174bd7(0x993)](),this['x']=Math[_0x174bd7(0x884)](this['x']),this['y']=Math['floor'](this['y']);},Sprite_Battler[_0x1cc45e(0xc0b)]['extraPositionX']=function(){let _0x25ed2a=0x0;return _0x25ed2a;},Sprite_Battler[_0x1cc45e(0xc0b)]['extraPositionY']=function(){const _0x586ef6=_0x1cc45e;let _0x2c11eb=0x0;return this[_0x586ef6(0x848)]&&!this[_0x586ef6(0x848)][_0x586ef6(0x614)]()&&(_0x2c11eb-=this[_0x586ef6(0x47b)],_0x2c11eb-=this[_0x586ef6(0x780)]),_0x2c11eb;},Sprite_Battler[_0x1cc45e(0xc0b)][_0x1cc45e(0x993)]=function(){const _0x20f32c=_0x1cc45e;let _0x52c49e=0x0;if(this['_distortionSprite']&&this[_0x20f32c(0x2e2)]!==Sprite_SvEnemy){const _0xcf9755=this[_0x20f32c(0x89a)][_0x20f32c(0x9f1)]['y'];_0x52c49e-=(_0xcf9755-0x1)*this[_0x20f32c(0x20f)];}return _0x52c49e;},Sprite_Battler[_0x1cc45e(0xc0b)][_0x1cc45e(0x409)]=function(){const _0x39e8b0=_0x1cc45e,_0x53c82c=this[_0x39e8b0(0x848)]&&this[_0x39e8b0(0x848)][_0x39e8b0(0x90b)]();this[_0x39e8b0(0x4cd)]=(_0x53c82c?-0x1:0x1)*Math[_0x39e8b0(0xb40)](this['scale']['x']);},Sprite_Battler['prototype']['startFloat']=function(_0x4444bb,_0x3de011,_0x4342b7){const _0xe8f27=_0x1cc45e;if(!this[_0xe8f27(0x9c5)]())return;if(this[_0xe8f27(0xaa0)]===_0x4444bb)return;this['_targetFloatHeight']=_0x4444bb,this[_0xe8f27(0x333)]=_0x3de011,this[_0xe8f27(0xccc)]=_0x3de011,this[_0xe8f27(0x246)]=_0x4342b7||_0xe8f27(0xbfc);if(_0x3de011<=0x0)this[_0xe8f27(0x47b)]=_0x4444bb;},Sprite_Battler[_0x1cc45e(0xc0b)][_0x1cc45e(0x72f)]=function(){const _0xa7b6a6=_0x1cc45e;if(this['_floatDuration']<=0x0)return;const _0x2f0864=this['_floatDuration'],_0x18b519=this['_floatWholeDuration'],_0x12941f=this[_0xa7b6a6(0x246)];Imported['VisuMZ_0_CoreEngine']?this[_0xa7b6a6(0x47b)]=this[_0xa7b6a6(0x67b)](this[_0xa7b6a6(0x47b)],this[_0xa7b6a6(0xaa0)],_0x2f0864,_0x18b519,_0x12941f):this['_floatHeight']=(this[_0xa7b6a6(0x47b)]*(_0x2f0864-0x1)+this[_0xa7b6a6(0xaa0)])/_0x2f0864;this[_0xa7b6a6(0x333)]--;if(this[_0xa7b6a6(0x333)]<=0x0)this[_0xa7b6a6(0x471)]();},Sprite_Battler[_0x1cc45e(0xc0b)][_0x1cc45e(0x471)]=function(){const _0x2d30e5=_0x1cc45e;this['_floatHeight']=this[_0x2d30e5(0xaa0)];},Sprite_Battler['prototype'][_0x1cc45e(0x39c)]=function(){const _0x51a63a=_0x1cc45e;return this[_0x51a63a(0x333)]>0x0;},Sprite_Battler[_0x1cc45e(0xc0b)]['startJump']=function(_0x10bdaa,_0x47d21d){const _0x2bcd99=_0x1cc45e;if(!this[_0x2bcd99(0x9c5)]())return;if(_0x47d21d<=0x0)return;this[_0x2bcd99(0xb6b)]=_0x10bdaa,this[_0x2bcd99(0x41e)]=_0x47d21d,this[_0x2bcd99(0x466)]=_0x47d21d;},Sprite_Battler[_0x1cc45e(0xc0b)][_0x1cc45e(0xaf9)]=function(){const _0x5485eb=_0x1cc45e;if(this[_0x5485eb(0x41e)]<=0x0)return;const _0x1b5ebc=this['_jumpWholeDuration']-this[_0x5485eb(0x41e)],_0x31612b=this[_0x5485eb(0x466)]/0x2,_0x498c09=this[_0x5485eb(0xb6b)],_0x165be8=-_0x498c09/Math['pow'](_0x31612b,0x2);this['_jumpHeight']=_0x165be8*Math[_0x5485eb(0xc69)](_0x1b5ebc-_0x31612b,0x2)+_0x498c09,this[_0x5485eb(0x41e)]--;if(this[_0x5485eb(0x41e)]<=0x0)return this[_0x5485eb(0x39d)]();},Sprite_Battler[_0x1cc45e(0xc0b)][_0x1cc45e(0x39d)]=function(){const _0x3512da=_0x1cc45e;this[_0x3512da(0x780)]=0x0;},Sprite_Battler['prototype']['isJumping']=function(){const _0x442037=_0x1cc45e;return this[_0x442037(0x41e)]>0x0;},Sprite_Battler[_0x1cc45e(0xc0b)]['startOpacity']=function(_0x145180,_0x2826d2,_0x410b11){const _0x1a7280=_0x1cc45e;if(this[_0x1a7280(0x3eb)]===_0x145180)return;this[_0x1a7280(0x3eb)]=_0x145180,this[_0x1a7280(0x41b)]=_0x2826d2,this['_opacityWholeDuration']=_0x2826d2,this['_opacityEasing']=_0x410b11||_0x1a7280(0xbfc);if(_0x2826d2<=0x0)this[_0x1a7280(0x2f3)]=_0x145180;},Sprite_Battler['prototype'][_0x1cc45e(0x4ff)]=function(){const _0x1dde96=_0x1cc45e;if(this['constructor']['name']==='Sprite_SvEnemy')return;if(this[_0x1dde96(0x41b)]<=0x0)return;const _0x16bc82=this[_0x1dde96(0x41b)],_0x1caa85=this[_0x1dde96(0xa62)],_0x19f7cd=this[_0x1dde96(0x458)];Imported['VisuMZ_0_CoreEngine']?this[_0x1dde96(0x2f3)]=this['applyEasing'](this[_0x1dde96(0x2f3)],this['_targetOpacity'],_0x16bc82,_0x1caa85,_0x19f7cd):this[_0x1dde96(0x2f3)]=(this[_0x1dde96(0x2f3)]*(_0x16bc82-0x1)+this[_0x1dde96(0x3eb)])/_0x16bc82;this[_0x1dde96(0x41b)]--;if(this[_0x1dde96(0x41b)]<=0x0)this[_0x1dde96(0x511)]();},Sprite_Battler['prototype'][_0x1cc45e(0x511)]=function(){this['opacity']=this['_targetOpacity'];},Sprite_Battler[_0x1cc45e(0xc0b)][_0x1cc45e(0x530)]=function(){const _0x128220=_0x1cc45e;return this[_0x128220(0x41b)]>0x0;},Sprite_Battler[_0x1cc45e(0xc0b)][_0x1cc45e(0x3e1)]=function(){const _0x1e338e=_0x1cc45e;this[_0x1e338e(0x844)][_0x1e338e(0x9b2)]=this[_0x1e338e(0x848)][_0x1e338e(0x842)](),this[_0x1e338e(0x2fc)]();},Sprite_Battler[_0x1cc45e(0xc0b)][_0x1cc45e(0x2fc)]=function(){const _0x5f1d6b=_0x1cc45e;if(!this[_0x5f1d6b(0x844)])return;this[_0x5f1d6b(0x844)]['y']=this[_0x5f1d6b(0xb2d)]-this['y']-0x2;},Sprite_Battler[_0x1cc45e(0xc0b)][_0x1cc45e(0x228)]=function(){const _0x5a335b=_0x1cc45e;if(!this[_0x5a335b(0x848)])return;this[_0x5a335b(0x35f)]=this[_0x5a335b(0x848)][_0x5a335b(0x1df)](),this['_shadowScaleY']=this[_0x5a335b(0x848)][_0x5a335b(0xa51)]();},Game_BattlerBase[_0x1cc45e(0xc0b)][_0x1cc45e(0x1df)]=function(){const _0x23f642=_0x1cc45e,_0x23eed3=this['isActor']()?this[_0x23f642(0x72d)]():this[_0x23f642(0x48a)]();if(_0x23eed3){const _0x1a0799=_0x23eed3['note'];if(_0x1a0799[_0x23f642(0xc6a)](/<SIDEVIEW SHADOW (?:SCALE|SCALE X):[ ](\d+)([%％])>/i))return Number(RegExp['$1'])*0.01;else{if(_0x1a0799[_0x23f642(0xc6a)](/<SIDEVIEW SHADOW (?:SCALE|SCALE X):[ ](.*)>/i))return Number(RegExp['$1'])||0x0;}}return 0x1;},Game_BattlerBase[_0x1cc45e(0xc0b)][_0x1cc45e(0xa51)]=function(){const _0x3ed6c3=_0x1cc45e,_0x31e103=this['isActor']()?this[_0x3ed6c3(0x72d)]():this['enemy']();if(_0x31e103){const _0x154b3f=_0x31e103[_0x3ed6c3(0xbe6)];if(_0x154b3f[_0x3ed6c3(0xc6a)](/<SIDEVIEW SHADOW (?:SCALE|SCALE Y):[ ](\d+)([%％])>/i))return Number(RegExp['$1'])*0.01;else{if(_0x154b3f[_0x3ed6c3(0xc6a)](/<SIDEVIEW SHADOW (?:SCALE|SCALE Y):[ ](.*)>/i))return Number(RegExp['$1'])||0x0;}}return 0x1;},Sprite_Battler['prototype'][_0x1cc45e(0x700)]=function(){const _0x315e81=_0x1cc45e;if(this[_0x315e81(0x2e2)]===Sprite_SvEnemy)return;this[_0x315e81(0x4b4)](),this[_0x315e81(0xb80)]();},Sprite_Battler[_0x1cc45e(0xc0b)][_0x1cc45e(0xb80)]=function(){const _0x1e5143=_0x1cc45e,_0x4e9433=this[_0x1e5143(0x89a)];_0x4e9433&&(_0x4e9433[_0x1e5143(0x9f1)]['x']=this[_0x1e5143(0x624)](),_0x4e9433[_0x1e5143(0x9f1)]['y']=this[_0x1e5143(0x1c0)]());},Sprite_Battler['prototype'][_0x1cc45e(0x624)]=function(){const _0x16e540=_0x1cc45e;let _0x56f3e8=0x1;return _0x56f3e8*=this[_0x16e540(0x4cd)],_0x56f3e8*=this[_0x16e540(0x6b3)],_0x56f3e8;},Sprite_Battler[_0x1cc45e(0xc0b)][_0x1cc45e(0x1c0)]=function(){const _0xeb688=_0x1cc45e;let _0x174312=0x1;return _0x174312*=this[_0xeb688(0x611)],_0x174312;},Sprite_Battler['prototype'][_0x1cc45e(0x2cc)]=function(){const _0xee5749=_0x1cc45e;return this[_0xee5749(0x885)]*this['mainSpriteScaleX']();},Sprite_Battler[_0x1cc45e(0xc0b)][_0x1cc45e(0x75e)]=function(){const _0x3cb1c7=_0x1cc45e;return this[_0x3cb1c7(0x20f)]*this[_0x3cb1c7(0x1c0)]();},Sprite_Battler[_0x1cc45e(0xc0b)][_0x1cc45e(0x541)]=function(_0x5ceca6,_0x229e93,_0x31a2a6,_0x1f4991){const _0x176f31=_0x1cc45e;if(!this[_0x176f31(0x9c5)]())return;if(!this[_0x176f31(0x89a)])return;if(this['_targetGrowX']===_0x5ceca6&&this[_0x176f31(0x1b2)]===_0x229e93)return;this[_0x176f31(0x230)]=_0x5ceca6,this[_0x176f31(0x1b2)]=_0x229e93,this[_0x176f31(0xb8b)]=_0x31a2a6,this[_0x176f31(0x769)]=_0x31a2a6,this[_0x176f31(0x210)]=_0x1f4991||'Linear',_0x31a2a6<=0x0&&(this[_0x176f31(0x6b3)]=this[_0x176f31(0x230)],this['_growY']=this[_0x176f31(0x1b2)]);},Sprite_Battler[_0x1cc45e(0xc0b)][_0x1cc45e(0x4b4)]=function(){const _0x31f68e=_0x1cc45e;if(this[_0x31f68e(0xb8b)]<=0x0)return;if(!this[_0x31f68e(0x89a)])return;const _0x501939=this['_growDuration'],_0x31653a=this[_0x31f68e(0x769)],_0x487d66=this[_0x31f68e(0x210)];Imported[_0x31f68e(0x598)]?(this['_growX']=this[_0x31f68e(0x67b)](this['_growX'],this['_targetGrowX'],_0x501939,_0x31653a,_0x487d66),this[_0x31f68e(0x611)]=this['applyEasing'](this['_growY'],this[_0x31f68e(0x1b2)],_0x501939,_0x31653a,_0x487d66)):(this[_0x31f68e(0x6b3)]=(this[_0x31f68e(0x6b3)]*(_0x501939-0x1)+this[_0x31f68e(0x230)])/_0x501939,this[_0x31f68e(0x611)]=(this['_growY']*(_0x501939-0x1)+this[_0x31f68e(0x1b2)])/_0x501939);this[_0x31f68e(0xb8b)]--;if(this[_0x31f68e(0xb8b)]<=0x0)this[_0x31f68e(0xbb9)]();},Sprite_Battler[_0x1cc45e(0xc0b)][_0x1cc45e(0xbb9)]=function(){const _0x461d1c=_0x1cc45e;this['_growX']=this['_targetGrowX'],this['_growY']=this[_0x461d1c(0x1b2)];},Sprite_Battler[_0x1cc45e(0xc0b)][_0x1cc45e(0x847)]=function(){const _0x498431=_0x1cc45e;return this[_0x498431(0xb8b)]>0x0;},Sprite_Battler[_0x1cc45e(0xc0b)][_0x1cc45e(0x3a9)]=function(_0x4dcd2a,_0x301e31,_0x3ac784,_0x6f89ee){const _0x11eb72=_0x1cc45e;if(!this[_0x11eb72(0x9c5)]())return;if(!this[_0x11eb72(0x89a)])return;if(this[_0x11eb72(0xb83)]===_0x4dcd2a&&this[_0x11eb72(0x351)]===_0x301e31)return;this['_targetSkewX']=_0x4dcd2a,this[_0x11eb72(0x351)]=_0x301e31,this['_skewDuration']=_0x3ac784,this[_0x11eb72(0x919)]=_0x3ac784,this[_0x11eb72(0x95c)]=_0x6f89ee||_0x11eb72(0xbfc),_0x3ac784<=0x0&&(this['_distortionSprite'][_0x11eb72(0x5fa)]['x']=this[_0x11eb72(0xb83)],this[_0x11eb72(0x89a)][_0x11eb72(0x5fa)]['y']=this[_0x11eb72(0x351)]);},Sprite_Battler['prototype'][_0x1cc45e(0xc54)]=function(){const _0x2a6ab4=_0x1cc45e;if(this['_skewDuration']<=0x0)return;if(!this[_0x2a6ab4(0x89a)])return;const _0x3fed79=this['_skewDuration'],_0x232f98=this[_0x2a6ab4(0x919)],_0x4dd977=this['_skewEasing'],_0x1e556d=this[_0x2a6ab4(0x89a)];Imported[_0x2a6ab4(0x598)]?(_0x1e556d['skew']['x']=this[_0x2a6ab4(0x67b)](_0x1e556d[_0x2a6ab4(0x5fa)]['x'],this[_0x2a6ab4(0xb83)],_0x3fed79,_0x232f98,_0x4dd977),_0x1e556d[_0x2a6ab4(0x5fa)]['y']=this['applyEasing'](_0x1e556d[_0x2a6ab4(0x5fa)]['y'],this[_0x2a6ab4(0x351)],_0x3fed79,_0x232f98,_0x4dd977)):(_0x1e556d[_0x2a6ab4(0x5fa)]['x']=(_0x1e556d[_0x2a6ab4(0x5fa)]['x']*(_0x3fed79-0x1)+this['_targetSkewX'])/_0x3fed79,_0x1e556d[_0x2a6ab4(0x5fa)]['y']=(_0x1e556d[_0x2a6ab4(0x5fa)]['y']*(_0x3fed79-0x1)+this[_0x2a6ab4(0x351)])/_0x3fed79);this[_0x2a6ab4(0x482)]--;if(this[_0x2a6ab4(0x482)]<=0x0)this[_0x2a6ab4(0x544)]();},Sprite_Battler[_0x1cc45e(0xc0b)][_0x1cc45e(0x544)]=function(){const _0x3e08f0=_0x1cc45e;this[_0x3e08f0(0x89a)][_0x3e08f0(0x5fa)]['x']=this[_0x3e08f0(0xb83)],this[_0x3e08f0(0x89a)][_0x3e08f0(0x5fa)]['y']=this['_targetSkewY'];},Sprite_Battler[_0x1cc45e(0xc0b)][_0x1cc45e(0x74c)]=function(){const _0x2f7ced=_0x1cc45e;return this[_0x2f7ced(0x482)]>0x0;},Sprite_Battler[_0x1cc45e(0xc0b)]['startSpin']=function(_0x30dc5a,_0x1bfa5f,_0x13d031,_0x3e75fc){const _0x3dc2a5=_0x1cc45e;if(!this[_0x3dc2a5(0x9c5)]())return;if(!this['_distortionSprite'])return;if(this[_0x3dc2a5(0x9ee)]===_0x30dc5a)return;this[_0x3dc2a5(0x9ee)]=_0x30dc5a,this[_0x3dc2a5(0x3cb)]=_0x1bfa5f,this[_0x3dc2a5(0x3da)]=_0x1bfa5f,this[_0x3dc2a5(0x2ed)]=_0x13d031||_0x3dc2a5(0xbfc),this['_angleRevertOnFinish']=_0x3e75fc,this[_0x3dc2a5(0xa2b)]===undefined&&(this[_0x3dc2a5(0xa2b)]=!![]),_0x1bfa5f<=0x0&&(this[_0x3dc2a5(0x560)]=_0x30dc5a,this['_angleRevertOnFinish']&&(this[_0x3dc2a5(0x9ee)]=0x0,this['_currentAngle']=0x0));},Sprite_Battler['prototype']['updateSpin']=function(){const _0x5edf5d=_0x1cc45e;this[_0x5edf5d(0x37b)](),this['applyAngleChange']();},Sprite_Battler['prototype'][_0x1cc45e(0x37b)]=function(){const _0xadaf8e=_0x1cc45e;if(this[_0xadaf8e(0x3cb)]<=0x0)return;const _0xe68994=this[_0xadaf8e(0x3cb)],_0x5bba94=this[_0xadaf8e(0x3da)],_0x3683ac=this[_0xadaf8e(0x2ed)];Imported[_0xadaf8e(0x598)]?this[_0xadaf8e(0x560)]=this['applyEasing'](this[_0xadaf8e(0x560)],this[_0xadaf8e(0x9ee)],_0xe68994,_0x5bba94,_0x3683ac):this['_currentAngle']=(this[_0xadaf8e(0x560)]*(_0xe68994-0x1)+this[_0xadaf8e(0x9ee)])/_0xe68994;this[_0xadaf8e(0x3cb)]--;if(this['_angleDuration']<=0x0)this[_0xadaf8e(0x870)]();},Sprite_Battler[_0x1cc45e(0xc0b)][_0x1cc45e(0x870)]=function(){const _0x1f62ce=_0x1cc45e;this[_0x1f62ce(0x560)]=this[_0x1f62ce(0x9ee)],this[_0x1f62ce(0xa2b)]&&(this['_targetAngle']=0x0,this[_0x1f62ce(0x560)]=0x0);},Sprite_Battler['prototype'][_0x1cc45e(0x1a8)]=function(){const _0x1ac5ec=_0x1cc45e;return this[_0x1ac5ec(0x3cb)]>0x0;},Sprite_Battler[_0x1cc45e(0xc0b)][_0x1cc45e(0xa4f)]=function(){const _0x322981=_0x1cc45e;if(!this[_0x322981(0x89a)])return;const _0x35a794=this[_0x322981(0x560)],_0x30d0a6=this[_0x322981(0x9f1)]['x'],_0x3ae884=this[_0x322981(0x848)][_0x322981(0x864)]()?-0x1:0x1;this[_0x322981(0x89a)][_0x322981(0xc29)]=_0x35a794*_0x30d0a6*_0x3ae884;const _0x278e31=this[_0x322981(0x89a)][_0x322981(0x9f1)]['y'];this[_0x322981(0x89a)]['y']=this[_0x322981(0x20f)]*-0.5*(0x2-_0x278e31),this[_0x322981(0x89a)]['y']=Math[_0x322981(0xb4e)](this['_distortionSprite']['y']);const _0x1ec69f=[this[_0x322981(0xce4)],this['_svBattlerSprite'],this[_0x322981(0xa95)]];for(const _0x102d91 of _0x1ec69f){if(!_0x102d91)continue;_0x102d91['y']=this[_0x322981(0x20f)]*0.5;}this[_0x322981(0x844)]&&(this[_0x322981(0x35f)]=this[_0x322981(0x35f)]??0x1,this[_0x322981(0x283)]=this['_shadowScaleY']??0x1,this[_0x322981(0x844)]['scale']['x']=this[_0x322981(0x89a)]['scale']['x']*this[_0x322981(0x35f)],this[_0x322981(0x844)]['scale']['y']=this[_0x322981(0x89a)][_0x322981(0x9f1)]['y']*this[_0x322981(0x283)]);},VisuMZ['BattleCore'][_0x1cc45e(0x6c6)]=Sprite_Actor['prototype']['createStateSprite'],Sprite_Actor[_0x1cc45e(0xc0b)][_0x1cc45e(0x6fa)]=function(){const _0x50f243=_0x1cc45e;VisuMZ[_0x50f243(0x2c5)][_0x50f243(0x6c6)][_0x50f243(0xa54)](this),VisuMZ[_0x50f243(0x2c5)]['Settings'][_0x50f243(0x984)][_0x50f243(0x3b2)]&&this[_0x50f243(0xc9b)]();},VisuMZ['BattleCore'][_0x1cc45e(0x297)]=Sprite_Enemy[_0x1cc45e(0xc0b)]['createStateIconSprite'],Sprite_Enemy[_0x1cc45e(0xc0b)][_0x1cc45e(0x4b8)]=function(){const _0x9d88e0=_0x1cc45e;VisuMZ['BattleCore']['Settings']['HpGauge']['ShowEnemyGauge']&&this[_0x9d88e0(0xc9b)](),VisuMZ[_0x9d88e0(0x2c5)][_0x9d88e0(0x297)]['call'](this);},Sprite_Battler[_0x1cc45e(0xc0b)][_0x1cc45e(0xc9b)]=function(){const _0x597902=_0x1cc45e;if(!ConfigManager[_0x597902(0x6b6)])return;if(this[_0x597902(0x2e2)]===Sprite_SvEnemy)return;const _0x3ae461=VisuMZ['BattleCore'][_0x597902(0x5fb)]['HpGauge'],_0x587b17=new Sprite_HpGauge();_0x587b17[_0x597902(0xcf1)]['x']=_0x3ae461['AnchorX'],_0x587b17[_0x597902(0xcf1)]['y']=_0x3ae461[_0x597902(0xb23)],_0x587b17[_0x597902(0x9f1)]['x']=_0x587b17[_0x597902(0x9f1)]['y']=_0x3ae461[_0x597902(0x1af)],this[_0x597902(0x99c)]=_0x587b17,this[_0x597902(0x84d)](this[_0x597902(0x99c)]),Spriteset_Battle[_0x597902(0x51f)]&&BattleManager[_0x597902(0xa38)](this[_0x597902(0x99c)]);},VisuMZ['BattleCore'][_0x1cc45e(0x39b)]=Sprite_Battler[_0x1cc45e(0xc0b)][_0x1cc45e(0x476)],Sprite_Battler[_0x1cc45e(0xc0b)][_0x1cc45e(0x476)]=function(_0xc3a0b3){const _0x1bcdab=_0x1cc45e,_0x1c3876=this[_0x1bcdab(0x848)];VisuMZ['BattleCore'][_0x1bcdab(0x39b)][_0x1bcdab(0xa54)](this,_0xc3a0b3),this[_0x1bcdab(0xc99)](_0xc3a0b3);if(_0x1c3876!==_0xc3a0b3)this[_0x1bcdab(0x228)]();},Sprite_Battler['prototype'][_0x1cc45e(0xc99)]=function(_0x547843){const _0x570883=_0x1cc45e;if(!_0x547843)return;if(!this[_0x570883(0x99c)])return;if(_0x547843['isActor']()){}else{if(_0x547843[_0x570883(0x348)]()){if(this[_0x570883(0x2e2)]===Sprite_SvEnemy&&!_0x547843[_0x570883(0x842)]())return;}}this[_0x570883(0x99c)]['setup'](_0x547843,'hp');},Sprite_Battler['prototype']['hasStaticSvBattler']=function(){const _0xd7d98f=_0x1cc45e;return this[_0xd7d98f(0x848)]&&this[_0xd7d98f(0x848)][_0xd7d98f(0x4e5)]();},Sprite_Battler[_0x1cc45e(0xc0b)][_0x1cc45e(0x250)]=function(){const _0x1bf52d=_0x1cc45e,_0x371170=this[_0x1bf52d(0xce4)]['bitmap'];if(!_0x371170)return;const _0x4ea237=_0x371170[_0x1bf52d(0x885)];let _0x5aaad0=_0x371170['height'];if(this[_0x1bf52d(0x848)][_0x1bf52d(0x1ee)]()){if(this[_0x1bf52d(0x81d)])_0x5aaad0=Math[_0x1bf52d(0x485)](0x0,this[_0x1bf52d(0x81d)][_0x1bf52d(0x20f)]-0x4);}this[_0x1bf52d(0xce4)][_0x1bf52d(0xc1c)](0x0,0x0,_0x4ea237,_0x5aaad0),this[_0x1bf52d(0xc1c)](0x0,0x0,_0x4ea237,_0x5aaad0);},Sprite_Battler[_0x1cc45e(0xc0b)]['updateHpGaugePosition']=function(){const _0x8036c9=_0x1cc45e;if(!this[_0x8036c9(0x848)])return;if(!this[_0x8036c9(0x99c)])return;const _0x3e1e84=VisuMZ[_0x8036c9(0x2c5)][_0x8036c9(0x5fb)]['HpGauge'],_0x31546f=this['_hpGaugeSprite'];_0x31546f[_0x8036c9(0x9b2)]=this['isVisualHpGaugeDisplayed']();const _0x488c1f=_0x3e1e84[_0x8036c9(0x564)],_0x594dd5=_0x3e1e84[_0x8036c9(0x6e0)];_0x31546f['x']=_0x488c1f,_0x31546f['x']+=this['_battler'][_0x8036c9(0x588)](),_0x31546f['y']=-this[_0x8036c9(0x20f)]+_0x594dd5,_0x31546f['y']+=this[_0x8036c9(0x848)]['battleUIOffsetY'](),Spriteset_Battle[_0x8036c9(0x51f)]&&SceneManager[_0x8036c9(0x659)][_0x8036c9(0x2e6)]&&(_0x31546f['x']+=this['x'],_0x31546f['y']+=this['y']);},Sprite_Battler[_0x1cc45e(0xc0b)][_0x1cc45e(0x21a)]=function(){const _0x9b819a=_0x1cc45e;if(!this['_battler'])return![];if(this[_0x9b819a(0x848)][_0x9b819a(0x864)]())return!![];if(this['_battler'][_0x9b819a(0x2b8)]())return![];if(this['opacity']<=0x0)return![];const _0x17e579=this['_battler'][_0x9b819a(0x48a)]()[_0x9b819a(0xbe6)];if(_0x17e579[_0x9b819a(0xc6a)](/<SHOW HP GAUGE>/i))return!![];if(_0x17e579[_0x9b819a(0xc6a)](/<HIDE HP GAUGE>/i))return![];const _0x3e0af6=VisuMZ[_0x9b819a(0x2c5)]['Settings'][_0x9b819a(0x984)];if(_0x3e0af6[_0x9b819a(0x693)]){if(_0x3e0af6['BTestBypass']&&BattleManager[_0x9b819a(0x350)]())return!![];if(this[_0x9b819a(0x848)][_0x9b819a(0x661)])return![];return this[_0x9b819a(0x848)][_0x9b819a(0x42f)]();}return!![];},VisuMZ[_0x1cc45e(0x2c5)]['Sprite_Battler_isMoving']=Sprite_Battler['prototype'][_0x1cc45e(0xb9c)],Sprite_Battler[_0x1cc45e(0xc0b)]['isMoving']=function(){const _0x55aad3=_0x1cc45e;if(!this[_0x55aad3(0x848)])return![];if(this[_0x55aad3(0x619)]>0x0)return!![];return VisuMZ[_0x55aad3(0x2c5)][_0x55aad3(0x7f4)][_0x55aad3(0xa54)](this);},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0xa02)]=Sprite_Battler[_0x1cc45e(0xc0b)][_0x1cc45e(0xbeb)],Sprite_Battler['prototype'][_0x1cc45e(0xbeb)]=function(_0x3bdfa5,_0x11c71c,_0x580b81){const _0x2e8abf=_0x1cc45e;this['canMove']()&&VisuMZ['BattleCore'][_0x2e8abf(0xa02)]['call'](this,_0x3bdfa5,_0x11c71c,_0x580b81);},Sprite_Battler[_0x1cc45e(0xc0b)][_0x1cc45e(0x9c5)]=function(){const _0x1e774b=_0x1cc45e;if(this[_0x1e774b(0x848)]&&this[_0x1e774b(0x848)][_0x1e774b(0x1ee)]())return![];if(this['_battler']&&!this['_battler'][_0x1e774b(0xb37)]())return![];return $gameSystem[_0x1e774b(0xbb2)]();},Sprite_Battler[_0x1cc45e(0xc0b)][_0x1cc45e(0x345)]=function(){},Sprite_Battler[_0x1cc45e(0xc0b)][_0x1cc45e(0x670)]=function(){this['startMove'](0x0,0x0,0xc);},Sprite_Battler[_0x1cc45e(0xc0b)][_0x1cc45e(0x4fe)]=function(){},Sprite_Battler[_0x1cc45e(0xc0b)][_0x1cc45e(0xc1a)]=function(){const _0x120b2f=_0x1cc45e,_0x390bcb=VisuMZ['BattleCore']['Settings']['Actor'],_0x3a1d4a=this[_0x120b2f(0x848)]&&this[_0x120b2f(0x848)][_0x120b2f(0x864)]()?0x1:-0x1,_0x337bed=this[_0x120b2f(0x29f)]-this[_0x120b2f(0x26e)]+_0x3a1d4a*_0x390bcb[_0x120b2f(0x4f0)],_0xe6c0b9=this[_0x120b2f(0xb2d)]-this[_0x120b2f(0x45b)]+_0x3a1d4a*_0x390bcb[_0x120b2f(0xbbb)],_0x16f8fe=_0x390bcb['FlinchDuration'];this[_0x120b2f(0xbeb)](_0x337bed,_0xe6c0b9,_0x16f8fe);},Sprite_Battler['prototype'][_0x1cc45e(0x651)]=function(_0x5bd68c,_0x52c1ad){const _0x40fd53=_0x1cc45e,_0xb719ae=VisuMZ[_0x40fd53(0x2c5)]['Settings'][_0x40fd53(0x3c1)];this[_0x40fd53(0x89f)]=Math[_0x40fd53(0xb4e)]((_0xb719ae[_0x40fd53(0x9a3)]??0x18)*_0x52c1ad),this[_0x40fd53(0x486)]=Math[_0x40fd53(0x485)](this['_shakeFlinchPower'],_0x5bd68c);},Sprite_Battler[_0x1cc45e(0xc0b)]['updateShakeFlinch']=function(){const _0x298692=_0x1cc45e,_0x419b85=VisuMZ[_0x298692(0x2c5)][_0x298692(0x5fb)][_0x298692(0x3c1)];if(!(_0x419b85[_0x298692(0x71b)]??![]))return;if(this[_0x298692(0x89f)]>0x0){const _0x36f355=this[_0x298692(0x89f)];this['_shakeFlinchPower']=this[_0x298692(0x486)]*(_0x36f355-0x1)/_0x36f355,this['_shakeFlinchDuration']--,this[_0x298692(0x89f)]<=0x0&&(this[_0x298692(0x486)]=0x0);}let _0x2e9abe=this['_mainSprite'];this[_0x298692(0x848)]&&this['_battler']['isEnemy']()&&(this['_battler']['hasSvBattler']()&&this[_0x298692(0x92b)]&&(_0x2e9abe=this[_0x298692(0x92b)])),this[_0x298692(0x486)]>0x0?(_0x2e9abe['x']=Math[_0x298692(0x1fe)](this[_0x298692(0x486)])*(Math[_0x298692(0x76a)]()<0.5?-0x1:0x1),this[_0x298692(0xb2d)]!==this['y']&&(_0x2e9abe['y']=this[_0x298692(0x20f)]*0.5,_0x2e9abe['y']+=Math[_0x298692(0x1fe)](this[_0x298692(0x486)])*(Math[_0x298692(0x76a)]()<0.5?-0x1:0x1))):(_0x2e9abe['x']=0x0,_0x2e9abe['y']=this[_0x298692(0x20f)]*0.5);},VisuMZ[_0x1cc45e(0x2c5)]['Sprite_Actor_initMembers']=Sprite_Actor['prototype']['initMembers'],Sprite_Actor[_0x1cc45e(0xc0b)]['initMembers']=function(){const _0x3aeedd=_0x1cc45e;VisuMZ[_0x3aeedd(0x2c5)][_0x3aeedd(0x81e)][_0x3aeedd(0xa54)](this),this[_0x3aeedd(0x3e9)]();},Sprite_Actor[_0x1cc45e(0xc0b)][_0x1cc45e(0xc74)]=function(){const _0x45318d=_0x1cc45e;return this[_0x45318d(0x89a)]||this['_mainSprite']||this;},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x5eb)]=Sprite_Actor[_0x1cc45e(0xc0b)][_0x1cc45e(0xbae)],Sprite_Actor[_0x1cc45e(0xc0b)][_0x1cc45e(0xbae)]=function(){},Sprite_Actor['prototype'][_0x1cc45e(0x8ff)]=function(_0x45f8ab){const _0x2f5da2=_0x1cc45e;if(SceneManager[_0x2f5da2(0x581)]())return;if(!_0x45f8ab)return;if(!_0x45f8ab[_0x2f5da2(0x9c5)]())return;VisuMZ['BattleCore'][_0x2f5da2(0x5eb)][_0x2f5da2(0xa54)](this);},VisuMZ['BattleCore']['Sprite_Actor_setActorHome']=Sprite_Actor[_0x1cc45e(0xc0b)][_0x1cc45e(0x1ff)],Sprite_Actor[_0x1cc45e(0xc0b)][_0x1cc45e(0x1ff)]=function(_0x18d1a8){const _0x1247f2=_0x1cc45e;VisuMZ[_0x1247f2(0x2c5)][_0x1247f2(0x5fb)][_0x1247f2(0x3c1)][_0x1247f2(0x2b4)]?VisuMZ['BattleCore'][_0x1247f2(0x5fb)][_0x1247f2(0x3c1)][_0x1247f2(0x2b4)]['call'](this,_0x18d1a8):VisuMZ[_0x1247f2(0x2c5)][_0x1247f2(0x4d7)][_0x1247f2(0xa54)](this,_0x18d1a8);},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0xb3a)]=Sprite_Actor['prototype'][_0x1cc45e(0x476)],Sprite_Actor[_0x1cc45e(0xc0b)][_0x1cc45e(0x476)]=function(_0x3a3d64){const _0x45fedc=_0x1cc45e;VisuMZ[_0x45fedc(0x2c5)]['Sprite_Actor_setBattler'][_0x45fedc(0xa54)](this,_0x3a3d64),this[_0x45fedc(0x763)](_0x3a3d64);},Sprite_Actor[_0x1cc45e(0xc0b)][_0x1cc45e(0x763)]=function(_0x5a9ee6){const _0x2fb638=_0x1cc45e;if(!_0x5a9ee6)return;if(!this['_mainSprite'])return;this['_mainSprite'][_0x2fb638(0xcf1)]['x']=this['_actor'][_0x2fb638(0xa6e)](),this['_mainSprite']['anchor']['y']=this[_0x2fb638(0x400)][_0x2fb638(0x50e)](),this[_0x2fb638(0x206)]();},VisuMZ['BattleCore'][_0x1cc45e(0x771)]=Sprite_Actor[_0x1cc45e(0xc0b)][_0x1cc45e(0x90f)],Sprite_Actor[_0x1cc45e(0xc0b)][_0x1cc45e(0x90f)]=function(){const _0x1808a2=_0x1cc45e;VisuMZ[_0x1808a2(0x2c5)][_0x1808a2(0x771)]['call'](this),this[_0x1808a2(0x400)]&&(this['updateStateSprite'](),this[_0x1808a2(0x450)]());},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x582)]=Sprite_Actor[_0x1cc45e(0xc0b)][_0x1cc45e(0x5f2)],Sprite_Actor[_0x1cc45e(0xc0b)][_0x1cc45e(0x5f2)]=function(){const _0x51dfbc=_0x1cc45e;VisuMZ['BattleCore'][_0x51dfbc(0x582)][_0x51dfbc(0xa54)](this),this[_0x51dfbc(0xce4)]&&this[_0x51dfbc(0xce4)][_0x51dfbc(0x9a4)]&&this[_0x51dfbc(0x848)]&&(this[_0x51dfbc(0xce4)]['bitmap'][_0x51dfbc(0xa0b)]!==this[_0x51dfbc(0x848)]['battlerSmoothImage']()&&(this[_0x51dfbc(0xce4)][_0x51dfbc(0x9a4)][_0x51dfbc(0xa0b)]=this[_0x51dfbc(0x848)][_0x51dfbc(0x46f)]()));},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x229)]=Sprite_Actor[_0x1cc45e(0xc0b)][_0x1cc45e(0x3e1)],Sprite_Actor['prototype'][_0x1cc45e(0x3e1)]=function(){const _0x3dabad=_0x1cc45e;VisuMZ[_0x3dabad(0x2c5)][_0x3dabad(0x229)][_0x3dabad(0xa54)](this),this['updateShadowBattleCore']();},Sprite_Actor[_0x1cc45e(0xc0b)]['updateShadowBattleCore']=function(){const _0x3954f3=_0x1cc45e;if(!this['_mainSprite'])return;if(!this[_0x3954f3(0x844)])return;this[_0x3954f3(0x206)](),this[_0x3954f3(0x2fc)]();},Sprite_Actor[_0x1cc45e(0xc0b)][_0x1cc45e(0xc79)]=function(){const _0x57be01=_0x1cc45e;{this[_0x57be01(0x227)][_0x57be01(0x9f1)]['x']=0x1/(this['scale']['x']||0.001),this[_0x57be01(0x227)][_0x57be01(0x9f1)]['y']=0x1/(this['scale']['y']||0.001);}{this[_0x57be01(0x227)]['x']=0x0,this['_stateSprite']['y']=-this[_0x57be01(0x20f)]-0x20+0x60;const _0x200476=VisuMZ[_0x57be01(0x2c5)][_0x57be01(0x5fb)][_0x57be01(0x3c1)];this[_0x57be01(0x227)]['x']+=_0x200476[_0x57be01(0x419)]??0x0,this[_0x57be01(0x227)]['y']+=_0x200476[_0x57be01(0x465)]??0x0;}},Sprite_Actor[_0x1cc45e(0xc0b)]['updateStyleOpacity']=function(){const _0x37dcaa=_0x1cc45e;if(!$gameSystem[_0x37dcaa(0xbb2)]()&&this[_0x37dcaa(0x2e2)]===Sprite_Actor){const _0x46a96b=Scene_Battle['prototype']['battleLayoutStyle']();[_0x37dcaa(0x8d7),'list',_0x37dcaa(0x76c),_0x37dcaa(0x3ff)][_0x37dcaa(0x9c4)](_0x46a96b)&&(this[_0x37dcaa(0x2f3)]=0x0);}},Sprite_Actor[_0x1cc45e(0xc0b)][_0x1cc45e(0xba7)]=function(){const _0x1a54ac=_0x1cc45e,_0x494427=this[_0x1a54ac(0x400)];if(_0x494427){if(_0x494427[_0x1a54ac(0x897)])return;const _0x237355=_0x494427[_0x1a54ac(0xb2a)]();if(_0x494427[_0x1a54ac(0x895)]()||_0x494427[_0x1a54ac(0x84e)]())this[_0x1a54ac(0xa4d)]('walk');else{if(_0x237355===0x3)this[_0x1a54ac(0xa4d)](_0x1a54ac(0xd0a));else{if(_0x237355===0x2)this[_0x1a54ac(0xa4d)](_0x1a54ac(0x79a));else{if(this[_0x1a54ac(0x22f)])this[_0x1a54ac(0xa4d)](_0x1a54ac(0x208));else{if(_0x494427[_0x1a54ac(0x952)]())this['startMotion']('wait');else{if(_0x494427[_0x1a54ac(0x943)]())this[_0x1a54ac(0xa4d)](_0x1a54ac(0xbfa));else{if(_0x494427['isGuard']()||_0x494427[_0x1a54ac(0xb19)]())this['startMotion'](_0x1a54ac(0x3ef));else{if(_0x237355===0x1)this[_0x1a54ac(0xa4d)](_0x1a54ac(0x816));else{if(_0x494427['isDying']())this[_0x1a54ac(0xa4d)]('dying');else{if(_0x494427['isUndecided']())this[_0x1a54ac(0xa4d)]('walk');else _0x494427['currentAction']()?this[_0x1a54ac(0xa4d)](_0x1a54ac(0x8f9)):this[_0x1a54ac(0xa4d)](_0x1a54ac(0x7a0));}}}}}}}}}}},Sprite_Actor[_0x1cc45e(0xc0b)][_0x1cc45e(0x4fe)]=function(){const _0xd9b979=_0x1cc45e,_0x319c68=0xa,_0x20f2ec=0x12c*_0x319c68,_0x6e5fab=0x1e*_0x319c68;this[_0xd9b979(0xbeb)](_0x20f2ec,0x0,_0x6e5fab);},Sprite_Actor[_0x1cc45e(0xc0b)][_0x1cc45e(0x3bb)]=function(){const _0xd9fbf6=_0x1cc45e;Sprite_Battler['prototype'][_0xd9fbf6(0x3bb)][_0xd9fbf6(0xa54)](this);},Sprite_Actor[_0x1cc45e(0xc0b)][_0x1cc45e(0x373)]=function(){return Sprite_Battler['_motionSpeed'];},Sprite_Weapon[_0x1cc45e(0xc0b)]['animationWait']=function(){const _0x44e10e=_0x1cc45e;return Sprite_Battler[_0x44e10e(0x4ca)];},Sprite_Actor[_0x1cc45e(0xc0b)][_0x1cc45e(0x6ed)]=function(){},Sprite_Actor[_0x1cc45e(0xc0b)]['setupWeaponAnimation']=function(){},Sprite_Actor[_0x1cc45e(0xc0b)][_0x1cc45e(0xb9a)]=function(){const _0x6647d8=_0x1cc45e;if(this[_0x6647d8(0x7b0)]&&++this['_motionCount']>=this[_0x6647d8(0x373)]()){if(this[_0x6647d8(0x7b0)][_0x6647d8(0x71f)])this['_pattern']=(this['_pattern']+0x1)%0x4;else{if(this[_0x6647d8(0x8fd)]<0x2)this[_0x6647d8(0x8fd)]++;else{const _0x5b2651=this[_0x6647d8(0x400)];if(_0x5b2651)_0x5b2651[_0x6647d8(0x897)]=undefined;this[_0x6647d8(0xba7)]();}}this[_0x6647d8(0xabe)]=0x0;}},Sprite_Actor[_0x1cc45e(0xc0b)][_0x1cc45e(0x800)]=function(_0x4d6fb8){const _0x127756=_0x1cc45e;if(this[_0x127756(0x848)]&&this[_0x127756(0x848)]['isDead']()){this[_0x127756(0x7b0)]=Sprite_Actor[_0x127756(0x1b9)][_0x127756(0xd0a)];return;}const _0x5cfc91=Sprite_Actor[_0x127756(0x1b9)][_0x4d6fb8];this['_motion']=_0x5cfc91,this[_0x127756(0xabe)]=0x0,this[_0x127756(0x8fd)]=0x0;},Sprite_Actor['prototype'][_0x1cc45e(0x6c2)]=function(_0x12b80d){const _0x1ced36=_0x1cc45e;if(this['hasStaticSvBattler']())return;this[_0x1ced36(0x6a9)](),this[_0x1ced36(0x248)][_0x1ced36(0x620)](_0x12b80d),this[_0x1ced36(0x400)]['clearWeaponAnimation']();},Sprite_Actor['prototype'][_0x1cc45e(0x6a9)]=function(){const _0x1097fd=_0x1cc45e;let _0x3a5e1d=-0x10,_0x22fdf7=this['height']*0.5;const _0x43110c=/<SIDEVIEW WEAPON OFFSET:[ ]([\+\-]\d+),[ ]([\+\-]\d+)>/i,_0x129cc2=this['_battler'][_0x1097fd(0x394)]()[_0x1097fd(0x63c)](_0x117a9e=>_0x117a9e&&_0x117a9e['note'][_0x1097fd(0xc6a)](_0x43110c)?Number(RegExp['$1']):0x0),_0x57e065=this[_0x1097fd(0x848)]['traitObjects']()['map'](_0x20e3f7=>_0x20e3f7&&_0x20e3f7[_0x1097fd(0xbe6)][_0x1097fd(0xc6a)](_0x43110c)?Number(RegExp['$2']):0x0);_0x3a5e1d=_0x129cc2['reduce']((_0xfb2a,_0x36a5b3)=>_0xfb2a+_0x36a5b3,_0x3a5e1d),_0x22fdf7=_0x57e065[_0x1097fd(0x7eb)]((_0x3cd860,_0x3de7bc)=>_0x3cd860+_0x3de7bc,_0x22fdf7),this['_weaponSprite']['x']=_0x3a5e1d,this[_0x1097fd(0x248)]['y']=_0x22fdf7,this[_0x1097fd(0x248)]['update']();},Sprite_Weapon['prototype']['setup']=function(_0x281426){const _0x456c1b=_0x1cc45e;this['_weaponImageId']=_0x281426,this[_0x456c1b(0x740)]=-0x1,this['_pattern']=0x0,this[_0x456c1b(0x8ae)](),this['updateFrame']();},Sprite_Actor[_0x1cc45e(0xc0b)][_0x1cc45e(0xb29)]=function(){},Sprite_Actor[_0x1cc45e(0xc0b)][_0x1cc45e(0x345)]=function(){const _0x382f39=_0x1cc45e,_0x6aff2b=VisuMZ[_0x382f39(0x2c5)][_0x382f39(0x5fb)][_0x382f39(0xc01)],_0x190e5a=_0x6aff2b[_0x382f39(0x666)],_0x1ec86e=_0x6aff2b[_0x382f39(0xb55)],_0x3644f9=_0x6aff2b[_0x382f39(0x515)];this[_0x382f39(0xbeb)](-_0x190e5a,-_0x1ec86e,_0x3644f9);},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0xa7f)]=Sprite_Actor['prototype']['updateFrame'],Sprite_Actor[_0x1cc45e(0xc0b)]['updateFrame']=function(){const _0x369315=_0x1cc45e;this[_0x369315(0x4e5)]()?this[_0x369315(0x250)]():(this['applyFreezeMotionFrames'](),VisuMZ[_0x369315(0x2c5)]['Sprite_Actor_updateFrame'][_0x369315(0xa54)](this));},Sprite_Actor['prototype']['applyFreezeMotionFrames']=function(){const _0x5c8145=_0x1cc45e;if(this['_battler']&&this[_0x5c8145(0x848)][_0x5c8145(0x203)]){const _0x58ca20=this[_0x5c8145(0x848)][_0x5c8145(0x203)];this[_0x5c8145(0x7b0)]=Sprite_Actor[_0x5c8145(0x1b9)][_0x58ca20['motionType']],this[_0x5c8145(0x8fd)]=_0x58ca20['pattern'];const _0x32da65=this[_0x5c8145(0x248)];_0x32da65['freezeFrame'](_0x58ca20[_0x5c8145(0xc26)],_0x58ca20[_0x5c8145(0xa00)]),this[_0x5c8145(0x6a9)]();}},Sprite_Weapon[_0x1cc45e(0xc0b)][_0x1cc45e(0x606)]=function(_0x6f1323,_0x5a63c3){const _0xfafd1d=_0x1cc45e;this['_weaponImageId']=_0x6f1323,this[_0xfafd1d(0x740)]=-Infinity,this[_0xfafd1d(0x8fd)]=_0x5a63c3,this[_0xfafd1d(0x8ae)](),this['updateFrame']();},Sprite_Enemy['prototype']['initMembers']=function(){const _0x42adc8=_0x1cc45e;Sprite_Battler[_0x42adc8(0xc0b)][_0x42adc8(0x522)][_0x42adc8(0xa54)](this),this[_0x42adc8(0xc28)]=null,this[_0x42adc8(0xaef)]=![],this[_0x42adc8(0x4a2)]='',this['_battlerHue']=0x0,this[_0x42adc8(0x20c)]=null,this[_0x42adc8(0xcd5)]=0x0,this[_0x42adc8(0x3fb)]=0x0,this[_0x42adc8(0x3a5)](),this[_0x42adc8(0x4b8)]();},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x504)]=Sprite_Enemy[_0x1cc45e(0xc0b)]['update'],Sprite_Enemy['prototype'][_0x1cc45e(0x90f)]=function(){const _0x19ad58=_0x1cc45e;VisuMZ[_0x19ad58(0x2c5)][_0x19ad58(0x504)][_0x19ad58(0xa54)](this),this[_0x19ad58(0x206)](),this['updateNameTempVisibility']();},Sprite_Enemy[_0x1cc45e(0xc0b)][_0x1cc45e(0x3a5)]=function(){const _0x5ba481=_0x1cc45e;this[_0x5ba481(0xce4)]=new Sprite(),this['_mainSprite'][_0x5ba481(0xcf1)]['x']=0.5,this[_0x5ba481(0xce4)][_0x5ba481(0xcf1)]['y']=0x1,this[_0x5ba481(0x84d)](this[_0x5ba481(0xce4)]),this['attachSpritesToDistortionSprite']();},Sprite_Enemy[_0x1cc45e(0xc0b)][_0x1cc45e(0xc74)]=function(){const _0x1d87d4=_0x1cc45e;return this[_0x1d87d4(0x89a)]||this[_0x1d87d4(0xce4)]||this;},Sprite_Enemy[_0x1cc45e(0xc0b)][_0x1cc45e(0x8ae)]=function(_0xac1e5c){const _0x4374f4=_0x1cc45e;this[_0x4374f4(0x9a4)]=new Bitmap(0x1,0x1);if(this[_0x4374f4(0x842)]()){const _0x274257=this[_0x4374f4(0xc28)][_0x4374f4(0x5b1)]();this[_0x4374f4(0x9a4)]=new Bitmap(_0x274257[_0x4374f4(0x885)],_0x274257[_0x4374f4(0x20f)]),this['_mainSprite']['bitmap']=new Bitmap(0x1,0x1);}else{if($gameSystem[_0x4374f4(0xbb2)]()){const _0x140547=ImageManager[_0x4374f4(0x62e)](_0xac1e5c);_0x140547[_0x4374f4(0x957)](this['onStaticEnemyBitmapLoad'][_0x4374f4(0x344)](this,_0x140547));}else{const _0x254a1d=ImageManager[_0x4374f4(0x858)](_0xac1e5c);_0x254a1d[_0x4374f4(0x957)](this['onStaticEnemyBitmapLoad'][_0x4374f4(0x344)](this,_0x254a1d));}}},Sprite_Enemy['prototype'][_0x1cc45e(0x6fd)]=function(_0x3dbe42){const _0x3a27b6=_0x1cc45e;this[_0x3a27b6(0xce4)][_0x3a27b6(0x9a4)]=_0x3dbe42,this[_0x3a27b6(0x9a4)]=new Bitmap(_0x3dbe42[_0x3a27b6(0x885)],_0x3dbe42['height']);},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x3a3)]=Sprite_Enemy['prototype'][_0x1cc45e(0x29d)],Sprite_Enemy[_0x1cc45e(0xc0b)][_0x1cc45e(0x29d)]=function(_0x16ec31){const _0x11ffc8=_0x1cc45e;this['_mainSprite']&&this[_0x11ffc8(0xce4)][_0x11ffc8(0x29d)](_0x16ec31);},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x979)]=Sprite_Enemy['prototype']['initVisibility'],Sprite_Enemy[_0x1cc45e(0xc0b)][_0x1cc45e(0xc71)]=function(){const _0x21a2ad=_0x1cc45e;this[_0x21a2ad(0x1b1)]()?VisuMZ['BattleCore'][_0x21a2ad(0x979)][_0x21a2ad(0xa54)](this):(this['_appeared']=!this[_0x21a2ad(0xc28)][_0x21a2ad(0x2b8)](),!this[_0x21a2ad(0xaef)]&&(this[_0x21a2ad(0x2f3)]=0x0));},VisuMZ[_0x1cc45e(0x2c5)]['Sprite_Enemy_updateCollapse']=Sprite_Enemy[_0x1cc45e(0xc0b)][_0x1cc45e(0x33f)],Sprite_Enemy[_0x1cc45e(0xc0b)][_0x1cc45e(0x33f)]=function(){const _0x2a2f6e=_0x1cc45e;if(this['allowCollapse']())VisuMZ['BattleCore']['Sprite_Enemy_updateCollapse'][_0x2a2f6e(0xa54)](this);},Sprite_Enemy[_0x1cc45e(0xc0b)][_0x1cc45e(0x272)]=function(){const _0x4ec53c=_0x1cc45e;Sprite_Battler[_0x4ec53c(0xc0b)]['updateFrame'][_0x4ec53c(0xa54)](this);const _0x48dd99=this[_0x4ec53c(0xc74)]()||this;if(!_0x48dd99)return;!_0x48dd99['bitmap']&&(_0x48dd99['bitmap']=new Bitmap(this[_0x4ec53c(0x885)]||0x1,this[_0x4ec53c(0x20f)]||0x1));if(this[_0x4ec53c(0x20c)]===_0x4ec53c(0x44e))this[_0x4ec53c(0xce4)][_0x4ec53c(0xc1c)](0x0,0x0,this['_mainSprite'][_0x4ec53c(0x885)]||0x1,this[_0x4ec53c(0xcd5)]);else{let _0x46ce0f=0x1;if(_0x48dd99&&_0x48dd99[_0x4ec53c(0x9a4)])_0x46ce0f=_0x48dd99[_0x4ec53c(0x9a4)]['width'];let _0x26fbe1=0x1;if(this[_0x4ec53c(0x9a4)])_0x26fbe1=this['bitmap']['height'];_0x48dd99[_0x4ec53c(0xc1c)](0x0,0x0,_0x46ce0f,_0x26fbe1);}},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x219)]=Sprite_Enemy[_0x1cc45e(0xc0b)][_0x1cc45e(0x566)],Sprite_Enemy['prototype'][_0x1cc45e(0x566)]=function(){const _0x4d255f=_0x1cc45e;if(this['allowCollapse']())VisuMZ[_0x4d255f(0x2c5)][_0x4d255f(0x219)][_0x4d255f(0xa54)](this);},Sprite_Enemy[_0x1cc45e(0xc0b)]['isMoving']=function(){const _0x566c93=_0x1cc45e;return Sprite_Battler['prototype'][_0x566c93(0xb9c)]['call'](this);},VisuMZ[_0x1cc45e(0x2c5)]['Sprite_Enemy_updateStateSprite']=Sprite_Enemy[_0x1cc45e(0xc0b)][_0x1cc45e(0xc79)],Sprite_Enemy[_0x1cc45e(0xc0b)][_0x1cc45e(0xc79)]=function(){const _0x1f80b5=_0x1cc45e;VisuMZ[_0x1f80b5(0x2c5)][_0x1f80b5(0x719)][_0x1f80b5(0xa54)](this),this[_0x1f80b5(0x4e0)]();},Sprite_Enemy[_0x1cc45e(0xc0b)][_0x1cc45e(0x4e0)]=function(){const _0x55cfb4=_0x1cc45e,_0x213045=VisuMZ[_0x55cfb4(0x2c5)][_0x55cfb4(0x5fb)]['Enemy'];if(_0x213045[_0x55cfb4(0xb60)]&&!_0x213045[_0x55cfb4(0x4f4)]){this[_0x55cfb4(0x57e)]['opacity']=0x0;return;}this[_0x55cfb4(0x57e)]['x']=0x0,this[_0x55cfb4(0x57e)]['x']+=this[_0x55cfb4(0x848)][_0x55cfb4(0x588)]();let _0x50487a=0x1;if(this[_0x55cfb4(0x9a4)])_0x50487a=this['bitmap'][_0x55cfb4(0x20f)];this['_stateIconSprite']['y']=-_0x50487a-this[_0x55cfb4(0x57e)][_0x55cfb4(0x20f)]-0x4,this[_0x55cfb4(0x57e)]['y']+=this[_0x55cfb4(0x848)]['battleUIOffsetY'](),this['_stateIconSprite'][_0x55cfb4(0x9f1)]['x']=0x1/(this[_0x55cfb4(0x9f1)]['x']||0.001),this['_stateIconSprite'][_0x55cfb4(0x9f1)]['y']=0x1/(this[_0x55cfb4(0x9f1)]['y']||0.001),this[_0x55cfb4(0x842)]()&&(this[_0x55cfb4(0x92b)][_0x55cfb4(0x227)][_0x55cfb4(0x9f1)]['x']=-0x1/(this[_0x55cfb4(0x9f1)]['x']||0.001),this[_0x55cfb4(0x92b)][_0x55cfb4(0x227)][_0x55cfb4(0x9f1)]['y']=0x1/(this[_0x55cfb4(0x9f1)]['y']||0.001));},Sprite_Enemy[_0x1cc45e(0xc0b)][_0x1cc45e(0xc51)]=function(){const _0x2d5ebd=_0x1cc45e;this[_0x2d5ebd(0x848)]&&this['_battler'][_0x2d5ebd(0xc51)]();},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0xb3f)]=Sprite_Enemy[_0x1cc45e(0xc0b)]['setBattler'],Sprite_Enemy['prototype'][_0x1cc45e(0x476)]=function(_0x55231a){const _0x567d8a=_0x1cc45e;VisuMZ[_0x567d8a(0x2c5)]['Sprite_Enemy_setBattler'][_0x567d8a(0xa54)](this,_0x55231a),this[_0x567d8a(0xa14)](_0x55231a);},Sprite_Enemy[_0x1cc45e(0xc0b)][_0x1cc45e(0xa14)]=function(_0x32f3d9){const _0xdc6b9a=_0x1cc45e;!this['_svBattlerSprite']&&(this[_0xdc6b9a(0x92b)]=new Sprite_SvEnemy(_0x32f3d9),this[_0xdc6b9a(0x3e9)]()),this[_0xdc6b9a(0x92b)][_0xdc6b9a(0x476)](_0x32f3d9);},Sprite_Enemy[_0x1cc45e(0xc0b)][_0x1cc45e(0x842)]=function(){const _0x3dbbc8=_0x1cc45e;return this['_enemy']&&this['_enemy'][_0x3dbbc8(0x842)]();},Sprite_Enemy['prototype'][_0x1cc45e(0x1b1)]=function(){const _0x117cb4=_0x1cc45e;return this[_0x117cb4(0x842)]()?this['_enemy']['allowCollapse']():!![];},Sprite_Enemy[_0x1cc45e(0xc0b)]['refreshMotion']=function(){this['hasSvBattler']()&&this['_svBattlerSprite']['refreshMotion']();},Sprite_Enemy['prototype']['forceMotion']=function(_0x461758){const _0x261482=_0x1cc45e;if(this['hasSvBattler']())this[_0x261482(0x92b)]['forceMotion'](_0x461758);},Sprite_Enemy[_0x1cc45e(0xc0b)][_0x1cc45e(0x6c2)]=function(_0x1b26df){const _0x4e9d60=_0x1cc45e;if(this[_0x4e9d60(0x842)]())this[_0x4e9d60(0x92b)][_0x4e9d60(0x6c2)](_0x1b26df);},Sprite_Enemy['prototype']['stepForward']=function(){const _0x3cb631=_0x1cc45e,_0x424ebc=VisuMZ[_0x3cb631(0x2c5)][_0x3cb631(0x5fb)][_0x3cb631(0xc01)],_0x8411ff=_0x424ebc['StepDistanceX'],_0x4d3d42=_0x424ebc[_0x3cb631(0xb55)],_0x3e7777=_0x424ebc[_0x3cb631(0x515)];this[_0x3cb631(0xbeb)](_0x8411ff,_0x4d3d42,_0x3e7777);};function Sprite_SvEnemy(){this['initialize'](...arguments);}Sprite_SvEnemy['prototype']=Object[_0x1cc45e(0x6f7)](Sprite_Actor['prototype']),Sprite_SvEnemy[_0x1cc45e(0xc0b)][_0x1cc45e(0x2e2)]=Sprite_SvEnemy,Sprite_SvEnemy[_0x1cc45e(0xc0b)][_0x1cc45e(0x896)]=function(_0x4889eb){const _0x268f53=_0x1cc45e;Sprite_Actor[_0x268f53(0xc0b)]['initialize']['call'](this,_0x4889eb),this['scale']['x']=-0x1,this[_0x268f53(0x227)][_0x268f53(0x9f1)]['x']=-0x1;},Sprite_SvEnemy['prototype']['createShadowSprite']=function(){},Sprite_SvEnemy['prototype'][_0x1cc45e(0xbae)]=function(){},Sprite_SvEnemy[_0x1cc45e(0xc0b)][_0x1cc45e(0x1ff)]=function(_0x549325){},Sprite_SvEnemy[_0x1cc45e(0xc0b)][_0x1cc45e(0x3e1)]=function(){},Sprite_SvEnemy['prototype'][_0x1cc45e(0x2fc)]=function(){},Sprite_SvEnemy['prototype']['updateStateSprite']=function(){const _0x528cb7=_0x1cc45e;this[_0x528cb7(0x227)][_0x528cb7(0x9b2)]=![];},Sprite_SvEnemy[_0x1cc45e(0xc0b)]['updateBitmap']=function(){const _0x3c2c7d=_0x1cc45e;Sprite_Battler[_0x3c2c7d(0xc0b)][_0x3c2c7d(0x5f2)][_0x3c2c7d(0xa54)](this);const _0x565bf7=this['_actor'][_0x3c2c7d(0x54e)]();this['_battlerName']!==_0x565bf7&&(this[_0x3c2c7d(0x4a2)]=_0x565bf7,this[_0x3c2c7d(0xce4)][_0x3c2c7d(0x9a4)]=ImageManager['loadSvActor'](_0x565bf7)),this[_0x3c2c7d(0xce4)]&&this[_0x3c2c7d(0xce4)][_0x3c2c7d(0x9a4)]&&this[_0x3c2c7d(0x848)]&&(this[_0x3c2c7d(0xce4)]['bitmap'][_0x3c2c7d(0xa0b)]!==this[_0x3c2c7d(0x848)][_0x3c2c7d(0x46f)]()&&(this[_0x3c2c7d(0xce4)][_0x3c2c7d(0x9a4)]['smooth']=this[_0x3c2c7d(0x848)][_0x3c2c7d(0x46f)]()));},Sprite_SvEnemy[_0x1cc45e(0xc0b)][_0x1cc45e(0x4fe)]=function(){},Sprite_SvEnemy[_0x1cc45e(0xc0b)][_0x1cc45e(0xbeb)]=function(_0x351e36,_0x9919fb,_0x2cef93){const _0x392b37=_0x1cc45e;if(this[_0x392b37(0xc96)])this['parent'][_0x392b37(0xbeb)](_0x351e36,_0x9919fb,_0x2cef93);},Sprite_SvEnemy[_0x1cc45e(0xc0b)][_0x1cc45e(0xba7)]=function(){const _0x388a07=_0x1cc45e,_0x1ae7a3=this[_0x388a07(0x400)];if(_0x1ae7a3){const _0x3cccf4=_0x1ae7a3[_0x388a07(0xb2a)]();if(_0x1ae7a3[_0x388a07(0x895)]()||_0x1ae7a3[_0x388a07(0x84e)]())this[_0x388a07(0xa4d)]('walk');else{if(_0x3cccf4===0x3)this['startMotion'](_0x388a07(0xd0a));else{if(_0x3cccf4===0x2)this['startMotion'](_0x388a07(0x79a));else{if(_0x1ae7a3[_0x388a07(0x943)]())this['startMotion']('chant');else{if(_0x1ae7a3[_0x388a07(0x742)]()||_0x1ae7a3['isGuardWaiting']())this[_0x388a07(0xa4d)](_0x388a07(0x3ef));else{if(_0x3cccf4===0x1)this[_0x388a07(0xa4d)]('abnormal');else{if(_0x1ae7a3[_0x388a07(0x31a)]())this[_0x388a07(0xa4d)](_0x388a07(0xca8));else _0x1ae7a3['isUndecided']()?this[_0x388a07(0xa4d)](_0x1ae7a3[_0x388a07(0x5b1)]()[_0x388a07(0x82d)]||_0x388a07(0x7a0)):this[_0x388a07(0xa4d)](_0x1ae7a3[_0x388a07(0x5b1)]()[_0x388a07(0x82d)]||_0x388a07(0x7a0));}}}}}}}},Sprite_SvEnemy[_0x1cc45e(0xc0b)][_0x1cc45e(0x42d)]=function(){const _0x41899a=_0x1cc45e;return this[_0x41899a(0xc96)]?this[_0x41899a(0xc96)]['_offsetX']===0x0&&this[_0x41899a(0xc96)][_0x41899a(0x79c)]===0x0:!![];},Sprite_SvEnemy['prototype'][_0x1cc45e(0x409)]=function(){},VisuMZ[_0x1cc45e(0x2c5)]['Sprite_Animation_targetSpritePosition']=Sprite_Animation[_0x1cc45e(0xc0b)][_0x1cc45e(0x98d)],Sprite_Animation['prototype'][_0x1cc45e(0x98d)]=function(_0x33ab65){const _0x4e111e=_0x1cc45e;return _0x33ab65[_0x4e111e(0x89a)]?this[_0x4e111e(0xa57)](_0x33ab65):VisuMZ[_0x4e111e(0x2c5)]['Sprite_Animation_targetSpritePosition']['call'](this,_0x33ab65);},Sprite_Animation['prototype']['targetDistortionSpritePosition']=function(_0x367dbe){const _0x41f01a=_0x1cc45e;let _0x4e53bc=_0x367dbe['x'],_0x262d2b=_0x367dbe['y'],_0x4723c3=_0x367dbe[_0x41f01a(0x20f)],_0x82b437=_0x367dbe[_0x41f01a(0x89a)][_0x41f01a(0x9f1)]['y'];_0x367dbe['x']=_0x367dbe['_baseX']+_0x367dbe[_0x41f01a(0x64d)](),_0x367dbe['y']=_0x367dbe[_0x41f01a(0xb2d)]+_0x367dbe[_0x41f01a(0x7d9)](),_0x367dbe['height']*=_0x82b437;let _0x21b5e1=VisuMZ[_0x41f01a(0x2c5)][_0x41f01a(0x46b)][_0x41f01a(0xa54)](this,_0x367dbe);return _0x367dbe['x']=_0x4e53bc,_0x367dbe['y']=_0x262d2b,_0x367dbe['height']=_0x4723c3,_0x21b5e1;},Sprite_Animation[_0x1cc45e(0xc0b)][_0x1cc45e(0xd0d)]=function(){const _0x312adf=_0x1cc45e;if(this[_0x312adf(0x9b1)])return![];return this[_0x312adf(0x565)]&&this[_0x312adf(0x565)][_0x312adf(0xc4e)]&&this[_0x312adf(0x565)][_0x312adf(0xc4e)]['match'](/<UNDER>/gi);},VisuMZ['BattleCore'][_0x1cc45e(0x900)]=Sprite_AnimationMV[_0x1cc45e(0xc0b)][_0x1cc45e(0x211)],Sprite_AnimationMV[_0x1cc45e(0xc0b)]['updatePosition']=function(){const _0x2c7ca7=_0x1cc45e;VisuMZ[_0x2c7ca7(0x2c5)][_0x2c7ca7(0x900)][_0x2c7ca7(0xa54)](this);if(!SceneManager[_0x2c7ca7(0x499)]())return;if(this[_0x2c7ca7(0x565)][_0x2c7ca7(0x536)]===0x3)this['x']=Math[_0x2c7ca7(0xb4b)](Graphics['boxWidth']/0x2),this['y']=Math['round'](Graphics[_0x2c7ca7(0x76d)]/0x2);else{if(this[_0x2c7ca7(0x514)])return;}},Sprite_AnimationMV[_0x1cc45e(0xc0b)]['isUnderAnimation']=function(){const _0x24972e=_0x1cc45e;if(this[_0x24972e(0x9b1)])return![];return this[_0x24972e(0x565)]&&this[_0x24972e(0x565)]['name']&&this[_0x24972e(0x565)][_0x24972e(0xc4e)][_0x24972e(0xc6a)](/<UNDER>/gi);},Sprite_Damage[_0x1cc45e(0xc0b)]['setupBattleCore']=function(_0xa55524){const _0x210daf=_0x1cc45e,_0x659148=_0xa55524[_0x210daf(0xc6f)]()||_0xa55524['result']();if(_0x659148[_0x210daf(0x8f0)]||_0x659148[_0x210daf(0x4eb)])this[_0x210daf(0x480)]=0x0,this[_0x210daf(0x464)]();else{if(_0x659148[_0x210daf(0x38f)])this[_0x210daf(0x480)]=_0x659148[_0x210daf(0x8b4)]>=0x0?0x0:0x1,this[_0x210daf(0xc3f)](_0x659148[_0x210daf(0x8b4)]);else _0xa55524[_0x210daf(0x212)]()&&_0x659148[_0x210daf(0x30e)]!==0x0&&(this[_0x210daf(0x480)]=_0x659148[_0x210daf(0x30e)]>=0x0?0x2:0x3,this[_0x210daf(0xc3f)](_0x659148[_0x210daf(0x30e)]));}_0x659148[_0x210daf(0xa24)]&&this['setupCriticalEffect']();},Sprite_Damage['prototype']['setup']=function(_0x50ade7){},Sprite_Damage['prototype'][_0x1cc45e(0xc3f)]=function(_0x323822){const _0x395d0e=_0x1cc45e;let _0x3e848e=this['createString'](_0x323822);const _0x2d0acc=this['fontSize'](),_0x519c7d=Math[_0x395d0e(0x884)](_0x2d0acc*0.75);for(let _0x430c0c=0x0;_0x430c0c<_0x3e848e['length'];_0x430c0c++){const _0x21ea69=this['createChildSprite'](_0x519c7d,_0x2d0acc);_0x21ea69['bitmap'][_0x395d0e(0x775)](_0x3e848e[_0x430c0c],0x0,0x0,_0x519c7d,_0x2d0acc,_0x395d0e(0x669)),_0x21ea69['x']=(_0x430c0c-(_0x3e848e[_0x395d0e(0x96d)]-0x1)/0x2)*_0x519c7d,_0x21ea69['dy']=-_0x430c0c;}},Sprite_Damage[_0x1cc45e(0xc0b)][_0x1cc45e(0x5aa)]=function(_0xcb68c){const _0x41c9a3=_0x1cc45e;let _0x3479d3=Math['abs'](_0xcb68c)[_0x41c9a3(0x6ca)]();this[_0x41c9a3(0x397)]()&&(_0x3479d3=VisuMZ[_0x41c9a3(0x639)](_0x3479d3));const _0x576340=VisuMZ['BattleCore'][_0x41c9a3(0x5fb)]['Damage'];let _0x2fcfdc='',_0x4b4c0e='';switch(this[_0x41c9a3(0x480)]){case 0x0:_0x2fcfdc=_0x576340[_0x41c9a3(0x9ce)]||_0x41c9a3(0x550),_0x4b4c0e=TextManager['hp'];if(_0xcb68c===0x0)_0x2fcfdc='%1';break;case 0x1:_0x2fcfdc=_0x576340[_0x41c9a3(0xa2f)]||_0x41c9a3(0x3fd),_0x4b4c0e=TextManager['hp'];break;case 0x2:_0x2fcfdc=_0x576340[_0x41c9a3(0xc24)]||_0x41c9a3(0x3dc),_0x4b4c0e=TextManager['mp'];break;case 0x3:_0x2fcfdc=_0x576340[_0x41c9a3(0x4cf)]||_0x41c9a3(0xc8f),_0x4b4c0e=TextManager['mp'];break;}return _0x2fcfdc['format'](_0x3479d3,_0x4b4c0e)[_0x41c9a3(0xc8e)]();},Sprite_Damage[_0x1cc45e(0xc0b)][_0x1cc45e(0x397)]=function(){const _0x481c6e=_0x1cc45e;return Imported['VisuMZ_0_CoreEngine']?VisuMZ[_0x481c6e(0xaa7)][_0x481c6e(0x5fb)][_0x481c6e(0xc14)]['DigitGroupingDamageSprites']:![];},Sprite_Damage[_0x1cc45e(0xc0b)][_0x1cc45e(0xb6f)]=function(){const _0x273cf7=_0x1cc45e,_0x4be7e9=VisuMZ[_0x273cf7(0x2c5)]['Settings']['Damage'];_0x4be7e9[_0x273cf7(0x977)]=_0x4be7e9[_0x273cf7(0x977)]||[0x0,0x0,0x0,0x0],this['_flashColor']=_0x4be7e9[_0x273cf7(0x977)][_0x273cf7(0x937)](0x0),this[_0x273cf7(0xc38)]=_0x4be7e9[_0x273cf7(0x4f7)]||0x1;},Sprite_Damage['prototype']['setupTextPopup']=function(_0x4cfa07,_0xf4dc1f){const _0x28bf44=_0x1cc45e;Imported[_0x28bf44(0x720)]&&TextManager[_0x28bf44(0x647)]&&TextManager[_0x28bf44(0x647)]()&&(_0x4cfa07=TextManager[_0x28bf44(0x9c9)](_0x4cfa07));this[_0x28bf44(0x2cb)]=_0xf4dc1f[_0x28bf44(0x746)]||[0x0,0x0,0x0,0x0],this[_0x28bf44(0x2cb)]=JsonEx[_0x28bf44(0xb4c)](this[_0x28bf44(0x2cb)]),this[_0x28bf44(0xc38)]=_0xf4dc1f['flashDuration']||0x0;const _0x5f5e56=this['fontSize'](),_0x66605c=Math['floor'](_0x5f5e56*0x1e),_0x316820=this[_0x28bf44(0xced)](_0x66605c,_0x5f5e56);_0x316820[_0x28bf44(0x9a4)][_0x28bf44(0xb38)]=ColorManager[_0x28bf44(0xa69)](_0xf4dc1f[_0x28bf44(0xb38)]),_0x316820[_0x28bf44(0x9a4)][_0x28bf44(0x775)](_0x4cfa07,0x0,0x0,_0x66605c,_0x5f5e56,'center'),_0x316820['dy']=0x0;},Sprite_Damage[_0x1cc45e(0xc0b)][_0x1cc45e(0x7b3)]=function(_0x5536e1,_0x556cea,_0x7d99bb){const _0x3954c8=_0x1cc45e,_0x5d4da3=Math['max'](this[_0x3954c8(0x5a1)](),ImageManager['iconHeight']),_0x2b215c=Math[_0x3954c8(0x884)](_0x5d4da3*0x1e),_0x14d4da=this[_0x3954c8(0xced)](_0x2b215c,_0x5d4da3);Imported['VisuMZ_1_MessageCore']&&TextManager[_0x3954c8(0x647)]&&TextManager[_0x3954c8(0x647)]()&&(_0x556cea=TextManager['parseLocalizedText'](_0x556cea));const _0x4ec46d=ImageManager[_0x3954c8(0x85e)]/0x2,_0x8a9dc3=_0x14d4da[_0x3954c8(0x9a4)][_0x3954c8(0x38b)](_0x556cea+'\x20');_0x14d4da[_0x3954c8(0x9a4)]['textColor']=ColorManager[_0x3954c8(0xa69)](_0x7d99bb[_0x3954c8(0xb38)]),_0x14d4da['bitmap'][_0x3954c8(0x775)](_0x556cea,_0x4ec46d,0x0,_0x2b215c-_0x4ec46d,_0x5d4da3,_0x3954c8(0x669));const _0x4da1d5=Math[_0x3954c8(0xb4b)]((_0x5d4da3-ImageManager[_0x3954c8(0xb6c)])/0x2),_0x71f983=_0x2b215c/0x2-ImageManager[_0x3954c8(0x85e)]-_0x8a9dc3/0x2+_0x4ec46d/0x2,_0x311c8e=ImageManager['loadSystem'](_0x3954c8(0x7be)),_0x443dd5=ImageManager[_0x3954c8(0x85e)],_0x9d3710=ImageManager[_0x3954c8(0xb6c)],_0x70185=_0x5536e1%0x10*_0x443dd5,_0x3e3cd9=Math[_0x3954c8(0x884)](_0x5536e1/0x10)*_0x9d3710;_0x14d4da['bitmap']['blt'](_0x311c8e,_0x70185,_0x3e3cd9,_0x443dd5,_0x9d3710,_0x71f983,_0x4da1d5),this['_flashColor']=_0x7d99bb['flashColor']||[0x0,0x0,0x0,0x0],this['_flashColor']=JsonEx[_0x3954c8(0xb4c)](this[_0x3954c8(0x2cb)]),this[_0x3954c8(0xc38)]=_0x7d99bb[_0x3954c8(0x6d4)]||0x0,_0x14d4da['dy']=0x0,_0x7d99bb[_0x3954c8(0xb43)]&&(_0x14d4da['x']+=_0x7d99bb[_0x3954c8(0xb43)]),_0x7d99bb[_0x3954c8(0x332)]&&(_0x14d4da['dy']+=_0x7d99bb[_0x3954c8(0x332)]);},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x638)]=Sprite_Damage[_0x1cc45e(0xc0b)][_0x1cc45e(0xced)],Sprite_Damage[_0x1cc45e(0xc0b)][_0x1cc45e(0xced)]=function(_0x2c661b,_0x5e3d40){const _0x216774=_0x1cc45e;return _0x5e3d40=Math[_0x216774(0xb4b)](_0x5e3d40*1.2),VisuMZ['BattleCore'][_0x216774(0x638)][_0x216774(0xa54)](this,_0x2c661b,_0x5e3d40);},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0xc78)]=Sprite_StateIcon[_0x1cc45e(0xc0b)]['updateFrame'],Sprite_StateIcon[_0x1cc45e(0xc0b)]['updateFrame']=function(){const _0x2210af=_0x1cc45e;VisuMZ[_0x2210af(0x2c5)][_0x2210af(0xc78)][_0x2210af(0xa54)](this),this[_0x2210af(0x2f3)]=this[_0x2210af(0xb99)]>0x0?0xff:0x0;},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x6e2)]=Sprite_Weapon[_0x1cc45e(0xc0b)][_0x1cc45e(0x8ae)],Sprite_Weapon['prototype']['loadBitmap']=function(){const _0x59e1d3=_0x1cc45e;VisuMZ['BattleCore'][_0x59e1d3(0x6e2)][_0x59e1d3(0xa54)](this),this[_0x59e1d3(0x9a4)]&&(this[_0x59e1d3(0x9a4)][_0x59e1d3(0xa0b)]=VisuMZ[_0x59e1d3(0x2c5)][_0x59e1d3(0x5fb)][_0x59e1d3(0x3c1)]['SmoothImage']);},VisuMZ['BattleCore'][_0x1cc45e(0x751)]=Sprite_Gauge[_0x1cc45e(0xc0b)]['smoothness'],Sprite_Gauge[_0x1cc45e(0xc0b)][_0x1cc45e(0x3f8)]=function(){const _0x5c067c=_0x1cc45e;return this[_0x5c067c(0x859)]!==_0x5c067c(0x316)?VisuMZ[_0x5c067c(0x2c5)]['Settings'][_0x5c067c(0x984)][_0x5c067c(0x846)]??0x14:VisuMZ[_0x5c067c(0x2c5)][_0x5c067c(0x751)][_0x5c067c(0xa54)](this);};function Sprite_GaugeRate(){const _0x2db25b=_0x1cc45e;this[_0x2db25b(0x896)](...arguments);}Sprite_GaugeRate[_0x1cc45e(0xc0b)]=Object['create'](Sprite_Gauge[_0x1cc45e(0xc0b)]),Sprite_GaugeRate[_0x1cc45e(0xc0b)][_0x1cc45e(0x2e2)]=Sprite_GaugeRate,Sprite_GaugeRate[_0x1cc45e(0xc0b)]['initialize']=function(){const _0x42440a=_0x1cc45e;Sprite_Gauge[_0x42440a(0xc0b)]['initialize'][_0x42440a(0xa54)](this),this[_0x42440a(0x516)]=![];},Sprite_GaugeRate[_0x1cc45e(0xc0b)][_0x1cc45e(0x683)]=function(_0xaca910,_0x14bee9){const _0x4b9408=_0x1cc45e;this[_0x4b9408(0x516)]=!![],Sprite_Gauge[_0x4b9408(0xc0b)][_0x4b9408(0x683)][_0x4b9408(0xa54)](this,_0xaca910,_0x14bee9),this[_0x4b9408(0x516)]=![];},Sprite_GaugeRate[_0x1cc45e(0xc0b)]['currentValue']=function(){const _0x1770a5=_0x1cc45e;if(this['_updateTargetValue']){const _0x418155=Sprite_Gauge[_0x1770a5(0xc0b)][_0x1770a5(0xcc0)][_0x1770a5(0xa54)](this),_0xc5d735=this['currentMaxValue']();if(_0xc5d735<=0x0)return _0x1770a5(0x791);return Math[_0x1770a5(0x884)](_0x418155/_0xc5d735*0x64)+'%';}else return Sprite_Gauge[_0x1770a5(0xc0b)]['currentValue']['call'](this);},Sprite_GaugeRate[_0x1cc45e(0xc0b)][_0x1cc45e(0x933)]=function(){const _0x41e053=_0x1cc45e,_0x3b791b=Sprite_Gauge[_0x41e053(0xc0b)][_0x41e053(0xcc0)]['call'](this),_0xfab224=this[_0x41e053(0x8f6)]();if(_0xfab224<=0x0)return _0x41e053(0x791);return Math[_0x41e053(0x884)](_0x3b791b/_0xfab224*0x64)+'%';},Sprite_GaugeRate[_0x1cc45e(0xc0b)]['gaugeRate']=function(){const _0x35b06b=_0x1cc45e;if(this[_0x35b06b(0x8f6)]()<=0x0)return 0x1;return Sprite_Gauge[_0x35b06b(0xc0b)][_0x35b06b(0xc62)][_0x35b06b(0xa54)](this);},Sprite_GaugeRate['prototype'][_0x1cc45e(0x9d4)]=function(){const _0x2be0a3=_0x1cc45e;if(this[_0x2be0a3(0x8f6)]()<=0x0)return ColorManager[_0x2be0a3(0x3b7)]();return Sprite_Gauge[_0x2be0a3(0xc0b)][_0x2be0a3(0x9d4)][_0x2be0a3(0xa54)](this);},Sprite_GaugeRate[_0x1cc45e(0xc0b)][_0x1cc45e(0x3dd)]=function(){const _0x13b141=_0x1cc45e;this[_0x13b141(0x859)]==='mp'&&this[_0x13b141(0x8f6)]()<=0x0&&($gameTemp['redrawForGaugeRate']=!![]),Sprite_Gauge[_0x13b141(0xc0b)]['redraw'][_0x13b141(0xa54)](this),$gameTemp[_0x13b141(0xc55)]=undefined;},VisuMZ[_0x1cc45e(0x2c5)]['ColorManager_mpColor']=ColorManager[_0x1cc45e(0xb18)],ColorManager[_0x1cc45e(0xb18)]=function(_0x4fb074){const _0x3d58d0=_0x1cc45e;if($gameTemp['redrawForGaugeRate'])return ColorManager['normalColor']();return VisuMZ[_0x3d58d0(0x2c5)][_0x3d58d0(0xaf0)]['call'](this,_0x4fb074);};function Sprite_HpGauge(){const _0x1b5fa0=_0x1cc45e;this[_0x1b5fa0(0x896)](...arguments);}Sprite_HpGauge[_0x1cc45e(0xc0b)]=Object['create'](Sprite_Gauge[_0x1cc45e(0xc0b)]),Sprite_HpGauge['prototype'][_0x1cc45e(0x2e2)]=Sprite_HpGauge,Sprite_HpGauge[_0x1cc45e(0xc0b)][_0x1cc45e(0x896)]=function(){const _0x1c9dde=_0x1cc45e;Sprite_Gauge[_0x1c9dde(0xc0b)]['initialize'][_0x1c9dde(0xa54)](this);},Sprite_HpGauge[_0x1cc45e(0xc0b)]['gaugeX']=function(){return 0x0;},Sprite_HpGauge[_0x1cc45e(0xc0b)][_0x1cc45e(0x3dd)]=function(){const _0x428f24=_0x1cc45e;this[_0x428f24(0x9a4)][_0x428f24(0x52a)]();const _0x1a6217=this[_0x428f24(0xcc0)]();!isNaN(_0x1a6217)&&this[_0x428f24(0x8e5)]();};function Sprite_EnemyName(){const _0xd30c41=_0x1cc45e;this[_0xd30c41(0x896)](...arguments);}Sprite_EnemyName['prototype']=Object['create'](Sprite_Name[_0x1cc45e(0xc0b)]),Sprite_EnemyName[_0x1cc45e(0xc0b)][_0x1cc45e(0x2e2)]=Sprite_EnemyName,Sprite_EnemyName[_0x1cc45e(0xc0b)][_0x1cc45e(0x896)]=function(){const _0x22c820=_0x1cc45e;Sprite_Name[_0x22c820(0xc0b)][_0x22c820(0x896)][_0x22c820(0xa54)](this),this[_0x22c820(0x92d)]();},Sprite_EnemyName['prototype']['initMembers']=function(){const _0x4c6dbf=_0x1cc45e;Sprite_Name[_0x4c6dbf(0xc0b)][_0x4c6dbf(0x522)][_0x4c6dbf(0xa54)](this),this['opacity']=0x0,this[_0x4c6dbf(0x202)]=null,this['anchor']['x']=0.5,this['anchor']['y']=0x0;},Sprite_EnemyName[_0x1cc45e(0xc0b)][_0x1cc45e(0x92d)]=function(){const _0x198189=_0x1cc45e;VisuMZ['BattleCore']['Settings']['Enemy'][_0x198189(0xb60)]&&(this[_0x198189(0x57e)]=new Sprite_StateIcon(),this['addChild'](this['_stateIconSprite']));},Sprite_EnemyName[_0x1cc45e(0xc0b)]['bitmapWidth']=function(){const _0x660f00=_0x1cc45e;return Graphics[_0x660f00(0x46e)];},Sprite_EnemyName[_0x1cc45e(0xc0b)][_0x1cc45e(0xcdd)]=function(){const _0x4f3308=_0x1cc45e;return this[_0x4f3308(0xb79)]=this[_0x4f3308(0xb79)]||Window_Base[_0x4f3308(0xc0b)][_0x4f3308(0x787)]()||0x24,this[_0x4f3308(0xb79)]*0x4;},Sprite_EnemyName[_0x1cc45e(0xc0b)][_0x1cc45e(0x5a1)]=function(){const _0x43c1fc=_0x1cc45e;return VisuMZ['BattleCore'][_0x43c1fc(0x5fb)][_0x43c1fc(0x1a9)][_0x43c1fc(0x463)]||$gameSystem[_0x43c1fc(0x47c)]();},Sprite_EnemyName[_0x1cc45e(0xc0b)][_0x1cc45e(0xc7b)]=function(_0x64d842){const _0x1f8433=_0x1cc45e;this[_0x1f8433(0x202)]=_0x64d842;},Sprite_EnemyName[_0x1cc45e(0xc0b)]['update']=function(){const _0x4bf6ab=_0x1cc45e;Sprite_Name['prototype'][_0x4bf6ab(0x90f)][_0x4bf6ab(0xa54)](this),this[_0x4bf6ab(0xd09)](),this['updatePosition'](),this[_0x4bf6ab(0x962)](),this[_0x4bf6ab(0x4ff)]();},Sprite_EnemyName[_0x1cc45e(0xc0b)][_0x1cc45e(0x3dd)]=function(){const _0x585be9=_0x1cc45e;this[_0x585be9(0x776)]=undefined;const _0x347cc4=this[_0x585be9(0xc4e)](),_0x129869=this[_0x585be9(0x87a)](),_0x3b3ccd=Window_Base['prototype'][_0x585be9(0x787)]();this[_0x585be9(0xb67)](),this[_0x585be9(0x9a4)][_0x585be9(0x52a)](),this[_0x585be9(0x9a4)][_0x585be9(0x775)](_0x347cc4,0x0,0x0,_0x129869,_0x3b3ccd,_0x585be9(0x669));},Sprite_EnemyName[_0x1cc45e(0xc0b)][_0x1cc45e(0xd09)]=function(){const _0x171b66=_0x1cc45e;if(!this['_linkedSprite'])return;this[_0x171b66(0x848)]!==this['_linkedSprite'][_0x171b66(0x848)]&&this[_0x171b66(0x620)](this[_0x171b66(0x202)]['_battler']);},Sprite_EnemyName[_0x1cc45e(0xc0b)][_0x1cc45e(0x211)]=function(){const _0x451e72=_0x1cc45e;if(!this[_0x451e72(0x202)])return;this[_0x451e72(0xb79)]=this[_0x451e72(0xb79)]||Window_Base[_0x451e72(0xc0b)][_0x451e72(0x787)](),this['x']=Math[_0x451e72(0xb4b)](this['_linkedSprite'][_0x451e72(0x29f)]),this['y']=Math[_0x451e72(0xb4b)](this[_0x451e72(0x202)][_0x451e72(0xb2d)]-this[_0x451e72(0xb79)]*0.5);const _0x2c4538=VisuMZ[_0x451e72(0x2c5)]['Settings']['Enemy'];this['x']+=Math[_0x451e72(0xb4b)](_0x2c4538[_0x451e72(0x382)]||0x0),this['y']+=Math[_0x451e72(0xb4b)](_0x2c4538[_0x451e72(0x5b4)]||0x0);},Sprite_EnemyName[_0x1cc45e(0xc0b)][_0x1cc45e(0x962)]=function(){const _0x2bfe4f=_0x1cc45e;this[_0x2bfe4f(0x5ab)]();},Sprite_EnemyName[_0x1cc45e(0xc0b)][_0x1cc45e(0x5ab)]=function(){const _0x46c16b=_0x1cc45e;if(!this['_stateIconSprite'])return;this[_0x46c16b(0x848)]!==this[_0x46c16b(0x57e)][_0x46c16b(0x848)]&&this[_0x46c16b(0x57e)][_0x46c16b(0x620)](this[_0x46c16b(0x848)]);const _0x4539ff=this[_0x46c16b(0x7e4)]();this[_0x46c16b(0xb79)]=this[_0x46c16b(0xb79)]||Window_Base[_0x46c16b(0xc0b)][_0x46c16b(0x787)](),this[_0x46c16b(0x57e)]['x']=Math[_0x46c16b(0xb4b)]((_0x4539ff+ImageManager[_0x46c16b(0x85e)])/0x2)+0x8,this[_0x46c16b(0x57e)]['y']=this[_0x46c16b(0xb79)]/0x2;const _0x55c608=VisuMZ[_0x46c16b(0x2c5)][_0x46c16b(0x5fb)][_0x46c16b(0x1a9)];this[_0x46c16b(0x57e)]['x']+=_0x55c608[_0x46c16b(0x7e7)]||0x0,this[_0x46c16b(0x57e)]['y']+=_0x55c608[_0x46c16b(0x766)]||0x0;},Sprite_EnemyName[_0x1cc45e(0xc0b)]['updateOpacity']=function(){const _0x109041=_0x1cc45e,_0x4d0d46=this[_0x109041(0x70d)]();if(_0x4d0d46&&this[_0x109041(0x2f3)]<0xff)this['opacity']+=0x10;else!_0x4d0d46&&this[_0x109041(0x2f3)]>0x0&&(this[_0x109041(0x2f3)]-=0x10);},Sprite_EnemyName['prototype'][_0x1cc45e(0x70d)]=function(){const _0x80d1d3=_0x1cc45e;if(this['isAlwaysHidden']())return![];else{if(!this[_0x80d1d3(0x848)])return![];else{if(!this[_0x80d1d3(0x848)][_0x80d1d3(0x7e3)]())return![];else{if(this[_0x80d1d3(0x354)]())return!![];else{if(this[_0x80d1d3(0x848)]['isDead']())return![];else{if(this['isBattlerTargeted']())return!![];else{if(this['compatibilityVisible']())return!![];else{if(this[_0x80d1d3(0x916)]())return!![];else{if(this[_0x80d1d3(0x5ac)]())return!![];else{if(this['opacity']>0x0)return![];}}}}}}}}}},Sprite_EnemyName[_0x1cc45e(0xc0b)][_0x1cc45e(0x354)]=function(){const _0x2c5cc5=_0x1cc45e;return this[_0x2c5cc5(0x848)]&&this[_0x2c5cc5(0x848)][_0x2c5cc5(0x430)]();},Sprite_EnemyName['prototype'][_0x1cc45e(0x594)]=function(){const _0x42e926=_0x1cc45e;return VisuMZ[_0x42e926(0x2c5)][_0x42e926(0x5fb)]['Enemy'][_0x42e926(0x830)];},Sprite_EnemyName[_0x1cc45e(0xc0b)]['isBattlerTargeted']=function(){const _0x3cbede=_0x1cc45e;if(!VisuMZ[_0x3cbede(0x2c5)][_0x3cbede(0x5fb)][_0x3cbede(0x1a9)][_0x3cbede(0xb77)])return![];if(BattleManager[_0x3cbede(0x895)]()&&!BattleManager[_0x3cbede(0x718)]())return![];return this[_0x3cbede(0x848)]&&BattleManager[_0x3cbede(0x301)]&&BattleManager[_0x3cbede(0x5f3)]['includes'](this['_battler']);},Sprite_EnemyName[_0x1cc45e(0xc0b)][_0x1cc45e(0x8ad)]=function(){return![];},Sprite_EnemyName['prototype'][_0x1cc45e(0x916)]=function(){const _0x436462=_0x1cc45e;return VisuMZ[_0x436462(0x2c5)][_0x436462(0x5fb)][_0x436462(0x1a9)][_0x436462(0xbe9)];},Sprite_EnemyName[_0x1cc45e(0xc0b)]['isIncludedInEnemyWindow']=function(){const _0x53d3ca=_0x1cc45e;return VisuMZ['BattleCore'][_0x53d3ca(0x5fb)][_0x53d3ca(0x1a9)][_0x53d3ca(0x525)]?this[_0x53d3ca(0x848)][_0x53d3ca(0x2dc)]():SceneManager[_0x53d3ca(0x659)][_0x53d3ca(0xbba)]&&SceneManager[_0x53d3ca(0x659)][_0x53d3ca(0xbba)]['active']&&SceneManager[_0x53d3ca(0x659)]['_enemyWindow'][_0x53d3ca(0x1d1)][_0x53d3ca(0x9c4)](this[_0x53d3ca(0x848)]);},Sprite_EnemyName[_0x1cc45e(0xc0b)][_0x1cc45e(0x7e4)]=function(){const _0x5853ca=_0x1cc45e;if(!this[_0x5853ca(0x848)])return 0x0;if(this['_cacheTextWidth'])return this['_cacheTextWidth'];let _0x4d8026=this[_0x5853ca(0xc4e)]();return this[_0x5853ca(0xb67)](),Imported[_0x5853ca(0x720)]&&TextManager[_0x5853ca(0x9c9)]&&(_0x4d8026=TextManager[_0x5853ca(0x9c9)](_0x4d8026)),this['_cacheTextWidth']=this['bitmap'][_0x5853ca(0x38b)](_0x4d8026)||0x1,this['_cacheTextWidth'];},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x85d)]=Sprite_Battleback['prototype'][_0x1cc45e(0x8ab)],Sprite_Battleback[_0x1cc45e(0xc0b)][_0x1cc45e(0x8ab)]=function(){const _0x2adf6b=_0x1cc45e,_0x1fb60c=VisuMZ[_0x2adf6b(0x2c5)][_0x2adf6b(0x5fb)][_0x2adf6b(0x96a)];if(!_0x1fb60c)return VisuMZ['BattleCore'][_0x2adf6b(0x85d)][_0x2adf6b(0xa54)](this);const _0xaad201=String(_0x1fb60c[_0x2adf6b(0x257)])||'MZ';switch(_0xaad201){case'MZ':VisuMZ[_0x2adf6b(0x2c5)][_0x2adf6b(0x85d)][_0x2adf6b(0xa54)](this);break;case _0x2adf6b(0x713):this[_0x2adf6b(0x6ff)]();break;case _0x2adf6b(0xafb):this['adjustPosition_ScaleToFit']();break;case _0x2adf6b(0x423):this[_0x2adf6b(0x8e8)]();break;case _0x2adf6b(0xba8):this[_0x2adf6b(0x7db)]();break;}},Sprite_Battleback['prototype']['adjustPosition_1for1']=function(){const _0x2737cd=_0x1cc45e,_0x7df38=VisuMZ[_0x2737cd(0x2c5)]['Settings'][_0x2737cd(0x96a)];if(_0x7df38&&_0x7df38[_0x2737cd(0x84b)])return _0x7df38[_0x2737cd(0x84b)]['call'](this);this['width']=Graphics[_0x2737cd(0x885)],this[_0x2737cd(0x20f)]=Graphics[_0x2737cd(0x20f)];const _0xb288c8=0x1;this[_0x2737cd(0x9f1)]['x']=_0xb288c8,this[_0x2737cd(0x9f1)]['y']=_0xb288c8,this['x']=0x0,this['y']=0x0;},Sprite_Battleback['prototype'][_0x1cc45e(0x503)]=function(){const _0x7859aa=_0x1cc45e,_0x15f6e3=VisuMZ[_0x7859aa(0x2c5)][_0x7859aa(0x5fb)][_0x7859aa(0x96a)];if(_0x15f6e3&&_0x15f6e3[_0x7859aa(0x722)])return _0x15f6e3[_0x7859aa(0x722)][_0x7859aa(0xa54)](this);this[_0x7859aa(0x885)]=Graphics[_0x7859aa(0x885)],this[_0x7859aa(0x20f)]=Graphics['height'];const _0x20283f=this['width']/this['bitmap'][_0x7859aa(0x885)],_0x1d781a=this[_0x7859aa(0x20f)]/this[_0x7859aa(0x9a4)][_0x7859aa(0x20f)],_0x50feb8=Math[_0x7859aa(0x485)](_0x20283f,_0x1d781a);this[_0x7859aa(0x9f1)]['x']=_0x50feb8,this[_0x7859aa(0x9f1)]['y']=_0x50feb8,this['x']=(Graphics['width']-this[_0x7859aa(0x885)])/0x2,this['y']=Graphics['height']-this[_0x7859aa(0x20f)];},Sprite_Battleback[_0x1cc45e(0xc0b)][_0x1cc45e(0x8e8)]=function(){const _0x5af4fc=_0x1cc45e,_0x142813=VisuMZ[_0x5af4fc(0x2c5)][_0x5af4fc(0x5fb)]['BattlebackScale'];if(_0x142813&&_0x142813[_0x5af4fc(0xcb7)])return _0x142813[_0x5af4fc(0xcb7)][_0x5af4fc(0xa54)](this);this[_0x5af4fc(0x885)]=Graphics[_0x5af4fc(0x885)],this[_0x5af4fc(0x20f)]=Graphics[_0x5af4fc(0x20f)];const _0x27d9d0=Math[_0x5af4fc(0x6cb)](0x1,this['width']/this['bitmap']['width']),_0xd0463e=Math['min'](0x1,this[_0x5af4fc(0x20f)]/this[_0x5af4fc(0x9a4)][_0x5af4fc(0x20f)]),_0x487c8a=Math['max'](_0x27d9d0,_0xd0463e);this[_0x5af4fc(0x9f1)]['x']=_0x487c8a,this[_0x5af4fc(0x9f1)]['y']=_0x487c8a,this['x']=(Graphics[_0x5af4fc(0x885)]-this[_0x5af4fc(0x885)])/0x2,this['y']=Graphics['height']-this['height'];},Sprite_Battleback['prototype'][_0x1cc45e(0x7db)]=function(){const _0x3f9fc5=_0x1cc45e,_0x8440c2=VisuMZ[_0x3f9fc5(0x2c5)]['Settings']['BattlebackScale'];if(_0x8440c2&&_0x8440c2[_0x3f9fc5(0x710)])return _0x8440c2['jsScaleUp'][_0x3f9fc5(0xa54)](this);this['width']=Graphics[_0x3f9fc5(0x885)],this[_0x3f9fc5(0x20f)]=Graphics['height'];const _0x598ac4=Math[_0x3f9fc5(0x485)](0x1,this[_0x3f9fc5(0x885)]/this[_0x3f9fc5(0x9a4)][_0x3f9fc5(0x885)]),_0x5b30dd=Math[_0x3f9fc5(0x485)](0x1,this[_0x3f9fc5(0x20f)]/this[_0x3f9fc5(0x9a4)][_0x3f9fc5(0x20f)]),_0x32e184=Math['max'](_0x598ac4,_0x5b30dd);this[_0x3f9fc5(0x9f1)]['x']=_0x32e184,this['scale']['y']=_0x32e184,this['x']=(Graphics[_0x3f9fc5(0x885)]-this[_0x3f9fc5(0x885)])/0x2,this['y']=Graphics['height']-this[_0x3f9fc5(0x20f)];},Spriteset_Battle[_0x1cc45e(0x51f)]=VisuMZ['BattleCore'][_0x1cc45e(0x5fb)][_0x1cc45e(0x5d4)][_0x1cc45e(0xb5a)]??!![],Spriteset_Battle[_0x1cc45e(0xc0b)][_0x1cc45e(0x4a8)]=function(){if(!$gameSystem['isSideView']())return![];return![];},Spriteset_Battle[_0x1cc45e(0xc0b)][_0x1cc45e(0x49a)]=function(){return 0x0;},Spriteset_Battle[_0x1cc45e(0xc0b)]['animationNextDelay']=function(){return 0x0;},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x43f)]=Spriteset_Battle[_0x1cc45e(0xc0b)][_0x1cc45e(0x883)],Spriteset_Battle[_0x1cc45e(0xc0b)]['createLowerLayer']=function(){const _0x273fba=_0x1cc45e;VisuMZ['BattleCore'][_0x273fba(0x43f)][_0x273fba(0xa54)](this),this['createWeather'](),this[_0x273fba(0xc44)]();},VisuMZ['BattleCore']['Spriteset_Battle_update']=Spriteset_Battle[_0x1cc45e(0xc0b)][_0x1cc45e(0x90f)],Spriteset_Battle[_0x1cc45e(0xc0b)]['update']=function(){const _0x1b18af=_0x1cc45e;VisuMZ[_0x1b18af(0x2c5)][_0x1b18af(0xae8)][_0x1b18af(0xa54)](this),this[_0x1b18af(0xb1e)](),this[_0x1b18af(0xc30)](),this[_0x1b18af(0x738)](),this[_0x1b18af(0x4ea)]();},Spriteset_Battle[_0x1cc45e(0xc0b)]['createWeather']=function(){const _0x457858=_0x1cc45e;this[_0x457858(0x313)]=new Weather(),this['_battleField'][_0x457858(0x84d)](this[_0x457858(0x313)]);},Spriteset_Battle[_0x1cc45e(0xc0b)]['updateWeather']=function(){const _0x25ca24=_0x1cc45e;this[_0x25ca24(0x313)]['type']=$gameScreen[_0x25ca24(0x5a4)](),this['_weather'][_0x25ca24(0xbf6)]=$gameScreen[_0x25ca24(0x6ac)]();},Game_Interpreter[_0x1cc45e(0xc0b)][_0x1cc45e(0x443)]=function(_0x47ea29){$gameScreen['changeWeather'](_0x47ea29[0x0],_0x47ea29[0x1],_0x47ea29[0x2]);if(_0x47ea29[0x3])this['wait'](_0x47ea29[0x2]);return!![];},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0xaa3)]=Game_Interpreter[_0x1cc45e(0xc0b)][_0x1cc45e(0x22a)],Game_Interpreter[_0x1cc45e(0xc0b)][_0x1cc45e(0x22a)]=function(_0x5f40b1){const _0x25c69b=_0x1cc45e;return VisuMZ[_0x25c69b(0x2c5)][_0x25c69b(0xaa3)][_0x25c69b(0xa54)](this,_0x5f40b1),SceneManager[_0x25c69b(0x499)]()&&SceneManager['_scene'][_0x25c69b(0x2e6)][_0x25c69b(0xa89)](_0x5f40b1[0x0],_0x5f40b1[0x1]),!![];},Sprite_Battleback[_0x1cc45e(0xc0b)][_0x1cc45e(0xa9f)]=function(){const _0x108f32=_0x1cc45e;if($gameMap['battleback1Name']()!==null)return $gameMap[_0x108f32(0xa9f)]();else{if(BattleManager[_0x108f32(0x350)]())return $dataSystem[_0x108f32(0xa9f)];else return $gameMap['isOverworld']()?this['overworldBattleback1Name']():'';}},Sprite_Battleback[_0x1cc45e(0xc0b)][_0x1cc45e(0x834)]=function(){const _0x1bfd04=_0x1cc45e;if($gameMap[_0x1bfd04(0x834)]()!==null)return $gameMap[_0x1bfd04(0x834)]();else{if(BattleManager[_0x1bfd04(0x350)]())return $dataSystem[_0x1bfd04(0x834)];else return $gameMap[_0x1bfd04(0x342)]()?this[_0x1bfd04(0x41a)]():'';}},Spriteset_Battle[_0x1cc45e(0xc0b)][_0x1cc45e(0x9b6)]=function(_0x5bc99d,_0x167fb8){const _0x377b91=_0x1cc45e;_0x5bc99d[_0x377b91(0x9a4)]=_0x167fb8;},Spriteset_Battle['prototype'][_0x1cc45e(0xa89)]=function(_0x37f1fc,_0x4dedd8){const _0x503a20=_0x1cc45e;_0x37f1fc=_0x37f1fc||'',_0x4dedd8=_0x4dedd8||'';_0x37f1fc===''&&_0x4dedd8===''&&(_0x37f1fc=this[_0x503a20(0x869)][_0x503a20(0xa9f)](),_0x4dedd8=this[_0x503a20(0xbf1)][_0x503a20(0x834)]());const _0x2ceec1=ImageManager[_0x503a20(0xacf)](_0x37f1fc),_0x3fbb6d=ImageManager['loadBattleback2'](_0x4dedd8);_0x2ceec1['addLoadListener'](this['updateBattlebackBitmap1'][_0x503a20(0x344)](this,this[_0x503a20(0x869)],this[_0x503a20(0xbf1)],_0x2ceec1,_0x3fbb6d));},Spriteset_Battle[_0x1cc45e(0xc0b)][_0x1cc45e(0xa30)]=function(_0x5b7bbf,_0xc0135,_0x14e529,_0x4aa92c){const _0x10a66d=_0x1cc45e;_0x4aa92c['addLoadListener'](this[_0x10a66d(0x2a6)][_0x10a66d(0x344)](this,_0x5b7bbf,_0xc0135,_0x14e529,_0x4aa92c));},Spriteset_Battle[_0x1cc45e(0xc0b)][_0x1cc45e(0x2a6)]=function(_0x42afb7,_0x13f3dc,_0x192d67,_0x277f3d){const _0x1b5072=_0x1cc45e;_0x42afb7['bitmap']=_0x192d67,_0x13f3dc['bitmap']=_0x277f3d,_0x42afb7[_0x1b5072(0x8ab)](),_0x13f3dc[_0x1b5072(0x8ab)]();},VisuMZ['BattleCore'][_0x1cc45e(0xc2e)]=Spriteset_Battle[_0x1cc45e(0xc0b)][_0x1cc45e(0x1dc)],Spriteset_Battle[_0x1cc45e(0xc0b)]['createBattleField']=function(){const _0x97b84f=_0x1cc45e;VisuMZ[_0x97b84f(0x2c5)][_0x97b84f(0xc2e)][_0x97b84f(0xa54)](this),this[_0x97b84f(0x2c2)]();},Spriteset_Battle['prototype']['createBattleFieldBattleCore']=function(){const _0x425c8e=_0x1cc45e;this[_0x425c8e(0x90c)](),this[_0x425c8e(0xc86)](),this[_0x425c8e(0xa64)](),this[_0x425c8e(0xcd1)](),this[_0x425c8e(0x604)]();},Spriteset_Battle[_0x1cc45e(0xc0b)][_0x1cc45e(0x90c)]=function(){const _0x3d65a8=_0x1cc45e;this[_0x3d65a8(0x9fd)]=new Sprite(),this[_0x3d65a8(0x27f)][_0x3d65a8(0x84d)](this['_underAnimationContainer']),this['_battlerContainer']=new Sprite(),this['_battleField'][_0x3d65a8(0x84d)](this[_0x3d65a8(0x422)]);},Spriteset_Battle[_0x1cc45e(0xc0b)][_0x1cc45e(0xa64)]=function(){const _0x9df9b8=_0x1cc45e;this[_0x9df9b8(0x5bd)]=new Sprite(),Spriteset_Battle[_0x9df9b8(0x51f)]?this[_0x9df9b8(0x84d)](this[_0x9df9b8(0x5bd)]):this[_0x9df9b8(0x27f)][_0x9df9b8(0x84d)](this[_0x9df9b8(0x5bd)]);},Spriteset_Battle['prototype'][_0x1cc45e(0xcd1)]=function(){const _0x235237=_0x1cc45e;this[_0x235237(0xc1e)]=new Sprite(),this[_0x235237(0xc1e)]['x']=this[_0x235237(0x27f)]['x'],this[_0x235237(0xc1e)]['y']=this['_battleField']['y'],this['addChild'](this[_0x235237(0xc1e)]);},Spriteset_Battle[_0x1cc45e(0xc0b)]['adjustFlippedBattlefield']=function(){const _0x3a958d=_0x1cc45e;if(!this[_0x3a958d(0x4a8)]())return;this['_battlerContainer']['scale']['x']=-0x1,this[_0x3a958d(0x422)]['x']=this[_0x3a958d(0x27f)][_0x3a958d(0x885)],this[_0x3a958d(0xa4b)][_0x3a958d(0x9f1)]['x']=-0x1,this[_0x3a958d(0xa4b)]['x']=this[_0x3a958d(0x27f)]['width'],this[_0x3a958d(0x5bd)]['scale']['x']=-0x1,this[_0x3a958d(0x5bd)]['x']=this[_0x3a958d(0x27f)]['width'],this[_0x3a958d(0xc1e)][_0x3a958d(0x9f1)]['x']=-0x1,this[_0x3a958d(0xc1e)]['x']=this[_0x3a958d(0x27f)]['x']+this[_0x3a958d(0x27f)][_0x3a958d(0x885)];},Spriteset_Battle[_0x1cc45e(0xc0b)][_0x1cc45e(0xa1f)]=function(){const _0x3f8de2=_0x1cc45e;Imported['VisuMZ_0_CoreEngine']&&this[_0x3f8de2(0x907)]()&&this['repositionEnemiesByResolution']();const _0x16278f=$gameTroop[_0x3f8de2(0x1be)](),_0x5fb6a=[];for(const _0x3b582a of _0x16278f){_0x5fb6a[_0x3f8de2(0xca6)](new Sprite_Enemy(_0x3b582a));}_0x5fb6a[_0x3f8de2(0x663)](this['compareEnemySprite'][_0x3f8de2(0x344)](this));for(const _0x5e2472 of _0x5fb6a){this[_0x3f8de2(0x422)][_0x3f8de2(0x84d)](_0x5e2472);}this['_enemySprites']=_0x5fb6a;},Spriteset_Battle[_0x1cc45e(0xc0b)][_0x1cc45e(0xbbe)]=function(){const _0x586abc=_0x1cc45e;this[_0x586abc(0xc8a)]=[];for(let _0x15eb2d=0x0;_0x15eb2d<$gameParty['maxBattleMembers']();_0x15eb2d++){const _0x2452f9=$gameParty['battleMembers']()[_0x15eb2d],_0x687ee7=new Sprite_Actor();_0x687ee7['moveToStartPositionBattleCore'](_0x2452f9),_0x687ee7['setBattler'](_0x2452f9),_0x687ee7[_0x586abc(0x90f)](),this[_0x586abc(0xc8a)]['push'](_0x687ee7),this[_0x586abc(0x422)][_0x586abc(0x84d)](_0x687ee7);}},Spriteset_Battle[_0x1cc45e(0xc0b)]['createAnimationSprite']=function(_0x5288e0,_0x2adb3e,_0x478fbc,_0x4d7518){const _0x55da3b=_0x1cc45e,_0xab084e=this[_0x55da3b(0x7c0)](_0x2adb3e),_0xfc39df=new(_0xab084e?Sprite_AnimationMV:Sprite_Animation)(),_0x4a8846=this[_0x55da3b(0x2ac)](_0x5288e0);this[_0x55da3b(0x3cd)](_0x5288e0[0x0])&&(_0x478fbc=!_0x478fbc),_0xfc39df[_0x55da3b(0x6d6)]=_0x5288e0,_0xfc39df['setup'](_0x4a8846,_0x2adb3e,_0x478fbc,_0x4d7518),this[_0x55da3b(0x324)](_0xfc39df);},Spriteset_Battle['prototype'][_0x1cc45e(0x324)]=function(_0x3a8ce4){const _0x402ca2=_0x1cc45e;this[_0x402ca2(0xd00)](_0x3a8ce4)?(this[_0x402ca2(0xb98)]()[_0x402ca2(0x84d)](_0x3a8ce4),_0x3a8ce4['battleStatusSprite']=!![]):(Spriteset_Battle[_0x402ca2(0x51f)]&&(this[_0x402ca2(0x5bd)]['x']=this['_effectsContainer']['x'],this[_0x402ca2(0x5bd)]['y']=this['_effectsContainer']['y']),this['_underAnimationContainer']&&_0x3a8ce4['isUnderAnimation']&&_0x3a8ce4[_0x402ca2(0xd0d)]()?(this[_0x402ca2(0x9fd)][_0x402ca2(0x84d)](_0x3a8ce4),this[_0x402ca2(0x9fd)]['x']=this[_0x402ca2(0x5bd)]['x'],this[_0x402ca2(0x9fd)]['y']=this[_0x402ca2(0x5bd)]['y']):this[_0x402ca2(0x5bd)]['addChild'](_0x3a8ce4)),this[_0x402ca2(0xadd)][_0x402ca2(0xca6)](_0x3a8ce4);},Spriteset_Battle[_0x1cc45e(0xc0b)][_0x1cc45e(0xd00)]=function(_0x3a529e){const _0x5d014a=_0x1cc45e;if(!_0x3a529e)return![];if(!_0x3a529e[_0x5d014a(0x565)])return![];if(!_0x3a529e[_0x5d014a(0x6d6)][0x0])return![];if(_0x3a529e['targetObjects'][0x0]['isActor']&&!_0x3a529e[_0x5d014a(0x6d6)][0x0]['isActor']())return![];if($gameSystem[_0x5d014a(0xbb2)]())return![];if(!this[_0x5d014a(0xb98)]())return![];if(_0x3a529e[_0x5d014a(0x2e2)]===Sprite_Animation){const _0x414b85=VisuMZ[_0x5d014a(0x2c5)][_0x5d014a(0x5fb)][_0x5d014a(0x3c1)];_0x414b85[_0x5d014a(0x878)]=_0x414b85[_0x5d014a(0x878)]??!![];if(_0x3a529e[_0x5d014a(0x565)]['displayType']===0x0&&!_0x414b85[_0x5d014a(0x878)])return![];_0x414b85[_0x5d014a(0x2de)]=_0x414b85[_0x5d014a(0x2de)]??!![];if(_0x3a529e['_animation'][_0x5d014a(0xc07)]===0x1&&!_0x414b85[_0x5d014a(0x2de)])return![];_0x414b85['FvAniCenterScreen']=_0x414b85[_0x5d014a(0xaf3)]??![];if(_0x3a529e['_animation'][_0x5d014a(0xc07)]===0x2&&!_0x414b85[_0x5d014a(0xaf3)])return![];}else{if(_0x3a529e['constructor']===Sprite_AnimationMV){if(_0x3a529e[_0x5d014a(0x565)]['position']===0x3)return![];}}return!![];const _0x3113b6=Window_BattleStatus[_0x5d014a(0xc0b)][_0x5d014a(0x2f9)]();return['xp',_0x5d014a(0x76c)][_0x5d014a(0x8fc)](_0x3113b6);},Spriteset_Battle[_0x1cc45e(0xc0b)][_0x1cc45e(0xb98)]=function(){const _0x4d0eaa=_0x1cc45e;if(!SceneManager[_0x4d0eaa(0x659)])return null;if(!SceneManager[_0x4d0eaa(0x659)]['_statusWindow'])return null;if(!SceneManager[_0x4d0eaa(0x659)][_0x4d0eaa(0x5b3)]['_effectsContainer'])return null;return SceneManager['_scene']['_statusWindow'][_0x4d0eaa(0x5dd)];},Spriteset_Battle[_0x1cc45e(0xc0b)][_0x1cc45e(0xcc9)]=function(_0x4c89c4){const _0xcd5952=_0x1cc45e;this['removeAnimationFromContainer'](_0x4c89c4);for(const _0x397463 of _0x4c89c4[_0xcd5952(0x6d6)]){_0x397463[_0xcd5952(0x9a0)]&&_0x397463['endAnimation']();}_0x4c89c4[_0xcd5952(0x826)]();},Spriteset_Battle['prototype'][_0x1cc45e(0x204)]=function(_0x1fe0be){const _0x5ea83a=_0x1cc45e;this['isAnimationShownOnBattlePortrait'](_0x1fe0be)?this[_0x5ea83a(0xb98)]()[_0x5ea83a(0x630)](_0x1fe0be):this[_0x5ea83a(0x5bd)][_0x5ea83a(0x630)](_0x1fe0be);this[_0x5ea83a(0x9fd)]&&this[_0x5ea83a(0x9fd)][_0x5ea83a(0x630)](_0x1fe0be);this['_effectsContainer']['removeChild'](_0x1fe0be),this['_animationContainer'][_0x5ea83a(0x630)](_0x1fe0be),this[_0x5ea83a(0xadd)]['remove'](_0x1fe0be);if(this[_0x5ea83a(0xcd2)])this['_fauxAnimationSprites'][_0x5ea83a(0x280)](_0x1fe0be);},VisuMZ['BattleCore'][_0x1cc45e(0x8c1)]=Spriteset_Battle['prototype']['updateActors'],Spriteset_Battle[_0x1cc45e(0xc0b)]['updateActors']=function(){const _0x5590d=_0x1cc45e;VisuMZ[_0x5590d(0x2c5)][_0x5590d(0x8c1)]['call'](this),this[_0x5590d(0xb1e)]();},Spriteset_Battle['prototype']['updateBattlerContainer']=function(){const _0x43634d=_0x1cc45e;this[_0x43634d(0x422)]['children'][_0x43634d(0x663)](this[_0x43634d(0xc39)][_0x43634d(0x344)](this)),this[_0x43634d(0x266)]();if(!this[_0x43634d(0x422)])return;this[_0x43634d(0x422)]['opacity']=this[_0x43634d(0x53b)]();},Spriteset_Battle[_0x1cc45e(0xc0b)][_0x1cc45e(0xc39)]=function(_0x231391,_0x4236e5){const _0x2603ec=_0x1cc45e;if(VisuMZ[_0x2603ec(0x2c5)]['Settings'][_0x2603ec(0x3c1)][_0x2603ec(0xab0)]){if(_0x231391['_battler']&&_0x4236e5[_0x2603ec(0x848)]){if(_0x231391[_0x2603ec(0x848)]['isActor']()&&_0x4236e5[_0x2603ec(0x848)]['isEnemy']())return 0x1;else{if(_0x4236e5[_0x2603ec(0x848)][_0x2603ec(0x864)]()&&_0x231391[_0x2603ec(0x848)][_0x2603ec(0x348)]())return-0x1;}}}return _0x231391[_0x2603ec(0xb2d)]!==_0x4236e5['_baseY']?_0x231391['_baseY']-_0x4236e5[_0x2603ec(0xb2d)]:_0x4236e5[_0x2603ec(0x85c)]-_0x231391[_0x2603ec(0x85c)];},Spriteset_Battle[_0x1cc45e(0xc0b)][_0x1cc45e(0x266)]=function(){const _0x26a047=_0x1cc45e;if(!VisuMZ['BattleCore'][_0x26a047(0x5fb)]['Actor'][_0x26a047(0xaab)])return;const _0x41c843=BattleManager['_subject'];if(_0x41c843){if(_0x41c843[_0x26a047(0x864)]()&&!$gameSystem[_0x26a047(0xbb2)]())return;if(_0x41c843===BattleManager[_0x26a047(0x72d)]())return;const _0x10752e=_0x41c843[_0x26a047(0x3ba)]();if(_0x10752e&&_0x41c843[_0x26a047(0x864)]())this['_battlerContainer'][_0x26a047(0x84d)](_0x10752e);}},Spriteset_Battle[_0x1cc45e(0xc0b)][_0x1cc45e(0xb73)]=function(){const _0x335adc=_0x1cc45e;for(const _0x14948a of $gameParty[_0x335adc(0x1d0)]()){if(!_0x14948a)continue;if(!_0x14948a[_0x335adc(0x3ba)]())continue;_0x14948a['battler']()[_0x335adc(0x22f)]=!![],_0x14948a[_0x335adc(0x3ba)]()[_0x335adc(0x4fe)]();}},Spriteset_Battle['prototype'][_0x1cc45e(0xc86)]=function(){const _0x54cb3a=_0x1cc45e;this[_0x54cb3a(0xa4b)]=new Sprite(),Spriteset_Battle[_0x54cb3a(0x51f)]?this[_0x54cb3a(0x84d)](this[_0x54cb3a(0xa4b)]):this[_0x54cb3a(0x27f)][_0x54cb3a(0x84d)](this[_0x54cb3a(0xa4b)]),SceneManager[_0x54cb3a(0x659)][_0x54cb3a(0xa4b)]=this[_0x54cb3a(0xa4b)];},Spriteset_Battle[_0x1cc45e(0xc0b)][_0x1cc45e(0xc44)]=function(){const _0x1c37c1=_0x1cc45e;if(VisuMZ[_0x1c37c1(0x2c5)][_0x1c37c1(0x5fb)][_0x1c37c1(0x1a9)][_0x1c37c1(0x4f4)])return;this[_0x1c37c1(0x2d6)]=new Sprite(),BattleManager['addChildToUiContainer'](this[_0x1c37c1(0x2d6)]);for(const _0x527d98 of this[_0x1c37c1(0x5e5)]){const _0x4af28a=new Sprite_EnemyName();this[_0x1c37c1(0x2d6)][_0x1c37c1(0x84d)](_0x4af28a),_0x4af28a['linkSprite'](_0x527d98);}},Spriteset_Battle[_0x1cc45e(0xc0b)][_0x1cc45e(0xc30)]=function(){const _0x3b4eed=_0x1cc45e;if(!this[_0x3b4eed(0xc1e)])return;if(!this[_0x3b4eed(0xa4b)])return;const _0x5deae7=Spriteset_Battle[_0x3b4eed(0x51f)]?this[_0x3b4eed(0xc1e)]['x']:0x0,_0x360d8d=Spriteset_Battle[_0x3b4eed(0x51f)]?this['_damageContainer']['y']:0x0,_0x50c100=Imported[_0x3b4eed(0xa81)]?this[_0x3b4eed(0x27f)]['x']:0x0,_0x2390ff=Imported[_0x3b4eed(0xa81)]?this[_0x3b4eed(0x27f)]['y']:0x0;this[_0x3b4eed(0xa4b)]['x']=_0x5deae7+_0x50c100,this[_0x3b4eed(0xa4b)]['y']=_0x360d8d+_0x2390ff;},BattleManager[_0x1cc45e(0xa38)]=function(_0x2cd028){const _0x5a868b=_0x1cc45e;if(!SceneManager[_0x5a868b(0x659)][_0x5a868b(0xa4b)])return;SceneManager[_0x5a868b(0x659)][_0x5a868b(0xa4b)][_0x5a868b(0x84d)](_0x2cd028);},BattleManager['removeChildFromUiContainer']=function(_0x7d4d1){const _0x5af99b=_0x1cc45e;if(!SceneManager[_0x5af99b(0x659)][_0x5af99b(0xa4b)])return;SceneManager[_0x5af99b(0x659)][_0x5af99b(0xa4b)][_0x5af99b(0x630)](_0x7d4d1);},Spriteset_Battle[_0x1cc45e(0xc0b)][_0x1cc45e(0x53b)]=function(){return 0xff;},Spriteset_Battle[_0x1cc45e(0xc0b)][_0x1cc45e(0xc94)]=function(){return![];},Spriteset_Battle[_0x1cc45e(0xc0b)][_0x1cc45e(0x660)]=function(){const _0x97e5f0=_0x1cc45e;return this['battlerSprites']()[_0x97e5f0(0xc84)](_0x43a53c=>_0x43a53c['isFloating']());},Spriteset_Battle[_0x1cc45e(0xc0b)]['isAnyoneJumping']=function(){const _0x56aa5b=_0x1cc45e;return this[_0x56aa5b(0xae7)]()[_0x56aa5b(0xc84)](_0x1dff82=>_0x1dff82[_0x56aa5b(0xa0e)]());},Spriteset_Battle[_0x1cc45e(0xc0b)][_0x1cc45e(0x68c)]=function(){const _0x594b85=_0x1cc45e;return this[_0x594b85(0xae7)]()['some'](_0x6d62cd=>_0x6d62cd['isGrowing']());},Spriteset_Battle[_0x1cc45e(0xc0b)][_0x1cc45e(0x750)]=function(){const _0x11d539=_0x1cc45e;return this[_0x11d539(0xae7)]()['some'](_0x468be2=>_0x468be2[_0x11d539(0x74c)]());},Spriteset_Battle[_0x1cc45e(0xc0b)][_0x1cc45e(0xb6d)]=function(){const _0x37b2fa=_0x1cc45e;return this[_0x37b2fa(0xae7)]()[_0x37b2fa(0xc84)](_0x977686=>_0x977686[_0x37b2fa(0x1a8)]());},Spriteset_Battle[_0x1cc45e(0xc0b)][_0x1cc45e(0xc4b)]=function(){const _0x53ccf8=_0x1cc45e;return this[_0x53ccf8(0xae7)]()[_0x53ccf8(0xc84)](_0x528a51=>_0x528a51[_0x53ccf8(0x530)]());},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0xacb)]=Window_ItemList[_0x1cc45e(0xc0b)]['maxCols'],Window_ItemList[_0x1cc45e(0xc0b)][_0x1cc45e(0x5e9)]=function(){const _0x4b7ad3=_0x1cc45e;return SceneManager[_0x4b7ad3(0x499)]()?SceneManager['_scene']['battleLayoutStyle']()===_0x4b7ad3(0x3ff)?VisuMZ[_0x4b7ad3(0x2c5)][_0x4b7ad3(0x5fb)][_0x4b7ad3(0x5d4)]['SkillItemBorderCols']:VisuMZ[_0x4b7ad3(0x2c5)][_0x4b7ad3(0x5fb)][_0x4b7ad3(0x5d4)][_0x4b7ad3(0x9f6)]:VisuMZ['BattleCore'][_0x4b7ad3(0xacb)][_0x4b7ad3(0xa54)](this);},VisuMZ['BattleCore'][_0x1cc45e(0x637)]=Window_SkillList['prototype'][_0x1cc45e(0x5e9)],Window_SkillList[_0x1cc45e(0xc0b)][_0x1cc45e(0x5e9)]=function(){const _0x2d3da4=_0x1cc45e;return SceneManager[_0x2d3da4(0x499)]()?SceneManager[_0x2d3da4(0x659)][_0x2d3da4(0x2f9)]()===_0x2d3da4(0x3ff)?VisuMZ['BattleCore'][_0x2d3da4(0x5fb)][_0x2d3da4(0x5d4)][_0x2d3da4(0x33e)]:VisuMZ[_0x2d3da4(0x2c5)]['Settings'][_0x2d3da4(0x5d4)][_0x2d3da4(0x9f6)]:VisuMZ[_0x2d3da4(0x2c5)][_0x2d3da4(0x637)][_0x2d3da4(0xa54)](this);},VisuMZ['BattleCore'][_0x1cc45e(0x521)]=Window_Options['prototype'][_0x1cc45e(0xa4a)],Window_Options[_0x1cc45e(0xc0b)][_0x1cc45e(0xa4a)]=function(){const _0x5c4804=_0x1cc45e;VisuMZ['BattleCore'][_0x5c4804(0x521)][_0x5c4804(0xa54)](this),this[_0x5c4804(0x8d9)](),this[_0x5c4804(0x882)]();},Window_Options[_0x1cc45e(0xc0b)]['addAutoBattleCommands']=function(){const _0x116c9d=_0x1cc45e;VisuMZ[_0x116c9d(0x2c5)][_0x116c9d(0x5fb)][_0x116c9d(0xac7)][_0x116c9d(0x9c8)]&&(this[_0x116c9d(0xbd1)](),this[_0x116c9d(0xb7a)]());},Window_Options[_0x1cc45e(0xc0b)][_0x1cc45e(0x882)]=function(){const _0x339379=_0x1cc45e;if(!VisuMZ[_0x339379(0x2c5)][_0x339379(0x5fb)][_0x339379(0x984)]['AddHpGaugeOption'])return;const _0x42808c=TextManager[_0x339379(0x6b6)],_0x5ba9d8=_0x339379(0x6b6);this[_0x339379(0x273)](_0x42808c,_0x5ba9d8);},Window_Options[_0x1cc45e(0xc0b)][_0x1cc45e(0xbd1)]=function(){const _0x9d9ffe=_0x1cc45e,_0x4d5994=TextManager['autoBattleStart'],_0x554a0e=_0x9d9ffe(0x950);this[_0x9d9ffe(0x273)](_0x4d5994,_0x554a0e);},Window_Options[_0x1cc45e(0xc0b)][_0x1cc45e(0xb7a)]=function(){const _0xc03e5c=_0x1cc45e,_0x121139=TextManager[_0xc03e5c(0xb76)],_0x340230='autoBattleUseSkills';this[_0xc03e5c(0x273)](_0x121139,_0x340230);},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x912)]=Window_Options[_0x1cc45e(0xc0b)][_0x1cc45e(0xa07)],Window_Options['prototype']['statusText']=function(_0x2f83bc){const _0x370a85=_0x1cc45e,_0x1e4eec=this[_0x370a85(0x940)](_0x2f83bc);return _0x1e4eec===_0x370a85(0x4d1)?this[_0x370a85(0x73b)]():VisuMZ['BattleCore'][_0x370a85(0x912)][_0x370a85(0xa54)](this,_0x2f83bc);},Window_Options[_0x1cc45e(0xc0b)]['statusTextAutoBattleStyle']=function(){const _0x2207cb=_0x1cc45e,_0x45998c=VisuMZ['BattleCore'][_0x2207cb(0x5fb)][_0x2207cb(0xac7)],_0x373bc4=this['getConfigValue'](_0x2207cb(0x4d1));return _0x373bc4?_0x45998c[_0x2207cb(0x9e0)]:_0x45998c[_0x2207cb(0xc9d)];},Window_ShopStatus[_0x1cc45e(0xc0b)][_0x1cc45e(0x3fa)]=function(){const _0x15e98f=_0x1cc45e,_0x51257e=DataManager[_0x15e98f(0xc6e)](this[_0x15e98f(0x5be)]),_0x6e6c1b=VisuMZ[_0x15e98f(0x4c2)][_0x51257e];if(!_0x6e6c1b)return this[_0x15e98f(0x1ba)]();const _0x1fb876=_0x15e98f(0xba0)[_0x15e98f(0x65c)](this['_item'][_0x15e98f(0x42e)][_0x15e98f(0x729)]),_0x63b52b=[null,TextManager['hp'],TextManager['mp'],TextManager['hp'],TextManager['mp'],TextManager['hp'],TextManager['mp']][this[_0x15e98f(0x5be)][_0x15e98f(0x42e)][_0x15e98f(0x729)]];return _0x6e6c1b[_0x1fb876][_0x15e98f(0x65c)](_0x63b52b);},Window_ShopStatus['prototype']['getItemDamageAmountTextBattleCore']=function(){const _0x335238=_0x1cc45e,_0x579f01=DataManager['getDamageStyle'](this[_0x335238(0x5be)]),_0x22cbeb=VisuMZ[_0x335238(0x4c2)][_0x579f01];if(!_0x22cbeb)return this[_0x335238(0xbc2)]();return _0x22cbeb['DamageDisplay']['call'](this);},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x77f)]=Window_PartyCommand[_0x1cc45e(0xc0b)][_0x1cc45e(0x896)],Window_PartyCommand[_0x1cc45e(0xc0b)][_0x1cc45e(0x896)]=function(_0x3ea070){const _0x1105fa=_0x1cc45e;VisuMZ[_0x1105fa(0x2c5)][_0x1105fa(0x77f)][_0x1105fa(0xa54)](this,_0x3ea070),this[_0x1105fa(0x74b)](_0x3ea070);},Window_PartyCommand[_0x1cc45e(0xc0b)]['createCommandNameWindow']=function(_0x54ec73){const _0x66be8e=_0x1cc45e,_0x418641=new Rectangle(0x0,0x0,_0x54ec73[_0x66be8e(0x885)],_0x54ec73[_0x66be8e(0x20f)]);this[_0x66be8e(0x3ab)]=new Window_Base(_0x418641),this[_0x66be8e(0x3ab)][_0x66be8e(0x2f3)]=0x0,this[_0x66be8e(0x84d)](this[_0x66be8e(0x3ab)]),this[_0x66be8e(0x6e3)]();},Window_PartyCommand[_0x1cc45e(0xc0b)]['callUpdateHelp']=function(){const _0x3346b5=_0x1cc45e;Window_Command['prototype'][_0x3346b5(0xce5)][_0x3346b5(0xa54)](this);if(this[_0x3346b5(0x3ab)])this[_0x3346b5(0x6e3)]();},Window_PartyCommand[_0x1cc45e(0xc0b)][_0x1cc45e(0x6e3)]=function(){const _0x3345de=_0x1cc45e,_0x2698f5=this[_0x3345de(0x3ab)];_0x2698f5[_0x3345de(0x282)]['clear']();const _0x1ed26e=this[_0x3345de(0x4c6)](this['index']());if(_0x1ed26e==='icon'&&this['maxItems']()>0x0){const _0x2771c8=this[_0x3345de(0xa7b)](this[_0x3345de(0x7b5)]());let _0xe6c1a2=this[_0x3345de(0xc11)](this[_0x3345de(0x7b5)]());_0xe6c1a2=_0xe6c1a2[_0x3345de(0x403)](/\\I\[(\d+)\]/gi,''),_0x2698f5[_0x3345de(0x88f)](),this['commandNameWindowDrawBackground'](_0xe6c1a2,_0x2771c8),this['commandNameWindowDrawText'](_0xe6c1a2,_0x2771c8),this[_0x3345de(0x1c5)](_0xe6c1a2,_0x2771c8);}},Window_PartyCommand[_0x1cc45e(0xc0b)]['commandNameWindowDrawBackground']=function(_0x24ccf4,_0x5978d9){},Window_PartyCommand[_0x1cc45e(0xc0b)][_0x1cc45e(0xb93)]=function(_0xc67688,_0x493db9){const _0x13ee8b=_0x1cc45e,_0x17a749=this[_0x13ee8b(0x3ab)];_0x17a749[_0x13ee8b(0x775)](_0xc67688,0x0,_0x493db9['y'],_0x17a749[_0x13ee8b(0x323)],'center');},Window_PartyCommand[_0x1cc45e(0xc0b)][_0x1cc45e(0x1c5)]=function(_0x1f02b5,_0x29983c){const _0x421cac=_0x1cc45e,_0x423511=this['_commandNameWindow'],_0x4bb4df=$gameSystem[_0x421cac(0x3ac)](),_0x5d27f0=_0x29983c['x']+Math['floor'](_0x29983c[_0x421cac(0x885)]/0x2)+_0x4bb4df;_0x423511['x']=_0x423511[_0x421cac(0x885)]/-0x2+_0x5d27f0,_0x423511['y']=Math['floor'](_0x29983c[_0x421cac(0x20f)]/0x2);},Window_PartyCommand[_0x1cc45e(0xc0b)][_0x1cc45e(0xa20)]=function(){const _0x47cbb7=_0x1cc45e;this[_0x47cbb7(0xb54)](),this[_0x47cbb7(0x78e)](),this[_0x47cbb7(0x5c6)](),this['addStatusCommand'](),this[_0x47cbb7(0xa88)](),this[_0x47cbb7(0x615)]();},Window_PartyCommand[_0x1cc45e(0xc0b)][_0x1cc45e(0xb54)]=function(){const _0x4fbdf7=_0x1cc45e,_0x4dce5b=this['commandStyle'](),_0x143a8c=VisuMZ[_0x4fbdf7(0x2c5)][_0x4fbdf7(0x5fb)][_0x4fbdf7(0x88b)][_0x4fbdf7(0x9ec)],_0x32bd6a=_0x4dce5b==='text'?TextManager[_0x4fbdf7(0x44d)]:_0x4fbdf7(0xbc5)[_0x4fbdf7(0x65c)](_0x143a8c,TextManager[_0x4fbdf7(0x44d)]),_0x40bfff=this[_0x4fbdf7(0xcd0)]();this[_0x4fbdf7(0x273)](_0x32bd6a,'fight',_0x40bfff);},Window_PartyCommand[_0x1cc45e(0xc0b)][_0x1cc45e(0xcd0)]=function(){return!![];},Window_PartyCommand[_0x1cc45e(0xc0b)][_0x1cc45e(0x78e)]=function(){const _0x268919=_0x1cc45e;if(!this['isAutoBattleCommandAdded']())return;const _0x12d5f4=this['commandStyle'](),_0x64fcc6=VisuMZ[_0x268919(0x2c5)]['Settings'][_0x268919(0x88b)]['CmdIconAutoBattle'],_0x294c00=_0x12d5f4===_0x268919(0x558)?TextManager['autoBattle']:'\x5cI[%1]%2'[_0x268919(0x65c)](_0x64fcc6,TextManager[_0x268919(0x915)]),_0x5057a2=this['isAutoBattleCommandEnabled']();this[_0x268919(0x273)](_0x294c00,'autoBattle',_0x5057a2);},Window_PartyCommand[_0x1cc45e(0xc0b)][_0x1cc45e(0xa98)]=function(){const _0x43ae75=_0x1cc45e;return VisuMZ['BattleCore'][_0x43ae75(0x5fb)][_0x43ae75(0x88b)][_0x43ae75(0x7d1)];},Window_PartyCommand[_0x1cc45e(0xc0b)][_0x1cc45e(0x434)]=function(){return!![];},Window_PartyCommand['prototype']['addCustomCommands']=function(){},Window_PartyCommand[_0x1cc45e(0xc0b)][_0x1cc45e(0x242)]=function(){const _0x1de81c=_0x1cc45e,_0x3fd172=VisuMZ[_0x1de81c(0x2c5)][_0x1de81c(0x5fb)][_0x1de81c(0x88b)][_0x1de81c(0xa08)]??!![];if(!_0x3fd172)return;const _0x5a9c85=this['commandStyle'](),_0x339442=VisuMZ['BattleCore']['Settings'][_0x1de81c(0xb82)][_0x1de81c(0xada)]??0x57,_0x59d2b1=_0x5a9c85===_0x1de81c(0x558)?TextManager['status']:_0x1de81c(0xbc5)[_0x1de81c(0x65c)](_0x339442,TextManager['status']),_0x2116d6=!![];this[_0x1de81c(0x273)](_0x59d2b1,_0x1de81c(0x251),_0x2116d6);},Window_PartyCommand[_0x1cc45e(0xc0b)][_0x1cc45e(0xa88)]=function(){const _0x2797a9=_0x1cc45e;if(!this[_0x2797a9(0x255)]())return;const _0x281001=this[_0x2797a9(0x1c4)](),_0x4dfc2e=VisuMZ[_0x2797a9(0x2c5)][_0x2797a9(0x5fb)][_0x2797a9(0x88b)][_0x2797a9(0x3e3)],_0x555a81=_0x281001===_0x2797a9(0x558)?TextManager[_0x2797a9(0x83b)]:_0x2797a9(0xbc5)[_0x2797a9(0x65c)](_0x4dfc2e,TextManager[_0x2797a9(0x83b)]),_0x2b6515=this[_0x2797a9(0x99b)]();this[_0x2797a9(0x273)](_0x555a81,_0x2797a9(0x83b),_0x2b6515);},Window_PartyCommand[_0x1cc45e(0xc0b)][_0x1cc45e(0x255)]=function(){const _0x1d7ee3=_0x1cc45e;return VisuMZ['BattleCore'][_0x1d7ee3(0x5fb)][_0x1d7ee3(0x88b)][_0x1d7ee3(0x4c7)];},Window_PartyCommand[_0x1cc45e(0xc0b)][_0x1cc45e(0x99b)]=function(){return!![];},Window_PartyCommand[_0x1cc45e(0xc0b)][_0x1cc45e(0x615)]=function(){const _0x1f9402=_0x1cc45e,_0x53599e=this[_0x1f9402(0x1c4)](),_0x431aed=VisuMZ['BattleCore'][_0x1f9402(0x5fb)]['PartyCmd'][_0x1f9402(0x5d0)],_0x1034af=_0x53599e===_0x1f9402(0x558)?TextManager[_0x1f9402(0x208)]:'\x5cI[%1]%2'[_0x1f9402(0x65c)](_0x431aed,TextManager[_0x1f9402(0x208)]),_0x346565=this[_0x1f9402(0x1f1)]();this[_0x1f9402(0x273)](_0x1034af,'escape',_0x346565);},Window_PartyCommand[_0x1cc45e(0xc0b)][_0x1cc45e(0x1f1)]=function(){const _0x29d222=_0x1cc45e;return BattleManager[_0x29d222(0x396)]();},Window_PartyCommand[_0x1cc45e(0xc0b)][_0x1cc45e(0xc05)]=function(){const _0xaa71b0=_0x1cc45e;return VisuMZ['BattleCore'][_0xaa71b0(0x5fb)]['PartyCmd'][_0xaa71b0(0x88e)];},Window_PartyCommand['prototype'][_0x1cc45e(0x918)]=function(_0x30772e){const _0xc4ef1a=_0x1cc45e,_0x27ff85=this[_0xc4ef1a(0x4c6)](_0x30772e);if(_0x27ff85===_0xc4ef1a(0xc97))this[_0xc4ef1a(0xb72)](_0x30772e);else _0x27ff85==='icon'?this['drawItemStyleIcon'](_0x30772e):Window_Command[_0xc4ef1a(0xc0b)][_0xc4ef1a(0x918)][_0xc4ef1a(0xa54)](this,_0x30772e);},Window_PartyCommand[_0x1cc45e(0xc0b)][_0x1cc45e(0x1c4)]=function(){const _0x3cd47f=_0x1cc45e;return VisuMZ[_0x3cd47f(0x2c5)][_0x3cd47f(0x5fb)]['PartyCmd'][_0x3cd47f(0x678)];},Window_PartyCommand[_0x1cc45e(0xc0b)][_0x1cc45e(0x4c6)]=function(_0x172a0a){const _0x36779e=_0x1cc45e;if(_0x172a0a<0x0)return _0x36779e(0x558);const _0x526961=this[_0x36779e(0x1c4)]();if(_0x526961!=='auto')return _0x526961;else{if(this[_0x36779e(0xc7e)]()>0x0){const _0x4f294a=this[_0x36779e(0xc11)](_0x172a0a);if(_0x4f294a['match'](/\\I\[(\d+)\]/i)){const _0x290e74=this[_0x36779e(0xa7b)](_0x172a0a),_0x236d5e=this[_0x36779e(0xadf)](_0x4f294a)[_0x36779e(0x885)];return _0x236d5e<=_0x290e74[_0x36779e(0x885)]?_0x36779e(0xc97):_0x36779e(0x3a8);}}}return _0x36779e(0x558);},Window_PartyCommand[_0x1cc45e(0xc0b)]['drawItemStyleIconText']=function(_0x21b84f){const _0x369594=_0x1cc45e,_0x54d4bc=this[_0x369594(0xa7b)](_0x21b84f),_0x5e3cd6=this[_0x369594(0xc11)](_0x21b84f),_0x1e80bb=this[_0x369594(0xadf)](_0x5e3cd6)['width'];this['changePaintOpacity'](this[_0x369594(0x2bc)](_0x21b84f));const _0x3d4476=this[_0x369594(0xc05)]();if(_0x3d4476===_0x369594(0x7a3))this['drawTextEx'](_0x5e3cd6,_0x54d4bc['x']+_0x54d4bc[_0x369594(0x885)]-_0x1e80bb,_0x54d4bc['y'],_0x1e80bb);else{if(_0x3d4476===_0x369594(0x669)){const _0x43a33a=_0x54d4bc['x']+Math[_0x369594(0x884)]((_0x54d4bc[_0x369594(0x885)]-_0x1e80bb)/0x2);this[_0x369594(0x5ba)](_0x5e3cd6,_0x43a33a,_0x54d4bc['y'],_0x1e80bb);}else this[_0x369594(0x5ba)](_0x5e3cd6,_0x54d4bc['x'],_0x54d4bc['y'],_0x1e80bb);}},Window_PartyCommand[_0x1cc45e(0xc0b)][_0x1cc45e(0x7da)]=function(_0x1bb179){const _0x545293=_0x1cc45e;this['commandName'](_0x1bb179)[_0x545293(0xc6a)](/\\I\[(\d+)\]/i);const _0x2e1e02=Number(RegExp['$1'])||0x0,_0x54d12c=this[_0x545293(0xa7b)](_0x1bb179),_0x57b8a5=_0x54d12c['x']+Math[_0x545293(0x884)]((_0x54d12c[_0x545293(0x885)]-ImageManager[_0x545293(0x85e)])/0x2),_0x3ca3b5=_0x54d12c['y']+(_0x54d12c['height']-ImageManager[_0x545293(0xb6c)])/0x2;this[_0x545293(0x314)](_0x2e1e02,_0x57b8a5,_0x3ca3b5);},Window_PartyCommand[_0x1cc45e(0xc0b)]['hide']=function(){},Window_PartyCommand[_0x1cc45e(0xc0b)][_0x1cc45e(0x3d9)]=function(){const _0xdb306d=_0x1cc45e;Window_Command[_0xdb306d(0xc0b)]['activate'][_0xdb306d(0xa54)](this);const _0x51f9ff=this['battleLayoutStyle']();_0x51f9ff==='border'&&this['showHelpWindow']();},Window_PartyCommand[_0x1cc45e(0xc0b)][_0x1cc45e(0x2f9)]=function(){const _0x71bb4f=_0x1cc45e;if(this[_0x71bb4f(0xb11)])return this['_battleLayoutStyle'];return this[_0x71bb4f(0xb11)]=SceneManager[_0x71bb4f(0x659)][_0x71bb4f(0x2f9)](),this[_0x71bb4f(0xb11)];},Window_PartyCommand['prototype']['updateHelp']=function(){const _0x4e1db6=_0x1cc45e,_0x59db4f=VisuMZ[_0x4e1db6(0x2c5)]['Settings'][_0x4e1db6(0x88b)],_0x51a54a=this[_0x4e1db6(0x6bb)]();switch(_0x51a54a){case'fight':this[_0x4e1db6(0x317)][_0x4e1db6(0x51b)](_0x59db4f[_0x4e1db6(0x69d)]);break;case'autoBattle':this[_0x4e1db6(0x317)][_0x4e1db6(0x51b)](_0x59db4f[_0x4e1db6(0x59f)]);break;case _0x4e1db6(0x83b):this[_0x4e1db6(0x317)][_0x4e1db6(0x51b)](_0x59db4f[_0x4e1db6(0xa25)]);break;case _0x4e1db6(0x208):this[_0x4e1db6(0x317)]['setText'](_0x59db4f['HelpEscape']);break;case _0x4e1db6(0x251):this[_0x4e1db6(0x317)]['setText'](Window_InBattleStatus[_0x4e1db6(0x833)]['statusHelpDesc']);break;default:this[_0x4e1db6(0x317)][_0x4e1db6(0x51b)]('');break;}},VisuMZ['BattleCore'][_0x1cc45e(0x6a4)]=Window_ActorCommand[_0x1cc45e(0xc0b)][_0x1cc45e(0x896)],Window_ActorCommand['prototype'][_0x1cc45e(0x896)]=function(_0x17fb06){const _0x35489c=_0x1cc45e;VisuMZ[_0x35489c(0x2c5)][_0x35489c(0x6a4)][_0x35489c(0xa54)](this,_0x17fb06),this['createCommandNameWindow'](_0x17fb06);},Window_ActorCommand['prototype'][_0x1cc45e(0x74b)]=function(_0x2b4fc2){const _0x451cd0=_0x1cc45e,_0x53beb0=new Rectangle(0x0,0x0,_0x2b4fc2[_0x451cd0(0x885)],_0x2b4fc2[_0x451cd0(0x20f)]);this['_commandNameWindow']=new Window_Base(_0x53beb0),this['_commandNameWindow'][_0x451cd0(0x2f3)]=0x0,this[_0x451cd0(0x84d)](this[_0x451cd0(0x3ab)]),this[_0x451cd0(0x6e3)]();},Window_ActorCommand['prototype'][_0x1cc45e(0xce5)]=function(){const _0x221d4b=_0x1cc45e;Window_Command[_0x221d4b(0xc0b)][_0x221d4b(0xce5)][_0x221d4b(0xa54)](this);if(this[_0x221d4b(0x3ab)])this[_0x221d4b(0x6e3)]();},Window_ActorCommand['prototype']['updateCommandNameWindow']=function(){const _0xd733e3=_0x1cc45e,_0x51b7c9=this['_commandNameWindow'];_0x51b7c9['contents'][_0xd733e3(0x52a)]();const _0x22fffd=this[_0xd733e3(0x4c6)](this[_0xd733e3(0x7b5)]());if(_0x22fffd==='icon'&&this['maxItems']()>0x0){const _0x50a41f=this[_0xd733e3(0xa7b)](this[_0xd733e3(0x7b5)]());let _0x54c52f=this['commandName'](this[_0xd733e3(0x7b5)]());_0x54c52f=_0x54c52f[_0xd733e3(0x403)](/\\I\[(\d+)\]/gi,''),_0x51b7c9[_0xd733e3(0x88f)](),this['commandNameWindowDrawBackground'](_0x54c52f,_0x50a41f),this[_0xd733e3(0xb93)](_0x54c52f,_0x50a41f),this[_0xd733e3(0x1c5)](_0x54c52f,_0x50a41f);}},Window_ActorCommand[_0x1cc45e(0xc0b)][_0x1cc45e(0x5e3)]=function(_0x4ad943,_0x56926f){},Window_ActorCommand[_0x1cc45e(0xc0b)][_0x1cc45e(0xb93)]=function(_0x530f55,_0x4cb438){const _0x3dd12e=_0x1cc45e,_0x286043=this['_commandNameWindow'];_0x286043[_0x3dd12e(0x775)](_0x530f55,0x0,_0x4cb438['y'],_0x286043['innerWidth'],_0x3dd12e(0x669));},Window_ActorCommand[_0x1cc45e(0xc0b)][_0x1cc45e(0x1c5)]=function(_0x4c8bc2,_0x5a91de){const _0x3c4234=_0x1cc45e,_0xaeab54=this[_0x3c4234(0x3ab)],_0x57fc88=$gameSystem['windowPadding'](),_0x2fbedf=_0x5a91de['x']+Math['floor'](_0x5a91de[_0x3c4234(0x885)]/0x2)+_0x57fc88;_0xaeab54['x']=_0xaeab54[_0x3c4234(0x885)]/-0x2+_0x2fbedf,_0xaeab54['y']=Math[_0x3c4234(0x884)](_0x5a91de[_0x3c4234(0x20f)]/0x2);},Window_ActorCommand[_0x1cc45e(0xc0b)][_0x1cc45e(0xa20)]=function(){const _0x1589ea=_0x1cc45e;if(!this[_0x1589ea(0x400)])return;const _0x5652b8=this[_0x1589ea(0x400)]['battleCommands']();for(const _0x3b387a of _0x5652b8){this[_0x1589ea(0x8ca)](_0x3b387a[_0x1589ea(0x2b6)]()['trim']());}},Window_ActorCommand[_0x1cc45e(0xc0b)][_0x1cc45e(0x8ca)]=function(_0x3a3c3d){const _0x3e1019=_0x1cc45e;_0x3a3c3d===_0x3e1019(0x1cf)&&this['addAttackCommand']();[_0x3e1019(0x7d3),_0x3e1019(0x684)]['includes'](_0x3a3c3d)&&this[_0x3e1019(0x538)]();_0x3a3c3d==='GUARD'&&this[_0x3e1019(0xccd)]();_0x3a3c3d===_0x3e1019(0x338)&&this['addItemCommand']();_0x3a3c3d==='STATUS'&&this[_0x3e1019(0x242)]();_0x3a3c3d===_0x3e1019(0x31c)&&this[_0x3e1019(0x615)]();_0x3a3c3d===_0x3e1019(0x497)&&this[_0x3e1019(0x78e)]();if(_0x3a3c3d[_0x3e1019(0xc6a)](/STYPE: (\d+)/i)){const _0x25a0e8=Number(RegExp['$1']);this[_0x3e1019(0x367)](_0x25a0e8);}else{if(_0x3a3c3d['match'](/STYPE: (.*)/i)){const _0x1bc662=DataManager[_0x3e1019(0x489)](RegExp['$1']);this[_0x3e1019(0x367)](_0x1bc662);}}_0x3a3c3d==='ALL\x20SKILLS'&&this[_0x3e1019(0x3be)]();if(_0x3a3c3d[_0x3e1019(0xc6a)](/SKILL: (\d+)/i)){const _0x1e18a5=Number(RegExp['$1']);this[_0x3e1019(0x2f2)]($dataSkills[_0x1e18a5]);}else{if(_0x3a3c3d[_0x3e1019(0xc6a)](/SKILL: (.*)/i)){const _0x37e771=DataManager[_0x3e1019(0x891)](RegExp['$1']);this[_0x3e1019(0x2f2)]($dataSkills[_0x37e771]);}}_0x3a3c3d===_0x3e1019(0x893)&&Imported[_0x3e1019(0xbe0)]&&this['addPartyCommand'](),_0x3a3c3d===_0x3e1019(0xae9)&&Imported['VisuMZ_3_BattleCmdTalk']&&this[_0x3e1019(0x744)](),[_0x3e1019(0x4ac),_0x3e1019(0x2f4)][_0x3e1019(0x9c4)](_0x3a3c3d)&&Imported['VisuMZ_4_CombatLog']&&this['addCombatLogCommand'](),_0x3a3c3d===_0x3e1019(0xb5d)&&Imported[_0x3e1019(0x9a1)]&&this[_0x3e1019(0xc49)](!![]),_0x3a3c3d===_0x3e1019(0xb8f)&&Imported[_0x3e1019(0xaaf)]&&this[_0x3e1019(0x411)](),_0x3a3c3d===_0x3e1019(0x764)&&Imported[_0x3e1019(0xcea)]&&this[_0x3e1019(0x402)](),_0x3a3c3d===_0x3e1019(0x406)&&Imported[_0x3e1019(0xcea)]&&this[_0x3e1019(0x78f)]();},Window_ActorCommand[_0x1cc45e(0xc0b)][_0x1cc45e(0xa32)]=function(){const _0x2a0564=_0x1cc45e,_0x3e9f70=$dataSkills[this['_actor'][_0x2a0564(0x24a)]()];if(!_0x3e9f70)return;if(!this[_0x2a0564(0x2eb)](_0x3e9f70))return;const _0x1a1a7f=this[_0x2a0564(0x1c4)](),_0x24c279=DataManager[_0x2a0564(0xb2c)](_0x3e9f70),_0x53da83=DataManager[_0x2a0564(0x9ca)](_0x3e9f70),_0x31c49a=_0x1a1a7f==='text'?_0x24c279:'\x5cI[%1]%2'[_0x2a0564(0x65c)](_0x53da83,_0x24c279);this[_0x2a0564(0x273)](_0x31c49a,_0x2a0564(0xab8),this['_actor'][_0x2a0564(0x685)]());},Window_ActorCommand[_0x1cc45e(0xc0b)]['addGuardCommand']=function(){const _0x324a00=_0x1cc45e,_0x58ff26=$dataSkills[this[_0x324a00(0x400)][_0x324a00(0xd05)]()];if(!_0x58ff26)return;if(!this[_0x324a00(0x2eb)](_0x58ff26))return;const _0x1a9370=this[_0x324a00(0x1c4)](),_0x16b09e=DataManager[_0x324a00(0xb2c)](_0x58ff26),_0x187d1=DataManager[_0x324a00(0x9ca)](_0x58ff26),_0x2a5670=_0x1a9370==='text'?_0x16b09e:_0x324a00(0xbc5)[_0x324a00(0x65c)](_0x187d1,_0x16b09e);this[_0x324a00(0x273)](_0x2a5670,_0x324a00(0x3ef),this['_actor'][_0x324a00(0xc7c)]());},Window_ActorCommand[_0x1cc45e(0xc0b)]['addItemCommand']=function(){const _0x283ddc=_0x1cc45e,_0x286362=this[_0x283ddc(0x1c4)](),_0x8b13c4=VisuMZ[_0x283ddc(0x2c5)][_0x283ddc(0x5fb)][_0x283ddc(0x7c3)][_0x283ddc(0x1eb)],_0x53aefa=_0x286362===_0x283ddc(0x558)?TextManager[_0x283ddc(0x904)]:_0x283ddc(0xbc5)[_0x283ddc(0x65c)](_0x8b13c4,TextManager[_0x283ddc(0x904)]),_0x1e65f2=this[_0x283ddc(0x505)]();this[_0x283ddc(0x273)](_0x53aefa,_0x283ddc(0x904),_0x1e65f2);},Window_ActorCommand[_0x1cc45e(0xc0b)][_0x1cc45e(0x505)]=function(){const _0x287cdd=_0x1cc45e;return this[_0x287cdd(0x400)]&&this[_0x287cdd(0x400)][_0x287cdd(0xad2)]();},Window_ActorCommand[_0x1cc45e(0xc0b)]['addSkillCommands']=function(){const _0x396cd4=_0x1cc45e,_0x205446=this[_0x396cd4(0x400)][_0x396cd4(0x914)]();for(const _0xb0116d of _0x205446){this[_0x396cd4(0x367)](_0xb0116d);}},Window_ActorCommand[_0x1cc45e(0xc0b)]['addSkillTypeCommand']=function(_0x5f5212){const _0x272896=_0x1cc45e;let _0x36e98f=$dataSystem[_0x272896(0x914)][_0x5f5212];if(!_0x36e98f)return;let _0x2da923=_0x36e98f;const _0x305ae5=this[_0x272896(0x1c4)]();if(_0x305ae5===_0x272896(0x558))_0x2da923=_0x2da923[_0x272896(0x403)](/\x1I\[(\d+)\]/gi,''),_0x2da923=_0x2da923['replace'](/\\I\[(\d+)\]/gi,'');else{if(!_0x36e98f[_0x272896(0xc6a)](/\\I\[(\d+)\]/i)){const _0x52a02d=Imported[_0x272896(0x47f)]?VisuMZ[_0x272896(0x5d5)][_0x272896(0x5fb)][_0x272896(0x491)]:VisuMZ[_0x272896(0x2c5)]['Settings']['ActorCmd'],_0x574675=$dataSystem[_0x272896(0x4c1)][_0x272896(0x9c4)](_0x5f5212),_0x3ad2f5=_0x574675?_0x52a02d[_0x272896(0x72a)]:_0x52a02d[_0x272896(0x487)];_0x2da923=_0x272896(0xbc5)['format'](_0x3ad2f5,_0x36e98f);}}this['addCommand'](_0x2da923,_0x272896(0x95e),!![],_0x5f5212);},Window_ActorCommand[_0x1cc45e(0xc0b)][_0x1cc45e(0x3be)]=function(){const _0x480aa6=_0x1cc45e,_0x2ffd3d=this[_0x480aa6(0x400)]['skillTypes'](),_0x55f6a4=this[_0x480aa6(0x400)][_0x480aa6(0x968)]();for(const _0x1ea68d of _0x55f6a4){if(!_0x1ea68d)continue;if(Imported['VisuMZ_1_SkillsStatesCore']){if(this[_0x480aa6(0x6f0)](_0x1ea68d))continue;if(this[_0x480aa6(0x99d)](_0x1ea68d))continue;}else{if(!_0x2ffd3d[_0x480aa6(0x9c4)](_0x1ea68d[_0x480aa6(0x985)]))continue;}this['addSingleSkillCommand'](_0x1ea68d);}},Window_ActorCommand[_0x1cc45e(0xc0b)]['noSimilarSTypes']=function(_0x4ed7df){const _0x32edf2=_0x1cc45e,_0x108b69=this['_actor'][_0x32edf2(0x914)](),_0x2ae798=_0x108b69['filter'](_0xa0129f=>DataManager[_0x32edf2(0xa76)](_0x4ed7df)[_0x32edf2(0x9c4)](_0xa0129f));return _0x2ae798[_0x32edf2(0x96d)]<=0x0;},Window_ActorCommand[_0x1cc45e(0xc0b)]['isHiddenSkill']=function(_0x1cea51){const _0x5acd49=_0x1cc45e;if(Imported[_0x5acd49(0x47f)]){if(VisuMZ['SkillsStatesCore']['version']>=1.24){if(this[_0x5acd49(0x400)]){if(!VisuMZ['SkillsStatesCore']['CheckVisibleBattleNotetags'](this[_0x5acd49(0x400)],_0x1cea51))return!![];if(!VisuMZ[_0x5acd49(0x5d5)][_0x5acd49(0xb26)](this[_0x5acd49(0x400)],_0x1cea51))return!![];if(!VisuMZ[_0x5acd49(0x5d5)][_0x5acd49(0xb70)](this[_0x5acd49(0x400)],_0x1cea51))return!![];}}else{if(!Window_SkillList['prototype'][_0x5acd49(0x1c6)][_0x5acd49(0xa54)](this,_0x1cea51))return!![];if(!Window_SkillList[_0x5acd49(0xc0b)][_0x5acd49(0x889)]['call'](this,_0x1cea51))return!![];if(!Window_SkillList[_0x5acd49(0xc0b)][_0x5acd49(0xc77)]['call'](this,_0x1cea51))return!![];}}return![];},Window_ActorCommand[_0x1cc45e(0xc0b)][_0x1cc45e(0x2f2)]=function(_0xcaf289){const _0x1b3a33=_0x1cc45e;if(!_0xcaf289)return;if(!this[_0x1b3a33(0x2eb)](_0xcaf289))return;const _0x349c2d=this[_0x1b3a33(0x1c4)](),_0xe65191=DataManager[_0x1b3a33(0xb2c)](_0xcaf289),_0x5ab9b0=DataManager[_0x1b3a33(0x9ca)](_0xcaf289),_0x6a5d3f=_0x349c2d===_0x1b3a33(0x558)?_0xe65191:'\x5cI[%1]%2'['format'](_0x5ab9b0,_0xe65191),_0x4a6991=this[_0x1b3a33(0x400)][_0x1b3a33(0x681)](_0xcaf289);this[_0x1b3a33(0x273)](_0x6a5d3f,_0x1b3a33(0x2f0),_0x4a6991,_0xcaf289['id']);},Window_ActorCommand['prototype'][_0x1cc45e(0x2eb)]=function(_0x22a694){const _0x3ad955=_0x1cc45e,_0x24d98c=_0x22a694[_0x3ad955(0xbe6)];if(_0x24d98c[_0x3ad955(0xc6a)](/<COMMAND REQUIRE LEARN>/i)){if(!this['_actor'][_0x3ad955(0x218)](_0x22a694['id']))return![];}if(_0x24d98c[_0x3ad955(0xc6a)](/<COMMAND REQUIRE ACCESS>/i)){if(!this[_0x3ad955(0x400)]['hasSkill'](_0x22a694['id']))return![];}const _0x53b815=VisuMZ[_0x3ad955(0x2c5)][_0x3ad955(0x498)](_0x22a694,_0x3ad955(0x1dd));if(VisuMZ[_0x3ad955(0x2c5)]['JS'][_0x53b815]){if(!VisuMZ['BattleCore']['JS'][_0x53b815][_0x3ad955(0xa54)](this,this[_0x3ad955(0x400)],_0x22a694))return![];}return VisuMZ[_0x3ad955(0x2c5)][_0x3ad955(0x1ae)](_0x22a694);},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x1ae)]=function(_0x41aab0){const _0x429f52=_0x1cc45e,_0x51538e=_0x41aab0[_0x429f52(0xbe6)];if(_0x51538e['match'](/<COMMAND SHOW[ ](?:SW|SWITCH|SWITCHES):[ ]*(\d+(?:\s*,\s*\d+)*)>/i)){const _0x2123b1=JSON[_0x429f52(0x8b3)]('['+RegExp['$1'][_0x429f52(0xc6a)](/\d+/g)+']');for(const _0x2c1691 of _0x2123b1){if(!$gameSwitches[_0x429f52(0x4c8)](_0x2c1691))return![];}return!![];}if(_0x51538e[_0x429f52(0xc6a)](/<COMMAND SHOW ALL[ ](?:SW|SWITCH|SWITCHES):[ ]*(\d+(?:\s*,\s*\d+)*)>/i)){const _0xd86482=JSON[_0x429f52(0x8b3)]('['+RegExp['$1']['match'](/\d+/g)+']');for(const _0x1f5b27 of _0xd86482){if(!$gameSwitches[_0x429f52(0x4c8)](_0x1f5b27))return![];}return!![];}if(_0x51538e[_0x429f52(0xc6a)](/<COMMAND SHOW ANY[ ](?:SW|SWITCH|SWITCHES):[ ]*(\d+(?:\s*,\s*\d+)*)>/i)){const _0x23ff64=JSON[_0x429f52(0x8b3)]('['+RegExp['$1'][_0x429f52(0xc6a)](/\d+/g)+']');for(const _0x294d35 of _0x23ff64){if($gameSwitches[_0x429f52(0x4c8)](_0x294d35))return!![];}return![];}if(_0x51538e['match'](/<COMMAND HIDE[ ](?:SW|SWITCH|SWITCHES):[ ]*(\d+(?:\s*,\s*\d+)*)>/i)){const _0x40fe6a=JSON[_0x429f52(0x8b3)]('['+RegExp['$1'][_0x429f52(0xc6a)](/\d+/g)+']');for(const _0x1ba1de of _0x40fe6a){if(!$gameSwitches['value'](_0x1ba1de))return!![];}return![];}if(_0x51538e[_0x429f52(0xc6a)](/<COMMAND HIDE ALL[ ](?:SW|SWITCH|SWITCHES):[ ]*(\d+(?:\s*,\s*\d+)*)>/i)){const _0x9dc8d8=JSON[_0x429f52(0x8b3)]('['+RegExp['$1'][_0x429f52(0xc6a)](/\d+/g)+']');for(const _0x4f9927 of _0x9dc8d8){if(!$gameSwitches['value'](_0x4f9927))return!![];}return![];}if(_0x51538e[_0x429f52(0xc6a)](/<COMMAND HIDE ANY[ ](?:SW|SWITCH|SWITCHES):[ ]*(\d+(?:\s*,\s*\d+)*)>/i)){const _0x13eb4e=JSON[_0x429f52(0x8b3)]('['+RegExp['$1'][_0x429f52(0xc6a)](/\d+/g)+']');for(const _0x3be628 of _0x13eb4e){if($gameSwitches[_0x429f52(0x4c8)](_0x3be628))return![];}return!![];}return!![];},Window_ActorCommand['prototype'][_0x1cc45e(0x242)]=function(){const _0x2ff2ab=_0x1cc45e,_0xaf79d4=this['commandStyle'](),_0x794bed=VisuMZ[_0x2ff2ab(0x2c5)][_0x2ff2ab(0x5fb)][_0x2ff2ab(0xb82)][_0x2ff2ab(0xada)]??0x57,_0x55e051=_0xaf79d4===_0x2ff2ab(0x558)?TextManager[_0x2ff2ab(0x251)]:'\x5cI[%1]%2'['format'](_0x794bed,TextManager['status']),_0x2891d2=!![];this[_0x2ff2ab(0x273)](_0x55e051,_0x2ff2ab(0x251),_0x2891d2);},Window_ActorCommand[_0x1cc45e(0xc0b)][_0x1cc45e(0x615)]=function(){const _0x228d46=_0x1cc45e,_0x58d228=this[_0x228d46(0x1c4)](),_0xaaf998=VisuMZ[_0x228d46(0x2c5)][_0x228d46(0x5fb)][_0x228d46(0x88b)][_0x228d46(0x5d0)],_0x3938ba=_0x58d228==='text'?TextManager['escape']:_0x228d46(0xbc5)[_0x228d46(0x65c)](_0xaaf998,TextManager[_0x228d46(0x208)]),_0x42ff66=this[_0x228d46(0x1f1)]();this['addCommand'](_0x3938ba,_0x228d46(0x208),_0x42ff66);},Window_ActorCommand['prototype'][_0x1cc45e(0x1f1)]=function(){const _0x134539=_0x1cc45e;return BattleManager[_0x134539(0x396)]();},Window_ActorCommand['prototype'][_0x1cc45e(0x78e)]=function(){const _0x499636=_0x1cc45e,_0x36acb6=this[_0x499636(0x1c4)](),_0x2f9f70=VisuMZ[_0x499636(0x2c5)][_0x499636(0x5fb)][_0x499636(0x88b)][_0x499636(0x26f)],_0x2927cc=_0x36acb6==='text'?TextManager[_0x499636(0x915)]:_0x499636(0xbc5)[_0x499636(0x65c)](_0x2f9f70,TextManager[_0x499636(0x915)]),_0x5ad208=this[_0x499636(0x434)]();this[_0x499636(0x273)](_0x2927cc,_0x499636(0x915),_0x5ad208);},Window_ActorCommand[_0x1cc45e(0xc0b)][_0x1cc45e(0x434)]=function(){return!![];},Window_ActorCommand['prototype'][_0x1cc45e(0xc05)]=function(){const _0x3fea53=_0x1cc45e;return VisuMZ['BattleCore']['Settings'][_0x3fea53(0x7c3)][_0x3fea53(0x88e)];},Window_ActorCommand[_0x1cc45e(0xc0b)][_0x1cc45e(0x918)]=function(_0x3c6cbc){const _0x52b4b5=_0x1cc45e,_0x31fb3e=this[_0x52b4b5(0x4c6)](_0x3c6cbc);if(_0x31fb3e===_0x52b4b5(0xc97))this[_0x52b4b5(0xb72)](_0x3c6cbc);else _0x31fb3e==='icon'?this['drawItemStyleIcon'](_0x3c6cbc):Window_Command['prototype'][_0x52b4b5(0x918)][_0x52b4b5(0xa54)](this,_0x3c6cbc);this[_0x52b4b5(0x793)](_0x3c6cbc);},Window_ActorCommand[_0x1cc45e(0xc0b)][_0x1cc45e(0x1c4)]=function(){const _0x2c2092=_0x1cc45e;return VisuMZ['BattleCore'][_0x2c2092(0x5fb)][_0x2c2092(0x7c3)][_0x2c2092(0x678)];},Window_ActorCommand[_0x1cc45e(0xc0b)][_0x1cc45e(0x4c6)]=function(_0x2fc22a){const _0x3e6da7=_0x1cc45e;if(_0x2fc22a<0x0)return _0x3e6da7(0x558);const _0x1eee05=this[_0x3e6da7(0x1c4)]();if(_0x1eee05!==_0x3e6da7(0xc56))return _0x1eee05;else{if(this['maxItems']()>0x0){const _0x5286dd=this[_0x3e6da7(0xc11)](_0x2fc22a);if(_0x5286dd[_0x3e6da7(0xc6a)](/\\I\[(\d+)\]/i)){const _0x41f01e=this[_0x3e6da7(0xa7b)](_0x2fc22a),_0x22f020=this[_0x3e6da7(0xadf)](_0x5286dd)[_0x3e6da7(0x885)];return _0x22f020<=_0x41f01e['width']?_0x3e6da7(0xc97):_0x3e6da7(0x3a8);}}}return'text';},Window_ActorCommand[_0x1cc45e(0xc0b)][_0x1cc45e(0xb72)]=function(_0x21c4c3){const _0x218119=_0x1cc45e,_0xcef590=this['itemLineRect'](_0x21c4c3),_0xce5ca2=this[_0x218119(0xc11)](_0x21c4c3),_0x19aa04=this[_0x218119(0xadf)](_0xce5ca2)[_0x218119(0x885)];this[_0x218119(0xbde)](this['isCommandEnabled'](_0x21c4c3));const _0x40b8df=this[_0x218119(0xc05)]();if(_0x40b8df===_0x218119(0x7a3))this[_0x218119(0x5ba)](_0xce5ca2,_0xcef590['x']+_0xcef590[_0x218119(0x885)]-_0x19aa04,_0xcef590['y'],_0x19aa04);else{if(_0x40b8df==='center'){const _0x3d5850=_0xcef590['x']+Math[_0x218119(0x884)]((_0xcef590[_0x218119(0x885)]-_0x19aa04)/0x2);this[_0x218119(0x5ba)](_0xce5ca2,_0x3d5850,_0xcef590['y'],_0x19aa04);}else this[_0x218119(0x5ba)](_0xce5ca2,_0xcef590['x'],_0xcef590['y'],_0x19aa04);}},Window_ActorCommand[_0x1cc45e(0xc0b)]['drawItemStyleIcon']=function(_0x4f74d7){const _0x281805=_0x1cc45e;this[_0x281805(0xc11)](_0x4f74d7)[_0x281805(0xc6a)](/\\I\[(\d+)\]/i);const _0x1170f5=Number(RegExp['$1'])||0x0,_0x2e0b35=this[_0x281805(0xa7b)](_0x4f74d7),_0x340e7a=_0x2e0b35['x']+Math[_0x281805(0x884)]((_0x2e0b35['width']-ImageManager[_0x281805(0x85e)])/0x2),_0x5ecc3a=_0x2e0b35['y']+(_0x2e0b35[_0x281805(0x20f)]-ImageManager[_0x281805(0xb6c)])/0x2;this[_0x281805(0x314)](_0x1170f5,_0x340e7a,_0x5ecc3a);},Window_ActorCommand[_0x1cc45e(0xc0b)][_0x1cc45e(0x793)]=function(_0x4a32d1){const _0x40263d=_0x1cc45e;if(!(VisuMZ['BattleCore'][_0x40263d(0x5fb)][_0x40263d(0x7c3)][_0x40263d(0x7c4)]??!![]))return;const _0x5baf7f=this['commandSymbol'](_0x4a32d1);if(![_0x40263d(0xab8),_0x40263d(0x3ef),_0x40263d(0x2f0)]['includes'](_0x5baf7f))return;const _0x52aa5b=this[_0x40263d(0xa7b)](_0x4a32d1);let _0x396fb8=null;if(_0x5baf7f==='attack')_0x396fb8=$dataSkills[this[_0x40263d(0x400)][_0x40263d(0x24a)]()];else _0x5baf7f===_0x40263d(0x3ef)?_0x396fb8=$dataSkills[this[_0x40263d(0x400)][_0x40263d(0xd05)]()]:_0x396fb8=$dataSkills[this[_0x40263d(0x562)][_0x4a32d1]['ext']];this['drawSkillCost'](this['_actor'],_0x396fb8,_0x52aa5b['x'],_0x52aa5b['y'],_0x52aa5b['width']);},Window_ActorCommand[_0x1cc45e(0xc0b)][_0x1cc45e(0x888)]=function(_0x3688f6,_0xc54c76,_0x43028f,_0x328ab6,_0x2300a0){const _0x3bf69b=_0x1cc45e;if(!_0xc54c76)return;Imported[_0x3bf69b(0x47f)]?Window_Command[_0x3bf69b(0xc0b)][_0x3bf69b(0x888)][_0x3bf69b(0xa54)](this,_0x3688f6,_0xc54c76,_0x43028f,_0x328ab6,_0x2300a0):Window_SkillList[_0x3bf69b(0xc0b)][_0x3bf69b(0x888)][_0x3bf69b(0xa54)](this,_0xc54c76,_0x43028f,_0x328ab6,_0x2300a0);},Window_ActorCommand['prototype'][_0x1cc45e(0xc4d)]=function(){},Window_ActorCommand[_0x1cc45e(0xc0b)][_0x1cc45e(0x3d9)]=function(){const _0x2a6b3a=_0x1cc45e;Window_Command[_0x2a6b3a(0xc0b)][_0x2a6b3a(0x3d9)][_0x2a6b3a(0xa54)](this);const _0x513643=this[_0x2a6b3a(0x2f9)]();_0x513643===_0x2a6b3a(0x3ff)&&this[_0x2a6b3a(0x5cb)]();},Window_ActorCommand[_0x1cc45e(0xc0b)]['battleLayoutStyle']=function(){const _0xde3362=_0x1cc45e;if(this[_0xde3362(0xb11)])return this['_battleLayoutStyle'];return this[_0xde3362(0xb11)]=SceneManager['_scene'][_0xde3362(0x2f9)](),this['_battleLayoutStyle'];},VisuMZ[_0x1cc45e(0x2c5)]['Window_ActorCommand_setup']=Window_ActorCommand[_0x1cc45e(0xc0b)][_0x1cc45e(0x620)],Window_ActorCommand[_0x1cc45e(0xc0b)][_0x1cc45e(0x620)]=function(_0x496fd5){const _0x3c2757=_0x1cc45e,_0xf9fe8a=this[_0x3c2757(0x2f9)]();if(_0x496fd5&&['xp','portrait'][_0x3c2757(0x9c4)](_0xf9fe8a))this[_0x3c2757(0x8ed)](_0x496fd5);else _0x496fd5&&['border'][_0x3c2757(0x9c4)](_0xf9fe8a)&&(this['resizeWindowBorderStyle'](_0x496fd5),this['showHelpWindow']());VisuMZ[_0x3c2757(0x2c5)][_0x3c2757(0x375)][_0x3c2757(0xa54)](this,_0x496fd5),_0x496fd5&&$gameTroop['aliveMembers']()[_0x3c2757(0x96d)]>0x0&&_0x496fd5['battler']()&&_0x496fd5[_0x3c2757(0x3ba)]()[_0x3c2757(0x345)]();},Window_ActorCommand[_0x1cc45e(0xc0b)][_0x1cc45e(0x8ed)]=function(_0x4c1cf3){const _0x41a718=_0x1cc45e,_0x9096a5=VisuMZ[_0x41a718(0x2c5)][_0x41a718(0x5fb)][_0x41a718(0x5d4)][_0x41a718(0x9bf)],_0x3cdc13=Math[_0x41a718(0xb4b)](Graphics[_0x41a718(0x46e)]/0x3),_0x455225=Math[_0x41a718(0xb4b)](Graphics['boxWidth']/$gameParty[_0x41a718(0xaee)]()[_0x41a718(0x96d)]),_0x3fc1d1=Math[_0x41a718(0x485)](Math['min'](_0x3cdc13,_0x455225),_0x9096a5),_0x4ba66e=this[_0x41a718(0x41d)](VisuMZ[_0x41a718(0x2c5)][_0x41a718(0x5fb)]['BattleLayout']['XPActorCommandLines']),_0x5de643=Math['floor']((Graphics[_0x41a718(0x46e)]-Graphics[_0x41a718(0x885)])/0x2),_0x1c9e4b=Graphics['boxWidth']-_0x5de643,_0x12eaa9=(Math[_0x41a718(0xb4b)](_0x455225*_0x4c1cf3[_0x41a718(0x7b5)]())+Math[_0x41a718(0xb4b)]((_0x455225-_0x3fc1d1)/0x2))['clamp'](_0x5de643,_0x1c9e4b-_0x3fc1d1),_0x38381a=Math[_0x41a718(0xb4b)](SceneManager['_scene'][_0x41a718(0x5b3)]['y']-_0x4ba66e);this[_0x41a718(0xbf7)](_0x12eaa9,_0x38381a,_0x3fc1d1,_0x4ba66e),this[_0x41a718(0x998)](),this[_0x41a718(0x7b8)](0x1);},Window_ActorCommand['prototype'][_0x1cc45e(0x1c3)]=function(_0x553d86){const _0x11e8ea=_0x1cc45e,_0x51cd36=SceneManager[_0x11e8ea(0x659)][_0x11e8ea(0x4f2)]();this[_0x11e8ea(0xbf7)](_0x51cd36['x'],_0x51cd36['y'],_0x51cd36[_0x11e8ea(0x885)],_0x51cd36[_0x11e8ea(0x20f)]),this[_0x11e8ea(0x998)](),this[_0x11e8ea(0x7b8)](0x0);},Window_ActorCommand[_0x1cc45e(0xc0b)][_0x1cc45e(0x90d)]=function(){const _0x1efa29=_0x1cc45e;if(this[_0x1efa29(0x449)]){const _0x3f72ff=this[_0x1efa29(0x449)]['bitmap'],_0x512c07=this['width']-0x8,_0x51ce60=this[_0x1efa29(0x20f)],_0x3307ea=this['padding'],_0x1bdd06=ColorManager['dimColor1'](),_0x54e612=ColorManager[_0x1efa29(0xa50)]();this[_0x1efa29(0x449)]['x']=0x4,_0x3f72ff[_0x1efa29(0x724)](_0x512c07,_0x51ce60),_0x3f72ff[_0x1efa29(0xb7f)](0x0,0x0,_0x512c07,_0x3307ea,_0x54e612,_0x1bdd06,!![]),_0x3f72ff['fillRect'](0x0,_0x3307ea,_0x512c07,_0x51ce60-_0x3307ea*0x2,_0x1bdd06),_0x3f72ff[_0x1efa29(0xb7f)](0x0,_0x51ce60-_0x3307ea,_0x512c07,_0x3307ea,_0x1bdd06,_0x54e612,!![]),this[_0x1efa29(0x449)][_0x1efa29(0xc1c)](0x0,0x0,_0x512c07,_0x51ce60);}},Window_ActorCommand[_0x1cc45e(0xc0b)][_0x1cc45e(0xa05)]=function(){const _0x7fd73=_0x1cc45e;if(!this['_actor'])return;const _0x7c463f=VisuMZ[_0x7fd73(0x2c5)][_0x7fd73(0x5fb)][_0x7fd73(0x7c3)],_0x50a388=this[_0x7fd73(0x6bb)]();switch(_0x50a388){case _0x7fd73(0xab8):this[_0x7fd73(0x33b)]($dataSkills[this['_actor'][_0x7fd73(0x24a)]()]);break;case _0x7fd73(0x3ef):this['setHelpWindowItem']($dataSkills[this[_0x7fd73(0x400)][_0x7fd73(0xd05)]()]);break;case _0x7fd73(0x95e):const _0x1c32cd=_0x7c463f[_0x7fd73(0xb91)],_0x456a62=_0x1c32cd['format']($dataSystem['skillTypes'][this['currentExt']()]);this['_helpWindow'][_0x7fd73(0x51b)](_0x456a62);break;case _0x7fd73(0x2f0):this[_0x7fd73(0x33b)]($dataSkills[this['currentExt']()]);break;case _0x7fd73(0x904):this[_0x7fd73(0x317)][_0x7fd73(0x51b)](_0x7c463f['HelpItem']);break;case'escape':this[_0x7fd73(0x317)][_0x7fd73(0x51b)](_0x7c463f[_0x7fd73(0x1d8)]);break;case'autoBattle':this[_0x7fd73(0x317)]['setText'](_0x7c463f[_0x7fd73(0x59f)]);break;case'status':this[_0x7fd73(0x317)][_0x7fd73(0x51b)](Window_InBattleStatus['SETTINGS'][_0x7fd73(0x868)]);break;default:this[_0x7fd73(0x317)][_0x7fd73(0x51b)]('');break;}},Window_ActorCommand[_0x1cc45e(0xc0b)][_0x1cc45e(0x6a8)]=function(){const _0x3bc48d=_0x1cc45e;this[_0x3bc48d(0x2f7)](0x0);if(this[_0x3bc48d(0x400)]&&ConfigManager['commandRemember']){const _0x5b1617=this['_actor'][_0x3bc48d(0xc4f)]();this[_0x3bc48d(0xc5b)](_0x5b1617);if(_0x5b1617===_0x3bc48d(0x95e)){const _0x518ac0=this[_0x3bc48d(0x400)][_0x3bc48d(0x708)]();if(_0x518ac0){const _0x1c41b2=this[_0x3bc48d(0xa97)](_0x3bc48d(0x95e),_0x518ac0[_0x3bc48d(0x985)]);this['select'](_0x1c41b2||0x0);}}else{if(_0x5b1617==='singleSkill'){const _0x1c0bfd=this['_actor']['lastBattleSkill']();if(_0x1c0bfd){const _0x2691e0=this[_0x3bc48d(0xa97)]('singleSkill',_0x1c0bfd['id']);this[_0x3bc48d(0x2e9)](_0x2691e0||0x0);}}}}},Window_ActorCommand[_0x1cc45e(0xc0b)]['findSymbolExt']=function(_0x1e5898,_0x926f90){const _0x42fd11=_0x1cc45e;return this[_0x42fd11(0x562)]['findIndex'](_0x2f73a9=>_0x2f73a9[_0x42fd11(0xb8d)]===_0x1e5898&&_0x2f73a9[_0x42fd11(0xb02)]===_0x926f90);},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x3f0)]=Window_BattleStatus[_0x1cc45e(0xc0b)][_0x1cc45e(0x896)],Window_BattleStatus[_0x1cc45e(0xc0b)][_0x1cc45e(0x896)]=function(_0x25f26d){const _0x480002=_0x1cc45e;VisuMZ[_0x480002(0x2c5)][_0x480002(0x3f0)]['call'](this,_0x25f26d),this[_0x480002(0x488)](),this[_0x480002(0x74d)]();},Window_BattleStatus['prototype'][_0x1cc45e(0x2f9)]=function(){const _0x48ab6c=_0x1cc45e;if(this[_0x48ab6c(0xb11)])return this['_battleLayoutStyle'];return this[_0x48ab6c(0xb11)]=SceneManager[_0x48ab6c(0x659)][_0x48ab6c(0x2f9)](),this['_battleLayoutStyle'];},Window_BattleStatus[_0x1cc45e(0xc0b)][_0x1cc45e(0x488)]=function(){const _0x27edfb=_0x1cc45e;this[_0x27edfb(0x7d4)]=this['isFrameVisible']();const _0x2efda3=VisuMZ[_0x27edfb(0x2c5)]['Settings'][_0x27edfb(0x5d4)];_0x2efda3[_0x27edfb(0x5d7)]&&(this[_0x27edfb(0x2f3)]=0x0);},Window_BattleStatus[_0x1cc45e(0xc0b)][_0x1cc45e(0x1d6)]=function(){const _0x584fff=_0x1cc45e,_0x425227=VisuMZ[_0x584fff(0x2c5)][_0x584fff(0x5fb)][_0x584fff(0x5d4)];if(_0x425227['StatusWindowSkinFilename'])return!![];const _0x4101b6=this[_0x584fff(0x2f9)]();switch(_0x4101b6){case _0x584fff(0x8de):case _0x584fff(0x3ff):return!![];break;case'default':case'xp':case'portrait':default:return![];break;}},Window_BattleStatus[_0x1cc45e(0xc0b)]['extraHeight']=function(){const _0xe28e6d=_0x1cc45e;return this[_0xe28e6d(0x1d6)]()?0x0:0xa;},Window_BattleStatus[_0x1cc45e(0xc0b)]['maxCols']=function(){const _0x5876e5=_0x1cc45e,_0x187d2b=this['battleLayoutStyle']();switch(_0x187d2b){case _0x5876e5(0x8de):return 0x1;break;case'xp':case _0x5876e5(0x76c):return $gameParty[_0x5876e5(0xaee)]()[_0x5876e5(0x96d)];break;case'default':default:return $gameParty['maxBattleMembers']();break;}},Window_BattleStatus['prototype'][_0x1cc45e(0x307)]=function(){const _0x3151d0=_0x1cc45e,_0x116049=this[_0x3151d0(0x2f9)]();switch(_0x116049){case _0x3151d0(0x8de):return Window_StatusBase[_0x3151d0(0xc0b)]['itemHeight'][_0x3151d0(0xa54)](this);break;case _0x3151d0(0x8d7):case'xp':case _0x3151d0(0x76c):default:return this['innerHeight'];break;}},Window_BattleStatus[_0x1cc45e(0xc0b)][_0x1cc45e(0x278)]=function(){const _0x6d02ca=_0x1cc45e,_0x3955c9=this[_0x6d02ca(0x2f9)]();switch(_0x3955c9){case'list':return Window_StatusBase[_0x6d02ca(0xc0b)][_0x6d02ca(0x278)][_0x6d02ca(0xa54)](this);break;case _0x6d02ca(0x8d7):case'xp':case _0x6d02ca(0x76c):default:return 0x0;break;}},Window_BattleStatus[_0x1cc45e(0xc0b)][_0x1cc45e(0x573)]=function(){const _0x3f4d57=_0x1cc45e;this[_0x3f4d57(0x1d6)]()?Window_StatusBase[_0x3f4d57(0xc0b)][_0x3f4d57(0x573)][_0x3f4d57(0xa54)](this):this[_0x3f4d57(0xa12)]=0x8;},Window_BattleStatus['prototype'][_0x1cc45e(0x58d)]=function(){const _0xaef420=_0x1cc45e,_0x49d7e3=VisuMZ['BattleCore'][_0xaef420(0x5fb)][_0xaef420(0x5d4)];_0x49d7e3[_0xaef420(0xab1)]?this[_0xaef420(0xc50)]=ImageManager['loadSystem'](_0x49d7e3[_0xaef420(0xab1)]):Window_StatusBase[_0xaef420(0xc0b)]['loadWindowskin'][_0xaef420(0xa54)](this);},Window_BattleStatus[_0x1cc45e(0xc0b)][_0x1cc45e(0x3ed)]=function(_0x55026a){const _0x25f76b=_0x1cc45e,_0x4db997=VisuMZ['BattleCore'][_0x25f76b(0x5fb)][_0x25f76b(0x5d4)];if(_0x4db997[_0x25f76b(0x9cf)])return;Window_StatusBase[_0x25f76b(0xc0b)][_0x25f76b(0x3ed)][_0x25f76b(0xa54)](this,_0x55026a);},Window_BattleStatus['prototype']['requestRefresh']=function(){this['_requestRefresh']=!![];},Window_BattleStatus[_0x1cc45e(0xc0b)]['update']=function(){const _0x18ec86=_0x1cc45e;Window_StatusBase[_0x18ec86(0xc0b)][_0x18ec86(0x90f)][_0x18ec86(0xa54)](this),this[_0x18ec86(0x361)](),this[_0x18ec86(0xa17)]();if(this[_0x18ec86(0x2f9)]()===_0x18ec86(0x3ff))this[_0x18ec86(0x794)]();},Window_BattleStatus[_0x1cc45e(0xc0b)][_0x1cc45e(0x361)]=function(){const _0x1b6d2e=_0x1cc45e;if($gameTemp[_0x1b6d2e(0x8d5)]())this[_0x1b6d2e(0xab2)](),this[_0x1b6d2e(0x737)]=![],$gameTemp['clearBattleRefreshRequest']();else this[_0x1b6d2e(0x737)]&&(this['_requestRefresh']=![],this[_0x1b6d2e(0x299)](),this[_0x1b6d2e(0x415)]());},Window_BattleStatus[_0x1cc45e(0xc0b)][_0x1cc45e(0x4e7)]=function(){const _0x389739=_0x1cc45e;Window_StatusBase[_0x389739(0xc0b)][_0x389739(0x4e7)][_0x389739(0xa54)](this);if(!$gameSystem[_0x389739(0xbb2)]())this[_0x389739(0x299)]();},Window_BattleStatus[_0x1cc45e(0xc0b)][_0x1cc45e(0xc4d)]=function(){const _0x520a85=_0x1cc45e;if(this[_0x520a85(0x2e2)]===Window_BattleStatus)return;Window_StatusBase['prototype']['hide'][_0x520a85(0xa54)](this);},Window_BattleStatus[_0x1cc45e(0xc0b)]['drawBackgroundRect']=function(_0x5a66c9){const _0x4771ec=_0x1cc45e,_0x51d838=this['battleLayoutStyle']();switch(_0x51d838){case'xp':case _0x4771ec(0x76c):break;case _0x4771ec(0x8d7):case _0x4771ec(0x8de):case _0x4771ec(0x3ff):default:return Window_StatusBase[_0x4771ec(0xc0b)][_0x4771ec(0xb28)][_0x4771ec(0xa54)](this,_0x5a66c9);break;}},VisuMZ[_0x1cc45e(0x2c5)]['Window_BattleStatus_drawItemImage']=Window_BattleStatus[_0x1cc45e(0xc0b)][_0x1cc45e(0x1bb)],Window_BattleStatus[_0x1cc45e(0xc0b)][_0x1cc45e(0x1bb)]=function(_0x26afdd){const _0x417c73=_0x1cc45e,_0x1630d5=this['battleLayoutStyle']();switch(_0x1630d5){case'list':this[_0x417c73(0x513)](_0x26afdd);break;case'xp':this[_0x417c73(0xba5)](_0x26afdd);break;case _0x417c73(0x76c):this['drawItemImagePortraitStyle'](_0x26afdd);break;case'default':case'border':default:VisuMZ[_0x417c73(0x2c5)][_0x417c73(0x1ab)]['call'](this,_0x26afdd);break;}},Window_BattleStatus[_0x1cc45e(0xc0b)][_0x1cc45e(0xcbc)]=function(_0x1a51f6){const _0x34a137=_0x1cc45e,_0x547820=this['battleLayoutStyle']();if(!$gameSystem[_0x34a137(0xbb2)]())this['centerFrontViewSprite'](_0x1a51f6);switch(_0x547820){case _0x34a137(0x8de):this[_0x34a137(0xc20)](_0x1a51f6);break;case'xp':case'portrait':case _0x34a137(0x8d7):case _0x34a137(0x3ff):default:this['drawItemStatusXPStyle'](_0x1a51f6);break;}},Window_BattleStatus[_0x1cc45e(0xc0b)][_0x1cc45e(0x1cc)]=function(){const _0x142f82=_0x1cc45e,_0x223866=this['battleLayoutStyle']();if(['xp']['includes'](_0x223866)&&!$gameSystem[_0x142f82(0xbb2)]()){this['setCursorRect'](0x0,0x0,0x0,0x0);return;}Window_StatusBase[_0x142f82(0xc0b)][_0x142f82(0x1cc)]['call'](this);},Window_BattleStatus['prototype'][_0x1cc45e(0xc5c)]=function(_0x2a79ce){const _0x49e213=_0x1cc45e,_0x1ed7c9=this[_0x49e213(0x72d)](_0x2a79ce)[_0x49e213(0x3ba)]();if(!_0x1ed7c9)return;const _0x2e3551=this[_0x49e213(0x2f9)](),_0x2f030c=this[_0x49e213(0x21b)](_0x2a79ce);let _0x509ff5=Math[_0x49e213(0xb4b)](_0x2f030c['x']+_0x2f030c['width']/0x2)+this[_0x49e213(0xa12)];[_0x49e213(0x8de)]['includes'](_0x2e3551)&&(_0x509ff5=_0x2f030c[_0x49e213(0x885)]/$gameParty[_0x49e213(0xaee)]()['length'],_0x509ff5*=_0x2a79ce,_0x509ff5+=_0x2f030c[_0x49e213(0x885)]/$gameParty[_0x49e213(0xaee)]()[_0x49e213(0x96d)]/0x2);let _0x1876fb=Math[_0x49e213(0xb4b)](this['frontviewSpriteY'](_0x2a79ce,_0x1ed7c9,_0x2f030c));_0x1ed7c9['setHome'](_0x509ff5,_0x1876fb),this[_0x49e213(0x4b5)](_0x1ed7c9,0x1),_0x1ed7c9[_0x49e213(0x4e7)](),this['updateEffectsContainer'](),this[_0x49e213(0x415)]();},Window_BattleStatus['prototype'][_0x1cc45e(0x9f5)]=function(_0x3c1f21,_0x2de9b3,_0x3cea00){const _0x5797d2=_0x1cc45e,_0x66e8f5=VisuMZ['BattleCore'][_0x5797d2(0x5fb)]['BattleLayout'],_0x8d51d6=this['battleLayoutStyle']();if(_0x8d51d6==='xp'){const _0xcf6cba=_0x66e8f5[_0x5797d2(0xafa)];switch(_0xcf6cba[_0x5797d2(0xbb5)]()[_0x5797d2(0xc8e)]()){case _0x5797d2(0xc64):return _0x3cea00[_0x5797d2(0x20f)]-_0x2de9b3[_0x5797d2(0x844)][_0x5797d2(0x20f)]/0x4;break;case _0x5797d2(0x669):const _0x220ecf=_0x66e8f5['XPActorDefaultHeight'];return(_0x3cea00[_0x5797d2(0x20f)]+(_0x2de9b3[_0x5797d2(0x20f)]||_0x220ecf))/0x2;break;case _0x5797d2(0x2b0):return 0x0;case _0x5797d2(0xc4e):default:return this[_0x5797d2(0x6ae)](_0x3cea00);break;}}else{if(_0x8d51d6===_0x5797d2(0x76c)){}}return _0x2de9b3[_0x5797d2(0x20f)];},Sprite_Name[_0x1cc45e(0xc0b)][_0x1cc45e(0xcdd)]=function(){return 0x24;},Sprite_Name[_0x1cc45e(0xc0b)]['redraw']=function(){const _0xb3bb07=_0x1cc45e,_0x609f72=this[_0xb3bb07(0xc4e)](),_0x19f652=this[_0xb3bb07(0x87a)](),_0x1a9e01=this[_0xb3bb07(0xcdd)]();this[_0xb3bb07(0xb67)](),this[_0xb3bb07(0x9a4)]['clear'](),this[_0xb3bb07(0x9a4)][_0xb3bb07(0xcc4)](_0x609f72,0x4,0x0,_0x19f652,_0x1a9e01,_0xb3bb07(0x83d));},Bitmap[_0x1cc45e(0xc0b)][_0x1cc45e(0xcc4)]=function(_0x3108c2,_0x580b95,_0x150e33,_0x410416,_0x164c6c,_0x47d620){const _0x18cd14=_0x1cc45e;TextManager[_0x18cd14(0x9c9)]&&(_0x3108c2=TextManager[_0x18cd14(0x9c9)](_0x3108c2));const _0x585573=this['context'],_0xd4416b=_0x585573[_0x18cd14(0x8b7)];_0x410416=_0x410416||0xffffffff;let _0x4a1079=_0x580b95,_0x9644cb=Math[_0x18cd14(0xb4b)](_0x150e33+0x18/0x2+this[_0x18cd14(0x5a1)]*0.35);_0x47d620===_0x18cd14(0x669)&&(_0x4a1079+=_0x410416/0x2),_0x47d620===_0x18cd14(0x7a3)&&(_0x4a1079+=_0x410416),_0x585573[_0x18cd14(0x9c1)](),_0x585573[_0x18cd14(0x23f)]=this['_makeFontNameText'](),_0x585573[_0x18cd14(0x237)]=_0x47d620,_0x585573[_0x18cd14(0x989)]='alphabetic',_0x585573[_0x18cd14(0x8b7)]=0x1,this[_0x18cd14(0x6b5)](_0x3108c2,_0x4a1079,_0x9644cb,_0x410416),_0x585573[_0x18cd14(0x8b7)]=_0xd4416b,this[_0x18cd14(0x34b)](_0x3108c2,_0x4a1079,_0x9644cb,_0x410416),_0x585573[_0x18cd14(0x7f5)](),this[_0x18cd14(0x412)][_0x18cd14(0x90f)]();},Window_BattleStatus[_0x1cc45e(0xc0b)][_0x1cc45e(0x6ae)]=function(_0x26ee8){const _0x5eecb2=_0x1cc45e;return this[_0x5eecb2(0x495)](_0x26ee8)-this[_0x5eecb2(0x80d)]();},Window_BattleStatus['prototype'][_0x1cc45e(0x513)]=function(_0x31e933){const _0x1a0e0c=_0x1cc45e;if(!VisuMZ['BattleCore'][_0x1a0e0c(0x5fb)]['BattleLayout']['ShowFacesListStyle'])return;const _0x5c05fc=this[_0x1a0e0c(0x72d)](_0x31e933),_0x7a97b0=this[_0x1a0e0c(0x21b)](_0x31e933);_0x7a97b0['width']=ImageManager['faceWidth'],_0x7a97b0[_0x1a0e0c(0x20f)]-=0x2,this[_0x1a0e0c(0x1fc)](_0x5c05fc,_0x7a97b0['x']+0x1,_0x7a97b0['y']+0x1,_0x7a97b0[_0x1a0e0c(0x885)],_0x7a97b0[_0x1a0e0c(0x20f)]);},Window_BattleStatus[_0x1cc45e(0xc0b)][_0x1cc45e(0xc20)]=function(_0x35060e){const _0x4fa9a9=_0x1cc45e,_0x7c7071=VisuMZ['BattleCore'][_0x4fa9a9(0x5fb)]['BattleLayout'],_0x3dad7b=$dataSystem[_0x4fa9a9(0x4c5)]?0x4:0x3,_0x282535=_0x3dad7b*0x80+(_0x3dad7b-0x1)*0x8+0x4,_0x164b79=this[_0x4fa9a9(0x72d)](_0x35060e),_0x2610f9=this['itemRect'](_0x35060e);let _0x44bf48=_0x2610f9['x']+this['padding'];_0x7c7071['ShowFacesListStyle']?_0x44bf48=_0x2610f9['x']+ImageManager[_0x4fa9a9(0x3f4)]+0x8:_0x44bf48+=ImageManager[_0x4fa9a9(0x85e)];const _0x24a4d1=Math[_0x4fa9a9(0xb4b)](Math['min'](_0x2610f9['x']+_0x2610f9[_0x4fa9a9(0x885)]-_0x282535,_0x44bf48)),_0x197ced=Math[_0x4fa9a9(0xb4b)](_0x2610f9['y']+(_0x2610f9[_0x4fa9a9(0x20f)]-Sprite_Name[_0x4fa9a9(0xc0b)][_0x4fa9a9(0xcdd)]())/0x2),_0x2beeb4=Math[_0x4fa9a9(0xb4b)](_0x24a4d1-ImageManager[_0x4fa9a9(0x85e)]/0x2-0x4),_0xcfd4d7=Math['round'](_0x2610f9['y']+(_0x2610f9[_0x4fa9a9(0x20f)]-ImageManager['iconHeight'])/0x2+ImageManager[_0x4fa9a9(0xb6c)]/0x2);let _0x13df11=_0x24a4d1+0x88;const _0x6d67f3=_0x197ced;this[_0x4fa9a9(0xc98)](_0x164b79,_0x24a4d1-0x4+(_0x7c7071['TpbGaugeOffsetX']||0x0),_0x197ced+(_0x7c7071[_0x4fa9a9(0x731)]||0x0)),this[_0x4fa9a9(0xc5e)](_0x164b79,_0x24a4d1+(_0x7c7071['NameOffsetX']||0x0),_0x197ced+(_0x7c7071[_0x4fa9a9(0x5b4)]||0x0)),this[_0x4fa9a9(0x653)](_0x164b79,_0x2beeb4+(_0x7c7071[_0x4fa9a9(0x71a)]||0x0),_0xcfd4d7+(_0x7c7071[_0x4fa9a9(0x4b0)]||0x0)),this[_0x4fa9a9(0xc93)](_0x164b79,'hp',_0x13df11+0x88*0x0+(_0x7c7071['HpGaugeOffsetX']||0x0),_0x6d67f3+(_0x7c7071[_0x4fa9a9(0x7b2)]||0x0)),this[_0x4fa9a9(0xc93)](_0x164b79,'mp',_0x13df11+0x88*0x1+(_0x7c7071[_0x4fa9a9(0x70e)]||0x0),_0x6d67f3+(_0x7c7071[_0x4fa9a9(0xd01)]||0x0)),$dataSystem[_0x4fa9a9(0x4c5)]&&this[_0x4fa9a9(0xc93)](_0x164b79,'tp',_0x13df11+0x88*0x2+(_0x7c7071['TpGaugeOffsetX']||0x0),_0x6d67f3+(_0x7c7071[_0x4fa9a9(0x8b0)]||0x0));},Window_BattleStatus[_0x1cc45e(0xc0b)][_0x1cc45e(0xba5)]=function(_0x2bad00){const _0x386240=_0x1cc45e;if(!$gameSystem[_0x386240(0xbb2)]())return;VisuMZ[_0x386240(0x2c5)]['Window_BattleStatus_drawItemImage'][_0x386240(0xa54)](this,_0x2bad00);},Window_BattleStatus[_0x1cc45e(0xc0b)][_0x1cc45e(0x5e4)]=function(_0x112636){const _0x51262b=_0x1cc45e,_0x72a82=VisuMZ[_0x51262b(0x2c5)][_0x51262b(0x5fb)]['BattleLayout'],_0xa06fa3=this['actor'](_0x112636),_0x88b135=this[_0x51262b(0x21b)](_0x112636),_0x5c390e=Math[_0x51262b(0xb4b)](_0x88b135['x']+(_0x88b135[_0x51262b(0x885)]-0x80)/0x2),_0x22a102=this['nameY'](_0x88b135);let _0x11ca9d=_0x5c390e-ImageManager[_0x51262b(0x85e)]/0x2-0x4,_0x1803f6=_0x22a102+ImageManager[_0x51262b(0xb6c)]/0x2;_0x11ca9d-ImageManager[_0x51262b(0x85e)]/0x2<_0x88b135['x']&&(_0x11ca9d=_0x5c390e+ImageManager[_0x51262b(0x85e)]/0x2-0x4,_0x1803f6=_0x22a102-ImageManager[_0x51262b(0xb6c)]/0x2);const _0xb50f1a=_0x5c390e,_0xc2e104=this[_0x51262b(0x495)](_0x88b135);this[_0x51262b(0xc98)](_0xa06fa3,_0x5c390e+(_0x72a82[_0x51262b(0xc03)]||0x0),_0x22a102+(_0x72a82[_0x51262b(0x731)]||0x0)),this[_0x51262b(0xc5e)](_0xa06fa3,_0x5c390e+(_0x72a82[_0x51262b(0x382)]||0x0),_0x22a102+(_0x72a82[_0x51262b(0x5b4)]||0x0)),this[_0x51262b(0x653)](_0xa06fa3,_0x11ca9d+(_0x72a82[_0x51262b(0x71a)]||0x0),_0x1803f6+(_0x72a82['StateIconOffsetY']||0x0)),this[_0x51262b(0xc93)](_0xa06fa3,'hp',_0xb50f1a+(_0x72a82[_0x51262b(0x387)]||0x0),_0xc2e104+(_0x72a82['HpGaugeOffsetY']||0x0)),this[_0x51262b(0xc93)](_0xa06fa3,'mp',_0xb50f1a+(_0x72a82['MpGaugeOffsetX']||0x0),_0xc2e104+this[_0x51262b(0x80d)]()+(_0x72a82[_0x51262b(0xd01)]||0x0)),$dataSystem['optDisplayTp']&&this[_0x51262b(0xc93)](_0xa06fa3,'tp',_0xb50f1a+(_0x72a82['TpGaugeOffsetX']||0x0),_0xc2e104+this[_0x51262b(0x80d)]()*0x2+(_0x72a82['TpGaugeOffsetY']||0x0));},Window_BattleStatus[_0x1cc45e(0xc0b)][_0x1cc45e(0x2e4)]=function(_0x14b3c2){const _0x4834bc=_0x1cc45e;if(!VisuMZ['BattleCore']['Settings'][_0x4834bc(0x5d4)][_0x4834bc(0x3b1)])return![];if(_0x14b3c2[_0x4834bc(0x315)]())return!![];return Imported['VisuMZ_1_MainMenuCore']&&_0x14b3c2[_0x4834bc(0xa3a)]();},Game_Actor[_0x1cc45e(0xc0b)]['getBattlePortraitOffsetX']=function(){const _0x3b1530=_0x1cc45e;if(this[_0x3b1530(0x72d)]()[_0x3b1530(0xbe6)][_0x3b1530(0xc6a)](/<BATTLE (?:IMAGE|PORTRAIT) OFFSET X:[ ]([\+\-]\d+)>/i))return Number(RegExp['$1']);else{if(this[_0x3b1530(0x72d)]()[_0x3b1530(0xbe6)]['match'](/<BATTLE (?:IMAGE|PORTRAIT) OFFSET:[ ]([\+\-]\d+),[ ]([\+\-]\d+)>/i))return Number(RegExp['$1']);}return 0x0;},Game_Actor[_0x1cc45e(0xc0b)]['getBattlePortraitOffsetY']=function(){const _0x24bb32=_0x1cc45e;if(this[_0x24bb32(0x72d)]()[_0x24bb32(0xbe6)][_0x24bb32(0xc6a)](/<BATTLE (?:IMAGE|PORTRAIT) OFFSET Y:[ ]([\+\-]\d+)>/i))return Number(RegExp['$1']);else{if(this[_0x24bb32(0x72d)]()[_0x24bb32(0xbe6)][_0x24bb32(0xc6a)](/<BATTLE (?:IMAGE|PORTRAIT) OFFSET:[ ]([\+\-]\d+),[ ]([\+\-]\d+)>/i))return Number(RegExp['$2']);}return 0x0;},Window_BattleStatus['prototype'][_0x1cc45e(0x49c)]=function(_0x274074){const _0xe3a03e=_0x1cc45e,_0xc2c8ba=this[_0xe3a03e(0x72d)](_0x274074);if(this[_0xe3a03e(0x2e4)](_0xc2c8ba)){const _0x461fff=_0xe3a03e(0x628)[_0xe3a03e(0x65c)](_0xc2c8ba[_0xe3a03e(0x393)]()),_0x24dcfa=this[_0xe3a03e(0xae0)](_0x461fff,Sprite),_0xd4949c=_0xc2c8ba['getBattlePortraitFilename']();_0xd4949c!==''?_0x24dcfa[_0xe3a03e(0x9a4)]=ImageManager[_0xe3a03e(0x6dd)](_0xd4949c):_0x24dcfa[_0xe3a03e(0x9a4)]=ImageManager[_0xe3a03e(0xcca)];const _0xa0a686=this[_0xe3a03e(0x21b)](_0x274074);_0x24dcfa['anchor']['x']=0.5,_0x24dcfa[_0xe3a03e(0xcf1)]['y']=0x1;let _0x28c439=Math[_0xe3a03e(0xb4b)](_0xa0a686['x']+_0xa0a686[_0xe3a03e(0x885)]/0x2)+this[_0xe3a03e(0xa12)];_0x28c439+=_0xc2c8ba[_0xe3a03e(0x69a)]();let _0x255884=Math[_0xe3a03e(0xb4b)](this[_0xe3a03e(0x20f)]);_0x255884+=_0xc2c8ba['getBattlePortraitOffsetY'](),_0x24dcfa[_0xe3a03e(0xbf7)](_0x28c439,_0x255884);const _0x502df6=VisuMZ[_0xe3a03e(0x2c5)]['Settings']['BattleLayout']['PortraitScale'];_0x24dcfa[_0xe3a03e(0x9f1)]['x']=_0x502df6,_0x24dcfa[_0xe3a03e(0x9f1)]['y']=_0x502df6,_0x24dcfa['show']();}else{const _0x57abd9=this[_0xe3a03e(0x29b)](_0x274074);this[_0xe3a03e(0x1fc)](_0xc2c8ba,_0x57abd9['x'],_0x57abd9['y'],_0x57abd9['width'],_0x57abd9[_0xe3a03e(0x20f)]);}},Window_BattleStatus[_0x1cc45e(0xc0b)][_0x1cc45e(0xae0)]=function(_0x4f931b,_0x1f02d8){const _0x518af4=_0x1cc45e,_0x39ea4c=this[_0x518af4(0x7c2)];if(_0x39ea4c[_0x4f931b])return _0x39ea4c[_0x4f931b];else{const _0x4fc5c6=new _0x1f02d8();return _0x39ea4c[_0x4f931b]=_0x4fc5c6,this[_0x518af4(0x329)](_0x4fc5c6),this[_0x518af4(0x329)](this['_cursorArea']),_0x4fc5c6;}},Window_BattleStatus['prototype'][_0x1cc45e(0x537)]=function(){const _0x191da6=_0x1cc45e;this[_0x191da6(0x881)](),this[_0x191da6(0x752)](),Window_StatusBase[_0x191da6(0xc0b)]['_createClientArea'][_0x191da6(0xa54)](this),this[_0x191da6(0xc88)]();},Window_BattleStatus[_0x1cc45e(0xc0b)]['_createCursorArea']=function(){const _0x4e5b01=_0x1cc45e;this[_0x4e5b01(0x1cd)]=new Sprite(),this[_0x4e5b01(0x1cd)][_0x4e5b01(0xc68)]=[new PIXI['filters'][(_0x4e5b01(0x26b))]()],this[_0x4e5b01(0x1cd)][_0x4e5b01(0xc16)]=new Rectangle(),this[_0x4e5b01(0x1cd)][_0x4e5b01(0xbf7)](this['_padding'],this[_0x4e5b01(0x2fa)]),this[_0x4e5b01(0x84d)](this[_0x4e5b01(0x1cd)]);},Window_BattleStatus['prototype']['_createEffectsContainer']=function(){const _0x52a818=_0x1cc45e;this['_effectsContainer']=new Sprite(),this[_0x52a818(0x84d)](this[_0x52a818(0x5dd)]);},Window_BattleStatus['prototype']['updateEffectsContainer']=function(){const _0x41422f=_0x1cc45e;this[_0x41422f(0x5dd)]&&this[_0x41422f(0x84d)](this[_0x41422f(0x5dd)]);},Window_BattleStatus[_0x1cc45e(0xc0b)]['_createDamageContainer']=function(){const _0x5e8339=_0x1cc45e;this[_0x5e8339(0xc1e)]=new Sprite(),this['addChild'](this[_0x5e8339(0xc1e)]);},Window_BattleStatus[_0x1cc45e(0xc0b)][_0x1cc45e(0xabd)]=function(){const _0x4f6899=_0x1cc45e;this[_0x4f6899(0xa93)]=new Sprite();for(let _0x4e1401=0x0;_0x4e1401<0x9;_0x4e1401++){this['_cursorSprite'][_0x4f6899(0x84d)](new Sprite());}this[_0x4f6899(0x1cd)][_0x4f6899(0x84d)](this['_cursorSprite']);},Window_BattleStatus[_0x1cc45e(0xc0b)][_0x1cc45e(0x518)]=function(){const _0x5e5e1e=_0x1cc45e;Window_StatusBase[_0x5e5e1e(0xc0b)]['_updateClientArea'][_0x5e5e1e(0xa54)](this),this[_0x5e5e1e(0x46a)]();},Window_BattleStatus[_0x1cc45e(0xc0b)][_0x1cc45e(0x46a)]=function(){const _0x3bad57=_0x1cc45e,_0xd69c94=this[_0x3bad57(0x2fa)];this['_cursorArea'][_0x3bad57(0xbf7)](_0xd69c94,_0xd69c94),this['_cursorArea']['x']=_0xd69c94-this[_0x3bad57(0x67d)]['x'],this[_0x3bad57(0x1cd)]['y']=_0xd69c94-this['origin']['y'],this[_0x3bad57(0x323)]>0x0&&this[_0x3bad57(0x78b)]>0x0?this['_cursorArea'][_0x3bad57(0x9b2)]=this[_0x3bad57(0xbfd)]():this['_cursorArea'][_0x3bad57(0x9b2)]=![];},Window_BattleStatus[_0x1cc45e(0xc0b)]['_updateFilterArea']=function(){const _0x50bd45=_0x1cc45e;Window_StatusBase[_0x50bd45(0xc0b)][_0x50bd45(0xcab)]['call'](this),this[_0x50bd45(0xa1a)]();},Window_BattleStatus['prototype'][_0x1cc45e(0xa1a)]=function(){const _0x22face=_0x1cc45e,_0xe13f5d=this[_0x22face(0x1cd)][_0x22face(0x733)][_0x22face(0xca2)](new Point(0x0,0x0)),_0x31d90d=this['_cursorArea'][_0x22face(0xc16)];_0x31d90d['x']=_0xe13f5d['x']+this[_0x22face(0x67d)]['x'],_0x31d90d['y']=_0xe13f5d['y']+this[_0x22face(0x67d)]['y'],_0x31d90d[_0x22face(0x885)]=this[_0x22face(0x323)],_0x31d90d[_0x22face(0x20f)]=this[_0x22face(0x78b)];},Window_BattleStatus['prototype'][_0x1cc45e(0x9d3)]=function(_0x15b9b3){const _0x4e8c10=_0x1cc45e;if(this[_0x4e8c10(0x2f9)]()!==_0x4e8c10(0x76c))return;this[_0x4e8c10(0x49c)](_0x15b9b3[_0x4e8c10(0x7b5)]());},Window_BattleStatus[_0x1cc45e(0xc0b)]['addDamageSprite']=function(_0x6d4491,_0x935808){const _0x33e2c1=_0x1cc45e;if(!this[_0x33e2c1(0xc1e)])return;if(!_0x6d4491)return;if(!_0x935808)return;const _0x57c077=this['itemRect'](_0x935808[_0x33e2c1(0x7b5)]());_0x57c077['x']+=_0x57c077[_0x33e2c1(0x885)]/0x2+this[_0x33e2c1(0xa12)],_0x6d4491['x']=_0x57c077['x'],_0x6d4491['y']=_0x57c077['y'],this[_0x33e2c1(0xc1e)][_0x33e2c1(0x84d)](_0x6d4491);},Window_BattleStatus['prototype'][_0x1cc45e(0x2e5)]=function(_0x4cb343){const _0x412d0e=_0x1cc45e;if(!this['_damageContainer'])return;if(!_0x4cb343)return;this[_0x412d0e(0xc1e)]['removeChild'](_0x4cb343);},Window_BattleStatus[_0x1cc45e(0xc0b)]['updateBorderStyle']=function(){const _0x30a499=_0x1cc45e;if(!this[_0x30a499(0x944)]())return;if(!this['_borderPortraitSprite'])this['createBorderStylePortraitSprite']();this[_0x30a499(0x68f)](),this['updateBorderSprite']();},Window_BattleStatus[_0x1cc45e(0xc0b)]['isBorderStylePortraitShown']=function(){const _0x2908f6=_0x1cc45e;if(this[_0x2908f6(0x2e2)]!==Window_BattleStatus)return![];if(!SceneManager[_0x2908f6(0x499)]())return![];return VisuMZ[_0x2908f6(0x2c5)][_0x2908f6(0x5fb)]['BattleLayout']['ShowPortraitsBorderStyle'];},Window_BattleStatus['prototype'][_0x1cc45e(0xa18)]=function(){const _0x4161c1=_0x1cc45e;this['_borderPortraitSprite']=new Sprite();const _0x1f73d1=SceneManager[_0x4161c1(0x659)],_0x3e527a=_0x1f73d1[_0x4161c1(0x705)]['indexOf'](_0x1f73d1[_0x4161c1(0xa55)]);_0x1f73d1[_0x4161c1(0x4b5)](this[_0x4161c1(0x428)],_0x3e527a),this[_0x4161c1(0x428)][_0x4161c1(0xcf1)]['x']=0.5,this['_borderPortraitSprite'][_0x4161c1(0xcf1)]['y']=0x1;const _0x410b0a=VisuMZ[_0x4161c1(0x2c5)]['Settings'][_0x4161c1(0x5d4)][_0x4161c1(0x4a7)];this[_0x4161c1(0x428)]['scale']['x']=_0x410b0a,this['_borderPortraitSprite'][_0x4161c1(0x9f1)]['y']=_0x410b0a,this[_0x4161c1(0x428)]['y']=this['y']+this[_0x4161c1(0x20f)],this[_0x4161c1(0x9c2)]=0x0;},Window_BattleStatus['prototype']['isBorderPortraitSpriteVisible']=function(){const _0x4d6cff=_0x1cc45e;return BattleManager[_0x4d6cff(0x895)]();},Window_BattleStatus['prototype'][_0x1cc45e(0x68f)]=function(){const _0xb3e77a=_0x1cc45e;this[_0xb3e77a(0x428)][_0xb3e77a(0x9b2)]=this[_0xb3e77a(0x584)]();const _0xf3d405=BattleManager[_0xb3e77a(0x72d)](),_0x1707d8=_0xf3d405?_0xf3d405[_0xb3e77a(0x325)]()||'':'';if(_0xf3d405===this[_0xb3e77a(0x428)][_0xb3e77a(0x72d)]&&_0x1707d8===this[_0xb3e77a(0x428)][_0xb3e77a(0x3a7)])return;this[_0xb3e77a(0x428)]['actor']=_0xf3d405||this[_0xb3e77a(0x428)][_0xb3e77a(0x72d)],this['_borderPortraitSprite'][_0xb3e77a(0x3a7)]=_0x1707d8;if(!_0xf3d405)return;else{if(_0x1707d8===''){this[_0xb3e77a(0x428)][_0xb3e77a(0x9a4)]=ImageManager['_emptyBitmap'],this['_borderPortraitSprite'][_0xb3e77a(0x3a7)]='';return;}else{const _0x505a34=ImageManager[_0xb3e77a(0x6dd)](_0x1707d8);this[_0xb3e77a(0x428)][_0xb3e77a(0x2f3)]=0x0,_0x505a34[_0xb3e77a(0x957)](this[_0xb3e77a(0x20e)]['bind'](this,_0x505a34));}}},Window_BattleStatus[_0x1cc45e(0xc0b)][_0x1cc45e(0x20e)]=function(_0x20cb35){const _0x448465=_0x1cc45e;this[_0x448465(0x9c2)]=0x14,this[_0x448465(0x428)][_0x448465(0x9a4)]=_0x20cb35;SceneManager[_0x448465(0x659)][_0x448465(0x7ef)]()?(this[_0x448465(0x428)]['x']=0x0,this[_0x448465(0x523)]=Math[_0x448465(0xb4e)](_0x20cb35['width']/0x2)):(this[_0x448465(0x428)]['x']=this[_0x448465(0x885)],this['_borderPortraitTargetX']=this[_0x448465(0x885)]*0x3/0x4);this[_0x448465(0x428)]['opacity']=0x0,this[_0x448465(0x428)]['y']=this['y']+this[_0x448465(0x20f)];const _0x5dee5c=BattleManager['actor']();_0x5dee5c&&(this['_borderPortraitTargetX']+=_0x5dee5c[_0x448465(0x69a)](),this['_borderPortraitSprite']['y']+=_0x5dee5c[_0x448465(0x856)]());},Window_BattleStatus[_0x1cc45e(0xc0b)][_0x1cc45e(0xaed)]=function(){const _0x5f134e=_0x1cc45e;if(this[_0x5f134e(0x9c2)]>0x0){const _0x400795=this[_0x5f134e(0x9c2)],_0x5bf085=this['_borderPortraitSprite'];_0x5bf085['x']=(_0x5bf085['x']*(_0x400795-0x1)+this[_0x5f134e(0x523)])/_0x400795,_0x5bf085[_0x5f134e(0x2f3)]=(_0x5bf085[_0x5f134e(0x2f3)]*(_0x400795-0x1)+0xff)/_0x400795,this['_borderPortraitDuration']--;}},Window_BattleStatus[_0x1cc45e(0xc0b)]['updateEffectContainers']=function(){const _0x18b1de=_0x1cc45e;return;this[_0x18b1de(0x5dd)]&&(this['_effectsContainer']['x']=this['x'],this['_effectsContainer']['y']=this['y']),this[_0x18b1de(0xc1e)]&&(this[_0x18b1de(0xc1e)]['x']=this['x'],this[_0x18b1de(0xc1e)]['y']=this['y']);},Window_BattleStatus[_0x1cc45e(0xc0b)][_0x1cc45e(0x74d)]=function(){const _0x399850=_0x1cc45e,_0x1e602d=VisuMZ[_0x399850(0x2c5)][_0x399850(0x5fb)][_0x399850(0x5d4)];if(_0x1e602d[_0x399850(0x4c3)]){const _0x5932b3=new Sprite();_0x5932b3['bitmap']=ImageManager['loadSystem'](_0x1e602d['StatusWindowAttachmentBack']),_0x5932b3['x']=_0x1e602d[_0x399850(0xcb3)]||0x0,_0x5932b3['y']=_0x1e602d[_0x399850(0x43a)]||0x0,this['addChildToBack'](_0x5932b3),this[_0x399850(0x95f)]=_0x5932b3;}if(_0x1e602d[_0x399850(0x608)]){const _0x2198cd=new Sprite();_0x2198cd['bitmap']=ImageManager[_0x399850(0x408)](_0x1e602d[_0x399850(0x608)]),_0x2198cd['x']=_0x1e602d[_0x399850(0x86a)]||0x0,_0x2198cd['y']=_0x1e602d[_0x399850(0x6d1)]||0x0,this[_0x399850(0x84d)](_0x2198cd),this['_frontAttachmentSprite']=_0x2198cd;}},Window_BattleStatus[_0x1cc45e(0xc0b)][_0x1cc45e(0x415)]=function(){const _0x22ba65=_0x1cc45e;this[_0x22ba65(0x9bd)]&&this[_0x22ba65(0x84d)](this[_0x22ba65(0x9bd)]),this[_0x22ba65(0x95f)]&&this['addChildToBack'](this['_backAttachmentSprite']);},Window_BattleActor[_0x1cc45e(0xc0b)]['isCurrentItemEnabled']=function(){const _0x420801=_0x1cc45e;return this[_0x420801(0xb6e)]();},Window_BattleActor[_0x1cc45e(0xc0b)][_0x1cc45e(0xb6e)]=function(){const _0x4457f4=_0x1cc45e,_0x7fd193=BattleManager[_0x4457f4(0x82b)]();if(!_0x7fd193)return!![];if(!_0x7fd193['item']())return!![];const _0x35c2c3=this['actor'](this[_0x4457f4(0x7b5)]()),_0x32376c=_0x7fd193[_0x4457f4(0x904)]()[_0x4457f4(0xbe6)];if(_0x7fd193[_0x4457f4(0x9c3)]()){if(_0x35c2c3===BattleManager[_0x4457f4(0x72d)]())return![];}if(_0x7fd193[_0x4457f4(0x809)]()){if(!_0x35c2c3[_0x4457f4(0x1ee)]())return![];}if(_0x7fd193[_0x4457f4(0x592)]()){if(!_0x35c2c3[_0x4457f4(0x212)]())return![];}return!![];},Window_BattleActor['prototype'][_0x1cc45e(0x7de)]=function(_0xac97ef){const _0x31f80d=_0x1cc45e;this[_0x31f80d(0x3a4)]=_0xac97ef;},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x58a)]=Window_BattleActor[_0x1cc45e(0xc0b)][_0x1cc45e(0x46c)],Window_BattleActor[_0x1cc45e(0xc0b)][_0x1cc45e(0x46c)]=function(){const _0x3ce26d=_0x1cc45e;Window_BattleStatus['prototype'][_0x3ce26d(0x46c)][_0x3ce26d(0xa54)](this),this[_0x3ce26d(0x3a4)]?this[_0x3ce26d(0xb5e)]():VisuMZ[_0x3ce26d(0x2c5)][_0x3ce26d(0x58a)]['call'](this);},Window_BattleActor[_0x1cc45e(0xc0b)][_0x1cc45e(0xb5e)]=function(){const _0x4d3691=_0x1cc45e,_0x13a5ab=SceneManager[_0x4d3691(0x659)][_0x4d3691(0xbba)];if(!_0x13a5ab)return;this[_0x4d3691(0x82f)]=![];const _0x20da53=this['hitIndex']();if(_0x20da53>=0x0){this[_0x4d3691(0x2e9)](_0x20da53);if(TouchInput['isClicked']()){const _0x40cd7c=$gameParty[_0x4d3691(0x1be)]()[_0x20da53],_0x2c0a8e=_0x13a5ab[_0x4d3691(0x1d1)][_0x4d3691(0x6e9)](_0x40cd7c);_0x2c0a8e>=0x0&&(_0x13a5ab[_0x4d3691(0x2e9)](_0x2c0a8e),_0x13a5ab[_0x4d3691(0x903)]());}}},Window_BattleActor['prototype'][_0x1cc45e(0x63d)]=function(){const _0x2e601d=_0x1cc45e;this[_0x2e601d(0x3a4)]&&(this[_0x2e601d(0x740)]++,this[_0x2e601d(0x6e4)]=!![]);const _0x52959a=Window_BattleStatus[_0x2e601d(0xc0b)]['_makeCursorAlpha']['call'](this);return this[_0x2e601d(0x3a4)]&&(this['active']=![]),_0x52959a;},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x93e)]=Window_BattleActor[_0x1cc45e(0xc0b)][_0x1cc45e(0x4e7)],Window_BattleActor['prototype']['show']=function(){const _0x57e773=_0x1cc45e;VisuMZ[_0x57e773(0x2c5)][_0x57e773(0x93e)][_0x57e773(0xa54)](this);const _0x262066=BattleManager[_0x57e773(0x82b)]();if(_0x262066){const _0x43ade8=$gameParty[_0x57e773(0x1d0)]();_0x262066['canSingleOrMultipleSelect']()&&_0x43ade8[_0x57e773(0x96d)]>0x1&&this[_0x57e773(0x94f)]('pagedown',this[_0x57e773(0x835)][_0x57e773(0x344)](this));}},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x3b5)]=Window_BattleActor['prototype'][_0x1cc45e(0xc4d)],Window_BattleActor[_0x1cc45e(0xc0b)][_0x1cc45e(0xc4d)]=function(){const _0xb5723e=_0x1cc45e;VisuMZ[_0xb5723e(0x2c5)][_0xb5723e(0x3b5)]['call'](this),delete this[_0xb5723e(0xa49)]['pageup'],delete this[_0xb5723e(0xa49)][_0xb5723e(0x2c3)];},Window_BattleActor[_0x1cc45e(0xc0b)][_0x1cc45e(0x835)]=function(){const _0x2bd1c0=_0x1cc45e,_0x52ebfa=BattleManager[_0x2bd1c0(0x82b)]();if(_0x52ebfa)_0x52ebfa[_0x2bd1c0(0x78a)](_0x2bd1c0(0x75a));this[_0x2bd1c0(0x903)]();},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x388)]=Window_BattleEnemy[_0x1cc45e(0xc0b)][_0x1cc45e(0x896)],Window_BattleEnemy[_0x1cc45e(0xc0b)]['initialize']=function(_0x58579b){const _0x635c63=_0x1cc45e;this[_0x635c63(0x7a4)]=null,VisuMZ[_0x635c63(0x2c5)]['Window_BattleEnemy_initialize'][_0x635c63(0xa54)](this,_0x58579b);if(Imported['VisuMZ_2_AggroControlSystem']){if(VisuMZ['AggroControlSystem']['version']<1.12){let _0x51e1b1='';_0x51e1b1+=_0x635c63(0x822),_0x51e1b1+='in\x20order\x20for\x20Taunt\x20and\x20Provoke\x20features\x20to\x20work\x20',_0x51e1b1+=_0x635c63(0x853),alert(_0x51e1b1),SceneManager[_0x635c63(0x5c1)]();}}},Window_BattleEnemy['prototype'][_0x1cc45e(0x5e9)]=function(){const _0x317dee=_0x1cc45e;return this[_0x317dee(0xc7e)]();},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x79b)]=Window_BattleEnemy[_0x1cc45e(0xc0b)][_0x1cc45e(0x4e7)],Window_BattleEnemy[_0x1cc45e(0xc0b)][_0x1cc45e(0x4e7)]=function(){const _0x561efd=_0x1cc45e;VisuMZ['BattleCore'][_0x561efd(0x79b)][_0x561efd(0xa54)](this),this['y']=Graphics[_0x561efd(0x20f)]*0xa,this[_0x561efd(0x7ac)]()&&this[_0x561efd(0x4a9)]();},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0xafc)]=Window_BattleEnemy[_0x1cc45e(0xc0b)]['hide'],Window_BattleEnemy[_0x1cc45e(0xc0b)][_0x1cc45e(0xc4d)]=function(){const _0x20e96b=_0x1cc45e;VisuMZ['BattleCore']['Window_BattleEnemy_hide'][_0x20e96b(0xa54)](this),$gameParty[_0x20e96b(0x2e9)](null),delete this[_0x20e96b(0xa49)][_0x20e96b(0x1b6)],delete this[_0x20e96b(0xa49)][_0x20e96b(0x2c3)];},Window_BattleEnemy[_0x1cc45e(0xc0b)][_0x1cc45e(0x568)]=function(){const _0x1f5ce7=_0x1cc45e;let _0x566c0d=$gameTroop[_0x1f5ce7(0x1d0)]();const _0x53a944=BattleManager[_0x1f5ce7(0x82b)]();if(_0x53a944){_0x53a944[_0x1f5ce7(0x68d)]()&&_0x566c0d[_0x1f5ce7(0x96d)]>0x1&&this['setHandler']('pageup',this[_0x1f5ce7(0x380)][_0x1f5ce7(0x344)](this));if(_0x53a944[_0x1f5ce7(0xb59)]()){const _0x3c0808=$gameParty[_0x1f5ce7(0x1d0)]();_0x566c0d=_0x566c0d[_0x1f5ce7(0x807)](_0x3c0808),_0x53a944['canSingleOrMultipleSelect']()&&_0x3c0808[_0x1f5ce7(0x96d)]>0x1&&this[_0x1f5ce7(0x94f)](_0x1f5ce7(0x2c3),this['selectAllActors']['bind'](this));}}return _0x566c0d;},Window_BattleEnemy[_0x1cc45e(0xc0b)][_0x1cc45e(0x299)]=function(){const _0x134f32=_0x1cc45e;this[_0x134f32(0x1d1)]=this[_0x134f32(0x568)](),this[_0x134f32(0x80a)](),Window_Selectable[_0x134f32(0xc0b)][_0x134f32(0x299)][_0x134f32(0xa54)](this);},Window_BattleEnemy[_0x1cc45e(0xc0b)][_0x1cc45e(0x80a)]=function(){const _0x5c23e5=_0x1cc45e;this[_0x5c23e5(0x1d1)][_0x5c23e5(0x663)]((_0x314eab,_0x26faac)=>{const _0x34ba7f=_0x5c23e5;if(_0x314eab['isActor']()!==_0x26faac[_0x34ba7f(0x864)]()){if(_0x314eab[_0x34ba7f(0x348)]())return-0x1;if(_0x26faac['isEnemy']())return 0x1;}if(_0x314eab[_0x34ba7f(0x864)]()&&_0x26faac['isActor']())return _0x314eab[_0x34ba7f(0x7b5)]()-_0x26faac[_0x34ba7f(0x7b5)]();return _0x314eab['battler']()[_0x34ba7f(0x29f)]===_0x26faac[_0x34ba7f(0x3ba)]()[_0x34ba7f(0x29f)]?_0x314eab['battler']()[_0x34ba7f(0xb2d)]-_0x26faac[_0x34ba7f(0x3ba)]()[_0x34ba7f(0xb2d)]:_0x314eab[_0x34ba7f(0x3ba)]()[_0x34ba7f(0x29f)]-_0x26faac['battler']()['_baseX'];}),SceneManager['isBattleFlipped']()&&this[_0x5c23e5(0x1d1)][_0x5c23e5(0x3c4)]();},Window_BattleEnemy[_0x1cc45e(0xc0b)][_0x1cc45e(0x1da)]=function(){const _0x145f28=_0x1cc45e,_0x29a61d=VisuMZ[_0x145f28(0x2c5)][_0x145f28(0x5fb)]['Enemy'];_0x29a61d[_0x145f28(0xc80)]?this[_0x145f28(0x5cf)]():this[_0x145f28(0x935)]();},Window_BattleEnemy[_0x1cc45e(0xc0b)][_0x1cc45e(0x5cf)]=function(){const _0x58d142=_0x1cc45e,_0x4d8691=BattleManager[_0x58d142(0x82b)]();if(_0x4d8691&&_0x4d8691[_0x58d142(0xb59)]()){if(_0x4d8691[_0x58d142(0x2d7)]()){if(this['_lastActor']&&this[_0x58d142(0x1d1)][_0x58d142(0x9c4)](this['_lastActor'])){const _0x250ce4=this[_0x58d142(0x1d1)][_0x58d142(0x6e9)](this[_0x58d142(0xa41)]);return this['forceSelect'](_0x250ce4);}else return this['autoSelectPriority']();}}if(this[_0x58d142(0x7a4)]&&this[_0x58d142(0x1d1)][_0x58d142(0x9c4)](this[_0x58d142(0x7a4)])){const _0xfbaa5b=this[_0x58d142(0x1d1)]['indexOf'](this[_0x58d142(0x7a4)]);this[_0x58d142(0x2f7)](_0xfbaa5b);}else this[_0x58d142(0x935)]();},Window_BattleEnemy[_0x1cc45e(0xc0b)][_0x1cc45e(0x935)]=function(){const _0x2e115e=_0x1cc45e,_0x304c5b=BattleManager['inputtingAction']();if(_0x304c5b&&_0x304c5b['isForAnyone']()){const _0x4fa24d=$gameParty[_0x2e115e(0x1d0)]()[0x0];let _0x5805ec=this['_enemies']['indexOf'](_0x4fa24d);const _0x13b0d5=_0x304c5b[_0x2e115e(0x904)]()['scope'];if(_0x13b0d5[_0x2e115e(0xc6a)](/(?:ALLY|FRIEND) OR (?:ENEMY|FOE)/i)){this[_0x2e115e(0x2f7)](_0x5805ec);return;}else{if(_0x13b0d5[_0x2e115e(0xc6a)](/(?:ENEMY|FOE) OR (?:ALLY|FRIEND)/i)){this['forceSelect'](_0x5805ec-0x1);return;}}}const _0x1f9c2b=VisuMZ[_0x2e115e(0x2c5)]['Settings'][_0x2e115e(0x1a9)];let _0x402aa2=![];$gameSystem['isSideView']()?_0x402aa2=_0x1f9c2b[_0x2e115e(0x433)]:_0x402aa2=_0x1f9c2b[_0x2e115e(0x901)],this[_0x2e115e(0x2f7)](_0x402aa2?this[_0x2e115e(0xc7e)]()-0x1:0x0);},Window_BattleEnemy[_0x1cc45e(0xc0b)][_0x1cc45e(0x3c5)]=function(){const _0xbb11e4=_0x1cc45e;Window_Selectable[_0xbb11e4(0xc0b)][_0xbb11e4(0x3c5)][_0xbb11e4(0xa54)](this);if(!this['enemy']())return;if(this[_0xbb11e4(0x48a)]()['isEnemy']())this[_0xbb11e4(0x7a4)]=this['enemy']();if(this[_0xbb11e4(0x48a)]()[_0xbb11e4(0x864)]())this['_lastActor']=this[_0xbb11e4(0x48a)]();},Window_BattleEnemy['prototype']['select']=function(_0x27de3f){const _0x579e23=_0x1cc45e;Window_Selectable['prototype'][_0x579e23(0x2e9)][_0x579e23(0xa54)](this,_0x27de3f),$gameTroop[_0x579e23(0x2e9)](this[_0x579e23(0x48a)]()),$gameParty['select'](this['enemy']());if(!this[_0x579e23(0x48a)]())return;if(this[_0x579e23(0x7ac)]()){const _0x5abdd5=SceneManager[_0x579e23(0x659)][_0x579e23(0x53a)];this[_0x579e23(0x48a)]()['isActor']()?_0x5abdd5['select'](this[_0x579e23(0x48a)]()[_0x579e23(0x7b5)]()):_0x5abdd5['deselect']();}},Window_BattleEnemy['prototype'][_0x1cc45e(0x7ac)]=function(){const _0x588732=_0x1cc45e;if(!this[_0x588732(0x9b2)])return![];if($gameSystem[_0x588732(0xbb2)]())return![];const _0x1d4870=SceneManager[_0x588732(0x659)][_0x588732(0x2f9)](),_0x1211d7=['default',_0x588732(0x8de),'xp',_0x588732(0x76c),'border'];return _0x1211d7[_0x588732(0x9c4)](_0x1d4870);},Window_BattleEnemy[_0x1cc45e(0xc0b)]['openBattleActorWindow']=function(){const _0x3b0fd0=_0x1cc45e,_0x10bb5b=SceneManager[_0x3b0fd0(0x659)][_0x3b0fd0(0x53a)];_0x10bb5b['show'](),_0x10bb5b[_0x3b0fd0(0x7de)](!![]),_0x10bb5b['refresh'](),_0x10bb5b[_0x3b0fd0(0xb3b)]();const _0x70a5fc=SceneManager[_0x3b0fd0(0x659)][_0x3b0fd0(0x2f9)](),_0x5cb952=['xp','portrait',_0x3b0fd0(0x3ff)];if(_0x5cb952[_0x3b0fd0(0x9c4)](_0x70a5fc)){const _0x4f9a7e=SceneManager[_0x3b0fd0(0x659)]['_statusWindow'];_0x4f9a7e['scale']['y']=0x0;}},Window_BattleEnemy[_0x1cc45e(0xc0b)][_0x1cc45e(0xcb2)]=function(){const _0x4c2ff7=_0x1cc45e,_0x114620=SceneManager[_0x4c2ff7(0x659)][_0x4c2ff7(0x53a)];_0x114620[_0x4c2ff7(0xc4d)](),_0x114620[_0x4c2ff7(0x7de)](![]),_0x114620['deselect']();const _0x34b290=SceneManager['_scene'][_0x4c2ff7(0x5b3)];_0x34b290[_0x4c2ff7(0x9f1)]['y']=0x1;},Window_BattleEnemy[_0x1cc45e(0xc0b)][_0x1cc45e(0x380)]=function(){const _0x1d3fb7=_0x1cc45e,_0xa8ca37=BattleManager[_0x1d3fb7(0x82b)]();if(_0xa8ca37)_0xa8ca37[_0x1d3fb7(0x78a)](_0x1d3fb7(0xc4a));this[_0x1d3fb7(0x903)]();},Window_BattleEnemy[_0x1cc45e(0xc0b)][_0x1cc45e(0x835)]=function(){const _0x3508f5=_0x1cc45e,_0x116343=BattleManager[_0x3508f5(0x82b)]();if(_0x116343)_0x116343[_0x3508f5(0x78a)](_0x3508f5(0x75a));this[_0x3508f5(0x903)]();},Window_BattleEnemy['prototype']['isCurrentItemEnabled']=function(){const _0x4164c1=_0x1cc45e;return this[_0x4164c1(0xb6e)]();},Window_BattleEnemy[_0x1cc45e(0xc0b)]['isActionSelectionValid']=function(){const _0x5a9cac=_0x1cc45e,_0x2632bd=BattleManager['inputtingAction']();if(!_0x2632bd)return!![];if(!_0x2632bd[_0x5a9cac(0x904)]())return!![];const _0x5f2071=this[_0x5a9cac(0x48a)](),_0x4b3bc9=_0x2632bd['item']()[_0x5a9cac(0xbe6)];if(_0x2632bd[_0x5a9cac(0x9c3)]()){if(_0x5f2071===BattleManager[_0x5a9cac(0x72d)]())return![];}return!![];},Window_BattleItem['prototype'][_0x1cc45e(0x9c4)]=function(_0x5b0842){if(!_0x5b0842)return![];return _0x5b0842['occasion']===0x0||_0x5b0842['occasion']===0x1;};function Window_AutoBattleCancel(){this['initialize'](...arguments);}Window_AutoBattleCancel[_0x1cc45e(0xc0b)]=Object[_0x1cc45e(0x6f7)](Window_Base[_0x1cc45e(0xc0b)]),Window_AutoBattleCancel['prototype'][_0x1cc45e(0x2e2)]=Window_AutoBattleCancel,Window_AutoBattleCancel[_0x1cc45e(0xc0b)][_0x1cc45e(0x896)]=function(_0x49a255){const _0x530c33=_0x1cc45e;Window_Base[_0x530c33(0xc0b)][_0x530c33(0x896)][_0x530c33(0xa54)](this,_0x49a255),this['setBackgroundType'](this['bgType']()),this[_0x530c33(0x299)]();},Window_AutoBattleCancel[_0x1cc45e(0xc0b)]['bgType']=function(){const _0x178163=_0x1cc45e;return VisuMZ[_0x178163(0x2c5)][_0x178163(0x5fb)][_0x178163(0xac7)][_0x178163(0x365)];},Window_AutoBattleCancel[_0x1cc45e(0xc0b)][_0x1cc45e(0x299)]=function(){const _0x22e390=_0x1cc45e;this[_0x22e390(0x282)][_0x22e390(0x52a)]();const _0x4f35bb=VisuMZ['BattleCore'][_0x22e390(0x5fb)]['AutoBattle'][_0x22e390(0x432)],_0x4af57c=_0x4f35bb['format'](this['okButtonText'](),this[_0x22e390(0x4e9)]()),_0x867545=this[_0x22e390(0xadf)](_0x4af57c)[_0x22e390(0x885)],_0x40e022=Math[_0x22e390(0x884)]((this[_0x22e390(0x323)]-_0x867545)/0x2);this[_0x22e390(0x5ba)](_0x4af57c,_0x40e022,0x0,_0x867545);},Window_AutoBattleCancel[_0x1cc45e(0xc0b)][_0x1cc45e(0xbf3)]=function(){const _0x4136c1=_0x1cc45e;return Imported[_0x4136c1(0x598)]?TextManager[_0x4136c1(0xac6)]('ok'):VisuMZ['BattleCore'][_0x4136c1(0x5fb)][_0x4136c1(0xac7)][_0x4136c1(0xb92)];},Window_AutoBattleCancel['prototype'][_0x1cc45e(0x4e9)]=function(){const _0x4301c7=_0x1cc45e;return Imported['VisuMZ_0_CoreEngine']?TextManager[_0x4301c7(0xac6)](_0x4301c7(0x1f7)):VisuMZ['BattleCore'][_0x4301c7(0x5fb)]['AutoBattle'][_0x4301c7(0x377)];},Window_AutoBattleCancel['prototype'][_0x1cc45e(0x90f)]=function(){const _0x29bc46=_0x1cc45e;Window_Base['prototype'][_0x29bc46(0x90f)]['call'](this),this[_0x29bc46(0x414)](),this[_0x29bc46(0x8c2)]();},Window_AutoBattleCancel['prototype'][_0x1cc45e(0x414)]=function(){const _0x1f60cf=_0x1cc45e;this[_0x1f60cf(0x9b2)]=BattleManager[_0x1f60cf(0x6a6)];},Window_AutoBattleCancel['prototype'][_0x1cc45e(0x8c2)]=function(){const _0x24a3f0=_0x1cc45e;if(!BattleManager['_autoBattle'])return;(Input[_0x24a3f0(0x9c7)]('ok')||Input[_0x24a3f0(0x9c7)](_0x24a3f0(0x1f7))||TouchInput[_0x24a3f0(0xb8c)]()||TouchInput['isCancelled']())&&(SoundManager['playCancel'](),BattleManager[_0x24a3f0(0x6a6)]=![],Input['clear'](),TouchInput['clear']());};function Window_EnemyName(){const _0xa9829a=_0x1cc45e;this[_0xa9829a(0x896)](...arguments);}Window_EnemyName[_0x1cc45e(0xc0b)]=Object[_0x1cc45e(0x6f7)](Window_StatusBase[_0x1cc45e(0xc0b)]),Window_EnemyName['prototype']['constructor']=Window_EnemyName,Window_EnemyName[_0x1cc45e(0xc0b)]['initialize']=function(_0x998def){const _0x36ef87=_0x1cc45e;this[_0x36ef87(0x5ef)]=_0x998def,this[_0x36ef87(0x384)]='';const _0x15046b=new Rectangle(0x0,0x0,Graphics[_0x36ef87(0x46e)],this[_0x36ef87(0x787)]()*0x4);Window_StatusBase[_0x36ef87(0xc0b)]['initialize'][_0x36ef87(0xa54)](this,_0x15046b),this['setBackgroundType'](0x2),this[_0x36ef87(0x874)]=0x0;},Window_EnemyName[_0x1cc45e(0xc0b)][_0x1cc45e(0x573)]=function(){this['padding']=0x0;},Window_EnemyName[_0x1cc45e(0xc0b)]['enemy']=function(){const _0x11dc72=_0x1cc45e;return $gameTroop['members']()[this[_0x11dc72(0x5ef)]];},Window_EnemyName[_0x1cc45e(0xc0b)]['update']=function(){const _0x200c39=_0x1cc45e;Window_StatusBase[_0x200c39(0xc0b)]['update'][_0x200c39(0xa54)](this),this[_0x200c39(0x48a)]()&&this[_0x200c39(0x48a)]()[_0x200c39(0xc4e)]()!==this[_0x200c39(0x384)]&&(this['_text']=this[_0x200c39(0x48a)]()[_0x200c39(0xc4e)](),this['refresh']()),this[_0x200c39(0x4ff)](),this['updatePosition']();},Window_EnemyName['prototype'][_0x1cc45e(0x4ff)]=function(){const _0x313701=_0x1cc45e;if(!this['enemy']()){if(this[_0x313701(0x874)]>0x0)this['contentsOpacity']-=0x10;}else{if(this[_0x313701(0x48a)]()[_0x313701(0x1ee)]()){if(this[_0x313701(0x874)]>0x0)this[_0x313701(0x874)]-=0x10;}else{if(SceneManager[_0x313701(0x659)]['_enemyWindow']&&SceneManager[_0x313701(0x659)][_0x313701(0xbba)][_0x313701(0x6e4)]&&SceneManager[_0x313701(0x659)][_0x313701(0xbba)]['_enemies']['includes'](this['enemy']())){if(this[_0x313701(0x874)]<0xff)this[_0x313701(0x874)]+=0x10;}else this[_0x313701(0x874)]>0x0&&(this['contentsOpacity']-=0x10);}}},Window_EnemyName[_0x1cc45e(0xc0b)]['updatePosition']=function(){const _0x31fed4=_0x1cc45e;if(!this['enemy']())return;SceneManager[_0x31fed4(0x6c0)]()?this['x']=Graphics[_0x31fed4(0x46e)]-this[_0x31fed4(0x48a)]()[_0x31fed4(0x3ba)]()['_baseX']:this['x']=this['enemy']()[_0x31fed4(0x3ba)]()['_baseX'];this['x']-=Math[_0x31fed4(0xb4b)](this[_0x31fed4(0x885)]/0x2),this['y']=this['enemy']()['battler']()[_0x31fed4(0xb2d)]-Math[_0x31fed4(0xb4b)](this[_0x31fed4(0x787)]()*1.5);const _0x5a7bbc=VisuMZ[_0x31fed4(0x2c5)][_0x31fed4(0x5fb)][_0x31fed4(0x1a9)];this['x']+=_0x5a7bbc[_0x31fed4(0x382)]||0x0,this['y']+=_0x5a7bbc[_0x31fed4(0x5b4)]||0x0;},Window_EnemyName[_0x1cc45e(0xc0b)][_0x1cc45e(0x88f)]=function(){const _0x1177c5=_0x1cc45e;Window_Base[_0x1177c5(0xc0b)]['resetFontSettings'][_0x1177c5(0xa54)](this),this[_0x1177c5(0x282)][_0x1177c5(0x5a1)]=VisuMZ[_0x1177c5(0x2c5)][_0x1177c5(0x5fb)]['Enemy'][_0x1177c5(0x463)];},Window_EnemyName[_0x1cc45e(0xc0b)]['refresh']=function(){const _0xd9f23=_0x1cc45e;Window_StatusBase[_0xd9f23(0xc0b)]['refresh']['call'](this),this[_0xd9f23(0x282)]['clear']();if(!this[_0xd9f23(0x48a)]())return;this[_0xd9f23(0x699)]();},Window_EnemyName[_0x1cc45e(0xc0b)][_0x1cc45e(0x699)]=function(){const _0x5bc186=_0x1cc45e;this[_0x5bc186(0x384)]=this['enemy']()[_0x5bc186(0xc4e)]();const _0x18b8fc=this['textSizeEx'](this[_0x5bc186(0x384)])[_0x5bc186(0x885)],_0x554d48=Math['round']((this[_0x5bc186(0x323)]-_0x18b8fc)/0x2);this['drawTextEx'](this[_0x5bc186(0x384)],_0x554d48,0x0,_0x18b8fc+0x8);},Window_BattleLog[_0x1cc45e(0xc0b)]['maxLines']=function(){const _0xc1ea86=_0x1cc45e;return VisuMZ['BattleCore'][_0xc1ea86(0x5fb)][_0xc1ea86(0x5c8)][_0xc1ea86(0xb57)];},Window_BattleLog[_0x1cc45e(0xc0b)][_0x1cc45e(0x4d6)]=function(){const _0x2e4900=_0x1cc45e;return VisuMZ[_0x2e4900(0x2c5)][_0x2e4900(0x5fb)]['BattleLog']['MessageWait'];},Window_BattleLog['prototype'][_0x1cc45e(0x9bc)]=function(){const _0x377dab=_0x1cc45e;return VisuMZ[_0x377dab(0x2c5)][_0x377dab(0x5fb)][_0x377dab(0x5c8)][_0x377dab(0x34f)];},Window_BattleLog[_0x1cc45e(0xc0b)][_0x1cc45e(0x5ea)]=function(){return![];},Window_BattleLog[_0x1cc45e(0xc0b)][_0x1cc45e(0x97b)]=function(_0x2e10ea,_0x8202e2){const _0x29e8a0=_0x1cc45e;this[_0x29e8a0(0x6a0)](_0x29e8a0(0xb78)),BattleManager[_0x29e8a0(0xa39)](_0x2e10ea,_0x8202e2),this[_0x29e8a0(0x71e)]();},Window_BattleLog[_0x1cc45e(0xc0b)][_0x1cc45e(0xbd3)]=function(_0x1d6877,_0x1b6892,_0x2a3041){const _0x3f8195=_0x1cc45e;this[_0x3f8195(0x6a0)](_0x3f8195(0xb78)),BattleManager['emulateAction'](_0x1d6877,_0x1b6892,_0x2a3041),this[_0x3f8195(0x71e)]();},Window_BattleLog[_0x1cc45e(0xc0b)][_0x1cc45e(0xb78)]=function(){this['callNextMethod']();},Window_BattleLog['prototype'][_0x1cc45e(0xca6)]=function(_0x201a4d){const _0x18202e=_0x1cc45e,_0x438690=Array[_0x18202e(0xc0b)][_0x18202e(0x937)][_0x18202e(0xa54)](arguments,0x1),_0x3e3343={'name':_0x201a4d,'params':_0x438690},_0x5dbdb7=this[_0x18202e(0xb31)]['map'](_0x3a0b24=>_0x3a0b24['name'])[_0x18202e(0x6e9)]('actionSplicePoint');_0x5dbdb7>=0x0?this[_0x18202e(0xb31)][_0x18202e(0x4da)](_0x5dbdb7,0x0,_0x3e3343):this[_0x18202e(0xb31)][_0x18202e(0xca6)](_0x3e3343);},Window_BattleLog[_0x1cc45e(0xc0b)][_0x1cc45e(0x6a0)]=function(_0xada957){const _0x1d1144=_0x1cc45e,_0x361917=Array[_0x1d1144(0xc0b)][_0x1d1144(0x937)][_0x1d1144(0xa54)](arguments,0x1);this['_methods'][_0x1d1144(0x6a0)]({'name':_0xada957,'params':_0x361917});},Window_BattleLog[_0x1cc45e(0xc0b)][_0x1cc45e(0x880)]=function(){const _0x4588f0=_0x1cc45e;if(!$gameTemp['isPlaytest']())return;console[_0x4588f0(0xbc6)](this[_0x4588f0(0xb31)][_0x4588f0(0x63c)](_0x38eed3=>_0x38eed3['name'])['join']('\x0a'));},VisuMZ['BattleCore'][_0x1cc45e(0x21e)]=Window_BattleLog[_0x1cc45e(0xc0b)]['refresh'],Window_BattleLog[_0x1cc45e(0xc0b)]['refresh']=function(){const _0x49029d=_0x1cc45e;this[_0x49029d(0x737)]=!![];},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0xb9f)]=Window_BattleLog['prototype']['update'],Window_BattleLog[_0x1cc45e(0xc0b)][_0x1cc45e(0x90f)]=function(){const _0x5358ac=_0x1cc45e;VisuMZ[_0x5358ac(0x2c5)][_0x5358ac(0xb9f)][_0x5358ac(0xa54)](this);if(this[_0x5358ac(0x737)])this[_0x5358ac(0xc34)]();},Window_BattleLog[_0x1cc45e(0xc0b)][_0x1cc45e(0xc34)]=function(){const _0x469fbf=_0x1cc45e;this['_requestRefresh']=![],VisuMZ[_0x469fbf(0x2c5)]['Window_BattleLog_refresh'][_0x469fbf(0xa54)](this);},Window_BattleLog[_0x1cc45e(0xc0b)]['drawLineText']=function(_0x1280f4){const _0xc0315=_0x1cc45e;let _0x353e4f=VisuMZ[_0xc0315(0x2c5)][_0xc0315(0x5fb)][_0xc0315(0x5c8)]['TextAlign'][_0xc0315(0xbb5)]()['trim'](),_0x3b2c0c=this['_lines'][_0x1280f4];if(_0x3b2c0c[_0xc0315(0xc6a)](/<LEFT>/i))_0x353e4f='left';else{if(_0x3b2c0c['match'](/<CENTER>/i))_0x353e4f='center';else _0x3b2c0c[_0xc0315(0xc6a)](/<RIGHT>/i)&&(_0x353e4f='right');}_0x3b2c0c=_0x3b2c0c[_0xc0315(0x403)](/<(?:LEFT|CENTER|RIGHT)>/gi,''),_0x3b2c0c=_0x3b2c0c[_0xc0315(0x403)](/\\I\[0\]/gi,'');const _0x636714=this[_0xc0315(0x2a7)](_0x1280f4);this[_0xc0315(0x282)][_0xc0315(0x8ef)](_0x636714['x'],_0x636714['y'],_0x636714[_0xc0315(0x885)],_0x636714[_0xc0315(0x20f)]);const _0x293bee=this[_0xc0315(0xadf)](_0x3b2c0c)[_0xc0315(0x885)];let _0x3f9d83=_0x636714['x'];if(_0x353e4f==='center')_0x3f9d83+=(_0x636714[_0xc0315(0x885)]-_0x293bee)/0x2;else _0x353e4f===_0xc0315(0x7a3)&&(_0x3f9d83+=_0x636714[_0xc0315(0x885)]-_0x293bee);this['drawTextEx'](_0x3b2c0c,_0x3f9d83,_0x636714['y'],_0x293bee+0x8);},Window_BattleLog[_0x1cc45e(0xc0b)][_0x1cc45e(0x64e)]=function(_0x1a2f55){const _0x54da62=_0x1cc45e;this[_0x54da62(0x38e)][_0x54da62(0xca6)](_0x1a2f55),this[_0x54da62(0x299)](),this[_0x54da62(0x71e)]();},Window_BattleLog[_0x1cc45e(0xc0b)][_0x1cc45e(0xd04)]=function(){const _0x3e51dc=_0x1cc45e;let _0x228af5=![];switch(this[_0x3e51dc(0x7ec)]){case _0x3e51dc(0x29a):_0x228af5=this['_spriteset']['isEffecting']();break;case _0x3e51dc(0x741):_0x228af5=this['_spriteset'][_0x3e51dc(0xa5c)]();break;case'animation':_0x228af5=this['_spriteset'][_0x3e51dc(0x73a)]();break;case _0x3e51dc(0x5ad):_0x228af5=this[_0x3e51dc(0x2e6)]['isAnyoneFloating']();break;case _0x3e51dc(0x4ba):_0x228af5=this['_spriteset']['isAnyoneJumping']();break;case _0x3e51dc(0x2f3):_0x228af5=this['_spriteset'][_0x3e51dc(0xc4b)]();break;}return!_0x228af5&&(this[_0x3e51dc(0x7ec)]=''),_0x228af5;},Window_BattleLog[_0x1cc45e(0xc0b)][_0x1cc45e(0x9aa)]=function(){const _0x12b322=_0x1cc45e;this[_0x12b322(0xb13)](_0x12b322(0xa3c));},Window_BattleLog[_0x1cc45e(0xc0b)][_0x1cc45e(0xbce)]=function(){const _0x134c64=_0x1cc45e;this[_0x134c64(0xb13)](_0x134c64(0x5ad));},Window_BattleLog[_0x1cc45e(0xc0b)][_0x1cc45e(0xbb3)]=function(){const _0x3459ce=_0x1cc45e;this[_0x3459ce(0xb13)](_0x3459ce(0x4ba));},Window_BattleLog[_0x1cc45e(0xc0b)][_0x1cc45e(0x444)]=function(){const _0x14ce1f=_0x1cc45e;this['setWaitMode'](_0x14ce1f(0x2f3));},Window_BattleLog[_0x1cc45e(0xc0b)]['startTurn']=function(){const _0x1c5fc0=_0x1cc45e,_0xe6d449=VisuMZ['BattleCore'][_0x1c5fc0(0x5fb)][_0x1c5fc0(0x5c8)];if(!_0xe6d449[_0x1c5fc0(0x747)])return;this[_0x1c5fc0(0xca6)](_0x1c5fc0(0x64e),_0xe6d449['StartTurnMsg'][_0x1c5fc0(0x65c)]($gameTroop[_0x1c5fc0(0xcfc)]())),this[_0x1c5fc0(0xca6)]('waitCount',_0xe6d449[_0x1c5fc0(0x6cd)]),this[_0x1c5fc0(0xca6)]('clear');};var $subject,$action,$targets;Window_BattleLog[_0x1cc45e(0xc0b)]['startAction']=function(_0x242490,_0x5903bb,_0x22f605){$subject=_0x242490,$action=_0x5903bb,$targets=_0x22f605,this['isCustomActionSequence'](_0x5903bb)?BattleManager['prepareCustomActionSequence']():this['usePremadeActionSequence'](_0x242490,_0x5903bb,_0x22f605);},Window_BattleLog['prototype'][_0x1cc45e(0x5b2)]=function(_0x123663){const _0x185e54=_0x1cc45e;if(!SceneManager['isSceneBattle']())return![];if(!_0x123663)return![];if(!_0x123663[_0x185e54(0x904)]())return![];if(_0x123663[_0x185e54(0x904)]()['note'][_0x185e54(0xc6a)](/<CUSTOM ACTION SEQUENCE>/i))return!![];if(DataManager['checkAutoCustomActionSequenceNotetagEffect'](_0x123663[_0x185e54(0x904)]()))return!![];return![];},Window_BattleLog[_0x1cc45e(0xc0b)][_0x1cc45e(0x64f)]=function(_0x173516,_0x297bd2,_0x2ee2ef){const _0x1e56b0=_0x1cc45e;this[_0x1e56b0(0xc2d)](_0x173516,_0x297bd2,_0x2ee2ef),this[_0x1e56b0(0xa91)](_0x173516,_0x297bd2,_0x2ee2ef),this['finishActionSet'](_0x173516,_0x297bd2,_0x2ee2ef);},Window_BattleLog[_0x1cc45e(0xc0b)][_0x1cc45e(0x4df)]=function(_0x11540f,_0x3389a4){const _0x269a0b=_0x1cc45e,_0x532614=VisuMZ[_0x269a0b(0x2c5)]['Settings'][_0x269a0b(0x5c8)];_0x532614[_0x269a0b(0xceb)]&&this[_0x269a0b(0xca6)]('addText',_0x269a0b(0xbc1)[_0x269a0b(0x65c)](DataManager['battleDisplayText'](_0x3389a4)));if(DataManager[_0x269a0b(0x2b1)](_0x3389a4)){if(_0x532614[_0x269a0b(0x2c6)])this[_0x269a0b(0xa26)](_0x3389a4[_0x269a0b(0xbbc)],_0x11540f,_0x3389a4);if(_0x532614[_0x269a0b(0x312)])this[_0x269a0b(0xa26)](_0x3389a4['message2'],_0x11540f,_0x3389a4);}else{if(_0x532614[_0x269a0b(0x5ed)])this['displayItemMessage'](TextManager[_0x269a0b(0x5d9)],_0x11540f,_0x3389a4);}},Window_BattleLog[_0x1cc45e(0xc0b)][_0x1cc45e(0xc2d)]=function(_0x1cc64a,_0x34cdf4,_0x2c89f9){const _0x40738e=_0x1cc45e,_0x59793e=_0x34cdf4['item']();this[_0x40738e(0x4df)](_0x1cc64a,_0x59793e),this['push'](_0x40738e(0xc89),_0x1cc64a,_0x2c89f9,!![]),this[_0x40738e(0xca6)](_0x40738e(0xb0a),_0x1cc64a,_0x34cdf4),this[_0x40738e(0xca6)]('waitForMovement'),this[_0x40738e(0xca6)](_0x40738e(0x6da),_0x1cc64a,_0x34cdf4),this[_0x40738e(0xca6)](_0x40738e(0x9aa));},Window_BattleLog['prototype'][_0x1cc45e(0xa91)]=function(_0x19db21,_0x511a66,_0x80a6f1){const _0x441053=_0x1cc45e;if(this[_0x441053(0x40f)](_0x511a66))this[_0x441053(0xc95)](_0x19db21,_0x511a66,_0x80a6f1);else{if(this[_0x441053(0x9b9)](_0x511a66))this[_0x441053(0x429)](_0x19db21,_0x511a66,_0x80a6f1);else _0x511a66[_0x441053(0x728)]()?this[_0x441053(0x6eb)](_0x19db21,_0x511a66,_0x80a6f1):this[_0x441053(0x4bd)](_0x19db21,_0x511a66,_0x80a6f1);}},Window_BattleLog['prototype'][_0x1cc45e(0x9ad)]=function(_0x1dfa90,_0x466447,_0x17c866,_0x9a952e){const _0x17042d=_0x1cc45e;if(_0x466447){const _0x35435a=_0x1dfa90['battler']();this[_0x17042d(0xca6)]('performJump',[_0x1dfa90],_0x17c866,_0x9a952e),this['push'](_0x17042d(0x448),_0x1dfa90,_0x35435a['_homeX'],_0x35435a[_0x17042d(0x45b)],_0x9a952e,![],_0x17042d(0xbfc)),this[_0x17042d(0xca6)](_0x17042d(0x9a8),[_0x1dfa90],_0x17042d(0x478)),this['push'](_0x17042d(0x1ac)),this[_0x17042d(0xca6)](_0x17042d(0x9a8),[_0x1dfa90],_0x17042d(0x7a0));}},Window_BattleLog[_0x1cc45e(0xc0b)][_0x1cc45e(0x40f)]=function(_0x2caa69){const _0x1e90af=_0x1cc45e;if(!_0x2caa69[_0x1e90af(0xa86)]())return![];if(!_0x2caa69[_0x1e90af(0x3e6)]())return![];if(!_0x2caa69[_0x1e90af(0x6ef)]())return![];return VisuMZ[_0x1e90af(0x2c5)][_0x1e90af(0x5fb)][_0x1e90af(0xc01)][_0x1e90af(0xaa6)];},Window_BattleLog[_0x1cc45e(0xc0b)][_0x1cc45e(0xc95)]=function(_0x112a62,_0x5cffd0,_0x1db4ad){const _0x3a101a=_0x1cc45e,_0xabe7a9=_0x112a62[_0x3a101a(0x759)]()['type']<0x2,_0x210679=0x14,_0x2cd30d=0x30;let _0x5d87e5=!![];_0x1db4ad['length']>0x0&&_0x112a62['isActor']()===_0x1db4ad[0x0][_0x3a101a(0x864)]()&&(_0x5d87e5=![]);_0xabe7a9&&_0x5d87e5&&(this['push'](_0x3a101a(0x64a),[_0x112a62],_0x2cd30d,_0x210679),this[_0x3a101a(0xca6)]('performMoveToTargets',_0x112a62,_0x1db4ad,_0x3a101a(0xa23),_0x210679,!![],_0x3a101a(0xbfc),!![]),this[_0x3a101a(0xca6)](_0x3a101a(0x9a8),[_0x112a62],_0x3a101a(0x7a0)),this[_0x3a101a(0xca6)](_0x3a101a(0x1ac)));let _0x274282=_0x5cffd0['isAttack']()?this[_0x3a101a(0xcf5)](_0x112a62):0x1;for(let _0x582d01=0x0;_0x582d01<_0x274282;_0x582d01++){_0x5cffd0[_0x3a101a(0x9b7)]()&&_0x112a62[_0x3a101a(0x864)]()&&this[_0x3a101a(0xca6)]('setActiveWeaponSet',_0x112a62,_0x582d01),_0x5cffd0[_0x3a101a(0x904)]()[_0x3a101a(0x1c8)]<0x0?this['targetActionSet'](_0x112a62,_0x5cffd0,_0x1db4ad):this[_0x3a101a(0x4bd)](_0x112a62,_0x5cffd0,_0x1db4ad);}_0x5cffd0[_0x3a101a(0x9b7)]()&&_0x112a62[_0x3a101a(0x864)]()&&this['push'](_0x3a101a(0x8fb),_0x112a62),this[_0x3a101a(0xca6)]('applyImmortal',_0x112a62,_0x1db4ad,![]),this[_0x3a101a(0x9ad)](_0x112a62,_0xabe7a9,_0x2cd30d,_0x210679);},Window_BattleLog[_0x1cc45e(0xc0b)][_0x1cc45e(0x9b9)]=function(_0x209150){const _0x165cbe=_0x1cc45e;if(!_0x209150[_0x165cbe(0xa86)]())return![];if(!_0x209150['isForAll']())return![];if(!_0x209150[_0x165cbe(0x6ef)]())return![];return VisuMZ['BattleCore'][_0x165cbe(0x5fb)]['ActionSequence'][_0x165cbe(0x496)];},Window_BattleLog[_0x1cc45e(0xc0b)]['autoMeleeMultiTargetActionSet']=function(_0x4941bb,_0x432280,_0x175e82){const _0x525d3a=_0x1cc45e,_0x4064be=_0x4941bb[_0x525d3a(0x759)]()[_0x525d3a(0x729)]<0x2,_0x146bf0=0x14,_0x515065=0x30;if(_0x4064be){this['push'](_0x525d3a(0x64a),[_0x4941bb],_0x515065,_0x146bf0);const _0x9ef5fb=_0x175e82[_0x525d3a(0x96d)]>0x1?_0x525d3a(0x6f1):_0x525d3a(0xa23);this['push'](_0x525d3a(0xaae),_0x4941bb,_0x175e82,_0x9ef5fb,_0x146bf0,!![],_0x525d3a(0xbfc),!![]),this[_0x525d3a(0xca6)](_0x525d3a(0x9a8),[_0x4941bb],_0x525d3a(0x7a0)),this['push'](_0x525d3a(0x1ac));}let _0x2f3cdb=_0x432280[_0x525d3a(0x9b7)]()?this['getDualWieldTimes'](_0x4941bb):0x1;for(let _0x5ac149=0x0;_0x5ac149<_0x2f3cdb;_0x5ac149++){_0x432280[_0x525d3a(0x9b7)]()&&_0x4941bb[_0x525d3a(0x864)]()&&this[_0x525d3a(0xca6)](_0x525d3a(0x462),_0x4941bb,_0x5ac149),this[_0x525d3a(0x4bd)](_0x4941bb,_0x432280,_0x175e82);}_0x432280[_0x525d3a(0x9b7)]()&&_0x4941bb[_0x525d3a(0x864)]()&&this[_0x525d3a(0xca6)](_0x525d3a(0x8fb),_0x4941bb),this[_0x525d3a(0xca6)](_0x525d3a(0xc89),_0x4941bb,_0x175e82,![]),this[_0x525d3a(0x9ad)](_0x4941bb,_0x4064be,_0x515065,_0x146bf0);},Window_BattleLog[_0x1cc45e(0xc0b)][_0x1cc45e(0x6eb)]=function(_0x1869c5,_0x475628,_0x485948){const _0x1da018=_0x1cc45e,_0x296522=_0x475628[_0x1da018(0x904)]();for(const _0x19aa6d of _0x485948){if(!_0x19aa6d)continue;this[_0x1da018(0xca6)]('performAction',_0x1869c5,_0x475628),this[_0x1da018(0xca6)](_0x1da018(0xb9e),Sprite_Battler[_0x1da018(0x4ca)]),this['push'](_0x1da018(0x4dc),_0x1869c5,[_0x19aa6d],_0x296522[_0x1da018(0x1c8)]),this[_0x1da018(0xca6)](_0x1da018(0xb9e),0x18),this[_0x1da018(0xca6)](_0x1da018(0x97b),_0x1869c5,_0x19aa6d);}},Window_BattleLog[_0x1cc45e(0xc0b)]['wholeActionSet']=function(_0x3c156a,_0x37ab42,_0x527a99){const _0x48ff36=_0x1cc45e,_0x1d3fef=_0x37ab42[_0x48ff36(0x904)]();let _0x47f727=_0x37ab42[_0x48ff36(0x9b7)]()?0x1+_0x3c156a['attackTimesAdd']():0x1;while(_0x47f727--){this[_0x48ff36(0xca6)](_0x48ff36(0x59b),_0x3c156a,_0x37ab42),this[_0x48ff36(0xca6)](_0x48ff36(0xb9e),Sprite_Battler[_0x48ff36(0x4ca)]),this['push']('showAnimation',_0x3c156a,_0x527a99['clone'](),_0x1d3fef['animationId']),this[_0x48ff36(0xca6)](_0x48ff36(0x9aa));}for(const _0x2f9f21 of _0x527a99){if(!_0x2f9f21)continue;this[_0x48ff36(0xca6)]('actionEffect',_0x3c156a,_0x2f9f21);}},Window_BattleLog[_0x1cc45e(0xc0b)][_0x1cc45e(0x673)]=function(_0x390427,_0x1db3e4,_0xb1919b){const _0x6f62ec=_0x1cc45e,_0x497ffa=_0x1db3e4['item']();this['push'](_0x6f62ec(0xc89),_0x390427,_0xb1919b,![]),this[_0x6f62ec(0xca6)](_0x6f62ec(0x36c)),this[_0x6f62ec(0xca6)]('waitForEffect'),this[_0x6f62ec(0xca6)]('clear'),this[_0x6f62ec(0xca6)](_0x6f62ec(0x85f),_0x390427),this[_0x6f62ec(0xca6)](_0x6f62ec(0x1ac));},Window_BattleLog[_0x1cc45e(0xc0b)][_0x1cc45e(0x2ea)]=function(_0xa14e87){$subject=null,$action=null,$targets=[];},VisuMZ['BattleCore'][_0x1cc45e(0x5de)]=Window_BattleLog['prototype']['displayCurrentState'],Window_BattleLog[_0x1cc45e(0xc0b)][_0x1cc45e(0xd02)]=function(_0x50e8b4){const _0x4cd875=_0x1cc45e;if(!VisuMZ[_0x4cd875(0x2c5)][_0x4cd875(0x5fb)][_0x4cd875(0x5c8)][_0x4cd875(0x222)])return;VisuMZ['BattleCore'][_0x4cd875(0x5de)][_0x4cd875(0xa54)](this,_0x50e8b4);},Window_BattleLog[_0x1cc45e(0xc0b)][_0x1cc45e(0x67a)]=function(_0x2d93ce){const _0x22fab5=_0x1cc45e;this[_0x22fab5(0xca6)](_0x22fab5(0x45a),_0x2d93ce);VisuMZ[_0x22fab5(0x2c5)]['Settings'][_0x22fab5(0xc01)][_0x22fab5(0x840)]&&this[_0x22fab5(0xca6)](_0x22fab5(0x4dc),_0x2d93ce,[BattleManager[_0x22fab5(0x301)]],-0x1);if(!VisuMZ['BattleCore'][_0x22fab5(0x5fb)][_0x22fab5(0x5c8)]['ShowCounter'])return;this[_0x22fab5(0xca6)](_0x22fab5(0x64e),TextManager[_0x22fab5(0x676)][_0x22fab5(0x65c)](_0x2d93ce[_0x22fab5(0xc4e)]()));const _0x3da48c=VisuMZ['BattleCore'][_0x22fab5(0x5fb)][_0x22fab5(0x5c8)][_0x22fab5(0xba6)]??0x0;if(_0x3da48c>0x0)this[_0x22fab5(0xca6)]('waitCount',_0x3da48c);;},Window_BattleLog[_0x1cc45e(0xc0b)][_0x1cc45e(0x600)]=function(_0x393ac1){const _0x1f3cd7=_0x1cc45e;this[_0x1f3cd7(0xca6)]('performReflection',_0x393ac1);if(!VisuMZ[_0x1f3cd7(0x2c5)][_0x1f3cd7(0x5fb)]['BattleLog'][_0x1f3cd7(0x3c8)])return;this[_0x1f3cd7(0xca6)]('addText',TextManager[_0x1f3cd7(0xb56)][_0x1f3cd7(0x65c)](_0x393ac1[_0x1f3cd7(0xc4e)]()));const _0x3d44ff=VisuMZ['BattleCore'][_0x1f3cd7(0x5fb)][_0x1f3cd7(0x5c8)][_0x1f3cd7(0xb09)]??0x0;if(_0x3d44ff>0x0)this[_0x1f3cd7(0xca6)]('waitCount',_0x3d44ff);;},Window_BattleLog[_0x1cc45e(0xc0b)][_0x1cc45e(0x76f)]=function(_0x5136e4,_0x576760){const _0xf262ee=_0x1cc45e;if(VisuMZ[_0xf262ee(0x2c5)][_0xf262ee(0x5fb)][_0xf262ee(0xc01)][_0xf262ee(0x37e)]){const _0x315b6e=_0x576760[_0xf262ee(0x904)]();this[_0xf262ee(0xca6)](_0xf262ee(0x4dc),_0x5136e4,[_0x5136e4],_0x315b6e[_0xf262ee(0x1c8)]);}},Window_BattleLog[_0x1cc45e(0xc0b)][_0x1cc45e(0x5a5)]=function(_0xdcb12f,_0x149a19){const _0x43d372=_0x1cc45e;this[_0x43d372(0xca6)]('performSubstitute',_0xdcb12f,_0x149a19);if(!VisuMZ[_0x43d372(0x2c5)][_0x43d372(0x5fb)][_0x43d372(0x5c8)][_0x43d372(0x2db)])return;const _0x1ac02a=_0xdcb12f[_0x43d372(0xc4e)](),_0x3a0b66=TextManager[_0x43d372(0x2ca)]['format'](_0x1ac02a,_0x149a19['name']());this[_0x43d372(0xca6)](_0x43d372(0x64e),_0x3a0b66);const _0x437203=VisuMZ[_0x43d372(0x2c5)][_0x43d372(0x5fb)][_0x43d372(0x5c8)][_0x43d372(0x420)]??0x0;if(_0x437203>0x0)this[_0x43d372(0xca6)](_0x43d372(0xb9e),_0x437203);;},VisuMZ[_0x1cc45e(0x2c5)]['Window_BattleLog_displayActionResults']=Window_BattleLog[_0x1cc45e(0xc0b)][_0x1cc45e(0xcbb)],Window_BattleLog[_0x1cc45e(0xc0b)]['displayActionResults']=function(_0x4d2144,_0x3067f5){VisuMZ['BattleCore']['Window_BattleLog_displayActionResults']['call'](this,_0x4d2144,_0x3067f5);},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0xbd5)]=Window_BattleLog['prototype'][_0x1cc45e(0x28b)],Window_BattleLog[_0x1cc45e(0xc0b)][_0x1cc45e(0x28b)]=function(_0x465578){const _0x3603ec=_0x1cc45e;if(!VisuMZ[_0x3603ec(0x2c5)]['Settings'][_0x3603ec(0x5c8)]['ShowFailure'])return;VisuMZ[_0x3603ec(0x2c5)][_0x3603ec(0xbd5)][_0x3603ec(0xa54)](this,_0x465578);},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x2da)]=Window_BattleLog[_0x1cc45e(0xc0b)][_0x1cc45e(0xcf7)],Window_BattleLog[_0x1cc45e(0xc0b)][_0x1cc45e(0xcf7)]=function(_0x342b8b){const _0x443d27=_0x1cc45e;if(!VisuMZ['BattleCore']['Settings'][_0x443d27(0x5c8)][_0x443d27(0x226)])return;VisuMZ[_0x443d27(0x2c5)][_0x443d27(0x2da)]['call'](this,_0x342b8b);},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x6c3)]=Window_BattleLog['prototype'][_0x1cc45e(0xa6a)],Window_BattleLog[_0x1cc45e(0xc0b)][_0x1cc45e(0xa6a)]=function(_0x28942a){const _0x11ac09=_0x1cc45e;!VisuMZ[_0x11ac09(0x2c5)][_0x11ac09(0x5fb)]['BattleLog'][_0x11ac09(0xcbf)]?this[_0x11ac09(0xca6)]('performMiss',_0x28942a):VisuMZ[_0x11ac09(0x2c5)][_0x11ac09(0x6c3)][_0x11ac09(0xa54)](this,_0x28942a);},VisuMZ['BattleCore'][_0x1cc45e(0x336)]=Window_BattleLog[_0x1cc45e(0xc0b)][_0x1cc45e(0x294)],Window_BattleLog[_0x1cc45e(0xc0b)][_0x1cc45e(0x294)]=function(_0x126be7){const _0x169e59=_0x1cc45e;!VisuMZ[_0x169e59(0x2c5)][_0x169e59(0x5fb)]['BattleLog'][_0x169e59(0xcbf)]?_0x126be7[_0x169e59(0x75f)]()[_0x169e59(0xae4)]?this[_0x169e59(0xca6)](_0x169e59(0xbe7),_0x126be7):this[_0x169e59(0xca6)](_0x169e59(0x587),_0x126be7):VisuMZ[_0x169e59(0x2c5)]['Window_BattleLog_displayEvasion'][_0x169e59(0xa54)](this,_0x126be7);},Window_BattleLog[_0x1cc45e(0xc0b)][_0x1cc45e(0x30d)]=function(_0x5c506f){const _0x4fef5f=_0x1cc45e;_0x5c506f[_0x4fef5f(0x4fb)]=0x0,_0x5c506f[_0x4fef5f(0x75f)]()['hpAffected']&&(_0x5c506f[_0x4fef5f(0x75f)]()[_0x4fef5f(0x8b4)]>0x0&&!_0x5c506f['result']()[_0x4fef5f(0x56b)]&&(_0x5c506f[_0x4fef5f(0x4fb)]=_0x5c506f[_0x4fef5f(0x75f)]()[_0x4fef5f(0x8b4)],this[_0x4fef5f(0xca6)](_0x4fef5f(0x725),_0x5c506f)),_0x5c506f[_0x4fef5f(0x75f)]()[_0x4fef5f(0x8b4)]<0x0&&this['push'](_0x4fef5f(0x63b),_0x5c506f),VisuMZ[_0x4fef5f(0x2c5)][_0x4fef5f(0x5fb)][_0x4fef5f(0x5c8)][_0x4fef5f(0x94c)]&&this[_0x4fef5f(0xca6)](_0x4fef5f(0x64e),this[_0x4fef5f(0x334)](_0x5c506f)));},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x231)]=Window_BattleLog['prototype'][_0x1cc45e(0xc9a)],Window_BattleLog['prototype'][_0x1cc45e(0xc9a)]=function(_0x56e286){const _0x10f9fb=_0x1cc45e;_0x56e286[_0x10f9fb(0x3df)]=0x0;$action&&$action['item']()&&$action[_0x10f9fb(0x904)]()[_0x10f9fb(0xbe6)]['match'](/<(?:DAMAGE|DMG|SHAKE) FLINCH>/i)&&(_0x56e286[_0x10f9fb(0x75f)]()['mpDamage']>0x0&&!_0x56e286[_0x10f9fb(0x75f)]()[_0x10f9fb(0x56b)]&&(_0x56e286[_0x10f9fb(0x3df)]=_0x56e286[_0x10f9fb(0x75f)]()[_0x10f9fb(0x30e)],this[_0x10f9fb(0xca6)](_0x10f9fb(0x725),_0x56e286)));if(!VisuMZ['BattleCore'][_0x10f9fb(0x5fb)]['BattleLog'][_0x10f9fb(0xa72)])return;VisuMZ[_0x10f9fb(0x2c5)][_0x10f9fb(0x231)][_0x10f9fb(0xa54)](this,_0x56e286);},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x253)]=Window_BattleLog[_0x1cc45e(0xc0b)][_0x1cc45e(0xbd4)],Window_BattleLog[_0x1cc45e(0xc0b)][_0x1cc45e(0xbd4)]=function(_0x4db2f8){const _0x15eac9=_0x1cc45e;_0x4db2f8[_0x15eac9(0x286)]=0x0;$action&&$action['item']()&&$action['item']()[_0x15eac9(0xbe6)][_0x15eac9(0xc6a)](/<(?:DAMAGE|DMG|SHAKE) FLINCH>/i)&&(_0x4db2f8[_0x15eac9(0x75f)]()[_0x15eac9(0x5c4)]>0x0&&(_0x4db2f8[_0x15eac9(0x286)]=_0x4db2f8[_0x15eac9(0x75f)]()[_0x15eac9(0x5c4)],this[_0x15eac9(0xca6)](_0x15eac9(0x725),_0x4db2f8)));if(!VisuMZ[_0x15eac9(0x2c5)][_0x15eac9(0x5fb)][_0x15eac9(0x5c8)][_0x15eac9(0x723)])return;VisuMZ[_0x15eac9(0x2c5)]['Window_BattleLog_displayTpDamage'][_0x15eac9(0xa54)](this,_0x4db2f8);},Window_BattleLog[_0x1cc45e(0xc0b)][_0x1cc45e(0xb39)]=function(_0x3133a4){const _0x43abbf=_0x1cc45e;_0x3133a4[_0x43abbf(0x75f)]()[_0x43abbf(0x407)]()&&(this[_0x43abbf(0xca6)](_0x43abbf(0x58c)),this[_0x43abbf(0xaba)](_0x3133a4),this[_0x43abbf(0x8e3)](_0x3133a4),this['push'](_0x43abbf(0x36c)));},Window_BattleLog[_0x1cc45e(0xc0b)][_0x1cc45e(0x2c1)]=function(_0x4189bd){const _0x29c025=_0x1cc45e,_0x1a1c89=_0x4189bd[_0x29c025(0x75f)](),_0x54f3da=_0x1a1c89[_0x29c025(0x4ce)]();for(const _0x5a22a1 of _0x54f3da){const _0x2db7bc=_0x4189bd['isActor']()?_0x5a22a1[_0x29c025(0xbbc)]:_0x5a22a1[_0x29c025(0xabb)];_0x2db7bc&&VisuMZ['BattleCore']['Settings']['BattleLog'][_0x29c025(0x89e)]&&(this[_0x29c025(0xca6)](_0x29c025(0x398)),this[_0x29c025(0xca6)](_0x29c025(0x58c)),this[_0x29c025(0xca6)](_0x29c025(0x64e),_0x2db7bc['format'](_0x4189bd[_0x29c025(0xc4e)]())),this['push'](_0x29c025(0x8f9))),_0x5a22a1['id']===_0x4189bd['deathStateId']()&&this[_0x29c025(0xca6)](_0x29c025(0xcc2),_0x4189bd);}},Window_BattleLog[_0x1cc45e(0xc0b)][_0x1cc45e(0x34d)]=function(_0x48b6d6){const _0x2ef4c8=_0x1cc45e;if(!VisuMZ[_0x2ef4c8(0x2c5)]['Settings'][_0x2ef4c8(0x5c8)][_0x2ef4c8(0xba2)])return;const _0x5d3737=_0x48b6d6['result'](),_0x4b21ef=_0x5d3737[_0x2ef4c8(0x55b)]();for(const _0x23c587 of _0x4b21ef){_0x23c587[_0x2ef4c8(0x806)]&&(this[_0x2ef4c8(0xca6)](_0x2ef4c8(0x398)),this[_0x2ef4c8(0xca6)](_0x2ef4c8(0x58c)),this[_0x2ef4c8(0xca6)]('addText',_0x23c587[_0x2ef4c8(0x806)][_0x2ef4c8(0x65c)](_0x48b6d6[_0x2ef4c8(0xc4e)]())),this['push'](_0x2ef4c8(0x8f9)));}},Window_BattleLog['prototype']['displayChangedBuffs']=function(_0x3f93f4){const _0x7c6cae=_0x1cc45e,_0xa3d410=VisuMZ['BattleCore'][_0x7c6cae(0x5fb)][_0x7c6cae(0x5c8)],_0x3157ad=_0x3f93f4[_0x7c6cae(0x75f)]();if(_0xa3d410[_0x7c6cae(0x6d3)])this[_0x7c6cae(0x359)](_0x3f93f4,_0x3157ad[_0x7c6cae(0x643)],TextManager[_0x7c6cae(0xc2b)]);if(_0xa3d410[_0x7c6cae(0x364)])this['displayBuffs'](_0x3f93f4,_0x3157ad[_0x7c6cae(0x6c8)],TextManager['debuffAdd']);if(_0xa3d410['ShowRemovedBuff'])this[_0x7c6cae(0x359)](_0x3f93f4,_0x3157ad[_0x7c6cae(0x445)],TextManager['buffRemove']);},Window_BattleLog[_0x1cc45e(0xc0b)][_0x1cc45e(0x359)]=function(_0x1ab056,_0x5aea55,_0x3e1341){const _0x4605b3=_0x1cc45e;for(const _0x3e7bae of _0x5aea55){const _0x38a7b6=_0x3e1341['format'](_0x1ab056['name'](),TextManager[_0x4605b3(0xd07)](_0x3e7bae));this['push']('popBaseLine'),this[_0x4605b3(0xca6)](_0x4605b3(0x58c)),this['push'](_0x4605b3(0x64e),_0x38a7b6),this[_0x4605b3(0xca6)](_0x4605b3(0x8f9));}},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x221)]=Window_BattleLog['prototype'][_0x1cc45e(0x52a)],Window_BattleLog[_0x1cc45e(0xc0b)][_0x1cc45e(0x52a)]=function(){const _0x2ff790=_0x1cc45e;VisuMZ[_0x2ff790(0x2c5)][_0x2ff790(0x221)][_0x2ff790(0xa54)](this),this[_0x2ff790(0x71e)]();},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x81c)]=Window_BattleLog[_0x1cc45e(0xc0b)][_0x1cc45e(0x58c)],Window_BattleLog[_0x1cc45e(0xc0b)][_0x1cc45e(0x58c)]=function(){const _0x54a35a=_0x1cc45e;VisuMZ[_0x54a35a(0x2c5)][_0x54a35a(0x81c)]['call'](this),this[_0x54a35a(0x71e)]();},VisuMZ['BattleCore']['Window_BattleLog_popBaseLine']=Window_BattleLog[_0x1cc45e(0xc0b)][_0x1cc45e(0x398)],Window_BattleLog[_0x1cc45e(0xc0b)]['popBaseLine']=function(){const _0x42a8de=_0x1cc45e;VisuMZ[_0x42a8de(0x2c5)][_0x42a8de(0x267)][_0x42a8de(0xa54)](this),this['processRefresh'](),this[_0x42a8de(0x71e)]();},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x535)]=Window_BattleLog[_0x1cc45e(0xc0b)]['popupDamage'],Window_BattleLog[_0x1cc45e(0xc0b)]['popupDamage']=function(_0x30bebd){const _0x363781=_0x1cc45e;VisuMZ[_0x363781(0x2c5)][_0x363781(0x535)][_0x363781(0xa54)](this,_0x30bebd),this[_0x363781(0x71e)]();},Window_BattleLog['prototype']['waitForNewLine']=function(){const _0x21cc4e=_0x1cc45e;let _0x58fd70=0x0;this[_0x21cc4e(0x9c6)][_0x21cc4e(0x96d)]>0x0&&(_0x58fd70=this['_baseLineStack'][this[_0x21cc4e(0x9c6)][_0x21cc4e(0x96d)]-0x1]),this[_0x21cc4e(0x38e)][_0x21cc4e(0x96d)]>_0x58fd70?this[_0x21cc4e(0x8f9)]():this['callNextMethod']();},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x21f)]=Window_BattleLog[_0x1cc45e(0xc0b)][_0x1cc45e(0xb0a)],Window_BattleLog[_0x1cc45e(0xc0b)][_0x1cc45e(0xb0a)]=function(_0x386964,_0x5d6eea){const _0x2eb8d6=_0x1cc45e;VisuMZ[_0x2eb8d6(0x2c5)]['Window_BattleLog_performActionStart']['call'](this,_0x386964,_0x5d6eea),this[_0x2eb8d6(0x71e)]();},VisuMZ[_0x1cc45e(0x2c5)]['Window_BattleLog_performAction']=Window_BattleLog[_0x1cc45e(0xc0b)][_0x1cc45e(0x59b)],Window_BattleLog[_0x1cc45e(0xc0b)][_0x1cc45e(0x59b)]=function(_0xd1c75c,_0x502d24){const _0x39e68c=_0x1cc45e;VisuMZ['BattleCore'][_0x39e68c(0x62f)][_0x39e68c(0xa54)](this,_0xd1c75c,_0x502d24),this[_0x39e68c(0x71e)]();},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x2f5)]=Window_BattleLog[_0x1cc45e(0xc0b)][_0x1cc45e(0x85f)],Window_BattleLog[_0x1cc45e(0xc0b)][_0x1cc45e(0x85f)]=function(_0x58809c){const _0x3a5082=_0x1cc45e;VisuMZ[_0x3a5082(0x2c5)]['Window_BattleLog_performActionEnd'][_0x3a5082(0xa54)](this,_0x58809c);for(const _0xde2765 of BattleManager[_0x3a5082(0xb3c)]()){if(!_0xde2765)continue;if(_0xde2765[_0x3a5082(0x1ee)]())continue;_0xde2765[_0x3a5082(0xad6)]();}this[_0x3a5082(0x71e)]();},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x438)]=Window_BattleLog[_0x1cc45e(0xc0b)][_0x1cc45e(0x725)],Window_BattleLog[_0x1cc45e(0xc0b)][_0x1cc45e(0x725)]=function(_0xc7b91){const _0x5b94a7=_0x1cc45e;VisuMZ[_0x5b94a7(0x2c5)][_0x5b94a7(0x438)][_0x5b94a7(0xa54)](this,_0xc7b91),this[_0x5b94a7(0x71e)]();},VisuMZ[_0x1cc45e(0x2c5)]['Window_BattleLog_performMiss']=Window_BattleLog[_0x1cc45e(0xc0b)]['performMiss'],Window_BattleLog[_0x1cc45e(0xc0b)][_0x1cc45e(0x7b1)]=function(_0x321b13){const _0x81fb89=_0x1cc45e;VisuMZ['BattleCore']['Window_BattleLog_performMiss']['call'](this,_0x321b13),this[_0x81fb89(0x71e)]();},VisuMZ[_0x1cc45e(0x2c5)]['Window_BattleLog_performRecovery']=Window_BattleLog[_0x1cc45e(0xc0b)][_0x1cc45e(0x63b)],Window_BattleLog[_0x1cc45e(0xc0b)][_0x1cc45e(0x63b)]=function(_0x5a0e26){const _0x35c7a6=_0x1cc45e;VisuMZ[_0x35c7a6(0x2c5)]['Window_BattleLog_performRecovery'][_0x35c7a6(0xa54)](this,_0x5a0e26),this[_0x35c7a6(0x71e)]();},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0xbd6)]=Window_BattleLog['prototype'][_0x1cc45e(0xbe7)],Window_BattleLog[_0x1cc45e(0xc0b)][_0x1cc45e(0xbe7)]=function(_0x983542){const _0x20ac3c=_0x1cc45e;VisuMZ[_0x20ac3c(0x2c5)][_0x20ac3c(0xbd6)][_0x20ac3c(0xa54)](this,_0x983542),this[_0x20ac3c(0x71e)]();},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x8d8)]=Window_BattleLog['prototype']['performMagicEvasion'],Window_BattleLog[_0x1cc45e(0xc0b)][_0x1cc45e(0x587)]=function(_0x161418){const _0x4a3ff2=_0x1cc45e;VisuMZ[_0x4a3ff2(0x2c5)]['Window_BattleLog_performMagicEvasion']['call'](this,_0x161418),this[_0x4a3ff2(0x71e)]();},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x5e6)]=Window_BattleLog[_0x1cc45e(0xc0b)]['performCounter'],Window_BattleLog[_0x1cc45e(0xc0b)]['performCounter']=function(_0x28b7b3){const _0x33ee1e=_0x1cc45e;VisuMZ[_0x33ee1e(0x2c5)]['Window_BattleLog_performCounter']['call'](this,_0x28b7b3),this['callNextMethod']();},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x1fa)]=Window_BattleLog[_0x1cc45e(0xc0b)][_0x1cc45e(0x3aa)],Window_BattleLog[_0x1cc45e(0xc0b)]['performReflection']=function(_0x556562){const _0x13255e=_0x1cc45e;VisuMZ[_0x13255e(0x2c5)][_0x13255e(0x1fa)][_0x13255e(0xa54)](this,_0x556562),this[_0x13255e(0x71e)]();},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x9e7)]=Window_BattleLog[_0x1cc45e(0xc0b)][_0x1cc45e(0x1ad)],Window_BattleLog[_0x1cc45e(0xc0b)][_0x1cc45e(0x1ad)]=function(_0x296bd3,_0x17d14f){const _0x202be5=_0x1cc45e;VisuMZ[_0x202be5(0x2c5)]['Window_BattleLog_performSubstitute'][_0x202be5(0xa54)](this,_0x296bd3,_0x17d14f),this['callNextMethod']();},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x734)]=Window_BattleLog[_0x1cc45e(0xc0b)]['performCollapse'],Window_BattleLog[_0x1cc45e(0xc0b)]['performCollapse']=function(_0x3c62d5){const _0x9245f5=_0x1cc45e;VisuMZ[_0x9245f5(0x2c5)][_0x9245f5(0x734)][_0x9245f5(0xa54)](this,_0x3c62d5),this['callNextMethod']();},Window_BattleLog['prototype'][_0x1cc45e(0x6da)]=function(_0x1092e0,_0x3c9e74){const _0x3f9518=_0x1cc45e;_0x1092e0[_0x3f9518(0x6da)](_0x3c9e74),this['callNextMethod']();},Window_BattleLog['prototype'][_0x1cc45e(0x770)]=function(_0x4fd167,_0x45e2e7){const _0x385099=_0x1cc45e,_0x3fd818=_0x4fd167[_0x385099(0xab3)]();_0x3fd818<=0x0?SoundManager['playEnemyAttack']():this[_0x385099(0xb30)](_0x45e2e7,_0x3fd818);},Window_BattleLog[_0x1cc45e(0xc0b)][_0x1cc45e(0xc89)]=function(_0x5d5e60,_0x503e1a,_0x1e22e2){const _0x22eacb=_0x1cc45e,_0x445b95=[_0x5d5e60]['concat'](_0x503e1a);for(const _0x1b9bdc of _0x445b95){if(!_0x1b9bdc)continue;_0x1b9bdc['setImmortal'](_0x1e22e2);}this[_0x22eacb(0x71e)]();},Window_BattleLog[_0x1cc45e(0xc0b)][_0x1cc45e(0xb9e)]=function(_0xdd4a08){const _0x54d39a=_0x1cc45e;this[_0x54d39a(0x4ab)]=_0xdd4a08;},Window_BattleLog[_0x1cc45e(0xc0b)][_0x1cc45e(0x9a8)]=function(_0x46461a,_0x4fb79c){const _0x3facc5=_0x1cc45e;for(const _0xb8f7ce of _0x46461a){if(!_0xb8f7ce)continue;_0xb8f7ce['requestMotion'](_0x4fb79c);}this[_0x3facc5(0x71e)]();},Window_BattleLog['prototype']['performMoveToPoint']=function(_0x569f72,_0x22be3f,_0x47a2d5,_0x14f2d6,_0x1fcc6a,_0x5073d3){const _0x44ce3e=_0x1cc45e;_0x569f72[_0x44ce3e(0xcdf)](_0x22be3f,_0x47a2d5,_0x14f2d6,_0x1fcc6a,_0x5073d3,-0x1),this['callNextMethod']();},Window_BattleLog[_0x1cc45e(0xc0b)]['performMoveToTargets']=function(_0x53a319,_0x509a55,_0x5302d4,_0x1550ff,_0x2e98bd,_0x563beb,_0x26d328){const _0x2e2bc0=_0x1cc45e,_0x537de4=Math['min'](..._0x509a55[_0x2e2bc0(0x63c)](_0x376b69=>_0x376b69[_0x2e2bc0(0x3ba)]()['_baseX']-_0x376b69['battler']()['mainSpriteWidth']()/0x2)),_0x45d91c=Math[_0x2e2bc0(0x485)](..._0x509a55[_0x2e2bc0(0x63c)](_0x322b54=>_0x322b54['battler']()[_0x2e2bc0(0x29f)]+_0x322b54['battler']()[_0x2e2bc0(0x2cc)]()/0x2)),_0x709871=Math[_0x2e2bc0(0x6cb)](..._0x509a55[_0x2e2bc0(0x63c)](_0x27a67b=>_0x27a67b[_0x2e2bc0(0x3ba)]()[_0x2e2bc0(0xb2d)]-_0x27a67b[_0x2e2bc0(0x3ba)]()['mainSpriteHeight']())),_0x53823b=Math[_0x2e2bc0(0x485)](..._0x509a55[_0x2e2bc0(0x63c)](_0x3ec686=>_0x3ec686[_0x2e2bc0(0x3ba)]()[_0x2e2bc0(0xb2d)])),_0x22adae=_0x509a55[_0x2e2bc0(0x441)](_0x2f592a=>_0x2f592a['isActor']())[_0x2e2bc0(0x96d)],_0x5ea23f=_0x509a55[_0x2e2bc0(0x441)](_0x597115=>_0x597115[_0x2e2bc0(0x348)]())[_0x2e2bc0(0x96d)];let _0x4c8fd2=0x0,_0x5be8e1=0x0;if(_0x5302d4[_0x2e2bc0(0xc6a)](/front/i))_0x4c8fd2=_0x22adae>=_0x5ea23f?_0x537de4:_0x45d91c;else{if(_0x5302d4[_0x2e2bc0(0xc6a)](/middle/i))_0x4c8fd2=(_0x537de4+_0x45d91c)/0x2,_0x26d328=-0x1;else _0x5302d4[_0x2e2bc0(0xc6a)](/back/i)&&(_0x4c8fd2=_0x22adae>=_0x5ea23f?_0x45d91c:_0x537de4);}if(_0x5302d4[_0x2e2bc0(0xc6a)](/head/i))_0x5be8e1=_0x709871;else{if(_0x5302d4[_0x2e2bc0(0xc6a)](/center/i)){_0x5be8e1=(_0x709871+_0x53823b)/0x2;if(_0x53a319[_0x2e2bc0(0x3ba)]())_0x5be8e1+=_0x53a319[_0x2e2bc0(0x3ba)]()['height']/0x2;}else _0x5302d4[_0x2e2bc0(0xc6a)](/base/i)&&(_0x5be8e1=_0x53823b);}_0x53a319['moveBattlerToPoint'](_0x4c8fd2,_0x5be8e1,_0x1550ff,_0x2e98bd,_0x563beb,_0x26d328),this[_0x2e2bc0(0x71e)]();},Window_BattleLog[_0x1cc45e(0xc0b)][_0x1cc45e(0x64a)]=function(_0x4033af,_0x2e0f0a,_0x41594b){const _0x55f7d3=_0x1cc45e;for(const _0x218008 of _0x4033af){if(!_0x218008)continue;_0x218008[_0x55f7d3(0x40c)](_0x2e0f0a,_0x41594b);}this[_0x55f7d3(0x71e)]();};function Window_BattleMultiTarget(){const _0x54c86b=_0x1cc45e;this[_0x54c86b(0x896)](...arguments);}Window_BattleMultiTarget[_0x1cc45e(0xc0b)]=Object[_0x1cc45e(0x6f7)](Window_Command[_0x1cc45e(0xc0b)]),Window_BattleMultiTarget[_0x1cc45e(0xc0b)]['constructor']=Window_BattleMultiTarget,VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x5fb)][_0x1cc45e(0xb7d)]=VisuMZ[_0x1cc45e(0x2c5)]['Settings']['MultiTarget']||{},Window_BattleMultiTarget[_0x1cc45e(0xb20)]=VisuMZ[_0x1cc45e(0x2c5)]['Settings'][_0x1cc45e(0xb7d)][_0x1cc45e(0x7df)]??0x118,Window_BattleMultiTarget[_0x1cc45e(0x233)]=VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x5fb)]['MultiTarget'][_0x1cc45e(0x821)]??0x2,Window_BattleMultiTarget[_0x1cc45e(0xa71)]=VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x5fb)][_0x1cc45e(0xb7d)][_0x1cc45e(0x617)]??!![],Window_BattleMultiTarget[_0x1cc45e(0x528)]=VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x5fb)][_0x1cc45e(0xb7d)]['AllActorsText']??_0x1cc45e(0xa47),Window_BattleMultiTarget['ALL_ENEMIES']=VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x5fb)]['MultiTarget'][_0x1cc45e(0xbb1)]??_0x1cc45e(0x6df),Window_BattleMultiTarget[_0x1cc45e(0x330)]=VisuMZ[_0x1cc45e(0x2c5)]['Settings']['MultiTarget'][_0x1cc45e(0x5b6)]??0x0,Window_BattleMultiTarget[_0x1cc45e(0xb6a)]=VisuMZ[_0x1cc45e(0x2c5)]['Settings']['MultiTarget'][_0x1cc45e(0x50c)]??0x0,Window_BattleMultiTarget[_0x1cc45e(0x5f0)]=VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x5fb)][_0x1cc45e(0xb7d)][_0x1cc45e(0x843)]??0x0,Window_BattleMultiTarget['ENEMY_OFFSET_Y']=VisuMZ['BattleCore'][_0x1cc45e(0x5fb)][_0x1cc45e(0xb7d)][_0x1cc45e(0x417)]??0x0,Window_BattleMultiTarget['prototype']['initialize']=function(_0x5625c7,_0x181423){const _0x29f651=_0x1cc45e;this['_forActor']=_0x181423,Window_Command[_0x29f651(0xc0b)]['initialize'][_0x29f651(0xa54)](this,_0x5625c7),this['setBackgroundType'](Window_BattleMultiTarget[_0x29f651(0x233)]),this[_0x29f651(0xcd7)](),this[_0x29f651(0xc4d)](),this[_0x29f651(0xb3b)]();},Window_BattleMultiTarget[_0x1cc45e(0xc0b)]['forActor']=function(){const _0x7b0520=_0x1cc45e;return this[_0x7b0520(0x81a)];},Window_BattleMultiTarget[_0x1cc45e(0xc0b)]['makeCommandList']=function(){const _0x35b3b1=_0x1cc45e;let _0x137af0=this[_0x35b3b1(0x63f)]()?Window_BattleMultiTarget[_0x35b3b1(0x528)]:Window_BattleMultiTarget[_0x35b3b1(0x645)];if(Imported[_0x35b3b1(0x598)]&&Window_BattleMultiTarget['SHOW_BUTTON']){this['_buttonKey']=this['forActor']()?_0x35b3b1(0x2c3):_0x35b3b1(0x1b6),this[_0x35b3b1(0x36f)]=TextManager['getInputButtonString'](this[_0x35b3b1(0x472)]);const _0x35b6b4=VisuMZ[_0x35b3b1(0xaa7)][_0x35b3b1(0x5fb)]['ButtonAssist'][_0x35b3b1(0x224)];_0x137af0=_0x35b6b4[_0x35b3b1(0x65c)](this[_0x35b3b1(0x36f)],_0x137af0);}this[_0x35b3b1(0x273)](_0x137af0,_0x35b3b1(0x9a2));},Window_BattleMultiTarget[_0x1cc45e(0xc0b)][_0x1cc45e(0x918)]=function(_0x746a3d){const _0x5d7573=_0x1cc45e,_0x3440fe=this[_0x5d7573(0xa7b)](_0x746a3d);this[_0x5d7573(0xcf6)](),this[_0x5d7573(0xbde)](this[_0x5d7573(0x2bc)](_0x746a3d));const _0x2bd41f=this[_0x5d7573(0xc11)](_0x746a3d),_0x4c9bd9=this['textSizeEx'](_0x2bd41f)[_0x5d7573(0x885)],_0x2317e2=_0x3440fe['x']+Math['floor']((_0x3440fe[_0x5d7573(0x885)]-_0x4c9bd9)/0x2);this[_0x5d7573(0x5ba)](_0x2bd41f,_0x2317e2,_0x3440fe['y'],_0x3440fe['width']);},Window_BattleMultiTarget[_0x1cc45e(0xc0b)]['update']=function(){const _0x19b2dd=_0x1cc45e;Window_Command[_0x19b2dd(0xc0b)][_0x19b2dd(0x90f)][_0x19b2dd(0xa54)](this),this['updateVisibility'](),this[_0x19b2dd(0x572)]();},Window_BattleMultiTarget[_0x1cc45e(0xc0b)][_0x1cc45e(0x414)]=function(){const _0x4e8357=_0x1cc45e;this[_0x4e8357(0x9b2)]=this[_0x4e8357(0x70d)]();},Window_BattleMultiTarget[_0x1cc45e(0xc0b)][_0x1cc45e(0x70d)]=function(){const _0x1ed06a=_0x1cc45e,_0x1635b1=BattleManager[_0x1ed06a(0x82b)](),_0xec840a=_0x1635b1&&_0x1635b1[_0x1ed06a(0x68d)]();if(!_0xec840a)return![];const _0x1d2453=SceneManager[_0x1ed06a(0x659)];if(this[_0x1ed06a(0x63f)]()){if(_0x1d2453[_0x1ed06a(0x53a)]['active']&&_0x1d2453[_0x1ed06a(0x53a)]['_handlers'][_0x1ed06a(0x2c3)])return!![];if(_0x1d2453['_enemyWindow'][_0x1ed06a(0x6e4)]&&_0x1d2453['_enemyWindow']['_handlers'][_0x1ed06a(0x2c3)])return!![];}else{if(_0x1d2453[_0x1ed06a(0xbba)]['active']&&_0x1d2453[_0x1ed06a(0xbba)]['_handlers']['pageup'])return!![];}return![];},Window_BattleMultiTarget[_0x1cc45e(0xc0b)]['updateKeyboardKeys']=function(){const _0x4dfb9f=_0x1cc45e;if(!Imported[_0x4dfb9f(0x598)])return;this[_0x4dfb9f(0x36f)]!==TextManager[_0x4dfb9f(0xac6)](this[_0x4dfb9f(0x472)])&&this[_0x4dfb9f(0x299)]();},Window_BattleMultiTarget[_0x1cc45e(0xc0b)]['processTouch']=function(){const _0x3b4be0=_0x1cc45e;if(this[_0x3b4be0(0x9b2)]&&TouchInput[_0x3b4be0(0xb8c)]()){const _0x308f08=this['hitIndex']();if(_0x308f08>=0x0){const _0x54036f=this[_0x3b4be0(0x63f)]()?_0x3b4be0(0x2c3):_0x3b4be0(0x1b6);Input[_0x3b4be0(0xce0)](_0x54036f);}}};function Window_DamageCounter(){const _0x14ada4=_0x1cc45e;this[_0x14ada4(0x896)](...arguments);}Window_DamageCounter[_0x1cc45e(0xc0b)]=Object['create'](Window_Base['prototype']),Window_DamageCounter['prototype']['constructor']=Window_DamageCounter,Window_DamageCounter['SETTINGS']={'enabled':VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x5fb)][_0x1cc45e(0xa1b)][_0x1cc45e(0xccb)]??!![],'customFontFace':VisuMZ['BattleCore']['Settings'][_0x1cc45e(0xa1b)][_0x1cc45e(0x739)]??'','textAlign':VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x5fb)]['ComboWindow'][_0x1cc45e(0xb0b)]??_0x1cc45e(0x83d),'hitsDmgFmt':VisuMZ['BattleCore'][_0x1cc45e(0x5fb)]['ComboWindow'][_0x1cc45e(0x304)]??_0x1cc45e(0x51a),'hitsHealFmt':VisuMZ[_0x1cc45e(0x2c5)]['Settings'][_0x1cc45e(0xa1b)][_0x1cc45e(0x9e9)]??'\x5cC[6]%1\x5c}\x20\x5cC[4]Heal\x20Combo\x5c{','totalDmgFmt':VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x5fb)]['ComboWindow'][_0x1cc45e(0x451)]??_0x1cc45e(0x76e),'totalHealFmt':VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x5fb)][_0x1cc45e(0xa1b)][_0x1cc45e(0x654)]??_0x1cc45e(0xce6),'fadeShiftX':VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x5fb)][_0x1cc45e(0xa1b)][_0x1cc45e(0x48c)]??-0x2,'fadeShiftY':VisuMZ['BattleCore'][_0x1cc45e(0x5fb)][_0x1cc45e(0xa1b)]['fadeShiftY']??0x0,'positionOffsetX':VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x5fb)][_0x1cc45e(0xa1b)][_0x1cc45e(0xb34)]??0x0,'positionOffsetY':VisuMZ[_0x1cc45e(0x2c5)]['Settings']['ComboWindow'][_0x1cc45e(0x2b3)]??0x0,'updateDuration':VisuMZ['BattleCore']['Settings']['ComboWindow'][_0x1cc45e(0xbb8)]??0x14,'minimumStayDuration':VisuMZ['BattleCore'][_0x1cc45e(0x5fb)][_0x1cc45e(0xa1b)][_0x1cc45e(0x8c4)]??0x28,'minimumHits':VisuMZ['BattleCore'][_0x1cc45e(0x5fb)][_0x1cc45e(0xa1b)]['minimumHits']??0x1,'opacitySpeed':VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x5fb)]['ComboWindow'][_0x1cc45e(0x8e1)]??0x10},Window_DamageCounter[_0x1cc45e(0xc0b)][_0x1cc45e(0x896)]=function(_0x21891f){const _0x105205=_0x1cc45e;this[_0x105205(0x55c)]=0x0,Window_Base['prototype'][_0x105205(0x896)][_0x105205(0xa54)](this,_0x21891f),this[_0x105205(0x995)]=_0x21891f['x'],this[_0x105205(0xbaa)]=_0x21891f['y'],this['resetCounter'](),this[_0x105205(0x7b8)](0x2);},Window_DamageCounter[_0x1cc45e(0xc0b)][_0x1cc45e(0xc66)]=function(){const _0x179879=_0x1cc45e;this[_0x179879(0x279)]=0x0,this['_totalHits']=0x0,this[_0x179879(0x86b)]=0x0,this[_0x179879(0x2d1)]=0x0,this[_0x179879(0xcb9)]=0x0;},Window_DamageCounter[_0x1cc45e(0xc0b)]['resetFontSettings']=function(){const _0x205284=_0x1cc45e;Window_Base[_0x205284(0xc0b)][_0x205284(0x88f)][_0x205284(0xa54)](this);const _0x194f0e=Window_DamageCounter[_0x205284(0x833)];_0x194f0e['customFontFace']?this[_0x205284(0x282)][_0x205284(0x1d7)]=_0x194f0e[_0x205284(0x2e7)]:this[_0x205284(0x282)][_0x205284(0x1d7)]=$gameSystem[_0x205284(0x9f4)]();};var $comboWindowReset=function(){const _0x58fd59=_0x1cc45e;if(!SceneManager[_0x58fd59(0x499)]())return;const _0x27b76b=SceneManager[_0x58fd59(0x659)][_0x58fd59(0x758)];if(_0x27b76b)_0x27b76b[_0x58fd59(0xc66)]();};Window_DamageCounter['prototype'][_0x1cc45e(0xb07)]=function(_0x10b621){const _0x1f1e9e=_0x1cc45e;this[_0x1f1e9e(0x2d1)]+=Math[_0x1f1e9e(0xb4b)](_0x10b621);const _0x1591c2=Window_DamageCounter['SETTINGS'];this[_0x1f1e9e(0x279)]=_0x1591c2[_0x1f1e9e(0xbb8)],this[_0x1f1e9e(0x2d1)]>=_0x1591c2[_0x1f1e9e(0x983)]&&(this['_visibleDuration']=_0x1591c2[_0x1f1e9e(0x8c4)]);};var $comboWindowIncreaseHits=function(_0x388859){const _0x5881df=_0x1cc45e;if(!SceneManager[_0x5881df(0x499)]())return;const _0x35f12f=SceneManager['_scene'][_0x5881df(0x758)];if(_0x35f12f)_0x35f12f[_0x5881df(0xb07)](_0x388859);};Window_DamageCounter[_0x1cc45e(0xc0b)][_0x1cc45e(0xc1d)]=function(_0x3edddf){const _0x1c44bd=_0x1cc45e;this[_0x1c44bd(0xcb9)]+=Math['round'](_0x3edddf);const _0xdf1868=Window_DamageCounter['SETTINGS'];this[_0x1c44bd(0x279)]=_0xdf1868[_0x1c44bd(0xbb8)],this[_0x1c44bd(0x2d1)]>=_0xdf1868[_0x1c44bd(0x983)]&&(this['_visibleDuration']=_0xdf1868[_0x1c44bd(0x8c4)]);};var $comboWindowIncreaseDamage=function(_0x2ca751){const _0x577d9f=_0x1cc45e;if(!SceneManager[_0x577d9f(0x499)]())return;const _0x22fa4a=SceneManager[_0x577d9f(0x659)][_0x577d9f(0x758)];if(_0x22fa4a)_0x22fa4a[_0x577d9f(0xc1d)](_0x2ca751);},$comboWindowIncreaseHealing=function(_0x1216e7){const _0x4e1739=_0x1cc45e;if(!SceneManager[_0x4e1739(0x499)]())return;const _0x5e817e=SceneManager[_0x4e1739(0x659)][_0x4e1739(0x758)];if(_0x5e817e)_0x5e817e[_0x4e1739(0xc1d)](-_0x1216e7);};VisuMZ[_0x1cc45e(0x2c5)]['Scene_Battle_createAllWindows_ComboWindow']=Scene_Battle['prototype']['createAllWindows'],Scene_Battle[_0x1cc45e(0xc0b)][_0x1cc45e(0x9d6)]=function(){const _0x482679=_0x1cc45e;this['createDamageCounterWindow'](),VisuMZ[_0x482679(0x2c5)][_0x482679(0x578)][_0x482679(0xa54)](this);},Scene_Battle[_0x1cc45e(0xc0b)]['createDamageCounterWindow']=function(){const _0x46157d=_0x1cc45e;if(!Window_DamageCounter['SETTINGS']['enabled'])return;const _0x447a39=this[_0x46157d(0xbe1)](),_0x4f28e2=new Window_DamageCounter(_0x447a39);this['addWindow'](_0x4f28e2),this[_0x46157d(0x758)]=_0x4f28e2;},Scene_Battle[_0x1cc45e(0xc0b)]['damageCounterWindowRect']=function(){const _0xcb74f8=_0x1cc45e;if(VisuMZ[_0xcb74f8(0x2c5)]['Settings']['ComboWindow'][_0xcb74f8(0xcde)])return VisuMZ[_0xcb74f8(0x2c5)][_0xcb74f8(0x5fb)][_0xcb74f8(0xa1b)][_0xcb74f8(0xcde)][_0xcb74f8(0xa54)](this);const _0x3e1171=Math[_0xcb74f8(0xb4e)](Graphics[_0xcb74f8(0x885)]/0x4),_0x168a46=this[_0xcb74f8(0x621)](0x2,!![]),_0x11566f=0x0+this[_0xcb74f8(0x561)](),_0x3e3858=Math[_0xcb74f8(0xb4b)](Graphics[_0xcb74f8(0x76d)]*0x1/0x3)+this[_0xcb74f8(0x981)]();return new Rectangle(_0x11566f,_0x3e3858,_0x3e1171,_0x168a46);},Scene_Battle[_0x1cc45e(0xc0b)]['comboWindowOffsetX']=function(){const _0x1b3172=_0x1cc45e;return Window_DamageCounter[_0x1b3172(0x833)][_0x1b3172(0x2ae)];},Scene_Battle[_0x1cc45e(0xc0b)][_0x1cc45e(0x981)]=function(){const _0x411fc3=_0x1cc45e;return Window_DamageCounter[_0x411fc3(0x833)]['positionOffsetY'];},Window_DamageCounter[_0x1cc45e(0xc0b)]['update']=function(){const _0x4391cb=_0x1cc45e;Window_Base[_0x4391cb(0xc0b)]['update'][_0x4391cb(0xa54)](this),this[_0x4391cb(0xc7f)](),this[_0x4391cb(0x4ff)]();},Window_DamageCounter['prototype']['updateCounter']=function(){const _0x580d8e=_0x1cc45e;if(this[_0x580d8e(0x279)]<=0x0)return;const _0x111813=this[_0x580d8e(0x279)];this[_0x580d8e(0x704)]=this['_targetHits'],this[_0x580d8e(0x86b)]=(this['_totalDamage']*(_0x111813-0x1)+this[_0x580d8e(0xcb9)])/_0x111813,this[_0x580d8e(0x279)]--,this['_updateDuration']<=0x0&&(this[_0x580d8e(0x704)]=this['_targetHits'],this[_0x580d8e(0x86b)]=this[_0x580d8e(0xcb9)]),this['refresh']();},Window_DamageCounter[_0x1cc45e(0xc0b)]['updateOpacity']=function(){const _0x4520fb=_0x1cc45e,_0x3fbdc5=Window_DamageCounter[_0x4520fb(0x833)],_0xf48f75=this[_0x4520fb(0x70d)](),_0x19fcb4=_0x3fbdc5[_0x4520fb(0x8e1)]||0x1;if(_0xf48f75&&this[_0x4520fb(0x874)]<0xff)this[_0x4520fb(0x874)]+=_0x19fcb4;else!_0xf48f75&&this['contentsOpacity']>0x0&&(this[_0x4520fb(0x874)]-=_0x19fcb4,this['x']+=_0x3fbdc5[_0x4520fb(0x48c)]||0x0,this['y']+=_0x3fbdc5[_0x4520fb(0x626)]||0x0);},Window_DamageCounter[_0x1cc45e(0xc0b)][_0x1cc45e(0x70d)]=function(){const _0x46b1a8=_0x1cc45e,_0x37d4eb=Window_DamageCounter[_0x46b1a8(0x833)];if(this[_0x46b1a8(0x2d1)]>=_0x37d4eb[_0x46b1a8(0x983)])return!![];if(this[_0x46b1a8(0x55c)]-->0x0)return!![];return![];},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x48e)]=Game_Action[_0x1cc45e(0xc0b)][_0x1cc45e(0x30b)],Game_Action['prototype'][_0x1cc45e(0x30b)]=function(_0x4f5bd6,_0x2d39f1){const _0x1b8a32=_0x1cc45e;$comboWindowIncreaseHits(0x1),$comboWindowIncreaseDamage(_0x2d39f1),VisuMZ[_0x1b8a32(0x2c5)][_0x1b8a32(0x48e)][_0x1b8a32(0xa54)](this,_0x4f5bd6,_0x2d39f1);},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x40a)]=BattleManager['endAction'],BattleManager[_0x1cc45e(0x2ea)]=function(){const _0x30f8b9=_0x1cc45e;$comboWindowReset(),VisuMZ['BattleCore'][_0x30f8b9(0x40a)][_0x30f8b9(0xa54)](this);},Window_DamageCounter[_0x1cc45e(0xc0b)][_0x1cc45e(0x299)]=function(){const _0x5cafc2=_0x1cc45e;this[_0x5cafc2(0x282)]['clear'](),this[_0x5cafc2(0xa37)](),this['x']=this[_0x5cafc2(0x995)],this['y']=this['_targetY'];},Window_DamageCounter[_0x1cc45e(0xc0b)][_0x1cc45e(0x262)]=function(){const _0x5e4ce7=_0x1cc45e,_0x6aaa10=Window_DamageCounter[_0x5e4ce7(0x833)];return _0x6aaa10[_0x5e4ce7(0x237)]||_0x5e4ce7(0x83d);},Window_DamageCounter['prototype'][_0x1cc45e(0x2aa)]=function(){const _0x1e3aba=_0x1cc45e,_0x168350=Window_DamageCounter[_0x1e3aba(0x833)];let _0x33bbf1=this[_0x1e3aba(0x86b)]>=0x0?_0x168350[_0x1e3aba(0x304)]:_0x168350[_0x1e3aba(0x9e9)];return _0x33bbf1[_0x1e3aba(0x65c)](Math[_0x1e3aba(0xb40)](Math['ceil'](this[_0x1e3aba(0x704)])));},Window_DamageCounter['prototype'][_0x1cc45e(0x8a0)]=function(){const _0x163872=_0x1cc45e,_0x4ead07=Window_DamageCounter[_0x163872(0x833)];let _0x3612e2=this['_totalDamage']>=0x0?_0x4ead07[_0x163872(0x451)]:_0x4ead07['totalHealFmt'];return _0x3612e2[_0x163872(0x65c)](Math[_0x163872(0xb40)](Math['round'](this[_0x163872(0x86b)])));},Window_DamageCounter[_0x1cc45e(0xc0b)]['drawComboText']=function(){const _0x594989=_0x1cc45e;if(VisuMZ['BattleCore']['Settings'][_0x594989(0xa1b)][_0x594989(0x3a0)])return VisuMZ['BattleCore']['Settings'][_0x594989(0xa1b)]['ComboWindow_DrawJS'][_0x594989(0xa54)](this);let _0x5cb370=0x0,_0x2b571e=0x0;const _0x4cedd3=this['hitText'](),_0x4d6885=this['textSizeEx'](_0x4cedd3);if(this[_0x594989(0x262)]()===_0x594989(0x7a3))_0x5cb370=this['innerWidth']-this[_0x594989(0x662)]()-_0x4d6885[_0x594989(0x885)];else this[_0x594989(0x262)]()===_0x594989(0x669)?_0x5cb370=Math[_0x594989(0x884)]((this[_0x594989(0x323)]-_0x4d6885['width'])/0x2):_0x5cb370=this[_0x594989(0x662)]();this[_0x594989(0x5ba)](_0x4cedd3,_0x5cb370,_0x2b571e),_0x2b571e+=Math[_0x594989(0xb4e)](this['lineHeight']()*0x2/0x3);const _0x47f5f2=this[_0x594989(0x8a0)](),_0x482214=this[_0x594989(0xadf)](_0x47f5f2);if(this['textAlignment']()==='right')_0x5cb370=this[_0x594989(0x323)]-this[_0x594989(0x662)]()-_0x482214[_0x594989(0x885)];else this['textAlignment']()===_0x594989(0x669)?_0x5cb370=Math[_0x594989(0x884)]((this['innerWidth']-_0x482214[_0x594989(0x885)])/0x2):_0x5cb370=this[_0x594989(0x662)]();this[_0x594989(0x5ba)](_0x47f5f2,_0x5cb370,_0x2b571e);};function Window_InBattleStatus(){const _0x140c66=_0x1cc45e;this[_0x140c66(0x896)](...arguments);}function _0x72b7(){const _0x3145dd=['compareBattlerSprites','isDisarmLifeSteal','MUSIC-NOTE','callOptions','getNextSubject','ActSeq_Mechanics_VariablePopup','createDigits','makeTurnsText','Scene_Battle_startActorCommandSelection','VisuMZ_3_ActiveChainSkills','createInnerSprite','createEnemyNames','ActSeq_Angle_Reset','BattleLogRectJS','spell','ActSeq_Impact_MotionBlurScreen','addWeaponSwapCommand','all\x20enemies','isAnyoneChangingOpacity','%1Damage%2JS','hide','name','lastCommandSymbol','windowskin','updateNameTempVisibility','ActSeq_Mechanics_PtbAlterCost','ArPenRate','updateSkew','redrawForGaugeRate','auto','repeats','Game_Action_setSubject','USER-DEFINED\x201','Scene_Map_updateCallMenu','selectSymbol','centerFrontViewSprite','FollowTurn','placeActorName','criticalHitFlat','updateTpbChargeTime','startTurn','gaugeRate','VisuMZ_3_FrontviewBattleUI','bottom','_indent','resetCounter','_targetOffsetX','filters','pow','match','_aspectData','startDamagePopup','createStatesWindow','getDamageStyle','getNextDamagePopup','_battlerKeyCache','initVisibility','startActorCommandSelection','BattleManager_makeActionOrders','mainSprite','8oBAbqI','process_VisuMZ_BattleCore_BaseTroops','checkShowHideSkillNotetags','Sprite_StateIcon_updateFrame','updateStateSprite','stop','linkSprite','canGuard','VariableHeal','maxItems','updateCounter','LastSelected','damageContainer','Scene_Battle_helpWindowRect','helpAreaHeight','some','ActSeq_Movement_HomeMoveToJsPoint','createUIContainer','RevertAngle','_createDamageContainer','applyImmortal','_actorSprites','getLastHpDamage','onEscapeSuccess','weaponTypes','trim','+%1\x20MP','blt','_interpreter','Game_Action_makeTargets','placeGauge','isBusy','autoMeleeSingleTargetActionSet','parent','iconText','placeTimeGauge','setupHpGaugeSprite','displayMpDamage','createHpGaugeSprite','ActSeq_Mechanics_WaitForEffect','StyleOFF','_logWindow','AGI','NewPopupBottom','ActSeq_Skew_WaitForSkew','apply','effects','portraitFlipHorz','isDisplayEmergedEnemies','push','ActSeq_Mechanics_RemoveState','dying','setupDamagePopup','Height','_updateFilterArea','BattleManager_startTurn','command339','Scene_Battle_terminate','_actorMultiTargetWindow','nameColor','actorCommandWindowRect','closeBattleActorWindow','StatusWindowAttachmentBackOffsetX','setActionState','Game_Action_setGuard','_index','jsScaleDown','BattleManager_cancelActorInput','_targetDamage','ActSeq_Animation_AttackAnimation2','displayActionResults','drawItemStatus','_battleCoreNoElement','isSubjectValidForAnyoneSelect','ShowMissEvasion','currentValue','getReturnWindow','performCollapse','needsInputWindowChange','drawTextTopAligned','EnableSoftCap','addState','drawActorBuffTurns','JS\x20%1END\x20BATTLE','removeAnimation','_emptyBitmap','Enable','_floatWholeDuration','addGuardCommand','_skillIDs','_callSceneOptions','isFightCommandEnabled','createDamageContainer','_fauxAnimationSprites','setBattleImpactTimeScale','partyCommandWindowRectXPStyle','_effectDuration','PreStartTurnJS','deactivate','statusWindowRectDefaultStyle','addOnceParallelInterpreter','equips','Frame','ShowWeapon','bitmapHeight','ComboWindow_RectJS','moveBattlerToPoint','virtualClick','updateSpin','isActiveTpbReady','ActSeq_Mechanics_StateTurnsChangeBy','_mainSprite','callUpdateHelp','\x5c}\x5cC[21]Total\x20Healing:\x20\x5c{\x5cC[24]+%1','makeUniqueNames','SvBattlerSolo-%1-%2','value2','VisuMZ_3_BoostAction','ActionCenteredName','PopupPosition','createChildSprite','MUSICNOTE','processAbort','ActSeq_Impact_ShockwaveCenterTargets','anchor','Game_Battler_forceAction','FRUSTRATION','Mechanics\x20in\x20damage\x20formulas\x20cause\x20problems\x20with\x20the\x20following:\x0a\x0a','getDualWieldTimes','resetTextColor','displayCritical','powerDownColor','isTeamBased','VisuMZ_1_MainMenuCore','ParseEnemyNotetags','turnCount','actorCommandCancelTPB','ActSeq_Animation_AttackAnimation','scrollTo','isAnimationShownOnBattlePortrait','MpGaugeOffsetY','displayCurrentState','createBattleBalloon','updateWaitMode','guardSkillId','_battlePortrait','param','getAspectData','updateLink','dead','applyResultSwitches','SkipPartyCmd','isUnderAnimation','isBattleCoreTargetScope','5069025itRVJB','isSpinning','Enemy','clearMotion','Window_BattleStatus_drawItemImage','waitForMovement','performSubstitute','CheckSkillCommandShowSwitches','Scale','BTB','allowCollapse','_targetGrowY','ActSeq_Mechanics_Collapse','balloonId','TpbActiveChangeEnabled','pageup','SWEAT','addBattlerBuffsDebuffs','MOTIONS','getItemDamageAmountLabelOriginal','drawItemImage','ActSeq_Mechanics_RemoveBuffDebuff','battleSkew','members','BaseTroopIDs','mainSpriteScaleY','Sprite_Battler_damageOffsetX','ActSeq_Target_CurrentIndex','resizeWindowBorderStyle','commandStyle','commandNameWindowCenter','checkShowHideBattleNotetags','_forcedBattlers','animationId','string','Scene_Battle_createPartyCommandWindow','actionsFmt','refreshCursor','_cursorArea','drawActorName','ATTACK','aliveMembers','_enemies','battleDisplayText','ActSeq_BattleVoice_PlaySpecialLine','enemyId','Interrupt','isFrameVisible','fontFace','HelpEscape','itemCri','autoSelect','ActSeq_Impact_ColorBreak','createBattleField','CommandVisible','Damage','battlerShadowScaleX','JumpToLabel','AnchorX','requestDragonbonesAnimation','ActSeq_Angle_WaitForAngle','regenerateAll','autoRemovalTiming','updateHomeMove','Game_Action_testApply','Action\x20Sequence\x20Impact\x20needs\x20an\x20update!','VoiceLine','ElementStatusCore','CmdIconItem','jsAccuracyAsUser','Game_Battler_onTurnEnd','isDead','ShuffleArray','VisuMZ_3_ActSeqImpact','isEscapeCommandEnabled','_tempBattler','Game_Action_evalDamageFormula','makeTargetsBattleCore','clearElementChanges','createActionSequenceProjectile','cancel','enemyShowParametersIfBattleTest','Parse_Notetags_TraitObjects','Window_BattleLog_performReflection','addExtendedTroopMembers','drawActorFace','battleFloat','randomInt','setActorHome','<CUSTOM\x20ACTION\x20SEQUENCE>','battleSpriteSkew','_linkedSprite','_freezeMotionData','removeAnimationFromContainer','_lastAction','updateShadowVisibility','HitFlat','escape','svAnchorY','ParseAllNotetags','STR','_effectType','moveBattlerHomeDistance','processBorderActor','height','_growEasing','updatePosition','isAlive','ActionEffect','Scene_Battle_selectNextCommand','Game_Interpreter_PluginCommand','shouldPopupDamage','processRandomizedData','isLearnedSkill','Sprite_Enemy_updateBossCollapse','isVisualHpGaugeDisplayed','itemRect','alive\x20opponents\x20not\x20target','VisuMZ_4_IconBalloons','Window_BattleLog_refresh','Window_BattleLog_performActionStart','CreateActionSequenceTargets','Window_BattleLog_clear','ShowCurrentState','clearBattleCoreData','TextFmt','_phase','ShowCritical','_stateSprite','updateShadowScale','Sprite_Actor_updateShadow','command283','makeStateName','drawActorClass','ActSeq_Zoom_Reset','EscapeFailureJS','forceEscapeSprite','_targetGrowX','Window_BattleLog_displayMpDamage','rec','BG_TYPE','Scene_Battle_createCancelButton','stbGainInstant','ActiveTpbOptionsMessage','textAlign','changeTextColor','Game_Party_removeActor','statusWindowRect','opacityStart','drawItemActorSprite','originalName','Actor-%1-%2','font','description','DamageRate','addStatusCommand','createMultiTargetWindow','setAttack','_commonEventKey','_floatEasing','ActSeq_Movement_WaitForSkew','_weaponSprite','_performActionEnd','attackSkillId','HITTYPE_CERTAIN','Game_Action_applyGlobal','isSpriteVisible','opponentsUnit','ReflectAnimation','updateStaticSvBattlerFrames','status','_wtypeIDs','Window_BattleLog_displayTpDamage','CheckActSeqProjectileVersion','isOptionsCommandAdded','open','DefaultStyle','ConfigManager_makeData','_targetIndex','StartName','checkBattleEnd','ActSeq_Mechanics_DamagePopup','gainHp','actorCommandEscape','BreakShields','createShadowSprite','Game_Troop_setup','textAlignment','Point','\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20Declare\x20Arguments\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20user\x20=\x20arguments[0];\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20skill\x20=\x20arguments[1];\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20a\x20=\x20user;\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20b\x20=\x20user;\x0a\x20\x20\x20\x20\x20\x20\x20\x20let\x20visible\x20=\x20true;\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20Process\x20Code\x0a\x20\x20\x20\x20\x20\x20\x20\x20try\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20%1\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x20catch\x20(e)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20($gameTemp.isPlaytest())\x20console.log(e);\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20Return\x20Value\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x20visible;\x0a\x20\x20\x20\x20','JS\x20%1REGENERATE','putActiveBattlerOnTop','Window_BattleLog_popBaseLine','skillItemWindowRectMiddle','addBattlerAspect','frontview_ui','AlphaFilter','onEnemyOk','clearTargetBattlerKey','_homeX','CmdIconAutoBattle','%1StartBattleJS','moveBattlerHomeToPoint','updateFrame','addCommand','atbInterrupt','duration','WaitForExit','PreEndBattleJS','rowSpacing','_updateDuration','logWindowRect','glitch','drawBattlerData','ActSeq_Mechanics_EmulateItemEffect','startInput','_battleField','remove','updatePageButtonVisibility','contents','_shadowScaleY','HP_Rate','EnableDamageCap','_lastTpDamage','onEncounterBattleCore','setBattlePortrait','HEART','gainFullActionsPTB','displayFailure','BattleManager_updatePhase','ActionStart','createCommandVisibleJS','Game_Enemy_transform','requestRefresh','regenerateAllBattleCore','Scene_ItemBase_applyItem','_displayBattleCoreTransitionErrorMsg','displayEvasion','_buffTurns','stopInjectAnimation','Sprite_Enemy_createStateIconSprite','changeInputWindow','refresh','effect','faceRect','_executedValue','setHue','AutoBattleRect','_baseX','wtypeId','\x5cI[%2]\x5cC[16]%1\x5cC[0]','PostEndActionJS','isAnyBattleBalloonPlaying','isSpriteVS8dir','%1Event','updateBattlebackBitmap2','lineRect','removeHorrorEffect','portraitFilename','hitText','setupZoomBlurImpactFilter','makeTargetSprites','frameCount','positionOffsetX','WaitCount2','top','isSkill','allowRandomSpeed','PosOffsetY','HomePosJS','Scene_Battle_onEnemyCancel','toUpperCase','ActSeq_Impact_Oversaturate','isHidden','%1\x20is\x20incorrectly\x20placed\x20on\x20the\x20plugin\x20list.\x0aIt\x20is\x20a\x20Tier\x20%2\x20plugin\x20placed\x20over\x20other\x20Tier\x20%3\x20plugins.\x0aPlease\x20reorder\x20the\x20plugin\x20list\x20from\x20smallest\x20to\x20largest\x20tier\x20numbers.','Weapon-%1-%2','\x20to\x20%1\x20midbattle.','isCommandEnabled','_battleCoreBattleResumeAfter','USER-DEFINED\x204','trueRandomTarget','createHelpWindow','displayAddedStates','createBattleFieldBattleCore','pagedown','_battleBalloonSprites','BattleCore','ActionSkillMsg1','alterType','performAttackSlot','%1\x20Aspect','substitute','_flashColor','mainSpriteWidth','clearBattleCoreAspects','isOpenAndActive','dead\x20actors','battleProjectiles','_targetHits','removeState','BattleManager_abort','Game_Temp_requestAnimation','_colorFilter','_enemyNameContainer','isForAnyoneFocusFriends','VarianceFormulaJS','ActSeq_Mechanics_EtbAction','Window_BattleLog_displayCritical','ShowSubstitute','isSelected','Game_Battler_regenerateAll','FvAniCenterAll','okTargetSelectionVisibility','deadMembers','ActSeq_Mechanics_AtbGauge','constructor','removeStatesAuto','showPortraits','removeDamageSprite','_spriteset','customFontFace','getBattlerFromKey','select','endAction','canAddSkillCommand','VisuMZ_2_BattleSystemATB','_angleEasing','Game_Map_battleback1Name','sprite','singleSkill','Game_Interpreter_command301','addSingleSkillCommand','opacity','COMBAT\x20LOG','Window_BattleLog_performActionEnd','processBattleBalloonRequests','forceSelect','abort','battleLayoutStyle','_padding','Game_Battler_performDamage','updateShadowPosition','shouldHideBattleEndPopups','actionBattleCoreJS','USER-DEFINED\x205','VisuMZ_3_StateTooltips','_subject','JS\x20%1END\x20ACTION','updateAction','hitsDmgFmt','hpRate','MAXMP','itemHeight','battleCoreTpbMainPhase','turns','setBattleAngle','executeHpDamage','Scene_Battle_createPartyCommandWindowIBS','displayHpDamage','mpDamage','thrust','USER-DEFINED\x203','WaitForNewLine','ActionSkillMsg2','_weather','drawIcon','getBattlePortrait','time','_helpWindow','Immortal','battleAngle','isDying','_tempActor','ESCAPE','ActSeq_Grid_MoveTargetsInDirection','ActSeq_Mechanics_HpMpTp','processPostBattleCommonEvents','addImmortal','battlelog','setupBattleback','innerWidth','addAnimationSpriteToContainer','getBattlePortraitFilename','ActSeq_Skew_Reset','clearOnceParallelInterpreters','_enemySprite','addChildToBack','setBattlerMotionTrailData','loadFaceImages','isPartyCommandWindowDisabled','getTraitSetKeys','touchUI','Scene_Battle_startActorSelection','ACTOR_OFFSET_X','CheckMapBattleEventValid','offsetY','_floatDuration','makeHpDamageText','ActSeq_Horror_TVCreate','Window_BattleLog_displayEvasion','ActSeq_DB_DragonbonesTimeScale','ITEM','getBattlerKeyTargetReplacement','WaitForAngle','setHelpWindowItem','user','BattleManager_onEncounter','SkillItemBorderCols','updateCollapse','sideview_ui','lifeSteaItem','isOverworld','cancelActorInput','bind','stepForward','pointX','vertCells','isEnemy','paramName','jsAccuracyAsTarget','_drawTextBody','selectPreviousCommand','displayRemovedStates','emulateAction','BackColor','isBattleTest','_targetSkewY','Scene_Battle_stop','NUM','temporaryVisibile','TimeScale','createEnemyWindow','onBattleStartBattleCore','special','displayBuffs','BravePoints','CriticalHitRateJS','Game_Battler_performMiss','%1EndBattleJS','TRAIT_PARAM','_shadowScaleX','none','updateRefresh','ExtraSettings','obj','ShowAddedDebuff','AutoBattleBgType','visualCutinPortraitIndex','addSkillTypeCommand','split','enemyNames','isOnCurrentMap','Destination','waitForNewLine','ActSeq_Mechanics_PtbFullHalfAction','deathStateId','_buttonText','_inputting','ChargeRate','_battleCoreAddedElements','motionSpeed','ActSeq_Mechanics_TextPopup','Window_ActorCommand_setup','maxWidth','AutoBattleCancel','Angle','SkillItemMiddleLayout','paramValueByName','updateAngleCalculations','ActSeq_Horror_NoiseRemove','Game_Action_isForOpponent','ReflectPlayback','hidden','selectAllEnemies','isFTB','NameOffsetX','ActSeqImpact','_text','Game_Battler_performEvasion','battleMove','HpGaugeOffsetX','Window_BattleEnemy_initialize','Game_Enemy_setup','makeActionListAutoAttack','measureTextWidth','target','commandAutoBattle','_lines','hpAffected','View\x20battle\x20member\x20status.','Item','skewBattler','actorId','traitObjects','BattleManager_startAction','canEscape','useDigitGrouping','popBaseLine','createEnemySprite','alive\x20enemies\x20not\x20target','Sprite_Battler_setBattler','isFloating','onJumpEnd','moveBattlerDistance','setBattleCameraPoint','ComboWindow_DrawJS','isQueueOptionsMenu','canAlterActionCostPTB','Sprite_Enemy_setHue','_enemyWindowMode','createMainSprite','MotionType','lastFilename','icon','startSkew','performReflection','_commandNameWindow','windowPadding','paintOpacity','ActSeq_Target_PrevTarget','Mute','BattleSystemBTB','ShowPortraits','ShowActorGauge','_forcedBattleLayout','DigitGrouping','Window_BattleActor_hide','makeAutoBattleActions','normalColor','addWindow','Scene_Battle_commandEscape','battler','onMoveEnd','performShakeFlinch','drawParamData','addSingleSkillCommands','Game_Battler_initTpbChargeTime','makeStateHelpText','Actor','SvWeaponSolo-%1-%2','_lastRegenFrameCount','reverse','callOkHandler','previousActor','addNewState','ShowReflect','ActSeq_Mechanics_BtbGain','Scene_Battle_windowAreaHeight','_angleDuration','VisuMZ_4_CombatLog','animationShouldMirror','PostStartActionJS','_executeHpDamage','Debuffs','ActSeq_Horror_TVRemove','removeBuffsAuto','PopupOffsetX','helpWindowRectBorderStyle','unchanged','noise','ActSeq_Grid_RemovePassiveStatesFromNode','ActSeq_Grid_AnimationTypeAtNode','activate','_angleWholeDuration','loadSvActor','-%1\x20MP','redraw','battleSys','_lastMpDamage','cameraClamp','updateShadow','dead\x20opponents','CmdIconOptions','isRepeated','isForFriend','isForOne','ActorJS','ActSeq_BattleLog_Refresh','attachSpritesToDistortionSprite','startBattle','_targetOpacity','drawTurnsRemaining','drawItemBackground','selectNextCommandTpb','guard','Window_BattleStatus_initialize','colSpacing','Sprite_Battler_setHome','BattleDefeatJS','faceWidth','Game_Battler_clearDamagePopup','PreDamageAsUserJS','EscapeSuccess','smoothness','ActSeq_BattleLog_Clear','getItemDamageAmountLabelBattleCore','_shake','setBalloonPose','+%1','createBattleUIOffsetX','border','_actor','Exploiter','addBoostCommand','replace','isTickBased','states','UNBOOST','isStatusAffected','loadSystem','updateFlip','BattleManager_endAction_ComboWindow','WaitForZoom','jumpBattler','STRUCT','updatePositionBattleCore','isMeleeSingleTargetAction','_returnWindow','addBattleGridMoveCommand','_baseTexture','BattleManager_inputtingAction','updateVisibility','updateAttachmentSprites','JS\x20%1END\x20TURN','EnemyOffsetY','ActSeq_Mechanics_ActiveChainInputDisable','StateOverlayOffsetX','overworldBattleback2Name','_opacityDuration','isCancelLifeSteal','fittingHeight','_jumpDuration','ActionCount','ShowSubstituteWait','itemEffectGainTp','_battlerContainer','ScaleDown','svAnchorX','processDrawEnemyBattler','DEF','Sprite_Battler_updateMain','_borderPortraitSprite','autoMeleeMultiTargetActionSet','???','Skill-%1-%2','isEffecting','inHomePosition','damage','hasBeenDefeatedBefore','isNameTemporarilyVisible','process_VisuMZ_BattleCore_DamageStyles','AutoBattleMsg','SideviewSelect','isAutoBattleCommandEnabled','SwitchCritical','PopupShiftX','applyItem','Window_BattleLog_performDamage','arPenFlat','StatusWindowAttachmentBackOffsetY','Scene_Battle_isTimeActiveIBS','STB','customDamageFormula','powerUpColor','Spriteset_Battle_createLowerLayer','DTB','filter','expTotal','command236','waitForOpacity','removedBuffs','Game_Battler_clearMotion','attackStatesRate','performMoveToPoint','_dimmerSprite','setBattleZoom','%1EndActionJS','OffsetAdjust','fight','bossCollapse','makeTargetsBattleCoreJS','updateStyleOpacity','totalDmgFmt','isDTB','MDF','statesWindowRect','performAttack','ActSeq_Movement_Scale','ActSeq_Mechanics_BoostPointsStoreData','_opacityEasing','Opacity','performCounter','_homeY','repositionCancelButtonBorderStyle','setColorTone','ClearBattleLog','ActSeq_Impact_MotionTrailRemove','VisuMZ_2_BattleSystemETB','drawActorGraphic','setActiveWeaponSet','NameFontSize','createMiss','StateOverlayOffsetY','_jumpWholeDuration','Setting','%1StartActionJS','Game_BattlerBase_allIconsIBS','_updateCursorArea','Sprite_Animation_targetSpritePosition','processTouch','makeBuffName','boxWidth','battlerSmoothImage','onTurnEnd','onFloatEnd','_buttonKey','_svBattlerData','MAT','Game_Party_addActor','setBattler','excludeListing','evade','StateID','VisuMZ_3_ActSeqProjectiles','_floatHeight','mainFontSize','_totalValue','MP_Rate','VisuMZ_1_SkillsStatesCore','_colorType','alterActionCostPTB','_skewDuration','forceAction','isDuringNonLoopingMotion','max','_shakeFlinchPower','IconStypeNorm','initBattleCore','getStypeIdWithName','enemy','buffNameFmt','fadeShiftX','portraitFlipVert','Game_Action_executeHpDamage_ComboWindow','endBattle','isAnyoneInjectAnimating','Skills','USER-DEFINED\x202','Targets1','PreDamage%1JS','basicGaugesY','AutoMeleeAoE','AUTO\x20BATTLE','createKeyJS','isSceneBattle','animationBaseDelay','Enemy-%1-%2','drawItemImagePortraitStyle','battlerHue','isSceneChanging','checkCacheKey','value1','randomTargets','_battlerName','Game_BattlerBase_param','setupMotionBlurImpactFilter','performTpbActiveCheckSwitch','BattleEndEvent','PortraitScaleBorderStyle','isFlipped','openBattleActorWindow','SceneManager_isSceneChanging','_waitCount','COMBATLOG','ActSeq_Mechanics_EmulateAttackEffect','victory','NextTurn','StateIconOffsetY','ActSeq_Set_TargetActionSet','canGuardBattleCore','Game_Battler_onBattleStart','updateGrow','addChildAt','lukEffectRate','VisuMZ_2_BattleSystemSTB','createStateIconSprite','_regionBattleback1','jump','FullActions','removeOnceParallelInterpreter','wholeActionSet','CmdTextAutoBattle','BattleStartEvent','isBreakStunned','magicSkills','DamageStyles','StatusWindowAttachmentBack','getCommonEventIdWithName','optDisplayTp','commandStyleCheck','CommandAddOptions','value','collapse','_motionSpeed','gainTp','jsAccuracy','_flipScaleX','addedStateObjects','mpHealingFmt','icons','autoBattleUseSkills','Strength','ActSeq_Mechanics_Immortal','...','Game_Action_isForAliveFriend','messageSpeed','Sprite_Actor_setActorHome','setupTextPopup','ArRedFlat','splice','normal','showAnimation','\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20Declare\x20Arguments\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20user\x20=\x20arguments[0];\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20a\x20=\x20user;\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20b\x20=\x20user;\x0a\x20\x20\x20\x20\x20\x20\x20\x20let\x20targets\x20=\x20arguments[1];\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20Process\x20Code\x0a\x20\x20\x20\x20\x20\x20\x20\x20try\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20%1\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x20catch\x20(e)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20($gameTemp.isPlaytest())\x20console.log(e);\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20Return\x20Value\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x20targets\x20||\x20[];\x0a\x20\x20\x20\x20','clearAllVisualCutins','displayAction','updateStateSpriteBattleCore','ActSeq_Cutin_EndVisualCutinEffectAll','ActSeq_Horror_Clear','isMagical','ActSeq_Mechanics_EmulateSkillEffect','hasStaticSvBattler','battleCoreResumeLaunchBattle','show','ActSeq_Grid_AddPassiveStatesToNode','cancelButtonText','updateBattleBalloons','evaded','setLetter','parallaxScrollX','ActSeq_Movement_FacePoint','BattleManager_startBattle','FlinchDistanceX','Game_Interpreter_terminate','partyCommandWindowRectBorderStyle','isConfused','NameLegacy','revealNewWeaknesses','_battleBalloonQueue','CriticalDuration','ActSeq_Animation_ActionAnimation','ActSeq_Impact_Negative','actorCommandSingleSkill','_lastHpDamage','state','_inBattleStatusWindow','retreat','updateOpacity','process_VisuMZ_BattleCore_Action_Notetags','dead\x20friends','CalcActionSpeedJS','adjustPosition_ScaleToFit','Sprite_Enemy_update','isItemCommandEnabled','BindCommonEventKeysForObj','Scene_Battle_skillWindowRect','ActSeq_Movement_WaitForScale','ActSeq_Mechanics_AnalyzeWeakness','EscapeSuccessJS','snapForBackground','ActorOffsetY','parseForcedGameTroopSettingsBattleCore','svBattlerAnchorY','NOTE','iconIndex','onOpacityEnd','ActSeq_Mechanics_AddState','drawItemImageListStyle','battleStatusSprite','StepDuration','_updateTargetValue','CheckDamageFormulaForMechanics','_updateClientArea','clearDamagePopup','\x5cC[6]%1\x5c}\x20\x5cC[4]Hit\x20Combo\x5c{','setText','needsActorInputCancel','BattleCmdList','SvWeaponMass-%1-%2','ANTI_TINT_UI','startIcon','Window_Options_addGeneralOptions','initMembers','_borderPortraitTargetX','isCommonEventReserved','NameAlwaysSelectOnly','Game_Battler_makeSpeed','HP_Flat','ALL_ACTORS','isTurnBased','clear','onRegeneratePlayStateAnimation','PostApplyAsTargetJS','mhp','ActSeq_BattleLog_PushBaseLine','jsCritRateAsTarget','isChangingOpacity','getEnemyIdWithName','undecided','_enemyMultiTargetWindow','arRedFlat','Window_BattleLog_popupDamage','position','_createClientArea','addSkillCommands','clamp','_actorWindow','targetBattlerContainerOpacity','ActSeq_Grid_TraverseToNode','isTpbReady','arPenRate','PostEndBattleJS','PostDamageJS','startGrow','FlashDuration','EmergeText','onSkewEnd','itemTargetCandidates','isForFriendBattleCore','_canLose','States','preemptive','isSideButtonLayout','checkTpbInputClose','LIGHT\x20BULB','10277670kIGNpb','svBattlerName','ConfigManager_applyData','-%1','ActSeq_Movement_Skew','Game_Action_itemHit','makeActions','alterPriority','flipVisualCutinVert','Actions','startTpbTurn','text','tone','VisuMZ_3_VisualCutinEffect','removedStateObjects','_visibleDuration','Game_Action_numRepeats','Increases\x20%1\x20to\x20%3%2\x5cC[0].\x20%4','applyVariance','_currentAngle','comboWindowOffsetX','_list','ActSeq_Camera_Offset','OffsetX','_animation','updateBossCollapse','drawItemActorFace','validTargets','_tpbNeedsPartyCommand','startWeaponAnimation','drain','attackAnimationIdSlot','Mechanics','softDamageCap','ActSeq_Animation_BalloonIconSpecific','VisuMZ_2_BattleSystemCTB','_partyCommandWindow','updateKeyboardKeys','updatePadding','ActSeq_Movement_WaitForOpacity','JSON','_customDamageFormula','itemLifeStealRate','Scene_Battle_createAllWindows_ComboWindow','WaitForMovement','ResetOffset','uiInputPosition','_commonEventIDs','isNonSubmenuCancel','_stateIconSprite','processActorCommandCancelTPB','isBuffAffected','isPreviousSceneBattleTransitionable','Sprite_Actor_updateBitmap','isDebuffAffected','isBorderPortraitSpriteVisible','damageRate','Game_BattlerBase_meetsUsableItemConditions','performMagicEvasion','battleUIOffsetX','ZZZ','Window_BattleActor_processTouch','maxCommands','pushBaseLine','loadWindowskin','ActSeq_Grid_RemoveTriggerFromNode','getDragonbones','battleInjectAni','jsCritRateAsUser','isForAliveFriend','buff','isAlwaysHidden','_cache','SkillID','shift','VisuMZ_0_CoreEngine','loadOtherActorImages','enemyStatus','performAction','MeleeDistance','ParseItemNotetags','encounterList','HelpAutoBattle','helpAreaBottom','fontSize','MANUAL','VisuMZ_2_DragonbonesUnion','weatherType','displaySubstitute','_forcedHomeX','makeSpeed','finishActorInput','swing','createString','updateStateIconSprite','isIncludedInEnemyWindow','float','Style','guardHpLifeSteal','addActor','svBattlerData','isCustomActionSequence','_statusWindow','NameOffsetY','alterCost','ActorOffsetX','onEncounter','8286688MrAgYf','getChildIndex','drawTextEx','process_VisuMZ_BattleCore_Failsafes','Shadow','_animationContainer','_item','makeActionList','Game_Action_isForFriend','exit','_immortal','ActSeq_Animation_ShowAnimation','tpDamage','JS\x20%1START\x20BATTLE','addCustomCommands','ActSeq_Camera_FocusPoint','BattleLog','isSkipPartyCommandWindow','Scene_Battle_startEnemySelection','showHelpWindow','current\x20target','Radius','CastCertain','autoSelectLastSelected','CmdIconEscape','ActSeq_Impact_ZoomBlurTargetCenter','ActSeq_Impact_ShockwaveEachTargets','_speed','BattleLayout','SkillsStatesCore','setTroopPage','StatusWindowSkinHide','portraitHue','useItem','Scene_Battle_updateCancelButton','VisuMZ_4_BreakShields','onEscapeFailure','_effectsContainer','Window_BattleLog_displayCurrentState','dataId','VisuMZ_3_BattleVoices','Game_Action_executeHpDamage','battleCamera','commandNameWindowDrawBackground','drawItemStatusXPStyle','_enemySprites','Window_BattleLog_performCounter','battleCameraData','arRedRate','maxCols','isFastForward','Sprite_Actor_moveToStartPosition','BattleManager_processVictory','ActionItemMsg','isPartyTpbInputtable','_enemyID','ENEMY_OFFSET_X','ActSeq_BattleVoice_PlayCommonLine','updateBitmap','_targets','setMoveEasingType','_duration','gainHalfActionsPTB','VisuMZ_3_SideviewBattleUI','createTroopNote','alterBreakShield','skew','Settings','guardLifeSteal','LIGHTBULB','normalIcon','skewDuration','displayReflection','isWaiting','battleInjectPrep','_colorTone','adjustFlippedBattlefield','Sprite_Battler_damageOffsetY','freezeFrame','VisualCutinEffect','StatusWindowAttachmentFront','lifeStealRate','PostStartBattleJS','removeCurrentAction','ActSeq_Camera_FocusTarget','isCertainHit','makeTpbActions','PostDamage%1JS','isItem','_growY','isArray','_enemyIDs','isBattlerGrounded','addEscapeCommand','ActSeq_Movement_HomeReset','ShowButton','code','_homeDuration','We\x20recommend\x20removing\x20mechanics\x20from\x20formulas!\x0a\x0a','updateCancelButton','_tpbSceneChangeCacheActor','isBattleSys','buffHelpFmt','Name','setup','calcWindowHeight','turnOrderChangeOTB','Game_Action_setSkill','mainSpriteScaleX','StatusWindow_RectJS','fadeShiftY','ActSeq_Mechanics_StbExploit','actor%1-portrait','DisplayAction','<%1>\x5cs*([\x5cs\x5cS]*)\x5cs*<\x5c/%1>','ForceExploiter','CalcEscapeRatioJS','performFlinch','loadSvEnemy','Window_BattleLog_performAction','removeChild','makeData','_surprise','VisuMZ_2_BattleSystemPTB','pageButtons','process_VisuMZ_BattleCore_CreateRegExp','_armorPenetration','Window_SkillList_maxCols','Sprite_Damage_createChildSprite','GroupDigits','disarmHpLifeSteal','performRecovery','map','_makeCursorAlpha','_nameTempVisibleDuration','forActor','ANGLE','base','negativeMpLifeSteal','addedBuffs','isTpb','ALL_ENEMIES','turn','isVisuMzLocalizationEnabled','svActorVertCells','parallaxHue','performJump','svBattlerShadowVisible','maxTp','extraPositionX','addText','usePremadeActionSequence','checkExtendTroopCompatibility','startShakeFlinch','%1RegenerateJS','placeStateIcon','totalHealFmt','CriticalDmgFlat','changeAtbCastTime','ActSeq_DB_DragonbonesMotionAni','updateBattleProcess','_scene','ActSeq_Movement_MoveToTarget','ActSeq_Element_Clear','format','setupBattleCore','drawStates','negativeHpLifeSteal','isAnyoneFloating','_visualHpGauge_JustDied','itemPadding','sort','endVisualCutin','formula','StepDistanceX','setActiveWeaponSlot','Game_Action_setAttack','center','ActSeq_Animation_GuardAnimation','startOpacity','createMultiTargetWindows','setReturnWindow','drawActorLevel','alive\x20battlers\x20not\x20user','stepBack','Scene_Battle_logWindowRect','setLastPluginCommandInterpreter','finishActionSet','cutinEnter','_offsetX','counterAttack','makeTargets','CmdStyle','setLastBattleSkill','displayCounter','applyEasing','isStateResist','origin','updateEventMain','loadCharacter','maxBattleMembers','canUse','ActSeq_Mechanics_BreakShieldChange','updateTargetValue','SKILLS','canAttack','TP_Flat','Game_Battler_startTpbTurn','damagePopupOffsetY','VoiceLineType','AdjustRect','disperseDamage','isAnyoneGrowing','canSingleOrMultipleSelect','registerCommand','prepareBorderActor','anchorY','ActSeq_Grid_PullToTargetNode','setupBlueRedInvertImpactFilter','RequiresDefeat','WaitCount1','onTpbCharged','setBattlerFacePoint','setBattlerFlip','selectNextCommand','drawEnemyName','getBattlePortraitOffsetX','ItemID','ParseClassNotetags','HelpFight','onBattleEnd','_actionBattlers','unshift','Game_Troop_expTotal','Game_Actor_makeActionList','_actorCommandWindow','Window_ActorCommand_initialize','processBattleCoreJS','_autoBattle','isStateAffected','selectLast','adjustWeaponSpriteOffset','pages','alive\x20battlers\x20not\x20target','weatherPower','isSTB','nameY','Wave','startSpin','ActSeq_Grid_AddTriggerToNode','actions','_growX','prev\x20target','_drawTextOutline','visualHpGauge','processExtendTroopMembers','_updateColorFilter','_defeatedEnemies','transform','currentSymbol','version','ActSeq_Mechanics_DeathBreak','processTurn','stateRate','isBattleFlipped','addDamageSprite','forceWeaponAnimation','Window_BattleLog_displayMiss','getBattleMembers','declareGlobalVariables','Sprite_Actor_createStateSprite','ActSeq_Movement_WaitForFloat','addedDebuffs','Scene_Battle_needsInputWindowChangeIBS','toString','min','enemyHiddenParameter','StartTurnWait','refreshStatusWindow','command301','PostDamageAsTargetJS','StatusWindowAttachmentFrontOffsetY','numRepeats','ShowAddedBuff','flashDuration','BattleManager_isTpbMainPhase','targetObjects','targetsForFriends','%1▼','setHalfActionsPTB','performCastAnimation','ActSeq_Movement_HomeMoveBy','sortDamageSprites','loadPicture','MaxHP','All\x20Enemies','OffsetY','enemyMpGaugeRate','Sprite_Weapon_loadBitmap','updateCommandNameWindow','active','alive\x20friends\x20not\x20user','CriticalHitMultiplier','removeChildFromUiContainer','WaitForEffect','indexOf','fillRect','targetActionSet','passiveText','setupMotion','_forceAction','isForOpponent','noSimilarSTypes','front\x20center','ActSeq_Set_SetupAction','createDistortionSprite','eraseState','setEventCallback','setHelpWindow','create','characterName','FilenameJS','createStateSprite','makeTargetSelectionMoreVisible','ActSeq_Grid_AnimationIDAtNode','onStaticEnemyBitmapLoad','makeBuffHelpText','adjustPosition_1for1','updateScale','isAnyoneJumping','ActSeq_Mechanics_CtbSpeed','alive\x20actors\x20not\x20target','_totalHits','children','applyData','_currentActor','lastBattleSkill','Game_Interpreter_updateWaitMode','gainCurrentActionsETB','_active','refreshBattlerMotions','visibilityState','MpGaugeOffsetX','WaitForProjectile','jsScaleUp','nextActiveWeaponSlot','createSeparateDamagePopups','1:1','CreateCommonEventKeys','requestBattleBalloon','isETB','battleEffect','isActiveTpb','Sprite_Enemy_updateStateSprite','StateIconOffsetX','ShakeFlinch','\x5cI[%1]\x5cHEXCOLOR<%3>%2','parameters','callNextMethod','loop','VisuMZ_1_MessageCore','isTpbMainPhase','jsScaleToFit','ShowTpDmg','resize','performDamage','statusWindowRectBorderStyle','start','isForRandom','type','IconStypeMagic','MotionIdle','DefeatEvent','actor','parallaxScrollYinvertEnemy','updateFloat','VisuMZ_1_ElementStatusCore','TpbGaugeOffsetY','cancelLifeSteal','worldTransform','Window_BattleLog_performCollapse','setupBattleCoreData','ActSeq_Grid_PushFromTargetNode','_requestRefresh','updateWeather','CustomFontFace','isAnimationPlaying','statusTextAutoBattleStyle','PreStartBattleJS','WeaponTypeID','FaceDirection','resetNameTempVisibility','_animationCount','movement','isGuard','setCommonEvent','addBattleCommandTalk','commandFight','flashColor','StartTurnShow','Scene_QuickLoad','face','ActSeq_Mechanics_CtbOrder','createCommandNameWindow','isSkewing','createAttachmentSprites','battleGrow','_actionInputIndex','isAnyoneSkewing','Sprite_Gauge_smoothness','_createEffectsContainer','ActSeq_Grid_TeleportToNode','isPlaytest','setupBattlebackBattleCore','prepareCustomActionSequence','_target','_damageCounterWindow','getAttackMotion','all\x20actors','skillWindowRect','JS\x20BATTLE\x20DEFEAT','ActSeq_Grid_AnimationJsAtNode','mainSpriteHeight','result','Variable','canInput','requestMotionRefresh','setBattlerBattleCore','BOOST','revertTpbCachedActor','AttachStateOffsetY','ActSeq_Inject_AnimationPauseResume','startPartyCommandSelection','_growWholeDuration','random','PostEndTurnJS','portrait','boxHeight','\x5c}\x5cC[21]Total\x20Damage:\x20\x5c{\x5cC[0]%1','displayReflectionPlayBack','showEnemyAttackAnimation','Sprite_Actor_update','_damages','AllowCollapse','_tempEquipCheck','drawText','_cacheTextWidth','Armor-%1-%2','getAttackMotionSlot','ActSeq_Camera_WaitForCamera','onActorOk','ActSeq_Mechanics_AddBuffDebuff','DamageStyleList','FlashColor','isForRandomBattleCore','Window_PartyCommand_initialize','_jumpHeight','SILENCE','8258005jvcNUu','alive\x20enemies','playCursor','Scene_Battle_onActorOk','subject','lineHeight','isCancelled','processDefeat','setTargetBattlerKey','innerHeight','ExtDisplayedParams','\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20Declare\x20Arguments\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20user\x20=\x20arguments[0];\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20target\x20=\x20arguments[1];\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20obj\x20=\x20arguments[2];\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20let\x20rate\x20=\x20arguments[3]\x20||\x200;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20let\x20originalRate\x20=\x20rate;\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20Declare\x20Constants\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20action\x20=\x20(this.constructor\x20===\x20Game_Action)\x20?\x20this\x20:\x20user.currentAction();\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20a\x20=\x20user;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20b\x20=\x20target;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20attacker\x20=\x20user;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20defender\x20=\x20target;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20healer\x20=\x20user;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20receiver\x20=\x20target;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20actor\x20=\x20obj;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20currentClass\x20=\x20obj;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20skill\x20=\x20(this.constructor\x20===\x20Game_Action)\x20?\x20this.item()\x20:\x20obj;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20item\x20=\x20(this.constructor\x20===\x20Game_Action)\x20?\x20this.item()\x20:\x20obj;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20weapon\x20=\x20obj;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20armor\x20=\x20obj;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20enemy\x20=\x20obj;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20state\x20=\x20obj;\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20Create\x20Compatibility\x20Variables\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20let\x20origin\x20=\x20user;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(Imported.VisuMZ_1_SkillsStatesCore\x20&&\x20$dataStates.includes(obj))\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20origin\x20=\x20target.getStateOrigin(obj.id);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20Process\x20Code\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20try\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20%1\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x20catch\x20(e)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20($gameTemp.isPlaytest())\x20console.log(e);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20NaN\x20Check\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(isNaN(rate)){\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20($gameTemp.isPlaytest())\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27NaN\x20rate\x20created\x20by\x20%2\x27.format(\x27\x27,obj.name));\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27Restoring\x20rate\x20to\x20%2\x27.format(\x27\x27,originalRate));\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20value\x20=\x20originalRate;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20Return\x20rate\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return\x20rate;\x0a\x20\x20\x20\x20\x20\x20\x20\x20','addAutoBattleCommand','addUnboostCommand','ActSeq_Horror_GlitchCreate','100%','floatBattler','drawSingleSkillCost','updateBorderStyle','createJS','ConvertParams','isCancelTriggered','extraHeight','PostStartTurnJS','sleep','Window_BattleEnemy_show','_offsetY','Text','gainMp','targetObject','walk','inBattle','Mirror','right','_lastEnemy','1752123lTEmPM','initMembersBattleCore','Parse_Notetags_Targets','Skill','SmoothImage','pageButtonPosition','AspectIcon','meetsSelectFrontviewActorConditions','PopupDuration','Users','_motionType','_motion','performMiss','HpGaugeOffsetY','setupIconTextPopup','Scene_Map_launchBattle','index','skillItemWindowRectBorderStyle','isSkillItemWindowsMiddle','setBackgroundType','attackStates','_skewX','cutinExit','ConvertActionSequenceTarget','Scene_Battle_updateStatusWindowPosition','IconSet','DefaultSoftScaler','isMVAnimation','_enemyId','_additionalSprites','ActorCmd','ShowCosts','itemHit','DualWield','drawingAreaWidth','addStateTurns','Game_Actor_equips','Scene_Battle_createAllWindowsIBS','ChangeOrderBy','ActSeq_Mechanics_EmulateSkillCost','WaitForAnimation','PopupShiftY','slices','ANGER','CommandAddAutoBattle','Game_Map_battleback2Name','STYPES','frameVisible','setupShockwaveImpactFilter','Game_Action_itemEffectAddAttackState','Scene_Battle_onActorCancel','Parse_Notetags_HelpDescription','extraPositionY','drawItemStyleIcon','adjustPosition_ScaleUp','EscapeFail','charging','setEnemyWindowMode','WindowWidth','setHorrorEffectSettings','Game_Action_isForOne','updateCustomActionSequence','isAppeared','textWidth','hitRate','_attackAnimationId','AttachStateOffsetX','Intensity','setFullActionsPTB','autoBattleWindowRect','reduce','_waitMode','process_VisuMZ_BattleCore_jsFunctions','freezeTime','isRightInputMode','scope','BattleManager_onEscapeFailure','ActSeq_Animation_ChangeBattlePortrait_JS','Game_Temp_initialize','Sprite_Battler_isMoving','restore','checkAutoCustomActionSequenceNotetagEffect','COBWEB','destroyDamageSprite','_tpbChargeTime','MAXHP','playReflection','updateBattleVariables','setSkill','_injectAnimationSprite','buffIconIndex','forceMotion','Sprite_Battler_update','_buffs','Scene_Battle_createHelpWindow','Sprite_Battler_initMembers','freezeMotion','message4','concat','isAnyoneInjectAniPrepping','isForDeadFriend','sortEnemies','aspect','tpbCommandFight','gaugeLineHeight','makeEscapeRatio','Scene_Battle_start','createPartyCommandWindowBattleCore','isMagicSkill','BattleManager_invokeCounterAttack','ParseStateNotetags','VisuMZ_2_BattleSystemOTB','CommonEventID','abnormal','surprise','damagePopupOffsetX','pha','_forActor','Turns','Window_BattleLog_pushBaseLine','_frame','Sprite_Actor_initMembers','Game_BattlerBase_eraseState','canAttackBattleCore','BgType','VisuMZ_2_AggroControlSystem\x20needs\x20to\x20be\x20updated\x20','ActSeq_Grid_ActionAnimationAtNode','chantStyle','XPActorCommandLines','destroy','isNextSceneBattleTransitionable','SwitchMissEvade','Scene_Battle_partyCommandWindowRect','BattleAI','inputtingAction','_inBattleStatusMode','motionIdle','Rate','_doubleTouch','NameAlwaysHidden','graphicType','ActSeq_Animation_WaitForAnimation','SETTINGS','battleback2Name','selectAllActors','_escapeRatio','resetResultSwitches','ActSeq_Inject_AnimationStart','Post','BattleManager_checkBattleEnd','options','AllowRandomSpeed','left','Game_Action_needsSelection','ActSeq_Impact_Desaturate','CounterPlayback','GetActionSequenceSpecialTargetWithFlags','hasSvBattler','EnemyOffsetX','_shadowSprite','iterateBattler','AniDuration','isGrowing','_battler','_eventId','process_VisuMZ_BattleCore_TraitObject_Notetags','jsOneForOne','DefaultSoftCap','addChild','isActing','RegExp','refreshRequest','%1\x20%2','<Custom\x20Action\x20Sequence>\x20notetag','with\x20latest\x20version\x20of\x20VisuMZ_1_BattleCore!','drawEnemyBattler','addNormalStatus','getBattlePortraitOffsetY','%1Apply%2JS','loadEnemy','_statusType','VisuMZ_2_BattleSystemBTB','createCancelButton','spriteId','Sprite_Battleback_adjustPosition','iconWidth','performActionEnd','lifeStealTrait','\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20Declare\x20Arguments\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20user\x20=\x20arguments[0];\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20target\x20=\x20arguments[1];\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20obj\x20=\x20arguments[2];\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20let\x20value\x20=\x20arguments[3]\x20||\x200;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20let\x20originalValue\x20=\x20value;\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20Declare\x20Constants\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20action\x20=\x20(this.constructor\x20===\x20Game_Action)\x20?\x20this\x20:\x20user.currentAction();\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20a\x20=\x20user;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20b\x20=\x20target;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20attacker\x20=\x20user;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20defender\x20=\x20target;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20healer\x20=\x20user;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20receiver\x20=\x20target;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20actor\x20=\x20obj;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20currentClass\x20=\x20obj;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20skill\x20=\x20(this.constructor\x20===\x20Game_Action)\x20?\x20this.item()\x20:\x20obj;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20item\x20=\x20(this.constructor\x20===\x20Game_Action)\x20?\x20this.item()\x20:\x20obj;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20weapon\x20=\x20obj;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20armor\x20=\x20obj;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20enemy\x20=\x20obj;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20state\x20=\x20obj;\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20Create\x20Compatibility\x20Variables\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20let\x20origin\x20=\x20user;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(Imported.VisuMZ_1_SkillsStatesCore\x20&&\x20$dataStates.includes(obj))\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20origin\x20=\x20target.getStateOrigin(obj.id);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20Process\x20Code\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20try\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20%1\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x20catch\x20(e)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20($gameTemp.isPlaytest())\x20console.log(e);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20NaN\x20Check\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(isNaN(value)){\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20($gameTemp.isPlaytest())\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27NaN\x20value\x20created\x20by\x20%2\x27.format(\x27\x27,obj.name));\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27Restoring\x20value\x20to\x20%2\x27.format(\x27\x27,originalValue));\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20value\x20=\x20originalValue;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20Return\x20Value\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return\x20value;\x0a\x20\x20\x20\x20\x20\x20\x20\x20','getSpecificBattlerKeyTarget','JS\x20%1DAMAGE\x20%2','isActor','ActSeq_Cutin_EndVisualCutinEffectType','EndBattlePopups','DisablePartyCmd','statusHelpDesc','_back1Sprite','StatusWindowAttachmentFrontOffsetX','_totalDamage','getDefeatedEnemies','CriticalHitRate','setupDesaturateImpactFilter','Filename','onAngleEnd','checkSceneBattleTransitionable','setBlendColor','DistanceY','contentsOpacity','removeActor','updateHpGaugePosition','LIGHT','FvAniEachTarget','setupNegativeImpactFilter','bitmapWidth','Shadow2','custom','debuffColor','POST-','applyHardDamageCap','logActionList','_createCursorArea','addShowHpGaugeCommand','createLowerLayer','floor','width','PreStartActionJS','BattleManager_selectNextCommand','drawSkillCost','checkShowHideSwitchNotetags','setBattleSkew','PartyCmd','faceHeight','-----','CmdTextAlign','resetFontSettings','applyBattleCoreHitRateJS','getSkillIdWithName','ActSeq_Impact_TimeScale','PARTY','LOVE','isInputting','initialize','_performDamageMotion','Equipment\x20Prediction,\x20Action\x20Comparisons,\x20and\x20more.','Amp','_distortionSprite','_stateTurns','applyCritical','_actions','ShowAddedState','_shakeFlinchDuration','damageText','getHardDamageCap','ActSeq_Animation_ChangeBattlePortrait','MaxMP','alignBattleCoreDamageSprite','ParseSkillNotetags','getNextSubjectFromPool','createHelpWindowBattleCore','drawDarkRect','ActSeq_Animation_BalloonIconRange','process_VisuMZ_BattleCore_CommonEventKeys','adjustPosition','Scene_Battle_commandFight','compatibilityVisible','loadBitmap','\x5cC[6](Actions\x20%2%1\x5cC[6])\x5cC[0]','TpGaugeOffsetY','updatePhase','setItem','parse','hpDamage','isTimeActive','pageOffsetY','globalAlpha','SlotID','targetsForOpponents','terminate','ActSeq_Impact_ZoomBlurPoint','includeState','isForOneBattleCore','_character','createTargetsJS','_stypeIDs','Spriteset_Battle_updateActors','updateCancel','WaitForCamera','minimumStayDuration','command3011','drawItemActorSvBattler','isBypassDamageCap','command301_PreBattleEvent','setupRgbSplitImpactFilter','makeBattleCommand','createRateJS','ActSeq_Mechanics_OtbOrder','frameDelay','Scene_Options_maxCommands','endInBattleStatus','clearFreezeMotion','ActSeq_Movement_MoveBy','damagePopupPosition','battlerName','ActSeq_Animation_BalloonAnimation','isBattleRefreshRequested','ActSeq_Element_ForceElements','default','Window_BattleLog_performMagicEvasion','addAutoBattleCommands','ATK','clearGlobalVariables','createPartyCommandWindow','playBattleVoice','list','MIN_SAFE_INTEGER','GuardFormulaJS','opacitySpeed','ActSeq_Movement_FaceDirection','displayChangedBuffs','hue','drawGauge','JS\x20%1APPLY\x20%2','svbattler','adjustPosition_ScaleDown','isTpbCharged','VisuMZ_3_ActSeqProjectiles\x20needs\x20to\x20be\x20updated\x20','selectedBattlers','Game_Action_executeDamage','resizeWindowXPStyle','addTextToCombatLog','clearRect','missed','executeDamage','ActSeq_Motion_WaitMotionFrame','AsUser','clearFreezeMotionForWeapons','BattleVictoryJS','currentMaxValue','attackTimesAdd','updateForceAction','wait','_deathStateApplied','clearActiveWeaponSet','contains','_pattern','delay','moveToStartPositionBattleCore','Sprite_AnimationMV_updatePosition','FrontViewSelect','Game_Action_updateLastTarget','processOk','item','_homeEasing','_branch','coreEngineRepositionEnemies','ActSeq_Movement_FaceTarget','cameraDuration','visualCutinPortraitHue','isBattlerFlipped','createBattleFieldContainer','refreshDimmerBitmap','createInBattleStatusWindow','update','FaceAway','getHalfActionsPTB','Window_Options_statusText','_forcedHomeY','skillTypes','autoBattle','isAlwaysVisible','friendsUnit','drawItem','_skewWholeDuration','battleCorePreBattleCommonEvent','CopyCombatLog','Scene_Battle_update','ForceExploited','isForAll','playOnceParallelTroopPage','stateColor','shouldDisperseDamage','isDeathStateAffected','WaitComplete','getWtypeIdWithName','_isBattlerFlipped','ConvertCount','clearForcedGameTroopSettingsBattleCore','CombatLogIcon','sliceMax','process_VisuMZ_BattleCore_PluginParams','_svBattlerSprite','changeBattlerOpacity','createAttachedSprites','AsTarget','getLastPluginCommandInterpreter','Width','drawBuffs','Targets','currentDisplayedValue','Game_BattlerBase_die','autoSelectPriority','addBattlerStates','slice','LUK','isShownOnBattlePortrait','itemEffectRecoverHp','parallaxScrollXinvertEnemy','PreDamageJS','ScaleY','Window_BattleActor_show','_homeWholeDuration','commandSymbol','itemEffectRecoverMp','clearHorrorEffects','isChanting','isBorderStylePortraitShown','gainStoredBoostPoints','BattleSystemSTB','updateMain','BattleManager_setup','_statesWindow','skillId','ParseActorNotetags','ShowHpDmg','processHandling','hitType','setHandler','autoBattleAtStart','commandEscape','isCharging','BattleManager_endAction','paramBuffRate','_flinched','evalDamageFormulaBattleCore','addLoadListener','ActSeq_ChangeSkew','_pageupButton','ActSeq_Movement_MoveToJsPoint','applyTargetFilters','_skewEasing','damageOffsetX','skill','_backAttachmentSprite','version\x20in\x20order\x20to\x20use\x20the\x20<Extend:\x20x>\x20function.','CastAnimation','updateAttachedSprites','SceneManager_push','ActSeq_Animation_BalloonIcon','getBattlerKeyTargets','Game_Battler_performActionStart','allIcons','skills','isAtbCastingState','BattlebackScale','damageOffsetY','PerformAction','length','applyBattleCoreJS','Scene_Battle_createEnemyWindow','repeatTargets','visualCutinPortraitType','command357','invokeCounterAttack','ActSeq_Grid_ClearPassiveStatesFromNode','disarmLifeSteal','playOnceParallelInterpreter','CriticalColor','isNegativeLifeSteal','Sprite_Enemy_initVisibility','setValue','actionEffect','updatePointAnimations','Game_BattlerBase_isStateResist','AutoAddState','_bypass_applyBattleCoreHitRateJS','makeDamageValue','comboWindowOffsetY','setupBattleCoreAspects','minimumHits','HpGauge','stypeId','ActSeq_Grid_AddTriggerToNodeJS','ActSeq_Zoom_WaitForZoom','_showWeapon','textBaseline','applyDamageCaps','_hideAllIcons','setHome','targetSpritePosition','actorCommandAutoBattle','_forcing','return\x200','BARE\x20HANDS','Game_Map_encounterList','extraPositionScaledY','_selectionEffectCount','_targetX','parallaxScrollY','nextActor','createContents','drawActorSimpleStatus','_skillWindow','isOptionsCommandEnabled','_hpGaugeSprite','isHiddenSkill','ActSeq_Element_AddElements','TurnsFmt','endAnimation','VisuMZ_2_WeaponSwapSystem','selectAll','ShakeFlinchDuration','bitmap','isCTB','_damagePopupArray','DistanceAdjust','requestMotion','Game_Action_itemEffectAddNormalState','waitForAnimation','enemyShowParametersIfDefeated','_endingBattle','addMeleeReturnActionSet','setClickHandler','portraitType','endIcon','_isProjectile','visible','1930MATFVK','createDamageSprite','battleOpacity','updateBattlebackBitmap','isAttack','changeCtbChargeTime','isMeleeMultiTargetAction','ActionEndUpdate','drawActorIcons','backColor','_frontAttachmentSprite','processVictory','CommandWidth','_lastPluginCommandInterpreter','save','_borderPortraitDuration','isForNotUser','includes','canMove','_baseLineStack','isTriggered','AddOption','parseLocalizedText','battleCommandIcon','performLifeSteal','angleDuration','disarmMpLifeSteal','hpDamageFmt','StatusWindowSelectableBackHide','⚠⚠⚠\x20Warning!\x20⚠⚠⚠\x0a\x0a','Scene_Boot_onDatabaseLoaded','Balloon','refreshActorPortrait','valueColor','Game_BattlerBase_initMembers','createAllWindows','DistanceX','Scene_Battle_startPartyCommandSelection','setVisibleUI','VisuMZ_2_HorrorEffects','ShakeFlinchPower','setCustomDamageFormula','debuffHelpFmt','Normal','GetActionSequenceSpecialTarget','StyleON','isForAnyoneFocusOpponents','makeSuccess','anchorX','Targets2','battlerKey','MUSIC\x20NOTE','Window_BattleLog_performSubstitute','createPageButtons','hitsHealFmt','_reflectionTarget','Game_BattlerBase_addNewState','CmdIconFight','Letter','_targetAngle','createBattleUIOffsetY','close','scale','isAutoBattle','ArRedRate','numberFontFace','frontviewSpriteY','SkillItemStandardCols','Game_System_initialize','processCancel','selectNextActor','Battle\x20Mechanic\x20found\x20within\x20%1\x20#%2\x20%3!\x0a','setBattleCameraTargets','missle','_underAnimationContainer','SvMotionIdleMass-%1-%2','SvMotionIdleSolo-%1-%2','pattern','partyCommandWindowRect','Sprite_Battler_startMove','sliceMin','svActorHorzCells','updateHelp','_commonEventQueue','statusText','CommandAddStatus','startJump','ENEMY_OFFSET_Y','smooth','ActSeq_Projectile_Animation','cameraOffsetDuration','isJumping','ActSeq_Weapon_ClearActiveWeapon','▲%1','HelpStatus','padding','DefaultDamageStyle','setSvBattlerSprite','currentExt','silentHomeMove','updateEffectContainers','createBorderStylePortraitSprite','WaitForScale','_updateCursorFilterArea','ComboWindow','applyBattleCoreCriticalHitRateJS','ActSeq_Impact_MotionTrailCreate','DamageFlat','createEnemies','makeCommandList','startHomeMove','getParamBuffAndStateRate','front\x20base','critical','HelpOptions','displayItemMessage','_tpbState','stateHelpFmt','needsSelectionBattleCore','CheckCustomActSeqNotetag','_angleRevertOnFinish','JS\x20ESCAPE\x20FAILURE','battleBalloon','battleJump','hpHealingFmt','updateBattlebackBitmap1','onEnemyCancel','addAttackCommand','VariableDmg','ActSeq_Mechanics_CustomDmgFormula','ActSeq_Motion_ClearFreezeFrame','Scene_Battle_onEnemyOk','drawComboText','addChildToUiContainer','invokeAction','getMenuImage','PreEndActionJS','animation','VisuMZ_3_BattleAI\x20needs\x20to\x20be\x20updated\x20','ActSeq_Movement_Opacity','TargetLocation','ActSeq_Motion_FreezeMotionFrame','_lastActor','attackMotions','next\x20target','2375962tafWCd','updateOnceParallelInterpreters','Buffs','All\x20Allies','_partyWindow','_handlers','addGeneralOptions','_uiContainer','isFriendly','startMotion','guardMpLifeSteal','applyAngleChange','dimColor2','battlerShadowScaleY','shadow','Scene_Battle_createActorCommandWindowIBS','call','_windowLayer','#ffffff','targetDistortionSpritePosition','clearNameTempVisibility','EFFECT_COMMON_EVENT','process_VisuMZ_BattleCore_Notetags','AspectColor','isAnyoneMoving','inBattleStatusWindowRect','command119','check_VisuMZ_BattleCore_DmgFormulaMechanics','isPTB','mmp','_opacityWholeDuration','onDatabaseLoaded','createAnimationContainer','alive\x20opponents','findTargetSprite','currentClass','performActionMotions','getColor','displayMiss','_bypassCanCounterCheck','LifeStealRegExp','requestFauxAnimation','svBattlerAnchorX','blockWidth','displayedParams','SHOW_BUTTON','ShowMpDmg','invokeMagicReflection','createActorCommandWindow','extendTroopMembers','getSkillTypes','Scene_Battle_createActorCommandWindow','ARRAYEVAL','onBattleStart','isCustomBattleScope','itemLineRect','troop','portraitIndex','contentsBack','Sprite_Actor_updateFrame','emerge','VisuMZ_3_ActSeqCamera','battleVoices','Game_Temp_requestBalloon','requestAnimation','onBattleEndBattleCore','isPhysical','#%1','addOptionsCommand','changeBattlebacks','speed','_action','weapons','playSystemSound','ActSeq_Movement_Jump','_pagedownButton','launchBattle','createEffectActionSet','ListMinRows','_cursorSprite','Update\x20your\x20Battle\x20System\x20-\x20%1\x20to\x20the\x20latest','_dragonbonesSpriteContainer','isBTB','findSymbolExt','isAutoBattleCommandAdded','buffColor','_preemptive','_activeWeaponSlot','ForceDeath','createEnemyNameContainer','turnsFmt','battleback1Name','_targetFloatHeight','ActSeq_Movement_WaitForSpin','spinBattler','Game_Interpreter_command283','AutoNotetag','QUESTION','AutoMeleeSolo','CoreEngine','ApplyImmortal','switchToWeaponType','ActSeq_Animation_ItemAnimation','PrioritySortActive','changeAtbChargeTime','parallaxHueEnemyModifier','performMoveToTargets','VisuMZ_2_BattleGridSystem','PrioritySortActors','StatusWindowSkinFilename','preparePartyRefresh','attackAnimationId1','ParseArmorNotetags','_states','battleAnimation','addBuff','attack','_hue','displayChangedStates','message2','ParseWeaponNotetags','_createCursorSprite','_motionCount','_battleCoreBattleStartEvent','Pre','PopupOffsetY','ActSeq_Impact_MotionBlurTarget','multiTargetWindowRect','StatusGraphic','ActSeq_BattleLog_AddText','getInputButtonString','AutoBattle','PreApplyJS','process_VisuMZ_BattleCore_PreBattleCommonEvent','Game_Action_makeDamageValueDisperse','Window_ItemList_maxCols','Scene_Battle_itemWindowRect','BattleManager_processAbort','ActSeq_Motion_RefreshMotion','loadBattleback1','_targetHomeX','growBattler','canUseItemCommand','_targetBattlerKey','prepare','ShowHide','performActionEndMembers','%1\x27s\x20version\x20does\x20not\x20match\x20plugin\x27s.\x20Please\x20update\x20it\x20in\x20the\x20Plugin\x20Manager.','hardDamageCap','flipVisualCutinHorz','CmdIconStatus','statesMaxWidth','alterChange','_animationSprites','TPB','textSizeEx','createInnerPortrait','evalDamageFormula','Game_Action_isForRandom','Auto-Battle,\x20Battle\x20AI,\x20Damage\x20Prediction,\x20Damage\x20Multiplier\x20Display\x0a','physical','pageButtonY','casting','battlerSprites','Spriteset_Battle_update','TALK','battleSpin','ActSeq_Impact_TimeStop','ActSeq_Mechanics_ActionEffect','updateBorderSprite','battleMembers','_appeared','ColorManager_mpColor','_multipliers','svShadow','FvAniCenterScreen','VisuMZ_2_BattleSystemFTB','ActSeq_Movement_HomeMoveToPoint','_onceParallelInterpreters','%1-%2','createAutoBattleWindow','updateJump','XPSpriteYLocation','ScaleToFit','Window_BattleEnemy_hide','VisuMZ_3_BattleAI','isDamagePopupRequested','1IKnouU','VariableID','ActSeq_Weapon_SetActiveWeapon','ext','Scene_Battle_updateBattleProcess','clearActiveWeaponSlot','performWeaponAnimation','ActSeq_Cutin_AddVisualCutinEffect','increaseHits','PreApply%1JS','ShowReflectWait','performActionStart','TextAlign','drawDebuffs','itemEffectAddAttackState','MUSIC','Duration','Index','_battleLayoutStyle','alive\x20friends','setWaitMode','hasAspectData','alive\x20enemies\x20not\x20user','applyGlobal','onHomeMoveEnd','mpColor','isGuardWaiting','StatusWindow_BgType','passive','doesPageHaveOnceParallelStart','Scene_Battle_initialize','updateBattlerContainer','equipSlots','WIDTH','normalText','\x5cC[%1]','AnchorY','setImmortal','expRate','CheckVisibleSwitchNotetags','statusDescription','drawBackgroundRect','updateTargetPosition','stateMotionIndex','clearBattlerMotionTrailData','battleCommandName','_baseY','%1▲','setStateTurns','showNormalAnimation','_methods','Direction','missile','PosOffsetX','SkewY','battleUIOffsetY','canBattlerMove','textColor','displayAffectedStatus','Sprite_Actor_setBattler','deselect','allBattleMembers','rate','StatusWindow_DrawJS','Sprite_Enemy_setBattler','abs','_itemWindow','BattleManager_onEscapeSuccess','offsetX','ActSeq_Motion_MotionType','debuffValueFmt','isAffectedByBreakShield','ActSeq_Mechanics_ArmorPenetration','startVisualCutin','svActor','Game_Action_isForDeadFriend','round','makeDeepCopy','pop','ceil','Decreases\x20%1\x20to\x20%3%2\x5cC[0].\x20%4','_allTargets','PostRegenerateJS','Game_Map_setupBattleback','PostDamageAsUserJS','addFightCommand','StepDistanceY','magicReflection','MaxLines','initTpbChargeTime','isForAnyone','AntiTintUiElements','onActorCancel','_autoBattleWindow','WEAPON\x20SWAP','processEnemyModeTouchBattleCore','_tpbChargedCounter','NameAttachStateIcon','65844KaODSS','WaitForSkew','setGuard','\x5cHEXCOLOR<%1>','updateShakeFlinch','drawActorBuffRates','setupFont','checkSubstitute','WaitForEntrance','ACTOR_OFFSET_Y','_jumpMaxHeight','iconHeight','isAnyoneSpinning','isActionSelectionValid','setupCriticalEffect','CheckVisibleSkillNotetags','startActorSelection','drawItemStyleIconText','processEscape','regionId','debuffNameFmt','autoBattleStyle','NameAsTarget','actionSplicePoint','_lineHeight','addBattleCoreAutoBattleStyleCommand','helpWindowRect','Game_Action_setItem','MultiTarget','traitSet','gradientFillRect','finalizeScale','BattleManager_startInput','InBattleStatus','_targetSkewX','statusWindowRectXPStyle','requestBalloon','_targetHomeY','action','playEnemyDamage','applySoftDamageCap','isGuardLifeSteal','_growDuration','isClicked','symbol','WaitForFloat','GRID\x20MOVE','isBattleMember','HelpSkillType','AutoBattleOK','commandNameWindowDrawText','needsSelection','BattleManager_initMembers','BattleGridSystem','charged','battleStatusWindowAnimationContainer','_iconIndex','updateMotionCount','buffValueFmt','isMoving','WaitCount','waitCount','Window_BattleLog_update','DamageType%1','windowAreaHeight','ShowRemovedState','ANNOYED','characterIndex','drawItemImageXPStyle','ShowCounterWait','refreshMotion','ScaleUp','criticalDmgFlat','_targetY','Parse_Notetags_Action','onDisabledPartyCommandSelection','PreApplyAsTargetJS','moveToStartPosition','startAction','%1\x20is\x20missing\x20a\x20required\x20plugin.\x0aPlease\x20install\x20%2\x20into\x20the\x20Plugin\x20Manager.','AllEnemiesText','isSideView','waitForJump','CreateCutinSettings','toLowerCase','softDamageCapRate','PostApplyJS','updateDuration','onGrowEnd','_enemyWindow','FlinchDistanceY','message1','WaitForJump','createActors','Sprite_Battler_updatePosition','PreEndTurnJS','<CENTER>%1','getItemDamageAmountTextOriginal','isForOpponentBattleCore','updateLastTarget','\x5cI[%1]%2','log','reserveCommonEvent','UNTITLED','FUNC','actor%1-gauge-%2','ActSeq_Projectile_Icon','ActSeq_Mechanics_BoostPointsChange','priority','waitForFloat','Scene_Battle_createAllWindows','tpbAcceleration','addBattleCoreAutoBattleStartupCommand','normalHelp','emulateActionEffect','displayTpDamage','Window_BattleLog_displayFailure','Window_BattleLog_performEvasion','visualCutinPortraitFilename','ActSeq_Movement_Spin','timeScale','_regionBattleback2','uiMenuStyle','ScaleX','pageButtonX','changePaintOpacity','BindCommonEventKeysForGroup','VisuMZ_2_PartySystem','damageCounterWindowRect','Game_Action_isForAll','setSTBExploited','retrieveBattleBalloon','MotionAni','note','performEvasion','dragonbonesData','NameAlwaysVisible','bgType','startMove','\x5cI[%1]\x5cC[%3]%2','isImmortal','PreRegenerateJS','hitFlat','applyForcedGameTroopSettingsBattleCore','_back2Sprite','updateCallMenu','okButtonText','$target','updateStatusWindowPosition','power','move','testApply','swapEnemyIDs','chant','currentAction','Linear','isOpen','isForAliveFriendBattleCore','Formula','ActSeq_Set_FinishAction','ActionSequence','updateEvent','TpbGaugeOffsetX','ActSeq_Movement_MoveToPoint','itemTextAlign','_targetOffsetY','displayType','_cancelButton','BattleManager_checkSubstitute','BattleManager_endBattle','prototype','die','getAttackWeaponAnimationId','startInjectAnimation','executeMpDamage','collapseType','commandName','numTargets','Scene_Map_initialize','QoL','ARRAYSTR','filterArea','processForcedAction','clearBattleBalloons','commandOptions','stepFlinch','removeBattleBalloon','setFrame','increaseTotal','_damageContainer','isOpponent','drawItemStatusListStyle','_preBattleCommonEvent','EasingType','itemWindowRect','mpDamageFmt','ActSeq_BattleLog_UI','weaponImageId','TextColor','_enemy','angle','PostApply%1JS','buffAdd','ActSeq_Movement_BattleStep','setupActionSet','Spriteset_Battle_createBattleField','SkewX','updateUiContainerPosition','removeImmortal','initBattlePortrait','startInBattleStatus','processRefresh','battleZoom','Game_Battler_onBattleEnd','resetBreakShield','_flashDuration'];_0x72b7=function(){return _0x3145dd;};return _0x72b7();}Window_InBattleStatus[_0x1cc45e(0xc0b)]=Object[_0x1cc45e(0x6f7)](Window_StatusBase[_0x1cc45e(0xc0b)]),Window_InBattleStatus[_0x1cc45e(0xc0b)][_0x1cc45e(0x2e2)]=Window_InBattleStatus,Window_InBattleStatus[_0x1cc45e(0x833)]={'bgType':VisuMZ[_0x1cc45e(0x2c5)]['Settings'][_0x1cc45e(0xb82)][_0x1cc45e(0xb1a)]??0x0,'statusGraphic':VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x5fb)][_0x1cc45e(0xb82)][_0x1cc45e(0xac4)]??_0x1cc45e(0x749),'statusHelpDesc':VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x5fb)][_0x1cc45e(0xb82)][_0x1cc45e(0xa11)]??_0x1cc45e(0x390),'pageButtons':VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x5fb)][_0x1cc45e(0xb82)][_0x1cc45e(0x634)]??!![],'pageButtonPosition':VisuMZ[_0x1cc45e(0x2c5)]['Settings'][_0x1cc45e(0xb82)][_0x1cc45e(0x7aa)]??_0x1cc45e(0x83d),'pageOffsetX':VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x5fb)]['InBattleStatus']['pageOffsetX']??0x0,'pageOffsetY':VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x5fb)][_0x1cc45e(0xb82)][_0x1cc45e(0x8b6)]??0x0,'buffValueFmt':VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x5fb)][_0x1cc45e(0xb82)][_0x1cc45e(0xb9b)]??_0x1cc45e(0xa10),'debuffValueFmt':VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x5fb)][_0x1cc45e(0xb82)][_0x1cc45e(0xb45)]??'▼%1','enemyStatus':VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x5fb)]['InBattleStatus'][_0x1cc45e(0x59a)]??!![],'enemyShowLevel':VisuMZ['BattleCore'][_0x1cc45e(0x5fb)][_0x1cc45e(0xb82)]['enemyShowLevel']??!![],'enemyHpGaugeRate':!![],'enemyMpGaugeRate':!![],'enemyTpGaugeRate':!![],'enemyHiddenParameter':VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x5fb)][_0x1cc45e(0xb82)][_0x1cc45e(0x6cc)]??_0x1cc45e(0x42a),'enemyShowParametersAlways':VisuMZ[_0x1cc45e(0x2c5)]['Settings'][_0x1cc45e(0xb82)]['enemyShowParametersAlways']??![],'enemyShowParametersIfBattleTest':VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x5fb)]['InBattleStatus'][_0x1cc45e(0x1f8)]??!![],'enemyShowParametersIfDefeated':VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x5fb)][_0x1cc45e(0xb82)][_0x1cc45e(0x9ab)]??!![]},Window_InBattleStatus[_0x1cc45e(0xc0b)]['initialize']=function(_0x5c985e){const _0x4fff1e=_0x1cc45e;Window_StatusBase['prototype'][_0x4fff1e(0x896)]['call'](this,_0x5c985e),this[_0x4fff1e(0x7b8)](Window_InBattleStatus[_0x4fff1e(0x833)][_0x4fff1e(0xbea)]),this[_0x4fff1e(0x399)](),this['createStatesWindow'](),this[_0x4fff1e(0x9e8)]();},Window_InBattleStatus[_0x1cc45e(0xc0b)][_0x1cc45e(0x476)]=function(_0x5d9950){const _0x489e10=_0x1cc45e;this[_0x489e10(0x848)]=_0x5d9950,this['refresh'](),this[_0x489e10(0x949)]&&this[_0x489e10(0x949)]['setBattler'](_0x5d9950);},Window_InBattleStatus[_0x1cc45e(0xc0b)]['open']=function(){const _0x26fa61=_0x1cc45e;Window_StatusBase[_0x26fa61(0xc0b)][_0x26fa61(0x256)]['call'](this);if(this[_0x26fa61(0x949)])this[_0x26fa61(0x949)]['open']();this[_0x26fa61(0x281)](),Imported[_0x26fa61(0x300)]&&SceneManager['setStateTooltipBattler'](null);},Window_InBattleStatus[_0x1cc45e(0xc0b)][_0x1cc45e(0x9f0)]=function(){const _0x12c3f0=_0x1cc45e;Window_StatusBase[_0x12c3f0(0xc0b)]['close']['call'](this);if(this[_0x12c3f0(0x949)])this[_0x12c3f0(0x949)][_0x12c3f0(0x9f0)]();},Window_InBattleStatus[_0x1cc45e(0xc0b)][_0x1cc45e(0x66d)]=function(_0x4364ee){const _0x5a4c8a=_0x1cc45e;this[_0x5a4c8a(0x410)]=_0x4364ee;},Window_InBattleStatus[_0x1cc45e(0xc0b)][_0x1cc45e(0xcc1)]=function(){const _0x4481cb=_0x1cc45e;return this['_returnWindow']||SceneManager[_0x4481cb(0x659)][_0x4481cb(0xa48)];},Window_InBattleStatus[_0x1cc45e(0xc0b)][_0x1cc45e(0x32b)]=function(){const _0x3f8e08=_0x1cc45e;Window_StatusBase[_0x3f8e08(0xc0b)][_0x3f8e08(0x32b)][_0x3f8e08(0xa54)](this),this[_0x3f8e08(0x599)]();},Window_InBattleStatus[_0x1cc45e(0xc0b)]['loadOtherActorImages']=function(){const _0x469ddb=_0x1cc45e;for(const _0x37ae33 of $gameParty[_0x469ddb(0x1be)]()){if(!_0x37ae33)continue;_0x37ae33[_0x469ddb(0x6f8)]()&&ImageManager[_0x469ddb(0x67f)](_0x37ae33[_0x469ddb(0x6f8)]()),_0x37ae33[_0x469ddb(0x8d3)]()&&ImageManager[_0x469ddb(0x3db)](_0x37ae33['battlerName']()),Imported[_0x469ddb(0xcfa)]&&_0x37ae33[_0x469ddb(0xa3a)]()&&ImageManager[_0x469ddb(0x6dd)](_0x37ae33['getMenuImage']());}},Window_InBattleStatus[_0x1cc45e(0xc0b)][_0x1cc45e(0x399)]=function(){const _0x29efbd=_0x1cc45e;this['_enemySprite']=new Sprite(),this[_0x29efbd(0x328)][_0x29efbd(0xcf1)]['x']=0.5,this['_enemySprite'][_0x29efbd(0xcf1)]['y']=0x1,this[_0x29efbd(0x84d)](this[_0x29efbd(0x328)]);},Window_InBattleStatus[_0x1cc45e(0xc0b)][_0x1cc45e(0xc6d)]=function(){const _0x3a26c4=_0x1cc45e,_0x106aa4=this[_0x3a26c4(0x454)](),_0x4767c0=new Window_InBattleStatusStates(_0x106aa4);this[_0x3a26c4(0x84d)](_0x4767c0),_0x4767c0[_0x3a26c4(0x6f6)](SceneManager[_0x3a26c4(0x659)]['_helpWindow']),this['_statesWindow']=_0x4767c0;},Window_InBattleStatus[_0x1cc45e(0xc0b)][_0x1cc45e(0x454)]=function(){const _0xd8befd=_0x1cc45e,_0xd04a07=Window_InBattleStatusStates[_0xd8befd(0x833)][_0xd8befd(0x376)],_0xf2282c=Math['min'](_0xd04a07,Math[_0xd8befd(0x884)](this['width']/0x2)),_0x4a7e44=Graphics['boxWidth']>0x44c?this[_0xd8befd(0x20f)]:this['lineHeight']()*0x4+this[_0xd8befd(0xa12)]*0x2,_0x298fe9=this['width']-_0xf2282c,_0x2a5793=this[_0xd8befd(0x20f)]-_0x4a7e44;return new Rectangle(_0x298fe9,_0x2a5793,_0xf2282c,_0x4a7e44);},Window_InBattleStatus[_0x1cc45e(0xc0b)][_0x1cc45e(0x9e8)]=function(){const _0x252dca=_0x1cc45e;if(!ConfigManager[_0x252dca(0x32e)])return;if(!Window_InBattleStatus[_0x252dca(0x833)]['pageButtons'])return;this['_pageupButton']=new Sprite_Button('pageup'),this[_0x252dca(0x959)]['x']=this[_0x252dca(0xbdd)]()+Window_InBattleStatus[_0x252dca(0x833)]['pageOffsetX'],this[_0x252dca(0x959)]['y']=this['pageButtonY']()+Window_InBattleStatus[_0x252dca(0x833)][_0x252dca(0x8b6)];const _0xec88c6=this[_0x252dca(0x959)]['x']+this[_0x252dca(0x959)][_0x252dca(0x885)];this['_pagedownButton']=new Sprite_Button(_0x252dca(0x2c3)),this[_0x252dca(0xa8f)]['x']=_0xec88c6+0x4,this[_0x252dca(0xa8f)]['y']=this[_0x252dca(0x959)]['y'],this[_0x252dca(0x84d)](this[_0x252dca(0x959)]),this[_0x252dca(0x84d)](this[_0x252dca(0xa8f)]),this['_pageupButton']['setClickHandler'](this[_0x252dca(0x3c6)][_0x252dca(0x344)](this)),this[_0x252dca(0xa8f)][_0x252dca(0x9ae)](this[_0x252dca(0x997)][_0x252dca(0x344)](this));},Window_InBattleStatus[_0x1cc45e(0xc0b)][_0x1cc45e(0xbdd)]=function(){const _0x39d602=_0x1cc45e;if(Graphics[_0x39d602(0x46e)]>0x44c&&Graphics['boxHeight']>0x2bc){if(Window_InBattleStatus[_0x39d602(0x833)][_0x39d602(0x7aa)]===_0x39d602(0x83d)){let _0x56dacb=Math['ceil']((-this['x']-0x64)/0x2);if(_0x56dacb>=-0x64)_0x56dacb=this['padding'];return _0x56dacb;}else{const _0x17c6e7=Graphics['boxWidth']-this['x']-this[_0x39d602(0x885)];let _0x130318=Math['floor']((_0x17c6e7-0x64)/0x2)+this[_0x39d602(0x885)];return _0x130318;}}else return this[_0x39d602(0x885)]-0x64-this[_0x39d602(0xa12)]/0x2;},Window_InBattleStatus[_0x1cc45e(0xc0b)][_0x1cc45e(0xae5)]=function(){const _0x2938bb=_0x1cc45e;return Graphics[_0x2938bb(0x46e)]>0x44c&&Graphics[_0x2938bb(0x76d)]>0x2bc?this[_0x2938bb(0x20f)]-0x30-this['padding']:0x30+this['padding'];},Window_InBattleStatus[_0x1cc45e(0xc0b)][_0x1cc45e(0x3c6)]=function(){const _0x3e98e1=_0x1cc45e;let _0x5a6096=this[_0x3e98e1(0x6c4)]();if(_0x5a6096[_0x3e98e1(0x96d)]<=0x1&&!Window_InBattleStatus[_0x3e98e1(0x833)][_0x3e98e1(0x59a)])return;let _0x3b64e0=_0x5a6096[_0x3e98e1(0x6e9)](this[_0x3e98e1(0x848)]);_0x3b64e0--;_0x3b64e0<0x0&&(Window_InBattleStatus[_0x3e98e1(0x833)][_0x3e98e1(0x59a)]&&(_0x5a6096=this[_0x3e98e1(0x6c4)](!![])),_0x3b64e0=_0x5a6096[_0x3e98e1(0x96d)]-0x1);const _0x33b341=_0x5a6096[_0x3b64e0];this['setBattler'](_0x33b341),SoundManager['playCursor']();},Window_InBattleStatus['prototype'][_0x1cc45e(0x997)]=function(){const _0x1a7a1a=_0x1cc45e;let _0x17aeab=this[_0x1a7a1a(0x6c4)]();if(_0x17aeab[_0x1a7a1a(0x96d)]<=0x1&&!Window_InBattleStatus[_0x1a7a1a(0x833)][_0x1a7a1a(0x59a)])return;let _0x78a94e=_0x17aeab['indexOf'](this[_0x1a7a1a(0x848)]);_0x78a94e++;_0x78a94e>=_0x17aeab[_0x1a7a1a(0x96d)]&&(Window_InBattleStatus[_0x1a7a1a(0x833)]['enemyStatus']&&(_0x17aeab=this[_0x1a7a1a(0x6c4)](!![])),_0x78a94e=0x0);const _0x127fc6=_0x17aeab[_0x78a94e];this[_0x1a7a1a(0x476)](_0x127fc6),SoundManager['playCursor']();},Window_InBattleStatus[_0x1cc45e(0xc0b)][_0x1cc45e(0x6c4)]=function(_0x1c64c3){const _0x33a86b=_0x1cc45e;let _0x2df96a=[];const _0x3d74db=_0x1c64c3?this[_0x33a86b(0x848)][_0x33a86b(0x24e)]():this[_0x33a86b(0x848)]['friendsUnit']();return _0x3d74db===$gameParty?_0x2df96a=$gameParty[_0x33a86b(0xaee)]():_0x2df96a=$gameTroop[_0x33a86b(0x1d0)](),_0x2df96a[_0x33a86b(0x280)](null);},Window_InBattleStatus[_0x1cc45e(0xc0b)][_0x1cc45e(0x90f)]=function(){const _0x26d79d=_0x1cc45e;Window_Base['prototype'][_0x26d79d(0x90f)][_0x26d79d(0xa54)](this),this[_0x26d79d(0x94d)]();},Window_InBattleStatus['prototype'][_0x1cc45e(0x94d)]=function(){const _0x4df0b0=_0x1cc45e;if(this[_0x4df0b0(0x2ce)]()){if(this[_0x4df0b0(0x797)]())return this[_0x4df0b0(0x9f8)]();if(Input[_0x4df0b0(0x3e4)](_0x4df0b0(0x7a3)))return this['nextActor']();if(Input[_0x4df0b0(0x3e4)]('left'))return this['previousActor']();}},SoundManager[_0x1cc45e(0x784)]=function(){const _0x5b68bd=_0x1cc45e;this[_0x5b68bd(0xa8d)](0x0);},Window_InBattleStatus[_0x1cc45e(0xc0b)][_0x1cc45e(0x2ce)]=function(){const _0x492e1e=_0x1cc45e;return this[_0x492e1e(0xbfd)]()&&this[_0x492e1e(0x9b2)];},Window_InBattleStatus['prototype'][_0x1cc45e(0x797)]=function(){const _0x19fb95=_0x1cc45e;if(Input[_0x19fb95(0x9c7)](_0x19fb95(0x1f7)))return!![];if(TouchInput[_0x19fb95(0x788)]())return!![];return![];},Window_InBattleStatus[_0x1cc45e(0xc0b)][_0x1cc45e(0x9f8)]=function(){const _0x44bebd=_0x1cc45e;SoundManager['playCancel'](),this[_0x44bebd(0xcd7)](),this['_statesWindow']&&(this[_0x44bebd(0x949)][_0x44bebd(0xb3b)](),this[_0x44bebd(0x949)][_0x44bebd(0xcd7)]()),SceneManager[_0x44bebd(0x659)][_0x44bebd(0x8cf)]();},Window_InBattleStatus[_0x1cc45e(0xc0b)][_0x1cc45e(0x281)]=function(){const _0x457607=_0x1cc45e;if(!this[_0x457607(0x959)])return;if(!this[_0x457607(0xa8f)])return;const _0x2016ef=$gameParty[_0x457607(0xaee)]()['length']>0x0||Window_InBattleStatus[_0x457607(0x833)][_0x457607(0x59a)];this['_pageupButton'][_0x457607(0x9b2)]=_0x2016ef,this[_0x457607(0xa8f)]['visible']=_0x2016ef;},Window_InBattleStatus['prototype']['refresh']=function(){const _0x5248ec=_0x1cc45e;Window_StatusBase[_0x5248ec(0xc0b)]['refresh'][_0x5248ec(0xa54)](this);if(this[_0x5248ec(0x328)])this['_enemySprite']['hide']();this[_0x5248ec(0x282)][_0x5248ec(0x52a)](),this[_0x5248ec(0xa7e)][_0x5248ec(0x52a)]();if(!this['_battler'])return;this[_0x5248ec(0x27c)]();},Window_InBattleStatus[_0x1cc45e(0xc0b)][_0x1cc45e(0x27c)]=function(){const _0x567ae1=_0x1cc45e;if(VisuMZ['BattleCore'][_0x567ae1(0x5fb)]['InBattleStatus'][_0x567ae1(0xb3e)])return VisuMZ['BattleCore']['Settings'][_0x567ae1(0xb82)][_0x567ae1(0xb3e)][_0x567ae1(0xa54)](this);{const _0x58944a=this[_0x567ae1(0x3f1)]()/0x2,_0x494ce6=ImageManager['faceHeight'],_0x2472f7=_0x494ce6/0x2-this[_0x567ae1(0x787)]()*1.5;this[_0x567ae1(0x461)](this[_0x567ae1(0x848)],_0x58944a+0x1,0x0,ImageManager[_0x567ae1(0x3f4)],_0x494ce6),this[_0x567ae1(0x999)](this[_0x567ae1(0x848)],_0x58944a+0xb4,_0x2472f7);}{let _0x2e28a1=this[_0x567ae1(0x7c7)](),_0x4f445e=0x0,_0x3b9ddb=Math['ceil'](this[_0x567ae1(0x7c7)]()/0x2),_0x267ad9=0x0;const _0x21bb4e=this[_0x567ae1(0xa70)]();let _0x452224=_0x4f445e;const _0x537a51=this[_0x567ae1(0x78b)]-ImageManager[_0x567ae1(0x88c)],_0x983dd=Math['ceil'](_0x21bb4e['length']/0x2)*this[_0x567ae1(0x787)]();let _0x181763=Math[_0x567ae1(0xb4e)]((_0x537a51-_0x983dd)/0x2)+ImageManager[_0x567ae1(0x88c)],_0x89268a=Math[_0x567ae1(0x884)](_0x2e28a1/0x2);this[_0x567ae1(0x949)]['y']!==0x0&&(this['_statesWindow']['y']=_0x181763);for(const _0x345660 of _0x21bb4e){this[_0x567ae1(0x8a8)](_0x452224,_0x181763,_0x89268a,this[_0x567ae1(0x787)]()),this[_0x567ae1(0x3bd)](_0x345660,_0x452224,_0x181763,_0x89268a),_0x267ad9++,_0x267ad9%0x2===0x0?(_0x452224=_0x4f445e,_0x181763+=this[_0x567ae1(0x787)]()):_0x452224=_0x3b9ddb;}}},Window_InBattleStatus[_0x1cc45e(0xc0b)][_0x1cc45e(0x831)]=function(){const _0x183341=_0x1cc45e;return VisuMZ[_0x183341(0x2c5)][_0x183341(0x5fb)][_0x183341(0xb82)]['StatusGraphic'];},Window_InBattleStatus[_0x1cc45e(0xc0b)][_0x1cc45e(0x461)]=function(_0x2148c9,_0x4c8e6a,_0xb105db,_0x112ec1,_0x518ef6){const _0x337215=_0x1cc45e;if(_0x2148c9[_0x337215(0x864)]())switch(this[_0x337215(0x831)]()){case _0x337215(0x360):break;case _0x337215(0x2ef):this[_0x337215(0x23c)](_0x2148c9,_0x4c8e6a,_0xb105db+0x1,_0x112ec1,_0x518ef6-0x2);break;case _0x337215(0x8e7):this['drawItemActorSvBattler'](_0x2148c9,_0x4c8e6a,_0xb105db+0x1,_0x112ec1,_0x518ef6-0x2);break;default:this['drawItemActorFace'](_0x2148c9,_0x4c8e6a,_0xb105db,_0x112ec1,_0x518ef6);break;}else this[_0x337215(0x854)](_0x2148c9,_0x4c8e6a,_0xb105db,_0x112ec1,_0x518ef6);},Window_InBattleStatus['prototype'][_0x1cc45e(0x567)]=function(_0x1c4376,_0x4e3ea4,_0x62e85b,_0xdd7f56,_0x240a6a){const _0x3c1e4d=_0x1cc45e;_0xdd7f56=_0xdd7f56||ImageManager['faceWidth'],_0x240a6a=_0x240a6a||ImageManager['faceHeight'];const _0x27e694=ImageManager[_0x3c1e4d(0x3f4)],_0x4759a0=_0x240a6a-0x2,_0x23e1d5=_0x4e3ea4+Math[_0x3c1e4d(0x884)]((_0xdd7f56-_0x27e694)/0x2);this[_0x3c1e4d(0x2e2)]===Window_MenuStatus&&this[_0x3c1e4d(0xbde)](_0x1c4376[_0x3c1e4d(0xb90)]()),this[_0x3c1e4d(0x1fc)](_0x1c4376,_0x23e1d5,_0x62e85b,_0x27e694,_0x4759a0),this[_0x3c1e4d(0xbde)](!![]);},Window_InBattleStatus[_0x1cc45e(0xc0b)]['drawItemActorSprite']=function(_0x4a2941,_0x562d86,_0x38f3af,_0x181d80,_0x4c441d){const _0x1477c6=_0x1cc45e;_0x181d80=_0x181d80||ImageManager[_0x1477c6(0x3f4)],_0x4c441d=_0x4c441d||ImageManager['faceHeight'];const _0x22c005=_0x4a2941['characterName'](),_0x18736d=_0x4a2941[_0x1477c6(0xba4)](),_0x3f4ada=ImageManager['loadCharacter'](_0x22c005),_0x642338=ImageManager['isBigCharacter'](_0x22c005),_0x4bb87a=_0x3f4ada[_0x1477c6(0x885)]/(_0x642338?0x3:0xc),_0x288dee=_0x3f4ada['height']/(_0x642338?0x4:0x8),_0xda7c97=_0x181d80,_0x3ae2a4=_0x4c441d-0x2,_0x2e8220=_0x562d86+Math['floor'](_0xda7c97/0x2),_0x2abdee=_0x38f3af+Math[_0x1477c6(0xb4e)]((_0x4c441d+_0x288dee)/0x2);this[_0x1477c6(0x2e2)]===Window_MenuStatus&&this[_0x1477c6(0xbde)](_0x4a2941[_0x1477c6(0xb90)]());const _0xe07da1=Math[_0x1477c6(0x6cb)](_0x181d80,_0x4bb87a),_0x9c8100=Math[_0x1477c6(0x6cb)](_0x4c441d,_0x288dee),_0x3fbc28=Math[_0x1477c6(0x884)](_0x562d86+Math['max'](_0x181d80-_0x4bb87a,0x0)/0x2),_0x4eb68=Math[_0x1477c6(0x884)](_0x38f3af+Math[_0x1477c6(0x485)](_0x4c441d-_0x288dee,0x0)/0x2),_0x168856=_0x642338?0x0:_0x18736d,_0x1b22c5=(_0x168856%0x4*0x3+0x1)*_0x4bb87a,_0x369191=Math['floor'](_0x168856/0x4)*0x4*_0x288dee;this[_0x1477c6(0x282)][_0x1477c6(0xc90)](_0x3f4ada,_0x1b22c5,_0x369191,_0xe07da1,_0x9c8100,_0x3fbc28,_0x4eb68),this['changePaintOpacity'](!![]);},Window_InBattleStatus[_0x1cc45e(0xc0b)][_0x1cc45e(0x8c6)]=function(_0x537630,_0x147748,_0x6e857e,_0x3ce37a,_0x5cf86e,_0xaeb4e8){const _0x5a566f=_0x1cc45e;_0x3ce37a=_0x3ce37a||ImageManager[_0x5a566f(0x3f4)],_0x5cf86e=_0x5cf86e||ImageManager[_0x5a566f(0x88c)];const _0x27fd06=ImageManager[_0x5a566f(0x3db)](_0xaeb4e8?_0x537630['svBattlerName']():_0x537630['battlerName']()),_0x331850=_0x27fd06[_0x5a566f(0x885)]/ImageManager[_0x5a566f(0xa04)],_0x1a471f=_0x27fd06[_0x5a566f(0x20f)]/ImageManager[_0x5a566f(0x648)],_0x12ea7d=_0x3ce37a,_0xfc29a3=_0x5cf86e-0x2,_0x17a051=_0x147748+Math[_0x5a566f(0x884)](_0x12ea7d/0x2),_0x3e3c0f=_0x6e857e+Math[_0x5a566f(0xb4e)]((_0x5cf86e+_0x1a471f)/0x2);this[_0x5a566f(0x2e2)]===Window_MenuStatus&&this[_0x5a566f(0xbde)](_0x537630['isBattleMember']());const _0x46273d=_0x537630[_0x5a566f(0x4e5)]&&_0x537630['hasStaticSvBattler'](),_0x1cac5d=0x0,_0xeb04cd=0x0,_0x12f7d0=_0x46273d?_0x27fd06[_0x5a566f(0x885)]:_0x331850,_0x1b23ae=_0x46273d?_0x27fd06[_0x5a566f(0x20f)]:_0x1a471f,_0x2a5b53=Math[_0x5a566f(0x6cb)](0x1,_0x3ce37a/_0x12f7d0,_0x5cf86e/_0x1b23ae),_0x2ee9d7=_0x2a5b53*_0x12f7d0,_0x5332bc=_0x2a5b53*_0x1b23ae,_0x1fa199=Math[_0x5a566f(0x884)](_0x147748+Math['max'](_0x3ce37a-_0x2ee9d7,0x0)/0x2),_0x596234=Math[_0x5a566f(0x884)](_0x6e857e+Math[_0x5a566f(0x485)](_0x5cf86e-_0x5332bc,0x0)/0x2);this[_0x5a566f(0x282)]['blt'](_0x27fd06,_0x1cac5d,_0xeb04cd,_0x12f7d0,_0x1b23ae,_0x1fa199,_0x596234,_0x2ee9d7,_0x5332bc),this['changePaintOpacity'](!![]);},Window_InBattleStatus[_0x1cc45e(0xc0b)][_0x1cc45e(0x854)]=function(_0x200641,_0x3f5dc8,_0x15ba54,_0x2fe9cd,_0x14a874){const _0x183240=_0x1cc45e;if(_0x200641[_0x183240(0x842)]()){this[_0x183240(0x8c6)](_0x200641,_0x3f5dc8,_0x15ba54+0x1,_0x2fe9cd,_0x14a874-0x2,!![]);return;}const _0x274b51=_0x200641[_0x183240(0x8d3)](),_0x500681=$gameSystem[_0x183240(0xbb2)]()?ImageManager[_0x183240(0x62e)](_0x274b51):ImageManager[_0x183240(0x858)](_0x274b51);_0x500681[_0x183240(0x957)](this['processDrawEnemyBattler']['bind'](this,_0x200641,_0x500681,_0x3f5dc8,_0x15ba54,_0x2fe9cd,_0x14a874));},Window_InBattleStatus['prototype'][_0x1cc45e(0x425)]=function(_0x206f85,_0x592558,_0xa263fe,_0xceb8d3,_0x4d1fc4,_0x10be94){const _0x5a968d=_0x1cc45e;if(this[_0x5a968d(0x848)]!==_0x206f85)return;this['_enemySprite'][_0x5a968d(0x4e7)](),this['_enemySprite'][_0x5a968d(0x9a4)]=new Bitmap(_0x4d1fc4,_0x10be94);const _0x275447=_0x4d1fc4,_0x34ad61=_0x10be94,_0x1ae904=Math[_0x5a968d(0x6cb)](_0x275447,_0x34ad61),_0x4e05e3=this['_enemySprite'][_0x5a968d(0x9a4)],_0x4ac3af=Math[_0x5a968d(0x6cb)](0x1,_0x1ae904/_0x592558[_0x5a968d(0x885)],_0x1ae904/_0x592558['height']),_0x42a298=_0x592558[_0x5a968d(0x885)]*_0x4ac3af,_0x3f2f55=_0x592558[_0x5a968d(0x20f)]*_0x4ac3af,_0x13fe53=Math[_0x5a968d(0xb4b)]((_0x275447-_0x42a298)/0x2),_0x45330a=Math[_0x5a968d(0xb4b)]((_0x34ad61-_0x3f2f55)/0x2);_0x4e05e3[_0x5a968d(0xc90)](_0x592558,0x0,0x0,_0x592558[_0x5a968d(0x885)],_0x592558['height'],_0x13fe53,_0x45330a,_0x42a298,_0x3f2f55),this['_enemySprite'][_0x5a968d(0xcf1)]['x']=0.5,this[_0x5a968d(0x328)]['anchor']['y']=0x1,this[_0x5a968d(0x328)]['x']=_0xa263fe+_0x4d1fc4/0x2+this[_0x5a968d(0xa12)],this['_enemySprite']['y']=_0xceb8d3+_0x10be94+this[_0x5a968d(0xa12)],this[_0x5a968d(0x328)][_0x5a968d(0x29d)](this[_0x5a968d(0x848)][_0x5a968d(0x49d)]());},Window_InBattleStatus[_0x1cc45e(0xc0b)][_0x1cc45e(0x1ce)]=function(_0x10909a,_0x101691,_0x23d96b,_0x4eedc7){const _0x299d17=_0x1cc45e;if(_0x10909a[_0x299d17(0x348)]())_0x4eedc7=this[_0x299d17(0x323)]-_0x101691;Window_StatusBase[_0x299d17(0xc0b)][_0x299d17(0x1ce)][_0x299d17(0xa54)](this,_0x10909a,_0x101691,_0x23d96b,_0x4eedc7);},Window_InBattleStatus[_0x1cc45e(0xc0b)][_0x1cc45e(0x22c)]=function(_0x40e2d3,_0x194034,_0x750c37,_0x910bd1){const _0x45fe9b=_0x1cc45e;if(!_0x40e2d3[_0x45fe9b(0x864)]())return;Window_StatusBase['prototype'][_0x45fe9b(0x22c)][_0x45fe9b(0xa54)](this,_0x40e2d3,_0x194034,_0x750c37,_0x910bd1);},Window_InBattleStatus[_0x1cc45e(0xc0b)][_0x1cc45e(0x66e)]=function(_0x5dda40,_0x5db84f,_0x4e5d27){const _0x85cf11=_0x1cc45e;if(_0x5dda40[_0x85cf11(0x348)]()&&!Window_InBattleStatus['SETTINGS']['enemyShowLevel'])return;Window_StatusBase[_0x85cf11(0xc0b)]['drawActorLevel'][_0x85cf11(0xa54)](this,_0x5dda40,_0x5db84f,_0x4e5d27);},Window_InBattleStatus[_0x1cc45e(0xc0b)]['drawActorIcons']=function(_0x155e6a,_0x5a47eb,_0x51d2df,_0x21129b){const _0x190993=_0x1cc45e;_0x155e6a[_0x190993(0x98b)]=!![],Window_StatusBase[_0x190993(0xc0b)][_0x190993(0x9bb)][_0x190993(0xa54)](this,_0x155e6a,_0x5a47eb,_0x51d2df,_0x21129b),_0x155e6a[_0x190993(0x98b)]=undefined;},VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x469)]=Game_BattlerBase[_0x1cc45e(0xc0b)][_0x1cc45e(0x967)],Game_BattlerBase[_0x1cc45e(0xc0b)][_0x1cc45e(0x967)]=function(){const _0x5a2072=_0x1cc45e;if(this[_0x5a2072(0x98b)])return[];return VisuMZ[_0x5a2072(0x2c5)][_0x5a2072(0x469)][_0x5a2072(0xa54)](this);},Window_InBattleStatus[_0x1cc45e(0xc0b)][_0x1cc45e(0xc93)]=function(_0x211027,_0x47dcd3,_0x4e4e2d,_0x106d0d){const _0x511118=_0x1cc45e,_0x5d2d46=_0x511118(0xbca)[_0x511118(0x65c)](_0x211027[_0x511118(0x9e5)](),_0x47dcd3);let _0x424cd2=![];if(_0x211027['isEnemy']()){const _0x586124=Window_InBattleStatus['SETTINGS'];if(_0x47dcd3==='hp'&&_0x586124['enemyHpGaugeRate'])_0x424cd2=!![];if(_0x47dcd3==='mp'&&_0x586124[_0x511118(0x6e1)])_0x424cd2=!![];if(_0x47dcd3==='tp'&&_0x586124['enemyTpGaugeRate'])_0x424cd2=!![];}const _0x97cb62=this[_0x511118(0xc43)](_0x5d2d46,_0x424cd2?Sprite_GaugeRate:Sprite_Gauge);_0x97cb62['setup'](_0x211027,_0x47dcd3),_0x97cb62[_0x511118(0xbf7)](_0x4e4e2d,_0x106d0d),_0x97cb62['show']();},Window_InBattleStatus[_0x1cc45e(0xc0b)]['drawingAreaWidth']=function(){const _0x3d86d2=_0x1cc45e,_0x16078d=this[_0x3d86d2(0x949)]?this[_0x3d86d2(0x949)][_0x3d86d2(0x885)]:0x0;return this[_0x3d86d2(0x323)]-_0x16078d+this[_0x3d86d2(0xa12)]*0x2;},Window_InBattleStatus[_0x1cc45e(0xc0b)][_0x1cc45e(0xa70)]=function(){const _0x52c750=_0x1cc45e;return Imported[_0x52c750(0x598)]?VisuMZ[_0x52c750(0xaa7)]['Settings']['Param'][_0x52c750(0x78c)]:[_0x52c750(0x6de),_0x52c750(0x8a3),_0x52c750(0x8da),'DEF',_0x52c750(0x474),_0x52c750(0x453),'AGI','LUK'];},Window_InBattleStatus[_0x1cc45e(0xc0b)][_0x1cc45e(0x3bd)]=function(_0xc20267,_0x366735,_0x40828e,_0x150f5b){const _0xa22c92=_0x1cc45e,_0x262a7e=Window_InBattleStatus[_0xa22c92(0x833)],_0x2b066d=Imported[_0xa22c92(0x598)];this[_0xa22c92(0x88f)]();let _0x4a5db7='',_0x55b5f3=0x0,_0x23b7c8=[_0xa22c92(0x7fa),'MAXMP','ATK','DEF',_0xa22c92(0x474),_0xa22c92(0x453),_0xa22c92(0xc9f),_0xa22c92(0x938)]['indexOf'](String(_0xc20267)['toUpperCase']()[_0xa22c92(0xc8e)]());if(_0x2b066d)_0x4a5db7=TextManager[_0xa22c92(0x349)](_0xc20267),_0x55b5f3=VisuMZ['GetParamIcon'](_0xc20267);else{if(_0x23b7c8>=0x0&&_0x23b7c8<0x8)_0x4a5db7=TextManager[_0xa22c92(0xd07)](_0x23b7c8);}if(_0x23b7c8>=0x0&&_0x23b7c8<0x8){const _0x2e1fbe=this['_battler']['_buffs'][_0x23b7c8];this[_0xa22c92(0x848)][_0xa22c92(0x7ff)](_0x2e1fbe,_0x23b7c8)!==0x0&&(_0x55b5f3=this[_0xa22c92(0x848)][_0xa22c92(0x7ff)](_0x2e1fbe,_0x23b7c8));}if(_0x4a5db7){let _0x19bbe4=_0xa22c92(0x2a1)[_0xa22c92(0x65c)](_0x4a5db7,_0x55b5f3);_0x150f5b<=0xd4&&(_0x19bbe4='\x5cC[16]%1\x5cC[0]'[_0xa22c92(0x65c)](_0x4a5db7));const _0x1285bf=_0x150f5b<=0xd4?'\x20':'\x20\x20';this[_0xa22c92(0x5ba)](_0x1285bf+_0x19bbe4,_0x366735,_0x40828e);}this['resetTextColor']();let _0x1d7746='';_0x2b066d?_0x1d7746=this[_0xa22c92(0x848)][_0xa22c92(0x37a)](_0xc20267,!![]):_0x1d7746=String(this[_0xa22c92(0x848)]['param'](_0x23b7c8));if(this[_0xa22c92(0x848)]['isEnemy']()){let _0x6901ac=!![];if(_0x262a7e['enemyShowParametersAlways'])_0x6901ac=![];if(_0x262a7e[_0xa22c92(0x1f8)]&&BattleManager[_0xa22c92(0x350)]())_0x6901ac=![];if(_0x262a7e[_0xa22c92(0x9ab)]&&$gameSystem[_0xa22c92(0x86c)]()[_0xa22c92(0x9c4)](this['_battler'][_0xa22c92(0x1d4)]()))_0x6901ac=![];_0x6901ac&&(_0x1d7746=_0x262a7e[_0xa22c92(0x6cc)]);}if(_0x23b7c8>=0x0&&_0x23b7c8<0x8){if(this[_0xa22c92(0x848)][_0xa22c92(0xa22)](_0x23b7c8)>0x1)_0x1d7746=_0x262a7e[_0xa22c92(0xb9b)][_0xa22c92(0x65c)](_0x1d7746),Imported['VisuMZ_1_SkillsStatesCore']?this['changeTextColor'](ColorManager[_0xa22c92(0xa99)]()):this['changeTextColor'](ColorManager[_0xa22c92(0x43e)]());else this[_0xa22c92(0x848)][_0xa22c92(0xa22)](_0x23b7c8)<0x1&&(_0x1d7746=_0x262a7e['debuffValueFmt'][_0xa22c92(0x65c)](_0x1d7746),Imported['VisuMZ_1_SkillsStatesCore']?this[_0xa22c92(0x238)](ColorManager[_0xa22c92(0x87d)]()):this['changeTextColor'](ColorManager[_0xa22c92(0xcf8)]()));}if(String(_0x1d7746)){const _0x461ba8=_0x150f5b<=0xd4?'\x20':'\x20\x20';this[_0xa22c92(0x775)](_0x1d7746+_0x461ba8,_0x366735,_0x40828e,_0x150f5b,_0xa22c92(0x7a3));}},Window_InBattleStatus[_0x1cc45e(0xc0b)][_0x1cc45e(0x8a8)]=function(_0x122032,_0x33b339,_0x31effd,_0x31be3e){const _0x88feaf=_0x1cc45e;_0x31be3e=_0x31be3e||this[_0x88feaf(0x787)](),this[_0x88feaf(0xa7e)][_0x88feaf(0x3ad)]=0xa0;const _0x3a30e9=ColorManager['gaugeBackColor']();this['contentsBack'][_0x88feaf(0x6ea)](_0x122032+0x1,_0x33b339+0x1,_0x31effd-0x2,_0x31be3e-0x2,_0x3a30e9),this['contentsBack']['paintOpacity']=0xff;},Game_BattlerBase[_0x1cc45e(0xc0b)]['getParamBuffAndStateRate']=function(_0x1d094f){const _0x1171f9=_0x1cc45e;let _0x674855=0x1;_0x674855*=this[_0x1171f9(0x954)](_0x1d094f);for(const _0x1becc8 of this[_0x1171f9(0x405)]()){if(!_0x1becc8)continue;for(const _0x38c10b of _0x1becc8['traits']){if(!_0x38c10b)continue;if(_0x38c10b[_0x1171f9(0x618)]!==Game_BattlerBase[_0x1171f9(0x35e)])continue;if(_0x38c10b[_0x1171f9(0x5df)]!==_0x1d094f)continue;_0x674855*=_0x38c10b['value'];}}return _0x674855;};function Window_InBattleStatusStates(){const _0x1638a0=_0x1cc45e;this[_0x1638a0(0x896)](...arguments);}Window_InBattleStatusStates[_0x1cc45e(0xc0b)]=Object[_0x1cc45e(0x6f7)](Window_Command[_0x1cc45e(0xc0b)]),Window_InBattleStatusStates[_0x1cc45e(0xc0b)]['constructor']=Window_InBattleStatusStates,Window_InBattleStatusStates['SETTINGS']={'maxWidth':VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x5fb)][_0x1cc45e(0xb82)][_0x1cc45e(0xadb)]??0x180,'drawStates':VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x5fb)]['InBattleStatus'][_0x1cc45e(0x65e)]??!![],'drawBuffs':VisuMZ[_0x1cc45e(0x2c5)]['Settings']['InBattleStatus'][_0x1cc45e(0x931)]??!![],'drawDebuffs':VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x5fb)]['InBattleStatus']['drawDebuffs']??!![],'normalIcon':VisuMZ['BattleCore'][_0x1cc45e(0x5fb)][_0x1cc45e(0xb82)][_0x1cc45e(0x5fe)]??0x54,'normalText':VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x5fb)][_0x1cc45e(0xb82)][_0x1cc45e(0xb21)]??_0x1cc45e(0x9de),'normalHelp':VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x5fb)]['InBattleStatus'][_0x1cc45e(0xbd2)]??'Status\x20is\x20currently\x20normal.','stateHelpFmt':VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x5fb)][_0x1cc45e(0xb82)][_0x1cc45e(0xa28)]??_0x1cc45e(0x851),'buffNameFmt':VisuMZ['BattleCore']['Settings'][_0x1cc45e(0xb82)][_0x1cc45e(0x48b)]??_0x1cc45e(0xb2e),'buffHelpFmt':VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x5fb)][_0x1cc45e(0xb82)][_0x1cc45e(0x61e)]??_0x1cc45e(0x55e),'debuffNameFmt':VisuMZ['BattleCore'][_0x1cc45e(0x5fb)][_0x1cc45e(0xb82)]['debuffNameFmt']??_0x1cc45e(0x6d8),'debuffHelpFmt':VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x5fb)][_0x1cc45e(0xb82)]['debuffHelpFmt']??_0x1cc45e(0xb4f),'actionsFmt':VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x5fb)][_0x1cc45e(0xb82)][_0x1cc45e(0x1cb)]??_0x1cc45e(0x8af),'turnsFmt':VisuMZ[_0x1cc45e(0x2c5)][_0x1cc45e(0x5fb)][_0x1cc45e(0xb82)][_0x1cc45e(0x99f)]??'\x5cC[5](Turns\x20%2%1\x5cC[5])\x5cC[0]','passiveText':VisuMZ['BattleCore'][_0x1cc45e(0x5fb)][_0x1cc45e(0xb82)][_0x1cc45e(0x6ec)]??'\x5cC[4](Passive)'},Window_InBattleStatusStates[_0x1cc45e(0xc0b)][_0x1cc45e(0x896)]=function(_0x4ffae1){const _0x211a54=_0x1cc45e;this[_0x211a54(0x848)]=null,Window_Command[_0x211a54(0xc0b)]['initialize']['call'](this,_0x4ffae1),this[_0x211a54(0xcd7)](),this[_0x211a54(0xb3b)](),this[_0x211a54(0x7b8)](0x2);},Window_InBattleStatusStates[_0x1cc45e(0xc0b)][_0x1cc45e(0x476)]=function(_0x4e1d2e){const _0x4025b0=_0x1cc45e;this[_0x4025b0(0x848)]=_0x4e1d2e||null,this['refresh'](),this['smoothSelect'](0x0),this[_0x4025b0(0xcff)](0x0,0x0),this[_0x4025b0(0x3d9)]();},Window_InBattleStatusStates[_0x1cc45e(0xc0b)]['playOkSound']=function(){},Window_InBattleStatusStates[_0x1cc45e(0xc0b)][_0x1cc45e(0xa20)]=function(){const _0x1caf41=_0x1cc45e;if(!this[_0x1caf41(0x848)])return;this[_0x1caf41(0x269)](),this[_0x1caf41(0x936)](),this[_0x1caf41(0x1b8)](),this[_0x1caf41(0x855)]();},Window_InBattleStatusStates[_0x1cc45e(0xc0b)]['addBattlerAspect']=function(){const _0x392f02=_0x1cc45e;if(!this['_battler'][_0x392f02(0x348)]())return;if(!this[_0x392f02(0x848)][_0x392f02(0xb14)]())return;const _0x18ee4d=this[_0x392f02(0x848)]['getAspectData']()[_0x392f02(0xc4e)],_0x4c86e6=this[_0x392f02(0x848)]['getAspectData']()[_0x392f02(0x510)],_0x42a957=this[_0x392f02(0x848)][_0x392f02(0xd08)]()['nameColor'];let _0x31048c='';_0x42a957[_0x392f02(0xc6a)](/#(.*?)/gi)&&Imported[_0x392f02(0x720)]?_0x31048c=_0x392f02(0x71c)[_0x392f02(0x65c)](_0x4c86e6,_0x18ee4d,_0x42a957):_0x31048c=_0x392f02(0xbec)['format'](_0x4c86e6,_0x18ee4d,_0x42a957),this[_0x392f02(0x273)](_0x31048c,_0x392f02(0x80b),!![]);},Window_InBattleStatusStates[_0x1cc45e(0xc0b)][_0x1cc45e(0x936)]=function(){const _0x374ae4=_0x1cc45e;if(!Window_InBattleStatusStates[_0x374ae4(0x833)][_0x374ae4(0x65e)])return;for(const _0x3c88ce of this[_0x374ae4(0x848)][_0x374ae4(0x405)]()){if(!this[_0x374ae4(0x8bc)](_0x3c88ce))continue;const _0x343e36=this[_0x374ae4(0x22b)](_0x3c88ce);this['addCommand'](_0x343e36,'state',!![],_0x3c88ce['id']);}},Window_InBattleStatusStates[_0x1cc45e(0xc0b)][_0x1cc45e(0x8bc)]=function(_0x5014ab){const _0x355426=_0x1cc45e;if(!_0x5014ab)return![];if(_0x5014ab[_0x355426(0xc4e)]['trim']()==='')return![];if(_0x5014ab[_0x355426(0xc4e)][_0x355426(0x9c4)](_0x355426(0x88d)))return![];if(_0x5014ab[_0x355426(0x510)]<=0x0)return![];if(_0x5014ab[_0x355426(0x477)])return![];return!![];},Window_InBattleStatusStates[_0x1cc45e(0xc0b)]['makeStateName']=function(_0x150228){const _0x36c36e=_0x1cc45e;let _0x3cf4ef=_0x150228['iconIndex'],_0x545fb9=_0x150228['name'],_0x3ee4fe='0';return Imported['VisuMZ_1_SkillsStatesCore']&&Imported[_0x36c36e(0x720)]&&(_0x3ee4fe=String(ColorManager['stateColor'](_0x150228))),_0x3ee4fe[_0x36c36e(0xc6a)](/#(.*?)/gi)?_0x36c36e(0x71c)[_0x36c36e(0x65c)](_0x3cf4ef,_0x545fb9,_0x3ee4fe):_0x36c36e(0xbec)[_0x36c36e(0x65c)](_0x3cf4ef,_0x545fb9,_0x3ee4fe);},Window_InBattleStatusStates[_0x1cc45e(0xc0b)]['addBattlerBuffsDebuffs']=function(){const _0x1b9e05=_0x1cc45e;for(let _0x24139c=0x0;_0x24139c<0x8;_0x24139c++){const _0x4979a8=this[_0x1b9e05(0x46d)](_0x24139c);if(!_0x4979a8)continue;this[_0x1b9e05(0x273)](_0x4979a8,'buff',!![],_0x24139c);}},Window_InBattleStatusStates[_0x1cc45e(0xc0b)]['makeBuffName']=function(_0x11eb6e){const _0x34bbdb=_0x1cc45e;if(!this[_0x34bbdb(0x848)][_0x34bbdb(0x580)](_0x11eb6e)&&!this[_0x34bbdb(0x848)][_0x34bbdb(0x583)](_0x11eb6e))return'';const _0xe91556=Window_InBattleStatusStates[_0x34bbdb(0x833)];if(this[_0x34bbdb(0x848)][_0x34bbdb(0x580)](_0x11eb6e)&&!_0xe91556[_0x34bbdb(0x931)])return'';if(this[_0x34bbdb(0x848)][_0x34bbdb(0x583)](_0x11eb6e)&&!_0xe91556[_0x34bbdb(0xb0c)])return'';const _0x1e9724=this['_battler'][_0x34bbdb(0x802)][_0x11eb6e];let _0x48e116=this[_0x34bbdb(0x848)][_0x34bbdb(0x7ff)](_0x1e9724,_0x11eb6e),_0x2cf808=TextManager[_0x34bbdb(0xd07)](_0x11eb6e);_0x1e9724>0x0?_0x2cf808=_0xe91556[_0x34bbdb(0x48b)][_0x34bbdb(0x65c)](_0x2cf808):_0x2cf808=_0xe91556[_0x34bbdb(0xb75)][_0x34bbdb(0x65c)](_0x2cf808);let _0x711d52=0x0;return Imported[_0x34bbdb(0x47f)]&&(_0x711d52=_0x1e9724>0x0?ColorManager[_0x34bbdb(0xa99)]():ColorManager[_0x34bbdb(0x87d)]()),String(_0x711d52)[_0x34bbdb(0xc6a)](/#(.*?)/gi)?_0x34bbdb(0x71c)[_0x34bbdb(0x65c)](_0x48e116,_0x2cf808,_0x711d52):_0x34bbdb(0xbec)['format'](_0x48e116,_0x2cf808,_0x711d52);},Window_InBattleStatusStates[_0x1cc45e(0xc0b)][_0x1cc45e(0x855)]=function(){const _0x29dee8=_0x1cc45e;if(this[_0x29dee8(0x562)][_0x29dee8(0x96d)]>0x0)return;const _0x1cdc69=Window_InBattleStatusStates[_0x29dee8(0x833)],_0x3f6adc=_0x1cdc69[_0x29dee8(0x5fe)],_0x429af8=_0x1cdc69[_0x29dee8(0xb21)],_0x3d2de2=_0x29dee8(0xbc5)[_0x29dee8(0x65c)](_0x3f6adc,_0x429af8);this['addCommand'](_0x3d2de2,_0x29dee8(0x4db));},Window_InBattleStatusStates[_0x1cc45e(0xc0b)][_0x1cc45e(0x918)]=function(_0x2abc70){const _0x40bb94=_0x1cc45e,_0x1ac84c=this[_0x40bb94(0xa7b)](_0x2abc70);this[_0x40bb94(0xbde)](0xff),this[_0x40bb94(0x5ba)](this[_0x40bb94(0xc11)](_0x2abc70),_0x1ac84c['x'],_0x1ac84c['y']),this[_0x40bb94(0x3ec)](_0x2abc70,_0x1ac84c);},Window_InBattleStatusStates['prototype'][_0x1cc45e(0x3ec)]=function(_0x5da0ce,_0x13f77){const _0x210322=_0x1cc45e;if(!Imported[_0x210322(0x47f)])return;const _0x263b60=this[_0x210322(0x940)](_0x5da0ce),_0xafd1e8=_0x13f77['x']+0x2;if(_0x263b60===_0x210322(0x4fc)){const _0x497431=$dataStates[this['_list'][_0x5da0ce][_0x210322(0xb02)]||0x0];this['drawActorStateTurns'](this[_0x210322(0x848)],_0x497431,_0xafd1e8,_0x13f77['y']),this['drawActorStateData'](this[_0x210322(0x848)],_0x497431,_0xafd1e8,_0x13f77['y']);}else{if(_0x263b60===_0x210322(0x593)){const _0x2b8224=this[_0x210322(0x562)][_0x5da0ce][_0x210322(0xb02)];this[_0x210322(0xcc7)](this[_0x210322(0x848)],_0x2b8224,_0xafd1e8,_0x13f77['y']),this[_0x210322(0xb66)](this[_0x210322(0x848)],_0x2b8224,_0xafd1e8,_0x13f77['y']);}}},Window_InBattleStatusStates['prototype'][_0x1cc45e(0xa05)]=function(){const _0x2768e6=_0x1cc45e,_0x3b94e8=this[_0x2768e6(0x6bb)]();let _0x3f252e='';if(_0x3b94e8===_0x2768e6(0x80b))_0x3f252e=this['_battler'][_0x2768e6(0xd08)]()[_0x2768e6(0x240)];else{if(_0x3b94e8==='state')_0x3f252e=this[_0x2768e6(0x3c0)]();else{if(_0x3b94e8===_0x2768e6(0x593))_0x3f252e=this[_0x2768e6(0x6fe)]();else _0x3b94e8===_0x2768e6(0x4db)&&(_0x3f252e=Window_InBattleStatusStates[_0x2768e6(0x833)][_0x2768e6(0xbd2)]);}}_0x3f252e?this[_0x2768e6(0x317)][_0x2768e6(0x51b)](_0x3f252e):this['_helpWindow'][_0x2768e6(0x52a)]();},Window_InBattleStatusStates[_0x1cc45e(0xc0b)][_0x1cc45e(0x3c0)]=function(){const _0x3e9f90=_0x1cc45e,_0x87810b=Window_InBattleStatusStates['SETTINGS'],_0x53b88d=this[_0x3e9f90(0xa15)]();let _0x1e41c='';const _0x3e7532=$dataStates[_0x53b88d]||null;if(_0x3e7532){const _0x3959f7=_0x87810b[_0x3e9f90(0xa28)];let _0x179937=_0x3e7532[_0x3e9f90(0xb27)]||_0x3e7532[_0x3e9f90(0x240)]||'';Imported[_0x3e9f90(0x47f)]&&(_0x179937=_0x179937[_0x3e9f90(0x65c)](this[_0x3e9f90(0x848)]['getStateDisplay'](_0x53b88d)));let _0x4d7847=_0x3e9f90(0xb1b);if(this['_battler'][_0x3e9f90(0x6a7)](_0x53b88d)){if(_0x3e7532[_0x3e9f90(0x1e5)]===0x0)_0x4d7847=_0x3e9f90(0x360);if(_0x3e7532[_0x3e9f90(0x1e5)]===0x1)_0x4d7847='actions';if(_0x3e7532[_0x3e9f90(0x1e5)]===0x2)_0x4d7847=_0x3e9f90(0x309);}const _0x430ca4=this['_battler'][_0x3e9f90(0x89b)][_0x53b88d]||0x0;let _0x3192c9='\x5cC[0]';Imported[_0x3e9f90(0x47f)]&&Imported[_0x3e9f90(0x720)]&&(_0x3192c9=ColorManager[_0x3e9f90(0x920)](_0x3e7532),_0x3192c9['match'](/#(.*?)/gi)?_0x3192c9=_0x3e9f90(0xb64)['format'](_0x3192c9):_0x3192c9=_0x3e9f90(0xb22)[_0x3e9f90(0x65c)](_0x3192c9)),_0x1e41c=_0x3959f7[_0x3e9f90(0x65c)](_0x179937,this[_0x3e9f90(0xc40)](_0x4d7847,_0x430ca4,_0x3192c9));}return _0x1e41c;},Window_InBattleStatusStates[_0x1cc45e(0xc0b)][_0x1cc45e(0x6fe)]=function(){const _0x1650f5=_0x1cc45e,_0x56b8d9=Window_InBattleStatusStates[_0x1650f5(0x833)],_0x1e0da3=this[_0x1650f5(0xa15)]();let _0x29f492='';const _0x25336c=this['_battler']['isBuffAffected'](_0x1e0da3),_0x13bb2a=_0x25336c?_0x1650f5(0x61e):_0x1650f5(0x9dd),_0x3bbfbd=_0x56b8d9[_0x13bb2a];let _0x165972='\x5cC[0]';Imported[_0x1650f5(0x47f)]&&Imported[_0x1650f5(0x720)]&&(_0x165972=_0x25336c?ColorManager['buffColor']():ColorManager[_0x1650f5(0x87d)](),_0x165972[_0x1650f5(0xc6a)](/#(.*?)/gi)?_0x165972=_0x1650f5(0xb64)[_0x1650f5(0x65c)](_0x165972):_0x165972=_0x1650f5(0xb22)[_0x1650f5(0x65c)](_0x165972));const _0x36b5e5=this[_0x1650f5(0x848)][_0x1650f5(0x295)][_0x1e0da3]||0x0;return _0x29f492=_0x3bbfbd[_0x1650f5(0x65c)](TextManager['param'](_0x1e0da3),Math[_0x1650f5(0x884)](this[_0x1650f5(0x848)]['paramBuffRate'](_0x1e0da3)*0x64)+'%',_0x165972,this['makeTurnsText'](_0x1650f5(0x309),_0x36b5e5,_0x165972)),_0x29f492;},Window_InBattleStatusStates[_0x1cc45e(0xc0b)][_0x1cc45e(0xc40)]=function(_0x1165ea,_0xcfe200,_0x258dde){const _0x1d5844=_0x1cc45e,_0x1f44b1=Window_InBattleStatusStates['SETTINGS'];let _0x4b46f3=_0x1f44b1['passiveText'];if(_0x1165ea===_0x1d5844(0x6b2))_0x4b46f3=_0x1f44b1[_0x1d5844(0x1cb)];if(_0x1165ea==='turns')_0x4b46f3=_0x1f44b1[_0x1d5844(0xa9e)];if(_0x1165ea==='none')return'';return _0x4b46f3[_0x1d5844(0x65c)](_0xcfe200,_0x258dde);};