Difference between revisions of "Anti-Damage Barriers VisuStella MZ"

From Yanfly.moe Wiki
Jump to navigation Jump to search
(Notetags)
Line 229: Line 229:
 
---
 
---
  
== Notetags ==
+
{{Notetags MZ}}
  
The following are notetags that have been added through this plugin. These
+
{{VisuMZ Anti-Damage Barriers Notetags}}
notetags will not work with your game if this plugin is OFF or not present.
 
 
 
---
 
 
 
=== Cancellation Barrier-Related Notetags ===
 
 
 
---
 
 
 
<hitType Barrier Cancel Damage Over: x>
 
<hitType Barrier Cancel Damage Over: formula>
 
 
 
- Used for: State Notetags
 
- Turns this state into a Cancellation Barrier that blocks all damage equal
 
  to or over a specific amount determined by a formula.
 
- Replace 'hitType' with any of the following:
 
  - 'All' for all damage types.
 
  - 'Certain Hit' for certain hit damage only.
 
  - 'Physical' for physical damage only.
 
  - 'Magical' for magical damage only.
 
  - 'Element id' for elemental damage that matches the element's 'id'.
 
  - 'Element name' for elemental damage that matches the element's name.
 
  - Insert multiple element id's or names with commas separating them.
 
- Replace 'x' with a number value to determine the damage threshold that
 
  will be blocked by this barrier type.
 
- Replace 'formula' with a calculation that determines how much damage will
 
  be the barrier's threshold.
 
  - 'user' will refer to the current attacking user. If none is present,
 
    then refer to the target.
 
  - 'target' will be the battler receiving the damage.
 
 
 
  Examples:
 
 
 
  <All Barrier Cancel Damage Over: 1000>
 
  <Physical Barrier Cancel Damage Over: 500>
 
  <Magical Barrier Cancel Damage Over: user.def + target.mdf>
 
  <Element Fire Cancel Damage Over: Math.randomInt(300)>
 
  <Element Wind, Ice Barrier Cancel Damage Over: $gameVariables.value(42)>
 
 
 
---
 
 
 
<hitType Barrier Cancel Damage Under: x>
 
<hitType Barrier Cancel Damage Under: formula>
 
 
 
- Used for: State Notetags
 
- Turns this state into a Cancellation Barrier that blocks all damage equal
 
  to or under a specific amount determined by a formula.
 
- Replace 'hitType' with any of the following:
 
  - 'All' for all damage types.
 
  - 'Certain Hit' for certain hit damage only.
 
  - 'Physical' for physical damage only.
 
  - 'Magical' for magical damage only.
 
  - 'Element id' for elemental damage that matches the element's 'id'.
 
  - 'Element name' for elemental damage that matches the element's name.
 
  - Insert multiple element id's or names with commas separating them.
 
- Replace 'x' with a number value to determine the damage threshold that
 
  will be blocked by this barrier type.
 
- Replace 'formula' with a calculation that determines how much damage will
 
  be the barrier's threshold.
 
  - 'user' will refer to the current attacking user. If none is present,
 
    then refer to the target.
 
  - 'target' will be the battler receiving the damage.
 
 
 
  Examples:
 
 
 
  <All Barrier Cancel Damage Under: 100>
 
  <Physical Barrier Cancel Damage Under: 200>
 
  <Magical Barrier Cancel Damage Under: user.def + target.mdf>
 
  <Element Fire Barrier Cancel Damage Under: Math.randomInt(500)>
 
  <Element Wind, Ice Barrier Cancel Damage Under: $gameVariables.value(42)>
 
 
 
---
 
 
 
=== Nullification Barrier-Related Notetags ===
 
 
 
---
 
 
 
<hitType Nullify Barrier: x>
 
<hitType Nullify Barrier: formula>
 
 
 
- Used for: State Notetags
 
- Nullification Barriers block all damage at the cost of one charge.
 
- If a Nullification Barrier runs out of charges, it will automatically
 
  remove itself from the battler.
 
- Replace 'hitType' with any of the following:
 
  - 'All' for all damage types.
 
  - 'Certain Hit' for certain hit damage only.
 
  - 'Physical' for physical damage only.
 
  - 'Magical' for magical damage only.
 
  - 'Element id' for elemental damage that matches the element's 'id'.
 
  - 'Element name' for elemental damage that matches the element's name.
 
  - Insert multiple element id's or names with commas separating them.
 
- Replace 'x' with a number value to determine the number of charges the
 
  Nullification Barrier will have.
 
- Replace 'formula' with a calculation that determines how much damage will
 
  be the barrier's charges.
 
  - 'user' will refer to the current attacking user. If none is present,
 
    then refer to the target.
 
  - 'target' will be the battler receiving the damage.
 
- Note! This effect is incompatible with the Absorption Barrier effect and
 
  both cannot be placed on the same state. They can, however, be placed on
 
  two separate states.
 
 
 
  Examples:
 
 
 
  <All Nullify Barrier: 3>
 
  <Physical Nullify Barrier: 5>
 
  <Magical Nullify Barrier: user.level + target.level>
 
  <Element Fire Nullify Barrier: Math.randomInt(10)>
 
  <Element Wind, Ice Nullify Barrier: $gameVariables.value(42)>
 
 
 
---
 
 
 
<Nullify Barrier Degen: x>
 
<Nullify Barrier Degen: formula>
 
 
 
- Used for: State Notetags
 
- This will cause the charges for the Nullification Barrier to decay by a
 
  certain amount each regeneration phase.
 
- Replace 'x' with a static number for it to decay by.
 
- Replace 'formula' with a calculation that determines how many charges it
 
  will decay by.
 
  - 'target' will be the battler the Nullification Barrier is on.
 
 
 
  Examples:
 
 
 
  <Nullify Barrier Degen: 1>
 
  <Nullify Barrier Degen: Math.randomInt(3)>
 
 
 
