euca-gameplay) is genre-neutral: entities carry Health, Team, and optional
combat stats; damage and healing flow through events applied each tick; projectiles and trigger zones add
spatial interactions. It’s the substrate the MOBA layer and your own rules build on.
Fully headless. All combat runs on the
:3917 server — no GPU.What it does
- Health & death —
Health { current, max };apply_damage_systemdrains health from queuedDamageEvents each tick;death_check_systemmarks entitiesDeadand emitsDeathEvent. - Damage & healing —
POST /entity/damageandPOST /entity/healtake anentity_idand anamount; the change is queued as an event and applied on the next tick. The internalDamageEventmodel also carries a damage type (Physical/Magical/Pure/HpRemoval) used by the ability and combat layer, but this HTTP endpoint applies untyped damage. - Stats & mitigation — incoming damage is resolved through
stat_resolution_system/combat_math:ArmormitigatesPhysicalandMagicResistancesmitigatesMagicaldamage before it reachesHealth.DamageEventalso carries a free-formcategory: String, so games can classify damage as data alongside the fixedDamageTypeenum. - More genre-neutral systems — the same layer ships
stamina_system(Stamina),weapon_system(Weapon— cooldown / ammo / reload / hitscan resolution), andperception_system(line-of-sight awareness) as opt-in components a game attaches where it needs them. - Projectiles —
POST /projectile/spawn(direction, speed, damage, lifetime, radius); the projectile system moves and collides them. - Trigger zones —
POST /trigger/createAABB volumes that damage, heal, or teleport on overlap, once or repeatedly. - Teams & roles —
TeamandEntityRole(Minion/Hero/Tower/Structure) drive targeting and scoring.
Example — damage an entity
when health-below:30 do …).
Endpoints
Status
- Shipped — health/death, damage and healing events, projectiles, trigger zones, teams, roles, and scoring. All headless.
- The richer ability and crowd-control layer is on Abilities & status effects.
Gameplay endpoints
Damage, heal, projectile, and trigger endpoints with schemas.