diff --git a/docs/REVIEW_LOG.md b/docs/REVIEW_LOG.md index eb52cfe..72dd955 100644 --- a/docs/REVIEW_LOG.md +++ b/docs/REVIEW_LOG.md @@ -3614,3 +3614,20 @@ began printing raw keys, with no error a user would ever connect to the cause. T leaf is renamed, and `tools/check-lang.mjs` now fails the build on any key that is both a value and a prefix of another, and on duplicate keys, which `JSON.parse` swallows. + +## The case generator gets a door + +**R-219 · `missionDialog()` was exported, complete, and reachable from nothing.** The +entire case generator — anomalies, gaps, adversaries, phases, seeds — existed behind a +console call. The Actor Directory offered "New Agent" and "New NPC" and no way to make +a case. It now sits with the other two generators, because a case IS an actor and that +is where actors are made. + +**R-220 · a new case conscripted every character in the world.** The roster fell back +to `game.actors.filter(a => a.type === "character")`, which is defensible in a world +holding one party and absurd in a world holding several — a freshly generated case +here listed thirty-six agents. The fallback exists for a real reason (a case with no +roster cannot resolve a phase, and `resolveLegDialog` bails silently), so it is now +ordered by how good the guess is: player-assigned characters first, then whatever the +GM has selected on the canvas, and the whole world only as a last resort — and it says +so when it does. Verified: with four tokens selected, the new case has four members. diff --git a/lang/en.json b/lang/en.json index 3e7a299..90e8166 100644 --- a/lang/en.json +++ b/lang/en.json @@ -723,6 +723,8 @@ "RINGBRP.Coh.Short": "Coh", "RINGBRP.Sheet.Skill": "Skill", "RINGBRP.Mission.Title": "Generate a case", + "RINGBRP.Mission.NewCase": "New Case", + "RINGBRP.Mission.RosterGuess": "No player characters are assigned and nothing is selected, so all {n} characters were put on this case. Edit the roster on the case file.", "RINGBRP.Mission.Make": "Generate", "RINGBRP.Mission.Roll": "— roll it —", "RINGBRP.Mission.Class": "Classification", diff --git a/package.json b/package.json index 0a45204..9ed265b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ringbrp", - "version": "1.0.0", + "version": "0.7.0", "description": "The Custodians \u2014 a Basic Roleplaying game of crossings, for Foundry VTT", "main": "ringbrp.mjs", "scripts": { diff --git a/packs/armour/000006.log b/packs/armour/000006.log new file mode 100644 index 0000000..c6f4221 Binary files /dev/null and b/packs/armour/000006.log differ diff --git a/packs/armour/000008.ldb b/packs/armour/000008.ldb deleted file mode 100644 index 55c93b9..0000000 Binary files a/packs/armour/000008.ldb and /dev/null differ diff --git a/packs/armour/000009.log b/packs/armour/000009.log deleted file mode 100644 index e69de29..0000000 diff --git a/packs/armour/CURRENT b/packs/armour/CURRENT index 875cf23..cacca75 100644 --- a/packs/armour/CURRENT +++ b/packs/armour/CURRENT @@ -1 +1 @@ -MANIFEST-000007 +MANIFEST-000004 diff --git a/packs/armour/LOG b/packs/armour/LOG index aca3ecf..912b427 100644 --- a/packs/armour/LOG +++ b/packs/armour/LOG @@ -1,5 +1,5 @@ -2026/08/10-18:04:05.102786 17970b000 Recovering log #6 -2026/08/10-18:04:05.102816 17970b000 Level-0 table #8: started -2026/08/10-18:04:05.102965 17970b000 Level-0 table #8: 2303 bytes OK -2026/08/10-18:04:05.103319 17970b000 Delete type=0 #6 -2026/08/10-18:04:05.103360 17970b000 Delete type=3 #4 +2026/08/10-20:22:43.733467 171e23000 Recovering log #3 +2026/08/10-20:22:43.733493 171e23000 Level-0 table #5: started +2026/08/10-20:22:43.733658 171e23000 Level-0 table #5: 1902 bytes OK +2026/08/10-20:22:43.734023 171e23000 Delete type=0 #3 +2026/08/10-20:22:43.734059 171e23000 Delete type=3 #2 diff --git a/packs/armour/LOG.old b/packs/armour/LOG.old index 3487e6f..4414f1b 100644 --- a/packs/armour/LOG.old +++ b/packs/armour/LOG.old @@ -1,5 +1 @@ -2026/08/10-18:01:28.954232 174703000 Recovering log #3 -2026/08/10-18:01:28.954258 174703000 Level-0 table #5: started -2026/08/10-18:01:28.954400 174703000 Level-0 table #5: 1902 bytes OK -2026/08/10-18:01:28.954676 174703000 Delete type=0 #3 -2026/08/10-18:01:28.954726 174703000 Delete type=3 #2 +2026/08/10-20:22:35.453598 1723af000 Delete type=3 #1 diff --git a/packs/armour/MANIFEST-000004 b/packs/armour/MANIFEST-000004 new file mode 100644 index 0000000..d7bc6c5 Binary files /dev/null and b/packs/armour/MANIFEST-000004 differ diff --git a/packs/armour/MANIFEST-000007 b/packs/armour/MANIFEST-000007 deleted file mode 100644 index b7e456d..0000000 Binary files a/packs/armour/MANIFEST-000007 and /dev/null differ diff --git a/packs/expedition/000006.log b/packs/expedition/000006.log new file mode 100644 index 0000000..b6600e2 Binary files /dev/null and b/packs/expedition/000006.log differ diff --git a/packs/expedition/000008.ldb b/packs/expedition/000008.ldb deleted file mode 100644 index cca44ca..0000000 Binary files a/packs/expedition/000008.ldb and /dev/null differ diff --git a/packs/expedition/000009.log b/packs/expedition/000009.log deleted file mode 100644 index e69de29..0000000 diff --git a/packs/expedition/CURRENT b/packs/expedition/CURRENT index 875cf23..cacca75 100644 --- a/packs/expedition/CURRENT +++ b/packs/expedition/CURRENT @@ -1 +1 @@ -MANIFEST-000007 +MANIFEST-000004 diff --git a/packs/expedition/LOG b/packs/expedition/LOG index 8ac312a..9f2a54d 100644 --- a/packs/expedition/LOG +++ b/packs/expedition/LOG @@ -1,5 +1,5 @@ -2026/08/10-18:04:05.115676 17970b000 Recovering log #6 -2026/08/10-18:04:05.115702 17970b000 Level-0 table #8: started -2026/08/10-18:04:05.116502 17970b000 Level-0 table #8: 5058 bytes OK -2026/08/10-18:04:05.117326 17970b000 Delete type=0 #6 -2026/08/10-18:04:05.118008 17970b000 Delete type=3 #4 +2026/08/10-20:22:43.741301 17262f000 Recovering log #3 +2026/08/10-20:22:43.741323 17262f000 Level-0 table #5: started +2026/08/10-20:22:43.741456 17262f000 Level-0 table #5: 4129 bytes OK +2026/08/10-20:22:43.741707 17262f000 Delete type=0 #3 +2026/08/10-20:22:43.741744 17262f000 Delete type=3 #2 diff --git a/packs/expedition/LOG.old b/packs/expedition/LOG.old index fc7624e..5c2fce0 100644 --- a/packs/expedition/LOG.old +++ b/packs/expedition/LOG.old @@ -1,5 +1 @@ -2026/08/10-18:01:28.962448 17571b000 Recovering log #3 -2026/08/10-18:01:28.962472 17571b000 Level-0 table #5: started -2026/08/10-18:01:28.962615 17571b000 Level-0 table #5: 4129 bytes OK -2026/08/10-18:01:28.962874 17571b000 Delete type=0 #3 -2026/08/10-18:01:28.962919 17571b000 Delete type=3 #2 +2026/08/10-20:22:35.478012 1723af000 Delete type=3 #1 diff --git a/packs/expedition/MANIFEST-000004 b/packs/expedition/MANIFEST-000004 new file mode 100644 index 0000000..47fbcd4 Binary files /dev/null and b/packs/expedition/MANIFEST-000004 differ diff --git a/packs/expedition/MANIFEST-000007 b/packs/expedition/MANIFEST-000007 deleted file mode 100644 index 0c049ab..0000000 Binary files a/packs/expedition/MANIFEST-000007 and /dev/null differ diff --git a/packs/gear/000006.log b/packs/gear/000006.log new file mode 100644 index 0000000..4b150b6 Binary files /dev/null and b/packs/gear/000006.log differ diff --git a/packs/gear/000008.ldb b/packs/gear/000008.ldb deleted file mode 100644 index 54a4e3e..0000000 Binary files a/packs/gear/000008.ldb and /dev/null differ diff --git a/packs/gear/000009.log b/packs/gear/000009.log deleted file mode 100644 index e69de29..0000000 diff --git a/packs/gear/CURRENT b/packs/gear/CURRENT index 875cf23..cacca75 100644 --- a/packs/gear/CURRENT +++ b/packs/gear/CURRENT @@ -1 +1 @@ -MANIFEST-000007 +MANIFEST-000004 diff --git a/packs/gear/LOG b/packs/gear/LOG index 57dfe11..f846c49 100644 --- a/packs/gear/LOG +++ b/packs/gear/LOG @@ -1,5 +1,5 @@ -2026/08/10-18:04:05.104689 177ee7000 Recovering log #6 -2026/08/10-18:04:05.104840 177ee7000 Level-0 table #8: started -2026/08/10-18:04:05.105171 177ee7000 Level-0 table #8: 33311 bytes OK -2026/08/10-18:04:05.105428 177ee7000 Delete type=0 #6 -2026/08/10-18:04:05.105470 177ee7000 Delete type=3 #4 +2026/08/10-20:22:43.734698 172e3b000 Recovering log #3 +2026/08/10-20:22:43.734790 172e3b000 Level-0 table #5: started +2026/08/10-20:22:43.735067 172e3b000 Level-0 table #5: 27954 bytes OK +2026/08/10-20:22:43.735279 172e3b000 Delete type=0 #3 +2026/08/10-20:22:43.735322 172e3b000 Delete type=3 #2 diff --git a/packs/gear/LOG.old b/packs/gear/LOG.old index 7705c61..bbdaa0f 100644 --- a/packs/gear/LOG.old +++ b/packs/gear/LOG.old @@ -1,5 +1 @@ -2026/08/10-18:01:28.955312 17571b000 Recovering log #3 -2026/08/10-18:01:28.955407 17571b000 Level-0 table #5: started -2026/08/10-18:01:28.955661 17571b000 Level-0 table #5: 27954 bytes OK -2026/08/10-18:01:28.955877 17571b000 Delete type=0 #3 -2026/08/10-18:01:28.955904 17571b000 Delete type=3 #2 +2026/08/10-20:22:35.456036 172bbb000 Delete type=3 #1 diff --git a/packs/gear/MANIFEST-000004 b/packs/gear/MANIFEST-000004 new file mode 100644 index 0000000..97d9316 Binary files /dev/null and b/packs/gear/MANIFEST-000004 differ diff --git a/packs/gear/MANIFEST-000007 b/packs/gear/MANIFEST-000007 deleted file mode 100644 index d717c43..0000000 Binary files a/packs/gear/MANIFEST-000007 and /dev/null differ diff --git a/packs/npcs/000006.log b/packs/npcs/000006.log new file mode 100644 index 0000000..398e78a Binary files /dev/null and b/packs/npcs/000006.log differ diff --git a/packs/npcs/000008.ldb b/packs/npcs/000008.ldb deleted file mode 100644 index af17354..0000000 Binary files a/packs/npcs/000008.ldb and /dev/null differ diff --git a/packs/npcs/000009.log b/packs/npcs/000009.log deleted file mode 100644 index e69de29..0000000 diff --git a/packs/npcs/CURRENT b/packs/npcs/CURRENT index 875cf23..cacca75 100644 --- a/packs/npcs/CURRENT +++ b/packs/npcs/CURRENT @@ -1 +1 @@ -MANIFEST-000007 +MANIFEST-000004 diff --git a/packs/npcs/LOG b/packs/npcs/LOG index 92c3925..e896a6c 100644 --- a/packs/npcs/LOG +++ b/packs/npcs/LOG @@ -1,5 +1,5 @@ -2026/08/10-18:04:05.090247 178eff000 Recovering log #6 -2026/08/10-18:04:05.090602 178eff000 Level-0 table #8: started -2026/08/10-18:04:05.091538 178eff000 Level-0 table #8: 76320 bytes OK -2026/08/10-18:04:05.092178 178eff000 Delete type=0 #6 -2026/08/10-18:04:05.092254 178eff000 Delete type=3 #4 +2026/08/10-20:22:43.726077 171e23000 Recovering log #3 +2026/08/10-20:22:43.726308 171e23000 Level-0 table #5: started +2026/08/10-20:22:43.726763 171e23000 Level-0 table #5: 60660 bytes OK +2026/08/10-20:22:43.727036 171e23000 Delete type=0 #3 +2026/08/10-20:22:43.727073 171e23000 Delete type=3 #2 diff --git a/packs/npcs/LOG.old b/packs/npcs/LOG.old index acba62a..874eec0 100644 --- a/packs/npcs/LOG.old +++ b/packs/npcs/LOG.old @@ -1,5 +1 @@ -2026/08/10-18:01:28.946179 173ef7000 Recovering log #3 -2026/08/10-18:01:28.946451 173ef7000 Level-0 table #5: started -2026/08/10-18:01:28.947084 173ef7000 Level-0 table #5: 60660 bytes OK -2026/08/10-18:01:28.947366 173ef7000 Delete type=0 #3 -2026/08/10-18:01:28.947413 173ef7000 Delete type=3 #2 +2026/08/10-20:22:35.466901 1723af000 Delete type=3 #1 diff --git a/packs/npcs/MANIFEST-000004 b/packs/npcs/MANIFEST-000004 new file mode 100644 index 0000000..adfab19 Binary files /dev/null and b/packs/npcs/MANIFEST-000004 differ diff --git a/packs/npcs/MANIFEST-000007 b/packs/npcs/MANIFEST-000007 deleted file mode 100644 index cc2bcbf..0000000 Binary files a/packs/npcs/MANIFEST-000007 and /dev/null differ diff --git a/packs/powers/000006.log b/packs/powers/000006.log new file mode 100644 index 0000000..43e306f Binary files /dev/null and b/packs/powers/000006.log differ diff --git a/packs/powers/000008.ldb b/packs/powers/000008.ldb deleted file mode 100644 index 6f225ae..0000000 Binary files a/packs/powers/000008.ldb and /dev/null differ diff --git a/packs/powers/000009.log b/packs/powers/000009.log deleted file mode 100644 index e69de29..0000000 diff --git a/packs/powers/CURRENT b/packs/powers/CURRENT index 875cf23..cacca75 100644 --- a/packs/powers/CURRENT +++ b/packs/powers/CURRENT @@ -1 +1 @@ -MANIFEST-000007 +MANIFEST-000004 diff --git a/packs/powers/LOG b/packs/powers/LOG index 3b6809a..c352986 100644 --- a/packs/powers/LOG +++ b/packs/powers/LOG @@ -1,5 +1,5 @@ -2026/08/10-18:04:05.098553 17970b000 Recovering log #6 -2026/08/10-18:04:05.098590 17970b000 Level-0 table #8: started -2026/08/10-18:04:05.098729 17970b000 Level-0 table #8: 3619 bytes OK -2026/08/10-18:04:05.099052 17970b000 Delete type=0 #6 -2026/08/10-18:04:05.099134 17970b000 Delete type=3 #4 +2026/08/10-20:22:43.730937 171e23000 Recovering log #3 +2026/08/10-20:22:43.730959 171e23000 Level-0 table #5: started +2026/08/10-20:22:43.731083 171e23000 Level-0 table #5: 3295 bytes OK +2026/08/10-20:22:43.731312 171e23000 Delete type=0 #3 +2026/08/10-20:22:43.731345 171e23000 Delete type=3 #2 diff --git a/packs/powers/LOG.old b/packs/powers/LOG.old index 58c01dc..6e34513 100644 --- a/packs/powers/LOG.old +++ b/packs/powers/LOG.old @@ -1,5 +1 @@ -2026/08/10-18:01:28.951049 173ef7000 Recovering log #3 -2026/08/10-18:01:28.951069 173ef7000 Level-0 table #5: started -2026/08/10-18:01:28.951162 173ef7000 Level-0 table #5: 3295 bytes OK -2026/08/10-18:01:28.951540 173ef7000 Delete type=0 #3 -2026/08/10-18:01:28.951628 173ef7000 Delete type=3 #2 +2026/08/10-20:22:35.473073 1723af000 Delete type=3 #1 diff --git a/packs/powers/MANIFEST-000004 b/packs/powers/MANIFEST-000004 new file mode 100644 index 0000000..20de082 Binary files /dev/null and b/packs/powers/MANIFEST-000004 differ diff --git a/packs/powers/MANIFEST-000007 b/packs/powers/MANIFEST-000007 deleted file mode 100644 index c99480e..0000000 Binary files a/packs/powers/MANIFEST-000007 and /dev/null differ diff --git a/packs/pregens/000006.log b/packs/pregens/000006.log new file mode 100644 index 0000000..eceac51 Binary files /dev/null and b/packs/pregens/000006.log differ diff --git a/packs/pregens/000008.ldb b/packs/pregens/000008.ldb deleted file mode 100644 index 40d42f9..0000000 Binary files a/packs/pregens/000008.ldb and /dev/null differ diff --git a/packs/pregens/000009.log b/packs/pregens/000009.log deleted file mode 100644 index e69de29..0000000 diff --git a/packs/pregens/CURRENT b/packs/pregens/CURRENT index 875cf23..cacca75 100644 --- a/packs/pregens/CURRENT +++ b/packs/pregens/CURRENT @@ -1 +1 @@ -MANIFEST-000007 +MANIFEST-000004 diff --git a/packs/pregens/LOG b/packs/pregens/LOG index e41a513..5128329 100644 --- a/packs/pregens/LOG +++ b/packs/pregens/LOG @@ -1,5 +1,5 @@ -2026/08/10-18:04:05.086831 178eff000 Recovering log #6 -2026/08/10-18:04:05.087142 178eff000 Level-0 table #8: started -2026/08/10-18:04:05.087812 178eff000 Level-0 table #8: 69660 bytes OK -2026/08/10-18:04:05.088224 178eff000 Delete type=0 #6 -2026/08/10-18:04:05.088274 178eff000 Delete type=3 #4 +2026/08/10-20:22:43.723772 171e23000 Recovering log #3 +2026/08/10-20:22:43.723973 171e23000 Level-0 table #5: started +2026/08/10-20:22:43.724492 171e23000 Level-0 table #5: 54921 bytes OK +2026/08/10-20:22:43.724852 171e23000 Delete type=0 #3 +2026/08/10-20:22:43.724895 171e23000 Delete type=3 #2 diff --git a/packs/pregens/LOG.old b/packs/pregens/LOG.old index 36bf404..211c884 100644 --- a/packs/pregens/LOG.old +++ b/packs/pregens/LOG.old @@ -1,5 +1 @@ -2026/08/10-18:01:28.940993 173ef7000 Recovering log #3 -2026/08/10-18:01:28.941428 173ef7000 Level-0 table #5: started -2026/08/10-18:01:28.942350 173ef7000 Level-0 table #5: 54921 bytes OK -2026/08/10-18:01:28.943315 173ef7000 Delete type=0 #3 -2026/08/10-18:01:28.943481 173ef7000 Delete type=3 #2 +2026/08/10-20:22:35.462217 172bbb000 Delete type=3 #1 diff --git a/packs/pregens/MANIFEST-000004 b/packs/pregens/MANIFEST-000004 new file mode 100644 index 0000000..160f5db Binary files /dev/null and b/packs/pregens/MANIFEST-000004 differ diff --git a/packs/pregens/MANIFEST-000007 b/packs/pregens/MANIFEST-000007 deleted file mode 100644 index 5d937a7..0000000 Binary files a/packs/pregens/MANIFEST-000007 and /dev/null differ diff --git a/packs/rules/000005.ldb b/packs/rules/000005.ldb index 4cba517..0265ce4 100644 Binary files a/packs/rules/000005.ldb and b/packs/rules/000005.ldb differ diff --git a/packs/rules/000006.log b/packs/rules/000006.log new file mode 100644 index 0000000..4513488 Binary files /dev/null and b/packs/rules/000006.log differ diff --git a/packs/rules/000008.ldb b/packs/rules/000008.ldb deleted file mode 100644 index d16abe8..0000000 Binary files a/packs/rules/000008.ldb and /dev/null differ diff --git a/packs/rules/000009.log b/packs/rules/000009.log deleted file mode 100644 index e69de29..0000000 diff --git a/packs/rules/CURRENT b/packs/rules/CURRENT index 875cf23..cacca75 100644 --- a/packs/rules/CURRENT +++ b/packs/rules/CURRENT @@ -1 +1 @@ -MANIFEST-000007 +MANIFEST-000004 diff --git a/packs/rules/LOG b/packs/rules/LOG index aa8b764..768a533 100644 --- a/packs/rules/LOG +++ b/packs/rules/LOG @@ -1,5 +1,5 @@ -2026/08/10-18:04:05.107865 1786f3000 Recovering log #6 -2026/08/10-18:04:05.107913 1786f3000 Level-0 table #8: started -2026/08/10-18:04:05.108138 1786f3000 Level-0 table #8: 17058 bytes OK -2026/08/10-18:04:05.108511 1786f3000 Delete type=0 #6 -2026/08/10-18:04:05.108562 1786f3000 Delete type=3 #4 +2026/08/10-20:22:43.737261 172e3b000 Recovering log #3 +2026/08/10-20:22:43.737309 172e3b000 Level-0 table #5: started +2026/08/10-20:22:43.737540 172e3b000 Level-0 table #5: 18581 bytes OK +2026/08/10-20:22:43.737891 172e3b000 Delete type=0 #3 +2026/08/10-20:22:43.737944 172e3b000 Delete type=3 #2 diff --git a/packs/rules/LOG.old b/packs/rules/LOG.old index cb9a08a..8325518 100644 --- a/packs/rules/LOG.old +++ b/packs/rules/LOG.old @@ -1,5 +1 @@ -2026/08/10-18:01:28.957762 17571b000 Recovering log #3 -2026/08/10-18:01:28.957822 17571b000 Level-0 table #5: started -2026/08/10-18:01:28.958063 17571b000 Level-0 table #5: 16594 bytes OK -2026/08/10-18:01:28.958333 17571b000 Delete type=0 #3 -2026/08/10-18:01:28.958373 17571b000 Delete type=3 #2 +2026/08/10-20:22:35.476400 173bd3000 Delete type=3 #1 diff --git a/packs/rules/MANIFEST-000004 b/packs/rules/MANIFEST-000004 new file mode 100644 index 0000000..7341a77 Binary files /dev/null and b/packs/rules/MANIFEST-000004 differ diff --git a/packs/rules/MANIFEST-000007 b/packs/rules/MANIFEST-000007 deleted file mode 100644 index ac8c035..0000000 Binary files a/packs/rules/MANIFEST-000007 and /dev/null differ diff --git a/packs/skills/LOG b/packs/skills/LOG index e8c205b..358968a 100644 --- a/packs/skills/LOG +++ b/packs/skills/LOG @@ -1,5 +1,5 @@ -2026/08/10-18:04:05.094396 178eff000 Recovering log #3 -2026/08/10-18:04:05.094453 178eff000 Level-0 table #5: started -2026/08/10-18:04:05.094771 178eff000 Level-0 table #5: 6679 bytes OK -2026/08/10-18:04:05.095121 178eff000 Delete type=0 #3 -2026/08/10-18:04:05.095170 178eff000 Delete type=3 #2 +2026/08/10-20:22:43.728284 171e23000 Recovering log #3 +2026/08/10-20:22:43.728327 171e23000 Level-0 table #5: started +2026/08/10-20:22:43.728508 171e23000 Level-0 table #5: 6679 bytes OK +2026/08/10-20:22:43.728819 171e23000 Delete type=0 #3 +2026/08/10-20:22:43.728856 171e23000 Delete type=3 #2 diff --git a/packs/skills/LOG.old b/packs/skills/LOG.old index 30c6fc9..bb20e95 100644 --- a/packs/skills/LOG.old +++ b/packs/skills/LOG.old @@ -1 +1 @@ -2026/08/10-18:03:56.834116 16f923000 Delete type=3 #1 +2026/08/10-20:22:35.439488 172bbb000 Delete type=3 #1 diff --git a/packs/slice/000006.log b/packs/slice/000006.log new file mode 100644 index 0000000..c7d9b16 Binary files /dev/null and b/packs/slice/000006.log differ diff --git a/packs/slice/000008.ldb b/packs/slice/000008.ldb deleted file mode 100644 index 0fb9fe3..0000000 Binary files a/packs/slice/000008.ldb and /dev/null differ diff --git a/packs/slice/000009.log b/packs/slice/000009.log deleted file mode 100644 index e69de29..0000000 diff --git a/packs/slice/CURRENT b/packs/slice/CURRENT index 875cf23..cacca75 100644 --- a/packs/slice/CURRENT +++ b/packs/slice/CURRENT @@ -1 +1 @@ -MANIFEST-000007 +MANIFEST-000004 diff --git a/packs/slice/LOG b/packs/slice/LOG index c0ce371..9318875 100644 --- a/packs/slice/LOG +++ b/packs/slice/LOG @@ -1,5 +1,5 @@ -2026/08/10-18:04:05.110161 178eff000 Recovering log #6 -2026/08/10-18:04:05.110222 178eff000 Level-0 table #8: started -2026/08/10-18:04:05.111347 178eff000 Level-0 table #8: 17462 bytes OK -2026/08/10-18:04:05.112445 178eff000 Delete type=0 #6 -2026/08/10-18:04:05.112494 178eff000 Delete type=3 #4 +2026/08/10-20:22:43.738727 173647000 Recovering log #3 +2026/08/10-20:22:43.738770 173647000 Level-0 table #5: started +2026/08/10-20:22:43.739020 173647000 Level-0 table #5: 16892 bytes OK +2026/08/10-20:22:43.739311 173647000 Delete type=0 #3 +2026/08/10-20:22:43.739337 173647000 Delete type=3 #2 diff --git a/packs/slice/LOG.old b/packs/slice/LOG.old index 5cd8b6a..2ae2dff 100644 --- a/packs/slice/LOG.old +++ b/packs/slice/LOG.old @@ -1,5 +1 @@ -2026/08/10-18:01:28.959373 173ef7000 Recovering log #3 -2026/08/10-18:01:28.959414 173ef7000 Level-0 table #5: started -2026/08/10-18:01:28.959665 173ef7000 Level-0 table #5: 16892 bytes OK -2026/08/10-18:01:28.960034 173ef7000 Delete type=0 #3 -2026/08/10-18:01:28.960081 173ef7000 Delete type=3 #2 +2026/08/10-20:22:35.471420 1733c7000 Delete type=3 #1 diff --git a/packs/slice/MANIFEST-000004 b/packs/slice/MANIFEST-000004 new file mode 100644 index 0000000..0552c3a Binary files /dev/null and b/packs/slice/MANIFEST-000004 differ diff --git a/packs/slice/MANIFEST-000007 b/packs/slice/MANIFEST-000007 deleted file mode 100644 index 4d42457..0000000 Binary files a/packs/slice/MANIFEST-000007 and /dev/null differ diff --git a/packs/tables/000006.log b/packs/tables/000006.log new file mode 100644 index 0000000..d5e06f3 Binary files /dev/null and b/packs/tables/000006.log differ diff --git a/packs/tables/000008.ldb b/packs/tables/000008.ldb deleted file mode 100644 index 465e211..0000000 Binary files a/packs/tables/000008.ldb and /dev/null differ diff --git a/packs/tables/000009.log b/packs/tables/000009.log deleted file mode 100644 index e69de29..0000000 diff --git a/packs/tables/CURRENT b/packs/tables/CURRENT index 875cf23..cacca75 100644 --- a/packs/tables/CURRENT +++ b/packs/tables/CURRENT @@ -1 +1 @@ -MANIFEST-000007 +MANIFEST-000004 diff --git a/packs/tables/LOG b/packs/tables/LOG index ac5fa0d..57185ec 100644 --- a/packs/tables/LOG +++ b/packs/tables/LOG @@ -1,5 +1,5 @@ -2026/08/10-18:04:05.113940 177ee7000 Recovering log #6 -2026/08/10-18:04:05.113972 177ee7000 Level-0 table #8: started -2026/08/10-18:04:05.114101 177ee7000 Level-0 table #8: 4143 bytes OK -2026/08/10-18:04:05.114437 177ee7000 Delete type=0 #6 -2026/08/10-18:04:05.114481 177ee7000 Delete type=3 #4 +2026/08/10-20:22:43.740093 171e23000 Recovering log #3 +2026/08/10-20:22:43.740113 171e23000 Level-0 table #5: started +2026/08/10-20:22:43.740221 171e23000 Level-0 table #5: 3739 bytes OK +2026/08/10-20:22:43.740519 171e23000 Delete type=0 #3 +2026/08/10-20:22:43.740563 171e23000 Delete type=3 #2 diff --git a/packs/tables/LOG.old b/packs/tables/LOG.old index 0483118..2a8a7d8 100644 --- a/packs/tables/LOG.old +++ b/packs/tables/LOG.old @@ -1,5 +1 @@ -2026/08/10-18:01:28.961119 174703000 Recovering log #3 -2026/08/10-18:01:28.961149 174703000 Level-0 table #5: started -2026/08/10-18:01:28.961300 174703000 Level-0 table #5: 3739 bytes OK -2026/08/10-18:01:28.961590 174703000 Delete type=0 #3 -2026/08/10-18:01:28.961623 174703000 Delete type=3 #2 +2026/08/10-20:22:35.469485 1723af000 Delete type=3 #1 diff --git a/packs/tables/MANIFEST-000004 b/packs/tables/MANIFEST-000004 new file mode 100644 index 0000000..004ff30 Binary files /dev/null and b/packs/tables/MANIFEST-000004 differ diff --git a/packs/tables/MANIFEST-000007 b/packs/tables/MANIFEST-000007 deleted file mode 100644 index c42e043..0000000 Binary files a/packs/tables/MANIFEST-000007 and /dev/null differ diff --git a/packs/talents/LOG b/packs/talents/LOG index 0c6f42b..b5f445c 100644 --- a/packs/talents/LOG +++ b/packs/talents/LOG @@ -1,5 +1,5 @@ -2026/08/10-18:04:05.096436 1786f3000 Recovering log #3 -2026/08/10-18:04:05.096490 1786f3000 Level-0 table #5: started -2026/08/10-18:04:05.096732 1786f3000 Level-0 table #5: 5105 bytes OK -2026/08/10-18:04:05.097123 1786f3000 Delete type=0 #3 -2026/08/10-18:04:05.097170 1786f3000 Delete type=3 #2 +2026/08/10-20:22:43.729734 172e3b000 Recovering log #3 +2026/08/10-20:22:43.729768 172e3b000 Level-0 table #5: started +2026/08/10-20:22:43.729974 172e3b000 Level-0 table #5: 5105 bytes OK +2026/08/10-20:22:43.730252 172e3b000 Delete type=0 #3 +2026/08/10-20:22:43.730302 172e3b000 Delete type=3 #2 diff --git a/packs/talents/LOG.old b/packs/talents/LOG.old index 54ab141..e2a7502 100644 --- a/packs/talents/LOG.old +++ b/packs/talents/LOG.old @@ -1 +1 @@ -2026/08/10-18:03:56.837651 16e0ff000 Delete type=3 #1 +2026/08/10-20:22:35.445214 1733c7000 Delete type=3 #1 diff --git a/packs/vehicles/000006.log b/packs/vehicles/000006.log new file mode 100644 index 0000000..5379762 Binary files /dev/null and b/packs/vehicles/000006.log differ diff --git a/packs/vehicles/000008.ldb b/packs/vehicles/000008.ldb deleted file mode 100644 index e6ddc06..0000000 Binary files a/packs/vehicles/000008.ldb and /dev/null differ diff --git a/packs/vehicles/000009.log b/packs/vehicles/000009.log deleted file mode 100644 index e69de29..0000000 diff --git a/packs/vehicles/CURRENT b/packs/vehicles/CURRENT index 875cf23..cacca75 100644 --- a/packs/vehicles/CURRENT +++ b/packs/vehicles/CURRENT @@ -1 +1 @@ -MANIFEST-000007 +MANIFEST-000004 diff --git a/packs/vehicles/LOG b/packs/vehicles/LOG index 66cf844..d940d40 100644 --- a/packs/vehicles/LOG +++ b/packs/vehicles/LOG @@ -1,5 +1,5 @@ -2026/08/10-18:04:05.106622 17970b000 Recovering log #6 -2026/08/10-18:04:05.106650 17970b000 Level-0 table #8: started -2026/08/10-18:04:05.106781 17970b000 Level-0 table #8: 5337 bytes OK -2026/08/10-18:04:05.106994 17970b000 Delete type=0 #6 -2026/08/10-18:04:05.107040 17970b000 Delete type=3 #4 +2026/08/10-20:22:43.736006 171e23000 Recovering log #3 +2026/08/10-20:22:43.736029 171e23000 Level-0 table #5: started +2026/08/10-20:22:43.736168 171e23000 Level-0 table #5: 5012 bytes OK +2026/08/10-20:22:43.736419 171e23000 Delete type=0 #3 +2026/08/10-20:22:43.736457 171e23000 Delete type=3 #2 diff --git a/packs/vehicles/LOG.old b/packs/vehicles/LOG.old index cc02422..f1b84bb 100644 --- a/packs/vehicles/LOG.old +++ b/packs/vehicles/LOG.old @@ -1,5 +1 @@ -2026/08/10-18:01:28.956719 174703000 Recovering log #3 -2026/08/10-18:01:28.956749 174703000 Level-0 table #5: started -2026/08/10-18:01:28.956901 174703000 Level-0 table #5: 5012 bytes OK -2026/08/10-18:01:28.957142 174703000 Delete type=0 #3 -2026/08/10-18:01:28.957186 174703000 Delete type=3 #2 +2026/08/10-20:22:35.458174 1733c7000 Delete type=3 #1 diff --git a/packs/vehicles/MANIFEST-000004 b/packs/vehicles/MANIFEST-000004 new file mode 100644 index 0000000..8b6e8d2 Binary files /dev/null and b/packs/vehicles/MANIFEST-000004 differ diff --git a/packs/vehicles/MANIFEST-000007 b/packs/vehicles/MANIFEST-000007 deleted file mode 100644 index 7d941e1..0000000 Binary files a/packs/vehicles/MANIFEST-000007 and /dev/null differ diff --git a/packs/weapons/000006.log b/packs/weapons/000006.log new file mode 100644 index 0000000..59c6e09 Binary files /dev/null and b/packs/weapons/000006.log differ diff --git a/packs/weapons/000008.ldb b/packs/weapons/000008.ldb deleted file mode 100644 index 16ebb17..0000000 Binary files a/packs/weapons/000008.ldb and /dev/null differ diff --git a/packs/weapons/000009.log b/packs/weapons/000009.log deleted file mode 100644 index e69de29..0000000 diff --git a/packs/weapons/CURRENT b/packs/weapons/CURRENT index 875cf23..cacca75 100644 --- a/packs/weapons/CURRENT +++ b/packs/weapons/CURRENT @@ -1 +1 @@ -MANIFEST-000007 +MANIFEST-000004 diff --git a/packs/weapons/LOG b/packs/weapons/LOG index 177b8cf..00b5460 100644 --- a/packs/weapons/LOG +++ b/packs/weapons/LOG @@ -1,5 +1,5 @@ -2026/08/10-18:04:05.100620 177ee7000 Recovering log #6 -2026/08/10-18:04:05.100670 177ee7000 Level-0 table #8: started -2026/08/10-18:04:05.100975 177ee7000 Level-0 table #8: 8798 bytes OK -2026/08/10-18:04:05.101322 177ee7000 Delete type=0 #6 -2026/08/10-18:04:05.101395 177ee7000 Delete type=3 #4 +2026/08/10-20:22:43.732107 172e3b000 Recovering log #3 +2026/08/10-20:22:43.732143 172e3b000 Level-0 table #5: started +2026/08/10-20:22:43.732280 172e3b000 Level-0 table #5: 7240 bytes OK +2026/08/10-20:22:43.732579 172e3b000 Delete type=0 #3 +2026/08/10-20:22:43.732631 172e3b000 Delete type=3 #2 diff --git a/packs/weapons/LOG.old b/packs/weapons/LOG.old index c950f6a..926f867 100644 --- a/packs/weapons/LOG.old +++ b/packs/weapons/LOG.old @@ -1,5 +1 @@ -2026/08/10-18:01:28.952703 17571b000 Recovering log #3 -2026/08/10-18:01:28.952752 17571b000 Level-0 table #5: started -2026/08/10-18:01:28.952965 17571b000 Level-0 table #5: 7240 bytes OK -2026/08/10-18:01:28.953334 17571b000 Delete type=0 #3 -2026/08/10-18:01:28.953396 17571b000 Delete type=3 #2 +2026/08/10-20:22:35.450781 172bbb000 Delete type=3 #1 diff --git a/packs/weapons/MANIFEST-000004 b/packs/weapons/MANIFEST-000004 new file mode 100644 index 0000000..f176514 Binary files /dev/null and b/packs/weapons/MANIFEST-000004 differ diff --git a/packs/weapons/MANIFEST-000007 b/packs/weapons/MANIFEST-000007 deleted file mode 100644 index 717f729..0000000 Binary files a/packs/weapons/MANIFEST-000007 and /dev/null differ diff --git a/ringbrp.mjs b/ringbrp.mjs index 2aed0c4..79b8307 100644 --- a/ringbrp.mjs +++ b/ringbrp.mjs @@ -2507,6 +2507,30 @@ export async function crossBack(actor, { aimedByAnother = false, aimedBy = null * The journal is deliberately split brief / truth / opposition / phases / pressure, * because the brief is the only page a player may see and it must be safe to show. */ +/** + * Who is on a freshly generated case, in order of how good the guess is. + * Player-assigned characters first — that is the party — then the GM's current + * selection, and the whole world only if neither exists. + */ +function defaultRosterFor() { + const assigned = game.users.contents + .filter(u => u.active !== undefined && !u.isGM && u.character?.type === "character") + .map(u => u.character); + const uniq = [...new Map(assigned.map(a => [a.id, a])).values()]; + if (uniq.length) return uniq; + + const selected = canvas?.tokens?.controlled?.map(t => t.actor) + .filter(a => a?.type === "character") ?? []; + const uniqSel = [...new Map(selected.map(a => [a.id, a])).values()]; + if (uniqSel.length) return uniqSel; + + const all = game.actors.filter(a => a.type === "character"); + if (all.length > 8) { + ui.notifications?.warn(game.i18n.format("RINGBRP.Mission.RosterGuess", { n: all.length })); + } + return all; +} + export async function generateMissionCase({ seed = null, notify = true, ...opts } = {}) { const { generateMission, missionPages } = await import("./tools/mission.mjs"); const m = generateMission({ seed, ...opts }); @@ -2550,8 +2574,12 @@ export async function generateMissionCase({ seed = null, notify = true, ...opts notes: `

