From 7efa56e98739f02b6c1dcf50f5d2dfc8bc27cbe7 Mon Sep 17 00:00:00 2001 From: MobiusDevelopment <8391001+MobiusDevelopment@users.noreply.github.com> Date: Sat, 29 Feb 2020 15:33:51 +0000 Subject: [PATCH] Support for Kamael transformations. --- .../model/actor/instance/PlayerInstance.java | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java index 6c236a5a48..ca093a8e64 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java @@ -655,6 +655,10 @@ public class PlayerInstance extends Playable private ScheduledFuture _chargeTask = null; // Absorbed Souls + private final static int KAMAEL_LIGHT_MASTER = 45178; + private final static int KAMAEL_SHADOW_MASTER = 45179; + private final static int KAMAEL_LIGHT_TRANSFORMATION = 397; + private final static int KAMAEL_SHADOW_TRANSFORMATION = 398; private int _souls = 0; private ScheduledFuture _soulTask = null; @@ -11208,6 +11212,28 @@ public class PlayerInstance extends Playable sendPacket(sm); restartSoulTask(); sendPacket(new EtcStatusUpdate(this)); + + // TODO: Unhardcode? + if ((getRace() == Race.KAMAEL) && (_souls >= 100)) + { + int skillLevel = getSkillLevel(KAMAEL_SHADOW_MASTER); + if (skillLevel > 0) + { + abortCast(); + decreaseSouls(100); + SkillData.getInstance().getSkill(KAMAEL_SHADOW_TRANSFORMATION, skillLevel).applyEffects(this, this); + } + else + { + skillLevel = getSkillLevel(KAMAEL_LIGHT_MASTER); + if (skillLevel > 0) + { + abortCast(); + decreaseSouls(100); + SkillData.getInstance().getSkill(KAMAEL_LIGHT_TRANSFORMATION, skillLevel).applyEffects(this, this); + } + } + } } /**