Fixed negative healing when player has limiting effects.

Contributed by Sahar.
This commit is contained in:
MobiusDevelopment
2020-06-28 00:14:49 +00:00
parent a3a76a85a0
commit 727fca9827
90 changed files with 135 additions and 135 deletions

View File

@@ -66,12 +66,12 @@ public class Cp extends AbstractEffect
{ {
case DIFF: case DIFF:
{ {
amount = Math.min(basicAmount, effected.getMaxRecoverableCp() - effected.getCurrentCp()); amount = Math.min(basicAmount, Math.max(0, effected.getMaxRecoverableCp() - effected.getCurrentCp()));
break; break;
} }
case PER: case PER:
{ {
amount = Math.min((effected.getMaxCp() * basicAmount) / 100.0, effected.getMaxRecoverableCp() - effected.getCurrentCp()); amount = Math.min((effected.getMaxCp() * basicAmount) / 100.0, Math.max(0, effected.getMaxRecoverableCp() - effected.getCurrentCp()));
break; break;
} }
} }

View File

@@ -125,7 +125,7 @@ public class Heal extends AbstractEffect
} }
// Prevents overheal // Prevents overheal
amount = Math.min(amount, effected.getMaxRecoverableHp() - effected.getCurrentHp()); amount = Math.min(amount, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp()));
if (amount != 0) if (amount != 0)
{ {
final double newHp = amount + effected.getCurrentHp(); final double newHp = amount + effected.getCurrentHp();

View File

@@ -70,7 +70,7 @@ public class HealPercent extends AbstractEffect
} }
// Prevents overheal // Prevents overheal
amount = Math.min(amount, effected.getMaxRecoverableHp() - effected.getCurrentHp()); amount = Math.min(amount, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp()));
if (amount >= 0) if (amount >= 0)
{ {
if (amount != 0) if (amount != 0)

View File

@@ -66,12 +66,12 @@ public class Hp extends AbstractEffect
{ {
case DIFF: case DIFF:
{ {
amount = Math.min(basicAmount, effected.getMaxRecoverableHp() - effected.getCurrentHp()); amount = Math.min(basicAmount, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp()));
break; break;
} }
case PER: case PER:
{ {
amount = Math.min((effected.getMaxHp() * basicAmount) / 100.0, effected.getMaxRecoverableHp() - effected.getCurrentHp()); amount = Math.min((effected.getMaxHp() * basicAmount) / 100.0, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp()));
break; break;
} }
} }

View File

@@ -70,7 +70,7 @@ public class ManaHealPercent extends AbstractEffect
} }
// Prevents overheal // Prevents overheal
amount = Math.min(amount, effected.getMaxRecoverableMp() - effected.getCurrentMp()); amount = Math.min(amount, Math.max(0, effected.getMaxRecoverableMp() - effected.getCurrentMp()));
if (amount != 0) if (amount != 0)
{ {
final double newMp = amount + effected.getCurrentMp(); final double newMp = amount + effected.getCurrentMp();

View File

@@ -66,12 +66,12 @@ public class Mp extends AbstractEffect
{ {
case DIFF: case DIFF:
{ {
amount = Math.min(basicAmount, effected.getMaxRecoverableMp() - effected.getCurrentMp()); amount = Math.min(basicAmount, Math.max(0, effected.getMaxRecoverableMp() - effected.getCurrentMp()));
break; break;
} }
case PER: case PER:
{ {
amount = Math.min((effected.getMaxMp() * basicAmount) / 100.0, effected.getMaxRecoverableMp() - effected.getCurrentMp()); amount = Math.min((effected.getMaxMp() * basicAmount) / 100.0, Math.max(0, effected.getMaxRecoverableMp() - effected.getCurrentMp()));
break; break;
} }
} }

View File

@@ -66,12 +66,12 @@ public class Cp extends AbstractEffect
{ {
case DIFF: case DIFF:
{ {
amount = Math.min(basicAmount, effected.getMaxRecoverableCp() - effected.getCurrentCp()); amount = Math.min(basicAmount, Math.max(0, effected.getMaxRecoverableCp() - effected.getCurrentCp()));
break; break;
} }
case PER: case PER:
{ {
amount = Math.min((effected.getMaxCp() * basicAmount) / 100.0, effected.getMaxRecoverableCp() - effected.getCurrentCp()); amount = Math.min((effected.getMaxCp() * basicAmount) / 100.0, Math.max(0, effected.getMaxRecoverableCp() - effected.getCurrentCp()));
break; break;
} }
} }

View File

@@ -125,7 +125,7 @@ public class Heal extends AbstractEffect
} }
// Prevents overheal // Prevents overheal
amount = Math.min(amount, effected.getMaxRecoverableHp() - effected.getCurrentHp()); amount = Math.min(amount, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp()));
if (amount != 0) if (amount != 0)
{ {
final double newHp = amount + effected.getCurrentHp(); final double newHp = amount + effected.getCurrentHp();

View File

@@ -70,7 +70,7 @@ public class HealPercent extends AbstractEffect
} }
// Prevents overheal // Prevents overheal
amount = Math.min(amount, effected.getMaxRecoverableHp() - effected.getCurrentHp()); amount = Math.min(amount, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp()));
if (amount >= 0) if (amount >= 0)
{ {
if (amount != 0) if (amount != 0)

View File

@@ -66,12 +66,12 @@ public class Hp extends AbstractEffect
{ {
case DIFF: case DIFF:
{ {
amount = Math.min(basicAmount, effected.getMaxRecoverableHp() - effected.getCurrentHp()); amount = Math.min(basicAmount, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp()));
break; break;
} }
case PER: case PER:
{ {
amount = Math.min((effected.getMaxHp() * basicAmount) / 100.0, effected.getMaxRecoverableHp() - effected.getCurrentHp()); amount = Math.min((effected.getMaxHp() * basicAmount) / 100.0, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp()));
break; break;
} }
} }

View File

@@ -70,7 +70,7 @@ public class ManaHealPercent extends AbstractEffect
} }
// Prevents overheal // Prevents overheal
amount = Math.min(amount, effected.getMaxRecoverableMp() - effected.getCurrentMp()); amount = Math.min(amount, Math.max(0, effected.getMaxRecoverableMp() - effected.getCurrentMp()));
if (amount != 0) if (amount != 0)
{ {
final double newMp = amount + effected.getCurrentMp(); final double newMp = amount + effected.getCurrentMp();

View File

@@ -66,12 +66,12 @@ public class Mp extends AbstractEffect
{ {
case DIFF: case DIFF:
{ {
amount = Math.min(basicAmount, effected.getMaxRecoverableMp() - effected.getCurrentMp()); amount = Math.min(basicAmount, Math.max(0, effected.getMaxRecoverableMp() - effected.getCurrentMp()));
break; break;
} }
case PER: case PER:
{ {
amount = Math.min((effected.getMaxMp() * basicAmount) / 100.0, effected.getMaxRecoverableMp() - effected.getCurrentMp()); amount = Math.min((effected.getMaxMp() * basicAmount) / 100.0, Math.max(0, effected.getMaxRecoverableMp() - effected.getCurrentMp()));
break; break;
} }
} }

View File

@@ -66,12 +66,12 @@ public class Cp extends AbstractEffect
{ {
case DIFF: case DIFF:
{ {
amount = Math.min(basicAmount, effected.getMaxRecoverableCp() - effected.getCurrentCp()); amount = Math.min(basicAmount, Math.max(0, effected.getMaxRecoverableCp() - effected.getCurrentCp()));
break; break;
} }
case PER: case PER:
{ {
amount = Math.min((effected.getMaxCp() * basicAmount) / 100.0, effected.getMaxRecoverableCp() - effected.getCurrentCp()); amount = Math.min((effected.getMaxCp() * basicAmount) / 100.0, Math.max(0, effected.getMaxRecoverableCp() - effected.getCurrentCp()));
break; break;
} }
} }

View File

@@ -125,7 +125,7 @@ public class Heal extends AbstractEffect
} }
// Prevents overheal // Prevents overheal
amount = Math.min(amount, effected.getMaxRecoverableHp() - effected.getCurrentHp()); amount = Math.min(amount, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp()));
if (amount != 0) if (amount != 0)
{ {
final double newHp = amount + effected.getCurrentHp(); final double newHp = amount + effected.getCurrentHp();

View File

@@ -70,7 +70,7 @@ public class HealPercent extends AbstractEffect
} }
// Prevents overheal // Prevents overheal
amount = Math.min(amount, effected.getMaxRecoverableHp() - effected.getCurrentHp()); amount = Math.min(amount, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp()));
if (amount >= 0) if (amount >= 0)
{ {
if (amount != 0) if (amount != 0)

View File

@@ -66,12 +66,12 @@ public class Hp extends AbstractEffect
{ {
case DIFF: case DIFF:
{ {
amount = Math.min(basicAmount, effected.getMaxRecoverableHp() - effected.getCurrentHp()); amount = Math.min(basicAmount, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp()));
break; break;
} }
case PER: case PER:
{ {
amount = Math.min((effected.getMaxHp() * basicAmount) / 100.0, effected.getMaxRecoverableHp() - effected.getCurrentHp()); amount = Math.min((effected.getMaxHp() * basicAmount) / 100.0, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp()));
break; break;
} }
} }

View File

@@ -70,7 +70,7 @@ public class ManaHealPercent extends AbstractEffect
} }
// Prevents overheal // Prevents overheal
amount = Math.min(amount, effected.getMaxRecoverableMp() - effected.getCurrentMp()); amount = Math.min(amount, Math.max(0, effected.getMaxRecoverableMp() - effected.getCurrentMp()));
if (amount != 0) if (amount != 0)
{ {
final double newMp = amount + effected.getCurrentMp(); final double newMp = amount + effected.getCurrentMp();

View File

@@ -66,12 +66,12 @@ public class Mp extends AbstractEffect
{ {
case DIFF: case DIFF:
{ {
amount = Math.min(basicAmount, effected.getMaxRecoverableMp() - effected.getCurrentMp()); amount = Math.min(basicAmount, Math.max(0, effected.getMaxRecoverableMp() - effected.getCurrentMp()));
break; break;
} }
case PER: case PER:
{ {
amount = Math.min((effected.getMaxMp() * basicAmount) / 100.0, effected.getMaxRecoverableMp() - effected.getCurrentMp()); amount = Math.min((effected.getMaxMp() * basicAmount) / 100.0, Math.max(0, effected.getMaxRecoverableMp() - effected.getCurrentMp()));
break; break;
} }
} }

View File

@@ -66,12 +66,12 @@ public class Cp extends AbstractEffect
{ {
case DIFF: case DIFF:
{ {
amount = Math.min(basicAmount, effected.getMaxRecoverableCp() - effected.getCurrentCp()); amount = Math.min(basicAmount, Math.max(0, effected.getMaxRecoverableCp() - effected.getCurrentCp()));
break; break;
} }
case PER: case PER:
{ {
amount = Math.min((effected.getMaxCp() * basicAmount) / 100.0, effected.getMaxRecoverableCp() - effected.getCurrentCp()); amount = Math.min((effected.getMaxCp() * basicAmount) / 100.0, Math.max(0, effected.getMaxRecoverableCp() - effected.getCurrentCp()));
break; break;
} }
} }

View File

@@ -125,7 +125,7 @@ public class Heal extends AbstractEffect
} }
// Prevents overheal // Prevents overheal
amount = Math.min(amount, effected.getMaxRecoverableHp() - effected.getCurrentHp()); amount = Math.min(amount, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp()));
if (amount != 0) if (amount != 0)
{ {
final double newHp = amount + effected.getCurrentHp(); final double newHp = amount + effected.getCurrentHp();

View File

@@ -70,7 +70,7 @@ public class HealPercent extends AbstractEffect
} }
// Prevents overheal // Prevents overheal
amount = Math.min(amount, effected.getMaxRecoverableHp() - effected.getCurrentHp()); amount = Math.min(amount, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp()));
if (amount >= 0) if (amount >= 0)
{ {
if (amount != 0) if (amount != 0)

View File

@@ -66,12 +66,12 @@ public class Hp extends AbstractEffect
{ {
case DIFF: case DIFF:
{ {
amount = Math.min(basicAmount, effected.getMaxRecoverableHp() - effected.getCurrentHp()); amount = Math.min(basicAmount, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp()));
break; break;
} }
case PER: case PER:
{ {
amount = Math.min((effected.getMaxHp() * basicAmount) / 100.0, effected.getMaxRecoverableHp() - effected.getCurrentHp()); amount = Math.min((effected.getMaxHp() * basicAmount) / 100.0, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp()));
break; break;
} }
} }

View File

