From 161a88ced0cf5f383811457a4a051c3b2e1cea45 Mon Sep 17 00:00:00 2001 From: Rhys <36913739+ryceg@users.noreply.github.com> Date: Sun, 11 Apr 2021 13:19:53 +1000 Subject: [PATCH] Minor-fixes (#567) ### Added - Button to edit pantheon in dropdown religion percentage list - Clearer delineation of what is and isn't Patron content. - Automatic removal of analytics for local-run copies - Automatic unlocking of Patreon content on local copies ### Changed - Made Patreon paywall deactivate if being run locally. - Fixed error with town editing - Fixed sidebar popups not showing up - Fixed error with faction editing - Fixed error with editing town biome --- CHANGELOG.md | 17 ++ lib/buildings/deleteBuildingRelationship.ts | 3 +- lib/religion/getPantheon.ts | 35 ++-- lib/src/badges.ts | 2 +- lib/src/getIllustration.ts | 18 +- lib/src/terrain.ts | 171 ++++++++++++------ src/Factions/components/FactionSliders.twee | 48 +++-- src/Meta/ImportDiscriminator.twee | 10 + src/Meta/ImportPatreon.twee | 11 ++ src/NPCGeneration/NPCProfile/NPCProfile.twee | 2 +- src/Religion/EditPantheon.twee | 44 +++++ src/Religion/ImportPantheon.twee | 22 --- src/Settings/Breadcrumb.twee | 8 +- src/Settings/PassageHeader.twee | 6 +- src/Settings/Setting.js | 35 +++- src/Settings/StoryStuff/StoryAuthor.twee | 8 +- src/Settings/StoryStuff/StoryMenu.twee | 6 +- src/Settings/StoryStuff/StoryTest.twee | 2 + src/Settings/Tippy/tooltips.ts | 13 +- src/Start/BriefDescription.twee | 2 +- src/Start/CustomStart/BiomeGeneration.twee | 4 +- src/Start/ReligionPercentageList.twee | 2 +- src/Start/Start.twee | 2 +- src/Start/StoryInit.twee | 8 +- .../components-edit/EditSociopolitics.twee | 5 +- src/Town/components-edit/TownEdit.twee | 2 +- src/Town/js/createTown.ts | 16 +- src/Town/js/createTownBiome.ts | 2 +- 28 files changed, 357 insertions(+), 147 deletions(-) create mode 100644 src/Meta/ImportDiscriminator.twee create mode 100644 src/Meta/ImportPatreon.twee create mode 100644 src/Religion/EditPantheon.twee delete mode 100644 src/Religion/ImportPantheon.twee create mode 100644 src/Settings/StoryStuff/StoryTest.twee diff --git a/CHANGELOG.md b/CHANGELOG.md index c481eb006..bbd48f97e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,23 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). +## 2.8.1 + +### Added +- Button to edit pantheon in dropdown religion percentage list +- Clearer delineation of what is and isn't Patron content. +- Automatic removal of analytics for local-run copies +- Automatic unlocking of Patreon content on local copies +- Prepositions for terrain, to make it sound more natural. + +### Changed +- Made Patreon paywall deactivate if being run locally. +- Fixed error with town editing +- Fixed sidebar popups not showing up +- Fixed error with faction editing +- Fixed error with editing town biome +- Fixed local / online hosting images error (hopefully) + ## 2.8 ### Added diff --git a/lib/buildings/deleteBuildingRelationship.ts b/lib/buildings/deleteBuildingRelationship.ts index 42e773e32..89d03e529 100644 --- a/lib/buildings/deleteBuildingRelationship.ts +++ b/lib/buildings/deleteBuildingRelationship.ts @@ -2,8 +2,9 @@ import { NPC } from '../npc-generation/_common' import { Town } from '../town/_common' import { Building } from './_common' import { findReciprocalRelationships } from './findReciprocalRelationships' +import { Faction } from '@lib' -export function deleteReciprocalRelationship (town: Town, building: Building | null, npc: NPC | null) { +export function deleteReciprocalRelationship (town: Town, building: Building | Faction | null, npc: NPC | null) { const relationships = findReciprocalRelationships(town, building, npc, 'building') for (const relationship of relationships) { diff --git a/lib/religion/getPantheon.ts b/lib/religion/getPantheon.ts index 6bbe3413f..93f1beb44 100644 --- a/lib/religion/getPantheon.ts +++ b/lib/religion/getPantheon.ts @@ -3,59 +3,62 @@ import { Town } from '../../lib/town/_common' import { compileWeightToPercentile, getDeityPercentagesList, getTownDeityWeightings } from './createTownReligion' import { Pantheon, religion } from './religion' -export const getDeity = (town: Town, deity: string) => { +export const getDeity = (town: Town, deity: string, customPantheon?: Pantheon) => { return findInArray( - getPantheon(town).gods, 'name', deity) + getPantheon(town, customPantheon).gods, 'name', deity) } -export const getPantheon = (town: Town): Pantheon => { - if (isUsingCustomPantheon(town)) return getCustomPantheon(town) +export const getPantheon = (town: Town, customPantheon?: Pantheon): Pantheon => { + if (isUsingCustomPantheon(town)) return getCustomPantheon(town, customPantheon) return religion.pantheon[town.religion.pantheon] } -export const getPantheonNames = (town: Town) => { - return Object.keys(getAllPantheons(town)) +export const getPantheonNames = (town: Town, customPantheon?: Pantheon) => { + return Object.keys(getAllPantheons(town, customPantheon)) } -export const getAllPantheons = (town: Town) => { +export const getAllPantheons = (town: Town, customPantheon?: Pantheon) => { const pantheons: Record = Object.assign({}, religion.pantheon) - if (seeIfCustomPantheonExists(town)) pantheons[getCustomPantheon(town).name] = getCustomPantheon(town) + if (seeIfCustomPantheonExists(town, customPantheon)) pantheons[getCustomPantheon(town, customPantheon).name] = getCustomPantheon(town, customPantheon) return pantheons } +/** If the pantheon being used doesn't exist in the data, it's obviously custom. */ export const isUsingCustomPantheon = (town: Town) => { if (religion.pantheon[town.religion.pantheon]) return false return true } -export const seeIfCustomPantheonExists = (town: Town): boolean => { +export const seeIfCustomPantheonExists = (town: Town, customPantheon?: Pantheon): boolean => { + if (customPantheon) return true if (town.religion.customPantheon) return true return false } -export const getCustomPantheon = (town: Town): Pantheon => { +export const getCustomPantheon = (town: Town, customPantheon?: Pantheon): Pantheon => { if (town.religion.customPantheon) return town.religion.customPantheon + if (customPantheon) return customPantheon throw new Error('Custom panthon not defined!') } -export const getPantheonPercentages = (town: Town) => { +export const getPantheonPercentages = (town: Town, customPantheon?: Pantheon) => { console.log('Getting pantheon percentages...') return compileWeightToPercentile( - getTownDeityWeightings(town, getPantheon(town).gods) + getTownDeityWeightings(town, getPantheon(town, customPantheon).gods) ) } -export const getCulledPantheonPercentages = (town: Town) => { +export const getCulledPantheonPercentages = (town: Town, customPantheon?: Pantheon) => { console.log('Getting pantheon percentages...') const temp = compileWeightToPercentile( - getTownDeityWeightings(town, getPantheon(town).gods) + getTownDeityWeightings(town, getPantheon(town, customPantheon).gods) ) return Object.fromEntries( Object.entries(temp).filter(([, value]) => value > 0)) } -export const getPantheonPercentagesReadout = (town: Town) => { - const deities: [string, number][] = getDeityPercentagesList(getPantheonPercentages(town)) +export const getPantheonPercentagesReadout = (town: Town, customPantheon?: Pantheon) => { + const deities: [string, number][] = getDeityPercentagesList(getPantheonPercentages(town, customPantheon)) let text = '' for (const [deity, percentage] of deities) { if (percentage > 0) { diff --git a/lib/src/badges.ts b/lib/src/badges.ts index 9db1866a9..3308fdaf3 100644 --- a/lib/src/badges.ts +++ b/lib/src/badges.ts @@ -269,7 +269,7 @@ export const badges = { }, commitsSinceLastUpdate: { alt: 'Commits since last update', - source: '/github/commits-since/ryceg/Eigengrau-s-Essential-Establishment-Generator/2.7', + source: '/github/commits-since/ryceg/Eigengrau-s-Essential-Establishment-Generator/2.8', logo: 'github', color: '6cc644' }, diff --git a/lib/src/getIllustration.ts b/lib/src/getIllustration.ts index 70491f77f..4dce18e07 100644 --- a/lib/src/getIllustration.ts +++ b/lib/src/getIllustration.ts @@ -9,21 +9,31 @@ type Illustration = export const getIllustration = (illustration: Illustration, alt: string) => { let img = ' { + if (process.env.NODE_ENV === 'production' && location.origin !== 'file://') { + return './' + } + return '../' +} + // It would obviously be preferable to output actual s instead of having it render via SugarCube. // Unfortunately, I am not a clever man, and cannot figure it out. export const getImage = (illustration: Illustration) => { const img = document.createElement('img') + const path = getPath() img.id = 'illustration' - img.src = `../src/Resources/img/hero/${illustration}.jpg` - img.srcset = `../src/Resources/img/hero/${illustration}-x360.jpg 360w, ../src/Resources/img/hero/${illustration}-x411.jpg 411w, ../src/Resources/img/hero/${illustration}-x500.jpg 500w, ../src/Resources/img/hero/${illustration}-x576.jpg 576w, ../src/Resources/img/hero/${illustration}-x768.jpg 768w, ../src/Resources/img/hero/${illustration}-x992.jpg 992w, ../src/Resources/img/hero/${illustration}-x1200.jpg 1200w, ../src/Resources/img/hero/${illustration}.jpg` + img.src = `${path}src/Resources/img/hero/${illustration}.jpg` + img.srcset = `${path}src/Resources/img/hero/${illustration}-x360.jpg 360w, ${path}src/Resources/img/hero/${illustration}-x411.jpg 411w, ${path}src/Resources/img/hero/${illustration}-x500.jpg 500w, ${path}src/Resources/img/hero/${illustration}-x576.jpg 576w, ${path}src/Resources/img/hero/${illustration}-x768.jpg 768w, ${path}src/Resources/img/hero/${illustration}-x992.jpg 992w, ${path}src/Resources/img/hero/${illustration}-x1200.jpg 1200w, ${path}src/Resources/img/hero/${illustration}.jpg` img.alt = `An image depicting ${lib.articles.output(illustration)}, created by artist Juho Huttunen.` return img } diff --git a/lib/src/terrain.ts b/lib/src/terrain.ts index fe8d722e7..b67c739f4 100644 --- a/lib/src/terrain.ts +++ b/lib/src/terrain.ts @@ -6,9 +6,9 @@ export type Biome = 'temperate' | 'tropical' | 'arid' | 'polar' export type Seasons = 'spring' | 'summer' | 'autumn' | 'winter' export interface TerrainData { + start: WeightRecord weather: WeatherData - start: string[] - location: Record + location: Record } interface WeatherData { @@ -26,6 +26,7 @@ interface TempVariation { temperatureTimer(): number } interface LocationData { + preposition: string precipitationIntensity: number origin: string[] vegetation: Record @@ -33,8 +34,17 @@ interface LocationData { possibleMaterials: string[] } +// function makeTerrain () { export const terrain: Record = { temperate: { + start: { + 'seashore': 4, + 'forest': 2, + 'river coast': 2, + 'hills': 1, + 'plains': 1, + 'mountains': 1 + }, weather: { tempVariation: { 95: { @@ -88,11 +98,11 @@ export const terrain: Record = { baseTemp: 60 } } - }, - start: ['seashore', 'seashore', 'seashore', 'seashore', 'forest', 'forest', 'hills', 'plains', 'mountains', 'river coast', 'river coast'], + } as WeatherData, location: { // town.Name is located in the _ 'seashore': { + preposition: 'on', precipitationIntensity: 3, // town.Name grew around _ origin: [ @@ -117,10 +127,11 @@ export const terrain: Record = { 'shrubs': 1, 'bush': 1, 'windswept trees': 1 - }, + } as WeightRecord, possibleMaterials: ['hewn rock', 'stone', 'cobblestone', 'wood', 'brick', 'limestone'] }, 'forest': { + preposition: 'in', precipitationIntensity: 2, origin: [ 'a large freshwater lake', @@ -152,10 +163,11 @@ export const terrain: Record = { 'alder trees': 1, 'cypress trees': 1, 'yew trees': 1 - }, + } as WeightRecord, possibleMaterials: ['hewn rock', 'stone', 'cobblestone', 'wood', 'brick', 'limestone', 'plaster', 'gypsum', 'adobe', 'daub', 'cob'] }, 'hills': { + preposition: 'in', precipitationIntensity: 2, origin: [ 'a large freshwater lake', @@ -176,10 +188,11 @@ export const terrain: Record = { shrubs: 1, bush: 1, trees: 2 - }, + } as WeightRecord, possibleMaterials: ['hewn rock', 'stone', 'cobblestone', 'wood', 'brick', 'limestone', 'plaster', 'gypsum', 'adobe', 'daub', 'cob'] }, 'plains': { + preposition: 'on', precipitationIntensity: 2, origin: [ 'a wide, navigable river', @@ -197,10 +210,11 @@ export const terrain: Record = { shrubs: 1, bush: 1, trees: 2 - }, + } as WeightRecord, possibleMaterials: ['hewn rock', 'stone', 'cobblestone', 'wood', 'brick', 'limestone', 'plaster', 'gypsum', 'adobe', 'daub', 'cob'] }, 'mountains': { + preposition: 'in', precipitationIntensity: 2, origin: [ 'a large freshwater lake', @@ -220,10 +234,11 @@ export const terrain: Record = { shrubs: 1, bush: 1, trees: 2 - }, + } as WeightRecord, possibleMaterials: ['hewn rock', 'stone', 'cobblestone', 'wood', 'brick', 'limestone', 'plaster', 'gypsum', 'adobe', 'daub', 'cob'] }, 'river coast': { + preposition: 'on', precipitationIntensity: 2, origin: [ 'a coastal harbor', @@ -239,12 +254,22 @@ export const terrain: Record = { shrubs: 1, bush: 1, trees: 2 - }, + } as WeightRecord, possibleMaterials: ['hewn rock', 'stone', 'cobblestone', 'wood', 'brick', 'limestone', 'plaster', 'gypsum', 'adobe', 'daub', 'cob'] } } }, tropical: { + start: { + 'seacoast': 1, + 'forest': 1, + 'river coast': 2, + 'jungle': 1, + 'volcanic field': 1, + 'hills': 1, + 'plains': 1, + 'mountains': 1 + }, weather: { tempVariation: { 85: { @@ -290,10 +315,10 @@ export const terrain: Record = { baseTemp: 75 } } - }, - start: ['seacoast', 'forest', 'hills', 'plains', 'mountains', 'river coast', 'jungle', 'volcanic field'], + } as WeatherData, location: { 'seacoast': { + preposition: 'on', precipitationIntensity: 3, origin: [ 'a coastal harbor', @@ -315,10 +340,11 @@ export const terrain: Record = { shrubs: 1, bush: 1, trees: 2 - }, + } as WeightRecord, possibleMaterials: ['hewn rock', 'stone', 'cobblestone', 'wood', 'brick', 'limestone', 'adobe', 'daub', 'cob', 'straw', 'terra cotta', 'clay'] }, 'forest': { + preposition: 'in', precipitationIntensity: 2, origin: [ 'a large freshwater lake', @@ -340,10 +366,11 @@ export const terrain: Record = { shrubs: 1, bush: 1, trees: 2 - }, + } as WeightRecord, possibleMaterials: ['hewn rock', 'stone', 'cobblestone', 'wood', 'brick', 'limestone', 'plaster', 'gypsum', 'adobe', 'daub', 'cob', 'straw', 'terra cotta', 'clay'] }, 'hills': { + preposition: 'in', precipitationIntensity: 2, origin: [ 'a large freshwater lake', @@ -362,10 +389,11 @@ export const terrain: Record = { shrubs: 1, bush: 1, trees: 2 - }, + } as WeightRecord, possibleMaterials: ['hewn rock', 'stone', 'cobblestone', 'wood', 'brick', 'limestone', 'plaster', 'gypsum', 'adobe', 'daub', 'cob', 'straw', 'terra cotta', 'clay'] }, 'plains': { + preposition: 'on', precipitationIntensity: 2, origin: [ 'a wide, navigable river', @@ -383,11 +411,12 @@ export const terrain: Record = { shrubs: 1, bush: 1, trees: 2 - }, + } as WeightRecord, possibleMaterials: ['hewn rock', 'stone', 'cobblestone', 'wood', 'brick', 'limestone', 'plaster', 'gypsum', 'adobe', 'daub', 'cob', 'straw', 'terra cotta', 'clay'] }, 'mountains': { + preposition: 'in', precipitationIntensity: 2, origin: [ 'a large freshwater lake', @@ -407,10 +436,11 @@ export const terrain: Record = { shrubs: 1, bush: 1, trees: 2 - }, + } as WeightRecord, possibleMaterials: ['hewn rock', 'stone', 'cobblestone', 'wood', 'brick', 'limestone', 'plaster', 'gypsum', 'adobe', 'daub', 'cob', 'straw', 'terra cotta', 'clay'] }, 'river coast': { + preposition: 'on', precipitationIntensity: 2, origin: [ 'a coastal harbor', @@ -426,10 +456,11 @@ export const terrain: Record = { shrubs: 1, bush: 1, trees: 2 - }, + } as WeightRecord, possibleMaterials: ['hewn rock', 'stone', 'cobblestone', 'wood', 'brick', 'limestone', 'plaster', 'gypsum', 'adobe', 'daub', 'cob', 'straw', 'terra cotta', 'clay'] }, 'jungle': { + preposition: 'in', precipitationIntensity: 2, origin: [ 'a river navigable by small craft', @@ -447,10 +478,11 @@ export const terrain: Record = { shrubs: 1, bush: 1, trees: 2 - }, + } as WeightRecord, possibleMaterials: ['hewn rock', 'stone', 'cobblestone', 'wood', 'brick', 'limestone', 'plaster', 'gypsum', 'adobe', 'daub', 'cob', 'straw', 'terra cotta', 'clay'] }, 'volcanic field': { + preposition: 'on', precipitationIntensity: 3, origin: [ 'a large freshwater lake', @@ -471,12 +503,21 @@ export const terrain: Record = { shrubs: 1, bush: 1, trees: 2 - }, + } as WeightRecord, possibleMaterials: ['hewn rock', 'stone', 'cobblestone', 'wood', 'cobblestone', 'brick', 'limestone', 'plaster', 'gypsum', 'adobe', 'daub', 'cob', 'straw', 'terra cotta', 'clay'] } } }, arid: { + start: { + 'oasis': 2, + 'river coast': 2, + 'desert': 1, + 'wastelant': 1, + 'hills': 1, + 'plains': 1, + 'mountains': 1 + }, weather: { tempVariation: { 95: { @@ -530,10 +571,10 @@ export const terrain: Record = { baseTemp: 75 } } - }, - start: ['desert', 'hills', 'plains', 'mountains', 'river coast', 'wasteland', 'oasis'], + } as WeatherData, location: { 'desert': { + preposition: 'in', precipitationIntensity: 2, origin: [ 'a coastal harbor', @@ -547,19 +588,18 @@ export const terrain: Record = { 'a well-traveled crossroads', 'a water source and a well-traveled road'], vegetation: { - desolate: 3, - sparse: 1, - lush: 4, - thick: 3 + desolate: 5, + sparse: 4 }, plants: { shrubs: 1, bush: 1, trees: 2 - }, + } as WeightRecord, possibleMaterials: ['hewn rock', 'stone', 'cobblestone', 'brick', 'limestone', 'plaster', 'gypsum', 'adobe', 'daub', 'cob', 'straw'] }, 'forest': { + preposition: 'in', precipitationIntensity: 2, origin: [ 'a large freshwater lake', @@ -575,17 +615,18 @@ export const terrain: Record = { vegetation: { desolate: 2, sparse: 1, - lush: 3, + lush: 2, thick: 6 }, plants: { shrubs: 1, bush: 1, trees: 2 - }, + } as WeightRecord, possibleMaterials: ['hewn rock', 'stone', 'cobblestone', 'wood', 'brick', 'limestone', 'plaster', 'gypsum', 'adobe', 'daub', 'cob', 'straw', 'terra cotta', 'clay'] }, 'hills': { + preposition: 'in', precipitationIntensity: 2, origin: [ 'a large freshwater lake', @@ -606,10 +647,11 @@ export const terrain: Record = { shrubs: 1, bush: 1, trees: 2 - }, + } as WeightRecord, possibleMaterials: ['hewn rock', 'stone', 'cobblestone', 'wood', 'brick', 'limestone', 'plaster', 'gypsum', 'adobe', 'daub', 'cob', 'straw', 'terra cotta', 'clay'] }, 'plains': { + preposition: 'on', precipitationIntensity: 2, origin: [ 'a wide, navigable river', @@ -619,19 +661,18 @@ export const terrain: Record = { 'a well-traveled crossroads', 'a water source and a well-traveled road'], vegetation: { - desolate: 5, - sparse: 5, - lush: 1, - thick: 1 + desolate: 3, + sparse: 5 }, plants: { shrubs: 1, bush: 1, trees: 2 - }, + } as WeightRecord, possibleMaterials: ['hewn rock', 'stone', 'cobblestone', 'wood', 'brick', 'limestone', 'plaster', 'gypsum', 'adobe', 'daub', 'cob', 'straw', 'terra cotta', 'clay'] }, 'mountains': { + preposition: 'in', precipitationIntensity: 2, origin: [ 'a large freshwater lake', @@ -645,17 +686,17 @@ export const terrain: Record = { vegetation: { desolate: 5, sparse: 5, - lush: 1, - thick: 1 + lush: 1 }, plants: { shrubs: 1, bush: 1, trees: 2 - }, + } as WeightRecord, possibleMaterials: ['hewn rock', 'stone', 'cobblestone', 'wood', 'brick', 'limestone', 'plaster', 'gypsum', 'adobe', 'daub', 'cob', 'straw', 'terra cotta', 'clay'] }, 'river coast': { + preposition: 'on', precipitationIntensity: 2, origin: [ 'a coastal harbor', @@ -672,10 +713,11 @@ export const terrain: Record = { shrubs: 1, bush: 1, trees: 2 - }, + } as WeightRecord, possibleMaterials: ['hewn rock', 'stone', 'cobblestone', 'wood', 'brick', 'limestone', 'plaster', 'gypsum', 'adobe', 'daub', 'cob', 'straw', 'terra cotta', 'clay'] }, 'wasteland': { + preposition: 'in', precipitationIntensity: 2, origin: [ 'a road traveled by merchants on the way to another, larger city', @@ -692,10 +734,11 @@ export const terrain: Record = { shrubs: 1, bush: 1, trees: 2 - }, + } as WeightRecord, possibleMaterials: ['hewn rock', 'stone', 'cobblestone', 'wood', 'brick', 'limestone', 'plaster', 'gypsum', 'adobe', 'daub', 'cob'] }, 'oasis': { + preposition: 'in', precipitationIntensity: 1, origin: [ 'a series of natural springs', @@ -714,12 +757,22 @@ export const terrain: Record = { shrubs: 1, bush: 1, trees: 2 - }, + } as WeightRecord, possibleMaterials: ['hewn rock', 'stone', 'cobblestone', 'wood', 'brick', 'limestone', 'plaster', 'gypsum', 'adobe', 'daub', 'cob', 'straw', 'terra cotta', 'clay'] } } }, polar: { + start: { + 'seacoast': 2, + 'forest': 2, + 'river coast': 1, + 'hills': 1, + 'plains': 1, + 'mountains': 1, + 'tundra': 1, + 'ice sheet': 1 + }, weather: { tempVariation: { 100: { @@ -773,10 +826,10 @@ export const terrain: Record = { baseTemp: 30 } } - }, - start: ['seacoast', 'forest', 'hills', 'plains', 'mountains', 'river coast', 'tundra', 'ice sheet', 'seacoast'], + } as WeatherData, location: { 'seacoast': { + preposition: 'on', precipitationIntensity: 3, origin: [ 'a coastal harbor', @@ -799,10 +852,11 @@ export const terrain: Record = { shrubs: 1, bush: 1, trees: 2 - }, + } as WeightRecord, possibleMaterials: ['hewn rock', 'stone', 'cobblestone', 'wood', 'brick', 'limestone'] }, 'forest': { + preposition: 'in', precipitationIntensity: 2, origin: [ 'a large freshwater lake', @@ -825,10 +879,11 @@ export const terrain: Record = { shrubs: 1, bush: 1, trees: 2 - }, + } as WeightRecord, possibleMaterials: ['hewn rock', 'stone', 'cobblestone', 'wood', 'brick', 'limestone'] }, 'hills': { + preposition: 'in', precipitationIntensity: 2, origin: [ 'a large freshwater lake', @@ -849,10 +904,11 @@ export const terrain: Record = { shrubs: 1, bush: 1, trees: 2 - }, + } as WeightRecord, possibleMaterials: ['hewn rock', 'stone', 'cobblestone', 'wood', 'brick', 'limestone'] }, 'plains': { + preposition: 'on', precipitationIntensity: 2, origin: [ 'a wide, navigable river', @@ -871,10 +927,11 @@ export const terrain: Record = { shrubs: 1, bush: 1, trees: 2 - }, + } as WeightRecord, possibleMaterials: ['hewn rock', 'stone', 'cobblestone', 'wood', 'brick', 'limestone'] }, 'mountains': { + preposition: 'in', precipitationIntensity: 2, origin: [ 'a large freshwater lake', @@ -895,10 +952,11 @@ export const terrain: Record = { shrubs: 1, bush: 1, trees: 2 - }, + } as WeightRecord, possibleMaterials: ['hewn rock', 'stone', 'cobblestone', 'wood', 'brick', 'limestone'] }, 'river coast': { + preposition: 'on', precipitationIntensity: 2, origin: [ 'a coastal harbor', @@ -915,10 +973,11 @@ export const terrain: Record = { shrubs: 1, bush: 1, trees: 2 - }, + } as WeightRecord, possibleMaterials: ['hewn rock', 'stone', 'cobblestone', 'wood', 'brick', 'limestone'] }, 'tundra': { + preposition: 'on', precipitationIntensity: 2, origin: [ 'a wide, navigable river', @@ -936,10 +995,11 @@ export const terrain: Record = { shrubs: 1, bush: 1, trees: 2 - }, + } as WeightRecord, possibleMaterials: ['hewn rock', 'stone', 'cobblestone', 'wood', 'brick', 'limestone'] }, 'ice sheet': { + preposition: 'on', precipitationIntensity: 3, origin: [ 'a wide, navigable river', @@ -957,9 +1017,18 @@ export const terrain: Record = { shrubs: 1, bush: 1, trees: 2 - }, + } as WeightRecord, possibleMaterials: ['hewn rock', 'stone', 'cobblestone', 'wood', 'brick', 'limestone'] } } } } +// return terrain +// } + +// export const terrain = makeTerrain() + +// eslint-disable-next-line @typescript-eslint/no-explicit-any +type UnionKeys = T extends any ? keyof T : never +type Terrain = typeof terrain +export type Locations = UnionKeys diff --git a/src/Factions/components/FactionSliders.twee b/src/Factions/components/FactionSliders.twee index 5b91996a6..027940355 100644 --- a/src/Factions/components/FactionSliders.twee +++ b/src/Factions/components/FactionSliders.twee @@ -1,7 +1,8 @@ -:: FactionSliders [force-one-column] -\<> -\<> +<> <> <> @@ -9,7 +10,7 @@ <> -- -- <> <> - <><><> + <><><> @@ -19,10 +20,31 @@ <><><><> <><>
Attribute Slider
<>
-<> <><><> - <><><> - <><><> - <><> +

<><><>

+

<><><>

+

<><><>

+/*

<> + +<> + <> + < el.name)>> + <> +<><> +<> +<>

*/ +

<><><> -<><><>

+

<><><><> - - + 'nothing particularly interesting'])>><>

