Advance Wars:
- Add HP override system (seed/set/clearHpOverride) so units show correct
HP during enemy-turn replay until their battle animation plays
- Redesign river/road channel rendering with layered depth: rivers get
deep channel, light core, and ripple crests; roads get concrete shoulders,
asphalt, and dashed centre lines phase-locked to tile seams
Tetris Attack:
- Add character sprite sheet and per-host background images (beth, jerry,
michael, steve, victor, klaxon)
- Declare hero background assets in manifest; scene falls back gracefully
when art is missing
- Update characterSheet path in tetrisattack-artwork.json
Units doomed to die later in a pre-resolved enemy turn were being removed
from the board prematurely during sync, before their death animation could
play. Now:
- syncUnits only prunes dead views on actual army elimination, not on
mid-turn CO powers that would kill units later in the same turn
- Added 'loaded'/'joined' event handlers to remove views when units merge
into transports at the correct animated moment
- setUnitVisibility skips views whose units are already gone from state,
preserving mid-replay sprites until their event fires
Import and play day banner animation when transitioning between turns
in Advance Wars game. The banner displays the current day number and
plays before allowing the next turn to begin, providing visual feedback
for day progression. Added safety check to cancel animation if scene
changes during playback.
- Add HP text readout to battle animations showing 1-10 scale HP
(matching Advance Wars' classic HP display), with smooth tweening
- Extract cursor drawing into procedural texture, keeping it independent
of the UI sheet
- Add advancewars-ui.png sprite sheet and update artwork config
- Assign battle sounds to each unit type (gunfire, tank, cannon, missile, etc.)
and play the appropriate sound on attack/counterattack in battle animations
- Add per-unit-type movement sounds (march for infantry/mech, engine-fast,
engine-heavy) that loop during move animations and stop cleanly on completion
- Play jump sound during capture animation hops and activation sound on capture
- Play explosion sound when units are defeated in combat or crash
- Lighten unit tint relative to buildings so units remain visually distinct
when standing on captured buildings
- Add new audio assets: battle sounds, march, 8bit-jump, and update battle-tank
Replace the solid-color ground rectangle in the capture animation with a
proper terrain backdrop matching the ground the building sits on (plain,
shoal, etc.). Extract battleBgFrame, ensureBattleBgSheet, and add a new
groundBgFrame helper that maps building types to their underlying terrain,
avoiding duplicate building rendering since the building is already the
main squishing prop.
Introduce a new battle background spritesheet (advancewars-battlebg) that
displays context-appropriate backdrops behind each fighter during battle
cut-ins. The backdrop is selected based on the terrain/building type the
fighter is standing on (city, base, airport, port, plain, wood, mountain,
sea, reef, shoal, river, bridge, road, hq).
- Add battleBgSheet to artwork.json and asset manifest
- Implement playBattleAnim() backdrop system with terrain lookup
- Provide procedural fallback matching the real sheet's frame map for
art-free playability
- Mirror defender backdrops to match mirrored defender sprites
- Document the 14-frame sheet spec in sprites.md (256×256 cells, 5 cols)
Introduce a breathing pulse effect (red fill + white border) for attack
target tiles to draw the player's eye when in "must pick a target" fire
mode. The previous static tint is preserved for the indirect-range preview
shown while a unit is merely selected.
- showAttackTiles now accepts optional { pulse: true } parameter
- Added tween-based animation with Sine.easeInOut breathing effect
- Properly clean up pulse tween in destroy() and clearOverlays()
- Updated AdvanceWarsGame to pass pulse: true when showing targets
Introduce a cinematic capture animation when a unit captures a property:
a small window shows the capturing unit hopping atop the building, which
then squishes down to reflect remaining capture points (or pops back up
in the new owner's color if the capture completes).
- Add AdvanceWarsCaptureAnim.js with the full cut-in animation sequence
- Display remaining capture-points as a strength number on partially-
captured buildings, tinted toward the owner's color
- Add `before` field to capturing events so the animation knows the
starting HP
- Support partial unit sync so units are revealed action-by-action
during turn replay instead of snapping to end-of-turn positions
- Add depth bias so units always render above buildings on the same tile
- Add new unit sprite sheet (advancewars-units.png/psd)
- Slow down all battle animations for better readability:
- Attack, flash, death, and delay timings increased
- Unit movement animation duration increased (70→180ms)
- Explosion animation slowed down
- Post-turn wait time increased (140→300ms)
- Merge props and units into shared Y-sorted "actors" depth band
- Buildings and units now sort correctly by screen row
- Move/attack overlays remain below actors for proper decal rendering
Introduce a unit unlock system that progressively grants access to new
unit types as the player advances through the campaign. Each mission
specifies which units each army can build, starting with basic units
and unlocking MD Tanks, Rockets, Anti-Air, Missiles, Lander, Cruiser,
and eventually the full armory.
- Add unit sprite sheet (advancewars-units.png) and artwork config
- Implement unlock validation in production and build options
- Add tutorial dialogue from Ethel explaining new mechanics and units
- Balance AI difficulty by reducing skill levels and aggression
- Adjust capture weights for more balanced AI behavior
- Add introductory city capture mechanic in first mission
- Update verification tool to support unlockedUnits
Implement a full Advance Wars clone with campaign (20 missions) and
War Room skirmish mode. Includes:
- Headless game engine (AdvanceWarsLogic) with complete AW1 rules:
terrain movement, combat, capture, production, transports, fuel,
fog of war, CO powers, and multiple objective types
- AI opponent (skill 1-5, aggression/capture tuning) with BFS
pathfinding, threat evaluation, production counter-tables, and
fog trap awareness
- Canvas-rendered map view with procedural stand-ins that can be
replaced by drop-in painted spritesheets (no code changes)
- 11 playable COs with unique day-to-day modifiers and powers
(Hyper Repair, Lightning Strike, Tsunami, Meteor Strike, etc.)
- Campaign briefings with typewriter text and opponent portraits
- Comprehensive headless verification suite (rules, combat formula,
pathfinding, economy, capture, fog, CO powers, soak tests)
- New assets: terrain/building sheets, adventure music tracks,
game icon frame 86
- Refactor SpireClimb and SWDBG to use the shared soundtrack service