Add new marker lore descriptions (#681)

* Add new marker lore descriptions

* Fix errors, expand lore generation
This commit is contained in:
M. Aleksandrov 2021-10-09 18:12:05 +03:00 committed by GitHub
parent 5a183af735
commit 827d488904
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -181,7 +181,16 @@ window.Markers = (function () {
const river = pack.rivers.find(r => r.i === pack.cells.r[cell]); const river = pack.rivers.find(r => r.i === pack.cells.r[cell]);
const riverName = river ? `${river.name} ${river.type}` : "river"; const riverName = river ? `${river.name} ${river.type}` : "river";
const name = river && P(0.2) ? river.name : burg.name; 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--; quantity--;
} }
} }
@ -448,7 +457,7 @@ window.Markers = (function () {
const [cell] = extractAnyElement(lighthouses); const [cell] = extractAnyElement(lighthouses);
const id = addMarker({cell, icon, type, px: 14}); const id = addMarker({cell, icon, type, px: 14});
const proper = cells.burg[cell] ? pack.burgs[cells.burg[cell]].name : Names.getCulture(cells.culture[cell]); 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--; 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 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); const quantity = getQuantity(waterfalls, 1, 5, multiplier);
if (!quantity) return; 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++) { for (let i = 0; i < waterfalls.length && i < quantity; i++) {
const cell = waterfalls[i]; const cell = waterfalls[i];
const id = addMarker({cell, icon, type, dy: 54, px: 16}); 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]); 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 id = addMarker({cell, icon, type, dy: 48});
const name = `${lake.name} Monster`; const name = `${lake.name} Monster`;
const length = gauss(10, 5, 5, 100); 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}); notes.push({id, name, legend});
quantity--; quantity--;
} }
@ -552,15 +569,37 @@ window.Markers = (function () {
let quantity = getQuantity(hills, 30, 600, multiplier); let quantity = getQuantity(hills, 30, 600, multiplier);
if (!quantity) return; if (!quantity) return;
const subjects = ["Locals", "Old folks", "Old books", "Tipplers"]; const adjectives = [
const species = ["Ogre", "Troll", "Cyclops", "Giant", "Monster", "Beast", "Dragon", "Undead", "Ghoul", "Vampire"]; "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 = [ const modusOperandi = [
"steals their cattle", "steals cattle at night",
"doesn't mind eating children", "prefers eating children",
"doesn't mind of human flesh", "doesn't mind of human flesh",
"keeps the region at bay", "keeps the region at bay",
"eats their kids", "eats kids whole",
"abducts young women" "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) { while (quantity) {
@ -569,7 +608,7 @@ window.Markers = (function () {
const monster = ra(species); const monster = ra(species);
const toponym = Names.getCulture(cells.culture[cell]); const toponym = Names.getCulture(cells.culture[cell]);
const name = `${toponym} ${monster}`; 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}); notes.push({id, name, legend});
quantity--; quantity--;
} }
@ -739,7 +778,7 @@ window.Markers = (function () {
let quantity = getQuantity(statues, 80, 1200, multiplier); let quantity = getQuantity(statues, 80, 1200, multiplier);
if (!quantity) return; 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 = { const scripts = {
cypriot: "𐠁𐠂𐠃𐠄𐠅𐠈𐠊𐠋𐠌𐠍𐠎𐠏𐠐𐠑𐠒𐠓𐠔𐠕𐠖𐠗𐠘𐠙𐠚𐠛𐠜𐠝𐠞𐠟𐠠𐠡𐠢𐠣𐠤𐠥𐠦𐠧𐠨𐠩𐠪𐠫𐠬𐠭𐠮𐠯𐠰𐠱𐠲𐠳𐠴𐠵𐠷𐠸𐠼𐠿 ", cypriot: "𐠁𐠂𐠃𐠄𐠅𐠈𐠊𐠋𐠌𐠍𐠎𐠏𐠐𐠑𐠒𐠓𐠔𐠕𐠖𐠗𐠘𐠙𐠚𐠛𐠜𐠝𐠞𐠟𐠠𐠡𐠢𐠣𐠤𐠥𐠦𐠧𐠨𐠩𐠪𐠫𐠬𐠭𐠮𐠯𐠰𐠱𐠲𐠳𐠴𐠵𐠷𐠸𐠼𐠿 ",
geez: "ሀለሐመሠረሰቀበተኀነአከወዐዘየደገጠጰጸፀፈፐ ", geez: "ሀለሐመሠረሰቀበተኀነአከወዐዘየደገጠጰጸፀፈፐ ",
@ -773,7 +812,7 @@ window.Markers = (function () {
let quantity = getQuantity(ruins, 80, 1200, multiplier); let quantity = getQuantity(ruins, 80, 1200, multiplier);
if (!quantity) return; 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) { while (quantity) {
const [cell] = extractAnyElement(ruins); const [cell] = extractAnyElement(ruins);
@ -781,7 +820,7 @@ window.Markers = (function () {
const ruinType = ra(types); const ruinType = ra(types);
const name = `Ruined ${ruinType}`; 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}); notes.push({id, name, legend});
quantity--; quantity--;
} }