YEP.70 – Absorption Barrier – RPG Maker MV

Yanfly Engine Plugins is a plugin library made for RPG Maker MV, a wonderful piece of software to help you make that role playing game of your dreams. You can find out more about RPG Maker MV here.

You can grab the plugin here:
English Dropbox
English Mirror

The Absorption Barrier is a new mechanic added for battle. Barrier Points, a new type of stat, provide a layer of protection for battlers. Any direct damage that would normally be done to HP would be dealt to the battler’s Barrier Points first, mitigating any real damage dealt to the battler. Any remaining damage is then dealt to the battler.


Introduction


The Absorption Barrier is a new mechanic added for battle. Barrier Points, a new type of stat, provide a layer of protection for battlers. Any direct  damage that would normally be done to HP would be dealt to the battler’s Barrier Points first, mitigating any real damage dealt to the battler. Any remaining damage is then dealt to the battler.

There are various mechanics to exploit via this mechanic such as unexpiring barriers, expiring barriers, barrier penetration, barrier bypassing, etc. Read about it more in the next section~


Barrier Points – Explanation


Barrier Points are a buffer placed on top of a battler’s HP. Any direct form of damage from skills or items will be dealt to the battler’s Barrier Points first before being dealt to the battler’s HP. Let’s see how the mechanics work in the following examples:

— Example 1 —-

For example, let’s assume the target has 100 Barrier Points. 150 damage is to be dealt to the target’s HP through a skill or item.

150 DMG vs 100 Barrier Points: 50 DMG goes through

As a result, the target’s Barrier Points are reduced to 0 and the target’s HP will suffer only 50 DMG.

— Example 2—

The target has 100 Barrier Points. 50 damage is to be dealt to the target’s HP through a skill or item.

50 DMG vs 100 Barrier Points: 0 DMG goes through

As a result, the target’s Barrier Points are reduced to 50 and no damage goes through to the user’s HP.


Barrier Penetration – Explanation


Some skills and items can possess a unique trait called Barrier Penetration. Barrier Penetration allows a percentile or flat amount of the damage to go through and ignore the target’s absorption barrier. The more Barrier Penetration on an action, the more of the target’s Barrier Points are ignored.

— Example —

The target has 500 Barrier Points. 100 damage is to be dealt to the target’s HP through a skill or item. The attacker has 75% Barrier Penetration.

100 DMG vs 500 Barrier Points: 75 DMG goes through

As a result, 75% of the damage will go through, meaning exactly 75 damage is dealt to the target’s HP. However, 25% of it gets absorbed by the target’s Barrier Points reducing the Barrier Points to 475 total.


Unexpiring Barriers vs Timed Barriers – Explanation


There are two types of Absorption Barriers: Unexpiring Barriers and Timed Barriers. Unexpiring Barriers do not expire during the course of battle. The Barrier Points they acquire, if left untouched, will remain that value. On the other hand, Timed Barriers will last a certain amount of turns. When the turns reach 0 during the Regeneration Phase for the user, the Barrier Points are then stripped away.

— Example —

Turn 1 – 100 Barrier Points
Turn 2 – 200 Barrier Points
Turn 3 – 300 Barrier Points

Right now, the user has 600 Barrier Points total. After the Regeneration Phase, it will become this:

Turn 1 – 200 Barrier Points
Turn 2 – 300 Barrier Points

And the user will have 500 Barrier Points total.

So, when damage is dealt, how do the Barrier Points absorb it? Damage is always dealt to the lowest turn, then the next lowest, etc. until it reaches the highest. After the highest, damage will then be dealt to Unexpiring Barrier Points. For example:

— Example —

Turn 1 – 100 Barrier Points
Turn 2 – 200 Barrier Points
Unexpiring – 300 Barrier Points

Now, let’s suppose 500 damage will be dealt. It will result in this:

Turn 1 – 0 Barrier Points
Turn 2 – 0 Barrier Points
Unexpiring – 100 Barrier Points


Notetags


Use the following notetags to alter the various mechanics of Barrier Points.

Skill and Item Notetags:

<User Barrier: +x>
<User Barrier: -x>
<Target Barrier: +x>
<Target Barrier: -x>
This adjusts the Barrier Points for user or the target respectively by +x or -x. The Barrier Points altered for this notetag are unexpiring Barrier Points that do not remove themselves as time passes.

<User Barrier x Turns: +y>
<User Barrier x Turns: -y>
<Target Barrier x Turns: +y>
<Target Barrier x Turns: -y>
This adjusts the Barrier Points for the user or target respectively at x turns by +y or -y amount. These Barrier Points will expire after x turns. Each turn goes by during the battler’s regeneration timing.

<Bypass Barrier>
This causes this skill to be able to bypass Barrier Points to directly deal damage to the target.

<Barrier Penetration: x%>
Causes x% of this skill or item’s damage to bypass the action target’s Barrier Points. If the target does not have enough Barrier Points, more damage will be dealt. This is a percentile value.

<Barrier Penetration: x>
Causes x value of this skill or item’s damage to bypass action target’s Barrier Points. If the target does not have enough Barrier Points, more damage will be dealt. This is a flat value.