@@ -70,7 +70,7 @@ public class ManaHealPercent extends AbstractEffect
} }
// Prevents overheal // Prevents overheal
amount = Math.min(amount, effected.getMaxRecoverableMp() - effected.getCurrentMp()); amount = Math.min(amount, Math.max(0, effected.getMaxRecoverableMp() - effected.getCurrentMp()));
if (amount != 0) if (amount != 0)
{ {
final double newMp = amount + effected.getCurrentMp(); final double newMp = amount + effected.getCurrentMp();

View File

@@ -66,12 +66,12 @@ public class Mp extends AbstractEffect
{ {
case DIFF: case DIFF:
{ {
amount = Math.min(basicAmount, effected.getMaxRecoverableMp() - effected.getCurrentMp()); amount = Math.min(basicAmount, Math.max(0, effected.getMaxRecoverableMp() - effected.getCurrentMp()));
break; break;
} }
case PER: case PER:
{ {
amount = Math.min((effected.getMaxMp() * basicAmount) / 100.0, effected.getMaxRecoverableMp() - effected.getCurrentMp()); amount = Math.min((effected.getMaxMp() * basicAmount) / 100.0, Math.max(0, effected.getMaxRecoverableMp() - effected.getCurrentMp()));
break; break;
} }
} }

View File

@@ -66,12 +66,12 @@ public class Cp extends AbstractEffect
{ {
case DIFF: case DIFF:
{ {
amount = Math.min(basicAmount, effected.getMaxRecoverableCp() - effected.getCurrentCp()); amount = Math.min(basicAmount, Math.max(0, effected.getMaxRecoverableCp() - effected.getCurrentCp()));
break; break;
} }
case PER: case PER:
{ {
amount = Math.min((effected.getMaxCp() * basicAmount) / 100.0, effected.getMaxRecoverableCp() - effected.getCurrentCp()); amount = Math.min((effected.getMaxCp() * basicAmount) / 100.0, Math.max(0, effected.getMaxRecoverableCp() - effected.getCurrentCp()));
break; break;
} }
} }

View File

@@ -125,7 +125,7 @@ public class Heal extends AbstractEffect
} }
// Prevents overheal // Prevents overheal
amount = Math.min(amount, effected.getMaxRecoverableHp() - effected.getCurrentHp()); amount = Math.min(amount, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp()));
if (amount != 0) if (amount != 0)
{ {
final double newHp = amount + effected.getCurrentHp(); final double newHp = amount + effected.getCurrentHp();

View File

@@ -70,7 +70,7 @@ public class HealPercent extends AbstractEffect
} }
// Prevents overheal // Prevents overheal
amount = Math.min(amount, effected.getMaxRecoverableHp() - effected.getCurrentHp()); amount = Math.min(amount, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp()));
if (amount >= 0) if (amount >= 0)
{ {
if (amount != 0) if (amount != 0)

View File

@@ -66,12 +66,12 @@ public class Hp extends AbstractEffect
{ {
case DIFF: case DIFF:
{ {
amount = Math.min(basicAmount, effected.getMaxRecoverableHp() - effected.getCurrentHp()); amount = Math.min(basicAmount, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp()));
break; break;
} }
case PER: case PER:
{ {
amount = Math.min((effected.getMaxHp() * basicAmount) / 100.0, effected.getMaxRecoverableHp() - effected.getCurrentHp()); amount = Math.min((effected.getMaxHp() * basicAmount) / 100.0, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp()));
break; break;
} }
} }

View File

@@ -70,7 +70,7 @@ public class ManaHealPercent extends AbstractEffect
} }
// Prevents overheal // Prevents overheal
amount = Math.min(amount, effected.getMaxRecoverableMp() - effected.getCurrentMp()); amount = Math.min(amount, Math.max(0, effected.getMaxRecoverableMp() - effected.getCurrentMp()));
if (amount != 0) if (amount != 0)
{ {
final double newMp = amount + effected.getCurrentMp(); final double newMp = amount + effected.getCurrentMp();

View File

@@ -66,12 +66,12 @@ public class Mp extends AbstractEffect
{ {
case DIFF: case DIFF:
{ {
amount = Math.min(basicAmount, effected.getMaxRecoverableMp() - effected.getCurrentMp()); amount = Math.min(basicAmount, Math.max(0, effected.getMaxRecoverableMp() - effected.getCurrentMp()));
break; break;
} }
case PER: case PER:
{ {
amount = Math.min((effected.getMaxMp() * basicAmount) / 100.0, effected.getMaxRecoverableMp() - effected.getCurrentMp()); amount = Math.min((effected.getMaxMp() * basicAmount) / 100.0, Math.max(0, effected.getMaxRecoverableMp() - effected.getCurrentMp()));
break; break;
} }
} }

View File

@@ -66,12 +66,12 @@ public class Cp extends AbstractEffect
{ {
case DIFF: case DIFF:
{ {
amount = Math.min(basicAmount, effected.getMaxRecoverableCp() - effected.getCurrentCp()); amount = Math.min(basicAmount, Math.max(0, effected.getMaxRecoverableCp() - effected.getCurrentCp()));
break; break;
} }
case PER: case PER:
{ {
amount = Math.min((effected.getMaxCp() * basicAmount) / 100.0, effected.getMaxRecoverableCp() - effected.getCurrentCp()); amount = Math.min((effected.getMaxCp() * basicAmount) / 100.0, Math.max(0, effected.getMaxRecoverableCp() - effected.getCurrentCp()));
break; break;
} }
} }

View File

@@ -125,7 +125,7 @@ public class Heal extends AbstractEffect
} }
// Prevents overheal // Prevents overheal
amount = Math.min(amount, effected.getMaxRecoverableHp() - effected.getCurrentHp()); amount = Math.min(amount, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp()));
if (amount != 0) if (amount != 0)
{ {
final double newHp = amount + effected.getCurrentHp(); final double newHp = amount + effected.getCurrentHp();

View File

@@ -70,7 +70,7 @@ public class HealPercent extends AbstractEffect
} }
// Prevents overheal // Prevents overheal
amount = Math.min(amount, effected.getMaxRecoverableHp() - effected.getCurrentHp()); amount = Math.min(amount, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp()));
if (amount >= 0) if (amount >= 0)
{ {
if (amount != 0) if (amount != 0)

View File

@@ -66,12 +66,12 @@ public class Hp extends AbstractEffect
{ {
case DIFF: case DIFF:
{ {
amount = Math.min(basicAmount, effected.getMaxRecoverableHp() - effected.getCurrentHp()); amount = Math.min(basicAmount, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp()));
break; break;
} }
case PER: case PER:
{ {
amount = Math.min((effected.getMaxHp() * basicAmount) / 100.0, effected.getMaxRecoverableHp() - effected.getCurrentHp()); amount = Math.min((effected.getMaxHp() * basicAmount) / 100.0, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp()));
break; break;
} }
} }

