Fantasy-Map-Generator/src/scripts/generation/pack/burgsAndStates/config.ts
2024-08-25 21:17:00 +00:00

129 lines
3.5 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import {NAMEBASE as NB} from "config/namebases";
export const NO_BURG: TNoBurg = {i: 0, name: undefined};
export const NEUTRALS: TNeutrals = {i: 0, name: "Neutrals"};
export enum AreaTiers {
DUCHY = 0,
GRAND_DUCHY = 1,
PRINCIPALITY = 2,
KINGDOM = 3,
EMPIRE = 4
}
export const StateForms = {
monarchy: ["Duchy", "Grand Duchy", "Principality", "Kingdom", "Empire"] as const, // per area tier
republic: {
Republic: 75,
Federation: 4,
"Trade Company": 4,
"Most Serene Republic": 2,
Oligarchy: 2,
Tetrarchy: 1,
Triumvirate: 1,
Diarchy: 1,
Junta: 1
},
union: {
Union: 3,
League: 4,
Confederation: 1,
"United Kingdom": 1,
"United Republic": 1,
"United Provinces": 2,
Commonwealth: 1,
Heptarchy: 1
},
theocracy: {Theocracy: 20, Brotherhood: 1, Thearchy: 2, See: 1, "Holy State": 1},
anarchy: {"Free Territory": 2, Council: 3, Commune: 1, Community: 1}
};
type TMonarchyForms = typeof StateForms.monarchy[number];
// prettier-ignore
export const culturalMonarchyFormsMap: {[key: number]: {[key in TMonarchyForms]?: string}} = {
[NB.Ruthenian]: {Kingdom: "Tsardom", Empire: "Tsardom"},
[NB.Greek]: {Duchy: "Despotate", "Grand Duchy": "Despotate"},
[NB.Japanese]: {"Grand Duchy": "Shogunate", Kingdom: "Shogunate"},
[NB.Turkish]: {Duchy: "Beylik", "Grand Duchy": "Horde", Principality: "Great Horde", Kingdom: "Khanate", Empire: "Sultanate"},
[NB.Berber]: {Duchy: "Sheikhdom", "Grand Duchy": "Emirate", Principality: "Emirate", Empire: "Sultanate"},
[NB.Arabic]: {Duchy: "Sheikhdom", "Grand Duchy": "Emirate", Principality: "Emirate", Empire: "Sultanate"},
[NB.Iranian]: {Duchy: "Satrapy", "Grand Duchy": "Satrapy", Kingdom: "Shahdom"},
[NB.Mongolian]: {Duchy: "Horde", "Grand Duchy": "Horde", Principality: "Ulus", Kingdom: "Khanate", Empire: "Khaganate"}
};
const Catholic = {Duchy: "Diocese", "Grand Duchy": "Аrchdiocese"};
const Orthodox = {
Duchy: "Eparchy",
"Grand Duchy": "Eparchy",
Principality: "Exarchate",
Kingdom: "Metropolia",
Empire: "Patriarchate"
};
const Islamic = {
Duchy: "Imamah",
"Grand Duchy": "Imamah",
Principality: "Imamah",
Kingdom: "Caliphate",
Empire: "Caliphate"
};
export const culturalTheocracyFormsMap: {[key: number]: {[key in TMonarchyForms]?: string}} = {
[NB.German]: Catholic,
[NB.English]: Catholic,
[NB.French]: Catholic,
[NB.Italian]: Catholic,
[NB.Castillian]: Catholic,
[NB.Roman]: Catholic,
[NB.Portuguese]: Catholic,
[NB.Ruthenian]: Orthodox,
[NB.Turkish]: Islamic,
[NB.Nigerian]: Islamic,
[NB.Berber]: Islamic,
[NB.Arabic]: Islamic,
[NB.Iranian]: Islamic,
[NB.Swahili]: Islamic
};
// state forms requiring Adjective + Name, all other forms use scheme Form + Of + Name
export const adjectivalForms = [
"Empire",
"Sultanate",
"Khaganate",
"Shogunate",
"Caliphate",
"Despotate",
"Theocracy",
"Oligarchy",
"Union",
"Federation",
"Confederation",
"Trade Company",
"League",
"Tetrarchy",
"Triumvirate",
"Diarchy",
"Khanate",
"Khaganate",
"Horde",
"Marches"
];
export const relations = {
neighbors: {Ally: 1, Friendly: 2, Neutral: 1, Suspicion: 10, Rival: 9},
neighborsOfNeighbors: {Ally: 10, Friendly: 8, Neutral: 5, Suspicion: 1},
farStates: {Friendly: 1, Neutral: 12, Suspicion: 2},
navalToNaval: {Neutral: 2, Suspicion: 2, Rival: 1}
};
export const conflictTypes = {
War: 6,
Conflict: 2,
Campaign: 4,
Invasion: 2,
Rebellion: 2,
Conquest: 2,
Intervention: 1,
Expedition: 1,
Crusade: 1
};