feat: add state property to city and update related processing logic in battle simulation and world map
This commit is contained in:
@@ -199,6 +199,7 @@ export const seedScenarioToDatabase = async (
|
||||
meta: asJson({
|
||||
position: city.position,
|
||||
connections: city.connections,
|
||||
state: city.state,
|
||||
...city.meta,
|
||||
}),
|
||||
})),
|
||||
|
||||
@@ -110,7 +110,10 @@ const buildGeneralCreate = (
|
||||
const buildCityUpdate = (
|
||||
city: ReturnType<InMemoryTurnWorld['consumeDirtyState']>['cities'][number]
|
||||
): TurnEngineCityUpdateInput => {
|
||||
const meta = city.meta as Record<string, unknown>;
|
||||
const meta = {
|
||||
...(city.meta as Record<string, unknown>),
|
||||
state: city.state,
|
||||
};
|
||||
const trust = readMetaNumber(meta, 'trust');
|
||||
const trade = readMetaNumber(meta, 'trade');
|
||||
const region = readMetaNumber(meta, 'region');
|
||||
@@ -133,7 +136,7 @@ const buildCityUpdate = (
|
||||
defenceMax: city.defenceMax,
|
||||
wall: city.wall,
|
||||
wallMax: city.wallMax,
|
||||
meta: asJson(city.meta),
|
||||
meta: asJson(meta),
|
||||
};
|
||||
|
||||
if (trust !== null) {
|
||||
|
||||
@@ -179,32 +179,40 @@ const mapGeneralRow = (row: TurnEngineGeneralRow): TurnGeneral => ({
|
||||
recentWarTime: row.recentWarTime ?? null,
|
||||
});
|
||||
|
||||
const mapCityRow = (row: TurnEngineCityRow): City => ({
|
||||
id: row.id,
|
||||
name: row.name,
|
||||
nationId: row.nationId,
|
||||
level: row.level,
|
||||
population: row.population,
|
||||
populationMax: row.populationMax,
|
||||
agriculture: row.agriculture,
|
||||
agricultureMax: row.agricultureMax,
|
||||
commerce: row.commerce,
|
||||
commerceMax: row.commerceMax,
|
||||
security: row.security,
|
||||
securityMax: row.securityMax,
|
||||
supplyState: row.supplyState,
|
||||
frontState: row.frontState,
|
||||
defence: row.defence,
|
||||
defenceMax: row.defenceMax,
|
||||
wall: row.wall,
|
||||
wallMax: row.wallMax,
|
||||
meta: {
|
||||
...asTriggerRecord(row.meta),
|
||||
trust: row.trust,
|
||||
trade: row.trade,
|
||||
region: row.region,
|
||||
},
|
||||
});
|
||||
const mapCityRow = (row: TurnEngineCityRow): City => {
|
||||
const meta = asTriggerRecord(row.meta);
|
||||
const state =
|
||||
typeof meta.state === 'number' && Number.isFinite(meta.state)
|
||||
? Math.floor(meta.state)
|
||||
: 0;
|
||||
return {
|
||||
id: row.id,
|
||||
name: row.name,
|
||||
nationId: row.nationId,
|
||||
level: row.level,
|
||||
state,
|
||||
population: row.population,
|
||||
populationMax: row.populationMax,
|
||||
agriculture: row.agriculture,
|
||||
agricultureMax: row.agricultureMax,
|
||||
commerce: row.commerce,
|
||||
commerceMax: row.commerceMax,
|
||||
security: row.security,
|
||||
securityMax: row.securityMax,
|
||||
supplyState: row.supplyState,
|
||||
frontState: row.frontState,
|
||||
defence: row.defence,
|
||||
defenceMax: row.defenceMax,
|
||||
wall: row.wall,
|
||||
wallMax: row.wallMax,
|
||||
meta: {
|
||||
...meta,
|
||||
trust: row.trust,
|
||||
trade: row.trade,
|
||||
region: row.region,
|
||||
},
|
||||
};
|
||||
};
|
||||
|
||||
const mapNationRow = (row: TurnEngineNationRow): Nation => ({
|
||||
id: row.id,
|
||||
|
||||
Reference in New Issue
Block a user