View File

@@ -70,7 +70,7 @@ public class ManaHealPercent extends AbstractEffect
} }
// Prevents overheal // Prevents overheal
amount = Math.min(amount, effected.getMaxRecoverableMp() - effected.getCurrentMp()); amount = Math.min(amount, Math.max(0, effected.getMaxRecoverableMp() - effected.getCurrentMp()));
if (amount != 0) if (amount != 0)
{ {
final double newMp = amount + effected.getCurrentMp(); final double newMp = amount + effected.getCurrentMp();

View File

@@ -66,12 +66,12 @@ public class Mp extends AbstractEffect
{ {
case DIFF: case DIFF:
{ {
amount = Math.min(basicAmount, effected.getMaxRecoverableMp() - effected.getCurrentMp()); amount = Math.min(basicAmount, Math.max(0, effected.getMaxRecoverableMp() - effected.getCurrentMp()));
break; break;
} }
case PER: case PER:
{ {
amount = Math.min((effected.getMaxMp() * basicAmount) / 100.0, effected.getMaxRecoverableMp() - effected.getCurrentMp()); amount = Math.min((effected.getMaxMp() * basicAmount) / 100.0, Math.max(0, effected.getMaxRecoverableMp() - effected.getCurrentMp()));
break; break;
} }
} }

View File

@@ -66,12 +66,12 @@ public class Cp extends AbstractEffect
{ {
case DIFF: case DIFF:
{ {
amount = Math.min(basicAmount, effected.getMaxRecoverableCp() - effected.getCurrentCp()); amount = Math.min(basicAmount, Math.max(0, effected.getMaxRecoverableCp() - effected.getCurrentCp()));
break; break;
} }
case PER: case PER:
{ {
amount = Math.min((effected.getMaxCp() * basicAmount) / 100.0, effected.getMaxRecoverableCp() - effected.getCurrentCp()); amount = Math.min((effected.getMaxCp() * basicAmount) / 100.0, Math.max(0, effected.getMaxRecoverableCp() - effected.getCurrentCp()));
break; break;
} }
} }

View File

@@ -125,7 +125,7 @@ public class Heal extends AbstractEffect
} }
// Prevents overheal // Prevents overheal
amount = Math.min(amount, effected.getMaxRecoverableHp() - effected.getCurrentHp()); amount = Math.min(amount, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp()));
if (amount != 0) if (amount != 0)
{ {
final double newHp = amount + effected.getCurrentHp(); final double newHp = amount + effected.getCurrentHp();

View File

@@ -70,7 +70,7 @@ public class HealPercent extends AbstractEffect
} }
// Prevents overheal // Prevents overheal
amount = Math.min(amount, effected.getMaxRecoverableHp() - effected.getCurrentHp()); amount = Math.min(amount, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp()));
if (amount >= 0) if (amount >= 0)
{ {
if (amount != 0) if (amount != 0)

View File

@@ -66,12 +66,12 @@ public class Hp extends AbstractEffect
{ {
case DIFF: case DIFF:
{ {
amount = Math.min(basicAmount, effected.getMaxRecoverableHp() - effected.getCurrentHp()); amount = Math.min(basicAmount, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp()));
break; break;
} }
case PER: case PER:
{ {
amount = Math.min((effected.getMaxHp() * basicAmount) / 100.0, effected.getMaxRecoverableHp() - effected.getCurrentHp()); amount = Math.min((effected.getMaxHp() * basicAmount) / 100.0, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp()));
break; break;
} }
} }

View File

@@ -70,7 +70,7 @@ public class ManaHealPercent extends AbstractEffect
} }
// Prevents overheal // Prevents overheal
amount = Math.min(amount, effected.getMaxRecoverableMp() - effected.getCurrentMp()); amount = Math.min(amount, Math.max(0, effected.getMaxRecoverableMp() - effected.getCurrentMp()));
if (amount != 0) if (amount != 0)
{ {
final double newMp = amount + effected.getCurrentMp(); final double newMp = amount + effected.getCurrentMp();

View File

@@ -66,12 +66,12 @@ public class Mp extends AbstractEffect
{ {
case DIFF: case DIFF:
{ {
amount = Math.min(basicAmount, effected.getMaxRecoverableMp() - effected.getCurrentMp()); amount = Math.min(basicAmount, Math.max(0, effected.getMaxRecoverableMp() - effected.getCurrentMp()));
break; break;
} }
case PER: case PER:
{ {
amount = Math.min((effected.getMaxMp() * basicAmount) / 100.0, effected.getMaxRecoverableMp() - effected.getCurrentMp()); amount = Math.min((effected.getMaxMp() * basicAmount) / 100.0, Math.max(0, effected.getMaxRecoverableMp() - effected.getCurrentMp()));
break; break;
} }
} }

View File

@@ -66,12 +66,12 @@ public class Cp extends AbstractEffect
{ {
case DIFF: case DIFF:
{ {
amount = Math.min(basicAmount, effected.getMaxRecoverableCp() - effected.getCurrentCp()); amount = Math.min(basicAmount, Math.max(0, effected.getMaxRecoverableCp() - effected.getCurrentCp()));
break; break;
} }
case PER: case PER:
{ {
amount = Math.min((effected.getMaxCp() * basicAmount) / 100.0, effected.getMaxRecoverableCp() - effected.getCurrentCp()); amount = Math.min((effected.getMaxCp() * basicAmount) / 100.0, Math.max(0, effected.getMaxRecoverableCp() - effected.getCurrentCp()));
break; break;
} }
} }

View File

@@ -125,7 +125,7 @@ public class Heal extends AbstractEffect
} }
// Prevents overheal // Prevents overheal
amount = Math.min(amount, effected.getMaxRecoverableHp() - effected.getCurrentHp()); amount = Math.min(amount, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp()));
if (amount != 0) if (amount != 0)
{ {
final double newHp = amount + effected.getCurrentHp(); final double newHp = amount + effected.getCurrentHp();

View File

@@ -70,7 +70,7 @@ public class HealPercent extends AbstractEffect
} }
// Prevents overheal // Prevents overheal
amount = Math.min(amount, effected.getMaxRecoverableHp() - effected.getCurrentHp()); amount = Math.min(amount, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp()));
if (amount >= 0) if (amount >= 0)
{ {
if (amount != 0) if (amount != 0)

View File

@@ -66,12 +66,12 @@ public class Hp extends AbstractEffect
{ {
case DIFF: case DIFF:
{ {
amount = Math.min(basicAmount, effected.getMaxRecoverableHp() - effected.getCurrentHp()); amount = Math.min(basicAmount, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp()));
break; break;
} }
case PER: case PER:
{ {
amount = Math.min((effected.getMaxHp() * basicAmount) / 100.0, effected.getMaxRecoverableHp() - effected.getCurrentHp()); amount = Math.min((effected.getMaxHp() * basicAmount) / 100.0, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp()));
break; break;
} }
} }

