Default Variants
These are ability variants / archtypes offered by the API as a standard. Feel free to reimplement these or create your own if needed. Usually these variants combine a bunch of components and extra methods / logic to provide the basis for an ability.
Actives:
PunchAbility
- used by punches
- implements
ContinuousComponent
,ChangeStatsComponent
,HitTriggerComponent
and handles its activation, punch damage, side effects, cooldown and amount of usage allowed before going on cooldown (if any)
RepeaterAbility
- used by abilities that shoot multiple projectiles at once
- implements
ContinuousComponent
,RepeaterComponent
,ProjectileComponent
and handles its activation, shooting projectiles, the amount of projectiles and the interval between each projectile, speed and spread of these projectiles as well as the cooldown after usage
WallAbility
- used to create walls
- implements
ContinuousComponent
and handles the creation and removal of a wall like structure along with settings for its size and block usage
MorphAbility
- used to transform entities
- implements
ContinuousComponent
,ChangeStatComponent
andMorphComponent
and handles the activation, transformation, syncing of eye height, hitbox size and shadow size, stat bonuses granted by this transformation as well as the cooldown and removal of stats and demorphing the entity
OutOfBodyAbility
- used to separate the player's body and spirit in 2 entities allowing a spectator like experience
- implements
ContinuousComponent
and handles the activation, spawn of the body, distance and deactivation of the ability based on time and distance, as well as all other edge cases such as not being able to break blocks, damage entities or get damaged while in ghost/spirit form, also allows for a physical form where the before mentioned edge cases are not active
ItemAbility
- used to spawn temporary items in the user's inventory
- implements
ContinuousComponent
andItemSpawnComponent
and handles the spawning and despawning of items from the user's inventory keeping track of them and removing them in certain circumstances (such as dropping them)
DropHitAbility
- used for jumping and dealing AOE damage on landing type of abilities
- implements
ContinuousComponent
,DamageTakenComponent
,HitTrackerComponent
and handles the jumping (along with edge cases such as jumping from water), protection from fall damage and landing, DOES NOT handle the damage dealing or side effects caused by the landing, these are meant to be manually handled by the developer using the abstractonLanding
method
DashAbility
- used for dashing forward and dealing AOE damage on nearby entities type of abilities
- implements
ContinuousComponent
,HitTrackerComponent
,RangeComponent
,DealDamageComponent
and handles pushing the entity in a direction, dealing damage with all entities it comes in contact with, handling potential dupes as well as offering aonTargetHit
abstract method for finer controls on side effects (besides damage) when hitting targets
SlidingAbility
- used to make the user slide as if on ice type of abilities
- implements
ContinuousComponent
and handles the math behind the sliding, with options for the developer to decide how fast this type of sliding should be
Passives:
RunningSmashAbility
- used to deal damage to nearby entities while running
TempoAbility
- used exclusively by Art of Weather fighting style for their tempos
- offers helpers for weather cloud detection, mostly used as a generic tempo base as well as for handling the description of tempo abilities
PassiveStatBonusAbility
- used to passively change stats of entities via Attributes
- implements
ChangeStatsComponent
and handles these stats by applying, removing or updating them
The above are provided the API itself, however the mod has some of its own default variants which you can use and which might (in time) become API level if they're generic enough.
EffectImmunityAbility
SourceImmunityAbility
FlyAbility
PropelledFlightAbility
However do keep in mind these are on the mod's level, they can change based on the mod's needs without prior notice.