Stat-Based DOT

Instead of using a poison effect that deals damage based on the percentage of life the enemy has you can make a Damage Over Time state that deals damage based on the stats of the caster.

This is a better way to handle Damage Over Time in my opinion. Here’s how you do it:

Make a skill that adds a state. In that state’s note box you write the code below. Change the target._customDotValue to equal whatever you want.

You can use:

origin.atk for attack power,

origin.mat for magic attack power,

origin.def for defense, using your own defense as the damage modifier. (Great for Tank DoTs),

origin.mdf for magic defense,

origin.agi for agility, (great for rogue type characters),

origin.luk for luck.

You can even get real creative and use game variables to determine the damage:

$gameVariables.value(x) where x is the number of the variable. (Just remember to initialize them first by making an autorun event at the beginning of the game that sets them to a value.)

There are many other ways to use this to determine how much damage the DoT will do.

Then you can set how long you want the DoT to last on the state by checking Auto-removal Timing: Action End Duration to how ever many turns you desire.

I would also check Remove at Battle End.

 

This code goes into the stateĀ note tag box and requires the use of Yanfly’s YEP_CoreEngine, YEP_BattleEngineCore, andĀ YEP_BuffsStatesCore.

 

<Custom Apply Effect>

target._customDotValue = origin.mat * 2; //change this line to change the damage formula of the DOT.

</Custom Apply Effect>

<Custom Remove Effect>

target._customDotValue = undefined;

</Custom Remove Effect>

<Custom Regenerate Effect>

if (target._customDotValue !== undefined) {

var value = target._customDotValue;

target.gainHp(-value);

target.startDamagePopup();

if (target.isDead()) {

target.performCollapse();

}

target.clearResult();

}

</Custom Regenerate Effect>