Difference between revisions of "Armor Scaling (YEP)"

From Yanfly.moe Wiki
Jump to navigation Jump to search
(Created page with "{{MvPlugin |preview=<youtube>https://www.youtube.com/watch?v=JVLJEZo2VHo</youtube> |link1=<html><iframe src="https://itch.io/embed/398325" height="167" width="552" frameborder...")
 
Line 1: Line 1:
 
{{MvPlugin
 
{{MvPlugin
|preview=<youtube>https://www.youtube.com/watch?v=JVLJEZo2VHo</youtube>
+
|preview = <youtube>https://www.youtube.com/watch?v=JVLJEZo2VHo</youtube>
|link1=<html><iframe src="https://itch.io/embed/398325" height="167" width="552" frameborder="0"></iframe></html>
+
|link1 = <html><iframe src="https://itch.io/embed/398325" height="167" width="552" frameborder="0"></iframe></html>
|link2=[http://yanfly.moe/plugins/en/YEP_X_ArmorScaling.js Mirror]
+
|link2 = [http://yanfly.moe/plugins/en/YEP_X_ArmorScaling.js Mirror]
  
 
}}
 
}}
Line 12: Line 12:
 
{{Yanfly Engine Plugins}}
 
{{Yanfly Engine Plugins}}
  
== Help File ==
+
== Introduction ==
  
 
  <nowiki>
 
  <nowiki>
============================================================================
 
Introduction
 
============================================================================
 
 
 
This plugin requires YEP_DamageCore.
 
This plugin requires YEP_DamageCore.
 
Make sure this plugin is located under YEP_DamageCore in the plugin list.
 
Make sure this plugin is located under YEP_DamageCore in the plugin list.
Line 25: Line 21:
 
battlefield more universal for both actors and enemies alike and gets past
 
battlefield more universal for both actors and enemies alike and gets past
 
the flaws that ATK - DEF formulas have.
 
the flaws that ATK - DEF formulas have.
 +
</nowiki>
  
============================================================================
+
== Armor Scaling ==
Armor Scaling
 
============================================================================
 
  
 +
<nowiki>
 
Armor Scaling allows the damage formula to be rid of "b.def * 2" and similar
 
Armor Scaling allows the damage formula to be rid of "b.def * 2" and similar
 
calculations in favor of scaling the damage relative to the armor values
 
calculations in favor of scaling the damage relative to the armor values
Line 92: Line 88:
 
that very matter. This goes to show how effective armor scaling can be to
 
that very matter. This goes to show how effective armor scaling can be to
 
maintain long-term balancing.
 
maintain long-term balancing.
 +
</nowiki>
  
============================================================================
+
== Armor Reduction and Armor Penetration ==
Armor Reduction and Armor Penetration
 
============================================================================
 
  
 +
<nowiki>
 
There are various modifiers that can alter the armor level before the armor
 
There are various modifiers that can alter the armor level before the armor
 
scaling rate is applied to damage. Armor goes through four main steps and
 
scaling rate is applied to damage. Armor goes through four main steps and
Line 133: Line 129:
 
reduced below 0. Flat armor penetration stacks additively. Armor penetration
 
reduced below 0. Flat armor penetration stacks additively. Armor penetration
 
values are provided by the attacker and not the target.
 
values are provided by the attacker and not the target.
 +
</nowiki>
  
============================================================================
+
== Notetags ==
Notetags
 
============================================================================
 
  
 +
<nowiki>
 
You may use these notetags to adjust various factors for armor scaling rates
 
You may use these notetags to adjust various factors for armor scaling rates
 
and calculations.
 
and calculations.
Line 210: Line 206:
 
   Causes this actor to cause the target to lose x armor but not drop below
 
   Causes this actor to cause the target to lose x armor but not drop below
 
   0 armor when using a certain skills/items. This is calculated last.
 
   0 armor when using a certain skills/items. This is calculated last.
 +
</nowiki>
  
============================================================================
+
== Lunatic Mode - Custom Armor Scaling ==
Lunatic Mode - Custom Armor Scaling
 
============================================================================
 
  
 +
<nowiki>
 
For those with some JavaScript experience, you can make use of Lunatic Mode
 
For those with some JavaScript experience, you can make use of Lunatic Mode
 
to calculate the way you want armor scaling done for particular skills and
 
to calculate the way you want armor scaling done for particular skills and
Line 239: Line 235:
 
   This enables you to set a custom way for the skill/item to calculate the
 
   This enables you to set a custom way for the skill/item to calculate the
 
   base armor value used for armor scaling.
 
   base armor value used for armor scaling.
 +
</nowiki>
  
============================================================================
+
== Yanfly Engine Plugins - Battle Engine Extension - Action Sequence Commands ==
Yanfly Engine Plugins - Battle Engine Extension - Action Sequence Commands
 
============================================================================
 
  
 +
<nowiki>
 
If you have YEP_BattleEngineCore.js installed with this plugin located
 
If you have YEP_BattleEngineCore.js installed with this plugin located
 
underneath it in the Plugin Manager, you can make use of these extra
 
underneath it in the Plugin Manager, you can make use of these extra
Line 285: Line 281:
 
Usage Example: reset armor reduction
 
Usage Example: reset armor reduction
 
=============================================================================
 
=============================================================================
 +
</nowiki>
  
============================================================================
+
== Changelog ==
Changelog
 
============================================================================
 
  
 +
<nowiki>
 
Version 1.05:
 
Version 1.05:
 
- Bypass the isDevToolsOpen() error when bad code is inserted into a script
 
- Bypass the isDevToolsOpen() error when bad code is inserted into a script

Revision as of 00:48, 22 June 2019

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 MV.

For help on how to install plugins, click here.

For help on how to update plugins, click here.

Got errors with your RPG Maker MV plugin? Click here.


Masterarbeit Writer

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.

Yanfly Engine Plugins

This plugin is a part of the Yanfly Engine Plugins library.


Introduction

This plugin requires YEP_DamageCore.
Make sure this plugin is located under YEP_DamageCore in the plugin list.

This plugin serves as a damage balancing plugin to make numbers across the
battlefield more universal for both actors and enemies alike and gets past
the flaws that ATK - DEF formulas have.

Armor Scaling

Armor Scaling allows the damage formula to be rid of "b.def * 2" and similar
calculations in favor of scaling the damage relative to the armor values
that the attack target has. The following is the armor scaling formula for
both positive and negative armor values:

           Positive Armor                     Negative Armor

                100                                     100
    Rate = -------------                Rate = 2 - -------------
            100 + armor                             100 - armor

To get an idea of how armor scaling will affect damage, you can visit
FlyingDream's Armor Scaling Calculator here:

    http://yanfly.moe/tools/armorscalingcalculator/

For quick reference, here's a table on how 1,000 base damage is affected.

Armor Level   Rate%    Damage           Armor Level   Rate%    Damage
          1   99.01%   990                       -1   100.99%  1,010
          2   98.04%   980                       -2   101.96%  1,020
          3   97.09%   971                       -3   102.91%  1,029
          4   96.15%   962                       -4   103.85%  1,038
          5   95.24%   952                       -5   104.76%  1,048
          6   94.34%   943                       -6   105.66%  1,057
          7   93.46%   935                       -7   106.54%  1,065
          8   92.59%   926                       -8   107.41%  1,074
          9   91.74%   917                       -9   108.26%  1,083
         10   90.91%   909                      -10   109.09%  1,091
         25   80.00%   800                      -25   120.00%  1,200
         50   66.67%   667                      -50   133.33%  1,333
         75   57.14%   571                      -75   142.86%  1,429
        100   50.00%   500                     -100   150.00%  1,500
        150   40.00%   400                     -150   160.00%  1,600
        200   33.33%   333                     -200   166.67%  1,667
        250   28.57%   286                     -250   171.43%  1,714
        300   25.00%   250                     -300   175.00%  1,750
        350   22.22%   222                     -350   177.78%  1,778
        400   20.00%   200                     -400   180.00%  1,800
        450   18.18%   182                     -450   181.82%  1,818
        500   16.67%   167                     -500   183.33%  1,833
        550   15.38%   154                     -550   184.62%  1,846
        600   14.29%   143                     -600   185.71%  1,857
        650   13.33%   133                     -650   186.67%  1,867
        700   12.50%   125                     -700   187.50%  1,875
        750   11.76%   118                     -750   188.24%  1,882
        800   11.11%   111                     -800   188.89%  1,889
        850   10.53%   105                     -850   189.47%  1,895
        900   10.00%   100                     -900   190.00%  1,900
        950    9.52%    95                     -950   190.48%  1,905
        999    9.10%    91                     -999   190.90%  1,909
      9,999    0.99%    10                   -9,999   199.01%  1,990
     99,999    0.10%     1                  -99,999   199.90%  1,999
    999,999    0.01%     0                 -999,999   199.99%  2,000
  9,999,999    0.00%     0               -9,999,999   200.00%  2,000

Using the default base armor formula of 2 defense points is equal to 1
armor, this means at 200 defense, a battler will take only 50% damage. At
999 defense, the battler will take a little bit more than 16.67% damage.
At those values without armor scaling, damage can be entirely undone for
that very matter. This goes to show how effective armor scaling can be to
maintain long-term balancing.

Armor Reduction and Armor Penetration

There are various modifiers that can alter the armor level before the armor
scaling rate is applied to damage. Armor goes through four main steps and
they are as follows.

1. Armor Reduction, Flat
2. Armor Reduction, Percentage
3. Armor Penetration, Percentage
4. Armor Penetration, Flat

In step 1 (Armor Reduction, Flat), the target's armor is reduced by a value.
Flat armor reduction stacks additively. Flat armor reduction can reduce a
target's armor below zero. For example, if an enemy with 10 armor has their
armor reduced by 25, the enemy will have -15 armor. Armor reduction values
are provided by target and not the attacker.

In step 2 (Armor Reduction, Percentage), the target's armor is multiplied by
a percentage (100% - the listed value). Percentage armor reduction stacks
multiplicatively and is ignored if the target's armor is 0 or less.
Percentage armor reduction makes a bigger difference on targets with higher
armor. For instance, with 40% armor reduction, a target with 200 armor will
lose 80 while a target with only 50 armor will lose 20. Armor reduction
values are provided by the target and not the attacker.

In step 3 (Armor Penetration, Percentage), the target's armor is multiplied
by a percentage (100% - the listed value). Percentage armor penetration
stacks multiplicatively and is ignored if the target's armor is 0 or less.
Percentage armor penetration makes a bigger difference on targets with higher
armor. For instance, with 40% armor penetration, a target with 200 armor will
be considered as having 80 less while a target with only 50 armor will be
considered as having 20 less. Armor penetration values are provided by the
attacker and not the target.

In step 4 (Armor Penetration, Flat), the target's armor is treated as being
reduced by an amount for purposes of damage calculation, but cannot be
reduced below 0. Flat armor penetration stacks additively. Armor penetration
values are provided by the attacker and not the target.

Notetags

You may use these notetags to adjust various factors for armor scaling rates
and calculations.

Skill and Item Notetags:
  <Armor Reduction: x>
  Causes the skill/item to reduce the target's armor level by x. This is
  calculated first above everything else.

  <Armor Reduction: x%>
  Causes the skill/item to reduce the target's armor level by x%. This is
  calculated second but is ignored if the armor level is less than 0.

  <Armor Penetration: x%>
  Causes the skill/item to reduce the target's armor level by x% (but will
  not go past 0). This is calculated third.

  <Armor Penetration: x>
  Causes the skill/item to reduce the target's armor level by x (but will
  not go past 0). This is calculated last.

  <Bypass Armor Scaling>
  This notetag allows you to bypass the armor scaling process for this
  individual skill/item.

Actor, Class, Enemy, Weapon, Armor, State Notetags:
  <Physical Armor Reduction: x>
  Causes this actor to lose x armor when targeted by physical skills/items.
  This is calculated first.

  <Magical Armor Reduction: x>
  Causes this actor to lose x armor when targeted by magical skills/items.
  This is calculated first.

  <Certain Armor Reduction: x>
  Causes this actor to lose x armor when targeted by certain skills/items.
  This is calculated first.

  <Physical Armor Reduction: x%>
  Causes this actor to lose x% armor when targeted by physical skills/items.
  This is calculated second.

  <Magical Armor Reduction: x%>
  Causes this actor to lose x% armor when targeted by magical skills/items.
  This is calculated second.

  <Certain Armor Reduction: x%>
  Causes this actor to lose x% armor when targeted by certain skills/items.
  This is calculated second.

  <Physical Armor Penetration: x%>
  Causes this actor to cause the target to lose x% armor when using a
  physical skills/items. This is calculated third.

  <Magical Armor Penetration: x%>
  Causes this actor to cause the target to lose x% armor when using a
  magical skills/items. This is calculated third.

  <Certain Armor Penetration: x%>
  Causes this actor to cause the target to lose x% armor when using a
  physical skills/items. This is calculated third.

  <Physical Armor Penetration: x>
  Causes this actor to cause the target to lose x armor but not drop below
  0 armor when using a physical skills/items. This is calculated last.

  <Magical Armor Penetration: x>
  Causes this actor to cause the target to lose x armor but not drop below
  0 armor when using a magical skills/items. This is calculated last.

  <Certain Armor Penetration: x>
  Causes this actor to cause the target to lose x armor but not drop below
  0 armor when using a certain skills/items. This is calculated last.

Lunatic Mode - Custom Armor Scaling

For those with some JavaScript experience, you can make use of Lunatic Mode
to calculate the way you want armor scaling done for particular skills and
items right within the notebox!

  <Positive Armor Rate>
   value *= 100;
   value /= 100 + armor;
  </Positive Armor Rate>
  This enables you to set a custom positive armor calculation rate for the
  skill/item instead of using the default positive armor rate.

  <Negative Armor Rate>
   value *= 2 - (100 / (100 - armor));
   value *= 1.5;
  </Negative Armor Rate>
  This enables you to set a custom negative armor calculation rate for the
  skill/item instead of using the default positive armor rate.

  <Base Armor>
   armor = target.def;
   armor -= user.atk / 4;
  </Base Armor>
  This enables you to set a custom way for the skill/item to calculate the
  base armor value used for armor scaling.

Yanfly Engine Plugins - Battle Engine Extension - Action Sequence Commands

If you have YEP_BattleEngineCore.js installed with this plugin located
underneath it in the Plugin Manager, you can make use of these extra
armor scaling related action sequences.

=============================================================================
ARMOR PENETRATION: X
ARMOR PENETRATION: X%
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Causes the skill to have a global armor pentration property of either x or
x% rate. This property is reset at the end of the action sequence.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Usage Example: armor penetration: 20
               armor penetration: 30%
=============================================================================

=============================================================================
ARMOR REDUCTION: X
ARMOR REDUCTION: X%
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Causes the skill to have a global armor reduction property of either x or
x% rate. This property is reset at the end of the action sequence.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Usage Example: armor reduction: 20
               armor reduction: 30%
=============================================================================

=============================================================================
RESET ARMOR PENETRATION
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Resets global set armor penetration properties.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Usage Example: reset armor penetration
=============================================================================

=============================================================================
RESET ARMOR REDUCTION
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Resets global set armor reduction properties.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Usage Example: reset armor reduction
=============================================================================

Changelog

Version 1.05:
- Bypass the isDevToolsOpen() error when bad code is inserted into a script
call or custom Lunatic Mode code segment due to updating to MV 1.6.1.

Version 1.04:
- Updated for RPG Maker MV version 1.5.0.

Version 1.03:
- Lunatic Mode fail safes added.

Version 1.02:
- Updated for RPG Maker MV version 1.1.0.

Version 1.01:
- Fixed the notetag <Armor Reduction: x%> from not working with the intended
effect.
- Negative armor damage calculations are reworked to function as intended.

Version 1.00:
- Finished Plugin!