mirror of
https://github.com/KAMKEEL/CustomNPC-Plus-API.git
synced 2026-11-15 17:14:44 +00:00
IAbilityAction for Abilities and Chained Actions
This commit is contained in:
1 parent
010849fe8f
commit
28c0ca840f
4 files changed
+77
-1
No files matched your search
@@ -6,7 +6,7 @@ import noppes.npcs.api.INbt;
|
||||
* Interface for NPC abilities.
|
||||
* Abilities are special attacks or actions that NPCs can perform during combat.
|
||||
*/
|
||||
public interface IAbility {
|
||||
public interface IAbility extends IAbilityAction {
|
||||
|
||||
/**
|
||||
* Get the unique ID (UUID for custom abilities, registry key for built-in).
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
package noppes.npcs.api.ability;
|
||||
|
||||
/**
|
||||
* Common API interface for all combat actions (abilities and chained abilities).
|
||||
* Both {@link IAbility} and {@link IChainedAbility} extend this interface.
|
||||
*/
|
||||
public interface IAbilityAction {
|
||||
|
||||
String getName();
|
||||
|
||||
boolean isEnabled();
|
||||
|
||||
int getWeight();
|
||||
|
||||
int getCooldownTicks();
|
||||
|
||||
float getMinRange();
|
||||
|
||||
float getMaxRange();
|
||||
|
||||
/**
|
||||
* Whether this action is a chained ability (sequence) vs an individual ability.
|
||||
*/
|
||||
boolean isChain();
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
package noppes.npcs.api.ability;
|
||||
|
||||
/**
|
||||
* API interface for chained abilities - ordered sequences of ability references
|
||||
* that execute one after another with configurable delays.
|
||||
*/
|
||||
public interface IChainedAbility extends IAbilityAction {
|
||||
|
||||
boolean isWindUpAll();
|
||||
|
||||
int getEntryCount();
|
||||
|
||||
String getEntryReference(int index);
|
||||
|
||||
int getEntryDelay(int index);
|
||||
|
||||
boolean isEntryInline(int index);
|
||||
}
|
||||
@@ -1,5 +1,7 @@
|
||||
package noppes.npcs.api.handler;
|
||||
|
||||
import noppes.npcs.api.ability.IChainedAbility;
|
||||
|
||||
/**
|
||||
* Handler for ability management. Allows scripts to query ability types,
|
||||
* built-in abilities, and custom ability presets.
|
||||
@@ -44,4 +46,35 @@ public interface IAbilityHandler {
|
||||
* @return true if deleted successfully
|
||||
*/
|
||||
boolean deleteCustomAbilityByName(String name);
|
||||
|
||||
/**
|
||||
* Get all chained ability names.
|
||||
*/
|
||||
String[] getChainedAbilityNames();
|
||||
|
||||
/**
|
||||
* Check if a chained ability exists by name.
|
||||
*/
|
||||
boolean hasChainedAbilityName(String name);
|
||||
|
||||
/**
|
||||
* Delete a chained ability by name.
|
||||
*
|
||||
* @return true if deleted successfully
|
||||
*/
|
||||
boolean deleteChainedAbilityByName(String name);
|
||||
|
||||
/**
|
||||
* Get a chained ability by name.
|
||||
*
|
||||
* @return the chained ability, or null if not found
|
||||
*/
|
||||
IChainedAbility getChainedAbility(String name);
|
||||
|
||||
/**
|
||||
* Save a chained ability. If a chain with the same name exists, it is overwritten.
|
||||
*
|
||||
* @return true if saved successfully
|
||||
*/
|
||||
boolean saveChainedAbility(IChainedAbility chain);
|
||||
}
|
||||
Reference in new issue
Block a user