2025-02-06 04:42:59 -08:00
|
|
|
import { Types } from "mongoose";
|
|
|
|
|
2025-02-11 09:34:33 +01:00
|
|
|
export interface IStatsClient {
|
2024-05-03 21:04:01 +02:00
|
|
|
CiphersSolved?: number;
|
|
|
|
CiphersFailed?: number;
|
|
|
|
CipherTime?: number;
|
|
|
|
Weapons?: IWeapon[];
|
|
|
|
Enemies?: IEnemy[];
|
|
|
|
MeleeKills?: number;
|
|
|
|
MissionsCompleted?: number;
|
|
|
|
MissionsQuit?: number;
|
|
|
|
MissionsFailed?: number;
|
2025-02-11 09:34:33 +01:00
|
|
|
MissionsInterrupted?: number;
|
|
|
|
MissionsDumped?: number;
|
2024-05-03 21:04:01 +02:00
|
|
|
TimePlayedSec?: number;
|
|
|
|
PickupCount?: number;
|
2025-02-11 09:34:33 +01:00
|
|
|
Tutorial?: Map<string, ITutorial>;
|
2024-05-03 21:04:01 +02:00
|
|
|
Abilities?: IAbility[];
|
|
|
|
Rating?: number;
|
|
|
|
Income?: number;
|
|
|
|
Rank?: number;
|
|
|
|
PlayerLevel?: number;
|
|
|
|
Scans?: IScan[];
|
|
|
|
Missions?: IMission[];
|
|
|
|
Deaths?: number;
|
|
|
|
HealCount?: number;
|
|
|
|
ReviveCount?: number;
|
2025-02-11 09:34:33 +01:00
|
|
|
Races?: Map<string, IRace>;
|
2024-05-03 21:04:01 +02:00
|
|
|
}
|
|
|
|
|
2025-02-11 09:34:33 +01:00
|
|
|
export interface IStatsDatabase extends IStatsClient {
|
2025-02-06 04:42:59 -08:00
|
|
|
accountOwnerId: Types.ObjectId;
|
|
|
|
}
|
|
|
|
|
2024-05-03 21:04:01 +02:00
|
|
|
export interface IAbility {
|
|
|
|
type: string;
|
2025-02-06 04:42:59 -08:00
|
|
|
used: number;
|
2024-05-03 21:04:01 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
export interface IEnemy {
|
2025-02-06 04:42:59 -08:00
|
|
|
type: string;
|
2024-05-03 21:04:01 +02:00
|
|
|
executions?: number;
|
|
|
|
headshots?: number;
|
|
|
|
kills?: number;
|
|
|
|
assists?: number;
|
|
|
|
deaths?: number;
|
|
|
|
}
|
|
|
|
|
|
|
|
export interface IMission {
|
|
|
|
type: string;
|
2025-02-06 04:42:59 -08:00
|
|
|
highScore: number;
|
2024-05-03 21:04:01 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
export interface IScan {
|
|
|
|
type: string;
|
2025-02-06 04:42:59 -08:00
|
|
|
scans: number;
|
2024-05-03 21:04:01 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
export interface ITutorial {
|
|
|
|
stage: number;
|
|
|
|
}
|
|
|
|
|
|
|
|
export interface IWeapon {
|
2025-02-06 04:42:59 -08:00
|
|
|
type: string;
|
2024-05-03 21:04:01 +02:00
|
|
|
equipTime?: number;
|
|
|
|
hits?: number;
|
|
|
|
kills?: number;
|
|
|
|
xp?: number;
|
|
|
|
assists?: number;
|
|
|
|
headshots?: number;
|
|
|
|
fired?: number;
|
|
|
|
}
|
2025-02-06 04:42:59 -08:00
|
|
|
|
2025-02-11 09:34:33 +01:00
|
|
|
export interface IRace {
|
|
|
|
highScore: number;
|
|
|
|
}
|
|
|
|
|
|
|
|
export interface IStatsUpdate {
|
2025-02-06 04:42:59 -08:00
|
|
|
displayName: string;
|
|
|
|
guildId?: string;
|
|
|
|
PS?: string;
|
|
|
|
add?: IStatsAdd;
|
|
|
|
set?: IStatsSet;
|
|
|
|
max?: IStatsMax;
|
|
|
|
timers?: IStatsTimers;
|
|
|
|
}
|
|
|
|
|
|
|
|
export interface IStatsAdd {
|
|
|
|
GEAR_USED?: IUploadEntry;
|
|
|
|
SCAN?: IUploadEntry;
|
|
|
|
MISSION_COMPLETE?: IUploadEntry;
|
|
|
|
HEADSHOT_ITEM?: IUploadEntry;
|
|
|
|
HEADSHOT?: IUploadEntry;
|
|
|
|
PLAYER_COUNT?: IUploadEntry;
|
|
|
|
HOST_MIGRATION?: IUploadEntry;
|
|
|
|
PICKUP_ITEM?: IUploadEntry;
|
|
|
|
FIRE_WEAPON?: IUploadEntry;
|
|
|
|
HIT_ENTITY_ITEM?: IUploadEntry;
|
|
|
|
DESTROY_DECORATION?: IUploadEntry;
|
|
|
|
KILL_ENEMY?: IUploadEntry;
|
|
|
|
TAKE_DAMAGE?: IUploadEntry;
|
|
|
|
SQUAD_KILL_ENEMY?: IUploadEntry;
|
|
|
|
RECEIVE_UPGRADE?: IUploadEntry;
|
|
|
|
USE_ABILITY?: IUploadEntry;
|
|
|
|
SQUAD_VIP_KILL?: IUploadEntry;
|
|
|
|
HEAL_BUDDY?: IUploadEntry;
|
|
|
|
INCOME?: number;
|
|
|
|
CIPHER?: IUploadEntry;
|
|
|
|
EQUIP_COSMETIC?: IUploadEntry;
|
|
|
|
EQUIP_UPGRADE?: IUploadEntry;
|
|
|
|
KILL_BOSS?: IUploadEntry;
|
|
|
|
MISSION_TYPE?: IUploadEntry;
|
|
|
|
MISSION_FACTION?: IUploadEntry;
|
|
|
|
MISSION_PLAYED?: IUploadEntry;
|
|
|
|
MISSION_PLAYED_TIME?: IUploadEntry;
|
|
|
|
MEDALS_TOP?: IUploadEntry;
|
|
|
|
INPUT_ACTIVITY_TIME?: IUploadEntry;
|
|
|
|
KILL_ENEMY_ITEM?: IUploadEntry;
|
|
|
|
TAKE_DAMAGE_ITEM?: IUploadEntry;
|
|
|
|
SQUAD_KILL_ENEMY_ITEM?: IUploadEntry;
|
|
|
|
MELEE_KILL?: IUploadEntry;
|
|
|
|
SQUAD_MELEE_KILL?: IUploadEntry;
|
|
|
|
MELEE_KILL_ITEM?: IUploadEntry;
|
|
|
|
SQUAD_MELEE_KILL_ITEM?: IUploadEntry;
|
|
|
|
DIE?: IUploadEntry;
|
|
|
|
DIE_ITEM?: IUploadEntry;
|
|
|
|
EXECUTE_ENEMY?: IUploadEntry;
|
|
|
|
EXECUTE_ENEMY_ITEM?: IUploadEntry;
|
|
|
|
}
|
|
|
|
|
|
|
|
export interface IUploadEntry {
|
|
|
|
[key: string]: number;
|
|
|
|
}
|
|
|
|
|
|
|
|
export interface IStatsMax {
|
|
|
|
WEAPON_XP?: IUploadEntry;
|
|
|
|
MISSION_SCORE?: IUploadEntry;
|
2025-02-11 09:34:33 +01:00
|
|
|
RACE_SCORE?: IUploadEntry;
|
2025-02-06 04:42:59 -08:00
|
|
|
}
|
|
|
|
|
|
|
|
export interface IStatsSet {
|
|
|
|
ELO_RATING?: number;
|
|
|
|
RANK?: number;
|
|
|
|
PLAYER_LEVEL?: number;
|
|
|
|
}
|
|
|
|
|
|
|
|
export interface IStatsTimers {
|
|
|
|
IN_SHIP_TIME?: number;
|
|
|
|
IN_SHIP_VIEW_TIME?: IUploadEntry;
|
|
|
|
EQUIP_WEAPON?: IUploadEntry;
|
|
|
|
MISSION_TIME?: IUploadEntry;
|
|
|
|
REGION_TIME?: IUploadEntry;
|
|
|
|
PLATFORM_TIME?: IUploadEntry;
|
|
|
|
CURRENT_MISSION_TIME?: number;
|
|
|
|
CIPHER_TIME?: number;
|
|
|
|
}
|