Jump to content
New account registrations are disabed. This website is now an archive. Read more here.
DoubleX

DoubleX RMMZ TPBS Configurations Edit

Recommended Posts

Purpose

Lets you change some effectively hardcoded TPBS configurations on the fly

 

Introduction

*    1. By default, many TPBS configurations are effectively hardcoded, but
*       many users will want to change many of them to suit their needs
*    2. This plugin lets you do so, although you might want to write some
*       JavaScript codes directly, as there are just too many possibilities
*       to be handled

 

Video

 

Games using this plugin

None so far

 

Parameters

Spoiler

 * @param Battler
 *
 * @param tpbAcceleration
 * @parent Battler
 * @type note
 * @desc Returns default tpb gain rate of the battler
 * The battler involved can be referred by the this keyword
 * @default "const speed = this.tpbRelativeSpeed();\nconst referenceTime = $gameParty.tpbReferenceTime();\nreturn speed / referenceTime;"

 * @param tpbRelativeSpeed
 * @parent Battler
 * @type note
 * @desc Returns the default tpb relative speed of the battler
 * The battler involved can be referred by the this keyword
 * @default "return this.tpbSpeed() / $gameParty.tpbBaseSpeed();"
 *
 * @param tpbSpeed
 * @parent Battler
 * @type note
 * @desc Returns the default tpb speed of the battler involved
 * The battler involved can be referred by the this keyword
 * @default "return Math.sqrt(this.agi) + 1;"
 *
 * @param tpbBaseSpeed
 * @parent Battler
 * @type note
 * @desc Returns the default tpb base speed of the battler involved
 * The battler involved can be referred by the this keyword
 * @default "return Math.sqrt(this.paramBasePlus(6)) + 1;"
 *
 * @param tpbRequiredCastTime
 * @parent Battler
 * @type note
 * @desc Returns tpb required cast time for inputted skills/items
 * The battler involved can be referred by the this keyword
 * @default "const MZ_EC = DoubleX_RMMZ.Enhanced_Codebase;\nconst _tpbCastDelay = MZ_EC.Game_Battler.new._tpbCastDelay;\nreturn Math.sqrt(_tpbCastDelay.call(this)) / this.tpbSpeed();"
 *
 * @param tpbChargeTimeWithPenalty
 * @parent Battler
 * @type note
 * @desc Return tpb charge time with escape failure penalty applied
 * The battler involved can be referred by the this keyword
 * @default "return this._tpbChargeTime - 1;"

 * @param updatedTpbChargeTime
 * @parent Battler
 * @type note
 * @desc Returns the new tpb charge time upon a TPB charging update
 * The battler involved can be referred by the this keyword
 * @default "return this._tpbChargeTime + this.tpbAcceleration();"
 *
 * @param updatedTpbCastTime
 * @parent Battler
 * @type note
 * @desc Returns the new tpb cast time upon a TPB casting update
 * The battler involved can be referred by the this keyword
 * @default "return this._tpbCastTime + this.tpbAcceleration();"
 *
 * @param updatedTpbIdleTime
 * @parent Battler
 * @type note
 * @desc Returns the new tpb idle time upon a TPB casting update
 * The battler involved can be referred by the this keyword
 * @default "return this._tpbIdleTime + this.tpbAcceleration();"
 *
 * @param tpbCastDelay
 * @parent Battler
 * @type note
 * @desc Returns total TPB casting delay of all inputted skill/item
 * The battler involved can be referred by the this keyword
 * @default "return this._actions.filterMap(act => {\n    return act.isValid();\n}, act => act.item()).reduce((delay, { speed }) => {\n    return delay + Math.max(0, -speed);\n}, 0);"
 *
 * @param advantageousStartTpbChargeTime
 * @parent Battler
 * @type note
 * @desc Returns the tpb charge time upon advantageous battle start
 * The battler involved can be referred by the this keyword
 * @default "return 1;"
 *
 * @param disadvantageousStartTpbChargeTime
 * @parent Battler
 * @type note
 * @desc Returns tpb charge time upon disadvantageous battle start
 * The battler involved can be referred by the this keyword
 * @default "return 0;"
 *
 * @param normStartTpbChargeTime
 * @parent Battler
 * @type note
 * @desc Returns the tpb charge time upon normal battle starts
 * The battler involved can be referred by the this keyword
 * @default "return this.tpbRelativeSpeed() * Math.random() * 0.5;"
 *
 * @param NotetagDataTypePriorities
 *
 * @param tpbAccelerationNotetagDataTypePriorities
 * @parent NotetagDataTypePriorities
 * @type select[]
 * @option Data of the actor
 * @value actor
 * @option Data of the current class
 * @value class
 * @option Data of learnt skills/action list(Shouldn't be used with Data of usable skills)
 * @value skills
 * @option Data of usable skills(Shouldn't be used with Data of learnt skills)
 * @value usableSkills
 * @option Data of possessed items(Shouldn't be used with Data of usable items)
 * @value items
 * @option Data of usable items(Shouldn't be used with Data of possessed items)
 * @value usableItems
 * @option Data of the latest skill/item being used(Can double-count with skills/items/usableSkills/usableItems)
 * @value latestSkillItem
 * @option Data of equipped weapons
 * @value weapons
 * @option Data of equipped armors
 * @value armors
 * @option Data of the enemy
 * @value enemy
 * @option Data of effective states
 * @value states
 * @desc Sets the data type priorities of tpbAcceleration notetags
 * You can use script calls/plugin commands to change this
 * @default ["latestSkillItem","states","enemy","armors","weapons","class","actor"]
 *
 * @param tpbRelativeSpeedNotetagDataTypePriorities
 * @parent NotetagDataTypePriorities
 * @type select[]
 * @option Data of the actor
 * @value actor
 * @option Data of the current class
 * @value class
 * @option Data of learnt skills/action list(Shouldn't be used with Data of usable skills)
 * @value skills
 * @option Data of usable skills(Shouldn't be used with Data of learnt skills)
 * @value usableSkills
 * @option Data of possessed items(Shouldn't be used with Data of usable items)
 * @value items
 * @option Data of usable items(Shouldn't be used with Data of possessed items)
 * @value usableItems
 * @option Data of the latest skill/item being used(Can double-count with skills/items/usableSkills/usableItems)
 * @value latestSkillItem
 * @option Data of equipped weapons
 * @value weapons
 * @option Data of equipped armors
 * @value armors
 * @option Data of the enemy
 * @value enemy
 * @option Data of effective states
 * @value states
 * @desc Sets the data type priorities of tpbRelativeSpeed notetags
 * You can use script calls/plugin commands to change this
 * @default ["latestSkillItem","states","enemy","armors","weapons","class","actor"]
 *
 * @param tpbSpeedNotetagDataTypePriorities
 * @parent NotetagDataTypePriorities
 * @type select[]
 * @option Data of the actor
 * @value actor
 * @option Data of the current class
 * @value class
 * @option Data of learnt skills/action list(Shouldn't be used with Data of usable skills)
 * @value skills
 * @option Data of usable skills(Shouldn't be used with Data of learnt skills)
 * @value usableSkills
 * @option Data of possessed items(Shouldn't be used with Data of usable items)
 * @value items
 * @option Data of usable items(Shouldn't be used with Data of possessed items)
 * @value usableItems
 * @option Data of the latest skill/item being used(Can double-count with skills/items/usableSkills/usableItems)
 * @value latestSkillItem
 * @option Data of equipped weapons
 * @value weapons
 * @option Data of equipped armors
 * @value armors
 * @option Data of the enemy
 * @value enemy
 * @option Data of effective states
 * @value states
 * @desc Sets the data type priorities of the tpbSpeed notetags
 * You can use script calls/plugin commands to change this
 * @default ["latestSkillItem","states","enemy","armors","weapons","class","actor"]
 *
 * @param tpbBaseSpeedNotetagDataTypePriorities
 * @parent NotetagDataTypePriorities
 * @type select[]
 * @option Data of the actor
 * @value actor
 * @option Data of the current class
 * @value class
 * @option Data of learnt skills/action list(Shouldn't be used with Data of usable skills)
 * @value skills
 * @option Data of usable skills(Shouldn't be used with Data of learnt skills)
 * @value usableSkills
 * @option Data of possessed items(Shouldn't be used with Data of usable items)
 * @value items
 * @option Data of usable items(Shouldn't be used with Data of possessed items)
 * @value usableItems
 * @option Data of the latest skill/item being used(Can double-count with skills/items/usableSkills/usableItems)
 * @value latestSkillItem
 * @option Data of equipped weapons
 * @value weapons
 * @option Data of equipped armors
 * @value armors
 * @option Data of the enemy
 * @value enemy
 * @option Data of effective states
 * @value states
 * @desc Sets the data type priorities of the tpbBaseSpeed notetags
 * You can use script calls/plugin commands to change this
 * @default ["latestSkillItem","states","enemy","armors","weapons","class","actor"]
 *
 * @param tpbRequiredCastTimeNotetagDataTypePriorities
 * @parent NotetagDataTypePriorities
 * @type select[]
 * @option Data of the actor
 * @value actor
 * @option Data of the current class
 * @value class
 * @option Data of learnt skills/action list(Shouldn't be used with Data of usable skills)
 * @value skills
 * @option Data of usable skills(Shouldn't be used with Data of learnt skills)
 * @value usableSkills
 * @option Data of possessed items(Shouldn't be used with Data of usable items)
 * @value items
 * @option Data of usable items(Shouldn't be used with Data of possessed items)
 * @value usableItems
 * @option Data of the latest skill/item being used(Can double-count with skills/items/usableSkills/usableItems)
 * @value latestSkillItem
 * @option Data of equipped weapons
 * @value weapons
 * @option Data of equipped armors
 * @value armors
 * @option Data of the enemy
 * @value enemy
 * @option Data of effective states
 * @value states
 * @desc Sets data type priorities of tpbRequiredCastTime notetags
 * You can use script calls/plugin commands to change this
 * @default ["latestSkillItem","states","enemy","armors","weapons","class","actor"]
 *
 * @param tpbChargeTimeWithPenaltyNotetagDataTypePriorities
 * @parent NotetagDataTypePriorities
 * @type select[]
 * @option Data of the actor
 * @value actor
 * @option Data of the current class
 * @value class
 * @option Data of learnt skills/action list(Shouldn't be used with Data of usable skills)
 * @value skills
 * @option Data of usable skills(Shouldn't be used with Data of learnt skills)
 * @value usableSkills
 * @option Data of possessed items(Shouldn't be used with Data of usable items)
 * @value items
 * @option Data of usable items(Shouldn't be used with Data of possessed items)
 * @value usableItems
 * @option Data of the latest skill/item being used(Can double-count with skills/items/usableSkills/usableItems)
 * @value latestSkillItem
 * @option Data of equipped weapons
 * @value weapons
 * @option Data of equipped armors
 * @value armors
 * @option Data of the enemy
 * @value enemy
 * @option Data of effective states
 * @value states
 * @desc Sets tpbChargeTimeWithPenalty notetag data type priorities
 * You can use script calls/plugin commands to change this
 * @default ["latestSkillItem","states","enemy","armors","weapons","class","actor"]
 *
 * @param updatedTpbChargeTimeNotetagDataTypePriorities
 * @parent NotetagDataTypePriorities
 * @type select[]
 * @option Data of the actor
 * @value actor
 * @option Data of the current class
 * @value class
 * @option Data of learnt skills/action list(Shouldn't be used with Data of usable skills)
 * @value skills
 * @option Data of usable skills(Shouldn't be used with Data of learnt skills)
 * @value usableSkills
 * @option Data of possessed items(Shouldn't be used with Data of usable items)
 * @value items
 * @option Data of usable items(Shouldn't be used with Data of possessed items)
 * @value usableItems
 * @option Data of the latest skill/item being used(Can double-count with skills/items/usableSkills/usableItems)
 * @value latestSkillItem
 * @option Data of equipped weapons
 * @value weapons
 * @option Data of equipped armors
 * @value armors
 * @option Data of the enemy
 * @value enemy
 * @option Data of effective states
 * @value states
 * @desc Sets data type priorities of updatedTpbChargeTime notetags
 * You can use script calls/plugin commands to change this
 * @default ["latestSkillItem","states","enemy","armors","weapons","class","actor"]
 *
 * @param updatedTpbCastTimeNotetagDataTypePriorities
 * @parent NotetagDataTypePriorities
 * @type select[]
 * @option Data of the actor
 * @value actor
 * @option Data of the current class
 * @value class
 * @option Data of learnt skills/action list(Shouldn't be used with Data of usable skills)
 * @value skills
 * @option Data of usable skills(Shouldn't be used with Data of learnt skills)
 * @value usableSkills
 * @option Data of possessed items(Shouldn't be used with Data of usable items)
 * @value items
 * @option Data of usable items(Shouldn't be used with Data of possessed items)
 * @value usableItems
 * @option Data of the latest skill/item being used(Can double-count with skills/items/usableSkills/usableItems)
 * @value latestSkillItem
 * @option Data of equipped weapons
 * @value weapons
 * @option Data of equipped armors
 * @value armors
 * @option Data of the enemy
 * @value enemy
 * @option Data of effective states
 * @value states
 * @desc Sets data type priorities of updatedTpbCastTime notetags
 * You can use script calls/plugin commands to change this
 * @default ["latestSkillItem","states","enemy","armors","weapons","class","actor"]
 *
 * @param updatedTpbIdleTimeNotetagDataTypePriorities
 * @parent NotetagDataTypePriorities
 * @type select[]
 * @option Data of the actor
 * @value actor
 * @option Data of the current class
 * @value class
 * @option Data of learnt skills/action list(Shouldn't be used with Data of usable skills)
 * @value skills
 * @option Data of usable skills(Shouldn't be used with Data of learnt skills)
 * @value usableSkills
 * @option Data of possessed items(Shouldn't be used with Data of usable items)
 * @value items
 * @option Data of usable items(Shouldn't be used with Data of possessed items)
 * @value usableItems
 * @option Data of the latest skill/item being used(Can double-count with skills/items/usableSkills/usableItems)
 * @value latestSkillItem
 * @option Data of equipped weapons
 * @value weapons
 * @option Data of equipped armors
 * @value armors
 * @option Data of the enemy
 * @value enemy
 * @option Data of effective states
 * @value states
 * @desc Sets data type priorities of updatedTpbIdleTime notetags
 * You can use script calls/plugin commands to change this
 * @default ["latestSkillItem","states","enemy","armors","weapons","class","actor"]
 *
 * @param tpbCastDelayNotetagDataTypePriorities
 * @parent NotetagDataTypePriorities
 * @type select[]
 * @option Data of the actor
 * @value actor
 * @option Data of the current class
 * @value class
 * @option Data of learnt skills/action list(Shouldn't be used with Data of usable skills)
 * @value skills
 * @option Data of usable skills(Shouldn't be used with Data of learnt skills)
 * @value usableSkills
 * @option Data of possessed items(Shouldn't be used with Data of usable items)
 * @value items
 * @option Data of usable items(Shouldn't be used with Data of possessed items)
 * @value usableItems
 * @option Data of the latest skill/item being used(Can double-count with skills/items/usableSkills/usableItems)
 * @value latestSkillItem
 * @option Data of equipped weapons
 * @value weapons
 * @option Data of equipped armors
 * @value armors
 * @option Data of the enemy
 * @value enemy
 * @option Data of effective states
 * @value states
 * @desc Sets the data type priorities of the tpbCastDelay notetags
 * You can use script calls/plugin commands to change this
 * @default ["latestSkillItem","states","enemy","armors","weapons","class","actor"]
 *
 * @param advantageousStartTpbChargeTimeNotetagDataTypePriorities
 * @parent NotetagDataTypePriorities
 * @type select[]
 * @option Data of the actor
 * @value actor
 * @option Data of the current class
 * @value class
 * @option Data of learnt skills/action list(Shouldn't be used with Data of usable skills)
 * @value skills
 * @option Data of usable skills(Shouldn't be used with Data of learnt skills)
 * @value usableSkills
 * @option Data of possessed items(Shouldn't be used with Data of usable items)
 * @value items
 * @option Data of usable items(Shouldn't be used with Data of possessed items)
 * @value usableItems
 * @option Data of the latest skill/item being used(Can double-count with skills/items/usableSkills/usableItems)
 * @value latestSkillItem
 * @option Data of equipped weapons
 * @value weapons
 * @option Data of equipped armors
 * @value armors
 * @option Data of the enemy
 * @value enemy
 * @option Data of effective states
 * @value states
 * @desc Set advantageousStartTpbChargeTime note data type priority
 * You can use script calls/plugin commands to change this
 * @default ["latestSkillItem","states","enemy","armors","weapons","class","actor"]
 *
 * @param disadvantageousStartTpbChargeTimeNotetagDataTypePriorities
 * @parent NotetagDataTypePriorities
 * @type select[]
 * @option Data of the actor
 * @value actor
 * @option Data of the current class
 * @value class
 * @option Data of learnt skills/action list(Shouldn't be used with Data of usable skills)
 * @value skills
 * @option Data of usable skills(Shouldn't be used with Data of learnt skills)
 * @value usableSkills
 * @option Data of possessed items(Shouldn't be used with Data of usable items)
 * @value items
 * @option Data of usable items(Shouldn't be used with Data of possessed items)
 * @value usableItems
 * @option Data of the latest skill/item being used(Can double-count with skills/items/usableSkills/usableItems)
 * @value latestSkillItem
 * @option Data of equipped weapons
 * @value weapons
 * @option Data of equipped armors
 * @value armors
 * @option Data of the enemy
 * @value enemy
 * @option Data of effective states
 * @value states
 * @desc Sets disadvantageousStartTpbChargeTime note data priority
 * You can use script calls/plugin commands to change this
 * @default ["latestSkillItem","states","enemy","armors","weapons","class","actor"]
 *
 * @param normStartTpbChargeTimeNotetagDataTypePriorities
 * @parent NotetagDataTypePriorities
 * @type select[]
 * @option Data of the actor
 * @value actor
 * @option Data of the current class
 * @value class
 * @option Data of learnt skills/action list(Shouldn't be used with Data of usable skills)
 * @value skills
 * @option Data of usable skills(Shouldn't be used with Data of learnt skills)
 * @value usableSkills
 * @option Data of possessed items(Shouldn't be used with Data of usable items)
 * @value items
 * @option Data of usable items(Shouldn't be used with Data of possessed items)
 * @value usableItems
 * @option Data of the latest skill/item being used(Can double-count with skills/items/usableSkills/usableItems)
 * @value latestSkillItem
 * @option Data of equipped weapons
 * @value weapons
 * @option Data of equipped armors
 * @value armors
 * @option Data of the enemy
 * @value enemy
 * @option Data of effective states
 * @value states
 * @desc Sets normStartTpbChargeTime notetag data type priorities
 * You can use script calls/plugin commands to change this
 * @default ["latestSkillItem","states","enemy","armors","weapons","class","actor"]
 *
 * @param Unit
 *
 * @param unitTPBBaseSpeed
 * @parent Unit
 * @type note
 * @desc Returns the tpb base speed for the whole party/troop
 * The game unit involved can be referred by the this keyword
 * @default "return Math.max(...this.members().map(mem => {\n    return mem.tpbBaseSpeed();\n}));"
 *
 * @param unitTPBReferenceTime
 * @parent Unit
 * @type note
 * @desc Returns the tpb refernece time for the whole party/troop
 * The game unit involved can be referred by the this keyword
 * @default "const fps = Graphics.gameFps;\nreturn BattleManager.isActiveTpb() ? 4 * fps : fps;"
 *
 * @param Troop
 *
 * @param isTroopTpbTurnEnd
 * @parent Troop
 * @type note
 * @desc Returns whether the battle turn has ended
 * The game troop involved can be referred by the this keyword
 * @default "return Math.max(...this.members().map(mem => {\n    return mem.turnCount();\n})) > this._turnCount;"

 

 

Notetags

Spoiler

 *    ## Notetag Info
 *       1. Among all the same notetag types in the same data, all can be
 *          effective
 *       2. Each line can only have at most 1 notetag
 *       3. The following is the structure of all notetags in this plugin:
 *          - <doublex rmmz tpbs cfgs edit>
 *          - <tpbs cfgs edit>
 *          Where contents are in the form of type suffixes: entries
 *          Either of the above can be used, but the 1st one reduce the chance
 *          of causing other plugins to treat the notetags of this plugin as
 *          theirs, while the 2nd one is more user-friendly
 *          - type is one of the following:
 *            1. tpbAcceleration
 *            2. tpbRelativeSpeed
 *            3. tpbSpeed
 *            4. tpbBaseSpeed
 *            5. tpbRequiredCastTime
 *            6. tpbChargeTimeWithPenalty
 *            7. updatedTpbChargeTime
 *            8. updatedTpbCastTime
 *            9. updatedTpbIdleTime
 *            10. tpbCastDelay
 *            11. advantageousStartTpbChargeTime
 *            12. disadvantageousStartTpbChargeTime
 *            13. normStartTpbChargeTime
 *            (Search tag: NOTE_TYPE)
 *          - suffixes is the list of suffixes in the form of:
 *            suffix1 suffix2 suffix3 ... suffixn
 *            Where each suffix is either of the following:
 *            val(The notetag value will be used as-is)
 *            switch(The value of the game switch with id as the notetag value
 *                   will be used)
 *            var(The value of the game variable with id as the notetag value
 *                will be used)
 *            (Advanced)script(The value of the game variable with id as the
 *                            notetag value will be used as the contents of
 *                            the functions to be called upon using the
 *                            notetag)
 *          - The this pointer of the script suffix is the battler involved
 *            (Game_Battler.prototype)
 *          - entries is the list of entries in the form of:
 *            entry1, entry2, entry3, ..., entryn
 *            Where entryi must conform with the suffixi specifications
 *----------------------------------------------------------------------------
 *    # Actor/Class/Learnt Skills/Usable Skills/Posessed Items/Usable Items/
 *      Inputted Skill Or Item/Weapon/Armor/Enemy/States Notetags
 *      1. tpbAcceleration condSuffix opSuffix valSuffix: condEntry, opEntry, valEntry
 *         - Applies the following formula on the current tpb gain rate:
 *           current = current operator value
 *           if condEntry returns a turthy result
 *           Where current is the current tpb gain rate, operator is the
 *           operator specified by opEntry, and value is the value specified
 *           by valEntry
 *         - If there are no notetags, current will be the result returned by
 *           the function specified in the parameter tpbAcceleration
 *         - condSuffix can be val, switch or script
 *         - Both opSuffix and valSuffix can be val, var or script
 *         - The result of condEntry can be anything as only whether it's
 *           truthy matters
 *         - The result of opSuffix must be either of the following:
 *           +
 *           -
 *           *
 *           /
 *           %
 *           =
 *         - The result of valEntry can be any number
 *         - E.g.:
 *           <tpbs cfgs edit tpbAcceleration switch val val: 1, +, 0.01> will
 *           cause the tpb gain rate of the battler involved to be increased
 *           by 1% of the full TPBS bar(per frame) if the game switch with id
 *           1 is on
 *      2. tpbRelativeSpeed condSuffix opSuffix valSuffix: condEntry, opEntry, valEntry
 *         - Applies the following formula on the current tpb relative speed:
 *           current = current operator value
 *           if condEntry returns a turthy result
 *           Where current is the current tpb relative speed, operator is the
 *           operator specified by opEntry, and value is the value specified
 *           by valEntry
 *         - If there are no notetags, current will be the result returned by
 *           the function specified in the parameter tpbRelativeSpeed
 *         - condSuffix can be val, switch or script
 *         - Both opSuffix and valSuffix can be val, var or script
 *         - The result of condEntry can be anything as only whether it's
 *           truthy matters
 *         - The result of opSuffix must be either of the following:
 *           +
 *           -
 *           *
 *           /
 *           %
 *           =
 *         - The result of valEntry can be any number
 *         - E.g.:
 *           <tpbs cfgs edit tpbRelativeSpeed switch val val: 1, +, 0.1> will
 *           cause the tpb relative speed of the battler involved to be
 *           increased by 10% if the game switch with id 1 is on
 *      3. tpbSpeed condSuffix opSuffix valSuffix: condEntry, opEntry, valEntry
 *         - Applies the following formula on the current tpb speed:
 *           current = current operator value
 *           if condEntry returns a turthy result
 *           Where current is the current tpb speed, operator is the operator
 *           specified by opEntry, and value is the value specified by
 *           valEntry
 *         - If there are no notetags, current will be the result returned by
 *           the function specified in the parameter tpbSpeed
 *         - condSuffix can be val, switch or script
 *         - Both opSuffix and valSuffix can be val, var or script
 *         - The result of condEntry can be anything as only whether it's
 *           truthy matters
 *         - The result of opSuffix must be either of the following:
 *           +
 *           -
 *           *
 *           /
 *           %
 *           =
 *         - The result of valEntry can be any number
 *         - E.g.:
 *           <tpbs cfgs edit tpbSpeed switch val val: 1, +, 10> will cause the
 *           tpb speed of the battler involved to be increased by 10(roughly
 *           the same as adding 100 agi if tpbSpeed uses the default formula)
 *           if the game switch with id 1 is on
 *      4. tpbBaseSpeed condSuffix opSuffix valSuffix: condEntry, opEntry, valEntry
 *         - Applies the following formula on the current tpb base speed:
 *           current = current operator value
 *           if condEntry returns a turthy result
 *           Where current is the current tpb base speed, operator is the
 *           operator specified by opEntry, and value is the value specified
 *           by valEntry
 *         - If there are no notetags, current will be the result returned by
 *           the function specified in the parameter tpbBaseSpeed
 *         - condSuffix can be val, switch or script
 *         - Both opSuffix and valSuffix can be val, var or script
 *         - The result of condEntry can be anything as only whether it's
 *           truthy matters
 *         - The result of opSuffix must be either of the following:
 *           +
 *           -
 *           *
 *           /
 *           %
 *           =
 *         - The result of valEntry can be any number
 *         - E.g.:
 *           <tpbs cfgs edit tpbBaseSpeed switch val val: 1, +, 10> will cause
 *           the tpb base speed of the battler involved to be increased by 10
 *           (roughly the same as adding 100 agi if tpbSpeed uses the default
 *           formula) if the game switch with id 1 is on
 *      5. tpbRequiredCastTime condSuffix opSuffix valSuffix: condEntry, opEntry, valEntry
 *         - Applies the following formula on the current tpb required cast
 *           time: current = current operator value
 *           if condEntry returns a turthy result
 *           Where current is the current tpb required cast time, operator is
 *           the operator specified by opEntry, and value is the value
 *           specified by valEntry
 *         - If there are no notetags, current will be the result returned by
 *           the function specified in the parameter tpbRequiredCastTime
 *         - condSuffix can be val, switch or script
 *         - Both opSuffix and valSuffix can be val, var or script
 *         - The result of condEntry can be anything as only whether it's
 *           truthy matters
 *         - The result of opSuffix must be either of the following:
 *           +
 *           -
 *           *
 *           /
 *           %
 *           =
 *         - The result of valEntry can be any number
 *         - E.g.:
 *           <tpbs cfgs edit tpbRequiredCastTime switch val val: 1, +, 1> will
 *           cause the tpb required cast time involved to be increased by 100%
 *           of the full TPBS bar if the game switch with id 1 is on
 *      6. tpbChargeTimeWithPenalty condSuffix opSuffix valSuffix: condEntry, opEntry, valEntry
 *         - Applies the following formula on the current tpb charge time with
 *           the failed party escape attempt penalty applied:
 *           current = current operator value
 *           if condEntry returns a turthy result
 *           Where current is the current tpb charge time with the failed
 *           party escape attempt penalty applied, operator is the operator
 *           specified by opEntry, and value is the value specified by
 *           valEntry
 *         - If there are no notetags, current will be the result returned by
 *           the function specified in the parameter tpbChargeTimeWithPenalty
 *         - condSuffix can be val, switch or script
 *         - Both opSuffix and valSuffix can be val, var or script
 *         - The result of condEntry can be anything as only whether it's
 *           truthy matters
 *         - The result of opSuffix must be either of the following:
 *           +
 *           -
 *           *
 *           /
 *           %
 *           =
 *         - The result of valEntry can be any number
 *         - E.g.:
 *           <tpbs cfgs edit tpbChargeTimeWithPenalty switch val val: 1, -, 1>
 *           will cause the tpb charge time with the failed party escape
 *           attempt penalty applied of the battler involved to be decreased
 *           by 100% of the full TPBS bar if the game switch with id 1 is on
 *      7. updatedTpbChargeTime condSuffix opSuffix valSuffix: condEntry, opEntry, valEntry
 *         - Applies the following formula on the current updated tpb charge
 *           time(updated per frame): current = current operator value
 *           if condEntry returns a turthy result
 *           Where current is the current updated tpb charge time, operator is
 *           the operator specified by opEntry, and value is the value
 *           specified by valEntry
 *         - If there are no notetags, current will be the result returned by
 *           the function specified in the parameter updatedTpbChargeTime
 *         - condSuffix can be val, switch or script
 *         - Both opSuffix and valSuffix can be val, var or script
 *         - The result of condEntry can be anything as only whether it's
 *           truthy matters
 *         - The result of opSuffix must be either of the following:
 *           +
 *           -
 *           *
 *           /
 *           %
 *           =
 *         - The result of valEntry can be any number
 *         - E.g.:
 *           <tpbs cfgs edit updatedTpbChargeTime switch val val: 1, +, 0.01>
 *           will cause the tpb charge time gain rate of the battler involved
 *           to be increased by 1% of the full TPBS bar(per frame) if the game
 *           switch with id 1 is on
 *      8. updatedTpbCastTime condSuffix opSuffix valSuffix: condEntry, opEntry, valEntry
 *         - Applies the following formula on the current updated tpb cast
 *           time(updated per frame): current = current operator value
 *           if condEntry returns a turthy result
 *           Where current is the current updated tpb cast time, operator is
 *           the operator specified by opEntry, and value is the value
 *           specified by valEntry
 *         - If there are no notetags, current will be the result returned by
 *           the function specified in the parameter updatedTpbCastTime
 *         - condSuffix can be val, switch or script
 *         - Both opSuffix and valSuffix can be val, var or script
 *         - The result of condEntry can be anything as only whether it's
 *           truthy matters
 *         - The result of opSuffix must be either of the following:
 *           +
 *           -
 *           *
 *           /
 *           %
 *           =
 *         - The result of valEntry can be any number
 *         - E.g.:
 *           <tpbs cfgs edit updatedTpbCastTime switch val val: 1, +, 0.01>
 *           will cause the tpb cast time gain rate of the battler involved to
 *           be increased by 1% of the full TPBS bar(per frame) if the game
 *           switch with id 1 is on
 *      9. updatedTpbIdleTime condSuffix opSuffix valSuffix: condEntry, opEntry, valEntry
 *         - Applies the following formula on the current updated tpb idle
 *           time(updated per frame): current = current operator value
 *           if condEntry returns a turthy result
 *           Where current is the current updated tpb idle time, operator is
 *           the operator specified by opEntry, and value is the value
 *           specified by valEntry
 *         - If there are no notetags, current will be the result returned by
 *           the function specified in the parameter updatedTpbIdleTime
 *         - condSuffix can be val, switch or script
 *         - Both opSuffix and valSuffix can be val, var or script
 *         - The result of condEntry can be anything as only whether it's
 *           truthy matters
 *         - The result of opSuffix must be either of the following:
 *           +
 *           -
 *           *
 *           /
 *           %
 *           =
 *         - The result of valEntry can be any number
 *         - E.g.:
 *           <tpbs cfgs edit updatedTpbIdleTime switch val val: 1, +, 0.01>
 *           will cause the tpb idle time gain rate of the battler involved to
 *           be increased by 1% of the full TPBS bar(per frame) if the game
 *           switch with id 1 is on
 *      10. tpbCastDelay condSuffix opSuffix valSuffix: condEntry, opEntry, valEntry
 *          - Applies the following formula on the current tpb cast delay:
 *            current = current operator value
 *            if condEntry returns a turthy result
 *            Where current is the current cast delay, operator is the
 *            operator specified by opEntry, and value is the value specified
 *            by valEntry
 *          - If there are no notetags, current will be the result returned by
 *            the function specified in the parameter tpbCastDelay
 *          - condSuffix can be val, switch or script
 *          - Both opSuffix and valSuffix can be val, var or script
 *          - The result of condEntry can be anything as only whether it's
 *            truthy matters
 *          - The result of opSuffix must be either of the following:
 *            +
 *            -
 *            *
 *            /
 *            %
 *            =
 *          - The result of valEntry can be any number
 *          - E.g.:
 *            <tpbs cfgs edit tpbCastDelay switch val val: 1, +, 2000> will
 *            cause the tpb cast delay of the battler involved to be increased
 *            by 2000(as if the total speed of all inputted skills/items is
 *            decreased by 2000) if the game switch with id 1 is on
 *      11. advantageousStartTpbChargeTime condSuffix opSuffix valSuffix: condEntry, opEntry, valEntry
 *          - Applies the following formula on the current tpb charge time
 *            upon advantageous battle start(preemptive for actors and
 *            surprise for enemies): current = current operator value
 *            if condEntry returns a turthy result
 *            Where current is the current tpb charge time upon advantageous
 *            battle start, operator is the operator specified by opEntry, and
 *            value is the value specified by valEntry
 *          - If there are no notetags, current will be the result returned by
 *            the function specified in the parameter
 *            advantageousStartTpbChargeTime
 *          - condSuffix can be val, switch or script
 *          - Both opSuffix and valSuffix can be val, var or script
 *          - The result of condEntry can be anything as only whether it's
 *            truthy matters
 *          - The result of opSuffix must be either of the following:
 *            +
 *            -
 *            *
 *            /
 *            %
 *            =
 *          - The result of valEntry can be any number
 *          - E.g.:
 *            <tpbs cfgs edit advantageousStartTpbChargeTime val val val: true, -, 0.5>
 *            will always cause the tpb charge time upon advantageous
 *            battle start of the battler involved to be decreased by 50% of
 *            the full TPBS bar
 *      12. disadvantageousStartTpbChargeTime condSuffix opSuffix valSuffix: condEntry, opEntry, valEntry
 *          - Applies the following formula on the current tpb charge time
 *            upon disadvantageous battle start(surprise for actors and
 *            preemptive for enemies): current = current operator
 *            value if condEntry returns a turthy result
 *            Where current is the current tpb charge time upon
 *            disadvantageous battle start, operator is the operator specified
 *            by opEntry, and value is the value specified by valEntry
 *          - If there are no notetags, current will be the result returned by
 *            the function specified in the parameter
 *            disadvantageousStartTpbChargeTime
 *          - condSuffix can be val, switch or script
 *          - Both opSuffix and valSuffix can be val, var or script
 *          - The result of condEntry can be anything as only whether it's
 *            truthy matters
 *          - The result of opSuffix must be either of the following:
 *            +
 *            -
 *            *
 *            /
 *            %
 *            =
 *          - The result of valEntry can be any number
 *          - E.g.:
 *            <tpbs cfgs edit disadvantageousStartTpbChargeTime val val val: true, -, 0.5>
 *            will always cause the tpb charge time upon disadvantageous
 *            battle start of the battler involved to be decreased by 50% of
 *            the full TPBS bar
 *      13. normStartTpbChargeTime condSuffix opSuffix valSuffix: condEntry, opEntry, valEntry
 *          - Applies the following formula on the current tpb charge time
 *            upon normal battle start: current = current operator
 *            value if condEntry returns a turthy result
 *            Where current is the current tpb charge time upon normal battle
 *            start, operator is the operator specified by opEntry, and value
 *            is the value specified by valEntry
 *          - If there are no notetags, current will be the result returned by
 *            the function specified in the parameter normStartTpbChargeTime
 *          - condSuffix can be val, switch or script
 *          - Both opSuffix and valSuffix can be val, var or script
 *          - The result of condEntry can be anything as only whether it's
 *            truthy matters
 *          - The result of opSuffix must be either of the following:
 *            +
 *            -
 *            *
 *            /
 *            %
 *            =
 *          - The result of valEntry can be any number
 *          - E.g.:
 *            <tpbs cfgs edit normStartTpbChargeTime val val val: true, =, 0.5>
 *            will always cause the tpb charge time upon normal battle start
 *            of the battler involved to be set as 50% of the full TPBS bar

 

 

Script Calls

Spoiler

 *    # Parameter manipulations
 *      1. $gameSystem.setTPBSCfgEditParam(param, val)
 *         - Sets the fully parsed value of the parameter param as val
 *         - param must be the name of a valid parameter of this plugin
 *         - val must be a valid new fully parsed value of the parameter param
 *         - Such parameter value changes will be saved
 *         - E.g.:
 *           $gameSystem.setTPBSCfgEditParam("battlerNotetagDataTypePriorities", [
 *               "latestSkillItem",
 *               "states",
 *               "armors",
 *               "weapons",
 *               "class",
 *               "actor",
 *               "enemy"
 *           ]) sets the fully parsed value of the parameter
 *           battlerNotetagDataTypePriorities as
 *           ["latestSkillItem","states", "armors", "weapons", "class", "actor", "enemy"]
 *      2. $gameSystem.tpbsCfgEditParam(param)
 *         - Returns the fully parsed value of the parameter param
 *         - param must be the name of a valid parameter of this plugin
 *         - E.g.:
 *           $gameSystem.tpbsCfgEditParam("skillItemNotetagDataTypePriorities")
 *           returns the fully parsed value of the parameter
 *           skillItemNotetagDataTypePriorities, which should be
 *           ["latestSkillItem","states", "armors", "weapons", "class", "actor", "enemy"]
 *           if it uses its default parameter value
 *    # Battler manipulations
 *      1. setTpbChargeTime(tpbChargeTime)
 *         - Sets the tpb charge time of the battler involved to be
 *           tpbChargeTime
 *         - If the tpb charge time of the battler becomes full, that battler
 *           will become charged and can input actions
 *         - If the battler was casting actions but the tpb charge time
 *           becomes not full, all those actions will be cleared and that
 *           battler will become charging the TPB bar again
 *         - E.g.:
 *           $gameActors.actor(1).setTpbChargeTime(0) will clear the TPBS
 *           charging bar of the actor with id 1 and all casting actions of
 *           that actor if any
 *      2. setTpbCastTime(tpbCastTime)
 *         - Sets the tpb cast time of the battler involved to be tpbCastTime
 *         - This script call only works if the battler's already casting
 *           actions
 *         - If the tpb cast time of the battler becomes full, that battler
 *           will become ready to execute those casted actions
 *         - E.g.:
 *           $gameParty.aliveMembers(0).setTpbCastTime(1) will finish the
 *           casting of all inputted actions of the 1st alive party member and
 *           cause that member to be ready to execute those casted actions,
 *           assuming that that actor's indeed already casting actions
 *      3. setTpbIdleTime(tpbIdleTime)
 *         - Sets the tpb idle time of the battler involved to be tpbIdleTime
 *         - This script call only works if the battler's already idling
 *         - Setting the tpb idle time to be above 1(the maximum tpb idle
 *           time) will behave as setting it as 1
 *         - E.g.:
 *           $gameTroop.members(0).setTpbCastTime(2) will cause the 1st troop
 *           member to reach the TPB timeout and have the individual turn
 *           count increased by 1, as long as that enemy's already idling

 

 

Plugin Commands

Spoiler

 * @command setTPBSCfgEditParam
 * @desc Applies script call $gameSystem.setTPBSCfgEditParam(param, val)
 * @arg param
 * @desc The name of a valid parameter of this plugin
 * @arg val
 * @desc A valid new fully parsed value of the parameter param
 *
 * @command setTpbChargeTime
 * @desc Applies script call battler.setTpbChargeTime(tpbChargeTime)
 * @arg side
 * @type select
 * @option Actor
 * @value actor
 * @option Enemy
 * @value enemy
 * @desc The side of the battler setting the TPBS charge time
 * @arg label
 * @type number
 * @desc The actor id/enemy index of the battler setting the TPBS charge time
 * @arg tpbChargeTime
 * @type number
 * @min -999999
 * @desc The new TPBS charge time of the battler involved
 *
 * @command setTpbCastTime
 * @desc Applies script call battler.setTpbCastTime(tpbCastTime)
 * @arg side
 * @type select
 * @option Actor
 * @value actor
 * @option Enemy
 * @value enemy
 * @desc The side of the battler setting the TPBS cast time
 * @arg label
 * @type number
 * @desc The actor id/enemy index of the battler setting the TPBS cast time
 * @arg tpbCastTime
 * @type number
 * @min -999999
 * @desc The new TPBS cast time of the battler involved
 *
 * @command setTpbIdleTime
 * @desc Applies script call battler.setTpbIdleTime(tpbIdleTime)
 * @arg side
 * @type select
 * @option Actor
 * @value actor
 * @option Enemy
 * @value enemy
 * @desc The side of the battler setting the TPBS idle time
 * @arg label
 * @type number
 * @desc The actor id/enemy index of the battler setting the TPBS idle time
 * @arg tpbIdleTime
 * @type number
 * @min -999999
 * @desc The new TPBS idle time of the battler involved

 

 

Todo

Spoiler

*      1. Shows the TPB casting bar inside battles(with configurable colors)
*      2. Shows the TPB required cast time for all skills/items of all actors
*      3. Lets you set the TPBS wait conditions more precisely
*      4. Lets you set hotkeys to choose among any inputable actor

 

 

Prerequisites

Spoiler

Plugins:

1. DoubleX RMMZ Enhanced Codebase

Abilities:

1. Nothing special for most ordinary cases

2. Little RMMZ plugin development proficiency to fully utilize this

    (Elementary Javascript exposures being able to write beginner codes up to 300LoC scale)

 

Terms Of Use

Spoiler

*      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

Spoiler

*      1. The default plugin parameters file name is
*         DoubleX RMMZ TPBS Configurations Edit
*         If you want to change that, you must edit the value of
*         DoubleX_RMMZ.TPBS_Configurations_Edit.PLUGIN_NAME, which must be
*         done via opening this plugin js file directly

 

 

Contributors

Spoiler

*      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

Spoiler

*      { codebase: "1.0.0", plugin: "v1.00a" }(2020 Sep 5 GMT 1200):
*      1. 1st version of this plugin finished

 

 

Download Link

Share this post


Link to post
Share on other sites

Updates

 *      { codebase: "1.1.0", plugin: "v1.00b" }(2020 Dec 2 GMT 0400):
 *      1. You no longer have to edit the value of
 *         DoubleX_RMMZ.TPBS_Configurations_Edit.PLUGIN_NAME when changing
 *         this plugin file name

 

Share this post


Link to post
Share on other sites

Updates

 *      { codebase: "1.1.1", plugin: "v1.01a" }(2020 Dec 25 GMT 1100):
 *      1. Added tpbChargeGaugeColor1 and tpbChargeGaugeColor2 to let you
 *         configure the TPB charging bar colors inside battles
 *      2. Added tpbIdleGaugeColor1 and tpbIdleGaugeColor2 to let you show the
 *         TPB idling bar inside battles with configurable colors
 *      3. Added tpbCastGaugeColor1 and tpbCastGaugeColor2 to let you show the
 *         TPB casting bar inside battles with configurable colors
 *      4. Added tpbReadyGaugeColor1 and tpbCastGaugeColor2 to let you show
 *         the TPB cast ready bar inside battles with configurable colors
 *      5. Added isTpbTimeActive to let you set the TPBS wait conditions more
 *         precisely

Video

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By DoubleX
      Purpose
      Lets you directly edit various built-in global formulae
       
      Video
       
      Games using this plugin
      None so far
       
      Parameters
       
      Script Calls
       
      Plugin Command
       
      Prerequisites
       
      Terms Of Use
       
      Contributors
       
      Changelog
       
      Download Link
      Demo Link
    • By DoubleX
      Note
      This plugin works for both RMMV and RMMZ
       
      Purpose
      Lets you extract texts in events/common events/battle events to txt file
       
      Video
       
      Games using this plugin
      None so far
       
      Parameters
       
      Prerequisites
       
      Terms Of Use
       
      Contributors
       
      Changelog
       
      Download Link
      Demo Link
    • By DoubleX
      This topic aims to share the basic knowledge on what the default RMMZ TPBS battle flow implementations do in general, but you're still assumed to have at least:
      1. Some plugin development proficiency(having written several easy, simple and small battle-related plugins up to 1k LoC scale)
      2. Basic knowledge on what the default RMMZ turn based battle flow implementations do in general
      3. Basic knowledge on what the default RMMZ TPBS battle flow does in general on the user level(At least you need to know what's going on on the surface when playing it as a player)

      Simplified Flowchart
      Please note that this flowchart only includes the most important elements of the battle flow, to avoid making it too complicated and convoluted for the intended targeting audience
       
      Battle Start
       
      Input Action Slots
       
      Thinking In Frames
       
      Frame Start
       
      Start Phase
       
      Turn Phase
       
      Action Phase
       
      Turn End Phase
       
      Battle End Phase
       
      Update TPB Input
       
      Summary
       
      That's all for now. I hope this can help you grasp these basic knowledge. For those thoroughly comprehending the essence of the default RMMZ TPBS battle flow implementations, feel free to correct me if there's anything wrong
      For those wanting to have a solid understanding to the default RMMZ TPBS battle flow implementations, I might open a more advanced topic for that later
    • By DoubleX
      This topic aims to share the basic knowledge on what the default RMMZ turn based battle flow implementations do in general, but you're still assumed to have at least:
      1. Little javascript coding proficiency(barely okay with writing rudimentary Javascript codes up to 300 LoC scale)
      2. Basic knowledge on what the default RMMZ turn based battle flow does on the user level(At least you need to know what's going on on the surface when playing it as a player)
       
      Simplified Flowchart
      Please note that this flowchart only includes the most important elements of the battle flow, to avoid making it too complicated and convoluted for the intended targeting audience
       
      Start Battle
       
      Input Actions
       
      Process Turns
       
      Execute Actions
       
      Summary
       
      That's all for now. I hope this can help you grasp these basic knowledge. For those thoroughly comprehending the essence of the default RMMZ turn based battle flow implementations, feel free to correct me if there's anything wrong
      For those wanting to have a solid understanding to the default RMMZ turn based battle flow implementations, I might open a more advanced topic for that later
×
×
  • Create New...