fix: Add a build system for the backend
This commit is contained in:
51
shared/user.ts
Normal file
51
shared/user.ts
Normal file
@@ -0,0 +1,51 @@
|
||||
export interface IUser {
|
||||
username: string;
|
||||
uid: string;
|
||||
showWelcome: boolean;
|
||||
score: number;
|
||||
|
||||
sessionToken: string;
|
||||
};
|
||||
|
||||
export interface IUserLevel {
|
||||
// The numerical representation
|
||||
level: number;
|
||||
// The string representation
|
||||
name: string;
|
||||
// The user has this level until: score => levelCap
|
||||
levelCap: number;
|
||||
};
|
||||
|
||||
function levelFactory(): (name: string, levelCap: number) => IUserLevel {
|
||||
let level = 1;
|
||||
return (name: string, levelCap: number) => {
|
||||
return {
|
||||
level: level++,
|
||||
name,
|
||||
levelCap,
|
||||
};
|
||||
};
|
||||
}
|
||||
const l = levelFactory();
|
||||
|
||||
export const UserLevels: IUserLevel[] = [
|
||||
l("Sklave", 35),
|
||||
l("Farmer", 75),
|
||||
l("Soldat", 120),
|
||||
l("Gladiator", 170),
|
||||
l("Zenturio", 220),
|
||||
l("Prätor", 270),
|
||||
l("Reiter", 320),
|
||||
l("General", 370),
|
||||
l("Konsul", 420),
|
||||
l("Caesar", 470),
|
||||
];
|
||||
|
||||
export function userScoreToLevel(userScore: number): IUserLevel {
|
||||
// NOTE: The failure level should never be returned
|
||||
return UserLevels.find((el) => userScore < el.levelCap) || {
|
||||
level: 0,
|
||||
name: "Failure",
|
||||
levelCap: 10000000,
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user