${m.codename} — ${m.classification.name}. ${m.place}.

` + `

${m.anomaly.brief}

`, // A case with nobody assigned cannot resolve a phase: resolveLegDialog needs - // a roster to pick a lead from and bails silently without one. - members: (opts.members ?? game.actors.filter(a => a.type === "character")).map(a => a.id), + // a roster to pick a lead from and bails silently without one. But the old + // fallback was EVERY character in the world, which in a world holding more + // than one party quietly put thirty-six people on a four-agent case. Prefer + // the actors players are actually assigned to, then whatever the GM has + // selected, and only conscript the world as a last resort. + members: (opts.members ?? defaultRosterFor()).map(a => a.id), standings: [], // read by returnCrossing; the brief promises it, so the return must charge it crossingModifier: m.crossingModifier, @@ -3902,12 +3930,21 @@ Hooks.on("renderActorDirectory", (app, html) => { if (!root || !game.user.isGM || root.querySelector(".rb-genbar")) return; const bar = document.createElement("div"); bar.className = "rb-genbar"; + // R-219. missionDialog() was exported, complete, and reachable from nothing — the + // whole case generator existed behind a console call. It sits with the other two + // generators, because a case IS an actor and this is where actors are made. bar.innerHTML = ` `; + game.i18n.localize("RINGBRP.Gen.NewNPC")} + `; bar.querySelectorAll("button").forEach(b => - b.addEventListener("click", () => generateDialog(b.dataset.kind))); + b.addEventListener("click", async () => { + if (b.dataset.kind !== "case") return generateDialog(b.dataset.kind); + const cf = await missionDialog(); + if (cf) cf.sheet?.render(true); + })); (root.querySelector(".directory-header") ?? root).prepend(bar); }); diff --git a/styles/ringbrp.css b/styles/ringbrp.css index 023e820..9028efe 100644 --- a/styles/ringbrp.css +++ b/styles/ringbrp.css @@ -1239,3 +1239,6 @@ .rb-dossier { border-left: 3px solid var(--rb-line); padding-left: 8px; } .rb-dossier-miss { opacity: .7; } .rb-authuse .rb-check { display: block; font-size: 11px; margin: 2px 0; } + +/* The case generator sits with the others but is the one that makes a whole case. */ +.rb-genbtn-case { border-color: var(--rb-yellow); color: var(--rb-yellow); } diff --git a/system.json b/system.json index 5972fa6..467cd02 100644 --- a/system.json +++ b/system.json @@ -2,7 +2,7 @@ "id": "ringbrp", "title": "The Custodians", "description": "A Basic Roleplaying game of agents who cross the crossing to contain what should not be there \u2014 and who come back a little less from here each time.", - "version": "0.6.1", + "version": "0.7.0", "compatibility": { "minimum": 13, "verified": "14.364"