I never thought even I could make some music, but I don't know if mine would be too unpleasant to hear, so it takes me some courage to share them here
DoubleX - Everyone Turning Against You
DoubleX - Everyone Turning Against You
This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.
BattleManager.initMembers = function() {
this._phase = "";
this._inputting = false;
this._canEscape = false;
this._canLose = false;
this._battleTest = false;
this._eventCallback = null;
this._preemptive = false;
this._surprise = false;
this._currentActor = null;
this._actionForcedBattler = null;
this._mapBgm = null;
this._mapBgs = null;
this._actionBattlers = [];
this._subject = null;
this._action = null;
this._targets = [];
this._logWindow = null;
this._spriteset = null;
this._escapeRatio = 0;
this._escaped = false;
this._rewards = {};
this._tpbNeedsPartyCommand = true;
};
SceneManager.goto(Scene_Battle);
SceneManager.push(Scene_Battle);
Scene_Battle.prototype.createAllWindows = function() {
this.createLogWindow();
this.createStatusWindow();
this.createPartyCommandWindow();
this.createActorCommandWindow();
this.createHelpWindow();
this.createSkillWindow();
this.createItemWindow();
this.createActorWindow();
this.createEnemyWindow();
Scene_Message.prototype.createAllWindows.call(this);
};
BattleManager.startBattle = function() {
this._phase = "start";
$gameSystem.onBattleStart();
$gameParty.onBattleStart(this._preemptive);
$gameTroop.onBattleStart(this._surprise);
this.displayStartMessages();
};
BattleManager.startInput = function() {
this._phase = "input";
this._inputting = true;
$gameParty.makeActions();
$gameTroop.makeActions();
this._currentActor = null;
if (this._surprise || !$gameParty.canInput()) {
this.startTurn();
}
};
Game_Battler.prototype.makeActions = function() {
this.clearActions();
if (this.canMove()) {
const actionTimes = this.makeActionTimes();
this._actions = [];
for (let i = 0; i < actionTimes; i++) {
this._actions.push(new Game_Action(this));
}
}
};
Game_Actor.prototype.makeActions = function() {
Game_Battler.prototype.makeActions.call(this);
if (this.numActions() > 0) {
this.setActionState("undecided");
} else {
this.setActionState("waiting");
}
if (this.isAutoBattle()) {
this.makeAutoBattleActions();
} else if (this.isConfused()) {
this.makeConfusionActions();
}
};
Game_Enemy.prototype.makeActions = function() {
Game_Battler.prototype.makeActions.call(this);
if (this.numActions() > 0) {
const actionList = this.enemy().actions.filter(a =>
this.isActionValid(a)
);
if (actionList.length > 0) {
this.selectAllActions(actionList);
}
}
this.setActionState("waiting");
};
Scene_Battle.prototype.changeInputWindow = function() {
this.hideSubInputWindows();
if (BattleManager.isInputting()) {
if (BattleManager.actor()) {
this.startActorCommandSelection();
} else {
this.startPartyCommandSelection();
}
} else {
this.endCommandSelection();
}
};
Scene_Battle.prototype.startPartyCommandSelection = function() {
this._statusWindow.deselect();
this._statusWindow.show();
this._statusWindow.open();
this._actorCommandWindow.setup(null);
this._actorCommandWindow.close();
this._partyCommandWindow.setup();
};
BattleManager.processAbort = function() {
$gameParty.removeBattleStates();
this._logWindow.clear();
this.replayBgmAndBgs();
this.endBattle(1);
};
BattleManager.onEscapeFailure = function() {
$gameParty.onEscapeFailure();
this.displayEscapeFailureMessage();
this._escapeRatio += 0.1;
if (!this.isTpb()) {
this.startTurn();
}
};
Game_Actor.prototype.onEscapeFailure = function() {
if (BattleManager.isTpb()) {
this.applyTpbPenalty();
}
this.clearActions();
this.requestMotionRefresh();
};
Game_Actor.prototype.clearActions = function() {
Game_Battler.prototype.clearActions.call(this);
this._actionInputIndex = 0;
};
Scene_Battle.prototype.selectNextCommand = function() {
BattleManager.selectNextCommand();
this.changeInputWindow();
};
BattleManager.selectNextCommand = function() {
if (this._currentActor) {
if (this._currentActor.selectNextCommand()) {
return;
}
this.finishActorInput();
}
this.selectNextActor();
};
Game_Actor.prototype.selectNextCommand = function() {
if (this._actionInputIndex < this.numActions() - 1) {
this._actionInputIndex++;
return true;
} else {
return false;
}
};
Scene_Battle.prototype.selectPreviousCommand = function() {
BattleManager.selectPreviousCommand();
this.changeInputWindow();
};
BattleManager.selectPreviousCommand = function() {
if (this._currentActor) {
if (this._currentActor.selectPreviousCommand()) {
return;
}
this.cancelActorInput();
}
this.selectPreviousActor();
};
Game_Actor.prototype.selectPreviousCommand = function() {
if (this._actionInputIndex > 0) {
this._actionInputIndex--;
return true;
} else {
return false;
}
};
BattleManager.startTurn = function() {
this._phase = "turn";
$gameTroop.increaseTurn();
$gameParty.requestMotionRefresh();
if (!this.isTpb()) {
this.makeActionOrders();
this._logWindow.startTurn();
this._inputting = false;
}
};
BattleManager.makeActionOrders = function() {
const battlers = [];
if (!this._surprise) {
battlers.push(...$gameParty.battleMembers());
}
if (!this._preemptive) {
battlers.push(...$gameTroop.members());
}
for (const battler of battlers) {
battler.makeSpeed();
}
battlers.sort((a, b) => b.speed() - a.speed());
this._actionBattlers = battlers;
};
BattleManager.updateTurn = function(timeActive) {
$gameParty.requestMotionRefresh();
if (this.isTpb() && timeActive) {
this.updateTpb();
}
if (!this._subject) {
this._subject = this.getNextSubject();
}
if (this._subject) {
this.processTurn();
} else if (!this.isTpb()) {
this.endTurn();
}
};
BattleManager.getNextSubject = function() {
for (;;) {
const battler = this._actionBattlers.shift();
if (!battler) {
return null;
}
if (battler.isBattleMember() && battler.isAlive()) {
return battler;
}
}
};
BattleManager.processTurn = function() {
const subject = this._subject;
const action = subject.currentAction();
if (action) {
action.prepare();
if (action.isValid()) {
this.startAction();
}
subject.removeCurrentAction();
} else {
this.endAction();
this._subject = null;
}
};
BattleManager.startAction = function() {
const subject = this._subject;
const action = subject.currentAction();
const targets = action.makeTargets();
this._phase = "action";
this._action = action;
this._targets = targets;
subject.cancelMotionRefresh();
subject.useItem(action.item());
this._action.applyGlobal();
this._logWindow.startAction(subject, action, targets);
};
BattleManager.endTurn = function() {
this._phase = "turnEnd";
this._preemptive = false;
this._surprise = false;
};
BattleManager.updateTurnEnd = function() {
if (this.isTpb()) {
this.startTurn();
} else {
this.endAllBattlersTurn();
this._phase = "start";
}
};
BattleManager.updateAction = function() {
const target = this._targets.shift();
if (target) {
this.invokeAction(this._subject, target);
} else {
this.endAction();
}
};
BattleManager.invokeAction = function(subject, target) {
this._logWindow.push("pushBaseLine");
if (Math.random() < this._action.itemCnt(target)) {
this.invokeCounterAttack(subject, target);
} else if (Math.random() < this._action.itemMrf(target)) {
this.invokeMagicReflection(subject, target);
} else {
this.invokeNormalAction(subject, target);
}
subject.setLastTarget(target);
this._logWindow.push("popBaseLine");
};
BattleManager.endAction = function() {
this._logWindow.endAction(this._subject);
this._phase = "turn";
if (this._subject.numActions() === 0) {
this.endBattlerActions(this._subject);
this._subject = null;
}
};
* 1. This plugin lets you set some states to have its turn count updated
* after a set amount of seconds in TPBS
* 1. By default, the TPBS only lets you select the next inputable actors
* by pressing the cancel key
* 2. This plugin lets you set some hotkeys to select the previous
* counterparts as well as those with specified party member indices
* 1. By default, the TPBS battle turns are defined as that of the
* largest individual turns among all enemies
* 2. This plugin lets you redefine it as a set number of seconds or
* actions executed
* 1. The RMMZ plugin commands are supposed to make side effects but not
* return end results
* 2. With this plugin, other plugins can declare plugin queries that
* behave like RMMV plugin commands but return end results instead of
* making side effects
* 3. Plugin queries can replace skill/item damage formulae
* 4. Plugin queries can also replace script calls in conditional branch
* and control variables event commands
* 1. The default RMMZ states are all gone when the battler's dead
* 2. This plugin lets you set some states to persist after the battler's
* dead and revived afterwards
* 1. The default RMMZ confusion causes the battler to only use attack
* and nothing else
* 2. This plugin lets you set some confusion states to cause the
* battlers to behave like autobattle ones, with the definitions of
* friends and opponents being reversed
* 1. This plugin lets you skip TPBS frames having no important moments,
* like inputting actions, executing actions, to mimic the CTB
* functionality in TPBS
* 1. Sometimes, some script calls always have the same argument values
* used again and again, and defining new script calls as calling old
* ones with some argument values already defined can be favorable
* 2. With this plugin, you can effectively apply partial applications to
* script calls without the restrictions of always predefining the
* first arguments only
* 1. The RMMZ editor has changed the plugin command from entering a
* single line of string command to selecting plugin commands among
* all plugins having plugin commands
* 2. With this plugin, those preferring the RMMV plugin command can
* replicate this style in RMMZ by typing plugin command as a script
* 1. $gameSystem.setNewPluginCmd(pluginFilename, newCmdName, origCmdName, argNameVals)
* - Sets the new plugin command with name newCmdName as that with
* name origCmdName but with argument values already set by
* argNameVals, and origCmdName is the one in plugin with filename
* pluginFilename
* - argNameVals is an Object with argument names as keys and values
* of those arguments already set in newCmdName as values
* - E.g.:
* $gameSystem.setNewPluginCmd("DoubleX RMMZ Skill Item Cooldown", "ssicA1", "setSkillItemCooldown", {
* side: "actor",
* label: 1
* }) sets the new plugin command with name ssicA1 as that with name
* setSkillItemCooldown of plugin with filename
* DoubleX RMMZ Skill Item Cooldown but with the side and label
* argument values already set as "actor" and 1 respectively
* 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
* 1. This plugin lets you use notetags to set what happens when an
* action's just executed, and different cases like miss, evade, counter
* attack, magic reflection, critical hit, normal execution, substitute,
* right before starting to execute actions, and right after finished
* executing the actions, can have different notetags
* 2. You're expected to write JavaScript codes directly, as there are so
* much possibilities that most of them are just impossible to be
* covered by this plugin itself, so this plugin just lets you write
* JavaScript codes that are executed on some important timings
* @param missNotetagDataTypePriorities
* @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 the miss notetags
* You can use script calls/plugin commands to change this
* @default ["latestSkillItem"]
*
* @param evaNotetagDataTypePriorities
* @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 the eva notetags
* You can use script calls/plugin commands to change this
* @default ["latestSkillItem"]
*
* @param cntNotetagDataTypePriorities
* @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 the cnt notetags
* You can use script calls/plugin commands to change this
* @default ["latestSkillItem"]
*
* @param mrfNotetagDataTypePriorities
* @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 the mrf notetags
* You can use script calls/plugin commands to change this
* @default ["latestSkillItem"]
*
* @param criNotetagDataTypePriorities
* @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 the cri notetags
* You can use script calls/plugin commands to change this
* @default ["latestSkillItem"]
*
* @param normNotetagDataTypePriorities
* @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 the norm notetags
* You can use script calls/plugin commands to change this
* @default ["latestSkillItem"]
*
* @param substituteNotetagDataTypePriorities
* @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 the substitute notetags
* You can use script calls/plugin commands to change this
* @default ["latestSkillItem"]
*
* @param preNotetagDataTypePriorities
* @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 the pre notetags
* You can use script calls/plugin commands to change this
* @default ["latestSkillItem"]
*
* @param postNotetagDataTypePriorities
* @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 the post notetags
* You can use script calls/plugin commands to change this
* @default ["latestSkillItem"]
* ## 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 skill item triggers contents>
* - <skill item triggers contents>
* 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. miss
* 2. eva
* 3. cnt
* 4. mrf
* 5. cri
* 6. norm
* 7. substitute
* 8. pre
* 9. post
* - 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)
* event(The common event with id as the notetag value will be
* reserved)
* (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 different for different
* notetag types
* - 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/This State Notetags
* 1. miss condSuffix eventSuffix: condEntry, eventEntry
* - Triggers what specified in eventEntry when the action involved
* just missed the target involved if condEntry returns a truthy
* result
* - condSuffix can be val, switch or script
* - eventEntry can be event or script
* - The result of condEntry can be anything as only whether it's
* truthy matters
* - If the result of condEntry is falsy, this notetag will be
* discarded upon such use cases
* - The result of eventEntry can be anything as it's supposed to run
* commands instead of returning results
* - The miss skill/item trigger also applies counter attack, but with
* the target involved being that being hit by the counter attack
* - The miss skill/item trigger also applies to magic reflection, but
* with the target involved being the action execution subject
* instead
* - (Advanced)The this pointer of the script suffix is the target
* involved
* - E.g.:
* <skill item triggers miss switch event: 1, 2> will reserve the
* common event with id 2 when the action involved just missed the
* target if the game switch with id 1 is on
* 2. eva condSuffix eventSuffix: condEntry, eventEntry
* - Triggers what specified in eventEntry when the action involved is
* just evaded by the target involved if condEntry returns a truthy
* result
* - condSuffix can be val, switch or script
* - eventEntry can be event or script
* - The result of condEntry can be anything as only whether it's
* truthy matters
* - If the result of condEntry is falsy, this notetag will be
* discarded upon such use cases
* - The result of eventEntry can be anything as it's supposed to run
* commands instead of returning results
* - The eva skill/item trigger also applies counter attack, but with
* the target involved being that being hit by the counter attack
* - The eva skill/item trigger also applies to magic reflection, but
* with the target involved being the action execution subject
* - (Advanced)The this pointer of the script suffix is the target
* involved
* - E.g.:
* <skill item triggers eva val script: true, 3> will always run the
* JavaScript codes stored as a string in variable with id 3 when
* the action involved is just evaded by the target involved
* 3. cnt condSuffix eventSuffix: condEntry, eventEntry
* - Triggers what specified in eventEntry when the action involved is
* just countered by the attack of the target involved if condEntry
* returns a truthy result
* - condSuffix can be val, switch or script
* - eventEntry can be event or script
* - The result of condEntry can be anything as only whether it's
* truthy matters
* - If the result of condEntry is falsy, this notetag will be
* discarded upon such use cases
* - The result of eventEntry can be anything as it's supposed to run
* commands instead of returning results
* - (Advanced)The this pointer of the script suffix is the target
* involved
* - E.g.:
* <skill item triggers cnt switch event: 1, 2> will reserve the
* common event with id 2 when the action involved is just countered
* by the attack of the target involved if the game switch with id 1
* is on
* 4. mrf condSuffix eventSuffix: condEntry, eventEntry
* - Triggers what specified in eventEntry when the action involved is
* just reflected by the target involved if condEntry returns a
* truthy result
* - condSuffix can be val, switch or script
* - eventEntry can be event or script
* - The result of condEntry can be anything as only whether it's
* truthy matters
* - If the result of condEntry is falsy, this notetag will be
* discarded upon such use cases
* - The result of eventEntry can be anything as it's supposed to run
* commands instead of returning results
* - (Advanced)The this pointer of the script suffix is the target
* involved
* - E.g.:
* <skill item triggers mrf val script: true, 3> will always run the
* JavaScript codes stored as a string in variable with id 3 when
* the action involved is just reflected by the target involved
* 5. cri condSuffix eventSuffix: condEntry, eventEntry
* - Triggers what specified in eventEntry when the action involved
* just critically hit the target involved if condEntry returns a
* truthy result
* - condSuffix can be val, switch or script
* - eventEntry can be event or script
* - The result of condEntry can be anything as only whether it's
* truthy matters
* - If the result of condEntry is falsy, this notetag will be
* discarded upon such use cases
* - The result of eventEntry can be anything as it's supposed to run
* commands instead of returning results
* - The cri skill/item trigger also applies counter attack, but with
* the target involved being that being hit by the counter attack
* - The cri skill/item trigger also applies to magic reflection, but
* with the target involved being the action execution subject
* - (Advanced)The this pointer of the script suffix is the target
* involved
* - E.g.:
* <skill item triggers cri switch event: 1, 2> will reserve the
* common event with id 2 when the action involved just critically
* hit the target involved if the game switch with id 1 is on
* 6. norm condSuffix eventSuffix: condEntry, eventEntry
* - Triggers what specified in eventEntry when the action involved is
* just executed normally on the target involved if condEntry
* returns a truthy result
* - condSuffix can be val, switch or script
* - eventEntry can be event or script
* - The result of condEntry can be anything as only whether it's
* truthy matters
* - If the result of condEntry is falsy, this notetag will be
* discarded upon such use cases
* - The result of eventEntry can be anything as it's supposed to run
* commands instead of returning results
* - The norm skill/item trigger also applies counter attack, but with
* the target involved being that being hit by the counter attack
* - The norm skill/item trigger also applies to magic reflection, but
* with the target involved being the action execution subject
* - (Advanced)The this pointer of the script suffix is the target
* involved
* - E.g.:
* <skill item triggers norm val script: true, 3> will always run
* the JavaScript codes stored as a string in variable with id 3
* when the action involved is just executed normally on the target
* involved
* 7. substitute condSuffix eventSuffix: condEntry, eventEntry
* - Triggers what specified in eventEntry when the action involved
* just hit the substitute instead of the original target involved
* if condEntry returns a truthy result
* - condSuffix can be val, switch or script
* - eventEntry can be event or script
* - The result of condEntry can be anything as only whether it's
* truthy matters
* - If the result of condEntry is falsy, this notetag will be
* discarded upon such use cases
* - The result of eventEntry can be anything as it's supposed to run
* commands instead of returning results
* - (Advanced)The this pointer of the script suffix is the substitute
* target involved but not the original target involved
* - E.g.:
* <skill item triggers substitute switch event: 1, 2> will reserve
* the common event with id 2 when the action involved just hit the
* substitute instead of the original target involved if the game
* switch with id 1 is on
* 8. pre condSuffix eventSuffix: condEntry, eventEntry
* - Triggers what specified in eventEntry right before starting to
* execute the action involved if condEntry returns a truthy
* result
* - condSuffix can be val, switch or script
* - eventEntry can be event or script
* - The result of condEntry can be anything as only whether it's
* truthy matters
* - If the result of condEntry is falsy, this notetag will be
* discarded upon such use cases
* - The result of eventEntry can be anything as it's supposed to run
* commands instead of returning results
* - (Advanced)The this pointer of the script suffix is the action
* execution subject involved
* - E.g.:
* <skill item triggers pre switch event: 1, 2> will reserve the
* common event with id 2 before starting to execute the action
* involved if the game switch with id 1 is on
* 9. post condSuffix eventSuffix: condEntry, eventEntry
* - Triggers what specified in eventEntry right after finished
* executing the action involved if condEntry returns a truthy
* result
* - condSuffix can be val, switch or script
* - eventEntry can be event or script
* - The result of condEntry can be anything as only whether it's
* truthy matters
* - If the result of condEntry is falsy, this notetag will be
* discarded upon such use cases
* - The result of eventEntry can be anything as it's supposed to run
* commands instead of returning results
* - (Advanced)The this pointer of the script suffix is the action
* execution subject involved
* - E.g.:
* <skill item triggers post val script: true, 3> will always run
* the JavaScript codes stored as a string in variable with id 3
* right after finished executing the action involved
* # Parameter manipulations
* 1. $gameSystem.setSkillItemTriggersParam(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.setSkillItemTriggersParam("missNotetagDataTypePriorities", [
* "latestSkillItem"
* ]) sets the fully parsed value of the parameter
* missNotetagDataTypePriorities as ["latestSkillItem"]
* 2. $gameSystem.skillItemTriggersParam(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.skillItemTriggersParam("evaNotetagDataTypePriorities")
* returns the fully parsed value of the parameter
* evaNotetagDataTypePriorities, which should be ["latestSkillItem"]
* if it uses its default parameter value
* 1. setSkillItemTriggersParam param val
* - Applies the script call
* $gameSystem.setSkillItemTriggersParam(param, val)
* 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.
* 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
* { codebase: "1.1.1", plugin: "v1.01a" }(2020 Dec 26 GMT 1300):
* 1. Added the following notetag types:
* subjectMiss
* subjectEva
* subjectCnt
* subjectMrf
* subjectCri
* subjectNorm
* subjectSubstitute
* 2. Added the following parameters:
* subjectMissNotetagDataTypePriorities
* subjectEvaNotetagDataTypePriorities
* subjectCntNotetagDataTypePriorities
* subjectMrfNotetagDataTypePriorities
* subjectCriNotetagDataTypePriorities
* subjectNormNotetagDataTypePriorities
* subjectSubstituteNotetagDataTypePriorities
* 3. Fixed the eventEntry of all notetags not correctly accepting all
* intended suffixes and rejecting the unintended ones
* { codebase: "1.1.0", plugin: "v1.00b" }(2020 Dec 2 GMT 0300):
* 1. You no longer have to edit the value of
* DoubleX_RMMZ.Skill_Item_Triggers.PLUGIN_NAME when changing this
* plugin file name
* { codebase: "1.0.0", plugin: "v1.00a" }(2020 Aug 30 GMT 0900):
* 1. 1st version of this plugin finished
* 1. This plugin lets you use notetags to set what happens when a state's
* added/removed/expired/turn's updated/turn's reset on the battler
* involved
* 2. You're expected to write JavaScript codes directly, as there are so
* much possibilities that most of them are just impossible to be
* covered by this plugin itself, so this plugin just lets you write
* JavaScript codes that are executed on some important timings
* @param addNotetagDataTypePriorities
* @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
* @option Data of the state to have triggers run
* @value thisState
* @desc Sets data type priorities of the add notetags
* You can use script calls/plugin commands to change this
* @default ["thisState"]
*
* @param removeNotetagDataTypePriorities
* @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
* @option Data of the state to have triggers run
* @value thisState
* @desc Sets data type priorities of the remove notetags
* You can use script calls/plugin commands to change this
* @default ["thisState"]
*
* @param resetNotetagDataTypePriorities
* @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
* @option Data of the state to have triggers run
* @value thisState
* @desc Sets data type priorities of the reset notetags
* You can use script calls/plugin commands to change this
* @default ["thisState"]
*
* @param expireNotetagDataTypePriorities
* @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
* @option Data of the state to have triggers run
* @value thisState
* @desc Sets data type priorities of the expire notetags
* You can use script calls/plugin commands to change this
* @default ["thisState"]
*
* @param turnNotetagDataTypePriorities
* @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
* @option Data of the state to have triggers run
* @value thisState
* @desc Sets data type priorities of the turn notetags
* You can use script calls/plugin commands to change this
* @default ["thisState"]
* ## 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 state triggers contents>
* - <state triggers contents>
* 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. add
* 2. remove
* 3. reset
* 4. expire
* 5. turn
* - 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)
* event(The common event with id as the notetag value will be
* reserved)
* (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 action 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/This State Notetags
* 1. add condSuffix eventSuffix: condEntry, eventEntry
* - Triggers what specified in eventEntry when the state's just added
* to the battler involved(not when the state already exists before)
* if condEntry returns a truthy result
* - condSuffix can be val, switch or script
* - eventEntry can be event or script
* - The result of condEntry can be anything as only whether it's
* truthy matters
* - If the result of condEntry is falsy, this notetag will be
* discarded upon such use cases
* - The result of eventEntry can be anything as it's supposed to run
* commands instead of returning results
* - E.g.:
* <state triggers add switch event: 1, 2> will reserve the common
* event with id 2 when the state's just added to the battler
* involved(not when it already exists before) if the game switch
* with id 1 is on
* 2. remove condSuffix eventSuffix: condEntry, eventEntry
* - Triggers what specified in eventEntry when the state's just
* removed from the battler involved(not when the state turn just
* expired causing the removal) if condEntry returns a truthy result
* - condSuffix can be val, switch or script
* - eventEntry can be event or script
* - The result of condEntry can be anything as only whether it's
* truthy matters
* - If the result of condEntry is falsy, this notetag will be
* discarded upon such use cases
* - The result of eventEntry can be anything as it's supposed to run
* commands instead of returning results
* - E.g.:
* <state triggers remove val script: true, 3> will always run the
* JavaScript codes stored as a string in variable with id 3 when
* the state's just removed from the battler involved(not when the
* state turn just expired causing the removal)
* 3. reset condSuffix eventSuffix: condEntry, eventEntry
* - Triggers what specified in eventEntry when the state's turn's
* just reset due to trying to add that state to the battler
* involved if condEntry returns a truthy result
* - condSuffix can be val, switch or script
* - eventEntry can be event or script
* - The result of condEntry can be anything as only whether it's
* truthy matters
* - If the result of condEntry is falsy, this notetag will be
* discarded upon such use cases
* - The result of eventEntry can be anything as it's supposed to run
* commands instead of returning results
* - E.g.:
* <state triggers reset switch event: 1, 2> will reserve the common
* event with id 2 when the state's turn's just reset due to trying
* to add that state to the battler involved if the game switch with
* id 1 is on
* 4. expire condSuffix eventSuffix: condEntry, eventEntry
* - Triggers what specified in eventEntry when the state's turn's
* just expired causing the state to be removed from the battler
* involved if condEntry returns a truthy result
* - condSuffix can be val, switch or script
* - eventEntry can be event or script
* - The result of condEntry can be anything as only whether it's
* truthy matters
* - If the result of condEntry is falsy, this notetag will be
* discarded upon such use cases
* - The result of eventEntry can be anything as it's supposed to run
* commands instead of returning results
* - E.g.:
* <state triggers expire val script: true, 3> will always run the
* JavaScript codes stored as a string in variable with id 3 when
* the state's turn's just expired causing the state to be removed
* from the battler involved
* 5. turn condSuffix eventSuffix: condEntry, eventEntry
* - Triggers what specified in eventEntry when the state's turn's
* just updated without being expired for the battler involved if
* condEntry returns a truthy result
* - condSuffix can be val, switch or script
* - eventEntry can be event or script
* - The result of condEntry can be anything as only whether it's
* truthy matters
* - If the result of condEntry is falsy, this notetag will be
* discarded upon such use cases
* - The result of eventEntry can be anything as it's supposed to run
* commands instead of returning results
* - E.g.:
* <state triggers turn val event: true, 2> will always reserve the
* common event with id 2 when the state's turn's just updated
* without being expired for the battler involved
* # Parameter manipulations
* 1. $gameSystem.setStateTriggersParam(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.setStateTriggersParam("addNotetagDataTypePriorities", [
* "thisState"
* ]) sets the fully parsed value of the parameter
* addNotetagDataTypePriorities as ["thisState"]
* 2. $gameSystem.stateTriggersParam(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.setStateTriggersParam("removeNotetagDataTypePriorities")
* returns the fully parsed value of the parameter
* removeNotetagDataTypePriorities, which should be
* ["thisState"] if it uses its default parameter value
* 1. setStateTriggersParam param val
* - Applies the script call
* $gameSystem.setStateTriggersParam(param, val)
* 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.
* 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
* { codebase: "1.1.0", plugin: "v1.00b" }(2020 Dec 2 GMT 0400):
* 1. You no longer have to edit the value of
* DoubleX_RMMZ.State_Triggers.PLUGIN_NAME when changing this plugin
* file name
* { codebase: "1.0.0", plugin: "v1.00a" }(2020 Aug 29 GMT 1300):
* 1. 1st version of this plugin finished
* # Databse data manipulations
* 1. $gameSystem.setDynamicData(containerName, data)
* - Applies the edit of data stored by container with name
* containerName, and the edited data will be saved in save
* files so those edits will be preserved
* - data must be a valid database data which must be serializable
* (It means that this plugin doesn't support foreign plugins adding
* undisclosed unserializable properties to database data)
* - containerName must be either of the following:
* "$dataActors"
* "$dataClasses"
* "$dataSkills"
* "$dataItems"
* "$dataWeapons"
* "$dataArmors"
* "$dataEnemies"
* "$dataTroops"
* "$dataStates"
* "$dataAnimations"
* "$dataTilesets"
* "$dataCommonEvents"
* "$dataSystem"
* "$dataMapInfos"
* - E.g.:
* $gameSystem.setDynamicData("$dataSkills", $dataSkills[3]) applies
* the edit of skill with id 3 stored by $dataSkills and that edited
* skill will be saved in save files so those edits will be
* preserved
* 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.
* 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
* { codebase: "1.0.0", plugin: "v1.00a" }(2020 Aug 28 GMT 0700):
* 1. 1st version of this plugin finished
* 1. This plugins lets you set 2 kinds of skill/item cooldowns:
* - Skill/Item cooldown - The number of turns(battle turn in turn based
* individual turn in TPBS) needed for the
* skill/item to cooldown before it becomes
* usable again
* - Battler cooldown - The number of turns(battle turn in turn based
* individual turn in TPBS) needed for the battler
* just executed the skill/item to cooldown before
* that battler can input actions again
* 2. If the skill/item cooldown is 1 turn, it means battlers with multiple
* action slots can only input that skill/item once instead of as many
* as the action slots allow
* If the battler cooldown is negative, it means the TPB bar charging
* value will be positive instead of 0 right after executing the
* skill/item(So a -1 battler cooldown means the battler will become
* able to input actions again right after executing such skills/items)
* 3. When updating the battler individual turn count in TPBS, the decimal
* parts of the battler will be discarded, but those parts will still be
* used when actually increasing the time needed for that battler to
* become able to input actions again
* In the turn based battle system, the decimal parts of the battler
* cooldown counts as 1 turn
* The decimal parts of the final skill/item cooldown value will be
* discarded
* 4. Skill/item cooldown can be set to apply outside battles as well
* Skill/item cooldown won't be updated when the battler has fully
* charged the TPBS bar
* @param clearBattlerSkillItemCooldownOnBattleStart
* @type note
* @desc Let you clear battler/skill/item cooldowns on battle start
* actor is the actor to have all those cooldowns cleared
* @default "actor.clearBattlerSkillItemCooldowns();"
*
* @param clearBattlerSkillItemCooldownOnBattleEnd
* @type note
* @desc Lets you clear battler/skill/item cooldowns on battle end
* actor is the actor to have all those cooldowns cleared
* @default "actor.clearBattlerSkillItemCooldowns();"
*
* @param battlerNotetagDataTypePriorities
* @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 the battler notetags
* You can use script calls/plugin commands to change this
* @default ["latestSkillItem","states","enemy","armors","weapons","class","actor"]
*
* @param skillItemNotetagDataTypePriorities
* @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 the skillItem notetags
* You can use script calls/plugin commands to change this
* @default ["latestSkillItem","states","enemy","armors","weapons","class","actor"]
* ## 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 cooldown>
* - <cooldown>
* 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. battler
* 2. skillItem
* (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
* Notetags only apply to skills/items with Number as One in Scope
* 1. battler condSuffix opSuffix valSuffix: condEntry, opEntry, valEntry
* - Applies the following formula on the current battler cooldown:
* current = current operator value
* If condEntry returns a turthy result
* Where current is the current battler cooldown, operator is the
* operator specified by opEntry, and value is the value specified
* by valEntry
* - If there are no notetags, current will be 0, as it's the default
* battler cooldown value
* - 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.:
* <cooldown battler script val val: 1, +, 1> will cause the
* battler to wait for 1 turn before the TPB bar starts to charge
* again, and the individual turn count will be added by 1 after
* this wait, in the case of TPBS, and the battler won't be able to
* input actions in the next turn for turn based battles, but the
* battler cooldown won't be triggered by using skills/items outside
* battles, because the value of variable with id 1 is
* return $gameParty.inBattle(); meaning that this notetag will only
* be effective inside battles
* Cooldowns triggered inside battles can still carry over outside
* battles if the battle ends but the cooldown's still not expired
* if it's not cleared in clearBattlerSkillItemCooldownOnBattleEnd,
* and vice verse if it's not cleared in
* clearBattlerSkillItemCooldownOnBattleStart
* 2. skillItem condSuffix opSuffix valSuffix: condEntry, opEntry, valEntry
* - Applies the following formula on the current skill/item cooldown:
* current = current operator value
* If condEntry returns a turthy result
* Where current is the current skill/item cooldown, operator is the
* operator specified by opEntry, and value is the value specified
* by valEntry
* - If there are no notetags, current will be 0, as it's the default
* skill/item cooldown value
* - 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
* - THIS NOTETAG DOESN'T WORK WITH ATTACK, GUARD NOR FORCED ACTIONS
* - E.g.:
* <cooldown skillItem switch val val: 1, +, 2> will cause the
* battler to be unable to input the skill/item in the next turn if
* the game switch with id 1 is on(regrdless of whether it's inside
* or outside battles)
* Cooldowns triggered outside battles can still carry over inside
* battles if the battle ends but the cooldown's still not expired
* if it's not cleared in
* clearBattlerSkillItemCooldownOnBattleStart, and vice verse if
* it's not cleared in clearBattlerSkillItemCooldownOnBattleEnd
* # Parameter manipulations
* 1. $gameSystem.setSkillItemCooldownParam(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.setSkillItemCooldownParam("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.skillItemCooldownParam(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.skillItemCooldownParam("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. clearBattlerSkillItemCooldowns()
* - Clears all battler and skill/item cooldowns for the battler
* involved
* - E.g.:
* $gameActors.actor(1).clearBattlerSkillItemCooldowns(1) will clear
* all battler and skill/item cooldowns for the game actor with id 1
* 2. setBattlerCooldown(turnCount)
* - Sets the battler cooldown turn count as turnCount for the battler
* involved
* - turnCount must be a number
* - E.g.:
* $gameActors.actor(1).setBattlerCooldown(1) will set the battler
* cooldown turn count of the actor with id 1 as 1, meaning that the
* battler will take 1 idle individual turn right after executing
* all actions but before charging the TPB bar again(in the case of
* TPBS) and in the case of the turn based battle system, that
* battler won't be able to input actions in the next turn
* 3. battlerCooldown()
* - Returns the battler cooldown turn count of the battler involed
* - E.g.:
* $gameParty.battleMembers(0).battlerCooldown() will return the
* battler cooldown turn count of the 1st game party member in the
* battle
* 4. isBattlerCooldown()
* - Returns if the battler involved is having battler cooldown
* - E.g.:
* $gameParty.aliveMembers(1).isBattlerCooldown() will return if the
* 2nd alive game party member is having battler cooldown
* 5. setSkillItemCooldown(item, turnCount)
* - Sets the skill/item cooldown turn count of item as turnCount for
* the battler involved
* - item must be the data of the skill/item to have its cooldown set
* - turnCount must be a number
* - E.g.:
* $gameParty.movableMembers(2).setSkillItemCooldown($dataSkills[3], 2)
* will set the skill/item cooldown turn count of the skill with id
* 3 for the 3rd movable game party member as 2, meaning that that
* battler can't input that skill for the next 2 turns
* 6. skillItemCooldown(item)
* - Returns the skill/item cooldown with item of the battler involved
* - E.g.:
* $gameTroop.members(0).skillItemCooldown($dataItems[1]) will
* return the skill/item cooldown with item with id 1 of the 1st
* game troop member
* 7. isSkillItemCooldown(item)
* - Returns if the battler involved is having skill/item cooldown
* with item
* - E.g.:
* $gameParty.deadMembers(1).isSkillItemCooldown($dataItems[2]) will
* return if the 2nd dead game troop member is having skill/item
* cooldown with item with id 2
* @command setSkillItemCooldownParam
* @desc Applies script call $gameSystem.setSkillItemCooldownParam(param, val)
* @arg param
* @type select
* @option clearBattlerSkillItemCooldownOnBattleStart
* @value clearBattlerSkillItemCooldownOnBattleStart
* @option clearBattlerSkillItemCooldownOnBattleEnd
* @value clearBattlerSkillItemCooldownOnBattleEnd
* @option canCancelBattlerCooldown
* @value canCancelBattlerCooldown
* @option canCancelSkillItemCooldown
* @value canCancelSkillItemCooldown
* @option cancelBattlerCooldownFail
* @value cancelBattlerCooldownFail
* @option cancelSkillItemCooldownFail
* @value cancelSkillItemCooldownFail
* @option cancelBattlerCooldownSuc
* @value cancelBattlerCooldownSuc
* @option cancelSkillItemCooldownSuc
* @value cancelSkillItemCooldownSuc
* @option onCancelCooldownClick
* @value onCancelCooldownClick
* @option skillItemCooldownGaugeColor1
* @value skillItemCooldownGaugeColor1
* @option skillItemCooldownGaugeColor2
* @value skillItemCooldownGaugeColor2
* @option cancelBattlerCooldownHotkeys
* @value cancelBattlerCooldownHotkeys
* @option cancelSkillItemCooldownHotkeys
* @value cancelSkillItemCooldownHotkeys
* @option battlerNotetagDataTypePriorities
* @value battlerNotetagDataTypePriorities
* @option skillItemNotetagDataTypePriorities
* @value skillItemNotetagDataTypePriorities
* @option canCancelBattlerNotetagDataTypePriorities
* @value canCancelBattlerNotetagDataTypePriorities
* @option canCancelSkillItemNotetagDataTypePriorities
* @value canCancelSkillItemNotetagDataTypePriorities
* @option cancelBattlerSucNotetagDataTypePriorities
* @value cancelBattlerSucNotetagDataTypePriorities
* @option cancelSkillItemSucNotetagDataTypePriorities
* @value cancelSkillItemSucNotetagDataTypePriorities
* @option cancelBattlerFailNotetagDataTypePriorities
* @value cancelBattlerFailNotetagDataTypePriorities
* @option cancelSkillItemFailNotetagDataTypePriorities
* @value cancelSkillItemFailNotetagDataTypePriorities
* @desc The name of a valid parameter of this plugin
* @arg val
* @desc A valid new fully parsed value of the parameter param
*
* @command clearBattlerSkillItemCooldowns
* @desc Applies script call battler.clearBattlerSkillItemCooldowns()
* @arg side
* @type select
* @option Actor
* @value actor
* @option Enemy
* @value enemy
* @desc The side of the battler setting the battler cooldown
* @arg label
* @type number
* @desc The actor id/enemy index of the battler setting the battler cooldown
*
* @command setBattlerCooldown
* @desc Applies script call battler.setBattlerCooldown(turnCount)
* @arg side
* @type select
* @option Actor
* @value actor
* @option Enemy
* @value enemy
* @desc The side of the battler setting the battler cooldown
* @arg label
* @type number
* @desc The actor id/enemy index of the battler setting the battler cooldown
* @arg turnCount
* @type number
* @min -999999
* @desc The new battler cooldown turn count of the battler involved
*
* @command setSkillItemCooldown
* @desc Applies script call battler.setSkillItemCooldown(item, turnCount)
* @arg side
* @type select
* @option Actor
* @value actor
* @option Enemy
* @value enemy
* @desc The side of the battler setting the skill/item cooldown
* with the skill/item involved
* @arg label
* @type number
* @desc The actor id/enemy index of the battler setting the
* skill/item cooldown with the skill/item involved
* @arg type
* @type select
* @option Skill
* @value skill
* @option Item
* @value item
* @desc The skill/item to have its skill/item cooldown set for the
* battler involved
* @arg id
* @type number
* @desc The id of the skill/item to have its skill/item cooldown
* set for the battler involved
* @arg turnCount
* @type number
* @min -999999
* @desc The new skill/item cooldown turn count of the skill/item involved
* @command battlerCooldown
* @desc Stores the battler.battlerCooldown() script call results
* into the game variable with id varId
* @arg side
* @type select
* @option Actor
* @value actor
* @option Enemy
* @value enemy
* @desc The side of the battler setting the battler cooldown
* @arg label
* @type number
* @desc The actor id/enemy index of the battler setting the battler cooldown
* @arg varId
* @type number
* @desc The id of the game variable storing the script call result
*
* @command isBattlerCooldown
* @desc Stores the battler.isBattlerCooldown() script call results
* into the game switch with id switchId
* @arg side
* @type select
* @option Actor
* @value actor
* @option Enemy
* @value enemy
* @desc The side of the battler setting the battler cooldown
* @arg label
* @type number
* @desc The actor id/enemy index of the battler setting the battler cooldown
* @arg switchId
* @type number
* @desc The id of the game switch storing the script call result
* * @command skillItemCooldown * @desc Stores the battler.skillItemCooldown(item) script call * results into the game variable with id varId * @arg side * @type select * @option Actor * @value actor * @option Enemy * @value enemy * @desc The side of the battler setting the skill/item cooldown * with the skill/item involved * @arg label * @type number * @desc The actor id/enemy index of the battler setting the * skill/item cooldown with the skill/item involved * @arg type * @type select * @option Skill * @value skill * @option Item * @value item * @desc The skill/item to have its skill/item cooldown set for the * battler involved * @arg id * @type number * @desc The id of the skill/item to have its skill/item cooldown * set for the battler involved * @arg varId * @type number * @desc The id of the game variable storing the script call result * * @command isSkillItemCooldown * @desc Stores the battler.isSkillItemCooldown(item) script call * results into the game switch with id switchId * @arg side * @type select * @option Actor * @value actor * @option Enemy * @value enemy * @desc The side of the battler setting the skill/item cooldown * with the skill/item involved * @arg label * @type number * @desc The actor id/enemy index of the battler setting the * skill/item cooldown with the skill/item involved * @arg type * @type select * @option Skill * @value skill * @option Item * @value item * @desc The skill/item to have its skill/item cooldown set for the * battler involved * @arg id * @type number * @desc The id of the skill/item to have its skill/item cooldown * set for the battler involved * @arg switchId * @type number * @desc The id of the game switch storing the script call result
* 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.
* 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
* { codebase: "1.1.0", plugin: "v1.01b" }(2020 Nov 27 GMT 0500):
* 1. You no longer have to edit the value of
* DoubleX_RMMZ.Skill_Item_Cooldown.PLUGIN_NAME when changing this
* plugin file name
* { codebase: "1.0.2", plugin: "v1.01a" }(2020 Oct 11 GMT 0900):
* 1. Added the plugin query and command counterparts for the following
* script calls of this plugin:
* - battlerCooldown()
* - isBattlerCooldown()
* - skillItemCooldown(item)
* - isSkillItemCooldown(item)
* { codebase: "1.0.0", plugin: "v1.00a" }(2020 Aug 27 GMT 0300):
* 1. 1st version of this plugin finished
* @param 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 all notetags in this plugin
* You can use script calls/plugin commands to change this
* @default ["latestSkillItem","states","enemy","armors","weapons","class","actor"]
* ## 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 targeting ai contents>
* - <targeting ai contents>
* 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. memWithAnyState
* 2. memWithAllStates
* 3. memWithoutAnyState
* 4. memWithoutAllStates
* 5. memWithAnyBuff
* 6. memWithAllBuffs
* 7. memWithoutAnyBuff
* 8. memWithoutAllBuffs
* 9. memWithAnyDebuff
* 10. memWithAllDebuffs
* 11. memWithoutAnyDebuff
* 12. memWithoutAllDebuffs
* 13. memWithAnySkill
* 14. memWithAllSkills
* 15. memWithoutAnySkill
* 16. memWithoutAllSkills
* 17. anyHighestStatMem
* 18. allHighestStatsMem
* 19. notAnyHighestStatMem
* 20. notAllHighestStatsMem
* 21. anyLowestStatMem
* 22. allLowestStatsMem
* 23. notAnyLowestStatMem
* 24. notAllLowestStatsMem
* 25. anyAboveStatMem
* 26. allAboveStatMem
* 27. anyBelowStatMem
* 28. allBelowStatMem
* (Advanced)29. or
* (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)
* - 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
* Notetags only apply to skills/items with Number as One in Scope
* Notetags causing the target list to be empty will be discard upon such
* use cases
* (Search tag: ALWAYS_HAS_TARGETS)
* 1. memWithAnyState condSuffix stateIdsSuffix: condEntry, stateIdsEntry
* - Applies the following DoubleX RMMZ Unit Filters script call:
* memWithAnyState(stateIds, mems)
* Where stateIds is the stateIdsEntry results and mems is the list
* of possible targets of the skill/item having this notetag
* - condSuffix can be val, switch or script
* - stateIdsSuffix can be val, var or script
* - The result of condEntry can be anything as only whether it's
* truthy matters
* - If the result of condEntry is falsy, this notetag will be
* discarded upon such use cases
* - The result of stateIdsEntry can be an Array of any natural number
* - If stateIdsSuffix is val, then stateIdsEntry should be written as
* stateId1|stateId2|stateId3|stateIdI|stateIdN
* - E.g.:
* <targeting ai memWithAnyState switch val: 1, 2|3> will restrict
* the list of targets to be those with state with id 2 or 3 if the
* game switch with id 1 is on
* 2. memWithAllStates condSuffix stateIdsSuffix: condEntry, stateIdsEntry
* - Applies the following DoubleX RMMZ Unit Filters script call:
* memWithAllStates(stateIds, mems)
* Where stateIds is the stateIdsEntry results and mems is the list
* of possible targets of the skill/item having this notetag
* - condSuffix can be val, switch or script
* - stateIdsSuffix can be val, var or script
* - The result of condEntry can be anything as only whether it's
* truthy matters
* - If the result of condEntry is falsy, this notetag will be
* discarded upon such use cases
* - The result of stateIdsEntry can be an Array of any natural number
* - If stateIdsSuffix is val, then stateIdsEntry should be written as
* stateId1|stateId2|stateId3|stateIdI|stateIdN
* - E.g.:
* <targeting ai memWithAllStates switch val: 1, 2|3> will restrict
* the list of targets to be those with state with id 2 and 3 if the
* game switch with id 1 is on
* 3. memWithoutAnyState condSuffix stateIdsSuffix: condEntry, stateIdsEntry
* - Applies the following DoubleX RMMZ Unit Filters script call:
* memWithoutAnyState(stateIds, mems)
* Where stateIds is the stateIdsEntry results and mems is the list
* of possible targets of the skill/item having this notetag
* - condSuffix can be val, switch or script
* - stateIdsSuffix can be val, var or script
* - The result of condEntry can be anything as only whether it's
* truthy matters
* - If the result of condEntry is falsy, this notetag will be
* discarded upon such use cases
* - The result of stateIdsEntry can be an Array of any natural number
* - If stateIdsSuffix is val, then stateIdsEntry should be written as
* stateId1|stateId2|stateId3|stateIdI|stateIdN
* - E.g.:
* <targeting ai memWithoutAnyState switch val: 1, 2|3> will
* restrict the list of targets to be those with state without id 2
* or 3 if the game switch with id 1 is on
* 4. memWithoutAllStates condSuffix stateIdsSuffix: condEntry, stateIdsEntry
* - Applies the following DoubleX RMMZ Unit Filters script call:
* memWithoutAllStates(stateIds, mems)
* Where stateIds is the stateIdsEntry results and mems is the list
* of possible targets of the skill/item having this notetag
* - condSuffix can be val, switch or script
* - stateIdsSuffix can be val, var or script
* - The result of condEntry can be anything as only whether it's
* truthy matters
* - If the result of condEntry is falsy, this notetag will be
* discarded upon such use cases
* - The result of stateIdsEntry can be an Array of any natural number
* - If stateIdsSuffix is val, then stateIdsEntry should be written as
* stateId1|stateId2|stateId3|stateIdI|stateIdN
* - E.g.:
* <targeting ai memWithoutAllStates switch val: 1, 2|3> will
* restrict the list of targets to be those with state without id 2
* and 3 if the game switch with id 1 is on
* 5. memWithAnyBuff condSuffix paramIdsSuffix: condEntry, paramIdsEntry
* - Applies the following DoubleX RMMZ Unit Filters script call:
* memWithAnyBuff(paramIds, mems)
* Where paramIds is the paramIdsEntry results and mems is the list
* of possible targets of the skill/item having this notetag
* - condSuffix can be val, switch or script
* - paramIdsSuffix can be val, var or script
* - The result of condEntry can be anything as only whether it's
* truthy matters
* - If the result of condEntry is falsy, this notetag will be
* discarded upon such use cases
* - The result of paramIdsEntry can be an Array of any natural number
* - If paramIdsSuffix is val, then paramIdsEntry should be written as
* paramId1|paramId2|paramId3|paramIdI|paramIdN
* - E.g.:
* <targeting ai memWithAnyBuff switch val: 1, 2|3> will restrict
* the list of targets to be those with atk or def buff if the game
* switch with id 1 is on
* 6. memWithAllBuffs condSuffix paramIdsSuffix: condEntry, paramIdsEntry
* - Applies the following DoubleX RMMZ Unit Filters script call:
* memWithAllBuffs(paramIds, mems)
* Where paramIds is the paramIdsEntry results and mems is the list
* of possible targets of the skill/item having this notetag
* - condSuffix can be val, switch or script
* - paramIdsSuffix can be val, var or script
* - The result of condEntry can be anything as only whether it's
* truthy matters
* - If the result of condEntry is falsy, this notetag will be
* discarded upon such use cases
* - The result of paramIdsEntry can be an Array of any natural number
* - If paramIdsSuffix is val, then paramIdsEntry should be written as
* paramId1|paramId2|paramId3|paramIdI|paramIdN
* - E.g.:
* <targeting ai memWithAllBuffs switch val: 1, 2|3> will restrict
* the list of targets to be those with atk and def buff if the game
* switch with id 1 is on
* 7. memWithoutAnyBuff condSuffix paramIdsSuffix: condEntry, paramIdsEntry
* - Applies the following DoubleX RMMZ Unit Filters script call:
* memWithoutAnyBuff(paramIds, mems)
* Where paramIds is the paramIdsEntry results and mems is the list
* of possible targets of the skill/item having this notetag
* - condSuffix can be val, switch or script
* - paramIdsSuffix can be val, var or script
* - The result of condEntry can be anything as only whether it's
* truthy matters
* - If the result of condEntry is falsy, this notetag will be
* discarded upon such use cases
* - The result of paramIdsEntry can be an Array of any natural number
* - If paramIdsSuffix is val, then paramIdsEntry should be written as
* paramId1|paramId2|paramId3|paramIdI|paramIdN
* - E.g.:
* <targeting ai memWithoutAnyBuff switch val: 1, 2|3> will
* the list of targets to be those without atk or def buff if the
* game switch with id 1 is on
* 8. memWithoutAllBuffs condSuffix paramIdsSuffix: condEntry, paramIdsEntry
* - Applies the following DoubleX RMMZ Unit Filters script call:
* memWithoutAllBuffs(paramIds, mems)
* Where paramIds is the paramIdsEntry results and mems is the list
* of possible targets of the skill/item having this notetag
* - condSuffix can be val, switch or script
* - paramIdsSuffix can be val, var or script
* - The result of condEntry can be anything as only whether it's
* truthy matters
* - If the result of condEntry is falsy, this notetag will be
* discarded upon such use cases
* - The result of paramIdsEntry can be an Array of any natural number
* - If paramIdsSuffix is val, then paramIdsEntry should be written as
* paramId1|paramId2|paramId3|paramIdI|paramIdN
* - E.g.:
* <targeting ai memWithoutAllBuffs switch val: 1, 2|3> will
* the list of targets to be those without atk and def buff if the
* game switch with id 1 is on
* 9. memWithAnyDebuff condSuffix paramIdsSuffix: condEntry, paramIdsEntry
* - Applies the following DoubleX RMMZ Unit Filters script call:
* memWithAnyDebuff(paramIds, mems)
* Where paramIds is the paramIdsEntry results and mems is the list
* of possible targets of the skill/item having this notetag
* - condSuffix can be val, switch or script
* - paramIdsSuffix can be val, var or script
* - The result of condEntry can be anything as only whether it's
* truthy matters
* - If the result of condEntry is falsy, this notetag will be
* discarded upon such use cases
* - The result of paramIdsEntry can be an Array of any natural number
* - If paramIdsSuffix is val, then paramIdsEntry should be written as
* paramId1|paramId2|paramId3|paramIdI|paramIdN
* - E.g.:
* <targeting ai memWithAnyDebuff switch val: 1, 2|3> will restrict
* the list of targets to be those with atk or def debuff if the
* game switch with id 1 is on
* 10. memWithAllDebuffs condSuffix paramIdsSuffix: condEntry, paramIdsEntry
* - Applies the following DoubleX RMMZ Unit Filters script call:
* memWithAllDebuffs(paramIds, mems)
* Where paramIds is the paramIdsEntry results and mems is the list
* of possible targets of the skill/item having this notetag
* - condSuffix can be val, switch or script
* - paramIdsSuffix can be val, var or script
* - The result of condEntry can be anything as only whether it's
* truthy matters
* - If the result of condEntry is falsy, this notetag will be
* discarded upon such use cases
* - The result of paramIdsEntry can be an Array of any natural
* number
* - If paramIdsSuffix is val, then paramIdsEntry should be written
* as paramId1|paramId2|paramId3|paramIdI|paramIdN
* - E.g.:
* <targeting ai memWithAllDebuffs switch val: 1, 2|3> will
* restrict the list of targets to be those with atk and def debuff
* if the game switch with id 1 is on
* 11. memWithoutAnyDebuff condSuffix paramIdsSuffix: condEntry, paramIdsEntry
* - Applies the following DoubleX RMMZ Unit Filters script call:
* memWithoutAnyDebuff(paramIds, mems)
* Where paramIds is the paramIdsEntry results and mems is the list
* of possible targets of the skill/item having this notetag
* - condSuffix can be val, switch or script
* - paramIdsSuffix can be val, var or script
* - The result of condEntry can be anything as only whether it's
* truthy matters
* - If the result of condEntry is falsy, this notetag will be
* discarded upon such use cases
* - The result of paramIdsEntry can be an Array of any natural
* number
* - If paramIdsSuffix is val, then paramIdsEntry should be written
* as paramId1|paramId2|paramId3|paramIdI|paramIdN
* - E.g.:
* <targeting ai memWithoutAnyDebuff switch val: 1, 2|3> will
* restrict the list of targets to be those without atk or def
* debuff if the game switch with id 1 is on
* 12. memWithoutAllDebuffs condSuffix paramIdsSuffix: condEntry, paramIdsEntry
* - Applies the following DoubleX RMMZ Unit Filters script call:
* memWithoutAllDebuffs(paramIds, mems)
* Where paramIds is the paramIdsEntry results and mems is the list
* of possible targets of the skill/item having this notetag
* - condSuffix can be val, switch or script
* - paramIdsSuffix can be val, var or script
* - The result of condEntry can be anything as only whether it's
* truthy matters
* - If the result of condEntry is falsy, this notetag will be
* discarded upon such use cases
* - The result of paramIdsEntry can be an Array of any natural
* number
* - If paramIdsSuffix is val, then paramIdsEntry should be written
* as paramId1|paramId2|paramId3|paramIdI|paramIdN
* - E.g.:
* <targeting ai memWithoutAllDebuffs switch val: 1, 2|3> will
* restrict the list of targets to be those without atk and def
* debuff if the game switch with id 1 is on
* 13. memWithAnySkill condSuffix skillIdsSuffix: condEntry, skillIdsEntry
* - Applies the following DoubleX RMMZ Unit Filters script call:
* memWithAnySkill(skillIds, mems)
* Where skillIds is the skillIdsEntry results and mems is the list
* of possible targets of the skill/item having this notetag
* - condSuffix can be val, switch or script
* - skillIdsSuffix can be val, var or script
* - The result of condEntry can be anything as only whether it's
* truthy matters
* - If the result of condEntry is falsy, this notetag will be
* discarded upon such use cases
* - The result of skillIdsEntry can be an Array of any natural
* number
* - If skillIdsSuffix is val, then skillIdsEntry should be written
* as skillId1|skillId2|skillId3|skillIdI|skillIdN
* - E.g.:
* <targeting ai memWithAnySkill switch val: 1, 2|3> will restrict
* the list of targets to be those with skill with id 2 or 3 if the
* game switch with id 1 is on
* 14. memWithAllSkills condSuffix skillIdsSuffix: condEntry, skillIdsEntry
* - Applies the following DoubleX RMMZ Unit Filters script call:
* memWithAllSkills(skillIds, mems)
* Where skillIds is the skillIdsEntry results and mems is the list
* of possible targets of the skill/item having this notetag
* - condSuffix can be val, switch or script
* - skillIdsSuffix can be val, var or script
* - The result of condEntry can be anything as only whether it's
* truthy matters
* - If the result of condEntry is falsy, this notetag will be
* discarded upon such use cases
* - The result of skillIdsEntry can be an Array of any natural
* number
* - If skillIdsSuffix is val, then skillIdsEntry should be written
* as skillId1|skillId2|skillId3|skillIdI|skillIdN
* - E.g.:
* <targeting ai memWithAllSkills switch val: 1, 2|3> will
* restrict the list of targets to be those with skill with id 2
* and 3 if the game switch with id 1 is on
* 15. memWithoutAnySkill condSuffix skillIdsSuffix: condEntry, skillIdsEntry
* - Applies the following DoubleX RMMZ Unit Filters script call:
* memWithoutAnySkill(skillIds, mems)
* Where skillIds is the skillIdsEntry results and mems is the list
* of possible targets of the skill/item having this notetag
* - condSuffix can be val, switch or script
* - skillIdsSuffix can be val, var or script
* - The result of condEntry can be anything as only whether it's
* truthy matters
* - If the result of condEntry is falsy, this notetag will be
* discarded upon such use cases
* - The result of skillIdsEntry can be an Array of any natural
* number
* - If skillIdsSuffix is val, then skillIdsEntry should be written
* as skillId1|skillId2|skillId3|skillIdI|skillIdN
* - E.g.:
* <targeting ai memWithoutAnySkill switch val: 1, 2|3> will
* restrict the list of targets to be those with skill without id 2
* or 3 if the game switch with id 1 is on
* 16. memWithoutAllSkills condSuffix skillIdsSuffix: condEntry, skillIdsEntry
* - Applies the following DoubleX RMMZ Unit Filters script call:
* memWithoutAllSkills(skillIds, mems)
* Where skillIds is the skillIdsEntry results and mems is the list
* of possible targets of the skill/item having this notetag
* - condSuffix can be val, switch or script
* - skillIdsSuffix can be val, var or script
* - The result of condEntry can be anything as only whether it's
* truthy matters
* - If the result of condEntry is falsy, this notetag will be
* discarded upon such use cases
* - The result of skillIdsEntry can be an Array of any natural
* number
* - If skillIdsSuffix is val, then skillIdsEntry should be written
* as skillId1|skillId2|skillId3|skillIdI|skillIdN
* - E.g.:
* <targeting ai memWithoutAllSkills switch val: 1, 2|3> will
* restrict the list of targets to be those with skill without id 2
* and 3 if the game switch with id 1 is on
* 17. anyHighestStatMem condSuffix statsSuffix: condEntry, statsEntry
* - Applies the following DoubleX RMMZ Unit Filters script call:
* anyHighestStatMem(stats, mems)
* Where stats is the statsEntry results and mems is the list of
* possible targets of the skill/item having this notetag
* - condSuffix can be val, switch or script
* - statsSuffix can be val, var or script
* - The result of condEntry can be anything as only whether it's
* truthy matters
* - If the result of condEntry is falsy, this notetag will be
* discarded upon such use cases
* - The result of statsEntry can be an Array of any natural number
* - If statsSuffix is val, then statsEntry should be written as
* stat1|stat2|stat3|statI|statN
* - E.g.:
* <targeting ai anyHighestStatMem switch val: 1, hp|mp> will
* restrict the list of targets to be those with highest hp or mp
* if the game switch with id 1 is on
* 18. allHighestStatsMem condSuffix statsSuffix: condEntry, statsEntry
* - Applies the following DoubleX RMMZ Unit Filters script call:
* allHighestStatsMem(stats, mems)
* Where stats is the statsEntry results and mems is the list of
* possible targets of the skill/item having this notetag
* - condSuffix can be val, switch or script
* - statsSuffix can be val, var or script
* - The result of condEntry can be anything as only whether it's
* truthy matters
* - If the result of condEntry is falsy, this notetag will be
* discarded upon such use cases
* - The result of statsEntry can be an Array of any natural number
* - If statsSuffix is val, then statsEntry should be written as
* stat1|stat2|stat3|statI|statN
* - E.g.:
* <targeting ai allHighestStatsMem switch val: 1, hp|mp> will
* restrict the list of targets to be those with highest hp and mp
* if the game switch with id 1 is on
* 19. notAnyHighestStatMem condSuffix statsSuffix: condEntry, statsEntry
* - Applies the following DoubleX RMMZ Unit Filters script call:
* notAnyHighestStatMem(stats, mems)
* Where stats is the statsEntry results and mems is the list of
* possible targets of the skill/item having this notetag
* - condSuffix can be val, switch or script
* - statsSuffix can be val, var or script
* - The result of condEntry can be anything as only whether it's
* truthy matters
* - If the result of condEntry is falsy, this notetag will be
* discarded upon such use cases
* - The result of statsEntry can be an Array of any natural number
* - If statsSuffix is val, then statsEntry should be written as
* stat1|stat2|stat3|statI|statN
* - E.g.:
* <targeting ai notAnyHighestStatMem switch val: 1, hp|mp> will
* restrict the list of targets to be those without highest hp or
* mp if the game switch with id 1 is on
* 20. notAllHighestStatsMem condSuffix statsSuffix: condEntry, statsEntry
* - Applies the following DoubleX RMMZ Unit Filters script call:
* notAllHighestStatsMem(stats, mems)
* Where stats is the statsEntry results and mems is the list of
* possible targets of the skill/item having this notetag
* - condSuffix can be val, switch or script
* - statsSuffix can be val, var or script
* - The result of condEntry can be anything as only whether it's
* truthy matters
* - If the result of condEntry is falsy, this notetag will be
* discarded upon such use cases
* - The result of statsEntry can be an Array of any natural
* number
* - If statsSuffix is val, then statsEntry should be written as
* stat1|stat2|stat3|statI|statN
* - E.g.:
* <targeting ai notAllHighestStatsMem switch val: 1, hp|mp> will
* restrict the list of targets to be those without highest hp and
* mp if the game switch with id 1 is on
* 21. anyLowestStatMem condSuffix statsSuffix: condEntry, statsEntry
* - Applies the following DoubleX RMMZ Unit Filters script call:
* anyLowestStatMem(stats, mems)
* Where stats is the statsEntry results and mems is the list of
* possible targets of the skill/item having this notetag
* - condSuffix can be val, switch or script
* - statsSuffix can be val, var or script
* - The result of condEntry can be anything as only whether it's
* truthy matters
* - If the result of condEntry is falsy, this notetag will be
* discarded upon such use cases
* - The result of statsEntry can be an Array of any natural number
* - If statsSuffix is val, then statsEntry should be written as
* stat1|stat2|stat3|statI|statN
* - E.g.:
* <targeting ai anyLowestStatMem switch val: 1, hp|mp> will
* restrict the list of targets to be those with highest hp or mp
* if the game switch with id 1 is on
* 22. allLowestStatsMem condSuffix statsSuffix: condEntry, statsEntry
* - Applies the following DoubleX RMMZ Unit Filters script call:
* allLowestStatsMem(stats, mems)
* Where stats is the statsEntry results and mems is the list of
* possible targets of the skill/item having this notetag
* - condSuffix can be val, switch or script
* - statsSuffix can be val, var or script
* - The result of condEntry can be anything as only whether it's
* truthy matters
* - If the result of condEntry is falsy, this notetag will be
* discarded upon such use cases
* - The result of statsEntry can be an Array of any natural number
* - If statsSuffix is val, then statsEntry should be written as
* stat1|stat2|stat3|statI|statN
* - E.g.:
* <targeting ai allLowestStatsMem switch val: 1, hp|mp> will
* restrict the list of targets to be those with highest hp and mp
* if the game switch with id 1 is on
* 23. notAnyLowestStatMem condSuffix statsSuffix: condEntry, statsEntry
* - Applies the following DoubleX RMMZ Unit Filters script call:
* notAnyLowestStatMem(stats, mems)
* Where stats is the statsEntry results and mems is the list of
* possible targets of the skill/item having this notetag
* - condSuffix can be val, switch or script
* - statsSuffix can be val, var or script
* - The result of condEntry can be anything as only whether it's
* truthy matters
* - If the result of condEntry is falsy, this notetag will be
* discarded upon such use cases
* - The result of statsEntry can be an Array of any natural number
* - If statsSuffix is val, then statsEntry should be written as
* stat1|stat2|stat3|statI|statN
* - E.g.:
* <targeting ai notAnyLowestStatMem switch val: 1, hp|mp> will
* restrict the list of targets to be those without highest hp or
* mp if the game switch with id 1 is on
* 24. notAllLowestStatsMem condSuffix statsSuffix: condEntry, statsEntry
* - Applies the following DoubleX RMMZ Unit Filters script call:
* notAllLowestStatsMem(stats, mems)
* Where stats is the statsEntry results and mems is the list of
* possible targets of the skill/item having this notetag
* - condSuffix can be val, switch or script
* - statsSuffix can be val, var or script
* - The result of condEntry can be anything as only whether it's
* truthy matters
* - If the result of condEntry is falsy, this notetag will be
* discarded upon such use cases
* - The result of statsEntry can be an Array of any natural
* number
* - If statsSuffix is val, then statsEntry should be written as
* stat1|stat2|stat3|statI|statN
* - E.g.:
* <targeting ai notAllLowestStatsMem switch val: 1, hp|mp> will
* restrict the list of targets to be those without highest hp and
* mp if the game switch with id 1 is on
* 25. anyAboveStatMem condSuffix statsSuffix valSuffix: condEntry, statsEntry, valEntry
* - Applies the following DoubleX RMMZ Unit Filters script call:
* anyLowestStatMem(stats, val, mems)
* Where stats is the statsEntry results, val is the valEntry
* results, and mems is the list of possible targets of the
* skill/item having this notetag
* - condSuffix can be val, switch or script
* - statsSuffix can be val, var or script
* - valSuffix can be val, var or script
* - The result of condEntry can be anything as only whether it's
* truthy matters
* - If the result of condEntry is falsy, this notetag will be
* discarded upon such use cases
* - The result of statsEntry can be an Array of any natural number
* - If statsSuffix is val, then statsEntry should be written as
* stat1|stat2|stat3|statI|statN
* - The result of valEntry can be any number
* - E.g.:
* <targeting ai anyAboveStatMem switch val var: 1, hp|mp, 2> will
* restrict the list of targets to be those with hp or mp above the
* value of the game variable with id 2 if the game switch with id
* 1 is on
* 26. allAboveStatMem condSuffix statsSuffix valSuffix: condEntry, statsEntry, valEntry
* - Applies the following DoubleX RMMZ Unit Filters script call:
* allAboveStatMem(stats, val, mems)
* Where stats is the statsEntry results, val is the valEntry
* results, and mems is the list of possible targets of the
* skill/item having this notetag
* - condSuffix can be val, switch or script
* - statsSuffix can be val, var or script
* - valSuffix can be val, var or script
* - The result of condEntry can be anything as only whether it's
* truthy matters
* - If the result of condEntry is falsy, this notetag will be
* discarded upon such use cases
* - The result of statsEntry can be an Array of any natural number
* - If statsSuffix is val, then statsEntry should be written as
* stat1|stat2|stat3|statI|statN
* - The result of valEntry can be any number
* - E.g.:
* <targeting ai allAboveStatMem switch val var: 1, hp|mp, 2> will
* restrict the list of targets to be those with hp and mp above
* the value of the game variable with id 2 if the game switch with
* id 1 is on
* 27. anyBelowStatMem condSuffix statsSuffix valSuffix: condEntry, statsEntry, valEntry
* - Applies the following DoubleX RMMZ Unit Filters script call:
* anyLowestStatMem(stats, val, mems)
* Where stats is the statsEntry results, val is the valEntry
* results, and mems is the list of possible targets of the
* skill/item having this notetag
* - condSuffix can be val, switch or script
* - statsSuffix can be val, var or script
* - valSuffix can be val, var or script
* - The result of condEntry can be anything as only whether it's
* truthy matters
* - If the result of condEntry is falsy, this notetag will be
* discarded upon such use cases
* - The result of statsEntry can be an Array of any natural number
* - If statsSuffix is val, then statsEntry should be written as
* stat1|stat2|stat3|statI|statN
* - The result of valEntry can be any number
* - E.g.:
* <targeting ai anyBelowStatMem switch val var: 1, hp|mp, 2> will
* restrict the list of targets to be those with hp or mp below the
* value of the game variable with id 2 if the game switch with id
* 1 is on
* 28. allBelowStatMem condSuffix statsSuffix valSuffix: condEntry, statsEntry, valEntry
* - Applies the following DoubleX RMMZ Unit Filters script call:
* allBelowStatMem(stats, val, mems)
* Where stats is the statsEntry results, val is the valEntry
* results, and mems is the list of possible targets of the
* skill/item having this notetag
* - condSuffix can be val, switch or script
* - statsSuffix can be val, var or script
* - valSuffix can be val, var or script
* - The result of condEntry can be anything as only whether it's
* truthy matters
* - If the result of condEntry is falsy, this notetag will be
* discarded upon such use cases
* - The result of statsEntry can be an Array of any natural number
* - If statsSuffix is val, then statsEntry should be written as
* stat1|stat2|stat3|statI|statN
* - The result of valEntry can be any number
* - E.g.:
* <targeting ai allBelowStatMem switch val var: 1, hp|mp, 2> will
* restrict the list of targets to be those with hp and mp below
* the value of the game variable with id 2 if the game switch with
* id 1 is on
* (Advanced)29. or condSuffix: condEntry
* - Acts as the or operator among the list of effective notetags in
* this plugin upon making action targets
* - condSuffix can be val, switch or script
* - The result of condEntry can be anything as only whether it's
* truthy matters
* - If the result of condEntry is falsy, this notetag will be
* discarded upon such use cases
* - All filtered target groups separated by the or notetags will be
* joined by the set union operations
* - E.g.:
* If the battler has an effective state with the following
* effective notetags in this plugin:
* <targeting ai anyBelowStatMem switch val var: 1, hp|mp, 2>
* <targeting ai allBelowStatMem switch val var: 3, mhp|mmp, 4>
* <targeting ai or val: true>
* <targeting ai anyAboveStatMem switch val var: 5, atk|def, 6>
* <targeting ai allAboveStatMem switch val var: 7, mat|mdf, 8>
* <targeting ai or val: false>
* <targeting ai notAnyLowestStatsMem switch val: 9, agi|luk>
* <targeting ai notAllLowestStatsMem switch val: 10, hit|eva>
* And if that battler has the following effective notetags in this
* plugin:
* <targeting ai notAnyHighestStatsMem switch val: 11, cri|cev>
* <targeting ai notAllHighestStatsMem switch val: 12, mev|mrf>
* And if the inputted skill/item has the following effective
* notetags in this plugin:
* <targeting ai or val: true>
* <targeting ai anyHighestStatMem switch val: 13, cnt|hrg>
* <targeting ai allHighestStatMem switch val: 14, mrg|trg>
* Then if the notetag data type priorities are states, battler,
* latest skill/item, the inputted actions will select targets
* among those filtered by:
* <targeting ai anyBelowStatMem switch val var: 1, hp|mp, 2>
* <targeting ai allBelowStatMem switch val var: 3, mhp|mmp, 4>
* Or:
* <targeting ai anyAboveStatMem switch val var: 5, atk|def, 6>
* <targeting ai allAboveStatMem switch val var: 7, mat|mdf, 8>
* <targeting ai notAnyLowestStatsMem switch val: 9, agi|luk>
* <targeting ai notAllLowestStatsMem switch val: 10, hit|eva>
* <targeting ai notAnyHighestStatsMem switch val: 11, cri|cev>
* <targeting ai notAllHighestStatsMem switch val: 12, mev|mrf>
* Or:
* <targeting ai anyHighestStatMem switch val: 13, cnt|hrg>
* <targeting ai allHighestStatMem switch val: 14, mrg|trg>
* (v1.01a+)30. memWithAnyUsableSkill condSuffix skillIdsSuffix: condEntry, skillIdsEntry
* - Applies the following DoubleX RMMZ Unit Filters script call:
* memWithAnyUsableSkill(skillIds, mems)
* Where skillIds is the skillIdsEntry results and mems is the list
* of possible targets of the skill/item having this notetag
* - condSuffix can be val, switch or script
* - skillIdsSuffix can be val, var or script
* - The result of condEntry can be anything as only whether it's
* truthy matters
* - If the result of condEntry is falsy, this notetag will be
* discarded upon such use cases
* - The result of skillIdsEntry can be an Array of any natural
* number
* - If skillIdsSuffix is val, then skillIdsEntry should be written
* as skillId1|skillId2|skillId3|skillIdI|skillIdN
* - E.g.:
* <targeting ai memWithAnyUsableSkill switch val: 1, 2|3> will
* restrict the list of targets to be those with usable skill with
* id 2 or 3 if the game switch with id 1 is on
* (v1.01a+)31. memWithAllUsableSkills condSuffix skillIdsSuffix: condEntry, skillIdsEntry
* - Applies the following DoubleX RMMZ Unit Filters script call:
* memWithAllUsableSkills(skillIds, mems)
* Where skillIds is the skillIdsEntry results and mems is the list
* of possible targets of the skill/item having this notetag
* - condSuffix can be val, switch or script
* - skillIdsSuffix can be val, var or script
* - The result of condEntry can be anything as only whether it's
* truthy matters
* - If the result of condEntry is falsy, this notetag will be
* discarded upon such use cases
* - The result of skillIdsEntry can be an Array of any natural
* number
* - If skillIdsSuffix is val, then skillIdsEntry should be written
* as skillId1|skillId2|skillId3|skillIdI|skillIdN
* - E.g.:
* <targeting ai memWithAllUsableSkills switch val: 1, 2|3> will
* restrict the list of targets to be those with usable skill with
* id 2 and 3 if the game switch with id 1 is on
* (v1.01a+)32. memWithoutAnyUsableSkill condSuffix skillIdsSuffix: condEntry, skillIdsEntry
* - Applies the following DoubleX RMMZ Unit Filters script call:
* memWithoutAnyUsableSkill(skillIds, mems)
* Where skillIds is the skillIdsEntry results and mems is the list
* of possible targets of the skill/item having this notetag
* - condSuffix can be val, switch or script
* - skillIdsSuffix can be val, var or script
* - The result of condEntry can be anything as only whether it's
* truthy matters
* - If the result of condEntry is falsy, this notetag will be
* discarded upon such use cases
* - The result of skillIdsEntry can be an Array of any natural
* number
* - If skillIdsSuffix is val, then skillIdsEntry should be written
* as skillId1|skillId2|skillId3|skillIdI|skillIdN
* - E.g.:
* <targeting ai memWithoutAnyUsableSkill switch val: 1, 2|3> will
* restrict the list of targets to be those with usable skill
* without id 2 or 3 if the game switch with id 1 is on
* (v1.01a+)33. memWithoutAllUsableSkills condSuffix skillIdsSuffix: condEntry, skillIdsEntry
* - Applies the following DoubleX RMMZ Unit Filters script call:
* memWithoutAllUsableSkills(skillIds, mems)
* Where skillIds is the skillIdsEntry results and mems is the list
* of possible targets of the skill/item having this notetag
* - condSuffix can be val, switch or script
* - skillIdsSuffix can be val, var or script
* - The result of condEntry can be anything as only whether it's
* truthy matters
* - If the result of condEntry is falsy, this notetag will be
* discarded upon such use cases
* - The result of skillIdsEntry can be an Array of any natural
* number
* - If skillIdsSuffix is val, then skillIdsEntry should be written
* as skillId1|skillId2|skillId3|skillIdI|skillIdN
* - E.g.:
* <targeting ai memWithoutAllUsableSkills switch val: 1, 2|3> will
* restrict the list of targets to be those with usable skill
* without id 2 and 3 if the game switch with id 1 is on
* # Parameter manipulations
* 1. $gameSystem.setTargetingAIParam(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.setTargetingAIParam("notetagDataTypePriorities", [
* "states",
* "armors",
* "weapons",
* "class",
* "actor",
* "enemy"
* ]) sets the fully parsed value of the parameter
* notetagDataTypePriorities as
* ["states", "armors", "weapons", "class", "actor", "enemy"]
* 2. $gameSystem.targetingAIParam(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.targetingAIParam("notetagDataTypePriorities") returns
* the fully parsed value of the parameter
* notetagDataTypePriorities, which should be
* ["states", "armors", "weapons", "class", "actor", "enemy"] if it
* uses its default parameter value
* 1. setTargetingAIParam param val
* - Applies the script call
* $gameSystem.setTargetingAIParam(param, val)
* 1. All notetags of this plugins are just applying script calls in
* DoubleX RMMZ Unit Filters unit manipulation script calls, so you're
* highly encouraged and recommended to have a basic knowledge on what
* they do in general, even though it's not strictly needed to use
* this plugin
* 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.
* 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
* { codebase: "1.1.0", plugin: "v1.01b" }(2020 Dec 2 GMT 0400):
* 1. You no longer have to edit the value of
* DoubleX_RMMZ.Targeting_AI.PLUGIN_NAME when changing this plugin
* file name
* { codebase: "1.0.0", plugin: "v1.01a" }(2020 Aug 28 GMT 0100):
* 1. Added the following notetags -
* - memWithAnyUsableSkill
* - memWithAllUsableSkills
* - memWithoutAnyUsableSkill
* - memWithoutAllUsableSkills
* { codebase: "1.0.0", plugin: "v1.00a" }(2020 Aug 25 GMT 0400):
* 1. 1st version of this plugin finished
* 1. Without any plugin, getting a member with specific conditions
* relative to the belonging unit, like finding the party member with
* the highest amount of hp, demands relatively heavy event setups,
* even with the aid of common events, which boost event reusability.
* 2. With this plugin, the same can be done using several easy, simple
* and small script calls instead of writing several common events
* from scratch, thus further improving effectiveness and efficiency.
* # Battler manipulations
* 1. isAnyStateAffected(stateIds)
* - Returns whether the battler involved has any state included by
* stateIds, which is a list of id of states
* - stateIds must be an Array of natural numbers
* - E.g.:
* $gameParty.members()
.isAnyStateAffected([1, 2]) returns * whether the 1st party member has any state with id 1 or 2
* 2. isAllStatesAffected(stateIds)
* - Returns whether the battler involved has all states included by
* stateIds, which is a list of id of states
* - stateIds must be an Array of natural numbers
* - E.g.:
* $gameActors.actor(1).isAllStatesAffected([1, 2]) returns whether
* the actor with id 1 has all states with id 1 or 2
* 3. isAnyBuffAffected(paramIds)
* - Returns whether the battler involved has any buff included by
* paramIds, which is a list of id of corresponding parameters
* - paramIds must be an Array of non negative numbers
* - E.g.:
* $gameParty.members()
.isAnyBuffAffected([0, 1]) returns * whether the 1st party member has any mhp or mmp buff
* 4. isAllBuffsAffected(paramIds)
* - Returns whether the battler involved has all buffs included by
* paramIds, which is a list of id of corresponding parameters
* - paramIds must be an Array of non negative numbers
* - E.g.:
* $gameActors.actor(1).isAllBuffsAffected([0, 1]) returns whether
* the actor with id 1 has all mhp and mmp buffs
* 5. isAnyDebuffAffected(paramIds)
* - Returns whether the battler involved has any debuff included by
* paramIds, which is a list of id of corresponding parameters
* - paramIds must be an Array of non negative numbers
* - E.g.:
* $gameParty.members()
.isAnyDebuffAffected([0, 1]) returns * whether the 1st party member has any mhp or mmp debuff
* 6. isAllDebuffsAffected(paramIds)
* - Returns whether the battler involved has all debuffs included by
* paramIds, which is a list of id of corresponding parameters
* - paramIds must be an Array of non negative numbers
* - E.g.:
* $gameActors.actor(1).isAllDebuffsAffected([0, 1]) returns whether
* the actor with id 1 has all mhp and mmp debuffs
* 7. hasAnySkill(skillIds)
* - Returns whether the battler involved has any skill included by
* skillIds, which is a list of id of corresponding skills
* - paramIds must be an Array of natural numbers
* - E.g.:
* $gameParty.members()
.hasAnySkill([1, 2]) returns whether the * 1st party member has skill with id 1 or 2
* 8. hasAllSkills(skillIds)
* - Returns whether the battler involved has all skills included by
* skillIds, which is a list of id of corresponding skills
* - paramIds must be an Array of natural numbers
* - E.g.:
* $gameActors.actor(1).hasAllSkills([1, 2]) returns whether the
* actor with id 1 has all skills with id 1 and 2
* (v1.01a+)9. hasAnyUsableSkill(skillIds)
* - Returns whether the battler involved has any usable skill
* included by skillIds, which is a list of id of corresponding
* skills
* - paramIds must be an Array of natural numbers
* - E.g.:
* $gameParty.members()
.hasAnyUsableSkill([1, 2]) returns whether * the 1st party member has usable skill with id 1 or 2
* (v1.01a+)10. hasAllUsableSkills(skillIds)
* - Returns whether the battler involved has all usable skills
* included by skillIds, which is a list of id of corresponding
* skills
* - paramIds must be an Array of natural numbers
* - E.g.:
* $gameActors.actor(1).hasAllUsableSkills([1, 2]) returns whether
* the actor with id 1 has all usable skills with id 1 and 2
* # Unit manipulations
* 1. memWithAnyState(stateIds, mems)
* - Returns the list of members with any state included by stateIds,
* which is a list of id of states, among all battlers included by
* mems, which is a list of battlers
* - The return value should be an Array of Game_Battler
* - stateIds must be an Array of natural numbers
* - mems must be an Array of Game_Battler
* - If mems isn't specified, it'll be default to all unit members
* outside battles and battle members inside battles respectively
* - E.g.:
* $gameParty.memWithAnyState([1, 2]) returns the list of party
* members with any state with id 1 or 2
* 2. memWithAllStates(stateIds, mems)
* - Returns the list of members with all states included by
* stateIds, which is a list of id of states, among all battlers
* included by mems, which is a list of battlers
* - The return value should be an Array of Game_Battler
* - stateIds must be an Array of natural numbers
* - mems must be an Array of Game_Battler
* - If mems isn't specified, it'll be default to all unit members
* outside battles and battle members inside battles respectively
* - E.g.:
* $gameTroop.memWithAllStates([1, 2], $gameTroop.memWithAnyState([3, 4]))
* returns the list of troop members with all states with id 1 or 2
* among those with any state with id 3 or 4
* 3. memWithoutAnyState(stateIds, mems)
* - Returns the list of members without any state included by
* stateIds, which is a list of id of states, among all battlers
* included by mems, which is a list of battlers
* - The return value should be an Array of Game_Battler
* - stateIds must be an Array of natural numbers
* - mems must be an Array of Game_Battler
* - If mems isn't specified, it'll be default to all unit members
* outside battles and battle members inside battles respectively
* - E.g.:
* $gameParty.memWithoutAnyState([1, 2]) returns the list of party
* members without any state with id 1 or 2
* 4. memWithoutAllStates(stateIds, mems)
* - Returns the list of members without all states included by
* stateIds, which is a list of id of states, among all battlers
* included by mems, which is a list of battlers
* - The return value should be an Array of Game_Battler
* - stateIds must be an Array of natural numbers
* - mems must be an Array of Game_Battler
* - If mems isn't specified, it'll be default to all unit members
* outside battles and battle members inside battles respectively
* - E.g.:
* $gameTroop.memWithoutAllStates([1, 2], $gameTroop.memWithoutAnyState([3, 4]))
* returns the list of troop members without all states with id 1 or
* 2 among those without any state with id 1 or 2
* 5. memWithAnyBuff(paramIds, mems)
* - Returns the list of members with any buff included by paramIds,
* which is a list of id of corresponding parameters, among all
* battlers included by mems, which is a list of battlers
* - The return value should be an Array of Game_Battler
* - paramIds must be an Array of non negative numbers
* - mems must be an Array of Game_Battler
* - If mems isn't specified, it'll be default to all unit members
* outside battles and battle members inside battles respectively
* - E.g.:
* $gameParty.memWithAnyBuff([0, 1]) returns the list of party
* members with any mhp or mmp buff
* 6. memWithAllBuffs(paramIds, mems)
* - Returns the list of members with all buffs included by paramIds,
* which is a list of id of corresponding parameters, among all
* battlers included by mems, which is a list of battlers
* - The return value should be an Array of Game_Battler
* - paramIds must be an Array of non negative numbers
* - mems must be an Array of Game_Battler
* - If mems isn't specified, it'll be default to all unit members
* outside battles and battle members inside battles respectively
* - E.g.:
* $gameTroop.memWithAllBuffs([0, 1], $gameTroop.memWithAnyBuff([2, 3]))
* returns the list of troop members with all mhp and mmp buffs
* among those with any atk or def buff
* 7. memWithoutAnyBuff(paramIds, mems)
* - Returns the list of members without any buff included by
* paramIds, which is a list of id of corresponding parameters,
* among all battlers included by mems, which is a list of battlers
* - The return value should be an Array of Game_Battler
* - paramIds must be an Array of non negative numbers
* - mems must be an Array of Game_Battler
* - If mems isn't specified, it'll be default to all unit members
* outside battles and battle members inside battles respectively
* - E.g.:
* $gameParty.memWithoutAnyBuff([0, 1]) returns the list of party
* members without any mhp or mmp buff
* 8. memWithoutAllBuffs(paramIds, mems)
* - Returns the list of members without all buffs included by
* paramIds, which is a list of id of corresponding parameters,
* among all battlers included by mems, which is a list of battlers
* - The return value should be an Array of Game_Battler
* - paramIds must be an Array of non negative numbers
* - mems must be an Array of Game_Battler
* - If mems isn't specified, it'll be default to all unit members
* outside battles and battle members inside battles respectively
* - E.g.:
* $gameTroop.memWithoutAllBuffs([0, 1], $gameTroop.memWithoutAnyBuff([2, 3]))
* returns the list of troop members without all mhp and mmp buffs
* among those without any atk or def buff
* 9. memWithAnyDebuff(paramIds, mems)
* - Returns the list of members with any debuff included by paramIds,
* which is a list of id of corresponding parameters, among all
* battlers included by mems, which is a list of battlers
* - The return value should be an Array of Game_Battler
* - paramIds must be an Array of non negative numbers
* - mems must be an Array of Game_Battler
* - If mems isn't specified, it'll be default to all unit members
* outside battles and battle members inside battles respectively
* - E.g.:
* $gameParty.memWithAnyDebuff([0, 1]) returns the list of party
* members with any mhp or mmp debuff
* 10. memWithAllDebuffs(paramIds, mems)
* - Returns the list of members with all debuffs included by
* paramIds, which is a list of id of corresponding parameters,
* among all battlers included by mems, which is a list of battlers
* - The return value should be an Array of Game_Battler
* - paramIds must be an Array of non negative numbers
* - mems must be an Array of Game_Battler
* - If mems isn't specified, it'll be default to all unit members
* outside battles and battle members inside battles respectively
* - E.g.:
* $gameTroop.memWithAllDebuffs([0, 1], $gameTroop.memWithAnyDebuff([2, 3]))
* returns the list of troop members with all mhp and mmp debuffs
* among those with any atk or def debuff
* 11. memWithoutAnyDebuff(paramIds, mems)
* - Returns the list of members without any debuff included by
* paramIds, which is a list of id of corresponding parameters,
* among all battlers included by mems, which is a list of battlers
* - The return value should be an Array of Game_Battler
* - paramIds must be an Array of non negative numbers
* - mems must be an Array of Game_Battler
* - If mems isn't specified, it'll be default to all unit members
* outside battles and battle members inside battles respectively
* - E.g.:
* $gameParty.memWithoutAnyDebuff([0, 1]) returns the list of party
* members without any mhp or mmp debuff
* 12. memWithoutAllDebuffs(paramIds, mems)
* - Returns the list of members without all debuffs included by
* paramIds, which is a list of id of corresponding parameters,
* among all battlers included by mems, which is a list of battlers
* - The return value should be an Array of Game_Battler
* - paramIds must be an Array of non negative numbers
* - mems must be an Array of Game_Battler
* - If mems isn't specified, it'll be default to all unit members
* outside battles and battle members inside battles respectively
* - E.g.:
* $gameTroop.memWithoutAllDebuffs([0, 1], $gameTroop.memWithoutAnyDebuff([2, 3]))
* returns the list of troop members without all mhp and mmp debuffs
* among those without any atk or def debuff
* 13. memWithAnySkill(skillIds, mems)
* - Returns the list of members with any skill included by skillIds,
* which is a list of id of corresponding skills, among all battlers
* included by mems, which is a list of battlers
* - The return value should be an Array of Game_Battler
* - skillIds must be an Array of natural numbers
* - mems must be an Array of Game_Battler
* - If mems isn't specified, it'll be default to all unit members
* outside battles and battle members inside battles respectively
* - E.g.:
* $gameParty.memWithAnySkill([1, 2]) returns the list of party
* members with skill having id 1 or 2
* 14. memWithAllSkills(skillIds, mems)
* - Returns the list of members with all skills included by skillIds,
* which is a list of id of corresponding skills, among all battlers
* included by mems, which is a list of battlers
* - The return value should be an Array of Game_Battler
* - skillIds must be an Array of natural numbers
* - mems must be an Array of Game_Battler
* - If mems isn't specified, it'll be default to all unit members
* outside battles and battle members inside battles respectively
* - E.g.:
* $gameTroop.memWithAllSkills([1, 2], $gameParty.memWithAnySkill([3, 4]))
* returns the list of troop members with skills having id 1 and 2
* among those with skill having id 3 or 4
* 15. memWithoutAnySkill(skillIds, mems)
* - Returns the list of members without any skill included by
* skillIds, which is a list of id of corresponding skills, among
* all battlers included by mems, which is a list of battlers
* - The return value should be an Array of Game_Battler
* - skillIds must be an Array of natural numbers
* - mems must be an Array of Game_Battler
* - If mems isn't specified, it'll be default to all unit members
* outside battles and battle members inside battles respectively
* - E.g.:
* $gameParty.memWithoutAnySkill([1, 2]) returns the list of party
* members without skills having id 1 nor 2
* 16. memWithoutAllSkills(skillIds, mems)
* - Returns the list of members without all skills included by
* skillIds, which is a list of id of corresponding skills, among
* all battlers included by mems, which is a list of battlers
* - The return value should be an Array of Game_Battler
* - skillIds must be an Array of natural numbers
* - mems must be an Array of Game_Battler
* - If mems isn't specified, it'll be default to all unit members
* outside battles and battle members inside battles respectively
* - E.g.:
* $gameTroop.memWithoutAllSkills([1, 2], $gameParty.memWithoutAnySkill([3, 4]))
* returns the list of troop members without skills having id 1 and
* 2 among those without skill having id 3 or 4
* 17. anyHighestStatMem(stats, mems)
* - Returns the list of members whose values of
* parameters/ex-parameters/sp-parameters included by stats, which
* is a list of names of corresponding
* parameters/ex-parameters/sp-parameters, include those being the
* highest among the caller, among all battlers included by mems,
* which is a list of battlers
* - The return value should be an Array of Game_Battler
* - stats must be an Array of strings as names of Game_Battler
* properties with the get function
* - mems must be an Array of Game_Battler
* - If mems isn't specified, it'll be default to all unit members
* outside battles and battle members inside battles respectively
* - E.g.:
* $gameParty.anyHighestStatMem(["hp", "mp"]) returns the list of
* party members with the highest amount of hp or mp among the party
* 18. allHighestStatsMem(stats, mems)
* - Returns the list of members whose values of
* parameters/ex-parameters/sp-parameters included by stats, which
* is a list of names of corresponding
* parameters/ex-parameters/sp-parameters, are all the highest among
* the caller, among all battlers included by mems, which is a list
* of battlers
* - The return value should be an Array of Game_Battler
* - stats must be an Array of strings as names of Game_Battler
* properties with the get function
* - mems must be an Array of Game_Battler
* - If mems isn't specified, it'll be default to all unit members
* outside battles and battle members inside battles respectively
* - E.g.:
* $gameTroop.allHighestStatsMem(["hp", "mp"], $gameTroop.anyHighestStatMem(["mhp", "mmp"]))
* returns the list of troop members with the highest amount of hp
* and mp among those with the highest amount of mhp or mmp among
* the troop
* 19. notAnyHighestStatMem(stats, mems)
* - Returns the list of members whose values of
* parameters/ex-parameters/sp-parameters included by stats, which
* is a list of names of corresponding
* parameters/ex-parameters/sp-parameters, don't include those being
* the highest among the caller, among all battlers included by
* mems, which is a list of battlers
* - The return value should be an Array of Game_Battler
* - stats must be an Array of strings as names of Game_Battler
* properties with the get function
* - mems must be an Array of Game_Battler
* - If mems isn't specified, it'll be default to all unit members
* outside battles and battle members inside battles respectively
* - E.g.:
* $gameParty.notAnyHighestStatMem(["hp", "mp"]) returns the list of
* party members with neither the highest amount of hp nor mp among
* the party
* 20. notAllHighestStatsMem(stats, mems)
* - Returns the list of members whose values of
* parameters/ex-parameters/sp-parameters included by stats, which
* is a list of names of corresponding
* parameters/ex-parameters/sp-parameters, aren't all the highest
* among the caller, among all battlers included by mems, which is
* a list of battlers
* - The return value should be an Array of Game_Battler
* - stats must be an Array of strings as names of Game_Battler
* properties with the get function
* - mems must be an Array of Game_Battler
* - If mems isn't specified, it'll be default to all unit members
* outside battles and battle members inside battles respectively
* - E.g.:
* $gameTroop.notAllHighestStatsMem(["hp", "mp"], $gameTroop.notAnyHighestStatMem(["mhp", "mmp"]))
* returns the list of troop members without the highest amount of
* both hp and mp among those with neither the highest amount of mhp
* nor mmp among the troop
* 21. anyLowestStatMem(stats, mems)
* - Returns the list of members whose values of
* parameters/ex-parameters/sp-parameters included by stats, which
* is a list of names of corresponding
* parameters/ex-parameters/sp-parameters, include those being the
* lowest among the caller, among all battlers included by mems,
* which is a list of battlers
* - The return value should be an Array of Game_Battler
* - stats must be an Array of strings as names of Game_Battler
* properties with the get function
* - mems must be an Array of Game_Battler
* - If mems isn't specified, it'll be default to all unit members
* outside battles and battle members inside battles respectively
* - E.g.:
* $gameParty.anyLowestStatMem(["hp", "mp"]) returns the list of
* party members with the lowest amount of hp or mp among the party
* 22. allLowestStatsMem(stats, mems)
* - Returns the list of members whose values of
* parameters/ex-parameters/sp-parameters included by stats, which
* is a list of names of corresponding
* parameters/ex-parameters/sp-parameters, are all the lowest among
* the caller, among all battlers included by mems, which is a list
* of battlers
* - The return value should be an Array of Game_Battler
* - stats must be an Array of strings as names of Game_Battler
* properties with the get function
* - mems must be an Array of Game_Battler
* - If mems isn't specified, it'll be default to all unit members
* outside battles and battle members inside battles respectively
* - E.g.:
* $gameTroop.allLowestStatsMem(["hp", "mp"], $gameTroop.anyLowestStatMem(["mhp", "mmp"]))
* returns the list of troop members with the lowest amount of hp
* and mp among those with the lowest amount of mhp or mmp among the
* troop
* 23. notAnyLowestStatMem(stats, mems)
* - Returns the list of members whose values of
* parameters/ex-parameters/sp-parameters included by stats, which
* is a list of names of corresponding
* parameters/ex-parameters/sp-parameters, don't include those being
* the lowest among the caller, among all battlers included by mems,
* which is a list of battlers
* - The return value should be an Array of Game_Battler
* - stats must be an Array of strings as names of Game_Battler
* properties with the get function
* - mems must be an Array of Game_Battler
* - If mems isn't specified, it'll be default to all unit members
* outside battles and battle members inside battles respectively
* - E.g.:
* $gameParty.notAnyLowestStatMem(["hp", "mp"]) returns the list of
* party members with neither the lowest amount of hp nor mp among
* the party
* 24. notAllLowestStatsMem(stats, mems)
* - Returns the list of members whose values of
* parameters/ex-parameters/sp-parameters included by stats, which
* is a list of names of corresponding
* parameters/ex-parameters/sp-parameters, aren't all the lowest
* among the caller, among all battlers included by mems, which is a
* list of battlers
* - The return value should be an Array of Game_Battler
* - stats must be an Array of strings as names of Game_Battler
* properties with the get function
* - mems must be an Array of Game_Battler
* - If mems isn't specified, it'll be default to all unit members
* outside battles and battle members inside battles respectively
* - E.g.:
* $gameTroop.notAllLowestStatsMem(["hp", "mp"], $gameParty.notAnyLowestStatMem(["mhp", "mmp"]))
* returns the list of troop members without the lowest amount of
* both hp and mp among those with neither the lowest amount of mhp
* nor mmp among the troop
* 25. anyAboveStatMem(stats, val, mems)
* - Returns the list of members whose values of
* parameters/ex-parameters/sp-parameters included by stats, which
* is a list of names of corresponding
* parameters/ex-parameters/sp-parameters, include those above val,
* among all battlers included by mems, which is a list of battlers
* - The return value should be an Array of Game_Battler
* - stats must be an Array of strings as names of Game_Battler
* properties with the get function
* - val must be a number
* - mems must be an Array of Game_Battler
* - If mems isn't specified, it'll be default to all unit members
* outside battles and battle members inside battles respectively
* - E.g.:
* $gameParty.anyAboveStatMem(["hp", "mp"], 100) returns the list of
* party members with the value of hp or mp above 100
* 26. allAboveStatMem(stats, val, mems)
* - Returns the list of members whose values of
* parameters/ex-parameters/sp-parameters included by stats, which
* is a list of names of corresponding
* parameters/ex-parameters/sp-parameters, are all above val, among
* all battlers included by mems, which is a list of battlers
* - The return value should be an Array of Game_Battler
* - stats must be an Array of strings as names of Game_Battler
* properties with the get function
* - val must be a number
* - mems must be an Array of Game_Battler
* - If mems isn't specified, it'll be default to all unit members
* outside battles and battle members inside battles respectively
* - E.g.:
* $gameTroop.allAboveStatMem(["hp", "mp"], 100, $gameTroop.anyAboveStatMem(["mhp", "mmp"], 1000))
* returns the list of troop members with the value of hp and mp
* above 100 among those with the value of mhp or mmp above 1000
* 27. anyBelowStatMem(stats, val, mems)
* - Returns the list of members whose values of
* parameters/ex-parameters/sp-parameters included by stats, which
* is a list of names of corresponding
* parameters/ex-parameters/sp-parameters, include those below val,
* among all battlers included by mems, which is a list of battlers
* - The return value should be an Array of Game_Battler
* - stats must be an Array of strings as names of Game_Battler
* properties with the get function
* - val must be a number
* - mems must be an Array of Game_Battler
* - If mems isn't specified, it'll be default to all unit members
* outside battles and battle members inside battles respectively
* - E.g.:
* $gameParty.anyBelowStatMem(["hp", "mp"], 100) returns the list of
* party members with the value of hp or mp below 100
* 28. allBelowStatMem(stats, val, mems)
* - Returns the list of members whose values of
* parameters/ex-parameters/sp-parameters included by stats, which
* is a list of names of corresponding
* parameters/ex-parameters/sp-parameters, are all below val, among
* all battlers included by mems, which is a list of battlers
* - The return value should be an Array of Game_Battler
* - stats must be an Array of strings as names of Game_Battler
* properties with the get function
* - val must be a number
* - mems must be an Array of Game_Battler
* - If mems isn't specified, it'll be default to all unit members
* outside battles and battle members inside battles respectively
* - E.g.:
* $gameTroop.allBelowStatMem(["hp", "mp"], 100, $gameTroop.anyBelowStatMem(["mhp", "mmp"], 1000))
* returns the list of troop members with the value of hp and mp
* below 100 among those with the value of mhp or mmp below 1000
* (v1.01a+)29. memWithAnyUsableSkill(skillIds, mems)
* - Returns the list of members with any usable skill included by
* skillIds, which is a list of id of corresponding skills, among
* all battlers included by mems, which is a list of battlers
* - The return value should be an Array of Game_Battler
* - skillIds must be an Array of natural numbers
* - mems must be an Array of Game_Battler
* - If mems isn't specified, it'll be default to all unit members
* outside battles and battle members inside battles respectively
* - E.g.:
* $gameParty.memWithAnyUsableSkill([1, 2]) returns the list of
* party members with usable skill having id 1 or 2
* (v1.01a+)30. memWithAllUsableSkills(skillIds, mems)
* - Returns the list of members with all usable skills included by
* skillIds, which is a list of id of corresponding skills, among
* all battlers included by mems, which is a list of battlers
* - The return value should be an Array of Game_Battler
* - skillIds must be an Array of natural numbers
* - mems must be an Array of Game_Battler
* - If mems isn't specified, it'll be default to all unit members
* outside battles and battle members inside battles respectively
* - E.g.:
* $gameTroop.memWithAllUsableSkills([1, 2], $gameParty.memWithAnyUsableSkill([3, 4]))
* returns the list of troop members with usable skills having id 1
* and 2 among those with usable skill having id 3 or 4
* (v1.01a+)31. memWithoutAnyUsableSkill(skillIds, mems)
* - Returns the list of members without any usable skill included by
* skillIds, which is a list of id of corresponding skills, among
* all battlers included by mems, which is a list of battlers
* - The return value should be an Array of Game_Battler
* - skillIds must be an Array of natural numbers
* - mems must be an Array of Game_Battler
* - If mems isn't specified, it'll be default to all unit members
* outside battles and battle members inside battles respectively
* - E.g.:
* $gameParty.memWithoutAnyUsableSkill([1, 2]) returns the list of
* party members without usable skills having id 1 nor 2
* (v1.01a+)32. memWithoutAllUsableSkills(skillIds, mems)
* - Returns the list of members without all usable skills included by
* skillIds, which is a list of id of corresponding skills, among
* all battlers included by mems, which is a list of battlers
* - The return value should be an Array of Game_Battler
* - skillIds must be an Array of natural numbers
* - mems must be an Array of Game_Battler
* - If mems isn't specified, it'll be default to all unit members
* outside battles and battle members inside battles respectively
* - E.g.:
* $gameTroop.memWithoutAllUsableSkills([1, 2], $gameParty.memWithoutAnyUsableSkill([3, 4]))
* returns the list of troop members without usable skills having id
* 1 and 2 among those without usable skill having id 3 or 4
* 1. This plugin's meant to be a convenience tool to facilitate the use
* of some unit filters that aren't already available from the default
* RMMZ codebase, so you're still supposed to write some Javascript
* codes with the aid of the new script calls provided by this plugin.
* 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)
* 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.
* 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
* { codebase: "1.0.2", plugin: "v1.02a" }(2020 Oct 6 GMT 1600):
* 1. Added the plugin query and command counterparts for the script
* calls of this plugin
* { codebase: "1.0.0", plugin: "v1.01a" }(2020 Aug 28 GMT 0000):
* 1. Added the following battler manipulation script calls -
* - hasAnyUsableSkill(skillIds)
* - hasAllUsableSkills(skillIds)
* 2. Added the following unit manipulation script calls -
* - memWithAnyUsableSkill(skillIds, mems)
* - memWithAllUsableSkills(skillIds, mems)
* - memWithoutAnyUsableSkill(skillIds, mems)
* - memWithoutAllUsableSkills(skillIds, mems)
* { codebase: "1.0.0", plugin: "v1.00a" }(2020 Aug 23 GMT 0400):
* 1. 1st version of this plugin finished