//============================================================================= // VisuStella MZ - Sideview Battle UI // VisuMZ_3_SideviewBattleUI.js //============================================================================= var Imported = Imported || {}; Imported.VisuMZ_3_SideviewBattleUI = true; var VisuMZ = VisuMZ || {}; VisuMZ.SideviewBattleUI = VisuMZ.SideviewBattleUI || {}; VisuMZ.SideviewBattleUI.version = 1.04; //============================================================================= /*: * @target MZ * @plugindesc [RPG Maker MZ] [Tier 3] [Version 1.04] [SideviewBattleUI] * @author VisuStella * @url http://www.yanfly.moe/wiki/Sideview_Battle_UI_VisuStella_MZ * @base VisuMZ_0_CoreEngine * @base VisuMZ_1_BattleCore * @orderAfter VisuMZ_1_BattleCore * * @help * ============================================================================ * Introduction * ============================================================================ * * This plugin changes the RPG Maker MZ Battle UI for Sideview Battle Systems * into something more minimalistic. The menus are placed towards the player's * party to let the player focus their attention to the center of the screen * instead of to the lower ledges of the screen. The input command windows show * up near the inputting actor to give the player a clear understanding of who * is performing what action. * * *NOTE* To use this battle layout, you will need the updated version of * VisuStella's Battle Core. Go into its Plugin Parameters and change the * Battle Layout Settings > Battle Layout Style > plugin parameter to this * value: "Sideview Battle UI" or "sideview_ui". * * Features include all (but not limited to) the following: * * * This plugin changes the UI for the RPG Maker MZ Sideview Battle System. * * Status windows appear on the side of the screen for each actor in battle. * * The appearance is more compact for both the status windows and input * command windows. * * More of the battlefield can be seen with this kind of layout. * * Lots of customization options to adjust the status windows. * * ============================================================================ * Requirements * ============================================================================ * * This plugin is made for RPG Maker MZ. This will not work in other iterations * of RPG Maker. * * ------ Required Plugin List ------ * * * VisuMZ_0_CoreEngine * * VisuMZ_1_BattleCore * * This plugin requires the above listed plugins to be installed inside your * game's Plugin Manager list in order to work. You cannot start your game with * this plugin enabled without the listed plugins. * * ------ Tier 3 ------ * * This plugin is a Tier 3 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 adds some new hard-coded features to RPG Maker MZ's functions. * The following is a list of them. * * --- * * Sideview Only * * This plugin only works for the sideview battle system. If this layout is * selected in the Battle Core, the battle system will automatically shift to * sideview regardless of the settings. * * *NOTE* To use this battle layout, you will need the updated version of * VisuStella's Battle Core. Go into its Plugin Parameters and change the * Battle Layout Settings > Battle Layout Style > plugin parameter to this * value: "Sideview Battle UI" or "sideview_ui". * * --- * * Window Properties * * With how the battle layout works, many of the command windows used in the * battle system will have preset and hardcoded properties to them in order to * maintain a specific aesthetic. These include columns, padding, and scaling * types to name a few. * * Therefore, any plugins that may alter these effects may not have any effect * at all provided that this plugin is in a higher tier than those modifying * it. This is an intended change to maintain the aesthetic and is not a bug. * * --- * * ============================================================================ * Extra Features * ============================================================================ * * There are some extra features found if other VisuStella MZ plugins are found * present in the Plugin Manager list. * * --- * * VisuMZ_2_AggroControlSystem * VisuMZ_2_BattleSystemBTB * VisuMZ_3_BoostAction * VisuMZ_3_StateTooltips * VisuMZ_4_BreakShields * * There are features provided in this plugin for the above plugins. Their UI * elements can be shown with this plugin's status windows. * * --- * * ============================================================================ * Plugin Parameters: Battler Offset Settings * ============================================================================ * * Settings for battler sprite offsets when using the Sideview Battle UI. * Since there's more room on the screen, placing them lower will help adjust * for the player's visual comfort. * * --- * * Settings * * Perform Offset?: * - Offsets the battler sprite positions when using Sideview Battle UI. * * Offset X: * - How much to offset the sprite positions by? * - Negative goes left. Positive goes right. * * Offset Y: * - How much to offset the sprite positions by? * - Negative goes up. Positive goes down. * * --- * * ============================================================================ * Plugin Parameters: General Window Settings * ============================================================================ * * Settings for general windows when using the Sideview Battle UI. These * settings are made for the windows that aren't the status windows but are * affected by this plugin. * * --- * * Global * * UI Scale: * - What is the scaling rate for battle windows? * - Use a number between 0 and 1 for the best results. * * --- * * Help Window * * Fade BG Style?: * - Fade the Help Window background with this UI? * * --- * * Actor Command Window * * Max Rows: * - What is the maximum number of rows for the actor command window with * this UI? * * --- * * Party Command Window * * Max Rows: * - What is the maximum number of rows for the party command window with * this UI? * * --- * * Item Window * * Max Rows: * - What is the maximum number of rows for the item window with this UI? * * Width: * - What is the width item window with this UI? * - This is the width BEFORE scaling. * * Offset X: * - How much to offset the window X position by? * - Negative goes left. Positive goes right. * * Offset Y: * - How much to offset the window Y position by? * - Negative goes up. Positive goes down. * * --- * * Skill Window * * Max Rows: * - What is the maximum number of rows for the skill window with this UI? * * Width: * - What is the width skill window with this UI? * - This is the width BEFORE scaling. * * Offset X: * - How much to offset the window X position by? * - Negative goes left. Positive goes right. * * Offset Y: * - How much to offset the window Y position by? * - Negative goes up. Positive goes down. * * --- * * ============================================================================ * Plugin Parameters: Status Window Settings * ============================================================================ * * Settings for the status window when using the Sideview Battle UI. Each of * these plugin parameters allow you to adjust many of the various elements * found inside of this window. * * --- * * Dimensions * * Width Base: * - How width is each actor's status window? * - This is the width AFTER scaling. * * Height Base: * - How tall do you want the status window to be? * - 'auto' for automatic calculations. * - This is the height BEFORE scaling. * * Height Buffer: * - How much space do you want there to be vertically from window * to window? * - This is the height BEFORE scaling. * * Move Distance: * - How far will the status window move when the actor is selected * or active? * * Move Speed: * - How many pixels with the status window move per frame? * * --- * * Standard UI > BG * * Background Dim?: * - Show the dimmed background? * * --- * * Standard UI > Name * * Show?: * - Show this UI element? * * Offset X: * - How much to offset the UI X position by? * - Negative goes left. Positive goes right. * * Offset Y: * - How much to offset the UI Y position by? * - Negative goes up. Positive goes down. * * --- * * Standard UI > States * * Show?: * - Show this UI element? * * Ignore Scale?: * - Ignore scaling to show icons at their real size? * * Offset X: * - How much to offset the UI X position by? * - Negative goes left. Positive goes right. * * Offset Y: * - How much to offset the UI Y position by? * - Negative goes up. Positive goes down. * * --- * * Standard UI > TPB/ATB Gauge * * Show?: * - Show this UI element? * * Offset X: * - How much to offset the UI X position by? * - Negative goes left. Positive goes right. * * Offset Y: * - How much to offset the UI Y position by? * - Negative goes up. Positive goes down. * * --- * * Standard UI > HP Gauge * * Show?: * - Show this UI element? * * Offset X: * - How much to offset the UI X position by? * - Negative goes left. Positive goes right. * * Offset Y: * - How much to offset the UI Y position by? * - Negative goes up. Positive goes down. * * --- * * Standard UI > MP Gauge * * Show?: * - Show this UI element? * * Offset X: * - How much to offset the UI X position by? * - Negative goes left. Positive goes right. * * Offset Y: * - How much to offset the UI Y position by? * - Negative goes up. Positive goes down. * * --- * * Standard UI > TP Gauge * * Show?: * - Show this UI element? * * Offset X: * - How much to offset the UI X position by? * - Negative goes left. Positive goes right. * * Offset Y: * - How much to offset the UI Y position by? * - Negative goes up. Positive goes down. * * --- * * Compatibility UI > Aggro Gauge * * Show?: * - Show this UI element? * - Requires VisuMZ_2_AggroControlSystem! * * Offset X: * - How much to offset the UI X position by? * - Negative goes left. Positive goes right. * * Offset Y: * - How much to offset the UI Y position by? * - Negative goes up. Positive goes down. * * --- * * Compatibility UI > Boost Points * * Show?: * - Show this UI element? * - Requires VisuMZ_3_BoostAction! * * Offset X: * - How much to offset the UI X position by? * - Negative goes left. Positive goes right. * * Offset Y: * - How much to offset the UI Y position by? * - Negative goes up. Positive goes down. * * --- * * Compatibility UI > Brave Points * * Show?: * - Show this UI element? * - Requires VisuMZ_2_BattleSystemBTB! * * Offset X: * - How much to offset the UI X position by? * - Negative goes left. Positive goes right. * * Offset Y: * - How much to offset the UI Y position by? * - Negative goes up. Positive goes down. * * --- * * Compatibility UI > Break Shield * * Show?: * - Show this UI element? * - Requires VisuMZ_4_BreakShields! * * Ignore Scale?: * - Ignore scaling to show icons at their real size? * * Offset X: * - How much to offset the UI X position by? * - Negative goes left. Positive goes right. * * Offset Y: * - How much to offset the UI Y position by? * - Negative goes up. Positive goes down. * * --- * * Compatibility UI > State Tooltips * * Show?: * - Show this UI element? * - Requires VisuMZ_3_StateTooltips! * * --- * * JS * * JS: Custom UI: * - JavaScript used to add custom elements to each status window. * * --- * * ============================================================================ * 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. * * 7. If this VisuStella MZ plugin is a paid product, all project team members * must purchase their own individual copies of the paid product if they are to * use it. Usage includes working on related game mechanics, managing related * code, and/or using related Plugin Commands and features. Redistribution of * the plugin and/or its code to other members of the team is NOT allowed * unless they own the plugin itself as that conflicts with Article 4. * * 8. Any extensions and/or addendums made to this plugin's Terms of Use can be * found on VisuStella.com and must be followed. * * ============================================================================ * Credits * ============================================================================ * * If you are using this plugin, credit the following people in your game: * * Team VisuStella * * Yanfly * * Arisu * * Olivia * * Irina * * ============================================================================ * Changelog * ============================================================================ * * Version 1.04: February 10, 2022 * * Documentation Update! * ** Help file updated for new features. * * New Features! * ** New Plugin Parameter added by Olivia: * *** Plugin Parameters > Status Window Settings > Background Dim? * **** Show the dimmed background? * * Version 1.03: July 30, 2021 * * Bug Fixes! * ** Plugin Parameters for adjusting row quantity should now work properly. * Fix made by Olivia. * * Version 1.02: June 18, 2021 * * Optimization Update! * ** Plugin should run more optimized. * * Version 1.01: April 23, 2021 * * Bug Fixes! * ** Item window during battle should now align properly. Fix made by Olivia. * * Version 1.00 Official Release Date: May 12, 2021 * * Finished Plugin! * * ============================================================================ * End of Helpfile * ============================================================================ * * @ ========================================================================== * @ Plugin Parameters * @ ========================================================================== * * @param BreakHead * @text -------------------------- * @default ---------------------------------- * * @param SideviewBattleUI * @default Plugin Parameters * * @param ATTENTION * @default READ THE HELP FILE * * @param BreakSettings * @text -------------------------- * @default ---------------------------------- * * @param Battler:struct * @text Battler Offset Settings * @type struct * @desc Settings for battler sprite offsets when using the Sideview Battle UI. * @default {"Enable:eval":"true","OffsetX:num":"+0","OffsetY:num":"+128"} * * @param GeneralWindow:struct * @text General Window Settings * @type struct * @desc Settings for general windows when using the Sideview Battle UI. * @default {"Global":"","UiScale:num":"0.80","HelpWindow":"","HelpFadeStyle:eval":"true","ActorCommandWindow":"","ActorCommandWindowMaxRows:num":"8","PartyCommandWindow":"","PartyCommandWindowMaxRows:num":"8","ItemWindow":"","ItemWindowMaxRows:num":"8","ItemWindowWidth:num":"400","ItemWindowOffsetX:num":"+16","ItemWindowOffsetY:num":"+16","SkillWindow":"","SkillWindowMaxRows:num":"8","SkillWindowWidth:num":"400","SkillWindowOffsetX:num":"+16","SkillWindowOffsetY:num":"+16"} * * @param StatusWindow:struct * @text Status Window Settings * @type struct * @desc Settings for the status window when using the Sideview Battle UI. * @default {"Dimensions":"","WidthBase:num":"200","HeightBase:str":"auto","HeightBuffer:num":"4","MoveDistance:num":"48","MoveSpeed:num":"4","Standard":"","Name":"","NameShow:eval":"true","NameOffsetX:num":"+48","NameOffsetY:num":"+0","States":"","StatesShow:eval":"true","StatesIgnoreScale:eval":"true","StatesOffsetX:num":"+20","StatesOffsetY:num":"+20","Tpb":"","TpbShow:eval":"true","TpbOffsetX:num":"+44","TpbOffsetY:num":"+0","Hp":"","HpShow:eval":"true","HpOffsetX:num":"+60","HpOffsetY:num":"+0","Mp":"","MpShow:eval":"true","MpOffsetX:num":"+68","MpOffsetY:num":"+0","Tp":"","TpShow:eval":"true","TpOffsetX:num":"+74","TpOffsetY:num":"+0","Compatibility":"","Aggro":"","AggroShow:eval":"true","AggroOffsetX:num":"+44","AggroOffsetY:num":"+0","Boost":"","BoostShow:eval":"true","BoostOffsetX:num":"+52","BoostOffsetY:num":"+2","Brave":"","BraveShow:eval":"true","BraveOffsetX:num":"+52","BraveOffsetY:num":"-6","BreakShield":"","BreakShieldShow:eval":"true","BreakShieldIgnoreScale:eval":"true","BreakShieldOffsetX:num":"+20","BreakShieldOffsetY:num":"+20","StateTooltips":"","StateTooltipsShow:eval":"true","JS":"","CustomUi:func":"\"// Declare Variables\\nconst actor = arguments[0];\\nlet x = 0;\\nlet y = 0;\\nlet width = this.innerWidth;\\nlet height = this.innerHeight;\\n\\n// Draw Custom Elements\\n// Put in code you want here used for windows classes\""} * * @param BreakEnd1 * @text -------------------------- * @default ---------------------------------- * * @param End Of * @default Plugin Parameters * * @param BreakEnd2 * @text -------------------------- * @default ---------------------------------- * */ /* ---------------------------------------------------------------------------- * Battler Offset Settings * ---------------------------------------------------------------------------- */ /*~struct~Battler: * * @param Enable:eval * @text Perform Offset? * @type boolean * @on Do Offset * @off Don't Offset * @desc Offsets the battler sprite positions when using Sideview Battle UI. * @default true * * @param OffsetX:num * @text Offset X * @desc How much to offset the sprite positions by? * Negative goes left. Positive goes right. * @default +0 * * @param OffsetY:num * @text Offset Y * @desc How much to offset the sprite positions by? * Negative goes up. Positive goes down. * @default +128 * */ /* ---------------------------------------------------------------------------- * GeneralWindow Settings * ---------------------------------------------------------------------------- */ /*~struct~GeneralWindow: * * @param Global * * @param UiScale:num * @text UI Scale * @parent Global * @desc What is the scaling rate for battle windows? * Use a number between 0 and 1 for the best results. * @default 0.80 * * @param HelpWindow * @text Help Window * * @param HelpFadeStyle:eval * @text Fade BG Style? * @parent HelpWindow * @type boolean * @on Fade Background * @off Default Background * @desc Fade the Help Window background with this UI? * @default true * * @param ActorCommandWindow * @text Actor Command Window * * @param ActorCommandWindowMaxRows:num * @text Max Rows * @parent ActorCommandWindow * @type number * @min 1 * @desc What is the maximum number of rows for the actor command window with this UI? * @default 8 * * @param PartyCommandWindow * @text Party Command Window * * @param PartyCommandWindowMaxRows:num * @text Max Rows * @parent PartyCommandWindow * @type number * @min 1 * @desc What is the maximum number of rows for the party command window with this UI? * @default 8 * * @param ItemWindow * @text Item Window * * @param ItemWindowMaxRows:num * @text Max Rows * @parent ItemWindow * @type number * @min 1 * @desc What is the maximum number of rows for the item window with this UI? * @default 8 * * @param ItemWindowWidth:num * @text Width * @parent ItemWindow * @type number * @min 1 * @desc What is the width item window with this UI? * This is the width BEFORE scaling. * @default 400 * * @param ItemWindowOffsetX:num * @text Offset X * @parent ItemWindow * @desc How much to offset the window X position by? * Negative goes left. Positive goes right. * @default +16 * * @param ItemWindowOffsetY:num * @text Offset Y * @parent ItemWindow * @desc How much to offset the window Y position by? * Negative goes up. Positive goes down. * @default +16 * * @param SkillWindow * @text Skill Window * * @param SkillWindowMaxRows:num * @text Max Rows * @parent SkillWindow * @type number * @min 1 * @desc What is the maximum number of rows for the skill window with this UI? * @default 8 * * @param SkillWindowWidth:num * @text Width * @parent SkillWindow * @type number * @min 1 * @desc What is the width skill window with this UI? * This is the width BEFORE scaling. * @default 400 * * @param SkillWindowOffsetX:num * @text Offset X * @parent SkillWindow * @desc How much to offset the window X position by? * Negative goes left. Positive goes right. * @default +16 * * @param SkillWindowOffsetY:num * @text Offset Y * @parent SkillWindow * @desc How much to offset the window Y position by? * Negative goes up. Positive goes down. * @default +16 * */ /* ---------------------------------------------------------------------------- * Status Window Settings * ---------------------------------------------------------------------------- */ /*~struct~StatusWindow: * * @param Dimensions * * @param WidthBase:num * @text Width Base * @parent Dimensions * @type number * @desc How width is each actor's status window? * This is the width AFTER scaling. * @default 200 * * @param HeightBase:str * @text Height Base * @parent Dimensions * @type number * @desc How tall do you want the status window to be? * 'auto' for automatic calculations. Value is BEFORE scaling. * @default auto * * @param HeightBuffer:num * @text Height Buffer * @parent HeightBase:str * @type number * @desc How much space do you want there to be vertically from window to window? * @default 4 * * @param MoveDistance:num * @text Move Distance * @parent Dimensions * @type number * @desc How far will the status window move when * the actor is selected or active? * @default 48 * * @param MoveSpeed:num * @text Move Speed * @parent MoveDistance:num * @type number * @desc How many pixels with the status window move per frame? * @default 4 * * @param Standard * @text Standard UI * * @param BgShow:eval * @text Background Dim? * @parent Standard * @type boolean * @on Show * @off Hide * @desc Show the dimmed background? * @default true * * @param Name * @parent Standard * * @param NameShow:eval * @text Show? * @parent Name * @type boolean * @on Show * @off Hide * @desc Show this UI element? * @default true * * @param NameOffsetX:num * @text Offset X * @parent Name * @desc How much to offset the UI X position by? * Negative goes left. Positive goes right. * @default +48 * * @param NameOffsetY:num * @text Offset Y * @parent Name * @desc How much to offset the UI Y position by? * Negative goes up. Positive goes down. * @default +0 * * @param States * @parent Standard * * @param StatesShow:eval * @text Show? * @parent States * @type boolean * @on Show * @off Hide * @desc Show this UI element? * @default true * * @param StatesIgnoreScale:eval * @text Ignore Scale? * @parent States * @type boolean * @on Ignore Scaling * @off Use Scaling * @desc Ignore scaling to show icons at their real size? * @default true * * @param StatesOffsetX:num * @text Offset X * @parent States * @desc How much to offset the UI X position by? * Negative goes left. Positive goes right. * @default +20 * * @param StatesOffsetY:num * @text Offset Y * @parent States * @desc How much to offset the UI Y position by? * Negative goes up. Positive goes down. * @default +20 * * @param Tpb * @text TPB/ATB Gauge * @parent Standard * * @param TpbShow:eval * @text Show? * @parent Tpb * @type boolean * @on Show * @off Hide * @desc Show this UI element? * @default true * * @param TpbOffsetX:num * @text Offset X * @parent Tpb * @desc How much to offset the UI X position by? * Negative goes left. Positive goes right. * @default +44 * * @param TpbOffsetY:num * @text Offset Y * @parent Tpb * @desc How much to offset the UI Y position by? * Negative goes up. Positive goes down. * @default +0 * * @param Hp * @text HP Gauge * @parent Standard * * @param HpShow:eval * @text Show? * @parent Hp * @type boolean * @on Show * @off Hide * @desc Show this UI element? * @default true * * @param HpOffsetX:num * @text Offset X * @parent Hp * @desc How much to offset the UI X position by? * Negative goes left. Positive goes right. * @default +60 * * @param HpOffsetY:num * @text Offset Y * @parent Hp * @desc How much to offset the UI Y position by? * Negative goes up. Positive goes down. * @default +0 * * @param Mp * @text MP Gauge * @parent Standard * * @param MpShow:eval * @text Show? * @parent Mp * @type boolean * @on Show * @off Hide * @desc Show this UI element? * @default true * * @param MpOffsetX:num * @text Offset X * @parent Mp * @desc How much to offset the UI X position by? * Negative goes left. Positive goes right. * @default +68 * * @param MpOffsetY:num * @text Offset Y * @parent Mp * @desc How much to offset the UI Y position by? * Negative goes up. Positive goes down. * @default +0 * * @param Tp * @text TP Gauge * @parent Standard * * @param TpShow:eval * @text Show? * @parent Tp * @type boolean * @on Show * @off Hide * @desc Show this UI element? * @default true * * @param TpOffsetX:num * @text Offset X * @parent Tp * @desc How much to offset the UI X position by? * Negative goes left. Positive goes right. * @default +74 * * @param TpOffsetY:num * @text Offset Y * @parent Tp * @desc How much to offset the UI Y position by? * Negative goes up. Positive goes down. * @default +0 * * @param Compatibility * @text Compatibility UI * * @param Aggro * @text Aggro Gauge * @parent Compatibility * @default VisuMZ_2_AggroControlSystem * * @param AggroShow:eval * @text Show? * @parent Aggro * @type boolean * @on Show * @off Hide * @desc Show this UI element? * Requires VisuMZ_2_AggroControlSystem! * @default true * * @param AggroOffsetX:num * @text Offset X * @parent Aggro * @desc How much to offset the UI X position by? * Negative goes left. Positive goes right. * @default +44 * * @param AggroOffsetY:num * @text Offset Y * @parent Aggro * @desc How much to offset the UI Y position by? * Negative goes up. Positive goes down. * @default +0 * * @param Boost * @text Boost Points * @parent Compatibility * @default VisuMZ_3_BoostAction * * @param BoostShow:eval * @text Show? * @parent Boost * @type boolean * @on Show * @off Hide * @desc Show this UI element? * Requires VisuMZ_3_BoostAction! * @default true * * @param BoostOffsetX:num * @text Offset X * @parent Boost * @desc How much to offset the UI X position by? * Negative goes left. Positive goes right. * @default +52 * * @param BoostOffsetY:num * @text Offset Y * @parent Boost * @desc How much to offset the UI Y position by? * Negative goes up. Positive goes down. * @default +2 * * @param Brave * @text Brave Points * @parent Compatibility * @default VisuMZ_2_BattleSystemBTB * * @param BraveShow:eval * @text Show? * @parent Brave * @type boolean * @on Show * @off Hide * @desc Show this UI element? * Requires VisuMZ_2_BattleSystemBTB! * @default true * * @param BraveOffsetX:num * @text Offset X * @parent Brave * @desc How much to offset the UI X position by? * Negative goes left. Positive goes right. * @default +52 * * @param BraveOffsetY:num * @text Offset Y * @parent Brave * @desc How much to offset the UI Y position by? * Negative goes up. Positive goes down. * @default -6 * * @param BreakShield * @text Break Shield * @parent Compatibility * @default VisuMZ_4_BreakShields * * @param BreakShieldShow:eval * @text Show? * @parent BreakShield * @type boolean * @on Show * @off Hide * @desc Show this UI element? * Requires VisuMZ_4_BreakShields! * @default true * * @param BreakShieldIgnoreScale:eval * @text Ignore Scale? * @parent BreakShield * @type boolean * @on Ignore Scaling * @off Use Scaling * @desc Ignore scaling to show icons at their real size? * @default true * * @param BreakShieldOffsetX:num * @text Offset X * @parent BreakShield * @desc How much to offset the UI X position by? * Negative goes left. Positive goes right. * @default +20 * * @param BreakShieldOffsetY:num * @text Offset Y * @parent BreakShield * @desc How much to offset the UI Y position by? * Negative goes up. Positive goes down. * @default +20 * * @param StateTooltips * @text State Tooltips * @parent Compatibility * @default VisuMZ_3_StateTooltips * * @param StateTooltipsShow:eval * @text Show? * @parent StateTooltips * @type boolean * @on Show * @off Hide * @desc Show this UI element? * Requires VisuMZ_3_StateTooltips! * @default true * * @param JS * * @param CustomUi:func * @text JS: Custom UI * @parent JS * @type note * @desc JavaScript used to add custom elements to each status window. * @default "// Declare Variables\nconst actor = arguments[0];\nlet x = 0;\nlet y = 0;\nlet width = this.innerWidth;\nlet height = this.innerHeight;\n\n// Draw Custom Elements\n// Put in code you want here used for windows classes" * */ //============================================================================= function _0x3d88(_0x2704cc,_0x5b98b7){const _0x353657=_0x3536();return _0x3d88=function(_0x3d882f,_0x324447){_0x3d882f=_0x3d882f-0xc5;let _0x6e90a4=_0x353657[_0x3d882f];return _0x6e90a4;},_0x3d88(_0x2704cc,_0x5b98b7);}const _0x2801ab=_0x3d88;(function(_0x45c721,_0x2ee996){const _0x266c80=_0x3d88,_0x15f22e=_0x45c721();while(!![]){try{const _0x3f65f0=parseInt(_0x266c80(0x164))/0x1+parseInt(_0x266c80(0xef))/0x2+parseInt(_0x266c80(0x119))/0x3+parseInt(_0x266c80(0x1cd))/0x4+parseInt(_0x266c80(0x121))/0x5+-parseInt(_0x266c80(0x131))/0x6+-parseInt(_0x266c80(0x15e))/0x7*(parseInt(_0x266c80(0xd7))/0x8);if(_0x3f65f0===_0x2ee996)break;else _0x15f22e['push'](_0x15f22e['shift']());}catch(_0x2e543c){_0x15f22e['push'](_0x15f22e['shift']());}}}(_0x3536,0x7d936));var label=_0x2801ab(0x1d7),tier=tier||0x0,dependencies=['VisuMZ_1_BattleCore'],pluginData=$plugins[_0x2801ab(0x1dd)](function(_0x16a3fd){const _0x4ac36a=_0x2801ab;return _0x16a3fd[_0x4ac36a(0x153)]&&_0x16a3fd[_0x4ac36a(0x1f6)][_0x4ac36a(0xe4)]('['+label+']');})[0x0];VisuMZ[label][_0x2801ab(0xe2)]=VisuMZ[label][_0x2801ab(0xe2)]||{},VisuMZ['ConvertParams']=function(_0x40d854,_0x47f7b1){const _0x1cc5df=_0x2801ab;for(const _0x53c144 in _0x47f7b1){if(_0x53c144[_0x1cc5df(0x15d)](/(.*):(.*)/i)){const _0x22cf60=String(RegExp['$1']),_0x45e3c1=String(RegExp['$2'])[_0x1cc5df(0x127)]()[_0x1cc5df(0xe0)]();let _0x22d890,_0x9d0d81,_0x15aabe;switch(_0x45e3c1){case _0x1cc5df(0x178):_0x22d890=_0x47f7b1[_0x53c144]!==''?Number(_0x47f7b1[_0x53c144]):0x0;break;case _0x1cc5df(0x1e3):_0x9d0d81=_0x47f7b1[_0x53c144]!==''?JSON[_0x1cc5df(0x159)](_0x47f7b1[_0x53c144]):[],_0x22d890=_0x9d0d81['map'](_0x498bb0=>Number(_0x498bb0));break;case _0x1cc5df(0x12d):_0x22d890=_0x47f7b1[_0x53c144]!==''?eval(_0x47f7b1[_0x53c144]):null;break;case _0x1cc5df(0x124):_0x9d0d81=_0x47f7b1[_0x53c144]!==''?JSON['parse'](_0x47f7b1[_0x53c144]):[],_0x22d890=_0x9d0d81['map'](_0xd1ba64=>eval(_0xd1ba64));break;case _0x1cc5df(0x176):_0x22d890=_0x47f7b1[_0x53c144]!==''?JSON[_0x1cc5df(0x159)](_0x47f7b1[_0x53c144]):'';break;case'ARRAYJSON':_0x9d0d81=_0x47f7b1[_0x53c144]!==''?JSON[_0x1cc5df(0x159)](_0x47f7b1[_0x53c144]):[],_0x22d890=_0x9d0d81[_0x1cc5df(0x120)](_0x3ecb24=>JSON[_0x1cc5df(0x159)](_0x3ecb24));break;case _0x1cc5df(0xfb):_0x22d890=_0x47f7b1[_0x53c144]!==''?new Function(JSON[_0x1cc5df(0x159)](_0x47f7b1[_0x53c144])):new Function('return\x200');break;case _0x1cc5df(0x10a):_0x9d0d81=_0x47f7b1[_0x53c144]!==''?JSON[_0x1cc5df(0x159)](_0x47f7b1[_0x53c144]):[],_0x22d890=_0x9d0d81[_0x1cc5df(0x120)](_0x46cd76=>new Function(JSON['parse'](_0x46cd76)));break;case _0x1cc5df(0x139):_0x22d890=_0x47f7b1[_0x53c144]!==''?String(_0x47f7b1[_0x53c144]):'';break;case _0x1cc5df(0x18b):_0x9d0d81=_0x47f7b1[_0x53c144]!==''?JSON[_0x1cc5df(0x159)](_0x47f7b1[_0x53c144]):[],_0x22d890=_0x9d0d81[_0x1cc5df(0x120)](_0x228960=>String(_0x228960));break;case _0x1cc5df(0x1c0):_0x15aabe=_0x47f7b1[_0x53c144]!==''?JSON['parse'](_0x47f7b1[_0x53c144]):{},_0x22d890=VisuMZ[_0x1cc5df(0x157)]({},_0x15aabe);break;case'ARRAYSTRUCT':_0x9d0d81=_0x47f7b1[_0x53c144]!==''?JSON[_0x1cc5df(0x159)](_0x47f7b1[_0x53c144]):[],_0x22d890=_0x9d0d81[_0x1cc5df(0x120)](_0x49e3c3=>VisuMZ[_0x1cc5df(0x157)]({},JSON[_0x1cc5df(0x159)](_0x49e3c3)));break;default:continue;}_0x40d854[_0x22cf60]=_0x22d890;}}return _0x40d854;},(_0x5ebb35=>{const _0x5d3663=_0x2801ab,_0x37238b=_0x5ebb35[_0x5d3663(0x1be)];for(const _0x5ccb1f of dependencies){if(!Imported[_0x5ccb1f]){alert('%1\x20is\x20missing\x20a\x20required\x20plugin.\x0aPlease\x20install\x20%2\x20into\x20the\x20Plugin\x20Manager.'[_0x5d3663(0x1a8)](_0x37238b,_0x5ccb1f)),SceneManager[_0x5d3663(0x1d5)]();break;}}const _0xdb4a9e=_0x5ebb35['description'];if(_0xdb4a9e['match'](/\[Version[ ](.*?)\]/i)){const _0x4f0f5c=Number(RegExp['$1']);if(_0x4f0f5c!==VisuMZ[label][_0x5d3663(0xe8)]){if(_0x5d3663(0x1c2)===_0x5d3663(0x1c2))alert(_0x5d3663(0x11b)['format'](_0x37238b,_0x4f0f5c)),SceneManager[_0x5d3663(0x1d5)]();else{const _0x158072=_0x367176[_0x5d3663(0x1d7)][_0x5d3663(0x169)][_0x5d3663(0x195)](this);return _0x196f44['isUsingSideviewUiLayout']()&&(_0x158072['y']=_0x3ce3fc[_0x5d3663(0x1f0)]*0xa,_0x158072[_0x5d3663(0x1f0)]=0x0),_0x158072;}}}if(_0xdb4a9e['match'](/\[Tier[ ](\d+)\]/i)){if(_0x5d3663(0x152)!==_0x5d3663(0x152))return _0x45d114[_0x5d3663(0x1fe)]&&_0x42174a[_0x5d3663(0x1d9)]&&_0x1c9f78['VisuMZ_2_AggroControlSystem']&&_0x966384[_0x5d3663(0x162)]&&_0x3d777a[_0x5d3663(0x16b)][_0x5d3663(0xe2)]['Aggro'][_0x5d3663(0xe7)];else{const _0x5a8df7=Number(RegExp['$1']);if(_0x5a8df7this['x'])this['x']=Math[_0x18fd0e(0x1ff)](this['x']+_0xf44ef6,this['_targetX']);else this[_0x18fd0e(0x148)]