feat: port scenario 903 select-pool flow
This commit is contained in:
@@ -19,7 +19,9 @@ import {
|
||||
createTraitCatalog,
|
||||
createOfficerLevelActionModules,
|
||||
DOMESTIC_TRAIT_KEYS,
|
||||
EVENT_DOMESTIC_TRAIT_KEYS,
|
||||
loadDomesticTraitModules,
|
||||
loadEventDomesticTraitModules,
|
||||
loadNationTraitModules,
|
||||
loadPersonalityTraitModules,
|
||||
loadWarTraitModules,
|
||||
@@ -52,7 +54,10 @@ const itemWarModules: WarActionModule[] = createItemActionModules(
|
||||
).war;
|
||||
const crewTypeWarTriggerRegistry = createCrewTypeWarTriggerRegistry();
|
||||
const traitCatalog = createTraitCatalog({
|
||||
domestic: await loadDomesticTraitModules([...DOMESTIC_TRAIT_KEYS]),
|
||||
domestic: [
|
||||
...(await loadDomesticTraitModules([...DOMESTIC_TRAIT_KEYS])),
|
||||
...(await loadEventDomesticTraitModules([...EVENT_DOMESTIC_TRAIT_KEYS])),
|
||||
],
|
||||
war: await loadWarTraitModules([...WAR_TRAIT_KEYS]),
|
||||
personality: await loadPersonalityTraitModules([...PERSONALITY_TRAIT_KEYS]),
|
||||
nation: await loadNationTraitModules([...NATION_TRAIT_KEYS]),
|
||||
@@ -145,7 +150,7 @@ const mapGeneralPayload = (payload: BattleSimJobPayload['attackerGeneral']): Gen
|
||||
officerLevel: payload.officer_level,
|
||||
role: {
|
||||
personality: payload.personal,
|
||||
specialDomestic: null,
|
||||
specialDomestic: payload.special ?? null,
|
||||
specialWar: payload.special2,
|
||||
items: {
|
||||
horse: normalizeItemCode(payload.horse),
|
||||
|
||||
@@ -8,6 +8,7 @@ export const zBattleSimGeneral = z.object({
|
||||
nation: z.number().int().positive(),
|
||||
turntime: z.string().min(1),
|
||||
personal: z.string().nullable(),
|
||||
special: z.string().nullable().optional(),
|
||||
special2: z.string().nullable(),
|
||||
crew: z.number().int().min(0),
|
||||
crewtype: z.number().int().positive(),
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
import {
|
||||
ITEM_KEYS,
|
||||
EVENT_DOMESTIC_TRAIT_KEYS,
|
||||
loadEventDomesticTraitModules,
|
||||
loadItemModules,
|
||||
loadNationTraitModules,
|
||||
loadPersonalityTraitModules,
|
||||
@@ -95,22 +97,26 @@ const toTraitOption = (module: TraitModule): BattleSimTraitOption => ({
|
||||
|
||||
let cachedTraitOptions: Promise<{
|
||||
nationTypes: BattleSimTraitOption[];
|
||||
eventDomesticTraits: BattleSimTraitOption[];
|
||||
warTraits: BattleSimTraitOption[];
|
||||
personalities: BattleSimTraitOption[];
|
||||
}> | null = null;
|
||||
|
||||
export const loadBattleSimTraitOptions = async (): Promise<{
|
||||
nationTypes: BattleSimTraitOption[];
|
||||
eventDomesticTraits: BattleSimTraitOption[];
|
||||
warTraits: BattleSimTraitOption[];
|
||||
personalities: BattleSimTraitOption[];
|
||||
}> => {
|
||||
if (!cachedTraitOptions) {
|
||||
cachedTraitOptions = Promise.all([
|
||||
loadNationTraitModules([...NATION_TRAIT_KEYS]),
|
||||
loadEventDomesticTraitModules([...EVENT_DOMESTIC_TRAIT_KEYS]),
|
||||
loadWarTraitModules([...WAR_TRAIT_KEYS]),
|
||||
loadPersonalityTraitModules([...PERSONALITY_TRAIT_KEYS]),
|
||||
]).then(([nationTraits, warTraits, personalities]) => ({
|
||||
]).then(([nationTraits, eventDomesticTraits, warTraits, personalities]) => ({
|
||||
nationTypes: nationTraits.map(toTraitOption),
|
||||
eventDomesticTraits: eventDomesticTraits.map(toTraitOption),
|
||||
warTraits: warTraits.map(toTraitOption),
|
||||
personalities: personalities.map(toTraitOption),
|
||||
}));
|
||||
|
||||
@@ -10,6 +10,7 @@ export interface BattleSimGeneralPayload {
|
||||
nation: number;
|
||||
turntime: string;
|
||||
personal: string | null;
|
||||
special?: string | null;
|
||||
special2: string | null;
|
||||
crew: number;
|
||||
crewtype: number;
|
||||
|
||||
Reference in New Issue
Block a user