<
> +
+<> <> \ No newline at end of file diff --git a/src/Meta/ImportDiscriminator.twee b/src/Meta/ImportDiscriminator.twee new file mode 100644 index 000000000..49e61cb6c --- /dev/null +++ b/src/Meta/ImportDiscriminator.twee @@ -0,0 +1,10 @@ +:: ImportDiscriminator +<><><><><><> \ No newline at end of file diff --git a/src/Meta/ImportPatreon.twee b/src/Meta/ImportPatreon.twee new file mode 100644 index 000000000..20bb98828 --- /dev/null +++ b/src/Meta/ImportPatreon.twee @@ -0,0 +1,11 @@ +:: ImportPatreon +<><><> +This is a [[Hero tier Patron|https://www.patreon.com/join/eigengrausgenerator?]] only feature. + +However, I'm not one for hard content walls; if you are not a Patreon supporter, you can access it by compiling from source, which is downloadable from our GitHub. + +Eigengrau's Generator runs on a "goal based content unlocking" system, where paywalls come down when we hit Patreon milestones. So, it's in your best interests to spread the word! Send the blog to Kotaku, Geek and Sundry, and any other blog, and tell them to cover it! + +If you are a Hero tier Patron, take a look at the [[membership page|https://www.patreon.com/eigengrausgenerator/membership]], and enter the code below: + +<> -- <> diff --git a/src/NPCGeneration/NPCProfile/NPCProfile.twee b/src/NPCGeneration/NPCProfile/NPCProfile.twee index b16c6efb6..7162a3056 100644 --- a/src/NPCGeneration/NPCProfile/NPCProfile.twee +++ b/src/NPCGeneration/NPCProfile/NPCProfile.twee @@ -7,7 +7,7 @@ \<><> $currentNPC.vocalPattern. <> \<><> is <> <> \When $currentNPC.heshe is relaxed, $currentNPC.heshe is $currentNPC.calmTrait. In moments of stress, $currentNPC.heshe becomes $currentNPC.stressTrait. -\Religion-wise, $currentNPC.firstName is <> of <><>. +\Religion-wise, $currentNPC.firstName is <> of <><>. \

< 0>>Despite sexism against $currentNPC.himher, <>Perhaps due to sexism, <>$currentNPC.professionSuccess, with a background of being <>. \<> \<> belongs to the <> social class diff --git a/src/Religion/EditPantheon.twee b/src/Religion/EditPantheon.twee new file mode 100644 index 000000000..0234d4edc --- /dev/null +++ b/src/Religion/EditPantheon.twee @@ -0,0 +1,44 @@ +:: EditPantheon [nobr] +<> +<><><><><><><><> -- +<><><> +<> +<> + -- + <> +<> -- <> +

    +<>
  1. Join the Patreon at the Hero or higher tier [[here|https://www.patreon.com/join/eigengrausgenerator?]]
  2. +
  3. Find the code in the [[welcome note|https://www.patreon.com/eigengrausgenerator/membership]]
  4. +
  5. Enter it <><><>
  6. +<
    > +
  7. Import custom pantheon as a valid {{{.json}}} file. You can access a template of the pantheon {{{.json}}} file online, or in our Discord server.
  8. +
  9. Select desired pantheon from the drop-down menu.
  10. +
+
+<>
Current Pantheon Data for <> loaded: +<> +
+
<
> +Custom patheon name: <><> +
Custom Pantheon Data: +<> +
+<>none currently loaded<
> +<> \ No newline at end of file diff --git a/src/Religion/ImportPantheon.twee b/src/Religion/ImportPantheon.twee deleted file mode 100644 index 26e656b93..000000000 --- a/src/Religion/ImportPantheon.twee +++ /dev/null @@ -1,22 +0,0 @@ -:: ImportPantheon -<> -\<> -- <> -\<><><> -\<> -- <><> -1. Import custom pantheon as a valid {{{.json}}} file. You can access a template of the pantheon {{{.json}}} file online, or in our Discord server. -2. Select desired pantheon from the drop-down menu. ----- -<>
Current Pantheon Data for <> loaded: -\<> -
-----<
> -\Custom patheon name: <><> -
Custom Pantheon Data: -\<> -
-<>none currently loaded<
> -<
> \ No newline at end of file diff --git a/src/Settings/Breadcrumb.twee b/src/Settings/Breadcrumb.twee index 4b64ab5cc..0bc22085f 100644 --- a/src/Settings/Breadcrumb.twee +++ b/src/Settings/Breadcrumb.twee @@ -1,5 +1,5 @@ :: Breadcrumb -<><> +<><> <>