This commit is contained in:
2024-03-11 14:21:31 +00:00
parent c9c974d191
commit 2266cad0f8
13 changed files with 250 additions and 22 deletions
+13
View File
@@ -0,0 +1,13 @@
import type { DiplomacyState, NationID } from "@/defs.js";
export interface Diplomacy {
_id: string;
lowerNationID: NationID;
higherNationID: NationID;
state: DiplomacyState;
lowerNationDeadCrew?: number;
higherNationDeadCrew?: number;
}
@@ -0,0 +1,29 @@
import type { NationID } from "@/defs.js";
export interface IDiplomaticLetter {
_id: string;
srcNationID: NationID;
destNationID: NationID;
prevID?: string;
state: 'proposed' | 'accepted' | 'rejected' | 'canceled' | 'replaced';
srcSigner: {
generalID: string;
generalName: string;
icon: string;
};
destSigner: {
generalID: string;
generalName: string;
icon: string;
};
textBrief: string;
textDetail: string;
createdAt: Date;
updatedAt: Date;
}
@@ -1,6 +1,6 @@
import type { GeneralID } from "@/defs.js";
//게임 외부적인 General Rank ㅈ어
//게임 외부적인 General Rank
export interface IGeneralExternalRankEntity {
generalID: GeneralID;
+10
View File
@@ -0,0 +1,10 @@
import type { GeneralID } from "@/defs.js";
export interface IGeneralTurn {
generalID: GeneralID;
turn: {
action: string;
arg?: Record<string, unknown>;
brief: string;
}[];
}
View File
+14
View File
@@ -0,0 +1,14 @@
import type { StaffLevel } from "@/defs.js";
export interface INationTurn {
_id: string;
nationID: string;
officerLevel: StaffLevel,
turn: {
action: string;
arg?: Record<string, unknown>;
brief: string;
}[];
}
@@ -5,7 +5,7 @@ export interface IGeneralEntity {
ownerID?: UserID;
npcType: NpcType;
affinity?: number;
picture?: string;
icon?: string;
name: GeneralName;
ownerName?: UserName;
nationID: NationID;
@@ -0,0 +1,31 @@
import type { GeneralID, GeneralName, NationName, ScenarioID, ServerID, UserID, UserName } from "@/defs.js"
import type { IGeneralRankEntity } from "../GeneralRankEntity.js";
import type { IGeneralExternalRankEntity } from "../External/GeneralExternalRankEntity.js";
export interface IHallOfFame {
_id: string
serverID: ServerID;
serverIdx: number;
season: number;
scenarioID: ScenarioID;
scenarioName: string;
generalID: GeneralID;
generalName: GeneralName;
ownerID: UserID;
ownerName: UserName;
icon: string;
nationName: NationName;
nationColor: string;
startTime: Date;
endTime: Date;
ingame: IGeneralRankEntity;
external: IGeneralExternalRankEntity;
}
@@ -0,0 +1,32 @@
import type { CityID, CityLevel, CityState, NationID, NpcType, OfficerLevel, RegionID, ServerID } from "@/defs.js";
export interface IHistory {
_id: string;
serverID: ServerID;
year: number;
month: number;
mapBase: string;
nations: Map<NationID, {
name: string;
color: string;
cities: Set<CityID>;
generals: {
name: string;
npcType: NpcType;
}[];
}>;
cities: Map<CityID, {
nationID: NationID;
name: string;
hasSupply: boolean;
level: CityLevel;
state: CityState;
regionID: RegionID;
remainWarMonth: number;
}>
globalHistory: string[];
globalAction: string[];
}
@@ -0,0 +1,28 @@
import type { CityLevel, GeneralID, ServerID, UserID } from "@/defs.js";
import type { IGeneralEntity } from "../GeneralEntity.js";
import type { IGeneralRankEntity } from "../GeneralRankEntity.js";
export interface OldGeneral {
_id: string;
serverID: ServerID;
generalID: GeneralID;
ownerID?: UserID;
lastYearMonth: number;
general: IGeneralEntity;
rank: IGeneralRankEntity;
troopName?: string;
cityBasic: {
name: string;
level: CityLevel;
}
nationBasic: {
name: string;
color: string;
};
createdAt: Date;
}
@@ -0,0 +1,34 @@
import type { GeneralID, GeneralName, ItemID, ItemKeyType, NationID, NpcType, OfficerLevel, PersonalityType, ServerID, SpecialityDomesticType, SpecialityWarType, UserID } from "@/defs.js";
import type { INationEntity } from "../NationEntity.js";
export interface IOldNation {
_id: string;
serverID: ServerID;
nationID: NationID;
nation: INationEntity;
lastYearMonth: number;
members: Record<number, {
generalID: GeneralID;
generalName: GeneralName;
ownerID?: UserID;
ownerName?: string;
npcType?: NpcType;
icon?: string;
officerLevel: OfficerLevel;
officerCityID?: number;
}>
history: {
year: number;
month: number;
text: string[];
};
createdAt: Date;
}