From cae3b7ffe08d23a6298e35e4595b3158efb295ea Mon Sep 17 00:00:00 2001 From: MobiusDev <8391001+MobiusDevelopment@users.noreply.github.com> Date: Sun, 10 Sep 2017 02:05:07 +0000 Subject: [PATCH] RebalanceHP should apply to servitor owner. Contributed by Patrioch. --- .../handlers/effecthandlers/RebalanceHP.java | 18 +++++++++++++++++- .../handlers/effecthandlers/RebalanceHP.java | 18 +++++++++++++++++- .../handlers/effecthandlers/RebalanceHP.java | 18 +++++++++++++++++- .../handlers/effecthandlers/RebalanceHP.java | 18 +++++++++++++++++- 4 files changed, 68 insertions(+), 4 deletions(-) diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/RebalanceHP.java b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/RebalanceHP.java index 8495977a33..dfa3ce0847 100644 --- a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/RebalanceHP.java +++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/RebalanceHP.java @@ -165,6 +165,9 @@ public final class RebalanceHP extends AbstractEffect } } + fullHP += effector.getMaxHp(); + fullHP += effector.getCurrentHp(); + final double percentHP = currentHPs / fullHP; for (L2Summon summon : effector.getServitors().values()) { @@ -187,8 +190,21 @@ public final class RebalanceHP extends AbstractEffect summon.setCurrentHp(newHP); } } + + double newHP = effector.getMaxHp() * percentHP; + if (newHP > effector.getCurrentHp()) + { + if (effector.getCurrentHp() > effector.getMaxRecoverableHp()) + { + newHP = effector.getCurrentHp(); + } + else if (newHP > effector.getMaxRecoverableHp()) + { + newHP = effector.getMaxRecoverableHp(); + } + } + effector.setCurrentHp(newHP); } } - } } diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/effecthandlers/RebalanceHP.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/effecthandlers/RebalanceHP.java index 8495977a33..dfa3ce0847 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/effecthandlers/RebalanceHP.java +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/effecthandlers/RebalanceHP.java @@ -165,6 +165,9 @@ public final class RebalanceHP extends AbstractEffect } } + fullHP += effector.getMaxHp(); + fullHP += effector.getCurrentHp(); + final double percentHP = currentHPs / fullHP; for (L2Summon summon : effector.getServitors().values()) { @@ -187,8 +190,21 @@ public final class RebalanceHP extends AbstractEffect summon.setCurrentHp(newHP); } } + + double newHP = effector.getMaxHp() * percentHP; + if (newHP > effector.getCurrentHp()) + { + if (effector.getCurrentHp() > effector.getMaxRecoverableHp()) + { + newHP = effector.getCurrentHp(); + } + else if (newHP > effector.getMaxRecoverableHp()) + { + newHP = effector.getMaxRecoverableHp(); + } + } + effector.setCurrentHp(newHP); } } - } } diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/effecthandlers/RebalanceHP.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/effecthandlers/RebalanceHP.java index 8495977a33..dfa3ce0847 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/effecthandlers/RebalanceHP.java +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/effecthandlers/RebalanceHP.java @@ -165,6 +165,9 @@ public final class RebalanceHP extends AbstractEffect } } + fullHP += effector.getMaxHp(); + fullHP += effector.getCurrentHp(); + final double percentHP = currentHPs / fullHP; for (L2Summon summon : effector.getServitors().values()) { @@ -187,8 +190,21 @@ public final class RebalanceHP extends AbstractEffect summon.setCurrentHp(newHP); } } + + double newHP = effector.getMaxHp() * percentHP; + if (newHP > effector.getCurrentHp()) + { + if (effector.getCurrentHp() > effector.getMaxRecoverableHp()) + { + newHP = effector.getCurrentHp(); + } + else if (newHP > effector.getMaxRecoverableHp()) + { + newHP = effector.getMaxRecoverableHp(); + } + } + effector.setCurrentHp(newHP); } } - } } diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/effecthandlers/RebalanceHP.java b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/effecthandlers/RebalanceHP.java index 8495977a33..dfa3ce0847 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/effecthandlers/RebalanceHP.java +++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/effecthandlers/RebalanceHP.java @@ -165,6 +165,9 @@ public final class RebalanceHP extends AbstractEffect } } + fullHP += effector.getMaxHp(); + fullHP += effector.getCurrentHp(); + final double percentHP = currentHPs / fullHP; for (L2Summon summon : effector.getServitors().values()) { @@ -187,8 +190,21 @@ public final class RebalanceHP extends AbstractEffect summon.setCurrentHp(newHP); } } + + double newHP = effector.getMaxHp() * percentHP; + if (newHP > effector.getCurrentHp()) + { + if (effector.getCurrentHp() > effector.getMaxRecoverableHp()) + { + newHP = effector.getCurrentHp(); + } + else if (newHP > effector.getMaxRecoverableHp()) + { + newHP = effector.getMaxRecoverableHp(); + } + } + effector.setCurrentHp(newHP); } } - } }