View File

@@ -70,7 +70,7 @@ public class ManaHealPercent extends AbstractEffect
} }
// Prevents overheal // Prevents overheal
amount = Math.min(amount, effected.getMaxRecoverableMp() - effected.getCurrentMp()); amount = Math.min(amount, Math.max(0, effected.getMaxRecoverableMp() - effected.getCurrentMp()));
if (amount != 0) if (amount != 0)
{ {
final double newMp = amount + effected.getCurrentMp(); final double newMp = amount + effected.getCurrentMp();

View File

@@ -66,12 +66,12 @@ public class Mp extends AbstractEffect
{ {
case DIFF: case DIFF:
{ {
amount = Math.min(basicAmount, effected.getMaxRecoverableMp() - effected.getCurrentMp()); amount = Math.min(basicAmount, Math.max(0, effected.getMaxRecoverableMp() - effected.getCurrentMp()));
break; break;
} }
case PER: case PER:
{ {
amount = Math.min((effected.getMaxMp() * basicAmount) / 100.0, effected.getMaxRecoverableMp() - effected.getCurrentMp()); amount = Math.min((effected.getMaxMp() * basicAmount) / 100.0, Math.max(0, effected.getMaxRecoverableMp() - effected.getCurrentMp()));
break; break;
} }
} }

View File

@@ -66,12 +66,12 @@ public class Cp extends AbstractEffect
{ {
case DIFF: case DIFF:
{ {
amount = Math.min(basicAmount, effected.getMaxRecoverableCp() - effected.getCurrentCp()); amount = Math.min(basicAmount, Math.max(0, effected.getMaxRecoverableCp() - effected.getCurrentCp()));
break; break;
} }
case PER: case PER:
{ {
amount = Math.min((effected.getMaxCp() * basicAmount) / 100.0, effected.getMaxRecoverableCp() - effected.getCurrentCp()); amount = Math.min((effected.getMaxCp() * basicAmount) / 100.0, Math.max(0, effected.getMaxRecoverableCp() - effected.getCurrentCp()));
break; break;
} }
} }

View File

@@ -125,7 +125,7 @@ public class Heal extends AbstractEffect
} }
// Prevents overheal // Prevents overheal
amount = Math.min(amount, effected.getMaxRecoverableHp() - effected.getCurrentHp()); amount = Math.min(amount, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp()));
if (amount != 0) if (amount != 0)
{ {
final double newHp = amount + effected.getCurrentHp(); final double newHp = amount + effected.getCurrentHp();

View File

@@ -70,7 +70,7 @@ public class HealPercent extends AbstractEffect
} }
// Prevents overheal // Prevents overheal
amount = Math.min(amount, effected.getMaxRecoverableHp() - effected.getCurrentHp()); amount = Math.min(amount, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp()));
if (amount >= 0) if (amount >= 0)
{ {
if (amount != 0) if (amount != 0)

View File

@@ -66,12 +66,12 @@ public class Hp extends AbstractEffect
{ {
case DIFF: case DIFF:
{ {
amount = Math.min(basicAmount, effected.getMaxRecoverableHp() - effected.getCurrentHp()); amount = Math.min(basicAmount, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp()));
break; break;
} }
case PER: case PER:
{ {
amount = Math.min((effected.getMaxHp() * basicAmount) / 100.0, effected.getMaxRecoverableHp() - effected.getCurrentHp()); amount = Math.min((effected.getMaxHp() * basicAmount) / 100.0, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp()));
break; break;
} }
} }

View File

@@ -70,7 +70,7 @@ public class ManaHealPercent extends AbstractEffect
} }
// Prevents overheal // Prevents overheal
amount = Math.min(amount, effected.getMaxRecoverableMp() - effected.getCurrentMp()); amount = Math.min(amount, Math.max(0, effected.getMaxRecoverableMp() - effected.getCurrentMp()));
if (amount != 0) if (amount != 0)
{ {
final double newMp = amount + effected.getCurrentMp(); final double newMp = amount + effected.getCurrentMp();

View File

@@ -66,12 +66,12 @@ public class Mp extends AbstractEffect
{ {
case DIFF: case DIFF:
{ {
amount = Math.min(basicAmount, effected.getMaxRecoverableMp() - effected.getCurrentMp()); amount = Math.min(basicAmount, Math.max(0, effected.getMaxRecoverableMp() - effected.getCurrentMp()));
break; break;
} }
case PER: case PER:
{ {
amount = Math.min((effected.getMaxMp() * basicAmount) / 100.0, effected.getMaxRecoverableMp() - effected.getCurrentMp()); amount = Math.min((effected.getMaxMp() * basicAmount) / 100.0, Math.max(0, effected.getMaxRecoverableMp() - effected.getCurrentMp()));
break; break;
} }
} }

View File

@@ -66,12 +66,12 @@ public class Cp extends AbstractEffect
{ {
case DIFF: case DIFF:
{ {
amount = Math.min(basicAmount, effected.getMaxRecoverableCp() - effected.getCurrentCp()); amount = Math.min(basicAmount, Math.max(0, effected.getMaxRecoverableCp() - effected.getCurrentCp()));
break; break;
} }
case PER: case PER:
{ {
amount = Math.min((effected.getMaxCp() * basicAmount) / 100.0, effected.getMaxRecoverableCp() - effected.getCurrentCp()); amount = Math.min((effected.getMaxCp() * basicAmount) / 100.0, Math.max(0, effected.getMaxRecoverableCp() - effected.getCurrentCp()));
break; break;
} }
} }

View File

@@ -125,7 +125,7 @@ public class Heal extends AbstractEffect
} }
// Prevents overheal // Prevents overheal
amount = Math.min(amount, effected.getMaxRecoverableHp() - effected.getCurrentHp()); amount = Math.min(amount, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp()));
if (amount != 0) if (amount != 0)
{ {
final double newHp = amount + effected.getCurrentHp(); final double newHp = amount + effected.getCurrentHp();

View File

@@ -70,7 +70,7 @@ public class HealPercent extends AbstractEffect
} }
// Prevents overheal // Prevents overheal
amount = Math.min(amount, effected.getMaxRecoverableHp() - effected.getCurrentHp()); amount = Math.min(amount, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp()));
if (amount >= 0) if (amount >= 0)
{ {
if (amount != 0) if (amount != 0)

View File

@@ -66,12 +66,12 @@ public class Hp extends AbstractEffect
{ {
case DIFF: case DIFF:
{ {
amount = Math.min(basicAmount, effected.getMaxRecoverableHp() - effected.getCurrentHp()); amount = Math.min(basicAmount, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp()));
break; break;
} }
case PER: case PER:
{ {
amount = Math.min((effected.getMaxHp() * basicAmount) / 100.0, effected.getMaxRecoverableHp() - effected.getCurrentHp()); amount = Math.min((effected.getMaxHp() * basicAmount) / 100.0, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp()));
break; break;
} }
} }

