dd343be64a
Add poison tick at start of enemy turn
2026-02-25 09:44:54 -05:00
02f9e1ec2c
Add poison effect to enemies
2026-02-25 09:24:13 -05:00
62a1ef051c
Add retain keyword to endTurn
2026-02-25 09:22:19 -05:00
8a6a2f7662
Add ethereal keyword to endTurn
2026-02-25 09:22:02 -05:00
e05663d1c7
Add unplayable keyword to playCard
2026-02-25 09:20:19 -05:00
fe95c03529
Add exhaust keyword to playCard
2026-02-25 09:19:59 -05:00
77f65ace98
Wire run loop with victory rewards, defeat restart, and combat chaining
2026-02-25 08:02:04 -05:00
4e457b80af
Add createCombatFromRun to create combat state from run
2026-02-25 08:02:04 -05:00
46bd6e6d2b
Add reward reveal, pick, and skip functions to run module
2026-02-25 08:02:04 -05:00
11e12ee906
Add run state module with createRunState and rewards deck builder
2026-02-24 22:35:21 -05:00
28e54d502f
Export shuffle from state and add getAllCards to cards module
2026-02-24 22:34:19 -05:00
970796f85a
Add background, logo, and tick assets
2026-02-24 16:23:25 -05:00
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