[MV] DoubleX RMMV Superlative ATB

Started by DoubleX, August 31, 2020, 07:41:41 am

Previous topic - Next topic

DoubleX

August 31, 2020, 07:41:41 am Last Edit: December 11, 2020, 08:22:56 am by DoubleX
DoubleX RMMV Superlative ATB
Authors: DoubleX
Version: v0.15c
Type: Active Time Battle System
Key Term: Custom Battle System

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
*    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": ShowHide




Games using this plugin
None so far

"Finished Modules": ShowHide

*      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


"Upcoming Modules": ShowHide

*      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


"Addressed Foreign Plugins": ShowHide

*    # 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


"Possibly Upcoming Modules": ShowHide

*      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": ShowHide

*      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": ShowHide

*      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": ShowHide

*      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": ShowHide

*      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": ShowHide

*    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": ShowHide

*      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



"Instructions": ShowHide

*      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


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

DoubleX

Updates
*      - 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
My RMVXA/RMMV/RMMZ scripts/plugins: http://rpgmaker.net/users/DoubleX/scripts/

DoubleX

Updates
*      - 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

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