Wizard
Bestiary entry · 1,050 HP
Wizard is an enemy body with 1,050 HP, light at weight 0.9. It fights with 1 authored move. It sees 160° ahead and gives chase from 22 m. A kill pays 8 coins.
Swings
The body's entries in the shared attack table — the swings with real frame data. This is not the whole repertoire: transformations, casts, summons and every other behaviour live as states, listed below.
| Move | Damage | Delivery | Height | Active at | Reach | Knockback | Hitstun | Block stun | Stamina |
|---|---|---|---|---|---|---|---|---|---|
jab | 50 | melee | mid | 0.28 s of 0.5 s | 1.9 m | 3 | 12f (200 ms) | 14f (233 ms) | 10 |
Abilities & behaviour (15)
Every state this body can enter, read off the live instance. A boss's identity lives here rather than in the swing table — Dracula's bat form and his wandless cast are states, not
AttackData rows. Descriptions are the programmer's own note at the top of each state.Offensive (4)
| State | What it is |
|---|---|
| Attack | Telegraphed attack: windup (flashes amber — your cue to dodge), then the hit, then a vulnerable recovery before chasing again. |
| MissileCast | The Wizard's magic-missile volley (see enemies/magic_missile.gd for the projectile + the melee-deflect "tennis" rule). |
| SummonClones | Beat 2 — "makes illusory clones of himself". |
| Thrown | Being suplexed (combat/pair_throw.gd's victim half): the pair runner owns the body — this state just holds the CharacterBody still (the kept hips tracks fly the rig through the arc), keeps playing whatever p01 clip the runner cues, and reports its own exit so any preemption (a teammate's hit landing — the interrupt rule — or death) frees the thrower into their tech stagger. |
Movement, reaction & AI (11)
| State | What it is |
|---|---|
| Block | Shared guard stance. |
| Chase | Post-attack hand-off for the real Wizard only. |
| Dead | Death: no more sink-and-vanish. |
| Hurt | Hit reaction. |
| Idle | The unaware resting beat. |
| Knockdown | Balance-break knockdown, enemy side. |
| Stalk | The real Wizard's decision hub — named "Stalk" in wizard.tscn so the generic fallback lists in enemy_idle.gd / enemy_wander.gd / enemy_hurt.gd (which all look for a node literally named "stalk") land here with zero changes to those shared files. |
| SwapTrick | Beat 3 — the shell-game "swap trick": make every active clone disappear and instantly become one of them for real. |
| Telekinesis | Beat 5 — telekinesis: grab the nearest liftable prop (chair/table, see Wizard.find_liftable + the "liftable" group added to prefabs/chair.tscn + table.tscn), orbit it around the Wizard in a little vortex (pure threat/tell — no damage during the orbit), then launch it at the player as a real projectile (Wizard.launch_projectile / combat/telekinesis_projectile.gd). |
| Teleport | Beat 1 — "teleports around": a real blink beat now, not an instant position pop. |
| Wander | Aimless roaming for when there's no target / the player is lost. |
In dungeons
| Pool entry | Power cost | Weight | Per-tile chance | Max/room | Gates | Atmosphere bias | Pairs with |
|---|---|---|---|---|---|---|---|
wizard | 1.6 | 0.15 | 3% | 1 | depth ≥ 5 | danger 0.3, weird -0.7 | — |
Rooms fill a power budget, not a headcount: each body costs its power rating, so two heavy bodies fill a room as fast as five light ones. Per-tile chance is the roll on a tile that has already selected this entry — the effective rate is far lower.
On islands
Not on the island encounter table. This body belongs to dungeons, a town, or a scripted placement — you will not meet it wandering a shore. See Overworld spawns.
Drops
| Payout | Amount | Notes |
|---|---|---|
| Coins | 8 | Always. Scales with max HP. |
| Gem | 16% | Per kill, multiplied by the killer's luck. Which gem depends on run depth. |
| Diamond | 2% | Per kill, multiplied by luck and by run depth. |
| Health orbs | up to 40% | Only for a hurt killer — the chance rises as the killer's own health falls. |
Source
| Field | Value |
|---|---|
| Scene | res://enemies/wizard.tscn |
| Script | res://enemies/wizard.gd |
| Class | CharacterBody3D |