Skip to main content
Euca models active abilities (cooldowns, mana, targeting, composable effects) and generic status effects (timed stat modifiers, damage/heal-over-time, stacking, crowd control). Both run each tick on the headless server.
Fully headless. Abilities and status effects run on the :3917 server — no GPU.

Abilities

An Ability has a cooldown, mana cost, cast time, level/scaling, a TargetType (no-target, unit, point, vector, aura), a behavior (active / passive / toggle / channeled / auto-cast), and an effect. Effects compose: AreaDamage, Heal, SpeedBoost, Damage, SpawnProjectile, Dash, ApplyEffect, ApplyCc (crowd control), AreaEffect, and Chain([...]). Entities hold an AbilitySet of slots Q/ W/E/R; abilities are typically attached via a hero definition.
# Use ability Q on a hero entity; inspect cooldowns/mana/level
curl -s -X POST http://localhost:3917/ability/use \
  -H 'Content-Type: application/json' -d '{"entity_id":1,"slot":"Q"}'
# {"ok":true,"message":"Used ability Q on entity 1"}

curl -s http://localhost:3917/ability/list/1
# {"entity_id":1,"gold":625,"level":{"level":1,"xp":0,"xp_to_next":180},
#  "mana":{"current":300.0,"max":300.0,"regen":5.0},"abilities":[...]}

Status effects

A StatusEffect carries a tag, a duration, StatModifiers (stat, op Set/Add/Multiply, value), an optional TickEffect (DamagePerSecond / HealPerSecond / Custom), and a StackPolicy (Replace or Stack{max}). The tick system counts down durations and applies tick effects.
# Apply a stacking poison that slows and deals 10 dps for 4s
curl -s -X POST http://localhost:3917/effect/apply \
  -H 'Content-Type: application/json' \
  -d '{"entity_id":1,"tag":"poison","duration":4.0,"modifiers":["move_speed:multiply:0.5"],"tick_effect":"dps:10","stack_policy":"stack:3"}'

curl -s -X POST http://localhost:3917/step -H 'Content-Type: application/json' -d '{"ticks":30}'
curl -s http://localhost:3917/effect/list/1
# {"count":1,"effects":[{"tag":"poison","duration":4.0,"remaining":3.5,
#   "modifiers":["move_speed:multiply:0.5"],"tick_effect":"dps:10","source":null}],"entity_id":1}
POST /effect/cleanse removes effects by tag filter.

Endpoints

MethodPathDescription
POST/ability/useUse an ability slot (Q/W/E/R)
GET/ability/list/{id}Abilities, cooldowns, mana, gold, level
POST/effect/applyApply a status effect
GET/effect/list/{id}Active effects on an entity
POST/effect/cleanseRemove effects by tag filter

Status

  • ✅ Ability cooldowns/usage, leveling, per-level scaling, channel state; status-effect durations, modifiers (set/add/multiply), DoT/HoT ticks, stacking, cleanse, crowd control — all shipped and headless, no stubs.

Ability & effect endpoints

Ability and status-effect endpoints with schemas.