---
 
 
 
<Nullify Barrier Regen: x>
 
<Nullify Barrier Regen: formula>
 
 
 
- Used for: State Notetags
 
- This will cause the charges for the Nullification Barrier to raise by a
 
  certain amount each regeneration phase.
 
- Replace 'x' with a static number for it to regen by.
 
- Replace 'formula' with a calculation that determines how many charges it
 
  will regen by.
 
  - 'target' will be the battler the Nullification Barrier is on.
 
 
 
  Examples:
 
 
 
  <Nullify Barrier Regen: 1>
 
  <Nullify Barrier Regen: Math.randomInt(3)>
 
 
 
---
 
 
 
=== Reduction Barrier-Related Notetags ===
 
 
 
---
 
 
 
<hitType Reduce Barrier: x%>
 
<hitType Reduce Barrier: formula>
 
 
 
- Used for: State Notetags
 
- Turns the state into a Reduction Barrier. Reduction Barriers reduce
 
  incoming damage by a percentile.
 
- If a battler has multiple Reduction Barriers, they stack additively.
 
- Replace 'hitType' with any of the following:
 
  - 'All' for all damage types.
 
  - 'Certain Hit' for certain hit damage only.
 
  - 'Physical' for physical damage only.
 
  - 'Magical' for magical damage only.
 
  - 'Element id' for elemental damage that matches the element's 'id'.
 
  - 'Element name' for elemental damage that matches the element's name.
 
  - Insert multiple element id's or names with commas separating them.
 
- Replace 'x' with a percentile number indicating the amount of damage it
 
  will reduce by.
 
- Replace 'formula' with a calculation that determines the percentage of
 
  damage that will be reduced by.
 
  - 'user' will refer to the current attacking user. If none is present,
 
    then refer to the target.
 
  - 'target' will be the battler receiving the damage.
 
 
 
  Examples:
 
 
 
  <All Reduce Barrier: 20%>
 
  <Physical Reduce Barrier: 40%>
 
  <Magical Reduce Barrier: user.hpRate()>
 
  <Element Fire Reduce Barrier: Math.random() * 0.50>
 
  <Element Wind, Ice Reduce Barrier: $gameVariables.value(42) * 0.01>
 
 
 
---
 
 
 
=== Absorption Barrier-Related Notetags ===
 
 
 
---
 
 
 
<hitType Absorb Barrier: x>
 
<hitType Absorb Barrier: formula>
 
 
 
- Used for: State Notetags
 
- Turns the state into an Absorption Barrier which contains a visible
 
  barrier that will block damage 1 for 1.
 
- If the Absorption Barrier's value is reduced to 0, it will automatically
 
  remove itself.
 
- Replace 'hitType' with any of the following:
 
  - 'All' for all damage types.
 
  - 'Certain Hit' for certain hit damage only.
 
  - 'Physical' for physical damage only.
 
  - 'Magical' for magical damage only.
 
  - 'Element id' for elemental damage that matches the element's 'id'.
 
  - 'Element name' for elemental damage that matches the element's name.
 
  - Insert multiple element id's or names with commas separating them.
 
- Replace 'x' with a number value to determine the barrier value the
 
  Absorption Barrier state has upon being applied.
 
- Replace 'formula' with a calculation that determines what barrier value
 
  Absorption Barrier state has upon being applied.
 
  - 'user' will refer to the current attacking user. If none is present,
 
    then refer to the target.
 
  - 'target' will be the battler receiving the damage.
 
- Note! This effect is incompatible with the Nullification Barrier effect
 
  and both cannot be placed on the same state. They can, however, be placed
 
  on two separate states.
 
 
 
  Examples:
 
 
 
  <All Absorb Barrier: 300>
 
  <Physical Absorb Barrier: 500>
 
  <Magical Absorb Barrier: user.def + target.mdf>
 
  <Element Fire Absorb Barrier: Math.randomInt(1000)>
 
  <Element Wind, Ice Absorb Barrier: $gameVariables.value(42)>
 
 
 
---
 
 
 
<Absorb Barrier Degen: x>
 
<Absorb Barrier Degen: formula>
 
 
 
- Used for: State Notetags
 
- This will cause the barrier for the Absorption Barrier to decay by a
 
  certain amount each regeneration phase.
 
- Replace 'x' with a static number for it to decay by.
 
- Replace 'formula' with a calculation that determines how much barrier it
 
  will decay by.
 
  - 'target' will be the battler the Absorption Barrier is on.
 
 
 
  Examples:
 
 
 
  <Absorb Barrier Degen: 1>
 
  <Absorb Barrier Degen: Math.randomInt(3)>
 
 
 
---
 
 
 
<Absorb Barrier Regen: x>
 
<Absorb Barrier Regen: formula>
 
 
 
- Used for: State Notetags
 
- This will cause the barrier for the Absorption Barrier to regen by a
 
  certain amount each regeneration phase.
 
- Replace 'x' with a static number for it to regen by.
 
- Replace 'formula' with a calculation that determines how much barrier it
 
  will regen by.
 
  - 'target' will be the battler the Absorption Barrier is on.
 
 
 
  Examples:
 
 
 
  <Absorb Barrier Regen: 1>
 
  <Absorb Barrier Regen: Math.randomInt(3)>
 
 
 
---
 
 
 
=== MP Barrier-Related Notetags ===
 
 
 
---
 
 
 
<hitType MP Barrier: x%>
 
<hitType MP Barrier: formula>
 
 
 
- Used for: State Notetags
 
- Turns this state into an MP-Dispersion Barrier state where a portion of
 
  the incoming damage can be dispersed into the affected battler's MP pool.
 
- Damage will be dispersed 1 for 1 with MP. If there is insufficient MP,
 
  the damage dispersion percentile will be reduced to account for MP.
 
- If MP reaches 0, the state will automatically remove itself.
 
- Replace 'hitType' with any of the following:
 
  - 'All' for all damage types.
 
  - 'Certain Hit' for certain hit damage only.
 
  - 'Physical' for physical damage only.
 
  - 'Magical' for magical damage only.
 
  - 'Element id' for elemental damage that matches the element's 'id'.
 
  - 'Element name' for elemental damage that matches the element's name.
 
  - Insert multiple element id's or names with commas separating them.
 
- Replace 'x' with a percentile number indicating the amount of damage that
 
  is dispersed into the battler's MP pool.
 
- Replace 'formula' with a calculation that determines the percentage of
 
  damage that will be dispersed into the MP pool.
 
  - 'user' will refer to the current attacking user. If none is present,
 
    then refer to the target.
 
  - 'target' will be the battler receiving the damage.
 
 
 
  Examples:
 
 
 
  <All MP Barrier: 20%>
 
  <Physical MP Barrier: 40%>
 
  <Magical MP Barrier: user.hpRate()>
 
  <Element Fire MP Barrier: Math.random() * 0.50>
 
  <Element Wind, Ice MP Barrier: $gameVariables.value(42) * 0.01>
 
 
 
---
 
 
 
=== TP Barrier-Related Notetags ===
 
 
 
---
 
 
 
<hitType TP Barrier: x%>
 
<hitType TP Barrier: formula>
 
 
 
- Used for: State Notetags
 
- Turns this state into a TP-Dispersion Barrier state where a portion of
 
  the incoming damage can be dispersed into the affected battler's TP pool.
 
- Damage will be dispersed 1 for 1 with TP. If there is insufficient TP,
 
  the damage dispersion percentile will be reduced to account for TP.
 
- If TP reaches 0, the state will automatically remove itself.
 
- TP can be generated upon being hit. This gained TP does not apply to the
 
  TP-Dispersion Barrier as it is generated after being hit.
 
- Replace 'hitType' with any of the following:
 
  - 'All' for all damage types.
 
  - 'Certain Hit' for certain hit damage only.
 
  - 'Physical' for physical damage only.
 
  - 'Magical' for magical damage only.
 
  - 'Element id' for elemental damage that matches the element's 'id'.
 
  - 'Element name' for elemental damage that matches the element's name.
 
  - Insert multiple element id's or names with commas separating them.
 
- Replace 'x' with a percentile number indicating the amount of damage that
 
  is dispersed into the battler's TP pool.
 
- Replace 'formula' with a calculation that determines the percentage of
 
  damage that will be dispersed into the TP pool.
 
  - 'user' will refer to the current attacking user. If none is present,
 
    then refer to the target.
 
  - 'target' will be the battler receiving the damage.
 
 
 
  Examples:
 
 
 
  <All TP Barrier: 20%>
 
  <Physical TP Barrier: 40%>
 
  <Magical TP Barrier: user.hpRate()>
 
  <Element Fire TP Barrier: Math.random() * 0.50>
 
  <Element Wind, Ice TP Barrier: $gameVariables.value(42) * 0.01>
 
 
 
---
 
 
 
=== Barrier Bypass-Related Notetags ===
 
 
 
---
 
 
 
<Ignore Barriers>
 
 
 
- Used for: Skill, Item Notetags
 
- Causes this skill or item to completely ignore any barriers on the target.
 
 
 
---
 
 
 
<Ignore Barriers as User>
 
 
 
- Used for: Actor, Class, Weapon, Armor, Enemy, State Notetags
 
- If an attacker with this notetag on any of its trait objects attacks a
 
  target with barriers, ignore the target's barriers.
 
 
 
---
 
 
 
<Ignore Barriers as Target>
 
 
 
- Used for: Actor, Class, Weapon, Armor, Enemy, State Notetags
 
- If a target battler has this notetag on any of its trait objects receives
 
  an attack, any barriers on the target battler will be ignored.
 
 
 
---
 
 
 
=== Break State-Related Notetags ===
 
 
 
---
 
 
 
<hitType Breaks State>
 
 
 
- Used for: State Notetags
 
- If an attack hits a battler with this state and state's notetag, as long
 
  as the damage type matches, automatically remove the state.
 
- Replace 'hitType' with any of the following:
 
  - 'All' for all damage types.
 
  - 'Certain Hit' for certain hit damage only.
 
  - 'Physical' for physical damage only.
 
  - 'Magical' for magical damage only.
 
  - 'Element id' for elemental damage that matches the element's 'id'.
 
  - 'Element name' for elemental damage that matches the element's name.
 
  - Insert multiple element id's or names with commas separating them.
 
- This can be used for states that aren't barriers.
 
- This occurs before most of the pre-damage phase.
 
 
 
---
 
  
 
== Plugin Parameters ==
 
== Plugin Parameters ==

Revision as of 02:48, 8 October 2020

Welcome to the wiki! This is where you can find resources from Yanfly.moe, Ækashics.moe,
VisuStella, Caz Wolf, Fallen Angel Olivia, Atelier Irina, and other affiliated content creators.



Download

System

This is a plugin created for RPG Maker MZ.

Click here for help on how to install plugins and an explanation on the Tier Hierarchy System.


UpdatePlugins.png

Click here to learn how to update plugins.


Troubleshooting.jpg

Click here for how to troubleshoot plugins if you get an error.



VisuMZ Polish.png VisuMZ Polish.png
VisuMZ Polish.png VisuMZ Polish.png

Required Plugins

The following plugins are required in order to use this plugin.

Place the following plugins above this plugin located in the Plugin Manager.


VisuStella MZ

This plugin is a part of the VisuStella MZ Plugin Library.


Support VisuStella

Click here if you want to help support VisuStella on Patreon.


Introduction

RPG Maker MZ does not have many options for damage mitigation. There are only raw defensive parameters, elemental rates, and direct damage modifiers. This plugin introduces six categories of Anti-Damage Barriers made in the form of states to allow you to create more ways for the player's party to defend themselves with.

