feat(gameserver): in-game training dummy (#36) #60

Merged
marco merged 1 commit from feat/training-dummy into main 2026-07-19 06:38:06 +02:00
Owner

In-game training dummy (part of #36): an invulnerable, stationary creature that shows the damage it takes but never dies — the demonstrable target for the melee/spell pipeline.

  • Mobile.Invulnerable: CombatSystem.ApplyDamage still reports the hit (the number shows) but leaves HP untouched, so melee and spells display damage against it without killing it.
  • Dummy (kind dummy) + IdleAi (never acts); spawnable via /spawn dummy (auto-discovered by CreatureRegistry).
  • Client placeholders it for now; the UO training-dummy static art is a follow-up (art slice).

just lint → 0 warnings. just test → full suite green (GameServer 138, +3 dummy tests). Covers: dummy takes reported bolt damage but survives, survives 50 hits, spawnable by name.

Definition of Done (delta)

  • /spawn dummy places an invulnerable creature.
  • A bolt/swing at the dummy reports its damage number but the dummy never dies.
  • Whole solution builds, zero warnings, tests green.
In-game **training dummy** (part of #36): an invulnerable, stationary creature that shows the damage it takes but never dies — the demonstrable target for the melee/spell pipeline. - `Mobile.Invulnerable`: `CombatSystem.ApplyDamage` still reports the hit (the number shows) but leaves HP untouched, so melee **and** spells display damage against it without killing it. - `Dummy` (kind `dummy`) + `IdleAi` (never acts); spawnable via `/spawn dummy` (auto-discovered by `CreatureRegistry`). - Client placeholders it for now; the **UO training-dummy static art** is a follow-up (art slice). `just lint` → 0 warnings. `just test` → full suite green (GameServer 138, +3 dummy tests). Covers: dummy takes reported bolt damage but survives, survives 50 hits, spawnable by name. ## Definition of Done (delta) - [x] `/spawn dummy` places an invulnerable creature. - [x] A bolt/swing at the dummy reports its damage number but the dummy never dies. - [x] Whole solution builds, zero warnings, tests green.
feat(gameserver): in-game training dummy (#36)
All checks were successful
ci / Lint & Test (pull_request) Successful in 1m22s
c49a4e07da
An invulnerable, stationary creature that shows the damage it takes but never
dies — the demonstrable target for the melee/spell pipeline.

- Mobile.Invulnerable: CombatSystem.ApplyDamage reports the hit (the number
  still shows) but leaves HP untouched, so melee and spells both display damage
  against it without killing it.
- Dummy (kind "dummy") + IdleAi (never acts); spawnable via `/spawn dummy`
  (auto-discovered by CreatureRegistry). Client placeholders it until the UO
  training-dummy art is extracted (follow-up).
marco merged commit 4a76e53bb3 into main 2026-07-19 06:38:06 +02:00
marco deleted branch feat/training-dummy 2026-07-19 06:38:07 +02:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
marco/IsoMmo!60
No description provided.