View File

@@ -70,7 +70,7 @@ public class ManaHealPercent extends AbstractEffect
} }
// Prevents overheal // Prevents overheal
amount = Math.min(amount, effected.getMaxRecoverableMp() - effected.getCurrentMp()); amount = Math.min(amount, Math.max(0, effected.getMaxRecoverableMp() - effected.getCurrentMp()));
if (amount != 0) if (amount != 0)
{ {
final double newMp = amount + effected.getCurrentMp(); final double newMp = amount + effected.getCurrentMp();

View File

@@ -66,12 +66,12 @@ public class Mp extends AbstractEffect
{ {
case DIFF: case DIFF:
{ {
amount = Math.min(basicAmount, effected.getMaxRecoverableMp() - effected.getCurrentMp()); amount = Math.min(basicAmount, Math.max(0, effected.getMaxRecoverableMp() - effected.getCurrentMp()));
break; break;
} }
case PER: case PER:
{ {
amount = Math.min((effected.getMaxMp() * basicAmount) / 100.0, effected.getMaxRecoverableMp() - effected.getCurrentMp()); amount = Math.min((effected.getMaxMp() * basicAmount) / 100.0, Math.max(0, effected.getMaxRecoverableMp() - effected.getCurrentMp()));
break; break;
} }
} }

View File

@@ -66,12 +66,12 @@ public class Cp extends AbstractEffect
{ {
case DIFF: case DIFF:
{ {
amount = Math.min(basicAmount, effected.getMaxRecoverableCp() - effected.getCurrentCp()); amount = Math.min(basicAmount, Math.max(0, effected.getMaxRecoverableCp() - effected.getCurrentCp()));
break; break;
} }
case PER: case PER:
{ {
amount = Math.min((effected.getMaxCp() * basicAmount) / 100.0, effected.getMaxRecoverableCp() - effected.getCurrentCp()); amount = Math.min((effected.getMaxCp() * basicAmount) / 100.0, Math.max(0, effected.getMaxRecoverableCp() - effected.getCurrentCp()));
break; break;
} }
} }

View File

@@ -125,7 +125,7 @@ public class Heal extends AbstractEffect
} }
// Prevents overheal // Prevents overheal
amount = Math.min(amount, effected.getMaxRecoverableHp() - effected.getCurrentHp()); amount = Math.min(amount, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp()));
if (amount != 0) if (amount != 0)
{ {
final double newHp = amount + effected.getCurrentHp(); final double newHp = amount + effected.getCurrentHp();

View File

@@ -70,7 +70,7 @@ public class HealPercent extends AbstractEffect
} }
// Prevents overheal // Prevents overheal
amount = Math.min(amount, effected.getMaxRecoverableHp() - effected.getCurrentHp()); amount = Math.min(amount, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp()));
if (amount >= 0) if (amount >= 0)
{ {
if (amount != 0) if (amount != 0)

View File

@@ -66,12 +66,12 @@ public class Hp extends AbstractEffect
{ {
case DIFF: case DIFF:
{ {
amount = Math.min(basicAmount, effected.getMaxRecoverableHp() - effected.getCurrentHp()); amount = Math.min(basicAmount, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp()));
break; break;
} }
case PER: case PER:
{ {
amount = Math.min((effected.getMaxHp() * basicAmount) / 100.0, effected.getMaxRecoverableHp() - effected.getCurrentHp()); amount = Math.min((effected.getMaxHp() * basicAmount) / 100.0, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp()));
break; break;
} }
} }

View File

@@ -70,7 +70,7 @@ public class ManaHealPercent extends AbstractEffect
} }
// Prevents overheal // Prevents overheal
amount = Math.min(amount, effected.getMaxRecoverableMp() - effected.getCurrentMp()); amount = Math.min(amount, Math.max(0, effected.getMaxRecoverableMp() - effected.getCurrentMp()));
if (amount != 0) if (amount != 0)
{ {
final double newMp = amount + effected.getCurrentMp(); final double newMp = amount + effected.getCurrentMp();

View File

@@ -66,12 +66,12 @@ public class Mp extends AbstractEffect
{ {
case DIFF: case DIFF:
{ {
amount = Math.min(basicAmount, effected.getMaxRecoverableMp() - effected.getCurrentMp()); amount = Math.min(basicAmount, Math.max(0, effected.getMaxRecoverableMp() - effected.getCurrentMp()));
break; break;
} }
case PER: case PER:
{ {
amount = Math.min((effected.getMaxMp() * basicAmount) / 100.0, effected.getMaxRecoverableMp() - effected.getCurrentMp()); amount = Math.min((effected.getMaxMp() * basicAmount) / 100.0, Math.max(0, effected.getMaxRecoverableMp() - effected.getCurrentMp()));
break; break;
} }
} }

View File

@@ -66,12 +66,12 @@ public class Cp extends AbstractEffect
{ {
case DIFF: case DIFF:
{ {
amount = Math.min(basicAmount, effected.getMaxRecoverableCp() - effected.getCurrentCp()); amount = Math.min(basicAmount, Math.max(0, effected.getMaxRecoverableCp() - effected.getCurrentCp()));
break; break;
} }
case PER: case PER:
{ {
amount = Math.min((effected.getMaxCp() * basicAmount) / 100.0, effected.getMaxRecoverableCp() - effected.getCurrentCp()); amount = Math.min((effected.getMaxCp() * basicAmount) / 100.0, Math.max(0, effected.getMaxRecoverableCp() - effected.getCurrentCp()));
break; break;
} }
} }

View File

@@ -125,7 +125,7 @@ public class Heal extends AbstractEffect
} }
// Prevents overheal // Prevents overheal
amount = Math.min(amount, effected.getMaxRecoverableHp() - effected.getCurrentHp()); amount = Math.min(amount, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp()));
if (amount != 0) if (amount != 0)
{ {
final double newHp = amount + effected.getCurrentHp(); final double newHp = amount + effected.getCurrentHp();

View File

@@ -70,7 +70,7 @@ public class HealPercent extends AbstractEffect
} }
// Prevents overheal // Prevents overheal
amount = Math.min(amount, effected.getMaxRecoverableHp() - effected.getCurrentHp()); amount = Math.min(amount, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp()));
if (amount >= 0) if (amount >= 0)
{ {
if (amount != 0) if (amount != 0)

View File

@@ -66,12 +66,12 @@ public class Hp extends AbstractEffect
{ {
case DIFF: case DIFF:
{ {
amount = Math.min(basicAmount, effected.getMaxRecoverableHp() - effected.getCurrentHp()); amount = Math.min(basicAmount, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp()));
break; break;
} }
case PER: case PER:
{ {
amount = Math.min((effected.getMaxHp() * basicAmount) / 100.0, effected.getMaxRecoverableHp() - effected.getCurrentHp()); amount = Math.min((effected.getMaxHp() * basicAmount) / 100.0, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp()));
break; break;
} }
} }

