Commit graph

57 commits

Author SHA1 Message Date
75a2c2e408
Move board game rulebook PDF into docs 2026-02-24 16:23:22 -05:00
ea166ff59e
Add raw board game asset sheets to gitignore 2026-02-24 16:23:19 -05:00
27bfdc71b1
Wire board game image paths into card, relic, potion, and enemy data 2026-02-24 16:19:46 -05:00
9e11d7d423
Add script to wire board game image paths into data files 2026-02-24 16:19:46 -05:00
e541011b94
Add summon identifications and remove blank colorless entries from manifest 2026-02-24 14:59:50 -05:00
0466945217
Add enemies, elites, events, and upgraded cards to image manifest 2026-02-24 14:59:50 -05:00
d5a0751d5a
Add rare, colorless, and curse card identifications to manifest 2026-02-24 14:59:50 -05:00
85f89080f4
Add card identifications to image manifest (starters + commons) 2026-02-24 14:59:50 -05:00
f4cbf91687
Add initial image manifest for relics and potions 2026-02-24 14:59:50 -05:00
6bd11f9f40
Extract and organize board game assets into individual images
1053 cropped from sheets + 111 copied individual files
2026-02-24 14:59:50 -05:00
bda9c8c552
Add board game sheet cropping scripts 2026-02-24 13:33:00 -05:00
cf53fad0a4
Add script to copy individual board game assets 2026-02-24 13:33:00 -05:00
a2f61b0128
Add run loop implementation plan 2026-02-24 10:07:28 -05:00
22d7b1a54e
Add run loop design doc 2026-02-24 10:04:01 -05:00
886b744db8
Refactor playCard to options-based API instead of overloaded positional args 2026-02-23 23:30:06 -05:00
7e46b190f1
Ensure backward compatibility for single-player mode
Added explicit tests documenting that createCombatState, drawCards,
playCard, and endTurn all accept the original single-string/no-index
signatures and keep state.player and state.enemy aliases in sync.
2026-02-23 23:30:06 -05:00
62425eadd7
Update combat orchestration for multiplayer turns
startTurn resets energy/block for all players and draws 5 cards each,
also resets playersReady. resolveEnemyTurn iterates all enemies,
resets each enemy's block, and has each enemy act against player 0.
checkCombatEnd checks all enemies (victory) and any player (defeat).
2026-02-23 23:30:06 -05:00
e03b9b2dd7
Update effect resolver for indexed player/enemy targets
Added tests and verified resolveEffects handles {type, index}
descriptors for multi-player and multi-enemy state. getEntity and
setEntity helpers resolve either legacy string keys or typed index
objects, so all existing string-based call sites continue working.
2026-02-23 23:29:14 -05:00
86287a30c2
Update draw and play functions for player indexing
Added tests covering drawCards(state, playerIndex, count) and
playCard(state, playerIndex, handIndex, targetIndex) signatures.
Also tests the per-player endTurn path with playersReady tracking.
2026-02-23 23:29:14 -05:00
b2056d8368
Expand state model for multiple players and enemies
createCombatState now accepts arrays of characters and enemy IDs,
producing players[] and enemies[] arrays. Backward compat aliases
(state.player, state.enemy) are kept in sync. effects.js updated
to resolve entity descriptors as either legacy string keys or
{type, index} objects so both old and new call sites work.
2026-02-23 23:29:13 -05:00
57d15914f4
Complete watcher card extraction into cards.json
Merged 120 watcher cards from watcher_cards.json into the unified
cards.json database, replacing the previous 8 stub entries. Deleted
watcher_cards.json since the data is now consolidated.
2026-02-23 23:28:56 -05:00
6c5f935610
Add a roadmap and reference file 2026-02-23 23:23:12 -05:00
eb094a5138
Add data validation tests for cards and enemies 2026-02-23 23:23:12 -05:00
a11439eb58
Switch cards.js to load full cards.json database 2026-02-23 23:23:12 -05:00
426443bc9e
Update combat test to match real jaw_worm board game data 2026-02-23 23:23:12 -05:00
bdb83e40a2
Extract Act 1 enemy data from board game sheets 2026-02-23 23:23:12 -05:00
6ad8dd05e8
Apply biome formatting to cards.json 2026-02-23 23:23:12 -05:00
8a9439ed74
Update starter-ironclad.json with extracted data and image paths 2026-02-23 23:23:12 -05:00
429e1bbc2a
Map watcher card images to data 2026-02-23 23:23:12 -05:00
f3f092185b
Map defect card images to data 2026-02-23 18:53:22 -05:00
a4f449fef9
Map silent card images to data 2026-02-23 18:51:50 -05:00
0785efffe4
Map ironclad card images to data 2026-02-23 18:44:47 -05:00
ef3da3e30f
Merge per-character card data into unified cards.json 2026-02-23 18:34:05 -05:00
64dfee517c
Add dev recipe to justfile 2026-02-23 18:19:34 -05:00
dd80f894f8
Replace JSON imports with fetch for browser compatibility 2026-02-23 18:15:13 -05:00
29a4a380ca
Add justfile and update package.json scripts 2026-02-23 18:02:05 -05:00
820bb6e395
Add typescript and tsconfig for type checking 2026-02-23 18:01:59 -05:00
aa9412dc61
Apply biome formatting to main module 2026-02-23 17:54:41 -05:00
8a7facb35e
Wire up main module with event handling and game loop 2026-02-23 17:54:41 -05:00
87d2724c3c
Apply biome formatting to render module 2026-02-23 17:54:41 -05:00
5a73afa22b
Add render module for state-to-DOM projection 2026-02-23 17:54:41 -05:00
e0f4916bce
Fix button types and apply biome formatting 2026-02-23 17:54:41 -05:00
933b6fc452
Add HTML shell, CSS layout, and dev server 2026-02-23 17:54:41 -05:00
fcf8de7f75
Fix biome lint warnings in combat module 2026-02-23 17:54:41 -05:00
222b5c25b0
Format with biome 2026-02-23 17:54:41 -05:00
45d62144bf
Add combat orchestration with turn flow and win/loss check 2026-02-23 17:54:41 -05:00
35d2176bc2
Add die roll and enemy action resolver 2026-02-23 17:54:41 -05:00
0bb8f236c0
Add effect resolver with hit, block, status, draw 2026-02-23 17:54:41 -05:00
a1f242d54e
Add state module with combat init, draw, play, end turn 2026-02-23 17:54:41 -05:00
08214fc8cb
Add card data module with ironclad starter deck 2026-02-23 17:54:41 -05:00