From 827d488904e75265728f59ceebf560f36aa1f445 Mon Sep 17 00:00:00 2001 From: "M. Aleksandrov" Date: Sat, 9 Oct 2021 18:12:05 +0300 Subject: [PATCH] Add new marker lore descriptions (#681) * Add new marker lore descriptions * Fix errors, expand lore generation --- modules/markers-generator.js | 69 ++++++++++++++++++++++++++++-------- 1 file changed, 54 insertions(+), 15 deletions(-) diff --git a/modules/markers-generator.js b/modules/markers-generator.js index 03a6b17d..256657fa 100644 --- a/modules/markers-generator.js +++ b/modules/markers-generator.js @@ -181,7 +181,16 @@ window.Markers = (function () { const river = pack.rivers.find(r => r.i === pack.cells.r[cell]); const riverName = river ? `${river.name} ${river.type}` : "river"; const name = river && P(0.2) ? river.name : burg.name; - notes.push({id, name: `${name} Bridge`, legend: `A stone bridge over the ${riverName} near ${burg.name}`}); + const weightedAdjectives = { + "stone":10, + "wooden":1, + "lengthy":2, + "formidable":2, + "rickety":1, + "beaten":1, + "weathered":1, + }; + notes.push({id, name: `${name} Bridge`, legend: `A ${rw(weightedAdjectives)} bridge spans over the ${riverName} near ${burg.name}`}); quantity--; } } @@ -448,7 +457,7 @@ window.Markers = (function () { const [cell] = extractAnyElement(lighthouses); const id = addMarker({cell, icon, type, px: 14}); const proper = cells.burg[cell] ? pack.burgs[cells.burg[cell]].name : Names.getCulture(cells.culture[cell]); - notes.push({id, name: getAdjective(proper) + " Lighthouse" + name, legend: `A lighthouse to keep the navigation safe`}); + notes.push({id, name: getAdjective(proper) + " Lighthouse" + name, legend: `A lighthouse to serve as a beacon for ships in the open sea`}); quantity--; } } @@ -459,12 +468,20 @@ window.Markers = (function () { const waterfalls = Array.from(cells.i.filter(i => cells.r[i] && !occupied[i] && cells.h[i] >= 50 && cells.c[i].some(c => cells.h[c] < 40 && cells.r[c]))); const quantity = getQuantity(waterfalls, 1, 5, multiplier); if (!quantity) return; - + + const descriptions = [ + "A gorgeous waterfall flows here", + "The rapids of an exceptionally beautiful waterfall", + "An impressive waterfall has cut through the land", + "The cascades of a stunning waterfall", + "A river drops down from a great height forming a wonderous waterfall", + "A breathtaking waterfall cuts through the landscape", + ]; for (let i = 0; i < waterfalls.length && i < quantity; i++) { const cell = waterfalls[i]; const id = addMarker({cell, icon, type, dy: 54, px: 16}); const proper = cells.burg[cell] ? pack.burgs[cells.burg[cell]].name : Names.getCulture(cells.culture[cell]); - notes.push({id, name: getAdjective(proper) + " Waterfall" + name, legend: `An extremely beautiful waterfall`}); + notes.push({id, name: getAdjective(proper) + " Waterfall" + name, legend: `${ra(descriptions)}`}); } } @@ -521,7 +538,7 @@ window.Markers = (function () { const id = addMarker({cell, icon, type, dy: 48}); const name = `${lake.name} Monster`; const length = gauss(10, 5, 5, 100); - const legend = `Rumors said a relic monster of ${length} ${heightUnit.value} long inhabits ${lake.name} Lake. Truth or lie, but folks are afraid to fish in the lake`; + const legend = `Rumors say a relic monster of ${length} ${heightUnit.value} long inhabits ${lake.name} Lake. Truth or lie, folks are afraid to fish in the lake`; notes.push({id, name, legend}); quantity--; } @@ -552,15 +569,37 @@ window.Markers = (function () { let quantity = getQuantity(hills, 30, 600, multiplier); if (!quantity) return; - const subjects = ["Locals", "Old folks", "Old books", "Tipplers"]; - const species = ["Ogre", "Troll", "Cyclops", "Giant", "Monster", "Beast", "Dragon", "Undead", "Ghoul", "Vampire"]; + const adjectives = [ + "great", + "big", + "huge", + "prime", + "golden", + "proud", + "lucky", + "fat", + "giant", + "hungry", + "magical", + "superior", + "terrifying", + "horrifying", + "feared" + ]; + const subjects = ["Locals", "Elders", "Inscriptions", "Tipplers", "Legends", "Whispers", "Rumors", "Journeying folk", "Tales"]; + const species = ["Ogre", "Troll", "Cyclops", "Giant", "Monster", "Beast", "Dragon", "Undead", "Ghoul", "Vampire", "Hag", "Banshee", "Bearded Devil", "Roc", "Hydra", "Warg"]; const modusOperandi = [ - "steals their cattle", - "doesn't mind eating children", + "steals cattle at night", + "prefers eating children", "doesn't mind of human flesh", "keeps the region at bay", - "eats their kids", - "abducts young women" + "eats kids whole", + "abducts young women", + "terrorizes the region", + "harasses travelers in the area", + "snatches people from homes", + "attacks anyone who dares to approach its lair", + "attacks unsuspecting victims" ]; while (quantity) { @@ -569,7 +608,7 @@ window.Markers = (function () { const monster = ra(species); const toponym = Names.getCulture(cells.culture[cell]); const name = `${toponym} ${monster}`; - const legend = `${ra(subjects)} tell tales of an old ${monster} who inhabits ${toponym} hills and ${ra(modusOperandi)}`; + const legend = `${ra(subjects)} speak of a ${ra(adjectives)} ${monster} who inhabits ${toponym} hills and ${ra(modusOperandi)}`; notes.push({id, name, legend}); quantity--; } @@ -739,7 +778,7 @@ window.Markers = (function () { let quantity = getQuantity(statues, 80, 1200, multiplier); if (!quantity) return; - const variants = ["Statue", "Obelisk", "Monument", "Column", "Monolith", "Pillar", "Megalith", "Stele", "Runestone"]; + const variants = ["Statue", "Obelisk", "Monument", "Column", "Monolith", "Pillar", "Megalith", "Stele", "Runestone", "Sculpture", "Effigy", "Idol"]; const scripts = { cypriot: "𐠁𐠂𐠃𐠄𐠅𐠈𐠊𐠋𐠌𐠍𐠎𐠏𐠐𐠑𐠒𐠓𐠔𐠕𐠖𐠗𐠘𐠙𐠚𐠛𐠜𐠝𐠞𐠟𐠠𐠡𐠢𐠣𐠤𐠥𐠦𐠧𐠨𐠩𐠪𐠫𐠬𐠭𐠮𐠯𐠰𐠱𐠲𐠳𐠴𐠵𐠷𐠸𐠼𐠿 ", geez: "ሀለሐመሠረሰቀበተኀነአከወዐዘየደገጠጰጸፀፈፐ ", @@ -773,7 +812,7 @@ window.Markers = (function () { let quantity = getQuantity(ruins, 80, 1200, multiplier); if (!quantity) return; - const types = ["City", "Town", "Pyramid", "Fort"]; + const types = ["City", "Town", "Settlement", "Pyramid", "Fort", "Stronghold", "Temple", "Sacred site", "Mausoleum", "Outpost", "Fortification", "Fortress", "Castle"]; while (quantity) { const [cell] = extractAnyElement(ruins); @@ -781,7 +820,7 @@ window.Markers = (function () { const ruinType = ra(types); const name = `Ruined ${ruinType}`; - const legend = `Ruins of an ancient ${ruinType.toLowerCase()}. A good place for a treasures hunt`; + const legend = `Ruins of an ancient ${ruinType.toLowerCase()}. Untold riches may lie within.`; notes.push({id, name, legend}); quantity--; }