Skip to content
Snippets Groups Projects
Commit 7ee3d49f authored by Adry_85's avatar Adry_85
Browse files

BETA: Avoid status update when amount of heal (cp, hp and mp) is 0.

	Reviewed by: UnAfraid
parent 4774fd93
No related branches found
No related tags found
No related merge requests found
...@@ -52,19 +52,20 @@ public class CpHeal extends L2Effect ...@@ -52,19 +52,20 @@ public class CpHeal extends L2Effect
return false; return false;
} }
StatusUpdate su = new StatusUpdate(target);
double amount = calc(); double amount = calc();
// Prevents overheal and negative amount // Prevents overheal and negative amount
amount = Math.max(Math.min(amount, target.getMaxRecoverableCp() - target.getCurrentCp()), 0); amount = Math.max(Math.min(amount, target.getMaxRecoverableCp() - target.getCurrentCp()), 0);
if (amount != 0)
target.setCurrentCp(amount + target.getCurrentCp()); {
target.setCurrentCp(amount + target.getCurrentCp());
StatusUpdate su = new StatusUpdate(target);
su.addAttribute(StatusUpdate.CUR_CP, (int) target.getCurrentCp());
target.sendPacket(su);
}
SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.S1_CP_WILL_BE_RESTORED); SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.S1_CP_WILL_BE_RESTORED);
sm.addNumber((int) amount); sm.addNumber((int) amount);
target.sendPacket(sm); target.sendPacket(sm);
su.addAttribute(StatusUpdate.CUR_CP, (int) target.getCurrentCp());
target.sendPacket(su);
return true; return true;
} }
......
...@@ -51,23 +51,24 @@ public class CpHealPercent extends L2Effect ...@@ -51,23 +51,24 @@ public class CpHealPercent extends L2Effect
{ {
return false; return false;
} }
StatusUpdate su = new StatusUpdate(target);
double amount = 0; double amount = 0;
double power = calc(); double power = calc();
boolean full = (power == 100.0); boolean full = (power == 100.0);
amount = full ? target.getMaxCp() : (target.getMaxCp() * power) / 100.0; amount = full ? target.getMaxCp() : (target.getMaxCp() * power) / 100.0;
// Prevents overheal and negative amount // Prevents overheal and negative amount
amount = Math.max(Math.min(amount, target.getMaxRecoverableCp() - target.getCurrentCp()), 0); amount = Math.max(Math.min(amount, target.getMaxRecoverableCp() - target.getCurrentCp()), 0);
if (amount != 0)
target.setCurrentCp(amount + target.getCurrentCp()); {
target.setCurrentCp(amount + target.getCurrentCp());
StatusUpdate su = new StatusUpdate(target);
su.addAttribute(StatusUpdate.CUR_CP, (int) target.getCurrentCp());
target.sendPacket(su);
}
SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.S1_CP_WILL_BE_RESTORED); SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.S1_CP_WILL_BE_RESTORED);
sm.addNumber((int) amount); sm.addNumber((int) amount);
target.sendPacket(sm); target.sendPacket(sm);
su.addAttribute(StatusUpdate.CUR_CP, (int) target.getCurrentCp());
target.sendPacket(su);
return true; return true;
} }
......
...@@ -101,10 +101,13 @@ public class Heal extends L2Effect ...@@ -101,10 +101,13 @@ public class Heal extends L2Effect
// Prevents overheal and negative amount // Prevents overheal and negative amount
amount = Math.max(Math.min(amount, target.getMaxRecoverableHp() - target.getCurrentHp()), 0); amount = Math.max(Math.min(amount, target.getMaxRecoverableHp() - target.getCurrentHp()), 0);
target.setCurrentHp(amount + target.getCurrentHp()); if (amount != 0)
StatusUpdate su = new StatusUpdate(target); {
su.addAttribute(StatusUpdate.CUR_HP, (int) target.getCurrentHp()); target.setCurrentHp(amount + target.getCurrentHp());
target.sendPacket(su); StatusUpdate su = new StatusUpdate(target);
su.addAttribute(StatusUpdate.CUR_HP, (int) target.getCurrentHp());
target.sendPacket(su);
}
if (target.isPlayer()) if (target.isPlayer())
{ {
......
...@@ -63,11 +63,7 @@ public class HealOverTime extends L2Effect ...@@ -63,11 +63,7 @@ public class HealOverTime extends L2Effect
@Override @Override
public boolean onActionTime() public boolean onActionTime()
{ {
if (getEffected().isDead()) if (getEffected().isDead() || getEffected().isDoor())
{
return false;
}
else if (getEffected().isDoor())
{ {
return false; return false;
} }
......
...@@ -52,18 +52,20 @@ public class HealPercent extends L2Effect ...@@ -52,18 +52,20 @@ public class HealPercent extends L2Effect
return false; return false;
} }
StatusUpdate su = new StatusUpdate(target);
double amount = 0; double amount = 0;
double power = calc(); double power = calc();
boolean full = (power == 100.0); boolean full = (power == 100.0);
amount = full ? target.getMaxHp() : (target.getMaxHp() * power) / 100.0; amount = full ? target.getMaxHp() : (target.getMaxHp() * power) / 100.0;
// Prevents overheal and negative amount // Prevents overheal and negative amount
amount = Math.max(Math.min(amount, target.getMaxRecoverableHp() - target.getCurrentHp()), 0); amount = Math.max(Math.min(amount, target.getMaxRecoverableHp() - target.getCurrentHp()), 0);
if (amount != 0)
target.setCurrentHp(amount + target.getCurrentHp()); {
target.setCurrentHp(amount + target.getCurrentHp());
StatusUpdate su = new StatusUpdate(target);
su.addAttribute(StatusUpdate.CUR_HP, (int) target.getCurrentHp());
target.sendPacket(su);
}
SystemMessage sm; SystemMessage sm;
if (getEffector().getObjectId() != target.getObjectId()) if (getEffector().getObjectId() != target.getObjectId())
{ {
...@@ -74,11 +76,8 @@ public class HealPercent extends L2Effect ...@@ -74,11 +76,8 @@ public class HealPercent extends L2Effect
{ {
sm = SystemMessage.getSystemMessage(SystemMessageId.S1_HP_RESTORED); sm = SystemMessage.getSystemMessage(SystemMessageId.S1_HP_RESTORED);
} }
sm.addNumber((int) amount); sm.addNumber((int) amount);
target.sendPacket(sm); target.sendPacket(sm);
su.addAttribute(StatusUpdate.CUR_HP, (int) target.getCurrentHp());
target.sendPacket(su);
return true; return true;
} }
......
...@@ -53,8 +53,6 @@ public class ManaHeal extends L2Effect ...@@ -53,8 +53,6 @@ public class ManaHeal extends L2Effect
return false; return false;
} }
StatusUpdate su = new StatusUpdate(target);
double amount = calc(); double amount = calc();
if (!getSkill().isStatic()) if (!getSkill().isStatic())
...@@ -64,9 +62,13 @@ public class ManaHeal extends L2Effect ...@@ -64,9 +62,13 @@ public class ManaHeal extends L2Effect
// Prevents overheal and negative amount // Prevents overheal and negative amount
amount = Math.max(Math.min(amount, target.getMaxRecoverableMp() - target.getCurrentMp()), 0); amount = Math.max(Math.min(amount, target.getMaxRecoverableMp() - target.getCurrentMp()), 0);
if (amount != 0)
target.setCurrentMp(amount + target.getCurrentMp()); {
target.setCurrentMp(amount + target.getCurrentMp());
StatusUpdate su = new StatusUpdate(target);
su.addAttribute(StatusUpdate.CUR_MP, (int) target.getCurrentMp());
target.sendPacket(su);
}
SystemMessage sm; SystemMessage sm;
if (getEffector().getObjectId() != target.getObjectId()) if (getEffector().getObjectId() != target.getObjectId())
{ {
...@@ -79,8 +81,6 @@ public class ManaHeal extends L2Effect ...@@ -79,8 +81,6 @@ public class ManaHeal extends L2Effect
} }
sm.addNumber((int) amount); sm.addNumber((int) amount);
target.sendPacket(sm); target.sendPacket(sm);
su.addAttribute(StatusUpdate.CUR_MP, (int) target.getCurrentMp());
target.sendPacket(su);
return true; return true;
} }
......
...@@ -53,7 +53,6 @@ public class ManaHealByLevel extends L2Effect ...@@ -53,7 +53,6 @@ public class ManaHealByLevel extends L2Effect
return false; return false;
} }
StatusUpdate su = new StatusUpdate(target);
double amount = calc(); double amount = calc();
// recharged mp influenced by difference between target level and skill level // recharged mp influenced by difference between target level and skill level
...@@ -107,9 +106,13 @@ public class ManaHealByLevel extends L2Effect ...@@ -107,9 +106,13 @@ public class ManaHealByLevel extends L2Effect
// Prevents overheal and negative amount // Prevents overheal and negative amount
amount = Math.max(Math.min(amount, target.getMaxRecoverableMp() - target.getCurrentMp()), 0); amount = Math.max(Math.min(amount, target.getMaxRecoverableMp() - target.getCurrentMp()), 0);
if (amount != 0)
target.setCurrentMp(amount + target.getCurrentMp()); {
target.setCurrentMp(amount + target.getCurrentMp());
StatusUpdate su = new StatusUpdate(target);
su.addAttribute(StatusUpdate.CUR_MP, (int) target.getCurrentMp());
target.sendPacket(su);
}
SystemMessage sm; SystemMessage sm;
if (getEffector().getObjectId() != target.getObjectId()) if (getEffector().getObjectId() != target.getObjectId())
{ {
...@@ -122,8 +125,6 @@ public class ManaHealByLevel extends L2Effect ...@@ -122,8 +125,6 @@ public class ManaHealByLevel extends L2Effect
} }
sm.addNumber((int) amount); sm.addNumber((int) amount);
target.sendPacket(sm); target.sendPacket(sm);
su.addAttribute(StatusUpdate.CUR_MP, (int) target.getCurrentMp());
target.sendPacket(su);
return true; return true;
} }
......
...@@ -51,18 +51,21 @@ public class ManaHealPercent extends L2Effect ...@@ -51,18 +51,21 @@ public class ManaHealPercent extends L2Effect
{ {
return false; return false;
} }
StatusUpdate su = new StatusUpdate(target);
double amount = 0; double amount = 0;
double power = calc(); double power = calc();
boolean full = (power == 100.0); boolean full = (power == 100.0);
amount = full ? target.getMaxMp() : (target.getMaxMp() * power) / 100.0; amount = full ? target.getMaxMp() : (target.getMaxMp() * power) / 100.0;
// Prevents overheal and negative amount // Prevents overheal and negative amount
amount = Math.max(Math.min(amount, target.getMaxRecoverableMp() - target.getCurrentMp()), 0); amount = Math.max(Math.min(amount, target.getMaxRecoverableMp() - target.getCurrentMp()), 0);
if (amount != 0)
target.setCurrentMp(amount + target.getCurrentMp()); {
target.setCurrentMp(amount + target.getCurrentMp());
StatusUpdate su = new StatusUpdate(target);
su.addAttribute(StatusUpdate.CUR_MP, (int) target.getCurrentMp());
target.sendPacket(su);
}
SystemMessage sm; SystemMessage sm;
if (getEffector().getObjectId() != target.getObjectId()) if (getEffector().getObjectId() != target.getObjectId())
{ {
...@@ -75,8 +78,6 @@ public class ManaHealPercent extends L2Effect ...@@ -75,8 +78,6 @@ public class ManaHealPercent extends L2Effect
} }
sm.addNumber((int) amount); sm.addNumber((int) amount);
target.sendPacket(sm); target.sendPacket(sm);
su.addAttribute(StatusUpdate.CUR_MP, (int) target.getCurrentMp());
target.sendPacket(su);
return true; return true;
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment