Envision, Create, Share

Welcome to HBGames, a leading amateur game development forum and Discord server. All are welcome, and amongst our ranks you will find experts in their field from all aspects of video game design and development.

DoubleX RMMV Autobattle Bugfix

DoubleX

Just a nameless weakling
Member

Purpose
Lets you fixes leaked side effects bugs when an autobattle actor has skills/items with damage formulae having side effects

Introduction
Code:
1. In the default RMMV battle system, doing anything other than calculating the skill/item damage in its damage formula can lead to those side effects unintentionally applied to all possible targets of that skill/item if the actor having it is in autobattle mode as its damage formula will be run to have the evaluated damage value for each target in order to determine which usable skill/item should be used to which possible target

2. This plugin lets you specify a regular expression to use only the desired portions of the damage formula when running the aforementioned evaluation, while still preserving the damage formula as-is when actually executing the action

3. You should try to standardize the damage formula structure so you can write an easy, simple and small regular expression that can always separate the side effects parts from the damage calculation parts

Video
http://www.youtube.com/watch?v=XED7XxK6ad8

Parameters
Code:
 * @param isEnabled

 * @type note

 * @desc Sets whether this plugin will be enabled

 * It'll be the contents of a function returning a Boolean

 * @default "return true;"

 *

 * @param sideEffectFreeDmgFormula

 * @type note

 * @desc Sets how to pick which damage formula part to use

 * It'll be the contents of a function returning a String

 * @default "return dmgFormula.replace(new RegExp('.*[};] *', 'gim'), '');"

Parameter Info
Code:
 *    # Function arguments

 *      1. isEnabled

 *         None

 *      2. sideEffectFreeDmgFormula

 *         dmgFormula - The original damage formula of the skill/item to be

 *                      evaluated when the actor in the autobattle mode

 *                      evaluates which skill/item to be used on which target

 *    # Valid values

 *      1. isEnabled

 *         Any valid Javascript(It'll always be regarded as truthy/falsy)

 *      2. sideEffectFreeDmgFormula

 *         Any valid Javascript returning the damage formula which returns a

 *         Number and has no unintended side effects

 *    # Examples

 *      1. isEnabled

 *         Setting isEnabled as

 *         return $gameSwitches.value(1);

 *         will enable this plugin only if the game switch with id 1 is on

 *      2. sideEffectFreeDmgFormula

 *         Setting sideEffectFreeDmgFormula as

 *         return dmgFormula.replace(new RegExp(.*[};] *, 'gim'), "");

 *         will only use the damage formula portion after the last } or ;

 *         - The following original damage formula:

 *           if ($gameSwitches.value(2)) { b.addState(4); } a.atk * 2 - b.def

 *           Will become:

 *           a.atk * 2 - b.def

 *           Which is a valid damage formula just returning the damage

 *         - The following original damage formula:

 *           b.addState(4); a.atk * 2 - b.def

 *           Will become:

 *           a.atk * 2 - b.def

 *           Which is a valid damage formula just returning the damage

 *         - The following original damage formula:

 *           $gameSwitches.value(2)?(b.addState(4);a.atk*4-b.def*2):a.atk*2-b.def

 *           Will become:

 *           a.atk*4-b.def*2):a.atk*2-b.def

 *           Which is syntactically invalid so the new formula won't be run

Prerequisites
Code:
Abilities:

1. Little RMMV plugin development proficiency to fully utilize this plugin in intended ways

Regular Expression Learning Sites:

1. [url=https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions]https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions[/url]

2. [url=https://regex101.com/]https://regex101.com/[/url]

Javascript Sandbox:

1. [url=https://playcode.io/]https://playcode.io/[/url]

Instructions
Code:
1. The default plugin parameters file name is doubleX rmmv autobattle bugfix v100a

If you want to change that, you must edit the value of DoubleX_RMMV.Autobattle_Bugfix_File, which must be done via opening this plugin js file directly

Terms Of Use
Code:
1. Commercial use's always allowed and crediting me's always optional.

2. You shall keep this plugin's Plugin Info part's contents intact.

3. You shalln't claim that this plugin's written by anyone other than DoubleX or my aliases. I always reserve the right to deny you from using any of my plugins anymore if you've violated this.

4. If you repost this plugin directly(rather than just linking back), you shall inform me of these direct repostings. I always reserve the right to request you to edit those direct repostings.

5. CC BY 4.0, except those conflicting with any of the above, applies to this plugin, unless you've my permissions not needing follow so.

6. I always reserve the right to deny you from using this plugin anymore if you've violated any of the above.

Contributors
Code:
Authors:

1. DoubleX

Plugin Development Collaborators:

- None So Far

Bug Reporters:

- None So Far

Compatibility Issue Raisers:

- None So Far

Feature Requesters:

- None So Far

Changelog
Code:
v1.00a(GMT 0400 7-Jun-2020)

1. 1st version of this plugin finished

Download Link
Pastebin
 

Thank you for viewing

HBGames is a leading amateur video game development forum and Discord server open to all ability levels. Feel free to have a nosey around!

Discord

Join our growing and active Discord server to discuss all aspects of game making in a relaxed environment. Join Us

Content

  • Our Games
  • Games in Development
  • Emoji by Twemoji.
    Top