Some fixes and additions
This commit is contained in:
@@ -12,6 +12,8 @@ import PartyType from "../../models/falukant/type/party.js";
|
||||
import MusicType from "../../models/falukant/type/music.js";
|
||||
import BanquetteType from "../../models/falukant/type/banquette.js";
|
||||
import LearnRecipient from "../../models/falukant/type/learn_recipient.js";
|
||||
import PoliticalOfficeType from "../../models/falukant/type/political_office_type.js";
|
||||
import PoliticalOfficePrerequisite from "../../models/falukant/predefine/political_office_prerequisite.js";
|
||||
|
||||
export const initializeFalukantTypes = async () => {
|
||||
await initializeFalukantTypeRegions();
|
||||
@@ -25,6 +27,8 @@ export const initializeFalukantTypes = async () => {
|
||||
await initializeFalukantMusicTypes();
|
||||
await initializeFalukantBanquetteTypes();
|
||||
await initializeLearnerTypes();
|
||||
await initializePoliticalOfficeTypes();
|
||||
await initializePoliticalOfficePrerequisites();
|
||||
};
|
||||
|
||||
const regionTypes = [];
|
||||
@@ -39,14 +43,15 @@ const regionTypeTrs = [
|
||||
|
||||
const regions = [
|
||||
{ labelTr: "falukant", regionType: "country", parentTr: null },
|
||||
{ labelTr: "duchy1", regionType: "duchy", parentTr: "falukant" },
|
||||
{ labelTr: "markgravate", regionType: "markgravate", parentTr: "duchy1" },
|
||||
{ labelTr: "shire1", regionType: "shire", parentTr: "markgravate" },
|
||||
{ labelTr: "county1", regionType: "county", parentTr: "shire1" },
|
||||
{ labelTr: "town1", regionType: "city", parentTr: "county1" },
|
||||
{ labelTr: "town2", regionType: "city", parentTr: "county1" },
|
||||
{ labelTr: "town3", regionType: "city", parentTr: "county1" },
|
||||
{ labelTr: "town4", regionType: "city", parentTr: "county1" },
|
||||
{ labelTr: "Hessen", regionType: "duchy", parentTr: "falukant" },
|
||||
{ labelTr: "Groß-Benbach", regionType: "markgravate", parentTr: "Hessen" },
|
||||
{ labelTr: "Siebenbachen", regionType: "shire", parentTr: "Groß-Benbach" },
|
||||
{ labelTr: "Bad Homburg", regionType: "county", parentTr: "Siebenbachen" },
|
||||
{ labelTr: "Maintal", regionType: "county", parentTr: "Siebenbachen" },
|
||||
{ labelTr: "Frankfurt", regionType: "city", parentTr: "Bad Homburg", map: {x: 187, y: 117, w: 10, h:11} },
|
||||
{ labelTr: "Oberursel", regionType: "city", parentTr: "Bad Homburg", map: {x: 168, y: 121, w: 10, h:11} },
|
||||
{ labelTr: "Offenbach", regionType: "city", parentTr: "Bad Homburg", map: {x: 171, y: 142, w: 10, h:11} },
|
||||
{ labelTr: "Königstein", regionType: "city", parentTr: "Maintal", map: {x: 207, y: 124, w: 24, h:18} },
|
||||
];
|
||||
|
||||
const relationships = [
|
||||
@@ -244,8 +249,8 @@ const musicTypes = [
|
||||
];
|
||||
|
||||
const banquetteTypes = [
|
||||
{ type: 'bread', cost: 5, reputationGrowth: 0 },
|
||||
{ type: 'roastWithBeer', cost: 200, reputationGrowth: 5 },
|
||||
{ type: 'bread', cost: 5, reputationGrowth: 0 },
|
||||
{ type: 'roastWithBeer', cost: 200, reputationGrowth: 5 },
|
||||
{ type: 'poultryWithVegetablesAndWine', cost: 5000, reputationGrowth: 10 },
|
||||
{ type: 'extensiveBuffet', cost: 100000, reputationGrowth: 20 }
|
||||
];
|
||||
@@ -256,6 +261,282 @@ const learnerTypes = [
|
||||
{ tr: 'director', },
|
||||
];
|
||||
|
||||
const politicalOffices = [
|
||||
{ tr: "assessor", seatsPerRegion: 10, regionType: "city", termLength: 5 },
|
||||
{ tr: "councillor", seatsPerRegion: 7, regionType: "city", termLength: 7 },
|
||||
{ tr: "council", seatsPerRegion: 5, regionType: "city", termLength: 4 },
|
||||
{ tr: "beadle", seatsPerRegion: 1, regionType: "city", termLength: 6 },
|
||||
{ tr: "town-clerk", seatsPerRegion: 3, regionType: "city", termLength: 10 },
|
||||
{ tr: "mayor", seatsPerRegion: 1, regionType: "city", termLength: 3 },
|
||||
{ tr: "master-builder", seatsPerRegion: 10, regionType: "county", termLength: 10 },
|
||||
{ tr: "village-major", seatsPerRegion: 6, regionType: "county", termLength: 5 },
|
||||
{ tr: "judge", seatsPerRegion: 3, regionType: "county", termLength: 8 },
|
||||
{ tr: "bailif", seatsPerRegion: 1, regionType: "county", termLength: 4 },
|
||||
{ tr: "taxman", seatsPerRegion: 8, regionType: "shire", termLength: 5 },
|
||||
{ tr: "sheriff", seatsPerRegion: 5, regionType: "shire", termLength: 8 },
|
||||
{ tr: "consultant", seatsPerRegion: 3, regionType: "shire", termLength: 9 },
|
||||
{ tr: "treasurer", seatsPerRegion: 1, regionType: "shire", termLength: 7 },
|
||||
{ tr: "hangman", seatsPerRegion: 9, regionType: "markgravate", termLength: 5 },
|
||||
{ tr: "territorial-council", seatsPerRegion: 6, regionType: "markgravate", termLength: 6 },
|
||||
{ tr: "territorial-council-speaker", seatsPerRegion: 4, regionType: "markgravate", termLength: 8 },
|
||||
{ tr: "ruler-consultant", seatsPerRegion: 1, regionType: "markgravate", termLength: 3 },
|
||||
{ tr: "state-administrator", seatsPerRegion: 7, regionType: "duchy", termLength: 3 },
|
||||
{ tr: "super-state-administrator", seatsPerRegion: 5, regionType: "duchy", termLength: 6 },
|
||||
{ tr: "governor", seatsPerRegion: 1, regionType: "duchy", termLength: 5 },
|
||||
{ tr: "ministry-helper", seatsPerRegion: 12, regionType: "country", termLength: 4 },
|
||||
{ tr: "minister", seatsPerRegion: 3, regionType: "country", termLength: 4 },
|
||||
{ tr: "chancellor", seatsPerRegion: 1, regionType: "country", termLength: 4 }
|
||||
];
|
||||
|
||||
const politicalOfficePrerequisites = [
|
||||
{
|
||||
officeTr: "assessor",
|
||||
prerequisite: {
|
||||
titles: [
|
||||
"civil", "sir", "townlord", "by", "landlord", "knight",
|
||||
"baron", "count", "palsgrave", "margrave", "landgrave",
|
||||
"ruler", "elector", "imperial-prince", "duke", "grand-duke",
|
||||
"prince-regent", "king"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
officeTr: "councillor",
|
||||
prerequisite: {
|
||||
titles: [
|
||||
"civil", "sir", "townlord", "by", "landlord", "knight",
|
||||
"baron", "count", "palsgrave", "margrave", "landgrave",
|
||||
"ruler", "elector", "imperial-prince", "duke", "grand-duke",
|
||||
"prince-regent", "king"
|
||||
],
|
||||
jobs: ["assessor"]
|
||||
}
|
||||
},
|
||||
{
|
||||
officeTr: "council",
|
||||
prerequisite: {
|
||||
titles: [
|
||||
"civil", "sir", "townlord", "by", "landlord", "knight",
|
||||
"baron", "count", "palsgrave", "margrave", "landgrave",
|
||||
"ruler", "elector", "imperial-prince", "duke", "grand-duke",
|
||||
"prince-regent", "king"
|
||||
],
|
||||
jobs: ["councillor"]
|
||||
}
|
||||
},
|
||||
{
|
||||
officeTr: "beadle",
|
||||
prerequisite: {
|
||||
titles: [
|
||||
"sir", "townlord", "by", "landlord", "knight", "baron",
|
||||
"count", "palsgrave", "margrave", "landgrave", "ruler",
|
||||
"elector", "imperial-prince", "duke", "grand-duke", "prince-regent", "king"
|
||||
],
|
||||
jobs: ["council"]
|
||||
}
|
||||
},
|
||||
{
|
||||
officeTr: "town-clerk",
|
||||
prerequisite: {
|
||||
titles: [
|
||||
"sir", "townlord", "by", "landlord", "knight", "baron",
|
||||
"count", "palsgrave", "margrave", "landgrave", "ruler",
|
||||
"elector", "imperial-prince", "duke", "grand-duke", "prince-regent", "king"
|
||||
],
|
||||
jobs: ["council"]
|
||||
}
|
||||
},
|
||||
{
|
||||
officeTr: "mayor",
|
||||
prerequisite: {
|
||||
titles: [
|
||||
"townlord", "by", "landlord", "knight", "baron", "count",
|
||||
"palsgrave", "margrave", "landgrave", "ruler", "elector",
|
||||
"imperial-prince", "duke", "grand-duke", "prince-regent", "king"
|
||||
],
|
||||
jobs: ["beadle", "town-clerk"]
|
||||
}
|
||||
},
|
||||
{
|
||||
officeTr: "master-builder",
|
||||
prerequisite: {
|
||||
titles: [
|
||||
"by", "landlord", "knight", "baron", "count", "palsgrave",
|
||||
"margrave", "landgrave", "ruler", "elector", "imperial-prince",
|
||||
"duke", "grand-duke", "prince-regent", "king"
|
||||
],
|
||||
jobs: ["mayor"]
|
||||
}
|
||||
},
|
||||
{
|
||||
officeTr: "village-major",
|
||||
prerequisite: {
|
||||
titles: [
|
||||
"by", "landlord", "knight", "baron", "count", "palsgrave",
|
||||
"margrave", "landgrave", "ruler", "elector", "imperial-prince",
|
||||
"duke", "grand-duke", "prince-regent", "king"
|
||||
],
|
||||
jobs: ["master-builder"]
|
||||
}
|
||||
},
|
||||
{
|
||||
officeTr: "judge",
|
||||
prerequisite: {
|
||||
titles: [
|
||||
"landlord", "knight", "baron", "count", "palsgrave", "margrave",
|
||||
"landgrave", "ruler", "elector", "imperial-prince", "duke",
|
||||
"grand-duke", "prince-regent", "king"
|
||||
],
|
||||
jobs: ["village-major"]
|
||||
}
|
||||
},
|
||||
{
|
||||
officeTr: "bailif",
|
||||
prerequisite: {
|
||||
titles: [
|
||||
"landlord", "knight", "baron", "count", "palsgrave", "margrave",
|
||||
"landgrave", "ruler", "elector", "imperial-prince", "duke",
|
||||
"grand-duke", "prince-regent", "king"
|
||||
],
|
||||
jobs: ["judge"]
|
||||
}
|
||||
},
|
||||
{
|
||||
officeTr: "taxman",
|
||||
prerequisite: {
|
||||
titles: [
|
||||
"knight", "baron", "count", "palsgrave", "margrave", "landgrave",
|
||||
"ruler", "elector", "imperial-prince", "duke", "grand-duke", "prince-regent", "king"
|
||||
],
|
||||
jobs: ["bailif"]
|
||||
}
|
||||
},
|
||||
{
|
||||
officeTr: "sheriff",
|
||||
prerequisite: {
|
||||
titles: [
|
||||
"baron", "count", "palsgrave", "margrave", "landgrave", "ruler",
|
||||
"elector", "imperial-prince", "duke", "grand-duke", "prince-regent", "king"
|
||||
],
|
||||
jobs: ["taxman"]
|
||||
}
|
||||
},
|
||||
{
|
||||
officeTr: "consultant",
|
||||
prerequisite: {
|
||||
titles: [
|
||||
"baron", "count", "palsgrave", "margrave", "landgrave", "ruler",
|
||||
"elector", "imperial-prince", "duke", "grand-duke", "prince-regent", "king"
|
||||
],
|
||||
jobs: ["sheriff"]
|
||||
}
|
||||
},
|
||||
{
|
||||
officeTr: "treasurer",
|
||||
prerequisite: {
|
||||
titles: [
|
||||
"count", "palsgrave", "margrave", "landgrave", "ruler", "elector",
|
||||
"imperial-prince", "duke", "grand-duke", "prince-regent", "king"
|
||||
],
|
||||
jobs: ["consultant"]
|
||||
}
|
||||
},
|
||||
{
|
||||
officeTr: "hangman",
|
||||
prerequisite: {
|
||||
titles: [
|
||||
"count", "palsgrave", "margrave", "landgrave", "ruler", "elector",
|
||||
"imperial-prince", "duke", "grand-duke", "prince-regent", "king"
|
||||
],
|
||||
jobs: ["consultant"]
|
||||
}
|
||||
},
|
||||
{
|
||||
officeTr: "territorial-council",
|
||||
prerequisite: {
|
||||
titles: [
|
||||
"palsgrave", "margrave", "landgrave", "ruler", "elector", "imperial-prince",
|
||||
"duke", "grand-duke", "prince-regent", "king"
|
||||
],
|
||||
jobs: ["treasurer", "hangman"]
|
||||
}
|
||||
},
|
||||
{
|
||||
officeTr: "territorial-council-speaker",
|
||||
prerequisite: {
|
||||
titles: [
|
||||
"margrave", "landgrave", "ruler", "elector", "imperial-prince", "duke",
|
||||
"grand-duke", "prince-regent", "king"
|
||||
],
|
||||
jobs: ["territorial-council"]
|
||||
}
|
||||
},
|
||||
{
|
||||
officeTr: "ruler-consultant",
|
||||
prerequisite: {
|
||||
titles: [
|
||||
"landgrave", "ruler", "elector", "imperial-prince", "duke", "grand-duke",
|
||||
"prince-regent", "king"
|
||||
],
|
||||
jobs: ["territorial-council-speaker"]
|
||||
}
|
||||
},
|
||||
{
|
||||
officeTr: "state-administrator",
|
||||
prerequisite: {
|
||||
titles: [
|
||||
"ruler", "elector", "imperial-prince", "duke", "grand-duke", "prince-regent", "king"
|
||||
],
|
||||
jobs: ["ruler-consultant"]
|
||||
}
|
||||
},
|
||||
{
|
||||
officeTr: "super-state-administrator",
|
||||
prerequisite: {
|
||||
titles: [
|
||||
"elector", "imperial-prince", "duke", "grand-duke", "prince-regent", "king"
|
||||
],
|
||||
jobs: ["state-administrator"]
|
||||
}
|
||||
},
|
||||
{
|
||||
officeTr: "governor",
|
||||
prerequisite: {
|
||||
titles: [
|
||||
"imperial-prince", "duke", "grand-duke", "prince-regent", "king"
|
||||
],
|
||||
jobs: ["super-state-administrator"]
|
||||
}
|
||||
},
|
||||
{
|
||||
officeTr: "ministry-helper",
|
||||
prerequisite: {
|
||||
titles: [
|
||||
"grand-duke", "prince-regent", "king"
|
||||
],
|
||||
jobs: ["governor"]
|
||||
}
|
||||
},
|
||||
{
|
||||
officeTr: "minister",
|
||||
prerequisite: {
|
||||
titles: [
|
||||
"prince-regent", "king"
|
||||
],
|
||||
jobs: ["ministry-helper"]
|
||||
}
|
||||
},
|
||||
{
|
||||
officeTr: "chancellor",
|
||||
prerequisite: {
|
||||
titles: [
|
||||
"prince-regent", "king"
|
||||
],
|
||||
jobs: ["minister"]
|
||||
}
|
||||
}
|
||||
];
|
||||
|
||||
{
|
||||
const giftNames = promotionalGifts.map(g => g.name);
|
||||
const traitNames = characterTraits.map(t => t.name);
|
||||
@@ -330,7 +611,8 @@ export const initializeFalukantRegions = async () => {
|
||||
where: { name: region.labelTr },
|
||||
defaults: {
|
||||
regionTypeId: regionType.id,
|
||||
parentId: parentRegion?.id || null
|
||||
parentId: parentRegion?.id || null,
|
||||
map: parentRegion?.map || {},
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -478,4 +760,37 @@ export const initializeLearnerTypes = async () => {
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export const initializePoliticalOfficeTypes = async () => {
|
||||
for (const po of politicalOffices) {
|
||||
await PoliticalOfficeType.findOrCreate({
|
||||
where: { name: po.tr },
|
||||
defaults: {
|
||||
seatsPerRegion: po.seatsPerRegion,
|
||||
regionType: po.regionType,
|
||||
termLength: po.termLength
|
||||
}
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
export const initializePoliticalOfficePrerequisites = async () => {
|
||||
for (const prereq of politicalOfficePrerequisites) {
|
||||
// zunächst den OfficeType anhand seines Namens (tr) ermitteln
|
||||
const office = await PoliticalOfficeType.findOne({
|
||||
where: { name: prereq.officeTr }
|
||||
});
|
||||
if (!office) continue;
|
||||
|
||||
// Nun findOrCreate mit dem neuen Spaltennamen:
|
||||
await PoliticalOfficePrerequisite.findOrCreate({
|
||||
where: { office_type_id: office.id },
|
||||
defaults: {
|
||||
office_type_id: office.id,
|
||||
prerequisite: prereq.prerequisite
|
||||
}
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user