파일 이식(0.31.1)

This commit is contained in:
2022-07-08 00:11:41 +09:00
parent db08cec2cb
commit 96d76a06ef
217 changed files with 29966 additions and 2 deletions
+65
View File
@@ -0,0 +1,65 @@
import type { ValidResponse } from "@/util/callSammoAPI";
export type BasicResourceAuctionBidder = {
amount: number;
date: string;
generalID: number;
generalName: string;
};
export type BasicResourceAuctionInfo = {
id: number;
type: "buyRice" | "sellRice";
hostGeneralID: number;
hostName: string;
openDate: string;
closeDate: string;
amount: number;
startBidAmount: number;
finishBidAmount: number;
highestBid?: BasicResourceAuctionBidder;
};
export type UniqueItemAuctionBidder = {
generalName: string;
amount: number;
isCallerHighestBidder: boolean;
date: string;
};
export type UniqueItemAuctionInfo = {
id: number;
finished: boolean;
title: string;
target: string;
isCallerHost: boolean;
hostName: string;
closeDate: string;
remainCloseDateExtensionCnt: number;
availableLatestBidCloseDate: string;
};
export type ActiveResourceAuctionList = ValidResponse & {
buyRice: BasicResourceAuctionInfo[];
sellRice: BasicResourceAuctionInfo[];
recentLogs: string[];
generalID: number;
};
export type UniqueItemAuctionList = ValidResponse & {
list: (UniqueItemAuctionInfo & {
highestBid: UniqueItemAuctionBidder;
})[];
obfuscatedName: string;
};
export type UniqueItemAuctionDetail = ValidResponse & {
auction: UniqueItemAuctionInfo;
bidList: UniqueItemAuctionBidder[];
obfuscatedName: string;
remainPoint: number;
};
export type OpenAuctionResponse = ValidResponse & {
auctionID: number;
};
+38
View File
@@ -0,0 +1,38 @@
import type { ValidResponse } from "@/defs";
export type BettingListResponse = ValidResponse & {
bettingList: Record<number, Omit<BettingInfo & { totalAmount: number }, "candidates">>;
year: number;
month: number;
};
export type BettingDetailResponse = ValidResponse & {
bettingInfo: BettingInfo;
bettingDetail: [string, number][];
myBetting: [string, number][];
remainPoint: number;
year: number;
month: number;
};
export type BettingInfo = {
id: number;
type: 'nationBetting',
name: string;
finished: boolean;
selectCnt: number;
isExclusive?: boolean;
reqInheritancePoint: boolean;
openYearMonth: number;
closeYearMonth: number;
candidates: Record<string, SelectItem>;
winner?: number[];
}
export type SelectItem = {
title: string;
info?: string;
isHtml?: boolean;
aux?: Record<string, unknown>;
}
+22
View File
@@ -0,0 +1,22 @@
import type { TurnObj } from "@/defs";
export type ReservedCommandResponse = {
result: true;
turnTime: string;
turnTerm: number;
year: number;
month: number;
date: string;
turn: TurnObj[];
autorun_limit: null | number;
};
export type ReserveCommandResponse = {
result: true,
brief: string,
}
export type ReserveBulkCommandResponse = {
result: true,
briefList: string[],
}
+21
View File
@@ -0,0 +1,21 @@
export type JoinArgs = {
name: string;
leadership: number;
strength: number;
intel: number;
pic: boolean;
character: string;
inheritSpecial?: string;
inheritTurntime?: number;
inheritCity?: number;
inheritBonusStat?: [number, number, number];
};
export type GeneralLogType = 'generalHistory'|'generalAction'|'battleResult'|'battleDetail';
export type GetGeneralLogResponse = {
result: true,
reqType: GeneralLogType,
generalID: number,
log: Record<string, string>
}
+79
View File
@@ -0,0 +1,79 @@
import type { CityID, CrewTypeID, GameCityDefault, GameConstType, GameUnitType, GameIActionKey, GameIActionCategory, GameIActionInfo } from "@/defs/GameObj";
import type { diplomacyState, MapResult, SimpleNationObj } from "@/defs";
export interface GetConstResponse {
result: true;
cacheKey: string;
data: {
gameConst: GameConstType;
gameUnitConst: Record<CrewTypeID, GameUnitType>;
cityConst: Record<CityID, GameCityDefault>;
cityConstMap: {
region: Record<number | string, string | number>;
level: Record<number | string, string | number>; //defs.CityLevelText
};
iActionInfo: Record<
GameIActionCategory,
Record<
GameIActionKey,
GameIActionInfo
>
>;
iActionKeyMap: {
availableNationType: "nationType";
neutralNationType: "nationType";
defaultSpecialDomestic: "specialDomestic";
availableSpecialDomestic: "specialDomestic";
optionalSpecialDomestic: "specialDomestic";
defaultSpecialWar: "specialWar";
availableSpecialWar: "specialWar";
optionalSpecialWar: "specialWar";
neutralPersonality: "personality";
availablePersonality: "personality";
optionalPersonality: "personality";
allItems: "item";
};
};
}
export type HistoryObj = {
server_id: string,
year: number;
month: number;
map: MapResult,
global_history: string[],
global_action: string[],
nations: {
capital: number,
cities: string[],
color: string,
gennum: number,
level: number,
name: string,
nation: number,
power: number,
type: GameIActionKey
}[],
}
export type GetHistoryResponse = {
result: true;
data: HistoryObj & {
hash: string;
//no: number,
};
}
export type GetCurrentHistoryResponse = {
result: true;
data: HistoryObj;
}
export type GetDiplomacyResponse = {
result: true;
nations: SimpleNationObj[];
conflict: [number, Record<number, number>][];
diplomacyList: Record<number, Record<number, diplomacyState>>;
myNationID: number;
}
+24
View File
@@ -0,0 +1,24 @@
import type { ValidResponse } from "@/util/callSammoAPI";
export type inheritBuffType =
| "warAvoidRatio"
| "warCriticalRatio"
| "warMagicTrialProb"
| "domesticSuccessProb"
| "domesticFailProb"
| "warAvoidRatioOppose"
| "warCriticalRatioOppose"
| "warMagicTrialProbOppose";
export type InheritPointLogItem = {
id: number;
server_id: string;
year: number;
month: number;
date: string;
text: string;
};
export type InheritLogResponse = ValidResponse & {
log: InheritPointLogItem[];
};
+40
View File
@@ -0,0 +1,40 @@
export type LoginResponse = {
result: true,
nextToken: [number, string] | undefined,
}
export type LoginFailed = {
result: false,
reqOTP: boolean,
reason: string,
}
export type LoginResponseWithKakao = LoginResponse | LoginFailed;
export type OTPResponse = {
result: true,
validUntil: string,
} | {
result: false,
reset: boolean,
reason: string,
}
export type AutoLoginNonceResponse = {
result: true,
loginNonce: string,
};
export type AutoLoginResponse = {
result: true,
nextToken: [number, string] | undefined,
}
export type AutoLoginFailed = {
result: false,
silent: boolean,
reason: string,
}
+5
View File
@@ -0,0 +1,5 @@
import type { ValidResponse } from "@/defs";
export type UploadImageResponse = ValidResponse & {
path: string;
}
+129
View File
@@ -0,0 +1,129 @@
import type { ValuesOf, TurnObj } from "@/defs";
import type { GameObjClassKey } from "@/defs/GameObj";
import type { ValidResponse } from "@/SammoAPI";
export type SetBlockWarResponse = ValidResponse & {
availableCnt: number;
};
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,
specialDomestic: GameObjClassKey,
specialWar: GameObjClassKey,
personal: GameObjClassKey,
belong: number,
connect: number,
officerLevel: number, //권한에따라 태수,군사,시종 노출 여부가 다름
officerLevelText: string,
lbonus: number,
ownerName: string | null, //NPC 출력용에 따라 결과가 다름
honorText: string,
dedLevelText: string,
bill: number,
reservedCommand: TurnObj[] | null,
autorun_limit: number,
}
export type GeneralListItemP1 = {
con: number,
specage: number,
specage2: number,
leadership_exp: number,
strength_exp: number,
intel_exp: number,
dex1: number,
dex2: number,
dex3: number,
dex4: number,
dex5: number,
city: number,
experience: number,
dedication: number,
officer_level: number,
officer_city: number,
defence_train: number,
troop: number,
crewtype: GameObjClassKey,
crew: number,
train: number,
atmos: number,
turntime: string,
recent_war: string,
horse: GameObjClassKey,
weapon: GameObjClassKey,
book: GameObjClassKey,
item: GameObjClassKey,
warnum: number,
killnum: number,
deathnum: number,
killcrew: number,
deathcrew: number,
firenum: number,
} & GeneralListItemP0;
export type GeneralListItemP2 = GeneralListItemP1;
export type RawGeneralListItem = GeneralListItemP0 | GeneralListItemP1 | GeneralListItemP2;
export type GeneralListItem =
(GeneralListItemP0 & { st0: true, st1: false, st2: false, permission: 0 }) |
(GeneralListItemP1 & { st0: true, st1: true, st2: false, permission: 1 }) |
(GeneralListItemP2 & { st0: true, st1: true, st2: true, permission: 2 | 3 | 4 });
type ResponseEnv = {
year: number,
month: number,
turntime: string,
turnterm: number,
killturn: number,
autorun_user?: {
limit_minutes: number,
options: Record<string, number>,
}
}
export type RawGeneralListP0 = ValidResponse & {
permission: 0,
column: (keyof GeneralListItemP0)[],
list: ValuesOf<GeneralListItemP0>[][],
troops?: null,
env: ResponseEnv,
}
export type RawGeneralListP1 = ValidResponse & {
permission: 1,
column: (keyof GeneralListItemP1)[],
list: ValuesOf<GeneralListItemP1>[][],
troops?: null,
env: ResponseEnv,
}
export type RawGeneralListP2 = ValidResponse & {
permission: 2 | 3 | 4,
column: (keyof GeneralListItemP2)[],
list: ValuesOf<GeneralListItemP2>[][],
troops: [number, string][],
env: ResponseEnv,
}
export type GeneralListResponse = RawGeneralListP0 | RawGeneralListP1 | RawGeneralListP2;
+30
View File
@@ -0,0 +1,30 @@
import type { CommandItem, TurnObj } from "@/defs";
export type ChiefResponse = {
result: true;
lastExecute: string;
year: number;
month: number;
turnTerm: number;
date: string;
chiefList: Record<
number,
{
name: string | undefined;
turnTime: string | undefined;
officerLevelText: string;
officerLevel: number;
npcType: number;
turn: TurnObj[];
}
>;
isChief: boolean;
autorun_limit: number;
officerLevel: number;
commandList: {
category: string;
values: CommandItem[];
}[];
mapName: string,
unitSet: string,
};
+32
View File
@@ -0,0 +1,32 @@
import type { ValidResponse } from "@/util/callSammoAPI";
export type VoteInfo = {
id: number;
title: string;
multipleOptions: number;
startDate: string;
endDate?: string;
options: string[];
}
export type VoteComment = {
id: number;
voteID: number;
generalID: number;
nationName: string;
generalName: string;
text: string;
date: string;
}
export type VoteListResult = ValidResponse & {
votes: Record<string, VoteInfo>;
}
export type VoteDetailResult = ValidResponse & {
voteInfo: VoteInfo,
votes: [number[], number][],
comments: VoteComment[],
myVote: null|number[],
userCnt: number,
}