|
@@ -56,25 +56,12 @@ public class CpHealPercent extends L2Effect
|
|
|
double power = calc();
|
|
|
boolean full = (power == 100.0);
|
|
|
|
|
|
- if (full)
|
|
|
- {
|
|
|
- amount = target.getMaxCp();
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- amount = (target.getMaxCp() * power) / 100.0;
|
|
|
- }
|
|
|
+ amount = full ? target.getMaxCp() : (target.getMaxCp() * power) / 100.0;
|
|
|
|
|
|
- amount = Math.min(amount, target.getMaxRecoverableCp() - target.getCurrentCp());
|
|
|
+ // Prevents overheal and negative amount
|
|
|
+ amount = Math.max(Math.min(amount, target.getMaxRecoverableCp() - target.getCurrentCp()), 0);
|
|
|
|
|
|
- // Prevent negative amounts
|
|
|
- amount = Math.max(amount, 0);
|
|
|
-
|
|
|
- // To prevent -value heals, set the value only if current Cp is less than max recoverable.
|
|
|
- if (target.getCurrentCp() < target.getMaxRecoverableCp())
|
|
|
- {
|
|
|
- target.setCurrentCp(amount + target.getCurrentCp());
|
|
|
- }
|
|
|
+ target.setCurrentCp(amount + target.getCurrentCp());
|
|
|
|
|
|
SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.S1_CP_WILL_BE_RESTORED);
|
|
|
sm.addNumber((int) amount);
|