Features include all (but not limited to) the following:

  • Cancellation Barriers that can block out damage entirely if the damage is above or below a certain threshold.
  • Nullification Barriers that block out damage entirely, but have a limited amount of times they can block damage for.
  • Reduction Barriers that can stack additively with one another to provide percentile reduction values.
  • Absorption Barriers which contain an exact number of points of damage that they can soak up.
  • MP Barriers that disperses a percentage of the damage towards a battler's MP pool as long as they have enough MP.
  • TP Barriers that function similarly to MP Barriers except they disperse the damage dealt instead to the TP pool.
  • The ability to set barriers to block specific types of damage ranging from all, certain hits, physical hits, magical hits, and even elemental hits.
  • Skill and trait effects that can bypass barriers.
  • Make certain barrier types fragile and will break upon receiving specific types of damage (elemental, physical, magical, etc).
  • Nullification and Absorption Barriers can regenerate themselves and/or decay over time.
  • Playing specific animations whenever barriers tank a hit or break.

Requirements

This plugin is made for RPG Maker MZ. This will not work in other iterations of RPG Maker.

Required Plugin List

This plugin requires the above listed plugins to be installed inside your game's Plugin Manager list in order to work. You cannot start your game with this plugin enabled without the listed plugins.


Tier 3

This plugin is a Tier 3 plugin. Place it under other plugins of lower tier value on your Plugin Manager list (ie: 0, 1, 2, 3, 4, 5).

This is to ensure that your plugins will have the best compatibility with the rest of the VisuStella MZ Plugin library.


How Barriers Work

When an action successfully hits an actor, damage is calculated. Barriers do not block damage that comes directly from event commands, plugin commands, script calls, percentile HP action effects, or damage over time states.

Instead, they must come directly from a damage formula source. Before that damage is applied to a battler, the following series of events happen:

---

HP Damage Check

Check to see if the action is dealing HP damage. This does not apply for MP or TP damage. If no HP damage is being dealt, ignore the rest.

---

State Breakers

Some states can have the unique trait of dispersing upon receiving specific kinds of damage using the notetags from this plugin. These range from breaking under any kind of damage, certain hit damage, physical damage, magical magical, and elemental damage. If the damage to be dealt is affiliated with any of the listed and the state is vulnerable to that kind of damage, immediately destroy the state before the damage calculations are made. This will affect any of the states remaining.

---

Barrier Ignore

Check if the action itself (skill or item), if the attacking battler, or if the defending battler has any notetags that would cause them to ignore any barrier effects. If there are, ignore the rest.

---

Cancellation Barriers

Check for any Cancellation Barriers. Cancellation Barriers come in two different types: Over and Under. The value listed for a Cancel Over Barrier will cancel damage equal to or over a specific amount. The reverse is true for a Cancel Under Barrier as it will cancel damage equal to or under a specific amount. If damage is blocked here, it is blocked entirely and the rest of the steps do not need any calculations made.

---

Nullification Barriers

Next, check for any Nullification Barriers. These Barriers have a charge to them displayed separate from their turn count. Any matching damage dealt while a Nullification Barrier is active will be reduced entirely to 0 at the cost of one of the Nullification Barrier's charges. If the Nullification Barrier's charges reach 0, that state is automatically removed. If damage is blocked here, it is blocked entirely and the rest of the steps do not need any calculations made.

If a battler has multiple Nullification Barriers, then charges will be removed from Nullification Barriers with the least amount of turns remaining to the ones with the most amount of turns remaining (or indefinite). If two Nullification Barriers have an equal amount of turns remaining, then the charge will be deducted from the one with the higher priority. If both priorities are the same, then the charge will be deducted will be the one with a lower database ID.

Renewing a Nullification Barrier's state will recalculate its charge count.

---

Battle Core's Pre-Damage Step

Here, the Battle Core's Pre-Damage Step takes effect. This means any of the <JS Pre-Damage> and related notetags will take effect and any damage modifications made from them will be carried forward.

---

Reduction Barriers

After applying the Battle Core's Pre-Damage Step, the Reduction Barriers will have their turn. Reduction Barriers can stack with each other and they stack additively. This means if you have a Reduction Barrier state worth 10% and another one that is worth 20% on the same battler, then a total of 30% damage will be reduced. If damage reaches zero, skip the remaining Barrier calculations.

---

Absorption Barriers

Absorption Barrier states have a set value that they can absorb. This value can be a static number or it can be calculated by a formula. The barrier value an Absorption Barrier has will trade damage 1 for 1. Once the Absorption Barrier reaches 0, it will automatically remove itself. If damage reaches zero, skip the remaining Barrier calculations.

If there is 500 incoming damage and an Absorption Barrier of 100 is present, then 400 damage will go through and the Absorption Barrier is reduced to 0, thus removing itself.

If there is 100 incoming damage and an Absorption Barrier of 500 is present, then 0 damage will go through and the Absorption Barrier is reduced to 400. The Absorption Barrier will remain.

If a battler has multiple Absorption Barriers, then barriers will be removed from Absorption Barriers with the least amount of turns remaining to the ones with the most amount of turns remaining (or indefinite). If two Absorption Barriers have an equal amount of turns remaining, then the barriers deducted from the one with the higher priority. If both priorities are the same, then the barrier deducted from will be the one with a lower database ID.

Renewing an Absorption Barrier's state will recalculate its barrier count.

---

MP-Dispersion Barriers

If any MP-Dispersion Barriers are present, then it's time for them to take effect. MP Barriers can block a percentage of the damage using MP, trading off 1 for 1. If an MP Barrier has a value of 20%, then 20% of the damage will be redirected to MP (or less if there's insufficient MP). If a battler runs out of MP after this step, the MP-Dispersion Barrier will automatically remove itself. If damage reaches zero, skip the remaining Barrier calculations.

---

TP-Dispersion Barriers

