Files
CustomNPC-Plus-API/java/noppes/npcs/api/ability/ICustomAbility.java
T
2026-03-05 02:18:18 -05:00

115 lines
2.8 KiB
Java

package noppes.npcs.api.ability;
/**
* A custom (script-driven) ability whose behavior is entirely defined by script event hooks.
* Supports both instant execution mode and toggle mode.
*/
public interface ICustomAbility extends IAbility {
/**
* Get the duration in ticks for instant mode (non-toggle).
*/
int getDurationTicks();
/**
* Set the duration in ticks for instant mode.
*/
void setDurationTicks(int ticks);
/**
* Get the telegraph shape type ordinal.
* @return ordinal of TelegraphType: 0=CIRCLE, 1=RING, 2=LINE, 3=CONE, 4=POINT, 5=SQUARE, 6=NONE
*/
int getTelegraphShapeType();
/**
* Set the telegraph shape type by ordinal.
* @param type ordinal of TelegraphType
*/
void setTelegraphShapeType(int type);
/**
* Get the targeting mode ordinal.
* @return ordinal of TargetingMode: 0=AGGRO_TARGET, 1=SELF, 2=AOE_SELF, 3=AOE_TARGET
*/
int getTargetingModeType();
/**
* Set the targeting mode by ordinal.
* @param type ordinal of TargetingMode
*/
void setTargetingModeType(int type);
/**
* Get how many ticks the telegraph persists during the active phase.
* When syncTelegraphWithDuration is true, this returns the duration ticks.
*/
int getTelegraphActiveTicks();
/**
* Set how many ticks the telegraph persists during the active phase.
* Only used when syncTelegraphWithDuration is false.
*/
void setTelegraphActiveTicks(int ticks);
/**
* Whether telegraph active ticks are synced to the ability duration.
*/
boolean isSyncTelegraphWithDuration();
/**
* Set whether telegraph active ticks should sync to the ability duration.
*/
void setSyncTelegraphWithDuration(boolean sync);
/**
* Get the telegraph radius (used by CIRCLE, RING, SQUARE shapes).
*/
float getTelegraphRadius();
/**
* Set the telegraph radius.
*/
void setTelegraphRadius(float radius);
/**
* Get the telegraph inner radius (used by RING, CONE shapes).
*/
float getTelegraphInnerRadius();
/**
* Set the telegraph inner radius.
*/
void setTelegraphInnerRadius(float innerRadius);
/**
* Get the telegraph length (used by LINE, CONE shapes).
*/
float getTelegraphLength();
/**
* Set the telegraph length.
*/
void setTelegraphLength(float length);
/**
* Get the telegraph width (used by LINE shape).
*/
float getTelegraphWidth();
/**
* Set the telegraph width.
*/
void setTelegraphWidth(float width);
/**
* Get the telegraph angle in degrees (used by CONE shape).
*/
float getTelegraphAngle();
/**
* Set the telegraph angle in degrees.
*/
void setTelegraphAngle(float angle);
}