@@ -2,13 +2,53 @@ import { DISActor } from "./actor/actor.js";
22import { ACTORS_PACK , ITEMS_PACK , TABLES_PACK } from "./packs.js" ;
33import {
44 documentFromPack ,
5- drawDocument ,
6- drawDocuments ,
7- drawText ,
8- simpleData ,
5+ drawDocumentFromTableUuid ,
6+ drawDocumentsFromTableUuid ,
7+ drawTextFromTableUuid ,
8+ simpleData
99} from "./packutils.js" ;
1010import { rollTotal } from "./utils.js" ;
1111
12+ const playerTables = {
13+ backgrounds : "Compendium.deathinspace.death-in-space-tables.RollTable.VQt6wl9vTRCMR6sp" ,
14+ cosmicMutations : "Compendium.deathinspace.death-in-space-tables.RollTable.QetsxgpbcwDyG6Qv" ,
15+ drives : "Compendium.deathinspace.death-in-space-tables.RollTable.ZBUQ67XZeGHypwZo" ,
16+ firstImpressions : "Compendium.deathinspace.death-in-space-tables.RollTable.JWTU6mENX6cdUEni" ,
17+ firstNames : "Compendium.deathinspace.death-in-space-tables.RollTable.T84lZU5390mYMvwZ" ,
18+ lastNames : "Compendium.deathinspace.death-in-space-tables.RollTable.P3lER80MbPdRDPDC" ,
19+ looks : "Compendium.deathinspace.death-in-space-tables.RollTable.C8QtASDc7ktWbk4k" ,
20+ origins : "Compendium.deathinspace.death-in-space-tables.RollTable.nxkWKuqDww6isGRM" ,
21+ pastAllegiances : "Compendium.deathinspace.death-in-space-tables.RollTable.DHAo1FNU1cRJytA3" ,
22+ personalTrinkets : "Compendium.deathinspace.death-in-space-tables.RollTable.6qG7ovmnlgTlxSL5" ,
23+ startingKits : "Compendium.deathinspace.death-in-space-tables.RollTable.8MUhuEy08AtEb57q" ,
24+ traits : "Compendium.deathinspace.death-in-space-tables.RollTable.m4TJkhkwoStofy9t" ,
25+ voidCorruptions : "Compendium.deathinspace.death-in-space-tables.RollTable.I4S63MuPQLeXxYS8" ,
26+ } ;
27+
28+ const playerItems = {
29+ evaSuitHeavy : "Compendium.deathinspace.death-in-space-items.Item.9XJfAnUe6U02vLbk" ,
30+ pistol : "Compendium.deathinspace.death-in-space-items.Item.m4ljG8bXPL3bNy2B" ,
31+ } ;
32+
33+ const playerCompanions = {
34+ aiGuardAnimal : "Compendium.deathinspace.death-in-space-actors.Actor.Q4JmzUXY2YX9tajm" ,
35+ oldCrewMember : "Compendium.deathinspace.death-in-space-actors.Actor.TLBpnoBfOt3ilQwZ" ,
36+ } ;
37+
38+ const hubTables = {
39+ hubNames : "Compendium.deathinspace.death-in-space-tables.RollTable.A72aYCwjYyvanBQ1" ,
40+ hubQuirks : "Compendium.deathinspace.death-in-space-tables.RollTable.netMPWbwtcRaeZQv" ,
41+ spacecraftBackgrounds : "Compendium.deathinspace.death-in-space-tables.RollTable.0OFqCQWrstfppyKk" ,
42+ stationBackgrounds : "Compendium.deathinspace.death-in-space-tables.RollTable.U9XisR4xvhUKe67X" ,
43+ } ;
44+
45+ const hubItems = {
46+ chemicalEngine : "Compendium.deathinspace.death-in-space-items.Item.kfF1FW0INeCFAsT3" ,
47+ industrialGenerator : "Compendium.deathinspace.death-in-space-items.Item.dHN6uJgAx1N7efX5" ,
48+ startingSpacecraftFrame : "Compendium.deathinspace.death-in-space-items.Item.xjP9HUPlkfAsfkrw" ,
49+ startingStationFrame : "Compendium.deathinspace.death-in-space-items.Item.UUV3NTRwyFmiaKQF" ,
50+ } ;
51+
1252export async function generateCharacter ( ) {
1353 const char = await randomCharacter ( ) ;
1454 const actor = await DISActor . create ( char ) ;
@@ -33,8 +73,8 @@ export async function regenerateCharacter(actor) {
3373}
3474
3575async function randomCharacter ( ) {
36- const firstName = await drawText ( TABLES_PACK , "First Names" ) ;
37- const lastName = await drawText ( TABLES_PACK , "Last Names" ) ;
76+ const firstName = await drawTextFromTableUuid ( playerTables . firstNames ) ;
77+ const lastName = await drawTextFromTableUuid ( playerTables . lastNames ) ;
3878 const name = `${ firstName } ${ lastName } ` ;
3979 const imageBase = randomCharacterImageBase ( ) ;
4080 const portrait = `systems/deathinspace/assets/images/portraits/characters/${ imageBase } .jpg` ;
@@ -49,25 +89,25 @@ async function randomCharacter() {
4989 const defenseRating = 12 + dexterity ;
5090
5191 // 2. origin
52- const origin = await drawDocument ( TABLES_PACK , "Origins" ) ;
92+ const origin = await drawDocumentFromTableUuid ( playerTables . origins ) ;
5393 const originBenefit = await pickOriginBenefit ( origin ) ;
5494
5595 // 3. character details
56- const background = await drawText ( TABLES_PACK , "Backgrounds" ) ;
57- const trait = await drawText ( TABLES_PACK , "Traits" ) ;
58- const drive = await drawText ( TABLES_PACK , "Drives" ) ;
59- const looks = await drawText ( TABLES_PACK , "Looks" ) ;
96+ const background = await drawTextFromTableUuid ( playerTables . backgrounds ) ;
97+ const trait = await drawTextFromTableUuid ( playerTables . traits ) ;
98+ const drive = await drawTextFromTableUuid ( playerTables . drives ) ;
99+ const looks = await drawTextFromTableUuid ( playerTables . looks ) ;
60100
61101 // 4. past allegiance
62- const pastAllegiance = await drawText ( TABLES_PACK , "Past Allegiances" ) ;
102+ const pastAllegiance = await drawTextFromTableUuid ( playerTables . pastAllegiances ) ;
63103
64104 // 5. hit points and defense rating
65105 const hitPoints = await rollTotal ( "1d8" ) ;
66106
67107 // 6. starting gear and starting bonus
68108 const holos = await rollTotal ( "3d10" ) ;
69- const startingKitItems = await drawDocuments ( TABLES_PACK , "Starting Kits" ) ;
70- const personalTrinket = await drawDocument ( TABLES_PACK , "Personal Trinkets" ) ;
109+ const startingKitItems = await drawDocumentsFromTableUuid ( playerTables . startingKits ) ;
110+ const personalTrinket = await drawDocumentFromTableUuid ( playerTables . personalTrinkets ) ;
71111
72112 const items = [ origin , originBenefit , personalTrinket ] . concat (
73113 startingKitItems
@@ -125,22 +165,22 @@ async function maybeGiveStartingBonus(actor) {
125165 let bonusFollower = null ;
126166 switch ( bonusRoll ) {
127167 case 1 :
128- bonusItem = await drawDocument ( TABLES_PACK , "Cosmic Mutations" ) ;
168+ bonusItem = await drawDocumentFromTableUuid ( playerTables . cosmicMutations ) ;
129169 break ;
130170 case 2 :
131171 bonusHitPoints = 3 ;
132172 break ;
133173 case 3 :
134- bonusItem = await documentFromPack ( ITEMS_PACK , "EVA Suit - Heavy" ) ;
174+ bonusItem = await fromUuid ( playerItems . evaSuitHeavy ) ;
135175 break ;
136176 case 4 :
137- bonusItem = await documentFromPack ( ITEMS_PACK , "Pistol" ) ;
177+ bonusItem = await fromUuid ( playerItems . pistol ) ;
138178 break ;
139179 case 5 :
140- bonusFollower = await documentFromPack ( ACTORS_PACK , "AI guard animal" ) ;
180+ bonusFollower = await fromUuid ( playerCompanions . aiGuardAnimal ) ;
141181 break ;
142182 case 6 :
143- bonusFollower = await documentFromPack ( ACTORS_PACK , "Old Crew Member" ) ;
183+ bonusFollower = await fromUuid ( playerCompanions . oldCrewMember ) ;
144184 break ;
145185 }
146186
@@ -202,9 +242,9 @@ export async function generateSpacecraft() {
202242 const defenseRating = 11 ;
203243 const maxCondition = 5 ;
204244 const fuelCapacity = 6 ;
205- const name = await drawText ( TABLES_PACK , "Hub Names" ) ;
206- const background = await drawText ( TABLES_PACK , "Spacecraft Backgrounds" ) ;
207- const quirk = await drawText ( TABLES_PACK , "Hub Quirks" ) ;
245+ const name = await drawTextFromTableUuid ( hubTables . hubNames ) ;
246+ const background = await drawTextFromTableUuid ( hubTables . spacecraftBackgrounds ) ;
247+ const quirk = await drawTextFromTableUuid ( hubTables . hubQuirks ) ;
208248 const actorData = {
209249 name,
210250 system : {
@@ -224,8 +264,8 @@ export async function generateSpacecraft() {
224264 type : "hub" ,
225265 } ;
226266 const actor = await DISActor . create ( actorData ) ;
227- const frame = await documentFromPack ( ITEMS_PACK , "Starting spacecraft" ) ;
228- const engine = await documentFromPack ( ITEMS_PACK , "Chemical engine" ) ;
267+ const frame = await fromUuid ( hubItems . startingSpacecraftFrame ) ;
268+ const engine = await fromUuid ( hubItems . chemicalEngine ) ;
229269 await actor . createEmbeddedDocuments ( "Item" , [
230270 simpleData ( frame ) ,
231271 simpleData ( engine ) ,
@@ -237,9 +277,9 @@ export async function generateStation() {
237277 const defenseRating = 11 ;
238278 const maxCondition = 5 ;
239279 const fuelCapacity = 4 ;
240- const name = await drawText ( TABLES_PACK , "Hub Names" ) ;
241- const background = await drawText ( TABLES_PACK , "Station Backgrounds" ) ;
242- const quirk = await drawText ( TABLES_PACK , "Hub Quirks" ) ;
280+ const name = await drawTextFromTableUuid ( hubTables . hubNames ) ;
281+ const background = await drawTextFromTableUuid ( hubTables . stationBackgrounds ) ;
282+ const quirk = await drawTextFromTableUuid ( hubTables . hubQuirks ) ;
243283 const actorData = {
244284 name,
245285 system : {
@@ -259,8 +299,8 @@ export async function generateStation() {
259299 type : "hub" ,
260300 } ;
261301 const actor = await DISActor . create ( actorData ) ;
262- const frame = await documentFromPack ( ITEMS_PACK , "Starting station" ) ;
263- const engine = await documentFromPack ( ITEMS_PACK , "Industrial generator" ) ;
302+ const frame = await fromUuid ( hubItems . startingStationFrame ) ;
303+ const engine = await fromUuid ( hubItems . industrialGenerator ) ;
264304 await actor . createEmbeddedDocuments ( "Item" , [
265305 simpleData ( frame ) ,
266306 simpleData ( engine ) ,
@@ -305,8 +345,8 @@ function randomInt(min, max) {
305345}
306346
307347async function randomNpc ( ) {
308- const firstName = await drawText ( TABLES_PACK , "First Names" ) ;
309- const lastName = await drawText ( TABLES_PACK , "Last Names" ) ;
348+ const firstName = await drawTextFromTableUuid ( playerTables . firstNames ) ;
349+ const lastName = await drawTextFromTableUuid ( playerTables . lastNames ) ;
310350 const name = `${ firstName } ${ lastName } ` ;
311351 const imageBase = randomCharacterImageBase ( ) ;
312352 const portrait = `systems/deathinspace/assets/images/portraits/characters/${ imageBase } .jpg` ;
@@ -320,9 +360,9 @@ async function randomNpc() {
320360 const morale = randomInt ( 4 , 11 ) ;
321361
322362 // 2. character details
323- const background = await drawText ( TABLES_PACK , "Backgrounds" ) ;
324- const firstImpressions = await drawText ( TABLES_PACK , "First Impressions" ) ;
325- const looks = await drawText ( TABLES_PACK , "Looks" ) ;
363+ const background = await drawTextFromTableUuid ( playerTables . backgrounds ) ;
364+ const firstImpressions = await drawTextFromTableUuid ( playerTables . firstImpressions ) ;
365+ const looks = await drawTextFromTableUuid ( playerTables . looks ) ;
326366
327367 // 3. hit points and defense rating
328368 const hitPoints = await rollTotal ( "1d8" ) ;
0 commit comments