From 4f74d43081d6e7228c8919a8a02977e1d07a26e5 Mon Sep 17 00:00:00 2001 From: MagicBot Date: Thu, 20 Feb 2025 15:12:25 -0500 Subject: [PATCH] Error log for invalid effect --- src/engine/wpakpowers/WpakPowerManager.java | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/src/engine/wpakpowers/WpakPowerManager.java b/src/engine/wpakpowers/WpakPowerManager.java index 610854f6..0922fd8d 100644 --- a/src/engine/wpakpowers/WpakPowerManager.java +++ b/src/engine/wpakpowers/WpakPowerManager.java @@ -143,6 +143,7 @@ public class WpakPowerManager { //stunned check PlayerBonuses bonus = playerCharacter.getBonuses(); mbEnums.SourceType sourceType = mbEnums.SourceType.GetSourceType(powerCast.category); + if (bonus != null && (bonus.getBool(mbEnums.ModType.Stunned, mbEnums.SourceType.None) || bonus.getBool(mbEnums.ModType.CannotCast, mbEnums.SourceType.None) || bonus.getBool(mbEnums.ModType.BlockedPowerType, sourceType))) return true; @@ -177,9 +178,10 @@ public class WpakPowerManager { //validate prereqs for power cast //equipment prereqs - if (!powerCast.equipmentPreReq.isEmpty()) { + if (!powerCast.equipmentPreReq.isEmpty()) for (EquipmentPreReq prereq : powerCast.equipmentPreReq) { String requiredSkill = prereq.skill; + if (playerCharacter.charItemManager.equipped.get(prereq.slot) != null) { Item equippedItem = playerCharacter.charItemManager.equipped.get(prereq.slot); if (!equippedItem.template.item_skill_mastery_used.equals(requiredSkill) && !equippedItem.template.item_skill_used.equals(requiredSkill)) @@ -188,7 +190,6 @@ public class WpakPowerManager { return true; } } - } //effect prereqs if (!powerCast.effectPreReqs.isEmpty()) { @@ -239,6 +240,7 @@ public class WpakPowerManager { Dispatch dispatch = Dispatch.borrow(playerCharacter, recyclePowerMsg); DispatchManager.dispatchMsgDispatch(dispatch, mbEnums.DispatchChannel.PRIMARY); } + int tr = msg.getNumTrains(); DispatchManager.dispatchMsgToInterestArea(playerCharacter, msg, mbEnums.DispatchChannel.PRIMARY, MBServerStatics.CHARACTER_LOAD_RANGE, sendCastToSelf, false); @@ -252,7 +254,6 @@ public class WpakPowerManager { playerCharacter.setSit(false); UpdateStateMsg updateStateMsg = new UpdateStateMsg(playerCharacter); DispatchManager.dispatchMsgToInterestArea(playerCharacter, updateStateMsg, mbEnums.DispatchChannel.PRIMARY, MBServerStatics.CHARACTER_LOAD_RANGE, true, false); - } // update cast (use skill) fail condition @@ -267,13 +268,11 @@ public class WpakPowerManager { // set player is casting for regens - if (time > 100) { playerCharacter.update(); playerCharacter.setIsCasting(true); } - playerCharacter.setLastMovementState(playerCharacter.getMovementState()); // run timer job to end cast @@ -292,14 +291,18 @@ public class WpakPowerManager { } public static void finishUsePower(PerformActionMsg msg, PlayerCharacter caster, AbstractWorldObject target) { + Power powerUsed = _powersLookup.get(msg.getPowerUsedID()); - if (powerUsed == null) + + if (powerUsed == null) { + Logger.error("Invalid power: " + msg.getPowerUsedID()); return; - if (powerUsed.maxMobTargets > 1 || powerUsed.maxPlayerTargets > 1) { + } + + if (powerUsed.maxMobTargets > 1 || powerUsed.maxPlayerTargets > 1) AoeHandler(caster, target, powerUsed, msg.getNumTrains()); - } else { + else applyAllPowerEffects(caster, powerUsed, msg.getNumTrains(), target); - } } private static void AoeHandler(PlayerCharacter caster, AbstractWorldObject target, Power powerUsed, int rank) {