deepstrike

DEEPSTRIKE — Implementation Plan

Constraints: Vanilla HTML, CSS, JS, SVG only — no frameworks, no build tools, no dependencies. Target: Mobile-first, portrait orientation, touch-friendly.


Phase 1 — Scaffolding & Shell

Goal: A working single-page app skeleton with navigation between screens. No gameplay yet — just structure.

Deliverables

Acceptance Criteria


Phase 2 — Grid & Digging Core

Goal: A functional dig grid. Player can tap cells, they take damage, and break. No items or progression yet.

Deliverables

Acceptance Criteria


Phase 3 — Items, Drops & Collection

Goal: Cells drop items. Player has an inventory. Collection screen shows set progress.

Deliverables

Acceptance Criteria


Phase 4 — Tools & Damage Formula

Goal: Full damage system. Tool upgrades purchasable with points. Elemental bonuses active.

Deliverables

Acceptance Criteria


Phase 5 — Status Ailments

Goal: Cells carry status modifiers. Player must manage ailments mid-dig.

Deliverables

Acceptance Criteria


Phase 6 — Skill Tree

Goal: Three-branch skill tree unlockable with Skill Points. Skills actively modify gameplay.

Deliverables

Acceptance Criteria


Phase 7 — Layer Progression & Zones

Goal: Multiple zone themes, full 66+ layer depth, zone transition animations.

Deliverables

Acceptance Criteria


Phase 8 — Overworld Map & Narrative

Goal: Overworld hub screen. Characters unlock as player progresses. Chapter story beats fire.

Deliverables

Acceptance Criteria


Phase 9 — Polish & Accessibility

Goal: Visual feedback, haptics, accessibility compliance, and QoL pass.

Deliverables

Acceptance Criteria


Phase 10 — Daily Challenges & Economy Tuning

Goal: End-game loop hooks, economy balance, and the Ruin Board.

Deliverables

Acceptance Criteria


Known Gaps (as of Phase 7)

These are incomplete items that must be resolved before the game is shippable.

Overworld locations not unlockable


State Architecture (cross-phase)

All game state lives in a single window.GameState object and is serialized to localStorage on every meaningful change.

GameState {
  player: { toolTier, upgradePoints, skillPoints, unlockedSkills[] }
  world:  { currentLayer, clearedLayers[], zoneTheme }
  grid:   { cells[][], layerSeed }
  inventory: { items{}, sets{} }
  story:  { chapter, seenDialogue[] }
  settings: { largeCell, haptics }
}

Events flow through a simple pub/sub bus (game.js): emit(event, data) / on(event, handler) — no framework needed.


File Map (end state)

deepstrike/
├── index.html
├── style.css
├── game.js          # app shell, router, event bus, state
├── grid.js          # grid state, cell types, damage
├── items.js         # item definitions, drop logic
├── tools.js         # tool tiers, damage formula
├── ailments.js      # ailment state machine
├── skills.js        # skill registry & effects
├── story.js         # chapter triggers, dialogue
├── collection.js    # inventory, set checker
├── items.json       # item data (existing)
├── design-document.md
└── plan.md

DeepStrike Plan · v0.3 · Phases 1–7 complete. Phases 8–10 + known gaps remaining.