From e4e2466a6ee5b7cc61243eb805627b767bfb5ea3 Mon Sep 17 00:00:00 2001 From: Kam Date: Tue, 3 Mar 2026 14:55:49 -0500 Subject: [PATCH] Cleanup Damage Handling Logic for CNPC+ and DBC Addon for better readability / context. Added Magic Data Support to Abilities --- java/noppes/npcs/api/ability/IAbility.java | 8 ++++++++ java/noppes/npcs/api/entity/IEnergyAbility.java | 14 ++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/java/noppes/npcs/api/ability/IAbility.java b/java/noppes/npcs/api/ability/IAbility.java index 9fe7fee..1b0197e 100644 --- a/java/noppes/npcs/api/ability/IAbility.java +++ b/java/noppes/npcs/api/ability/IAbility.java @@ -1,6 +1,7 @@ package noppes.npcs.api.ability; import noppes.npcs.api.INbt; +import noppes.npcs.api.handler.data.IMagicData; /** * Interface for NPC abilities. @@ -343,4 +344,11 @@ public interface IAbility extends IAbilityAction { * @return the label, or null if none set. */ String getToggleStateLabel(int state); + + /** + * Get this ability's magic data. Defines magic types, damage splits, + * and flat magic damage for this ability. Inherited by spawned energy entities. + * @return the ability's magic data + */ + IMagicData getMagicData(); } diff --git a/java/noppes/npcs/api/entity/IEnergyAbility.java b/java/noppes/npcs/api/entity/IEnergyAbility.java index f0e37e4..32d2237 100644 --- a/java/noppes/npcs/api/entity/IEnergyAbility.java +++ b/java/noppes/npcs/api/entity/IEnergyAbility.java @@ -2,6 +2,7 @@ package noppes.npcs.api.entity; import net.minecraft.entity.Entity; import noppes.npcs.api.INbt; +import noppes.npcs.api.handler.data.IMagicData; /** * Base interface for all energy ability entities (Projectiles, Barriers). @@ -110,4 +111,17 @@ public interface IEnergyAbility extends IEntity { * @param data Custom damage data as INbt. Pass null to clear. */ void setDamageData(INbt data); + + /** + * Get this entity's magic data. Defines magic types for outgoing damage splits + * or barrier defense interactions. Inherited from the source ability on spawn. + * @return the entity's magic data + */ + IMagicData getMagicData(); + + /** + * Set magic data on this energy entity. Overrides any inherited ability magic. + * @param data Magic data to set. + */ + void setMagicData(IMagicData data); }