gregory-jagermeister_Fantas.../generators/plothook.ts

23 lines
25 KiB
TypeScript
Raw Permalink Normal View History

2023-02-10 01:19:49 +00:00
export function generatePlotHook(): string {
const antagonist = ["orcish horde", "demonic cult", "goblin mercenaries", "troll raiders", "undead army", "shapeshifting spies", "gargoyle hoard", "draconic cult", "sorcerous league", "vampire coven", "elemental scourge", "psychic assassins", "giant marauders", "fey enchantresses", "ogre raiders", "gnoll mercenaries", "infernal overlords", "undead necromancers", "fey warlords", "aquatic raiders", "vampiric coven", "ancient vampires", "golem warriors", "beholder mind-scouts", "political pressure groups", "demonic horde", "gnome infiltrators", "necromantic cults", "dwarven brigands", "half-fiend warlords", "tiefling spies", "adventurers guild", "dark gods cult", "celestial tyrants", "githyanki invaders", "halfling infiltrators", "shadow organization", "winged marauders", "lycanthrope warriors", "aquatic witches", "cult of the dragon", "ancient evils", "lich court", "political factions", "witch hunters", "elf maidens", "goblin assassins", "black order", "dragon-kings", "goblin hordes", "arcane artificers", "mountain giants", "elemental lords", "hobgoblin brigands", "undead host", "efreeti rulers", "humanoids kingdom", "cult of the wyrm", "elemental sorcerers", "ogre magi", "gnome saboteurs", "deep ones", "drow guilds", "woodland witches", "gargoyle builders", "planar hauntings", "umbral court", "cult of the smith", "earthbinders", "chaotic agents", "eldritch powers", "naga sorcerers", "underdark monsters", "githzerai agents", "assassins league", "harpy warriors", "orcish warlords", "familiars", "astral marauders", "fey lords", "alien overlords", "spider cults", "sorcerous covens", "goblin overlords", "dragonspawn", "mountain witches", "goblin witchdoctors", "ogre warbands", "aboleth sorcerers", "doppelgangers", "demonic horde", "gnoll wizards", "elemental armies", "shadow court", "dwarven bandits", "dark wizards", "necropolis", "cult of the destroyer", "fomorian bastions", "primordial forces", "insectoid slavemasters", "gnome artificers", "dwarven lords", "hive mind", "archfiends", "beast cults", "undead armies", "devilish court", "vampire lords", "arcane cabal", "mystic sorcerors", "hiveminds", "primal beasts", "archdevils", "noxious elementals", "djinni rulers"];
const location = ["forest", "mountains", "desert", "swamps", "underground", "cave", "plains", "island", "castle", "volcano", "jungle", "tundra", "tower", "river", "sea", "moor", "valley", "glacier", "mines", "ruins", "oasis", "lagoon", "beach", "mountain pass", "cliff", "grotto", "falls", "lakes", "gardens", "meadows", "swamp woods", "canyon", "lighthouse", "outskirts", "islets", "crystal caverns", "fjords", "marsh", "gully", "fen", "grove", "coral reef", "bayou", "heath", "gorge", "pond", "cliffs", "cave system", "abyss", "mountain top", "underwater city", "bog", "iceberg", "mineshaft", "abandoned city", "haunted forest", "treetops", "lava plains", "tunnels", "hidden grotto", "underground lake", "wastelands"];
const antagonistsIndex = Math.floor(Math.random() * antagonist.length);
const locationsIndex = Math.floor(Math.random() * location.length);
const promptArray = [
2023-02-17 23:45:22 +00:00
{ title: `The Lost ${capitalizeFirstLetter(location[locationsIndex])} Treasure`, description: `A valuable artifact has gone missing in the ${capitalizeFirstLetter(location[locationsIndex])}. It is said to be guarded by ${antagonist[antagonistsIndex]}. The artifact must be retrieved before it falls into the wrong hands.` }, { title: `The Cursed ${capitalizeFirstLetter(location[locationsIndex])}`, description: `A mysterious force has taken hold of the ${capitalizeFirstLetter(location[locationsIndex])}, causing strange and dangerous happenings. It is up to the brave adventurers to find out what is causing this and put an end to it.` },
{ title: `The ${antagonist[antagonistsIndex]} of the ${capitalizeFirstLetter(location[locationsIndex])}`, description: `The ${capitalizeFirstLetter(location[locationsIndex])} is being terrorized by a powerful ${antagonist[antagonistsIndex]}. The people of the ${capitalizeFirstLetter(location[locationsIndex])} are in need of heroes to take on the ${antagonist[antagonistsIndex]} and restore peace to the land.` },
{ title: `The Mystery of the ${capitalizeFirstLetter(location[locationsIndex])}`, description: `The ${capitalizeFirstLetter(location[locationsIndex])} is full of secrets and mysteries. It is up to the adventurers to explore the ${capitalizeFirstLetter(location[locationsIndex])} and uncover its hidden secrets.` },
{ title: `The ${antagonist[antagonistsIndex]}'s Lair`, description: `The ${antagonist[antagonistsIndex]} has taken refuge in a hidden lair deep in the ${capitalizeFirstLetter(location[locationsIndex])}. It is up to the adventurers to find the lair and put an end to the ${antagonist[antagonistsIndex]}'s reign of terror.` }, { title: `The ${antagonist[antagonistsIndex]}'s Revenge`, description: `The ${antagonist[antagonistsIndex]} has returned to the ${capitalizeFirstLetter(location[locationsIndex])} seeking revenge. The brave adventurers must face the ${antagonist[antagonistsIndex]} and save the ${capitalizeFirstLetter(location[locationsIndex])} from destruction.` }, { title: `The ${capitalizeFirstLetter(location[locationsIndex])}'s Last Hope`, description: `The ${capitalizeFirstLetter(location[locationsIndex])} is in dire need of help. The brave adventurers must put an end to the ${antagonist[antagonistsIndex]}'s evil plans and save the ${capitalizeFirstLetter(location[locationsIndex])} from destruction.` }, { title: `The Battle for the ${capitalizeFirstLetter(location[locationsIndex])}`, description: `The forces of evil are gathering in the ${capitalizeFirstLetter(location[locationsIndex])}. The brave adventurers must fight to protect the ${capitalizeFirstLetter(location[locationsIndex])} from the ${antagonist[antagonistsIndex]} and his minions.` }, { title: `The Search for the ${capitalizeFirstLetter(location[locationsIndex])}`, description: `The ${capitalizeFirstLetter(location[locationsIndex])} has been lost for centuries. It is up to the adventurers to search the ${capitalizeFirstLetter(location[locationsIndex])} and uncover its secrets.` }, { title: `The ${antagonist[antagonistsIndex]}'s Treasure`, description: `The ${antagonist[antagonistsIndex]} has hidden a great treasure in the ${capitalizeFirstLetter(location[locationsIndex])}. It is up to the adventurers to find the treasure and put an end to the ${antagonist[antagonistsIndex]}'s schemes.` }, { title: `The ${antagonist[antagonistsIndex]}'s Curse`, description: `The ${antagonist[antagonistsIndex]} has cursed the ${capitalizeFirstLetter(location[locationsIndex])}. It is up to the adventurers to break the curse and restore peace to the ${capitalizeFirstLetter(location[locationsIndex])}.` }, { title: `The ${capitalizeFirstLetter(location[locationsIndex])}'s Secret`, description: `The ${capitalizeFirstLetter(location[locationsIndex])} is full of secrets that are waiting to be discovered. It is up to the adventurers to explore the ${capitalizeFirstLetter(location[locationsIndex])} and uncover its secrets.` }, { title: `The Battle for the ${capitalizeFirstLetter(location[locationsIndex])}`, description: `The ${capitalizeFirstLetter(location[locationsIndex])} is under siege by the forces of the ${antagonist[antagonistsIndex]}. The brave adventurers must fight to protect the ${capitalizeFirstLetter(location[locationsIndex])} and put an end to the ${antagonist[antagonistsIndex]}'s reign of terror.` }, { title: `The ${antagonist[antagonistsIndex]}'s Scheme`, description: `The ${antagonist[antagonistsIndex]} is planning something sinister in the ${capitalizeFirstLetter(location[locationsIndex])}. It is up to the adventurers to stop the ${antagonist[antagonistsIndex]} before it is too late.` }, { title: `The ${capitalizeFirstLetter(location[locationsIndex])}'s Secret`, description: `The ${capitalizeFirstLetter(location[locationsIndex])} holds a secret that could change the world. It is up to the adventurers to find the secret and protect it from the ${antagonist[antagonistsIndex]}.` }, { title: `The ${antagonist[antagonistsIndex]}'s Wrath`, description: `The ${antagonist[antagonistsIndex]} is wreaking havoc in the ${capitalizeFirstLetter(location[locationsIndex])}. It is up to the adventurers to put an end to the ${antagonist[antagonistsIndex]}'s evil plans and restore peace to the ${capitalizeFirstLetter(location[locationsIndex])}.` }, { title: `The Return of the ${antagonist[antagonistsIndex]}`, description: `The ${antagonist[antagonistsIndex]} has returned to
{ title: `The ${capitalizeFirstLetter(location[locationsIndex])} Race`, description: `You have been challenged to a race by ${antagonist[antagonistsIndex]} in the ${capitalizeFirstLetter(location[locationsIndex])}. You must win the race to prove your superiority.` }, { title: `The ${capitalizeFirstLetter(location[locationsIndex])} Danger`, description: `The ${capitalizeFirstLetter(location[locationsIndex])} is in danger from ${antagonist[antagonistsIndex]}. You must find a way to save it before it is too late.` }, { title: `The ${capitalizeFirstLetter(location[locationsIndex])} Mysteries`, description: `Strange things are happening in the ${capitalizeFirstLetter(location[locationsIndex])}. You must investigate and uncover the truth behind the mysteries.` }, { title: `The ${capitalizeFirstLetter(location[locationsIndex])} Showdown`, description: `You must face off against ${antagonist[antagonistsIndex]} in the ${capitalizeFirstLetter(location[locationsIndex])}. You must defeat them in order to save the day.` }, { title: `The ${capitalizeFirstLetter(location[locationsIndex])} Invasion`, description: `${antagonist[antagonistsIndex]} have invaded the ${capitalizeFirstLetter(location[locationsIndex])}. You must find a way to drive them out and restore peace.` }, { title: `The ${capitalizeFirstLetter(location[locationsIndex])} Showdown`, description: `You must face off against ${antagonist[antagonistsIndex]} in the ${capitalizeFirstLetter(location[locationsIndex])}. You must defeat them in order to save the world.` }, { title: `The ${capitalizeFirstLetter(location[locationsIndex])} Discovery`, description: `You have been hired to explore the ${capitalizeFirstLetter(location[locationsIndex])}. Along the way, you must fend off ${antagonist[antagonistsIndex]} and uncover ancient secrets.` }, { title: `The ${capitalizeFirstLetter(location[locationsIndex])} Showdown`, description: `You must face off against ${antagonist[antagonistsIndex]} in the ${capitalizeFirstLetter(location[locationsIndex])}. You must defeat them in order to save the kingdom.` }, { title: `The ${capitalizeFirstLetter(location[locationsIndex])} Prison`, description: `You have been hired to break someone out of a prison in the ${capitalizeFirstLetter(location[locationsIndex])}. Along the way, you must avoid detection from ${antagonist[antagonistsIndex]}.` }, { title: `The ${capitalizeFirstLetter(location[locationsIndex])} Rescue`, description: `You have been hired to rescue someone from the ${capitalizeFirstLetter(location[locationsIndex])}. Along the way, you must avoid detection from ${antagonist[antagonistsIndex]}.` }, { title: `The ${capitalizeFirstLetter(location[locationsIndex])} Treasure`, description: `A valuable treasure is hidden in the ${capitalizeFirstLetter(location[locationsIndex])}. You must find it before ${antagonist[antagonistsIndex]} can get their hands on it.` }, { title: `The ${capitalizeFirstLetter(location[locationsIndex])} Challenge`, description: `You have been challenged by ${antagonist[antagonistsIndex]} to a battle in the ${capitalizeFirstLetter(location[locationsIndex])}. You must accept the challenge and prove your worth.` }, { title: `The ${capitalizeFirstLetter(location[locationsIndex])} Showdown`, description: `You must face off against ${antagonist[antagonistsIndex]} in the ${capitalizeFirstLetter(location[locationsIndex])}. You must defeat them in order to save the city.` }, { title: `The ${capitalizeFirstLetter(location[locationsIndex])} Quest`, description: `You have been sent on a quest to the ${capitalizeFirstLetter(location[locationsIndex])}. Along the way, you must fend off ${antagonist[antagonistsIndex]} and discover ancient secrets.` }, { title: `The ${capitalizeFirstLetter(location[locationsIndex])} Mission`, description: `You have been hired to complete a mission in the ${capitalizeFirstLetter(location[locationsIndex])}. Along the way, you must avoid detection from ${antagonist[antagonistsIndex]}.` }, { title: `The ${capitalizeFirstLetter(location[locationsIndex])} Spy`, description: `You have been hired to sp
2023-02-10 01:19:49 +00:00
]
const promptIndex = Math.floor(Math.random() * promptArray.length);
return `${promptArray[promptIndex].title},\n${promptArray[promptIndex].description}`;
2023-02-17 23:45:22 +00:00
}
function capitalizeFirstLetter(string: string) {
return string.charAt(0).toUpperCase() + string.slice(1);
2023-02-10 01:19:49 +00:00
}