Fixed skills aborting when player on full HP.

Contributed by Sahar.
This commit is contained in:
MobiusDevelopment
2020-06-02 21:32:21 +00:00
parent 4eeac28627
commit a3e8e337fe
45 changed files with 900 additions and 135 deletions

View File

@@ -48,9 +48,19 @@ public class CpHealOverTime extends AbstractEffect
final double maxcp = effected.getMaxRecoverableCp();
// Not needed to set the CP and send update packet if player is already at max CP
if (cp >= maxcp)
if (_power > 0)
{
return false;
if (cp >= maxcp)
{
return false;
}
}
else
{
if ((cp - _power) <= 0)
{
return false;
}
}
double power = _power;
@@ -60,7 +70,14 @@ public class CpHealOverTime extends AbstractEffect
}
cp += power * getTicksMultiplier();
cp = Math.min(cp, maxcp);
if (_power > 0)
{
cp = Math.min(cp, maxcp);
}
else
{
cp = Math.max(cp, 1);
}
effected.setCurrentCp(cp, false);
effected.broadcastStatusUpdate(effector);
return true;

View File

@@ -50,9 +50,19 @@ public class HealOverTime extends AbstractEffect
final double maxhp = effected.getMaxRecoverableHp();
// Not needed to set the HP and send update packet if player is already at max HP
if (hp >= maxhp)
if (_power > 0)
{
return false;
if (hp >= maxhp)
{
return false;
}
}
else
{
if ((hp - _power) <= 0)
{
return false;
}
}
double power = _power;
@@ -62,7 +72,14 @@ public class HealOverTime extends AbstractEffect
}
hp += power * getTicksMultiplier();
hp = Math.min(hp, maxhp);
if (_power > 0)
{
hp = Math.min(hp, maxhp);
}
else
{
hp = Math.max(hp, 1);
}
effected.setCurrentHp(hp, false);
effected.broadcastStatusUpdate(effector);
return skill.isToggle();

View File

@@ -48,9 +48,19 @@ public class ManaHealOverTime extends AbstractEffect
final double maxmp = effected.getMaxRecoverableMp();
// Not needed to set the MP and send update packet if player is already at max MP
if (mp >= maxmp)
if (_power > 0)
{
return true;
if (mp >= maxmp)
{
return true;
}
}
else
{
if ((mp - _power) <= 0)
{
return true;
}
}
double power = _power;
@@ -60,7 +70,14 @@ public class ManaHealOverTime extends AbstractEffect
}
mp += power * getTicksMultiplier();
mp = Math.min(mp, maxmp);
if (_power > 0)
{
mp = Math.min(mp, maxmp);
}
else
{
mp = Math.max(mp, 1);
}
effected.setCurrentMp(mp, false);
effected.broadcastStatusUpdate(effector);
return skill.isToggle();