View File

@@ -70,7 +70,7 @@ public class ManaHealPercent extends AbstractEffect
} }
// Prevents overheal // Prevents overheal
amount = Math.min(amount, effected.getMaxRecoverableMp() - effected.getCurrentMp()); amount = Math.min(amount, Math.max(0, effected.getMaxRecoverableMp() - effected.getCurrentMp()));
if (amount != 0) if (amount != 0)
{ {
final double newMp = amount + effected.getCurrentMp(); final double newMp = amount + effected.getCurrentMp();

View File

@@ -66,12 +66,12 @@ public class Mp extends AbstractEffect
{ {
case DIFF: case DIFF:
{ {
amount = Math.min(basicAmount, effected.getMaxRecoverableMp() - effected.getCurrentMp()); amount = Math.min(basicAmount, Math.max(0, effected.getMaxRecoverableMp() - effected.getCurrentMp()));
break; break;
} }
case PER: case PER:
{ {
amount = Math.min((effected.getMaxMp() * basicAmount) / 100.0, effected.getMaxRecoverableMp() - effected.getCurrentMp()); amount = Math.min((effected.getMaxMp() * basicAmount) / 100.0, Math.max(0, effected.getMaxRecoverableMp() - effected.getCurrentMp()));
break; break;
} }
} }

View File

@@ -66,12 +66,12 @@ public class Cp extends AbstractEffect
{ {
case DIFF: case DIFF:
{ {
amount = Math.min(basicAmount, effected.getMaxRecoverableCp() - effected.getCurrentCp()); amount = Math.min(basicAmount, Math.max(0, effected.getMaxRecoverableCp() - effected.getCurrentCp()));
break; break;
} }
case PER: case PER:
{ {
amount = Math.min((effected.getMaxCp() * basicAmount) / 100.0, effected.getMaxRecoverableCp() - effected.getCurrentCp()); amount = Math.min((effected.getMaxCp() * basicAmount) / 100.0, Math.max(0, effected.getMaxRecoverableCp() - effected.getCurrentCp()));
break; break;
} }
} }

View File

@@ -125,7 +125,7 @@ public class Heal extends AbstractEffect
} }
// Prevents overheal // Prevents overheal
amount = Math.min(amount, effected.getMaxRecoverableHp() - effected.getCurrentHp()); amount = Math.min(amount, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp()));
if (amount != 0) if (amount != 0)
{ {
final double newHp = amount + effected.getCurrentHp(); final double newHp = amount + effected.getCurrentHp();

View File

@@ -70,7 +70,7 @@ public class HealPercent extends AbstractEffect
} }
// Prevents overheal // Prevents overheal
amount = Math.min(amount, effected.getMaxRecoverableHp() - effected.getCurrentHp()); amount = Math.min(amount, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp()));
if (amount >= 0) if (amount >= 0)
{ {
if (amount != 0) if (amount != 0)

View File

@@ -66,12 +66,12 @@ public class Hp extends AbstractEffect
{ {
case DIFF: case DIFF:
{ {
amount = Math.min(basicAmount, effected.getMaxRecoverableHp() - effected.getCurrentHp()); amount = Math.min(basicAmount, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp()));
break; break;
} }
case PER: case PER:
{ {
amount = Math.min((effected.getMaxHp() * basicAmount) / 100.0, effected.getMaxRecoverableHp() - effected.getCurrentHp()); amount = Math.min((effected.getMaxHp() * basicAmount) / 100.0, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp()));
break; break;
} }
} }

View File

