Fizzkrieg

Category: Tactical Warfare / Tower Defense
Stack: Vanilla JS (browser), flat-top hex grid
Play it: Itch.io


Premise

Waves of attackers advance across a hex grid toward your defense line. You fire soda cans at them. Different soda types have different stickiness, splash radius, and pest attraction, and the cheapest ammo (HFCS) gets more expensive the more you rely on it.

The design question was: can ammunition economics alone create meaningful tactical depth without traditional upgrade trees?


Hex Grid

10x8 flat-top axial grid. Coordinates are (q, r) with six neighbors per hex. The defense line is r <= 1. If three or more attackers reach it, the game ends.

Terrain is procedurally generated per row band:

TerrainBlocks MovementProvides CoverNotes
Hot PavementNoNoCommon in defense zone
Bare LawnNoNoNeutral ground
Lush LawnNoNoUnits stuck on even rounds
RockYesYesImpassable obstacle
Building (Intact)YesYesImpassable
Building (Collapsed)NoYesTraversable cover
DebrisNoNoTraversable, no cover

Row distribution shifts from pavement-heavy near the defense line to obstacle-heavy in the back rows, funneling attackers through predictable corridors.


Soda Ammunition

Three ammo types with fundamentally different risk profiles:

SodaPrice (12-pack)StickinessFizz RadiusPest ChanceCap
HFCS$12 (base)1.5370%4 packs/wave
Cane$501.2545%None
Unsweetened$50.5010%None

HFCS is the workhorse: highest stickiness, cheap, but capped at 4 packs per wave and its price inflates if you keep buying it. Cane is the premium option with the widest splash. Unsweetened is the safe fallback with no splash and minimal pest risk.

Splash Mechanics

HFCS and Cane splash to adjacent hexes. Splash count is min(ceil(fizzRadius / 2), adjacentCount). HFCS hits 2 neighbors, Cane hits 3. Splash applies a base 0.5 debuff with a 25% stack multiplier per additional unit on the same hex.


HFCS Scarcity Economics

The core economic tension. HFCS markup works on a 3-wave memory:

This creates a boom-bust cycle. Heavy HFCS use in early waves makes it prohibitively expensive later, forcing a pivot to Cane (expensive but reliable) or Unsweetened (cheap but weak). The optimal strategy is rationing HFCS across waves rather than front-loading it.


Pest Ecology

Every hit (not dodge) rolls a per-unit pest check against the soda pest chance. Pests escalate through an aggro system tied to each hex:

Aggro LevelTierExamplesEffect
1-5Low/Dangerous (by soda)Ants, wasps, flies-2 to -4 AP
6-7DangerousSkunks, raccoons-4 AP
8+BossBear, wild boar, honey badgerAOE: 1 MP damage + -4 AP to all on hex and neighbors, sets stuck

HFCS at 70% pest chance means heavy use on a single hex will eventually summon a boss pest that damages everything in the area, including units you were not targeting. This is the hidden cost of HFCS beyond its price inflation.


Dodge and Pity

Dodge chance scales with remaining AP: 0.15 + 0.60 * (ap / maxAp). Units at full AP dodge up to 75% of the time; debilitated units barely dodge at all.

The pity system prevents infinite dodge streaks. Each consecutive dodge reduces the next dodge chance by 10%, flooring at 10% of the original value. Recruits get a special best-2-of-3 roll: they are hard to hit but fragile when you do connect.

Cover terrain adds +15% dodge (capped at 95%). Stuck units on even rounds have their dodge halved.


Unit Types

TypeMPAPMovement Pattern
Hero86Any adjacent hex
Elite54Left, right, or forward
Standard22Two front diagonals only
Recruit11Straight forward only

Units are demoralized (killed) when accumulated debuffs reach their MP. Money drops on kill: 40% chance, 5-25% of base value (Hero: $100, Elite: $50, Standard: $20, Recruit: $5).


Win/Loss

The ammo-based defeat condition is what makes the economics matter. You cannot just spam. You need to budget across the entire wave.