zombiemod-1.5.0.jar
Curse Maven Snippet
What's new
# Changelog — Zombie Mode (English)
## [1.5.0] — 2026-08-29
### ✨ Gobblegum 2.0 — persistent progression & the Laboratory (Classic mode)
Gobblegums are no longer pure luck: every player now has a **persistent profile**
(`world/data/zombiemod_progress.dat`) that carries over between games.
- **Kills are currency.** Every zombie you kill credits 1 kill (mini-boss: 100, configurable).
Kills made in Tower Defense do not count by default (`progression.countTdKills`).
- **Tiered unlocks.** The 40 gums are split into 4 rarities — **Common** (0–3,000 kills),
**Rare** (5,000–20,000), **Epic** (25,000–60,000), **Legendary** (80,000–200,000) — tuned for
30–50 wave games (≈ 5,000–8,000 kills each). Locked gums never come out of the machine.
Toast + sound in-game when you cross a threshold.
- **3 independent upgrade tracks per gum**, each level 1→5, paid in **essence**
(= unspent kills):
- ⏱ **Duration**: ×1.3 / ×1.7 / ×2.2, then **permanent** for the whole game at level 5
(charges 1 → 2 → 3 for Phoenix Up / Carpe Diem). Insta-Kill, Glass Cannon and Hyper Electric
never become permanent (×2.2 max).
- ✦ **Chance**: proc chance per kill up to ×2.1 (e.g. Hyper Electric 2 % → 4.2 %).
- ⚡ **Power**: damage, radius, **chain jumps** (Lightning 6 → 10, Hyper Electric 20 → 35),
healing, points, multipliers, up to ×1.75; Insta-Kill lv. 5 also kills mini-bosses.
A gum only shows the tracks that matter for it (Fearless: duration only; Hyper Electric: all
three). Cost per track: Common 500 → 5,000, Rare 1,250 → 12,500, Epic 3,000 → 30,000,
Legendary 7,500 → 75,000.
- **Pack.** Equip up to **10 unlocked gums**: the machine only draws from your pack (or from all
your unlocked gums if the pack is empty).
- **Gobblegum Laboratory** (new screen): **G key outside a game** (in TD the key still opens the
Codex), a lobby block via `/zombiegum lab set` (F or right-click), or `/zombiegum lab`.
Rarity grid with a per-track segmented progress bar, lock + threshold, a glowing ⬆ badge when an
upgrade is affordable, gold outline for packed gums; detail panel with **one row per track**
(pips, level N → N+1 values, dedicated buy button), next-pip preview when hovering the button,
row and icon flash on purchase, essence counter that counts down live, progress bar towards the
threshold + track teaser for locked gums, Pack button; filters (All / Unlocked / Upgradable /
Locked / Pack) + search. Read-only during a game.
- **Admin**: `/zombiegum progress <player> show|addkills|setkills|reset|unlockall|maxall`.
- **Config** (`zombiemod.json → gobblegum`, version 6): `progression` block (toggle, costs per
rarity **and per track**, per-level multipliers, pack size, charges…) and `unlockKills` per gum.
`progression.enabled = false` restores the previous behaviour exactly.
### ◆ Gem Workshop — persistent Tower Defense progression
- **TD kills = fragments.** Monsters killed by your gems (credited to whoever placed the gem, co-op
included) feed a counter **separate** from gum essence: 1 kill = 1 fragment, mini-boss = 100.
- **94 upgradable entries**: the **13 families** (every T1→T5 gem of the family) and **each of the
81 combined gems** (minor → mythic, grid by rank, 7 per row), each with up to **4 tracks**
level 1→5:
⚔ **Damage** ×1 → ×1.75 (poison, income, Core healing included) · » **Fire rate** interval
×1 → ×0.76 · ◎ **Range** +0 → +2 blocks · ✦ **Special** parameters ×1 → ×1.5 (slow, freeze,
crit, area, mark, execute… existing caps kept) and **+1 chain jump** at levels 3 and 5.
Cost per track: families 400 → 4,000 fragments; combined gems ×1 (minor) … ×4 (mythic).
- **Applied live** to gems already placed: firing, auras, TAB DPS, passive income and range circle
all go through `GemStatsResolver` with the placer's profile.
- **Purchases allowed between waves** (TD preparation phase) or outside a game; locked during a wave.
- **"Gem Workshop" screen**: same ergonomics as the Laboratory (families / combined grid, one row
per track, current → next values computed on the family's T5 gem, dedicated buttons, soft glow,
fragments counting down live). **Gobblegum · Gems · Codex tabs** at the top of all three screens
to switch without closing. Access: `/zombiegems`, the lab block during a TD game, or the tab from
the Laboratory / Codex.
- **Animated 3D preview** in the detail panel: the real gem (a `TowerEntity` rendered by
`TowerRenderer` — the exact in-game crystal, hologram included) slowly rotates in a frame; hover
to spin faster. Falls back to the diamond icon if no world is loaded.
- **Admin**: `/zombiegems progress <player> show|addkills|setkills|reset|maxall`.
- **Config** `zombietd_gems.json → progression` (toggle, costs, per-level multipliers,
`allowDuringPrepPhase`, `miniBossKillValue`).
### ⚡ Performance
- Gobblegum Laboratory: the glowing arrow was drawn pixel by pixel (~900 `fill` calls per icon, up
to 36,000 per frame) → shape + halo precomputed as horizontal runs (~30 `fill`), descriptions
cached. No more FPS drop.
- Gem Workshop: the grid rebuilt every entry's gem list from the 146-gem registry every frame
(~60,000 iterations/frame). Names, colours, tracks, effects and "upgradable" states are now cached
and only invalidated on a config or profile sync.
### 🔧 Fixes
- **Gem Codex (TD)**: the gem grid was cut off when the list overflowed the screen (small gems /
small window). It now **scrolls with the mouse wheel** (plus scrollbar drag, ↑/↓, PageUp/Down);
off-screen icons no longer react to clicks or tooltips. Mouse wheel works anywhere over the grid
half of the panel in all three screens.
- **Self-Medication**: the Regeneration effect expired after the initial duration even on a
permanent/extended gum → now maintained as long as the gum is active.
- The **Gobblegum machine** now also responds to the **F** key (the HUD advertised it, only
right-click worked).
- HUD: remaining charges are shown (`×2`), permanent gums show `∞`, and the level (`3★`) appears
in front of the timer.
- Gem Workshop layout: track pips are aligned on a fixed column (no overlap with the "POWER"
label) and wrap to a second line on narrow panels; first grid cell no longer clipped on the
left; 3D preview zoomed out ×2 and centred on the crystal (accounts for rank/tier scale).
### 🧹 Technical
- `GobblegumType` carries rarity, category and default threshold; the 12 settings classes inherit
a common base (`GumSettingsBase`) and the four 40-case `switch`es in `GobblegumManager` are
replaced by `GobblegumSettings.get(type)`.
- `GumEffectResolver` / `GemStatsResolver`: single source of truth for per-level values (server
and client).
- New packets: `GobblegumConfigSyncPacket`, `GumProgressSyncPacket`, `GumLabActionPacket`,
`OpenGumLabPacket`, `GemProgressSyncPacket`, `GemLabActionPacket`, `OpenGemLabPacket`.
FR/EN descriptions for all 40 gums in the language files.
- `PlayerProgressSavedData` (`zombiemod_progress.dat`): total/spent kills, per-track gum levels,
pack, kills per gum, TD kills, per-entry gem levels — with automatic migration of the earlier
single-level format.
This mod has no additional files