From 28bccdd3d89b0b0fbd918072e224869ff870bd52 Mon Sep 17 00:00:00 2001 From: FatBoy-DOTC Date: Sun, 2 Mar 2025 15:51:14 -0600 Subject: [PATCH] direct damage handler - percent damages --- src/engine/wpakpowers/WpakPowerManager.java | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/src/engine/wpakpowers/WpakPowerManager.java b/src/engine/wpakpowers/WpakPowerManager.java index 142d102c..294df1d8 100644 --- a/src/engine/wpakpowers/WpakPowerManager.java +++ b/src/engine/wpakpowers/WpakPowerManager.java @@ -464,10 +464,21 @@ public class WpakPowerManager { else focus = skill.getModifiedAmount(); - float minDmg = getMinDamage(modEntry.min,caster.getStatIntCurrent(),caster.getStatSpiCurrent(),focus); - float maxDmg = getMaxDamage(modEntry.max,caster.getStatIntCurrent(),caster.getStatSpiCurrent(),focus); - - int damage = ThreadLocalRandom.current().nextInt((int) minDmg, (int) (maxDmg + 1)); + float min = modEntry.min; + float max = modEntry.max; + float percent = modEntry.percentage; + + float damage; + if(percent != 0){ + //handle percentage damage + percent += getModifierValues(modEntry,rank).first; + damage = target.healthMax * percent; + }else{ + //flat damage range + min = getMinDamage(min + getModifierValues(modEntry,rank).first,caster.getStatIntCurrent(),caster.getStatSpiCurrent(),focus); + max = getMaxDamage(max + getModifierValues(modEntry,rank).second,caster.getStatIntCurrent(),caster.getStatSpiCurrent(),focus); + damage = ThreadLocalRandom.current().nextInt((int) min, (int) (max) + 1); + } if(AbstractCharacter.IsAbstractCharacter(target)) { AbstractCharacter absChar = (AbstractCharacter)target;