mirror of
https://github.com/Azgaar/Fantasy-Map-Generator.git
synced 2025-12-23 12:31:24 +01:00
A bit variety of points of interest added
This commit is contained in:
parent
af62ff915c
commit
5085567281
1 changed files with 118 additions and 6 deletions
|
|
@ -1,5 +1,11 @@
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
|
/*
|
||||||
|
To add:
|
||||||
|
migrating herds of animals
|
||||||
|
archery contests
|
||||||
|
*/
|
||||||
|
|
||||||
window.Markers = (function () {
|
window.Markers = (function () {
|
||||||
let config = [];
|
let config = [];
|
||||||
let occupied = [];
|
let occupied = [];
|
||||||
|
|
@ -28,8 +34,12 @@ window.Markers = (function () {
|
||||||
{type: "brigands", icon: "💰", px: 13, min: 50, each: 100, multiplier: 1, list: listBrigands, add: addBrigands},
|
{type: "brigands", icon: "💰", px: 13, min: 50, each: 100, multiplier: 1, list: listBrigands, add: addBrigands},
|
||||||
{type: "pirates", icon: "🏴☠️", dx: 51, min: 40, each: 300, multiplier: 1, list: listPirates, add: addPirates},
|
{type: "pirates", icon: "🏴☠️", dx: 51, min: 40, each: 300, multiplier: 1, list: listPirates, add: addPirates},
|
||||||
{type: "statues", icon: "🗿", min: 80, each: 1200, multiplier: 1, list: listStatues, add: addStatue},
|
{type: "statues", icon: "🗿", min: 80, each: 1200, multiplier: 1, list: listStatues, add: addStatue},
|
||||||
{type: "ruines", icon: "🏺", min: 80, each: 1200, multiplier: 1, list: listRuins, add: addRuins},
|
{type: "ruins", icon: "🏺", min: 80, each: 1200, multiplier: 1, list: listRuins, add: addRuins},
|
||||||
{type: "portals", icon: "🌀", px: 14, min: 16, each: 8, multiplier: +isFantasy, list: listPortals, add: addPortal}
|
{type: "circuses", icon: "🎪", min: 80, each: 1000, multiplier: 1, list: listCircuses, add: addCircuses},
|
||||||
|
{type: "jousts", icon: "🤺", min: 1, each: 25, multiplier: 1, list: listJousts, add: addJousts},
|
||||||
|
{type: "canoes", icon: "🛶", min: 20, each: 250, multiplier: 1, list: listCanoes, add: addCanoes},
|
||||||
|
{type: "portals", icon: "🌀", px: 14, min: 16, each: 8, multiplier: +isFantasy, list: listPortals, add: addPortal},
|
||||||
|
{type: "rifts", icon: "🌌", min: 50, each: 2000, multiplier: +isFantasy, list: listRifts, add: addRifts}
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -407,14 +417,14 @@ window.Markers = (function () {
|
||||||
const drinks = [
|
const drinks = [
|
||||||
"wine",
|
"wine",
|
||||||
"brandy",
|
"brandy",
|
||||||
"jinn",
|
"gin",
|
||||||
"whisky",
|
"whisky",
|
||||||
"rom",
|
"rom",
|
||||||
"beer",
|
"beer",
|
||||||
"cider",
|
"cider",
|
||||||
"mead",
|
"mead",
|
||||||
"liquor",
|
"liquor",
|
||||||
"spirit",
|
"spirits",
|
||||||
"vodka",
|
"vodka",
|
||||||
"tequila",
|
"tequila",
|
||||||
"absinthe",
|
"absinthe",
|
||||||
|
|
@ -777,6 +787,75 @@ window.Markers = (function () {
|
||||||
notes.push({id, name, legend});
|
notes.push({id, name, legend});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function listCircuses({cells}) {
|
||||||
|
return cells.i.filter(i => !occupied[i] && cells.culture[i] && cells.h[i] >= 20 && pack.cells.road[i]);
|
||||||
|
}
|
||||||
|
|
||||||
|
function addCircuses(id, cell) {
|
||||||
|
const adjectives = [
|
||||||
|
"Fantastical",
|
||||||
|
"Wonderous",
|
||||||
|
"Incomprehensible",
|
||||||
|
"Magical",
|
||||||
|
"Extraordinary",
|
||||||
|
"Unmissable",
|
||||||
|
"World-famous",
|
||||||
|
"Breathtaking"
|
||||||
|
];
|
||||||
|
|
||||||
|
const adjective = ra(adjectives);
|
||||||
|
const name = `Travelling ${adjective} Circus`;
|
||||||
|
const legend = `Roll up, roll up, this ${adjective.toLowerCase()} circus is here for a limited time only.`;
|
||||||
|
notes.push({id, name, legend});
|
||||||
|
}
|
||||||
|
|
||||||
|
function listJousts({cells, burgs}) {
|
||||||
|
return cells.i.filter(i => !occupied[i] && cells.burg[i] && burgs[cells.burg[i]].population > 20);
|
||||||
|
}
|
||||||
|
|
||||||
|
function addJousts(id, cell) {
|
||||||
|
const {cells, burgs} = pack;
|
||||||
|
const types = [
|
||||||
|
"Joust",
|
||||||
|
"Competition",
|
||||||
|
"Melee",
|
||||||
|
"Tournament",
|
||||||
|
"Contest"
|
||||||
|
];
|
||||||
|
const virtues = [
|
||||||
|
"cunning",
|
||||||
|
"might",
|
||||||
|
"speed",
|
||||||
|
"the greats",
|
||||||
|
"acumen",
|
||||||
|
"brutality"
|
||||||
|
];
|
||||||
|
|
||||||
|
// Jousts can only be added to burgs
|
||||||
|
if (!cells.burg[cell]) return;
|
||||||
|
const burgName = burgs[cells.burg[cell]].name;
|
||||||
|
const type = ra(types)
|
||||||
|
const virtue = ra(virtues)
|
||||||
|
|
||||||
|
const name = `${burgName} ${type}`;
|
||||||
|
const legend = `Warriors from around the land gather for a ${type.toLowerCase()} of ${virtue} in ${burgName}, with fame, fortune and favour on offer to the victor`;
|
||||||
|
notes.push({id, name, legend});
|
||||||
|
}
|
||||||
|
|
||||||
|
function listCanoes({cells}) {
|
||||||
|
return cells.i.filter(i => !occupied[i] && cells.r[i]);
|
||||||
|
}
|
||||||
|
|
||||||
|
function addCanoes(id, cell) {
|
||||||
|
const {cells} = pack;
|
||||||
|
const river = pack.rivers.find(r => r.i === pack.cells.r[cell]);
|
||||||
|
|
||||||
|
|
||||||
|
const name = `Minor Jetty`;
|
||||||
|
const legend = `A small location along the ${river} to launch boats from sits here, along with a weary looking owner, willing to sell passage along the river`;
|
||||||
|
notes.push({id, name, legend});
|
||||||
|
}
|
||||||
|
|
||||||
function listPortals({burgs}) {
|
function listPortals({burgs}) {
|
||||||
return burgs
|
return burgs
|
||||||
.slice(1, Math.ceil(burgs.length / 10) + 1)
|
.slice(1, Math.ceil(burgs.length / 10) + 1)
|
||||||
|
|
@ -788,13 +867,46 @@ window.Markers = (function () {
|
||||||
const {cells, burgs} = pack;
|
const {cells, burgs} = pack;
|
||||||
|
|
||||||
// Portals can only be added to burgs
|
// Portals can only be added to burgs
|
||||||
if (cells.burg[cell]) return;
|
if (!cells.burg[cell]) return;
|
||||||
const burgName = burgs[cells.burg[cell]].name;
|
const burgName = burgs[cells.burg[cell]].name;
|
||||||
|
|
||||||
const name = `${burgName} Portal`;
|
const name = `${burgName} Portal`;
|
||||||
const legend = `An element of the magic portal system connecting major cities. Portals installed centuries ago, but still work fine`;
|
const legend = `An element of the magic portal system connecting major cities. The portals were installed centuries ago, but still work fine`;
|
||||||
notes.push({id, name, legend});
|
notes.push({id, name, legend});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function listRifts({cells}) {
|
||||||
|
return cells.i.filter(i => !occupied[i] && pack.cells.pop[i] <= 3);
|
||||||
|
}
|
||||||
|
|
||||||
|
function addRifts(id, cell) {
|
||||||
|
const types = [
|
||||||
|
"Demonic",
|
||||||
|
"Interdimensional",
|
||||||
|
"Abyssal",
|
||||||
|
"Cosmic",
|
||||||
|
"Cataclysmic",
|
||||||
|
"Subterranean",
|
||||||
|
"Ancient"
|
||||||
|
];
|
||||||
|
|
||||||
|
const descriptions = [
|
||||||
|
"all known nearby beings to flee in terror",
|
||||||
|
"cracks in reality itself to form",
|
||||||
|
"swarms of foes to spill forth",
|
||||||
|
"the life of nearby plants to wither and decay",
|
||||||
|
"an emmissary to step through with an all-powerful relic"
|
||||||
|
]
|
||||||
|
|
||||||
|
const riftType = ra(types);
|
||||||
|
const name = `${riftType} Rift`;
|
||||||
|
const legend = `A rumoured ${riftType.toLowerCase()} rift in this area is causing ${ra(descriptions)}.`;
|
||||||
|
notes.push({id, name, legend});
|
||||||
|
}
|
||||||
|
|
||||||
|
function listRifts({cells}) {
|
||||||
|
return cells.i.filter(i => !occupied[i] && pack.cells.pop[i] <= 3);
|
||||||
|
}
|
||||||
|
|
||||||
return {add, generate, regenerate, getConfig, setConfig};
|
return {add, generate, regenerate, getConfig, setConfig};
|
||||||
})();
|
})();
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue