nitro-renderer/packages/localization/src/BadgeBaseAndLevel.ts
2024-03-19 21:53:17 -04:00

54 lines
1.1 KiB
TypeScript

export class BadgeBaseAndLevel
{
private _badgeId: string = '';
private _level: number = 1;
private _base: string = '';
constructor(badgeId: string)
{
this._badgeId = badgeId;
this.parseText();
}
private parseText():void
{
let length = (this._badgeId.length - 1);
while(length > 0 && this.isNumber(this._badgeId.charAt(length))) length--;
this._base = this._badgeId.substr(0, (length + 1));
const level = this._badgeId.substr((length + 1), this._badgeId.length);
if(level && (level !== '')) this._level = Number.parseInt(level);
}
private isNumber(text: string): boolean
{
const char = text.charCodeAt(0);
return (char >= 48 && char <= 57);
}
public get level(): number
{
return this._level;
}
public set level(k : number)
{
this._level = Math.max(1, k);
}
public get getBadgeId(): string
{
return this._base + this._level;
}
public get base(): string
{
return this._base;
}
}