function pickRandom(arr) { return arr[Math.floor(Math.random() * arr.length)]; } export function dungeonTemplate(data) { const bodyFonts = [ "'Lora', serif", "'Merriweather', serif", "'Libre Baskerville', serif", "'Source Serif 4', serif" ]; const headingFonts = [ "'New Rocker', system-ui", "'UnifrakturCook', cursive", "'IM Fell DW Pica', serif", "'Cinzel', serif", "'Cormorant Garamond', serif", "'Playfair Display', serif" ]; const tableFonts = [ "'Alegreya Sans', sans-serif", "'Cabin', sans-serif", "'IBM Plex Sans', sans-serif", "'Cormorant Garamond', serif" ]; const quoteFonts = [ "'Playfair Display', serif", "'Libre Baskerville', serif", "'Merriweather', serif" ]; const bodyFont = pickRandom(bodyFonts); const headingFont = pickRandom(headingFonts); const tableFont = pickRandom(tableFonts); const quoteFont = pickRandom(quoteFonts); return ` ${data.title}

${data.title}

${data.flavor}

Adventure Hooks & Rumors

    ${data.hooksRumors.map(item => `
  • ${item}
  • `).join("")}

Locations

${data.rooms.map((room, i) => `

${i + 1}. ${room.name}

${room.description}

`).join("")}

Encounters

${data.encounters.map(e => ``).join("")}
Name Details
${e.name} ${e.details}

Treasure

    ${data.treasure.map(t => `
  • ${t}
  • `).join("")}

NPCs

    ${data.npcs.map(n => `
  • ${n.name}: ${n.trait}
  • `).join("")}

Plot Resolutions

    ${data.plotResolutions.map(p => `
  • ${p}
  • `).join("")}
Dungeon Map
`; }