mirror of
https://github.com/KAMKEEL/CustomNPC-Plus-API.git
synced 2026-11-14 04:59:48 +00:00
131 lines
3.4 KiB
Java
131 lines
3.4 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).
|
|
* @return duration in ticks
|
|
*/
|
|
int getDurationTicks();
|
|
|
|
/**
|
|
* Set the duration in ticks for instant mode.
|
|
* @param ticks duration in ticks
|
|
*/
|
|
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.
|
|
* @return telegraph active ticks
|
|
*/
|
|
int getTelegraphActiveTicks();
|
|
|
|
/**
|
|
* Set how many ticks the telegraph persists during the active phase.
|
|
* Only used when syncTelegraphWithDuration is false.
|
|
* @param ticks telegraph active ticks
|
|
*/
|
|
void setTelegraphActiveTicks(int ticks);
|
|
|
|
/**
|
|
* Whether telegraph active ticks are synced to the ability duration.
|
|
* @return true if synced
|
|
*/
|
|
boolean isSyncTelegraphWithDuration();
|
|
|
|
/**
|
|
* Set whether telegraph active ticks should sync to the ability duration.
|
|
* @param sync whether to sync
|
|
*/
|
|
void setSyncTelegraphWithDuration(boolean sync);
|
|
|
|
/**
|
|
* Get the telegraph radius (used by CIRCLE, RING, SQUARE shapes).
|
|
* @return the telegraph radius
|
|
*/
|
|
float getTelegraphRadius();
|
|
|
|
/**
|
|
* Set the telegraph radius.
|
|
* @param radius the telegraph radius
|
|
*/
|
|
void setTelegraphRadius(float radius);
|
|
|
|
/**
|
|
* Get the telegraph inner radius (used by RING, CONE shapes).
|
|
* @return the inner radius
|
|
*/
|
|
float getTelegraphInnerRadius();
|
|
|
|
/**
|
|
* Set the telegraph inner radius.
|
|
* @param innerRadius the inner radius
|
|
*/
|
|
void setTelegraphInnerRadius(float innerRadius);
|
|
|
|
/**
|
|
* Get the telegraph length (used by LINE, CONE shapes).
|
|
* @return the telegraph length
|
|
*/
|
|
float getTelegraphLength();
|
|
|
|
/**
|
|
* Set the telegraph length.
|
|
* @param length the telegraph length
|
|
*/
|
|
void setTelegraphLength(float length);
|
|
|
|
/**
|
|
* Get the telegraph width (used by LINE shape).
|
|
* @return the telegraph width
|
|
*/
|
|
float getTelegraphWidth();
|
|
|
|
/**
|
|
* Set the telegraph width.
|
|
* @param width the telegraph width
|
|
*/
|
|
void setTelegraphWidth(float width);
|
|
|
|
/**
|
|
* Get the telegraph angle in degrees (used by CONE shape).
|
|
* @return the telegraph angle in degrees
|
|
*/
|
|
float getTelegraphAngle();
|
|
|
|
/**
|
|
* Set the telegraph angle in degrees.
|
|
* @param angle the angle in degrees
|
|
*/
|
|
void setTelegraphAngle(float angle);
|
|
}
|