Player Abilities

This commit is contained in:
Kam committed 2026-01-30 05:01:54 -05:00
1 parent 601b0d721e
commit 1b8ad4dd90
92 files changed
+2610 -1025

No files matched your search

@@ -43,6 +43,11 @@ public class ScriptDataAbilities implements IDataAbilities {
}
}
@Override
public void addAbilityReference(String key) {
data.addAbilityReference(key);
}
@Override
public void removeAbility(String abilityId) {
data.removeAbility(abilityId);
@@ -58,6 +63,33 @@ public class ScriptDataAbilities implements IDataAbilities {
return data.getAbility(abilityId) != null;
}
@Override
public boolean isAbilityReference(String abilityId) {
List<kamkeel.npcs.controllers.data.ability.AbilitySlot> slots = data.getAbilitySlots();
for (int i = 0; i < slots.size(); i++) {
kamkeel.npcs.controllers.data.ability.AbilitySlot slot = slots.get(i);
if (slot.isReference()) {
if (slot.getReferenceId().equals(abilityId)) return true;
} else {
Ability a = slot.getAbility();
if (a != null && a.getId().equals(abilityId)) return false;
}
}
return false;
}
@Override
public boolean convertToInline(String abilityId) {
List<kamkeel.npcs.controllers.data.ability.AbilitySlot> slots = data.getAbilitySlots();
for (int i = 0; i < slots.size(); i++) {
kamkeel.npcs.controllers.data.ability.AbilitySlot slot = slots.get(i);
if (slot.isReference() && slot.getReferenceId().equals(abilityId)) {
return data.convertToInline(i);
}
}
return false;
}
@Override
public void clearAbilities() {
data.clearAbilities();
@@ -117,17 +149,14 @@ public class ScriptDataAbilities implements IDataAbilities {
}
@Override
public boolean executePresetAbility(String presetName) {
return executePresetAbility(presetName, null);
public boolean executeAbility(String key) {
return executeAbility(key, null);
}
@Override
public boolean executePresetAbility(String presetName, Object target) {
// Resolve target
public boolean executeAbility(String key, Object target) {
EntityLivingBase targetEntity = resolveTarget(target);
// Use the direct preset execution method
return data.executePresetAbility(presetName, targetEntity);
return data.executeAbility(key, targetEntity);
}
@Override