@@ -70,7 +70,7 @@ public class ManaHealPercent extends AbstractEffect
} }
// Prevents overheal // Prevents overheal
amount = Math.min(amount, effected.getMaxRecoverableMp() - effected.getCurrentMp()); amount = Math.min(amount, Math.max(0, effected.getMaxRecoverableMp() - effected.getCurrentMp()));
if (amount != 0) if (amount != 0)
{ {
final double newMp = amount + effected.getCurrentMp(); final double newMp = amount + effected.getCurrentMp();

View File

@@ -66,12 +66,12 @@ public class Mp extends AbstractEffect
{ {
case DIFF: case DIFF:
{ {
amount = Math.min(basicAmount, effected.getMaxRecoverableMp() - effected.getCurrentMp()); amount = Math.min(basicAmount, Math.max(0, effected.getMaxRecoverableMp() - effected.getCurrentMp()));
break; break;
} }
case PER: case PER:
{ {
amount = Math.min((effected.getMaxMp() * basicAmount) / 100.0, effected.getMaxRecoverableMp() - effected.getCurrentMp()); amount = Math.min((effected.getMaxMp() * basicAmount) / 100.0, Math.max(0, effected.getMaxRecoverableMp() - effected.getCurrentMp()));
break; break;
} }
} }

View File

@@ -66,12 +66,12 @@ public class Cp extends AbstractEffect
{ {
case DIFF: case DIFF:
{ {
amount = Math.min(basicAmount, effected.getMaxRecoverableCp() - effected.getCurrentCp()); amount = Math.min(basicAmount, Math.max(0, effected.getMaxRecoverableCp() - effected.getCurrentCp()));
break; break;
} }
case PER: case PER:
{ {
amount = Math.min((effected.getMaxCp() * basicAmount) / 100.0, effected.getMaxRecoverableCp() - effected.getCurrentCp()); amount = Math.min((effected.getMaxCp() * basicAmount) / 100.0, Math.max(0, effected.getMaxRecoverableCp() - effected.getCurrentCp()));
break; break;
} }
} }

View File

@@ -130,7 +130,7 @@ public class Heal extends AbstractEffect
} }
// Prevents overheal // Prevents overheal
amount = Math.min(amount, effected.getMaxRecoverableHp() - effected.getCurrentHp()); amount = Math.min(amount, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp()));
if (amount != 0) if (amount != 0)
{ {
final double newHp = amount + effected.getCurrentHp(); final double newHp = amount + effected.getCurrentHp();

View File

@@ -75,7 +75,7 @@ public class HealPercent extends AbstractEffect
} }
// Prevents overheal // Prevents overheal
amount = Math.min(amount, effected.getMaxRecoverableHp() - effected.getCurrentHp()); amount = Math.min(amount, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp()));
if (amount >= 0) if (amount >= 0)
{ {
if (amount != 0) if (amount != 0)

View File

@@ -71,12 +71,12 @@ public class Hp extends AbstractEffect
{ {
case DIFF: case DIFF:
{ {
amount = Math.min(basicAmount, effected.getMaxRecoverableHp() - effected.getCurrentHp()); amount = Math.min(basicAmount, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp()));
break; break;
} }
case PER: case PER:
{ {
amount = Math.min((effected.getMaxHp() * basicAmount) / 100.0, effected.getMaxRecoverableHp() - effected.getCurrentHp()); amount = Math.min((effected.getMaxHp() * basicAmount) / 100.0, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp()));
break; break;
} }
} }

View File

@@ -70,7 +70,7 @@ public class ManaHealPercent extends AbstractEffect
} }
// Prevents overheal // Prevents overheal
amount = Math.min(amount, effected.getMaxRecoverableMp() - effected.getCurrentMp()); amount = Math.min(amount, Math.max(0, effected.getMaxRecoverableMp() - effected.getCurrentMp()));
if (amount != 0) if (amount != 0)
{ {
final double newMp = amount + effected.getCurrentMp(); final double newMp = amount + effected.getCurrentMp();

View File

@@ -66,12 +66,12 @@ public class Mp extends AbstractEffect
{ {
case DIFF: case DIFF:
{ {
amount = Math.min(basicAmount, effected.getMaxRecoverableMp() - effected.getCurrentMp()); amount = Math.min(basicAmount, Math.max(0, effected.getMaxRecoverableMp() - effected.getCurrentMp()));
break; break;
} }
case PER: case PER:
{ {
amount = Math.min((effected.getMaxMp() * basicAmount) / 100.0, effected.getMaxRecoverableMp() - effected.getCurrentMp()); amount = Math.min((effected.getMaxMp() * basicAmount) / 100.0, Math.max(0, effected.getMaxRecoverableMp() - effected.getCurrentMp()));
break; break;
} }
} }

View File

@@ -66,12 +66,12 @@ public class Cp extends AbstractEffect
{ {
case DIFF: case DIFF:
{ {
amount = Math.min(basicAmount, effected.getMaxRecoverableCp() - effected.getCurrentCp()); amount = Math.min(basicAmount, Math.max(0, effected.getMaxRecoverableCp() - effected.getCurrentCp()));
break; break;
} }
case PER: case PER:
{ {
amount = Math.min((effected.getMaxCp() * basicAmount) / 100.0, effected.getMaxRecoverableCp() - effected.getCurrentCp()); amount = Math.min((effected.getMaxCp() * basicAmount) / 100.0, Math.max(0, effected.getMaxRecoverableCp() - effected.getCurrentCp()));
break; break;
} }
} }

View File

@@ -125,7 +125,7 @@ public class Heal extends AbstractEffect
} }
// Prevents overheal // Prevents overheal
amount = Math.min(amount, effected.getMaxRecoverableHp() - effected.getCurrentHp()); amount = Math.min(amount, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp()));
if (amount != 0) if (amount != 0)
{ {
final double newHp = amount + effected.getCurrentHp(); final double newHp = amount + effected.getCurrentHp();

View File

@@ -70,7 +70,7 @@ public class HealPercent extends AbstractEffect
} }
// Prevents overheal // Prevents overheal
amount = Math.min(amount, effected.getMaxRecoverableHp() - effected.getCurrentHp()); amount = Math.min(amount, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp()));
if (amount >= 0) if (amount >= 0)
{ {
if (amount != 0) if (amount != 0)

View File

@@ -66,12 +66,12 @@ public class Hp extends AbstractEffect
{ {
case DIFF: case DIFF:
{ {
amount = Math.min(basicAmount, effected.getMaxRecoverableHp() - effected.getCurrentHp()); amount = Math.min(basicAmount, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp()));
break; break;
} }
case PER: case PER:
{ {
amount = Math.min((effected.getMaxHp() * basicAmount) / 100.0, effected.getMaxRecoverableHp() - effected.getCurrentHp()); amount = Math.min((effected.getMaxHp() * basicAmount) / 100.0, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp()));
break; break;
} }
} }

View File

@@ -70,7 +70,7 @@ public class ManaHealPercent extends AbstractEffect
} }
// Prevents overheal // Prevents overheal
amount = Math.min(amount, effected.getMaxRecoverableMp() - effected.getCurrentMp()); amount = Math.min(amount, Math.max(0, effected.getMaxRecoverableMp() - effected.getCurrentMp()));
if (amount != 0) if (amount != 0)
{ {
final double newMp = amount + effected.getCurrentMp(); final double newMp = amount + effected.getCurrentMp();

View File

@@ -66,12 +66,12 @@ public class Mp extends AbstractEffect
{ {
case DIFF: case DIFF:
{ {
amount = Math.min(basicAmount, effected.getMaxRecoverableMp() - effected.getCurrentMp()); amount = Math.min(basicAmount, Math.max(0, effected.getMaxRecoverableMp() - effected.getCurrentMp()));
break; break;
} }
case PER: case PER:
{ {
amount = Math.min((effected.getMaxMp() * basicAmount) / 100.0, effected.getMaxRecoverableMp() - effected.getCurrentMp()); amount = Math.min((effected.getMaxMp() * basicAmount) / 100.0, Math.max(0, effected.getMaxRecoverableMp() - effected.getCurrentMp()));
break; break;
} }
} }