If any TP-Dispersion Barriers are present, then it's time for them to take effect. TP Barriers can block a percentage of the damage using TP, trading off 1 for 1. If a TP Barrier has a value of 20%, then 20% of the damage will be redirected to TP (or less if there's insufficient TP). If a battler runs out of TP after this step, the TP-Dispersion Barrier will automatically remove itself.

Some battlers might gain TP upon being hit. This gained TP does not apply to the TP-Dispersion Barrier as it is generated after being hit.

---

Final Damage

After a long, long journey, any remaining damage will be dealt to the target battler (unless there's other plugins affecting damage further).

---

Notetags

RPG Maker MZ's editor is unable to allow for custom traits/properties that a game dev may wish to associate with a database object, event, map, etc. Notetags are used to work around such limitations by allowing the game dev to tag certain traits/properties using specific Notetags declared by the related plugin.

Here is a list of Notetag(s) that you may use.


The following are notetags that have been added through this plugin. These notetags will not work with your game if this plugin is OFF or not present.

---

Cancellation Barrier-Related Notetags

AntiDmgBarrier Cancel.gif

---

<hitType Barrier Cancel Damage Over: x>
<hitType Barrier Cancel Damage Over: formula>

- Used for: State Notetags
- Turns this state into a Cancellation Barrier that blocks all damage equal
  to or over a specific amount determined by a formula.
- Replace 'hitType' with any of the following:
  - 'All' for all damage types.
  - 'Certain Hit' for certain hit damage only.
  - 'Physical' for physical damage only.
  - 'Magical' for magical damage only.
  - 'Element id' for elemental damage that matches the element's 'id'.
  - 'Element name' for elemental damage that matches the element's name.
  - Insert multiple element id's or names with commas separating them.
- Replace 'x' with a number value to determine the damage threshold that
  will be blocked by this barrier type.
- Replace 'formula' with a calculation that determines how much damage will
  be the barrier's threshold.
  - 'user' will refer to the current attacking user. If none is present,
    then refer to the target.
  - 'target' will be the battler receiving the damage.

  Examples:

  <All Barrier Cancel Damage Over: 1000>
  <Physical Barrier Cancel Damage Over: 500>
  <Magical Barrier Cancel Damage Over: user.def + target.mdf>
  <Element Fire Cancel Damage Over: Math.randomInt(300)>
  <Element Wind, Ice Barrier Cancel Damage Over: $gameVariables.value(42)>

---

<hitType Barrier Cancel Damage Under: x>
<hitType Barrier Cancel Damage Under: formula>

- Used for: State Notetags
- Turns this state into a Cancellation Barrier that blocks all damage equal
  to or under a specific amount determined by a formula.
- Replace 'hitType' with any of the following:
  - 'All' for all damage types.
  - 'Certain Hit' for certain hit damage only.
  - 'Physical' for physical damage only.
  - 'Magical' for magical damage only.
  - 'Element id' for elemental damage that matches the element's 'id'.
  - 'Element name' for elemental damage that matches the element's name.
  - Insert multiple element id's or names with commas separating them.
- Replace 'x' with a number value to determine the damage threshold that
  will be blocked by this barrier type.
- Replace 'formula' with a calculation that determines how much damage will
  be the barrier's threshold.
  - 'user' will refer to the current attacking user. If none is present,
    then refer to the target.
  - 'target' will be the battler receiving the damage.

  Examples:

  <All Barrier Cancel Damage Under: 100>
  <Physical Barrier Cancel Damage Under: 200>
  <Magical Barrier Cancel Damage Under: user.def + target.mdf>
  <Element Fire Barrier Cancel Damage Under: Math.randomInt(500)>
  <Element Wind, Ice Barrier Cancel Damage Under: $gameVariables.value(42)>

---

Nullification Barrier-Related Notetags

AntiDmgBarrier Null.gif

---

<hitType Nullify Barrier: x>
<hitType Nullify Barrier: formula>

- Used for: State Notetags
- Nullification Barriers block all damage at the cost of one charge.
- If a Nullification Barrier runs out of charges, it will automatically
  remove itself from the battler.
- Replace 'hitType' with any of the following:
  - 'All' for all damage types.
  - 'Certain Hit' for certain hit damage only.
  - 'Physical' for physical damage only.
  - 'Magical' for magical damage only.
  - 'Element id' for elemental damage that matches the element's 'id'.
  - 'Element name' for elemental damage that matches the element's name.
  - Insert multiple element id's or names with commas separating them.
- Replace 'x' with a number value to determine the number of charges the
  Nullification Barrier will have.
- Replace 'formula' with a calculation that determines how much damage will
  be the barrier's charges.
  - 'user' will refer to the current attacking user. If none is present,
    then refer to the target.
  - 'target' will be the battler receiving the damage.
- Note! This effect is incompatible with the Absorption Barrier effect and
  both cannot be placed on the same state. They can, however, be placed on
  two separate states.

  Examples:

  <All Nullify Barrier: 3>
  <Physical Nullify Barrier: 5>
  <Magical Nullify Barrier: user.level + target.level>
  <Element Fire Nullify Barrier: Math.randomInt(10)>
  <Element Wind, Ice Nullify Barrier: $gameVariables.value(42)>

---

<Nullify Barrier Degen: x>
<Nullify Barrier Degen: formula>

- Used for: State Notetags
- This will cause the charges for the Nullification Barrier to decay by a
  certain amount each regeneration phase.
- Replace 'x' with a static number for it to decay by.
- Replace 'formula' with a calculation that determines how many charges it
  will decay by.
  - 'target' will be the battler the Nullification Barrier is on.

  Examples:

  <Nullify Barrier Degen: 1>
  <Nullify Barrier Degen: Math.randomInt(3)>

---

<Nullify Barrier Regen: x>
<Nullify Barrier Regen: formula>

- Used for: State Notetags
- This will cause the charges for the Nullification Barrier to raise by a
  certain amount each regeneration phase.
- Replace 'x' with a static number for it to regen by.
- Replace 'formula' with a calculation that determines how many charges it
  will regen by.
  - 'target' will be the battler the Nullification Barrier is on.

  Examples:

  <Nullify Barrier Regen: 1>
  <Nullify Barrier Regen: Math.randomInt(3)>

---

Reduction Barrier-Related Notetags

AntiDmgBarrier Reduction.gif

---

<hitType Reduce Barrier: x%>
<hitType Reduce Barrier: formula>

- Used for: State Notetags
- Turns the state into a Reduction Barrier. Reduction Barriers reduce
  incoming damage by a percentile.
- If a battler has multiple Reduction Barriers, they stack additively.
- Replace 'hitType' with any of the following:
  - 'All' for all damage types.
  - 'Certain Hit' for certain hit damage only.
  - 'Physical' for physical damage only.
  - 'Magical' for magical damage only.
  - 'Element id' for elemental damage that matches the element's 'id'.
  - 'Element name' for elemental damage that matches the element's name.
  - Insert multiple element id's or names with commas separating them.
- Replace 'x' with a percentile number indicating the amount of damage it
  will reduce by.
- Replace 'formula' with a calculation that determines the percentage of
  damage that will be reduced by.
  - 'user' will refer to the current attacking user. If none is present,
    then refer to the target.
  - 'target' will be the battler receiving the damage.

  Examples:

  <All Reduce Barrier: 20%>
  <Physical Reduce Barrier: 40%>
  <Magical Reduce Barrier: user.hpRate()>
  <Element Fire Reduce Barrier: Math.random() * 0.50>
  <Element Wind, Ice Reduce Barrier: $gameVariables.value(42) * 0.01>

---

Absorption Barrier-Related Notetags

AntiDmgBarrier Absorb.gif

---

<hitType Absorb Barrier: x>
<hitType Absorb Barrier: formula>

- Used for: State Notetags
- Turns the state into an Absorption Barrier which contains a visible
  barrier that will block damage 1 for 1.
- If the Absorption Barrier's value is reduced to 0, it will automatically
  remove itself.
- Replace 'hitType' with any of the following:
  - 'All' for all damage types.
  - 'Certain Hit' for certain hit damage only.
  - 'Physical' for physical damage only.
  - 'Magical' for magical damage only.
  - 'Element id' for elemental damage that matches the element's 'id'.
  - 'Element name' for elemental damage that matches the element's name.
  - Insert multiple element id's or names with commas separating them.
- Replace 'x' with a number value to determine the barrier value the
  Absorption Barrier state has upon being applied.
- Replace 'formula' with a calculation that determines what barrier value
  Absorption Barrier state has upon being applied.
  - 'user' will refer to the current attacking user. If none is present,
    then refer to the target.
  - 'target' will be the battler receiving the damage.
- Note! This effect is incompatible with the Nullification Barrier effect
  and both cannot be placed on the same state. They can, however, be placed
  on two separate states.

  Examples:

  <All Absorb Barrier: 300>
  <Physical Absorb Barrier: 500>
  <Magical Absorb Barrier: user.def + target.mdf>
  <Element Fire Absorb Barrier: Math.randomInt(1000)>
  <Element Wind, Ice Absorb Barrier: $gameVariables.value(42)>

---

<Absorb Barrier Degen: x>
<Absorb Barrier Degen: formula>

- Used for: State Notetags
- This will cause the barrier for the Absorption Barrier to decay by a
  certain amount each regeneration phase.
- Replace 'x' with a static number for it to decay by.
- Replace 'formula' with a calculation that determines how much barrier it
  will decay by.
  - 'target' will be the battler the Absorption Barrier is on.

  Examples:

  <Absorb Barrier Degen: 1>
  <Absorb Barrier Degen: Math.randomInt(3)>

---

<Absorb Barrier Regen: x>
<Absorb Barrier Regen: formula>

- Used for: State Notetags
- This will cause the barrier for the Absorption Barrier to regen by a
  certain amount each regeneration phase.
- Replace 'x' with a static number for it to regen by.
- Replace 'formula' with a calculation that determines how much barrier it
  will regen by.
  - 'target' will be the battler the Absorption Barrier is on.

  Examples:

  <Absorb Barrier Regen: 1>
  <Absorb Barrier Regen: Math.randomInt(3)>

---

MP Barrier-Related Notetags

AntiDmgBarrier DivertMP.gif

---

<hitType MP Barrier: x%>
<hitType MP Barrier: formula>

- Used for: State Notetags
- Turns this state into an MP-Dispersion Barrier state where a portion of
  the incoming damage can be dispersed into the affected battler's MP pool.
- Damage will be dispersed 1 for 1 with MP. If there is insufficient MP,
  the damage dispersion percentile will be reduced to account for MP.
- If MP reaches 0, the state will automatically remove itself.
- Replace 'hitType' with any of the following:
  - 'All' for all damage types.
  - 'Certain Hit' for certain hit damage only.
  - 'Physical' for physical damage only.
  - 'Magical' for magical damage only.
  - 'Element id' for elemental damage that matches the element's 'id'.
  - 'Element name' for elemental damage that matches the element's name.
  - Insert multiple element id's or names with commas separating them.
- Replace 'x' with a percentile number indicating the amount of damage that
  is dispersed into the battler's MP pool.
- Replace 'formula' with a calculation that determines the percentage of
  damage that will be dispersed into the MP pool.
  - 'user' will refer to the current attacking user. If none is present,
    then refer to the target.
  - 'target' will be the battler receiving the damage.

  Examples:

  <All MP Barrier: 20%>
  <Physical MP Barrier: 40%>
  <Magical MP Barrier: user.hpRate()>
  <Element Fire MP Barrier: Math.random() * 0.50>
  <Element Wind, Ice MP Barrier: $gameVariables.value(42) * 0.01>

---

TP Barrier-Related Notetags

AntiDmgBarrier DivertTP.gif

---

<hitType TP Barrier: x%>
<hitType TP Barrier: formula>

- Used for: State Notetags
- Turns this state into a TP-Dispersion Barrier state where a portion of
  the incoming damage can be dispersed into the affected battler's TP pool.
- Damage will be dispersed 1 for 1 with TP. If there is insufficient TP,
  the damage dispersion percentile will be reduced to account for TP.
- If TP reaches 0, the state will automatically remove itself.
- TP can be generated upon being hit. This gained TP does not apply to the
  TP-Dispersion Barrier as it is generated after being hit.
- Replace 'hitType' with any of the following:
  - 'All' for all damage types.
  - 'Certain Hit' for certain hit damage only.
  - 'Physical' for physical damage only.
  - 'Magical' for magical damage only.
  - 'Element id' for elemental damage that matches the element's 'id'.
  - 'Element name' for elemental damage that matches the element's name.
  - Insert multiple element id's or names with commas separating them.
- Replace 'x' with a percentile number indicating the amount of damage that
  is dispersed into the battler's TP pool.
- Replace 'formula' with a calculation that determines the percentage of
  damage that will be dispersed into the TP pool.
  - 'user' will refer to the current attacking user. If none is present,
    then refer to the target.
  - 'target' will be the battler receiving the damage.

  Examples:

  <All TP Barrier: 20%>
  <Physical TP Barrier: 40%>
  <Magical TP Barrier: user.hpRate()>
  <Element Fire TP Barrier: Math.random() * 0.50>
  <Element Wind, Ice TP Barrier: $gameVariables.value(42) * 0.01>

---

Barrier Bypass-Related Notetags

---

<Ignore Barriers>

- Used for: Skill, Item Notetags
- Causes this skill or item to completely ignore any barriers on the target.

---

<Ignore Barriers as User>

- Used for: Actor, Class, Weapon, Armor, Enemy, State Notetags
- If an attacker with this notetag on any of its trait objects attacks a
  target with barriers, ignore the target's barriers.

---

<Ignore Barriers as Target>

- Used for: Actor, Class, Weapon, Armor, Enemy, State Notetags
- If a target battler has this notetag on any of its trait objects receives
  an attack, any barriers on the target battler will be ignored.

---

=== Break State-Related Notetags ===

---

<hitType Breaks State>

- Used for: State Notetags
- If an attack hits a battler with this state and state's notetag, as long
  as the damage type matches, automatically remove the state.
- Replace 'hitType' with any of the following:
  - 'All' for all damage types.
  - 'Certain Hit' for certain hit damage only.
  - 'Physical' for physical damage only.
  - 'Magical' for magical damage only.
  - 'Element id' for elemental damage that matches the element's 'id'.
  - 'Element name' for elemental damage that matches the element's name.
  - Insert multiple element id's or names with commas separating them.
- This can be used for states that aren't barriers.
- This occurs before most of the pre-damage phase.

---

Plugin Parameters

Absorption Barriers

Settings for the Absorption Barrier state type.

---

Intact Animation

 Animation ID:
 - Play this animation if the barrier is still intact.
 Mirror Animation:
 - Mirror the effect animation?
 Mute Animation:
 - Mute the effect animation?

---

Break Animation

 Animation ID:
 - Play this animation if the barrier has broken.
 Mirror Animation:
 - Mirror the effect animation?
 Mute Animation:
 - Mute the effect animation?

---

Popups

 Text:
 - Text popup stating how much barrier was lost.
 - %1 - Barrier
 Text Color:
 - Use #rrggbb for custom colors or regular numbers for text colors from
   the Window Skin.
 Flash Color:
 - Adjust the popup's flash color.
 - Format: [red, green, blue, alpha]
 Flash Duration:
 - What is the frame duration of the flash effect?

---

Cancellation Barriers

Settings for the Cancellation Barrier state type.

---

Intact Animation

 Animation ID:
 - Play this animation if the barrier is still intact.
 Mirror Animation:
 - Mirror the effect animation?
 Mute Animation:
 - Mute the effect animation?

---

Break Animation

 Animation ID:
 - Play this animation if the barrier has broken.
 Mirror Animation:
 - Mirror the effect animation?
 Mute Animation:
 - Mute the effect animation?

---

MP-Dispersion Barriers

Settings for the MP-Dispersion Barrier state type.

---

Intact Animation

 Animation ID:
 - Play this animation if the barrier is still intact.
 Mirror Animation:
 - Mirror the effect animation?
 Mute Animation:
 - Mute the effect animation?

---

Break Animation

 Animation ID:
 - Play this animation if the barrier has broken.
 Mirror Animation:
 - Mirror the effect animation?
 Mute Animation:
 - Mute the effect animation?

---

Nullification Barriers

Settings for the Nullificaton Barrier state type.

---

Intact Animation

 Animation ID:
 - Play this animation if the barrier is still intact.
 Mirror Animation:
 - Mirror the effect animation?
 Mute Animation:
 - Mute the effect animation?

---

Break Animation

 Animation ID:
 - Play this animation if the barrier has broken.
 Mirror Animation:
 - Mirror the effect animation?
 Mute Animation:
 - Mute the effect animation?

---

Reduction Barriers

Settings for the Reduction Barrier state type.

---

Intact Animation

 Animation ID:
 - Play this animation if the barrier is still intact.
 Mirror Animation:
 - Mirror the effect animation?
 Mute Animation:
 - Mute the effect animation?

---

Break Animation

 Animation ID:
 - Play this animation if the barrier has broken.
 Mirror Animation:
 - Mirror the effect animation?
 Mute Animation:
 - Mute the effect animation?

---

TP-Dispersion Barriers

Settings for the TP-Dispersion Barrier state type.

---

Intact Animation

 Animation ID:
 - Play this animation if the barrier is still intact.
 Mirror Animation:
 - Mirror the effect animation?
 Mute Animation:
 - Mute the effect animation?

---

Break Animation

 Animation ID:
 - Play this animation if the barrier has broken.
 Mirror Animation:
 - Mirror the effect animation?
 Mute Animation:
 - Mute the effect animation?

---

Popups

 Text:
 - Text popup stating how much TP was lost.
 - %1 - TP Lost, %2 - TP Text
 Text Color:
 - Use #rrggbb for custom colors or regular numbers for text colors from
   the Window Skin.
 Flash Color:
 - Adjust the popup's flash color.
 - Format: [red, green, blue, alpha]
 Flash Duration:
 - What is the frame duration of the flash effect?

---


Terms of Use

1. These plugins may be used in free or commercial games provided that they have been acquired through legitimate means at VisuStella.com and/or any other official approved VisuStella sources. Exceptions and special circumstances that may prohibit usage will be listed on VisuStella.com.

2. All of the listed coders found in the Credits section of this plugin must be given credit in your games or credited as a collective under the name: "VisuStella".

3. You may edit the source code to suit your needs, so long as you do not claim the source code belongs to you. VisuStella also does not take responsibility for the plugin if any changes have been made to the plugin's code, nor does VisuStella take responsibility for user-provided custom code used for custom control effects including advanced JavaScript notetags and/or plugin parameters that allow custom JavaScript code.

4. You may NOT redistribute these plugins nor take code from this plugin to use as your own. These plugins and their code are only to be downloaded from VisuStella.com and other official/approved VisuStella sources. A list of official/approved sources can also be found on VisuStella.com.

5. VisuStella is not responsible for problems found in your game due to unintended usage, incompatibility problems with plugins outside of the VisuStella MZ library, plugin versions that aren't up to date, nor responsible for the proper working of compatibility patches made by any third parties. VisuStella is not responsible for errors caused by any user-provided custom code used for custom control effects including advanced JavaScript notetags and/or plugin parameters that allow JavaScript code.

6. If a compatibility patch needs to be made through a third party that is unaffiliated with VisuStella that involves using code from the VisuStella MZ library, contact must be made with a member from VisuStella and have it approved. The patch would be placed on VisuStella.com as a free download to the public. Such patches cannot be sold for monetary gain, including commissions, crowdfunding, and/or donations.

7. If this VisuStella MZ plugin is a paid product, all project team members must purchase their own individual copies of the paid product if they are to use it. Usage includes working on related game mechanics, managing related code, and/or using related Plugin Commands and features. Redistribution of the plugin and/or its code to other members of the team is NOT allowed unless they own the plugin itself as that conflicts with Article 4.

8. Any extensions and/or addendums made to this plugin's Terms of Use can be found on VisuStella.com and must be followed.

Terms of Use: Japanese


『VisuStella MZ』利用規約

1. これらのプラグインは、VisuStella.comおよび/または公式に承認されたVisuStellaのソースから合法的な手段で入手したものである限り、フリーゲームや商用ゲームに使用することができます。例外的に使用が禁止される場合については、VisuStella.comの記載をご確認ください。

2. 本プラグインの「クレジット」部分に記載されているすべてのコーダーの名前は、ゲーム内にクレジット表記を行うか、もしくは「VisuStella」という名前の下にまとめて表記する必要があります。

3. ソースコードを自分のものだと主張しない限りは、必要に応じて編集することが可能です。ただしプラグインのコードに変更が加えられた場合、VisuStellaはそのプラグインに対して一切の責任を負いません。高度なJavaScriptのノートタグやJavaScriptコードを許可するプラグインのパラメータを含む、カスタムコントロールエフェクトに使用される、ユーザー提供のカスタムコードについても、VisuStellaは一切の責任を負いません。

4. これらのプラグインやプラグイン内のコードを、「自分のもの」として再配布したり使用したりすることはできません。これらのプラグインとそのコードは、VisuStella.comおよび、その他の公式/承認済みVisuStellaソースからのみダウンロードすることができます。公式/承認済みのソースのリストは、VisuStella.comでご確認いただけます。

5. VisuStellaは、意図しない使用方法による問題、VisuStella MZライブラリ以外のプラグインとの非互換性の問題、プラグインのバージョンが最新でないことによる問題、第三者による互換性パッチが適切に動作していないことなどが原因でゲーム内で発生した問題については、一切の責任を負いません。VisuStellaは、高度なJavaScriptのノートタグやJavaScriptコードを許可するプラグインのパラメータを含む、カスタムコントロールエフェクトに使用される、ユーザー提供のカスタムコードに起因するエラーについても、一切の責任を負いません。

6. VisuStella MZライブラリのコードを使用した互換性パッチをVisuStellaとは関係のない第三者を通じて作成する必要がある場合は、まずVisuStellaのメンバーと連絡を取り、承認を得る必要があります。パッチはVisuStella.comに公開され、誰でも無料でダウンロードすることができるようになります。このようなパッチを、制作発注やクラウドファンディングの対象にしたり、寄付などの金銭的な利益を得るために販売することはできません。

7. このVisuStella MZプラグインが商用製品である場合、プロジェクトチームのすべてのメンバーは、それを使用するため、それぞれ製品を購入しなければなりません。使用方法には、関連するゲームメカニクスの作業、関連するコードの管理、および/または関連するプラグインコマンドや機能の使用、が含まれます。プラグインそのものやそのコードをチームの他のメンバーに再配布することは第4項に抵触するため、そのメンバーがプラグインそのものを所有していない限りは許可されません。

8. このプラグインの利用規約の追加項目や補足については、VisuStella.comに掲載されていますので、それを参照し従ってください。

Credits

If you are using this plugin, credit the following people in your game:

Team VisuStella

Changelog

Version 1.00: November 4, 2020

  • Finished Plugin!

End of File