aboutsummaryrefslogtreecommitdiff
path: root/cmd/thoi
diff options
context:
space:
mode:
authorhistoria <[not public]>2026-07-17 20:15:57 -0400
committerhistoria <[not public]>2026-07-17 20:15:57 -0400
commit9898d42f2d4ef61b5cbec7e212914d1495e04772 (patch)
treeafa604ad77a7a03832ebbd60e77c47d4961b9d77 /cmd/thoi
parentc23c87b56fd568956d263bb8b8c5d26fbd8d01ee (diff)
downloadthehouseoficarus-9898d42f2d4ef61b5cbec7e212914d1495e04772.tar.gz
feat: add deterministic order to mob/player tick processing, document how tick processing works
Diffstat (limited to 'cmd/thoi')
-rw-r--r--cmd/thoi/main.go29
1 files changed, 7 insertions, 22 deletions
diff --git a/cmd/thoi/main.go b/cmd/thoi/main.go
index 254db69..27b32f4 100644
--- a/cmd/thoi/main.go
+++ b/cmd/thoi/main.go
@@ -45,29 +45,14 @@ func main() {
g.Ticks.Start(cfg.TickLength)
defer g.Ticks.Stop()
+ // The master per-tick subscriber. Registered as engine subscription ID 1,
+ // the engine fires it before any dynamically-registered combat/aggro/respawn
+ // callbacks (engine.processTick sorts subscribers by registration ID). Its
+ // body — the canonical per-tick system sequence — is enforced and tested in
+ // internal/game/tick_systems.go and documented in
+ // building_guide/tick_order.md. Reordering it is a breaking change.
g.Ticks.Subscribe(1, func() bool {
- g.ProcessQueuedCommands()
- g.MoveTick()
- g.SequenceTick()
- g.TransientMobTick()
- g.World.Tick()
- g.MobStore.Tick()
- g.RegenTick()
- g.EnergyRegenTick()
- g.DisconnectTick()
- g.WanderTick()
- g.SharedDepletionTick()
- g.FireTick()
- g.AdvanceActions()
- g.TechTick()
- g.ConsumeTick()
- g.BroadcastRespawns()
- g.VisualTick()
- g.SneakTick()
- g.FarmTick()
- g.BuffTick()
- g.SafespotTick()
- g.HazardTick()
+ g.RunTickSystems()
return true
})