import type { GameObjType, ValuesOf } from "@/defs"; import type { ValidResponse } from "@/SammoAPI"; export type GeneralListItemP0 = { no: number, name: string, nation: number, npc: number, injury: number, leadership: number, strength: number, intel: number, explevel: number, dedlevel: number, gold: number, rice: number, killturn: number, picture: string, imgsvr: 0 | 1, age: number, special: GameObjType, special2: GameObjType, personal: GameObjType, belong: number, connect: number, officerLevel: number, //권한에따라 태수,군사,시종 노출 여부가 다름 officerLevelText: string, lbonus: number, ownerName: string | null, //NPC 출력용에 따라 결과가 다름 honorText: string, } export type GeneralListItemP1 = { city: number, experience: number, dedication: number, } & GeneralListItemP0; export type GeneralListItemP2 = GeneralListItemP1 & { officer_level: number, officer_city: number, } export type GeneralListItemP9 = GeneralListItemP2 & { owner_name: string, } export type GeneralListItem = ({permission : 0} & GeneralListItemP0) | ({permission : 1} & GeneralListItemP1) | ({permission : 2} & GeneralListItemP2) | ({permission : 9} & GeneralListItemP9); export type RawGeneralListP0 = ValidResponse & { permission: 0, column: keyof GeneralListItemP0[], list: ValuesOf[], } export type RawGeneralListP1 = ValidResponse & { permission: 1, column: keyof GeneralListItemP1[], list: ValuesOf[][], } export type RawGeneralListP2 = ValidResponse & { permission: 2, column: keyof GeneralListItemP2[], list: ValuesOf[][], } export type RawGeneralListP9 = ValidResponse & { permission: 9, column: keyof GeneralListItemP9[], list: ValuesOf[][], } export type GeneralListResponse = RawGeneralListP0 | RawGeneralListP1 | RawGeneralListP2 | RawGeneralListP9;