Actor, Class, Enemy, Weapon, Armor, State Notetags:

<Barrier Penetration: +x%>
<Barrier Penetration: -x%>
This makes any damaging action by the attacker to have +x% or -x% bonus Barrier Penetration. This is a multiplicative bonus and applied before flat bonuses have been made.

<Barrier Penetration: +x>
<Barrier Penetration: -x>
This makes any damaging action by the attacker to have +x or -x bonus Barrier Penetration. This is a flat bonus and applied after multiplicative changes have been made.

<Barrier Points: +x>
<Barrier Points: -x>
The amount of unexpiring Barrier Points are gained at the start of a new battle for the affected user.

<Barrier Points x Turns: +y>
<Barrier Points x Turns: -y>
The amount of Barrier Points are gained at the start of a new battle for the affected user that will last x turns.

<Barrier Regen: +x>
<Barrier Regen: -x>
During the regeneration phase, the user will regenerate +x/-x unexpiring Barrier Points.

<Barrier Regen x Turns: +y>
<Barrier Regen x Turns: -y>
During the regeneration phase, the user will regenerate Barrier Points that last x turns with a +y/-y value.


Lunatic Mode – Custom Barrier Points


For those with JavaScript proficiency, you can utilize these notetags to allow your skills and items to give battlers custom Barrier Point totals.

Skill and Item Notetags:

— Target —

<Custom Target Barrier>
value = target.level;
</Custom Target Barrier>
The ‘value’ variable determines the total amount of Barrier Points that will be added to the target’s unexpiring Barrier Point total.

<Custom Target Barrier x Turns>
value = target.level;
</Custom Target Barrier x Turns>
The ‘value’ variable determines the total amount of Barrier Points that will be added to the target for x amount of turns.

— User —

<Custom User Barrier>
value = user.level;
</Custom User Barrier>
The ‘value’ variable determines the total amount of Barrier Points that will be added to the user’s unexpiring Barrier Point total.

<Custom User Barrier x Turns>
value = user.level;
</Custom User Barrier x Turns>
The ‘value’ variable determines the total amount of Barrier Points that will be added to the user for x amount of turns.


Lunatic Mode – Custom Barrier Penetration


For those with JavaScript proficiency, you can utilize these notetags to give your skills, items, actors, classes, enemies, weapons, armors, and states custom Barrier Penetration effects.

Skill, Item, Actor, Class, Enemy, Weapon, Armor, State Notetags:

— Rate —

<Custom Barrier Penetration Rate>
rate = target.hpRate();
</Custom Barrier Penetration Rate>
The ‘rate’ variable determines the percentile amount of damage the user will bypass for the target’s Barrier Points. This is a multiplicative bonus and will be applied before any flat bonuses.

— Flat —

<Custom Barrier Penetration Flat>
flat = target.level;
</Custom Barrier Penetration Flat>
The ‘flat’ variable determines the flat amount of damage the user will bypass for the target’s Barrier Points. This is a flat bonus and will be applied after all multiplicative bonuses.


Lunatic Mode – Custom Barrier Points on Battle Start


For those with JavaScript proficiency, you can utilize these notetags to add a dynamic amount of Barrier Points during the start up of a battle.

Actor, Class, Enemy, Weapon, Armor, and State Notetags:

— Unexpiring —

<Custom Barrier Points>
value += user.hp;
</Custom Barrier Points>
The ‘value’ variable determines how many Barrier Points the user will start a battle with. The Barrier Points added through this notetag are unexpiring Barrier Points.

— Timed —

<Custom Barrier Points x Turns>
value += user.hp;
</Custom Barrier Points x Turns>
The ‘value’ variable determines how many Barrier Points the user will start a battle with but expires after x turns.


Lunatic Mode – Custom Barrier Regeneration


For those with JavaScript proficiency, you can utilize these notetags to add a dynamic amount of Barrier Points during the user’s regeneration phase.

Actor, Class, Enemy, Weapon, Armor, and State Notetags:

— Unexpiring —

<Custom Barrier Regen>
value += user.hp / 4;
</Custom Barrier Regen>
The ‘value’ variable determines how many Barrier Points the user will gain during the user’s regeneration phase. The Barrier Points added with this notetag are unexpiring Barrier Points.

— Timed —

<Custom Barrier Regen x Turns>
value += user.hp / 4;
</Custom Barrier Regen x Turns>
The ‘value’ variable determines how many Barrier Points the user will gain during the user’s regeneration phase. The Barrier Points added with this notetag will last x turns.


Happy RPG Making!


Happy RPG Making!


These plugins and Tips & Tricks ideas are made possible thanks to our creative patrons on Patreon! The majority of our Tips & Tricks ideas are placed within the Patreon-exclusive Sample Project for quick and easy access! If you'd like to make a Plugin Suggestion, Yanfly's Patreon-based Suggestion Box a visit here:


If you have any bugs to report, visit the following link:


If you have any questions about Action Sequences, visit the following link:



Thank you!