SpaceNinjaServer/src/types/statTypes.ts

157 lines
3.6 KiB
TypeScript
Raw Normal View History

import { Types } from "mongoose";
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;
MissionsInterrupted?: number;
MissionsDumped?: number;
2024-05-03 21:04:01 +02:00
TimePlayedSec?: number;
PickupCount?: number;
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;
Races?: Map<string, IRace>;
2024-05-03 21:04:01 +02:00
}
export interface IStatsDatabase extends IStatsClient {
accountOwnerId: Types.ObjectId;
}
2024-05-03 21:04:01 +02:00
export interface IAbility {
type: string;
used: number;
2024-05-03 21:04:01 +02:00
}
export interface IEnemy {
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;
highScore: number;
2024-05-03 21:04:01 +02:00
}
export interface IScan {
type: string;
scans: number;
2024-05-03 21:04:01 +02:00
}
export interface ITutorial {
stage: number;
}
export interface IWeapon {
type: string;
2024-05-03 21:04:01 +02:00
equipTime?: number;
hits?: number;
kills?: number;
xp?: number;
assists?: number;
headshots?: number;
fired?: number;
}
export interface IRace {
highScore: number;
}
export interface IStatsUpdate {
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;
RACE_SCORE?: IUploadEntry;
}
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;
}