DoubleX RMMV Superlative ATB
#1
Note
While this plugin's already fully functional, there are still many more modules to be implemented, so the feature set isn't complete yet.

Purpose
To be the most flexible, performant and powerful ATB system framework with the greatest amount of freedom while being user-friendly

Introduction
Code:
*    1. This plugin aims to be the most flexible, performant and powerful
*       ATB system with the greatest amount of freedom for users to fulfill
*       as many functional needs as they want in as many ways as they want
*    2. You may want to treat this as a nano ATB framework as part of the
*       system's written by you via parameters/configurations/notetags/calls
*    3. Almost every parameters and notetags can be written as direct
*       JavaScript, thus giving you the maximum amount of control over them
*    4. (VERY ADVANCED)You can even change most of those JavaScript codes
*       written by you on the fly(and let your players do so with a system
*       settings plugin), but you should only do so if you really know what
*       you're truly doing

Video



















Games using this plugin
None so far

Finished Modules
Code:
 *      1. Core Module
 *         - Lets you enable and disable this plugin on the fly
 *         - Lets you define the battle turn in terms of number of actions
 *           executed, or frames/seconds elapsed
 *         - Lets you set the maximum ATB value of each battler
 *         - Lets you set some states to have their turn counts updated right
 *           before the battler involved executes actions
 *      2. (v0.03a+)Bar Module
 *         - Lets you show the battler ATB bars on the battler sprites
 *         - Lets you show the actor ATB bars attached to the status window
 *      3. (v0.01a+)Hotkey Module
 *         - Lets you set some hotkeys to change the currently selected
 *           inputable actors
 *      4. (v0.02a+)Wait Module
 *         - Lets you set the ATB frame update wait conditions
 *         - Lets you show the ATB frame update force status
 *         - Lets you set some hotkeys to forcibly run/stop the ATB frame
 *           updates
 *         - Lets you show some clickable command windows behaving like the
 *           aforementioned hotkeys
 *      5. (v0.04a+)Charge Module
 *         - Lets you set some skills/items to need to be charged before being
 *           executed
 *         - Lets you set some hotkeys to cancel the action being charged(this
 *           applies to those not needing charging as well if the players
 *           cancel fast enough)
 *         - Lets you set some hotkeys to force the action charge so it can be
 *           executed before the charge's full or overcharged beyond the
 *           maximum charge value
 *      6. (v0.05a+)Cooldown Module
 *         - Lets you set some skills/items to cause the battler involved need
 *           to be cooled down after executing those skills/items
 *         - Lets you set some hotkeys to cancel the the battler cooldown
 *      7. (v0.12a+)Countdown Module
 *          - Lets you set some states to have their turn count updated based
 *            on the number of frames/seconds elapsed, with additional effects
 *            triggered upon each turn count update
 *      8. (v0.13a+)CTB Module
 *          - Lets you change toggle the battle system between ATB and CTB on
 *            the fly and even during the same battle(you can actually set a
 *            hotkey to do that in battle)
 *      9. (v0.15a+)Delay Module
 *         - Lets you set the amount of delay between becoming able to input
 *           actions and actually inputting them for battlers can't have their
 *           actions inputted by the player(enemies and actors with auto
 *           battle or confusion)
 *      10. (v0.06a+)Event Module
 *          - Lets you set some additional events to be triggered upon
 *            important timings inthe ATB system
 *      11. (v0.14a+)Order Module
 *         - Lets you show the ATB values of all battlers in the same ATB bar
 *         - Lets you show the battler action ordering in the CTB system style
 *           (You should only use this with the full wait mode unless you
 *           really know what you're truly doing)
 *      12. (v0.10a)Rate Module
 *          - Lets you set the ATB, charge and cooldown fill rate for each
 *            battler
 *      13. (v0.07a+)Reset Module
 *          - Lets you set the ATB value of each battler right after that
 *            battler has executed an action and becomes out of virtual action
 *            slots
 *      14. (v0.08a+)Speed Module
 *          - Lets you set the action execution priority among all battlers
 *            being able to execute actions(it likely means next to nothing in
 *            the full wait mode)
 *      15. (v0.09a+)Start Module
 *          - Lets you set the starting ATB value upon normal, preemptive and
 *            surprise battle starts
 *      16. (v0.11a+)Turn Module
 *          - Lets you show the progress of the current battle turn

Addressed Foreign Plugins
Code:
 *    # MOG_BattleHud:
 *      In general, this plugin should be placed above the SATB implementation
 *      plugin unless actual test results prove the otherwise
 *      1. The ATB bar doesn't gather any DoubleX RMMV Superlative ATB data
 *         - Reference tag: MOG_BattleHud_SATBData
 *         - Extended Battle_Hud.prototype.at and Battle_Hud.prototype.max_at
 *           to support the current and maximum ATB values of battlers
 *         - Disabled Battle_Hud.is_casting without the Charge Module enabled
 *         - (v0.03a+)Edited Battle_Hud.prototype.update_at to show the
 *           ATB cooldown ATB as well
 *         - (v0.03a+)Added Battle_Hud.prototype.is_cooldown to check if the
 *           battler's cooling down
 *      2. The original status window will be shown when the current inputable
 *         actor becomes not inputable
 *         - Reference tag: MOG_BattleHud_StopShowingStatusWindow
 *         - Extended
 *           DoubleX_RMMV.SATB.Scene_Battle.new._deselectOpenStatusWin to stop
 *           showing the status window upon the aforementioned event
 *      3. The actor window isn't fully shown
 *         - Reference tag: MOG_BattleHud_Actor_Window
 *         - Removed DoubleX_RMMV.SATB.Scene_Battle.new._updateActorWinPos to
 *           let MOG_BattleHud handle the actor window position
 *    # (v0.04a+)SEK_ChangeActor:
 *      In general, this plugin should be placed just above the SATB
 *      compatibility plugin unless actual test results prove the otherwise
 *      1. The ATB of all actors are reset when swapping actors and the actor
 *         input window won't update properly after swapping actors
 *         - Reference tag: SEK_ChangeActor_StopRemoveAddAllPartyMems
 *         - Rewritten Game_Party.prototype.swap to stop removing/adding
 *           actors that aren't involving in the swapping
 *      2. The actor being swapped in starts charging instantly without
 *         inputting an action first
 *         - Reference tag: SEK_ChangeActor_StopJumpNextCmd
 *         - Disabled Scene_Battle.prototype.jumpNextCommand when this
 *           plugin's enabled
 *      3. The party command window doesn't show when upon cancel changing
 *         actors after displaying a game message
 *         - Reference tag: SEK_ChangeActor_SetupPartyCmdWin
 *         - Extended Scene_Battle.onChangeCancel to setup the party command
 *           window instead of just activating it
 *      4. The change window corrupts the selection index whenever a battler
 *         refreshes(execute actions, be hit, have states removed, etc)
 *         - Reference tag: SEK_ChangeActor_FixDirectIndexSet0
 *         - Extended Window_ChangeList.prototype.drawItem to restores the
 *           selection before being corrupted
 *      5. The input windows including the changing window don't refresh, hide
 *         or show as expected when the ATB frame update isn't full wait
 *         - Reference tag: SEK_ChangeActor_RefreshInputWins
 *         - Extended Scene_Battle.prototype.refreshSATBInputWins,
 *           Scene_Battle.prototype.onChangeOk,
 *           DoubleX_RMMV.SATB.Scene_Battle.new._isWinWithNoInputtingActorActive,
 *           DoubleX_RMMV.SATB.Scene_Battle.new._closeDeactivatePartyCmdWin,
 *           DoubleX_RMMV.SATB.Scene_Battle.new._displayWinWithNoInputtingActor
 *           and DoubleX_RMMV.SATB.Scene_Battle.new._hideSelectionWins to
 *           refresh, hide and show the right input windows at the right time
 *    # Yanfly Engine Plugins - Battle Engine Core:
 *      In general, this plugin should be placed above the SATB implementation
 *      plugin unless actual test results prove the otherwise
 *      1. No actions can be executed in the 1st turn
 *         - Reference tag: YEP_BattleEngineCore_Stop1stTurnCheck
 *         - Extended BattleManager.getNextSubject to remove the turn count
 *           check
 *      2. Valid actions don't execute at all
 *         - Reference tag: YEP_BattleEngineCore_HandleNewPhases
 *         - Extended BattleManager.updateSATBAct to handle new action
 *           sequence phases added by
 *           Yanfly Engine Plugins - Battle Engine Core
 *      3. Actors with more than 1 virtual action slots can only act once
 *         - Reference tag: YEP_BattleEngineCore_AddNewActPhases
 *         - Extended BattleManager.endAction to stop calling onAllActionsEnd
 *           for the action execution subject
 *         - Extended DoubleX_RMMV.SATB.BattleManager.new._isActPhase to
 *           regard new action sequence phases as action phase
 *      4. All battler actions are recreated upon starting actor inputs
 *         - Reference tag: YEP_BattleEngineCore_StopRecreateAction
 *         - Stopped calling BattleManager.createActions when SATB's effective
 *      5. The sprite of the currently inputable actor will return to its home
 *         position when any action performs its finish sequence
 *         - Reference tag: YEP_BattleEngineCore_StopInputableActorReturnHome
 *         - Extended Game_Battler.prototype.spriteReturnHome to disable this
 *           function for the currently inputable actor
 *      6. (v0.01a+)New inputting actors can't be selected by touching the
 *         actor sprite unlike what happens when selecting actor or enemy
 *         targets
 *         - Reference tag: YEP_BattleEngineCore_TouchActorChangeSelected
 *         - Extended startPartyCommandSelection to fallback to the default
 *           rather than the extended YEP_BattleEngineCore version
 *         - Both Mouse Over and Visual Actor Select should be on to have this
 *           new inputable actor selection effect
 *      7. The inputting actor has the wrong pose during party escape attempts
 *         - Reference tag: YEP_BattleEngineCore_PartyCmdSelectStopNextCmd
 *         - Extended startPartyCommandSelection to fallback to the default
 *           rather than the extended YEP_BattleEngineCore version
 *      8. The selection and help window lost info after refresh
 *         - Reference tag: YEP_BattleEngineCore_UpdateSelectionHelpWindow
 *         - Extended refreshSATBInputWins to reselect the selection windows
 *           and update their respective help windows
 *      9. The target help window remains when the actor's dead
 *         - Reference tag: YEP_BattleEngineCore_CloseInvalidTargetHelpWindow
 *         - Extended
 *           DoubleX_RMMV.SATB.Scene_Battle.new._deactivateHideSelectionWins
 *           to close the stale help window
 *      10.(v0.02a+) The targets are wrongly shown as selected after inputting
 *          a skill selecting all targets
 *          - Reference tag: YEP_BattleEngineCore_ClearTargetSelections
 *          - Extended DoubleX_RMMV.SATB.Scene_Battle.new._selectNextCmd to
 *            clear the stale target selections

Upcoming Modules
Code:
 *      1. Exchange Module
 *         - Lets you set some skills/items to exchange the charging
 *           skill/item of the targets with the cooldown of the action
 *           exeuction subject triggering the exchange
 *         - This can apply to skills/items with multiple targets but the
 *           setup can be very complicated and convoluted this way
 *      2. Status Module
 *         - Shows the charge, cooldown, action cost and ATB reset settings
 *           for each skill/item in battle and outside battle
 *         - Shows the ATB statues for each actor in the actor status window
 *           outside battle
 *      3. Action Module
 *         - Lets you set the number of virtual action slots needed for
 *           skills/items
 *         - Lets you demands players to input all the virtual action slots at
 *           once before executing them all as a batch
 *         - Lets you set how the virtual action slots are gained(gain all
 *           upon a single full ATB or gain 1 upon each full ATB then empties
 *           the ATB afterwards until the number of virtual action slots
 *           reaches the limited specified by Action Times+)
 *         - Lets you abandon the concept of virtual action slots altogether
 *           and base the action cost in the form of subtracting the battler
 *           ATB value
 *      4. Combo Module
 *         - Lets you set some charging skills/items made by different
 *           battlers to form a new combo skills under certain conditions
 *      5. Escape Module
 *         - Lets you set the conditions allowing party escape attempt
 *         - Lets you set the charging requirements for the party escape
 *           attempt
 *         - Lets you set the cooldown requirements for the failed party
 *           escape attempt
 *         - Lets you set the cost for failed party escape attempts
 *      6. Overload Module
 *         - Lets you sets the ATB value of battlers to be beyond their
 *           maximum, but it'll slowly drop until it's dropped to its maximum
 *      7. Pool Module
 *         - Lets you bind some battlers to share the same ATB pool
 *      8. Unison Module
 *         - Lets you set some skills/items to be unison ones

Possibly Upcoming Modules
Code:
*      1. Type Module
*         - Lets you have multiple ATB bars for each battler
*         - THIS MODULE MUST BE THE LAST MODULE TO BE DONE AS IT'LL CHANGE
*           JUST ABOUT EVERYTHING IN THIS PLUGIN AND THUS AFFECTS ALMOST
*           EVERYTHING IN EVERY OTHER MODULE

Todo
Code:
*      1. Adds _isSaveParamNotes
*      2. Fixes the actor command window not selecting the last command when
*         it becomes able to be shown again bug
*      3. Allows party escape attempts when executing actions
*      4. Lets players cancels actor cooldown by clicking the actor sprite
*      5. Lets players cancels actor charge by clicking the actor sprite
*      6. Lets players forces actor charge by long pressing the actor sprite
*      7. Lets you set some skills to demand a set period to charge up before
*         they become usable actions that can be inputted by battlers
*      8. Lets you set some skills to demand a set period to cool down before
*         they become usable actions that can be inputted by battlers again
*      9. Adds a parameter for each sprite/window class to be called per
*         frame so you can control which parameter cache to be
*         enabled/disabled
*      10. Fixes the discrete order battler sprite position bugs when the
*          battler changes again before the current position changes are
*          complete
*      11. Fixes the autobattle actor freezed charge/cooldown with the Delay
*          module enabled
*      12. Fixes the compatibility issues/bugs when the CTB Module interacts
*          with SEK_ChangeActor

Inherited Behaviors From The Default RMMV Battle System
Code:
 *      Action Speed:
 *      1. The battlers that are ready to execute actions will be pushed into
 *         the First-In-First-Out action execution queue, which is sorted by
 *         the speed of the action to be executed by the battlers descendingly
 *      2. To ensure battlers with extremely slow actions can still execute
 *         them, the action speed of all battlers in the action execution
 *         queue will be added by the 2000(the maximum action speed in the
 *         default RMMV editor) divided by the number of battlers in that
 *         queue, meaning that the longer the battler's in the queue, the more
 *         such action speed bonuses will be received by that battler, so that
 *         battler will be placed more and more up front in the queue
 *      3. All these can be changed in the Speed Module
 *      Action Times+(Not fully applicable with the Action Module enabled):
 *      1. Every battler always has at most 1 real action slot, meaning that
 *         each battler can only input 1 action at a time
 *      2. A battler also has at most the number of virtual action slots equal
 *         to the number of action slots with Action Times+ in the default
 *         RMMV battle system
 *      3. When a battler's no virtual action slot and becomes able to input
 *         actions, Action Times+ will be used to determine the new number of
 *         virtual action slots
 *      4. When a battler has finished executing an action, the number of
 *         virtual action slot will be reduced by 1. If that battler still has
 *         virtual action slots, then the ATB value of that battler won't be
 *         reduced(technically, it's reduced by an extremely small amount) and
 *         can immediately input actions again(unless the ATB value's changed
 *         by some other reasons like battler script calls); If that battler
 *         has no more virtual action slots, then the ATB value of that
 *         battler will be cleared to become 0 or remain unchanged if it was
 *         negative
 *      Party Escape(Not fully applicable with the Action and/or Escape Module
 *      enabled):
 *      1. Each actor will have his/her/its virtual action slot reduced by 1
 *         upon a failed party escape attempt, as if it were just another
 *         normnal action costing 1 virtual action slot
 *      2. However, failed escape attempts won't increase the battle turn
 *         clock counter even if its unit is the number of actions executed
 *      Agility(Not fully applicable with the Rate Module enabled):
 *      1. The fill rate of the battler ATB value will be multiplied by the
 *         agility of that battler divided by the average of those of all
 *         battlers in the battle
 *      States With Removal Timing As Action End(Not fully applicable with the
 *      Countdown Module enabled):
 *      1. The turn counter of such states will be reduced by 1 when the
 *         battler owning these states have just finished executing an action
 *      States With Removal Timing As Turn End(Not fully applicable with the
 *      Countdown Module enabled):
 *      1. The turn counter of such states will be reduced by 1 when the
 *         battle turn counter increases by 1(i.e., the current turn ends)
 *      Buff Turns Are Updated Upon Turn End Rather Than Action End
 *      Battler ATB Value With Preemptive Battle Start(Not fully applicable
 *      with the Start Module enabled):
 *      1. The actor ATB value will be immediately fully filled while those of
 *         enemies will be immediately empty
 *      Battler ATB Value With Surprise Battle Start(Not fully applicable with
 *      the Start Module enabled):
 *      1. The enemy ATB value will be immediately fully filled while those of
 *         actors will be immediately empty
 *      Battler ATB Value With Normal Battle Start(Not fully applicable with
 *      the Start Module enabled):
 *      1. The ATB value of all battlers will be immediately empty
 *      Battlers Becoming Hidden/Unmovable
 *      1. Their ATB values will be reset to 0 if they're not negative before
 *      2. Their number of virtual action slots will be reset to 0

Current Technical Limitations
Code:
 *      1. The ATB frame update can never be run when either of the following
 *         conditions are met:
 *         - The battle's starting, aborting or ending
 *         - The game message's showing in the battle
 *         - The battle event's running
 *         Violating any of these conditions might outright crash the game
 *      2. Party escape's always disabled when either of the following
 *         conditions are met:
 *         - The battler sprites/action animations are animating/playing
 *         - The log window's displaying messages
 *         - Battlers are executing actions
 *         - The game message's showing in the battle
 *         Violating any of these conditions might outright crash the game
 *         (Actually it should also be disabled when battle event's running
 *         but trying to enforce this's itself a current technical limitation)
 *      3. Only 1 actor can input actions at a time
 *         - Violating this, if possible to be compatible with this plugin,
 *           would be implemented with a separate plugin
 *      4. Only 1 battler can execute actions at a time
 *         - Violating this, if possible to be compatible with this plugin,
 *           would be implemented with a separate plugin
 *      5. A battler can only execute 1 action at a time
 *         - Violating this, if possible to be compatible with this plugin,
 *           would be implemented with a separate plugin
 *      6. Having too many effective notetags full of nondeterministic results
 *         will lead to severe performance issues especially on android device
 *      7. Having too many effective notetags calling extremely long functions
 *         will lead to the save files being too big
 *      8. In extremely rare cases, the actor action inputting commands might
 *         be temporarily unresponsive for a very short time(It's to prevent
 *         crashing the game instead in really weird cases I've truly faced)
 *      9. Projects using this plugin with full active ATB mode and Bar Module
 *         enabled can be hard to maintain 60FPS on mobile phones that aren't
 *         especially powerful

Author Notes
Code:
 *      1. DoubleX RMMV Superlative ATB aims to give extreme control and
 *         freedom to users by making it as flexible as I can with as little
 *         damage to user-friendliness as I can
 *      2. The configuration plugin is generally for more advanced uses, as
 *         most ordinary cases should be covered by parameters and notetags
 *      3. This is an advanced complex plugin, meaning that you're expected to
 *         use the default parameters and configuration values first to be
 *         familiar with playing the demo of this plugin before changing any
 *         of those values and/or using any notetags
 *      4. You might have to use some script calls in RMMV and some of those
 *         provided by this plugin to realize some of the more advanced uses
 *      5. If you want to keep things easy, simple and small, you may want to
 *         use DoubleX RMMV Popularized ATB instead
 *      6. If you want to run battle tests, you must open the configuration
 *         plugin js file directly to setup everything that has to be setup
 *         upon battle test start by changing the contents of the function
 *         SATB.onSetupBattleTest
 *         (It's especially useful when some parameters/notetags use some
 *         game switches/variables which must all have their corresponding
 *         values manually assigned first)
 *      7. (Advanced)You might have to have a basic knowledge on what the
 *         implementation plugin does in general to fully utilize this plugin
 *         in intended ways and solid understanding on how this implementation
 *         plugin works in details to fully utilize this plugin with creative
 *         and unintended uses
 *      8. (Advanced)You might have to read some new variables/functions to
 *         have a basic knowledge on what they do in general in order to
 *         realize some intended cases
 *      9. (Advanced)You might have to dig into the mechanisms of some new
 *         variables/functions to have a solid underatanding on how they work
 *         alone in details in order to realize some unintended usages

FAQ
Code:
 *    Q1. What's the main differences between DoubleX RMMV Popularized ATB and
 *        this plugin?
 *    A1. There are at least 2 main differences:
 *        - The former uses the core addon approach, meaning that the core
 *          plugin, which is mandatory, will only have all the essential
 *          features, and each addon plugin, which is optional, will only have
 *          each set of extra features. This is useful when many users only
 *          use a small amount of the feature set provided by
 *          DoubleX RMMV Popularized ATB.
 *          On the other hand, the latter uses the single plugin approach,
 *          meaning that all the feature implementations will be included in a
 *          single plugin, even though unit tests and compatibility fixes will
 *          still be separate plugins. This is useful when many users use a
 *          large amount of the feature set provided by this plugin.
 *        - The former aims to be easy, simple and small while still being
 *          reasonably powerful for both users and ATB system plugin
 *          learners, while the latter aims to be the most flexible and
 *          powerful ATB system plugin ever by giving users the deepest and
 *          widest amount of control and freedom ever, thus making it much,
 *          much more demanding for both users and ATB system plugin learners.
 *    Q2. May you please make this plugin less demanding? The sheer number of
 *        parameters/configurations/notetags, most demanding Javascript
 *        function contents as values, are extremely overwhelming for less
 *        capable users. It's just far from being user-friendly enough.
 *    A2. While it's clearly my fault that makes this plugin so hard to use,
 *        I've already tried my best while still preserving the flexibility
 *        and power of thie plugin by maintaining the depth and width of
 *        control and freedom available for users.
 *        As for the sheer number of parameters/configurations/notetags, this
 *        plugin aims to include everything in a single plugin, which is
 *        preferred for some users.
 *        In case this plugin's really too hostile, you may want to use
 *        DoubleX RMMV Popularized ATB, which is much easier, simpler and
 *        smaller while still being reasonably powerful, instead. Also, it
 *        breaks each set of features into 1 plugin, meaning that you won't
 *        have to face a sheer number of parameters/configurations/notetags
 *        there.
 *        Alternatively, you can ask for help if you still want to use this
 *        plugin, if the demo doesn't provide enough help already.
 *    Q3. Why the Core Module itself doesn't show the ATB value of any
 *        battler and why doesn't it let players change among inputable
 *        actors? All these are essential UX features. Without them, using
 *        just the Core Module can only result in a fully broken ATB system.
 *        (Well, not being able to change the ATB wait conditions sucks too)
 *    A3. It's because these features aren't technically essential to run an
 *        ATB system plugin, nor they're behaviors inherited from the default
 *        RMMV battle system(It doesn't let you change the input sequence nor
 *        show the actual action execution sequence). All these features that
 *        are missing in the Core Module are covered in the Bar Module and
 *        Hotkey Module(The similar logic applies to the Wait Module). That's
 *        why only these 3 optional modules are enabled by default(All the
 *        other optional modules are disabled so you don't have to deal with
 *        so many modules all at once before being familiar with this plugin).
 *    Q4. Why the Bar Module doesn't use notetags? Isn't it going against the
 *        very goal of this plugin?
 *    A4. It's because it's very unlikely that anyone will need to use such
 *        notetags. If I added them anyway, the sheer number of notetags that
 *        almost no one's going to use would be too much of a nuance and
 *        clutter for users to access the functionalities that they really
 *        want. In case such notetags are indeed needed, I'll implement the
 *        needed ones, and perhaps one day all those notetags would be done.
 *    Q5. (Advanced)Why the caching mechanism's so complicated and convoluted
 *        in this plugin? It's extremely costly and troublesome to work around
 *        when I've some unintended and creative uses of this plugin.
 *    A5. It's because this plugin explicitly allows many effective notetags
 *        to be used in the same frame, which can cause significant lag and
 *        fps drop if the end result's not cached, epsecially when the
 *        functions called by those notetags are computationally expensive.
 *        This plugin's to balance among multiple key aspects, so I'm sorry
 *        that your use cases have to be at least slightly sacrificed for
 *        performance stability and ease of use for intended and ordinary use
 *        cases, which are likely much more common and important. That's the
 *        main reason why decent RMMV plugin development proficiency is needed
 *        to fully utilize this plugin with creative and unintended uses.

Prerequisites
Code:
*      Abilities:
*      1. Nothing special for most ordinary cases
*         (No capability on Javascript ES5 experience but can still make
*         reasonable guesses on readable novice codes up to 100 LoC scale)
*      2. Little RMMV plugin development proficiency for more advanced uses
*         (Elementary Javascript ES5 exposures being able to write beginner
*         codes up to 300LoC scale)
*      3. Some RMMV plugin development proficiency to fully utilize this
*         plugin in intended ways
*         (Basic knowledge on what RMMV plugin development does in general
*         with several easy, simple and small plugins written without
*         nontrivial bugs up to 1000 LoC scale but still being inexperienced)
*      4. Decent RMMV plugin development proficiency to fully utilize this
*         plugin with creative and unintended uses
*         (Solid understanding on how RMMV plugin development works on its
*         own in details with dozens of tolerable quality plugins written
*         without nontrivial bugs with some up to 3000 LoC scale and being
*         experienced)
*      Knowledge:
*      1. Basic knowledge on what the default RMMV editor does in general
*      2. Basic knowledge on what the default RMMV battle system does in
*         general on the user level
*      3. Basic knowledge on what an ATB system does in general

Terms Of Use
Code:
*      1. Commercial use's always allowed and crediting me's always optional.
*      2. You shall keep this plugin's Plugin Info part's contents intact.
*      3. You shalln't claim that this plugin's written by anyone other than
*         DoubleX or my aliases. I always reserve the right to deny you from
*         using any of my plugins anymore if you've violated this.
*      4. If you repost this plugin directly(rather than just linking back),
*         you shall inform me of these direct repostings. I always reserve
*         the right to request you to edit those direct repostings.
*      5. CC BY 4.0, except those conflicting with any of the above, applies
*         to this plugin, unless you've my permissions not needing follow so.
*      6. I always reserve the right to deny you from using this plugin
*         anymore if you've violated any of the above.

Instructions
Code:
*      1. If you want to edit configurations instead of parameters, you must
*         open the configuration plugin js file to access those
*         configurations
*      2. If you want to keep the current parameter values in the plugin
*         manager upon using a newer parameter plugin version, you can rename
*         the newer one of the parameter plugin to be that of the older one
*      3. If you wish to use DoubleX RMMV Superlative ATB Unit Test, place it
*         right below DoubleX RMMV Superlative ATB Implementation

Contributors
Code:
*      Authors:
*      1. DoubleX
*      Plugin Development Collaborators:
*      - None So Far
*      Bug Reporters:
*      - None So Far
*      Compatibility Issue Raisers:
*      - None So Far
*      Feature Requesters:
*      - None So Far

Changelog
Code:
 *      Parameters:
 *      - v0.15b(GMT 1400 3-Dec-2020):
 *        1. You no longer have to edit the value of
 *           DoubleX_RMMZ.Superlative_ATB_Parameters_File when changing the
 *           parameter plugin file name
 *      - v0.15a(GMT 0700 18-Aug-2020):
 *        1. Finished the Delay Module
 *        2. Added didDelayCounterEnd
 *      - v0.14a(GMT 1400 17-Aug-2020):
 *        1. Finished the Order Module
 *        2. Lets you set the font face, text color and align, opacity and
 *           windowskin for all news windows in this plugin
 *        3. Removed all useless text padding parameters for all new windows
 *           in this plugin
 *      - v0.13a(GMT 1400 26-Jul-2020):
 *        1. Finished the CTB module
 *        2. Added didFillCoreATB, didFillChargeATB and didFillCooldownATB
 *      - v0.12a(GMT 1400 25-Jul-2020):
 *        1. Finished the countdown module
 *        2. Added didDecreaseCountdownStateTurn and
 *           didIncreaseCountdownStateTurn in the event module
 *      - v0.11a(GMT 1300 23-Jul-2020):
 *        1. Finished the turn module
 *      - v0.10a(GMT 0900 23-Jul-2020):
 *        1. Finished the rate module
 *      - v0.09a(GMT 1400 22-Jul-2020):
 *        1. Finished the start module
 *      - v0.08a(GMT 0900 21-Jul-2020):
 *        1. Finished the speed module
 *      - v0.07a(GMT 1400 20-Jul-2020):
 *        1. Finished the reset module
 *      - v0.06a(GMT 0700 19-Jul-2020):
 *        1. Finished the event module
 *        2. Added more parameters for attaching actor ATB bars to the status
 *           window in the bar module
 *      - v0.05a(GMT 1000 27-Jun-2020):
 *        1. Finished the cooldown module
 *      - v0.04a(GMT 1500 19-Jun-2020):
 *        1. Finished the charge module
 *        2. Added _isBarVisibleNoteChainingRule and
 *           _isBarVisibleNotePriorities parameters in the bar module
 *      - v0.03a(GMT 1400 15-Jun-2020):
 *        1. Finished the bar module
 *      - v0.02a(GMT 1200 14-Jun-2020):
 *        1. Finished the wait module
 *      - v0.01a(GMT 1500 13-Jun-2020):
 *        1. Finished the hotkey module
 *      - v0.00a(GMT 1500 12-Jun-2020):
 *        1. Finished the core module
 *      Configurations:
 *      - v0.15a(GMT 0700 18-Aug-2020):
 *        1. Finished the Delay Module
 *        2. Added didDelayCounterEnd
 *      - v0.14a(GMT 1400 17-Aug-2020):
 *        1. Finished the Order Module
 *        2. Lets you set the font face, text color and align, opacity and
 *           windowskin for all news windows in this plugin
 *        3. Removed all useless text padding parameters for all new windows
 *           in this plugin
 *      - v0.13a(GMT 1400 26-Jul-2020):
 *        1. Finished the CTB module
 *        2. Added didFillCoreATB, didFillChargeATB and didFillCooldownATB
 *      - v0.12a(GMT 1400 25-Jul-2020):
 *        1. Finished the countdown module
 *        2. Added didDecreaseCountdownStateTurn and
 *           didIncreaseCountdownStateTurn in the event module
 *      - v0.11a(GMT 1300 23-Jul-2020):
 *        1. Finished the turn module
 *      - v0.10a(GMT 0900 23-Jul-2020):
 *        1. Finished the rate module
 *      - v0.09a(GMT 1400 22-Jul-2020):
 *        1. Finished the start module
 *      - v0.08a(GMT 0900 21-Jul-2020):
 *        1. Finished the speed module
 *      - v0.07a(GMT 1400 20-Jul-2020):
 *        1. Finished the reset module
 *      - v0.06a(GMT 0700 19-Jul-2020):
 *        1. Finished the event module
 *        2. Added more parameters for attaching actor ATB bars to the status
 *           window in the bar module
 *      - v0.05b(GMT 0200 13-Jul-2020):
 *        1. Corrected the documentations of thie configuration plugin
 *      - v0.05a(GMT 1000 27-Jun-2020)
 *        1. Finished the cooldown module
 *      - v0.04a(GMT 1500 19-Jun-2020):
 *        1. Finished the charge module
 *      - v0.03a(GMT 1400 15-Jun-2020):
 *        1. Finished the bar module
 *        2. Corrected the documentations of the Wait Module parameters
 *      - v0.02a(GMT 1200 14-Jun-2020):
 *        1. Finished the wait module
 *        2. Corrected the documentations of the Hotkey Module parameters
 *      - v0.01a(GMT 1500 13-Jun-2020):
 *        1. Finished the hotkey module
 *        2. Corrected the documentations of the Core Module parameters
 *      - v0.00a(GMT 1500 12-Jun-2020):
 *        1. Finished the core module
 *      Implementations:
 *      - v0.15b(GMT 0300 7-Dec-2020):
 *        1. Fixed the wrong this of the following Array prototype methods:
 *           i. fastFilter
 *           ii. fastMap
 *           iii. filterMap
 *           iv. mapFilter
 *           v. mapReduce
 *           vi. mapSome
 *        2. Fixed the x and y positions and opacity update bugs for discrete
 *           order battler sprites
 *      - v0.15a(GMT 0700 18-Aug-2020):
 *        1. Finished the Delay Module
 *        2. Added didDelayCounterEnd
 *      - v0.14a(GMT 1400 17-Aug-2020):
 *        1. Finished the Order Module
 *        2. Lets you set the font face, text color and align, opacity and
 *           windowskin for all news windows in this plugin
 *        3. Removed all useless text padding parameters for all new windows
 *           in this plugin
 *        4. Fixed mono chaining rules not working bug
 *      - v0.13a(GMT 1400 26-Jul-2020):
 *        1. Finished the CTB module
 *        2. Added didFillCoreATB, didFillChargeATB and didFillCooldownATB
 *      - v0.12a(GMT 1400 25-Jul-2020):
 *        1. Finished the countdown module
 *        2. Added didDecreaseCountdownStateTurn and
 *           didIncreaseCountdownStateTurn in the event module
 *        3. Battle turn clock second unit counter's stored in seconds instead
 *           of milliseconds
 *      - v0.11a(GMT 1300 23-Jul-2020):
 *        1. Finished the turn module
 *      - v0.10a(GMT 0900 23-Jul-2020):
 *        1. Finished the rate module
 *      - v0.09a(GMT 1400 22-Jul-2020):
 *        1. Finished the start module
 *      - v0.08a(GMT 0900 21-Jul-2020):
 *        1. Finished the speed module
 *      - v0.07a(GMT 1400 20-Jul-2020):
 *        1. Finished the reset module
 *        2. Fixed the corrupt notetag cache bug involving latestSkillItem
 *        3. Fixed the notetag cache invalidation not working at all bug
 *      - v0.06a(GMT 0700 19-Jul-2020):
 *        1. Finished the event module
 *        2. Added more parameters for attaching actor ATB bars to the status
 *           window in the bar module
 *        3. Plugin commands now support battler names with spaces
 *      - v0.05b(GMT 0200 13-Jul-2020):
 *        1. Added the ok SE upon successfully starting and ending a forced
 *           ATB charge
 *        2. Fixed the battle turn clock overflow crashing the game bug
 *        3. Fixed removing an actor not clearing the ATB states bug
 *        4. Fixed the cached battle turn clock parameters crashing the game
 *           bug
 *        5. Fixed not cancelling charges with skills banning cancel charge
 *           even when the charge ATB becomes negative bug
 *        6. Fixed a battler using a skill/item to add/remove restrictions on
 *           that battler not having item for cooldown bug
 *        7. Fixed a battler with more than 1 virtual action slots using a
 *           skill/item to cause that battler to become auto input still
 *           showing the actor command window in full ATB wait mode bug
 *        8. Fixed the notetag cache not detecting ATB phase change bug
 *        9. Fixed cooldown being instantly finished when the battler's
 *           refreshed bug
 *        10. Fixed game crashing upon changing actor equip bug
 *        11. Fixed a very severe memory leak in the notetag cache, ATB bars
 *            and force ATB frame update command and status windows
 *        12. Fixed some plugin commands not executing anything bug
 *        13. Fixed non actor plugin commands not executing anything bug
 *        14. Fixed plugin command expecting Number arguments having String
 *            counterparts instead bug
 *        15. Extracted the inputable actor business logic to Game_Party from
 *            BattleManager
 *        16. Increased the effectiveness and efficiency of the ATB bars
 *        17. Increased the effectiveness and efficiency of updating actor
 *            selections
 *      - v0.05a(GMT 1000 27-Jun-2020):
 *        1. Finished the cooldown module
 *      - v0.04a(GMT 1500 19-Jun-2020):
 *        1. Finished the charge module
 *        2. Added isBarVisible suffix: entry notetag in the bar module
 *        3. Documented what registration works need to be done when adding
 *           new parameters and notetags
 *        4. Fixed the force run/stop command window not being shown as
 *           disabled after pressing respectively hotkeys bug
 *        5. Increased the performance of ATB force status and command windows
 *           with _isParamFuncCached being on, especially for corresponding
 *           parameters being costly to run
 *      - v0.03a(GMT 1400 15-Jun-2020):
 *        1. Finished the bar module
 *        2. Added battler manipulation script call satbActTimes() and
 *           canMakeSATBCmds()
 *        3. Added sound feedbacks when using force ATB run/stop hoktey and
 *           command windows
 *        4. Added more visual feedbacks when using force ATB run/stop command
 *           windows
 *        5. Fixed the force ATB run/stop hotkey still working even when the
 *           Wait Module's disabled bug
 *        6. Fixed the ATB frame update wait conditions still working even
 *           when the Wait Module's disabled bug
 *      - v0.02a(GMT 1200 14-Jun-2020):
 *        1. Finished the wait module
 *      - v0.01a(GMT 1500 13-Jun-2020):
 *        1. Finished the hotkey module
 *        2. Added battler maniuplation script call fillUpCoreSATB() and
 *           coreSATBProportion()
 *        3. Fixed the battle turn clock always using all units to end the
 *           turn bug
 *        4. Fixed the base fill ATB rate and battle turn clock time counter
 *           using the render loop fps rather than the game loop fps bug
 *           (Graphics._fpsMeter.fps vs SceneManager._deltaTime)
 *      - v0.00a(GMT 1500 12-Jun-2020):
 *        1. Finished the core module
 *      Unit Tests:
 *      - v0.15b(GMT 0400 7-Dec-2020):
 *        1. Fixed wrong unit test check conditions for the x and y positions
 *           and opacity for discrete order battler sprites
 *      - v0.15a(GMT 0700 18-Aug-2020):
 *        1. Finished the Delay Module
 *        2. Added didDelayCounterEnd
 *      - v0.14a(GMT 1400 17-Aug-2020):
 *        1. Finished the Order Module
 *        2. Lets you set the font face, text color and align, opacity and
 *           windowskin for all news windows in this plugin
 *        3. Removed all useless text padding parameters for all new windows
 *           in this plugin
 *      - v0.13a(GMT 1400 26-Jul-2020):
 *        1. Finished the CTB module
 *        2. Added didFillCoreATB, didFillChargeATB and didFillCooldownATB
 *      - v0.12a(GMT 1400 25-Jul-2020):
 *        1. Finished the countdown module
 *        2. Added didDecreaseCountdownStateTurn and
 *           didIncreaseCountdownStateTurn in the event module
 *        3. Battle turn clock second unit counter's stored in seconds instead
 *           of milliseconds
 *      - v0.11a(GMT 1300 23-Jul-2020):
 *        1. Finished the turn module
 *      - v0.10a(GMT 0900 23-Jul-2020):
 *        1. Finished the rate module
 *        2. Removed some unit tests becoming redundant in this latest version
 *      - v0.09a(GMT 1400 22-Jul-2020):
 *        1. Finished the start module
 *      - v0.08a(GMT 0900 21-Jul-2020):
 *        1. Finished the speed module
 *        2. Removed a unit test that becomes tautological in latest version
 *      - v0.07a(GMT 1400 20-Jul-2020):
 *        1. Finished the reset module
 *      - v0.06a(GMT 0700 19-Jul-2020):
 *        1. Finished the event module
 *        2. Added more unit tests in the bar module
 *      - v0.05b(GMT 0200 13-Jul-2020):
 *        1. Added a test suite that can be executed as a script call
 *        2. Added logs with useful information at important timings
 *        3. Fixing failed integer checks falsely reported as failed
 *           nonnegative integer checks
 *        4. In sync with the latest implementation plugin version
 *      - v0.05a(GMT 1000 27-Jun-2020):
 *        1. Finished the cooldown module
 *        2. More useful contents are included in the failed test messages
 *      - v0.04a(GMT 1500 19-Jun-2020):
 *        1. Finished the charge module
 *        2. In sync with the latest implementation plugin version
 *      - v0.03a(GMT 1400 15-Jun-2020):
 *        1. Finished the bar module
 *        2. Added more tests for the wait module
 *      - v0.02a(GMT 1200 14-Jun-2020):
 *        1. Finished the wait module
 *      - v0.01a(GMT 1500 13-Jun-2020):
 *        1. Finished the hotkey module
 *      - v0.00a(GMT 1500 12-Jun-2020):
 *        1. Finished the core module
 *      Compatibilities:
 *      - v0.05a(GMT 0700 11-Dec-2020):
 *        1. Finished the delay module
 *        2. Lets players cancels actor cooldown by clicking the actor sprite
 *        3. Lets players cancels actor charge by clicking the actor sprite
 *      - v0.04a(GMT 0200 13-Jul-2020):
 *        1. Addressed compatibility issues with SEK_ChangeActor
 *        2. Added more Charge and Cooldown Module action sequences in
 *           YEP_BattleEngineCore
 *        3. Fixed the Cooldown Module action sequences not implemented in
 *           YEP_BattleEngineCore bug
 *      - v0.03a(GMT 1000 27-Jun-2020):
 *        1. Finished the cooldown module
 *        2. Added action sequences from charge module in YEP_BattleEngineCore
 *      - v0.02a(GMT 1500 19-Jun-2020):
 *        1. Finished the wait module(No nontrivial change has taken place)
 *        2. Finished the bar module(No nontrivial change has taken place)
 *        3. Finished the charge module
 *        4. Added action sequences from charge module in YEP_BattleEngineCore
 *        5. Addressed more compatibility issues with YEP_BattleEngineCore
 *      - v0.01a(GMT 1500 13-Jun-2020):
 *        1. Finished the hotkey module
 *        2. Fixed the battle turn clock action counter won't update bug when
 *           addressing compatibility issues with
 *           Yanfly Engine Plugins - Battle Engine Core
 *        3. New inputable actors can be selected by touching those actor
 *           sprites
 *      - v0.00a(GMT 1500 12-Jun-2020):
 *        1. Finished the core module
 *      Compatibility Tests:
 *      - v0.01a(GMT 0200 13-Jul-2020):
 *        1. Finished the hotkey module(No nontrivial change has taken place)
 *        2. Finished the wait module(No nontrivial change has taken place)
 *        3. Finished the bar module(No nontrivial change has taken place)
 *        4. Finished the charge module(No nontrivial change has taken place)
 *        5. Finished the cooldown module(No nontrivial change has taken place)
 *        6. Added compatibility tests for
 *           Yanfly Engine Plugins - Battle Engine Core
 *      - v0.00a(GMT 1500 12-Jun-2020):
 *        1. Finished the core module
 *      Documentations:
 *      - v0.15c(GMT 0700 11-Dec-2020):
 *        1. Fixed the following wrong documentations:
 *           Battler manipulations -
 *           i. setDelaySecCounter should be setSATBDelaySecCounter
 *           ii. addDelaySecCounter should be addSATBDelaySecCounter
 *           iii. multiplyDelaySecCounter should be
 *                multiplySATBDelaySecCounter
 *           iv. delaySecCounter should be satbDelaySecCounter
 *        2. Added the action sequence for the Delay Module in
 *           Yanfly Engine Plugins - Battle Engine Core
 *        3. Lets players cancels actor cooldown by clicking the actor sprite
 *        4. Lets players cancels actor charge by clicking the actor sprite
 *      - v0.15b(GMT 0400 7-Dec-2020):
 *        1. You no longer have to edit the value of
 *           DoubleX_RMMZ.Superlative_ATB_Parameters_File when changing the
 *           parameter plugin file name
 *        2. Fixed the wrong this of the following Array prototype methods:
 *           i. fastFilter
 *           ii. fastMap
 *           iii. filterMap
 *           iv. mapFilter
 *           v. mapReduce
 *           vi. mapSome
 *        3. Fixed the x and y positions and opacity update bugs for discrete
 *           order battler sprites
 *        4. Fixed wrong unit test check conditions for the x and y positions
 *           and opacity for discrete order battler sprites
 *      - v0.15a(GMT 0700 18-Aug-2020):
 *        1. Finished the Delay Module
 *        2. Added didDelayCounterEnd
 *      - v0.14a(GMT 1400 17-Aug-2020):
 *        1. Finished the Order Module
 *        2. Lets you set the font face, text color and align, opacity and
 *           windowskin for all news windows in this plugin
 *        3. Removed all useless text padding parameters for all new windows
 *           in this plugin
 *      - v0.13a(GMT 1400 26-Jul-2020):
 *        1. Finished the CTB module
 *        2. Added didFillCoreATB, didFillChargeATB and didFillCooldownATB
 *      - v0.12a(GMT 1400 25-Jul-2020):
 *        1. Finished the countdown module
 *        2. Added didDecreaseCountdownStateTurn and
 *           didIncreaseCountdownStateTurn in the event module
 *        3. Battle turn clock second unit counter's stored in seconds instead
 *           of milliseconds
 *      - v0.11a(GMT 1300 23-Jul-2020):
 *        1. Finished the turn module
 *      - v0.10a(GMT 0900 23-Jul-2020):
 *        1. Finished the rate module
 *        2. Removed some unit tests becoming redundant in this latest version
 *      - v0.09a(GMT 1400 22-Jul-2020):
 *        1. Finished the start module
 *      - v0.08a(GMT 0900 21-Jul-2020):
 *        1. Finished the speed module
 *        2. Removed a unit test that becomes tautological in latest version
 *      - v0.07a(GMT 1400 20-Jul-2020):
 *        1. Finished the reset module
 *      - v0.06a(GMT 0700 19-Jul-2020):
 *        1. Finished the event module
 *        2. Added more parameters for attaching actor ATB bars to the status
 *           window in the bar module
 *        3. Plugin commands now support battler names with spaces
 *      - v0.05b(GMT 0200 13-Jul-2020):
 *        1. Addressed compatibility issues with SEK_ChangeActor
 *      - v0.05a(GMT 1000 27-Jun-2020):
 *        1. Finished the cooldown module
 *      - v0.04a(GMT 1500 19-Jun-2020):
 *        1. Finished the charge module
 *        2. Added isBarVisible suffix: entry notetag in the bar module
 *        3. Added battler manipulation script calls to manipulate the battle
 *           turn clock counters
 *      - v0.03a(GMT 1400 15-Jun-2020):
 *        1. Finished the bar module
 *      - v0.02a(GMT 1200 14-Jun-2020):
 *        1. Finished the wait module
 *      - v0.01a(GMT 1500 13-Jun-2020):
 *        1. Finished the hotkey module
 *        2. Added battler maniuplation script call coreSATBProportion()
 *      - v0.00a(GMT 1500 12-Jun-2020):
 *        1. Finished the core module

Demo
Demo
My RMVXA/RMMV/RMMZ scripts/plugins:
http://rpgmaker.net/users/DoubleX/scripts/
Reply }


Messages In This Thread
DoubleX RMMV Superlative ATB - by DoubleX - 08-31-2020, 12:23 PM
RE: DoubleX RMMV Superlative ATB - by DoubleX - 12-07-2020, 07:57 AM
RE: DoubleX RMMV Superlative ATB - by DoubleX - 12-11-2020, 02:25 PM

Possibly Related Threads…
Thread Author Replies Views Last Post
   DoubleX RMMV Popularized ATB Compatibility DoubleX 16 23,062 12-26-2022, 06:17 AM
Last Post: DoubleX
   DoubleX RMMV Confusion Edit DoubleX 3 7,606 09-09-2022, 11:12 AM
Last Post: DoubleX
   DoubleX RMMV Popularized ATB Clock DoubleX 2 6,454 03-25-2022, 01:04 PM
Last Post: DoubleX
   DoubleX RMMV Status Bars Compatibility DoubleX 0 1,903 02-06-2022, 07:56 AM
Last Post: DoubleX
   DoubleX RMMV Popularized ATB Bar DoubleX 3 8,555 05-19-2021, 06:10 AM
Last Post: DoubleX
   DoubleX RMMV Skill Hotkeys DoubleX 2 5,981 02-13-2021, 04:59 AM
Last Post: DoubleX
   DoubleX RMMZ Skill Item Cooldown DoubleX 4 6,097 02-07-2021, 04:11 PM
Last Post: DoubleX
   DoubleX RMMZ Skill Item Triggers DoubleX 3 5,544 12-26-2020, 04:00 PM
Last Post: DoubleX
   DoubleX RMMZ TPBS Configurations Edit DoubleX 3 5,652 12-25-2020, 12:30 PM
Last Post: DoubleX
   DoubleX RMMZ Targeting AI DoubleX 3 4,663 12-02-2020, 04:22 AM
Last Post: DoubleX



Users browsing this thread: 1 Guest(s)