Ability Zone API

This commit is contained in:
Kam committed 2026-02-12 13:55:42 -05:00
1 parent fd4c77d015
commit 092b18fe95
3 files changed
+107 -59

No files matched your search

@@ -1,37 +1,14 @@
package noppes.npcs.api.ability.type;
import noppes.npcs.api.ability.IAbility;
/**
* API interface for Hazard abilities.
* Persistent ground effect zones.
* Persistent ground effect zones placed around the caster.
*/
public interface IAbilityHazard extends IAbility {
int getDurationTicks();
void setDurationTicks(int ticks);
public interface IAbilityHazard extends IAbilityZone {
float getRadius();
void setRadius(float radius);
float getInnerRadius();
void setInnerRadius(float radius);
float getConeAngle();
void setConeAngle(float angle);
/**
* Get the hazard shape (0 = CIRCLE, 1 = RING, 2 = CONE).
*/
int getShape();
void setShape(int shape);
/**
* Get the placement mode (0 = AT_CASTER, 1 = AT_TARGET, 2 = FOLLOW_CASTER, 3 = FOLLOW_TARGET).
*/
int getPlacement();
void setPlacement(int placement);
float getDamagePerSecond();
void setDamagePerSecond(float damage);
@@ -41,24 +18,6 @@ public interface IAbilityHazard extends IAbility {
boolean isIgnoreInvulnFrames();
void setIgnoreInvulnFrames(boolean ignore);
int getSlownessLevel();
void setSlownessLevel(int level);
int getWeaknessLevel();
void setWeaknessLevel(int level);
int getPoisonLevel();
void setPoisonLevel(int level);
int getWitherLevel();
void setWitherLevel(int level);
int getBlindnessLevel();
void setBlindnessLevel(int level);
int getDebuffDuration();
void setDebuffDuration(int duration);
boolean isAffectsCaster();
void setAffectsCaster(boolean affects);
}
@@ -1,24 +1,10 @@
package noppes.npcs.api.ability.type;
import noppes.npcs.api.ability.IAbility;
/**
* API interface for Trap abilities.
* Proximity-triggered traps.
* Proximity-triggered traps placed around the caster.
*/
public interface IAbilityTrap extends IAbility {
int getDurationTicks();
void setDurationTicks(int ticks);
/**
* Get the placement mode (0 = AT_CASTER, 1 = AT_TARGET, 2 = AHEAD_OF_CASTER).
*/
int getPlacement();
void setPlacement(int placement);
float getPlacementDistance();
void setPlacementDistance(float distance);
public interface IAbilityTrap extends IAbilityZone {
float getTriggerRadius();
void setTriggerRadius(float radius);
@@ -0,0 +1,103 @@
package noppes.npcs.api.ability.type;
import noppes.npcs.api.ability.IAbility;
/**
* API interface for zone-based abilities (Trap, Hazard).
* Shared zone properties: duration, shape, spawn, visual layers, colors.
*/
public interface IAbilityZone extends IAbility {
int getDurationTicks();
void setDurationTicks(int ticks);
/**
* Get the zone shape (0 = CIRCLE, 1 = SQUARE).
*/
int getZoneShapeOrdinal();
void setZoneShapeOrdinal(int shape);
float getSpawnRadius();
void setSpawnRadius(float radius);
float getTelegraphSize();
void setTelegraphSize(float size);
int getZoneCount();
void setZoneCount(int count);
float getZoneHeight();
void setZoneHeight(float height);
float getParticleDensity();
void setParticleDensity(float density);
float getParticleScale();
void setParticleScale(float scale);
float getAnimSpeed();
void setAnimSpeed(float speed);
float getLightningDensity();
void setLightningDensity(float density);
// Color controls
int getInnerColor();
void setInnerColor(int color);
int getOuterColor();
void setOuterColor(int color);
boolean isOuterColorEnabled();
void setOuterColorEnabled(boolean enabled);
// Visual layer controls
boolean isGroundFill();
void setGroundFill(boolean enabled);
float getGroundAlpha();
void setGroundAlpha(float alpha);
boolean isRings();
void setRings(boolean enabled);
int getRingCount();
void setRingCount(int count);
boolean isBorder();
void setBorder(boolean enabled);
float getBorderSpeed();
void setBorderSpeed(float speed);
boolean isAccents();
void setAccents(boolean enabled);
/**
* Get the accent style (0=STATIC, 1=SWAYING, 2=FLICKERING).
*/
int getAccentStyle();
void setAccentStyle(int style);
boolean isLightning();
void setLightning(boolean enabled);
boolean isParticles();
void setParticles(boolean enabled);
/**
* Get the particle motion style (0=RISING, 1=DRIFTING, 2=SPARKS).
*/
int getParticleMotion();
void setParticleMotion(int motion);
String getParticleDir();
void setParticleDir(String directory);
int getParticleSize();
void setParticleSize(int size);
boolean isParticleGlow();
void setParticleGlow(boolean glow);
}