slaywithfriends/CLAUDE.md

1.6 KiB

slaywithfriends

multiplayer browser version of slay the spire, played with friends.

status

building first playable slice: single ironclad combat encounter. see docs/plans/2026-02-23-single-combat-plan.md for implementation plan.

tech

  • bun (serve + test), biome (lint/format, 2 spaces)
  • vanilla js, es modules, no framework, no build step
  • html/css rendering (no canvas)
  • client-only for now, multiplayer later

project structure

  • src/ - game engine modules (state, effects, combat, render)
  • data/ - card/enemy/potion/relic json databases
  • assets/ - video game card images (per-character dirs)
  • StS_BG_assets/ - board game assets (playmats, boards, boss art, tokens)
  • docs/ - rules, plans, design docs
  • docs/rules.md - index to rules docs
  • docs/plans/ - design docs and implementation plans

rules

the board game rulebook is the mechanical reference point. the video game assets give us card art. goal is a browser-based multiplayer experience where friends can play together — not a direct port of either version, but something that captures the core deckbuilding + encounter loop in a way that works for a group.

  • docs/rules-canon.md - canonical board game rules
  • docs/rules-web-mvp.md - what we're implementing
  • docs/rules-web-delta.md - known differences from canon

card data

board game card values are source of truth (scaled down from video game). card data lives in data/cards.json. the video game wiki (wiki.gg) has structured data as a secondary reference but values differ.

commands

  • bun run dev - start dev server
  • bun run check - biome check + tests
  • bun test - run tests