Hey. Today was about a new mechanic-heavy tower, clearer unit info, a couple of fresh minions, and a sync fix that should make replays behave. Small day in commit count, decent impact across PvP and UI.
Period: September 15, 2025 • Total Commits: 4
What’s New
Soul Eater Tower
We got the first pass of Soul Eater in. It deals percent-based damage tied to how many “souls” it has absorbed relative to the target’s soul value.
- Damage formula: min(1, soulsEaten / targetSouls) × target max health
- Soul projectiles return to the tower after hitting, with a 12-frame travel/return cycle
- Attack sequence plays frames 1–7, then loops 4–7 while souls return
- New soul-sucking VFX layered over the tower (currently scaled to 50%)
This is a very different damage profile than raw DPS, so expect it to reward setup and timing rather than spam.
Unit Encyclopedia (Dark Theme)
We added a full Encyclopedia so you can compare towers and minions without hopping in a match.
- Tabs for Towers and Minions
- Dark futuristic theme to match in-game UI
- Color filter sidebar using MTG-style color tags
- Detailed stat panels, including special handling for percent, souls, and AOE damage
- Status effects formatted cleanly (slow, stun, auras)
- AOE entries list attack type and radius
- Button added to the main menu
- Responsive layout so stats line up across sizes
It’s meant to reduce guesswork in PvP and make planning comps faster.
[screenshot: Dark-themed Encyclopedia with tower stats and filters at 4f94912]
New Minions: Brambleback and Healer Drone
We added two more pieces to the roster:
- Brambleback
- 1280 HP • 150 cost • 0.55 income
- Tanky lane pusher; good for soaking while your towers scale
- Healer Drone
- Support role; shore up long lanes and attrition paths
These should open up “sustain and stall” plays to counter burst-heavy tower lines.
[screenshot: Brambleback leading a push with a Healer Drone in support at a0b7ec2]
What Got Fixed
- Replay desync on refresh
- We stopped sending sync checks while a replay is still catching up
- Less false “out of sync” chatter after a page reload
- Level purchase cost calculation
- Corrected the index used for cost lookups, so level-up pricing should now match the progression curve
- Soul Eater damage rounding
- Damage now rounds up to the nearest health point
- Avoids fractional leftovers and guarantees at least 1 damage on hit
Under the Hood
- Separated minion spawn level (used for soul calculations) from player level (used for HP scaling)
- Prevents weird cross-scaling when players are mismatched but waves are standardized
- VFX iteration
- VFXEntity now supports proper looping when effects aren’t killed on detonation end
- VFXInstancedRenderer got a scale property to size effects per use (used by Soul Eater)
- Centralized minion configuration loading
- Server and Replay now pull from the same source map so all minions appear consistently across modes
- Cleanups
- Removed an unused matchmaking mode
- Tidied up some TypeScript types in the Encyclopedia
- Ignored a couple of stray autosave assets