Stop Putting Mechanics in Damage Formulas

From Yanfly.moe Wiki
Revision as of 19:57, 25 January 2021 by Yanfly (talk | contribs)
Jump to navigation Jump to search

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.


Introduction

Every other RPG Maker MV/MZ user has seen this article on RPG Maker Web. It teaches you how to manipulate the damage formula to add in more complexity to skills and items. While most of what the article teaches is okay, the parts where it teaches you how to add mechanics to it aren't because they can conflict heavily with how your game is supposed to operate when the time comes.

Yanfly.png This is an article written by Yanfly.

Why do I say that?

That's because the damage formulas should be reserved for damage calculations only. While damage calculations typically occur during battle and/or processing of the effects, they also occur when a skill or item is being evaluated by the A.I. to determine if it's the right skill to use, too. Let's take a look at what happens when mechanics are placed in damage formulas.

A Brand New Project

Let's create a brand new project to show off the controlled aspects of this problem.

MechanicsInsideDamageFormulas BlankProject.png

The above screenshot is to show you that there are no plugins installed. This is to prove that there is no outside plugin influence to cause some of the problems occurring in what will be shown below.

Special Skills

Using the examples found in the article above, we'll have the following effects made for 4 different skills:


Power Strike:

MechanicsInsideDamageFormulas Example1.png

a.addBuff(2, 5); a.atk * 4 - b.def * 2

This is a skill that gives the user an ATK buff for 5 turns.


Risk Taker:

MechanicsInsideDamageFormulas Example2.png

a.addDebuff(3, 5); a.atk * 4 - b.def * 2

This is a skill that gives the user an DEF debuff for 5 turns.


Bodyslam:

MechanicsInsideDamageFormulas Example3.png

a.gainHp(Math.round(-a.hp * 0.5)); a.atk * 4 - b.def * 2

This is a skill that causes the user to lose 50% of their HP upon usage.


Desperation:

MechanicsInsideDamageFormulas Example4.png

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

This is a skill that causes the user to lose all MP (brings it to 0) upon usage.