Move to Renderer V2

This commit is contained in:
duckietm
2024-04-03 09:27:56 +02:00
parent 110c3ad393
commit b3134ce50b
4080 changed files with 115593 additions and 66375 deletions
@@ -0,0 +1,75 @@
import { IMessageDataWrapper, IMessageParser } from '@nitrots/api';
import { TalentTrackRewardPerk } from './TalentTrackRewardPerk';
import { TalentTrackRewardProduct } from './TalentTrackRewardProduct';
export class TalentLevelUpMessageParser implements IMessageParser
{
private _talentTrackName: string;
private _level: number;
private _rewardPerks: TalentTrackRewardPerk[];
private _rewardProducts: TalentTrackRewardProduct[];
public flush(): boolean
{
this._talentTrackName = null;
this._level = -1;
this._rewardPerks = [];
this._rewardProducts = [];
return true;
}
public parse(wrapper: IMessageDataWrapper): boolean
{
if(!wrapper) return false;
let totalRewards = 0;
this._talentTrackName = wrapper.readString();
this._level = wrapper.readInt();
const totalRewardsPerks = wrapper.readInt();
while(totalRewards < totalRewardsPerks)
{
this._rewardPerks.push(new TalentTrackRewardPerk(wrapper));
totalRewards++;
}
const totalRewardsProducts = wrapper.readInt();
if(totalRewards < totalRewardsProducts)
{
for(let i = 0; i < totalRewardsProducts; i++)
{
const name = wrapper.readString();
const vipDays = wrapper.readInt();
this._rewardProducts.push(new TalentTrackRewardProduct(name, vipDays));
totalRewards++;
}
}
return true;
}
public get talentTrackName(): string
{
return this._talentTrackName;
}
public get level(): number
{
return this._level;
}
public get rewardPerks(): TalentTrackRewardPerk[]
{
return this._rewardPerks;
}
public get rewardProducts(): TalentTrackRewardProduct[]
{
return this._rewardProducts;
}
}
@@ -0,0 +1,45 @@
import { TalentTrackRewardProduct } from './TalentTrackRewardProduct';
import { TalentTrackTask } from './TalentTrackTask';
export class TalentTrackLevel
{
private _level: number;
private _state: number;
private _tasks: TalentTrackTask[];
private _rewardPerks: string[];
private _rewardProducts: TalentTrackRewardProduct[];
constructor(level: number, state: number, achievements: TalentTrackTask[], perks: string[], items: TalentTrackRewardProduct[])
{
this._level = level;
this._state = state;
this._tasks = achievements;
this._rewardPerks = perks;
this._rewardProducts = items;
}
public get level(): number
{
return this._level;
}
public get state(): number
{
return this._state;
}
public get tasks(): TalentTrackTask[]
{
return this._tasks;
}
public get perks(): string[]
{
return this._rewardPerks;
}
public get items(): TalentTrackRewardProduct[]
{
return this._rewardProducts;
}
}
@@ -0,0 +1,43 @@
import { IMessageDataWrapper, IMessageParser } from '@nitrots/api';
export class TalentTrackLevelMessageParser implements IMessageParser
{
private _talentTrackName: string;
private _level: number;
private _maxLevel: number;
public flush(): boolean
{
this._talentTrackName = null;
this._level = -1;
this._maxLevel = -1;
return true;
}
public parse(wrapper: IMessageDataWrapper): boolean
{
if(!wrapper) return false;
this._talentTrackName = wrapper.readString();
this._level = wrapper.readInt();
this._maxLevel = wrapper.readInt();
return true;
}
public get talentTrackName(): string
{
return this._talentTrackName;
}
public get level(): number
{
return this._level;
}
public get maxLevel(): number
{
return this._maxLevel;
}
}
@@ -0,0 +1,79 @@
import { IMessageDataWrapper, IMessageParser } from '@nitrots/api';
import { TalentTrackLevel } from './TalentTrackLevel';
import { TalentTrackRewardProduct } from './TalentTrackRewardProduct';
import { TalentTrackTask } from './TalentTrackTask';
export class TalentTrackParser implements IMessageParser
{
private _type: string;
private _levels: TalentTrackLevel[];
public flush(): boolean
{
this._type = null;
this._levels = null;
return true;
}
public parse(wrapper: IMessageDataWrapper): boolean
{
if(!wrapper) return false;
this._type = wrapper.readString();
this._levels = [];
const levelsCount = wrapper.readInt();
for(let i = 0; i < levelsCount; i++)
{
const levelId = wrapper.readInt();
const levelState = wrapper.readInt();
const levelAchievements: TalentTrackTask[] = [];
const achievementsCount = wrapper.readInt();
for(let j = 0; j < achievementsCount; j++)
{
const id = wrapper.readInt();
const index = wrapper.readInt();
const code = wrapper.readString();
const state = wrapper.readInt();
const progress = wrapper.readInt();
const achievementProgress = wrapper.readInt();
levelAchievements.push(new TalentTrackTask(id, index, code, state, progress, achievementProgress));
}
const levelPerks: string[] = [];
const perksCount = wrapper.readInt();
for(let j = 0; j < perksCount; j++) levelPerks.push(wrapper.readString());
const levelItems: TalentTrackRewardProduct[] = [];
const itemsCount = wrapper.readInt();
for(let j = 0; j < itemsCount; j++)
{
const name = wrapper.readString();
const unknownInt = wrapper.readInt();
levelItems.push(new TalentTrackRewardProduct(name, unknownInt));
}
this._levels.push(new TalentTrackLevel(levelId, levelState, levelAchievements, levelPerks, levelItems));
}
return true;
}
public get type(): string
{
return this._type;
}
public get levels(): TalentTrackLevel[]
{
return this._levels;
}
}
@@ -0,0 +1,16 @@
import { IMessageDataWrapper } from '@nitrots/api';
export class TalentTrackRewardPerk
{
private _perkId: number;
constructor(wrapper: IMessageDataWrapper)
{
this._perkId = wrapper.readInt();
}
public get perkId(): number
{
return this._perkId;
}
}
@@ -0,0 +1,21 @@
export class TalentTrackRewardProduct
{
private _productCode: string;
private _vipDays: number;
constructor(name: string, vipDays: number)
{
this._productCode = name;
this._vipDays = vipDays;
}
public get productCode(): string
{
return this._productCode;
}
public get vipDays(): number
{
return this._vipDays;
}
}
@@ -0,0 +1,49 @@
export class TalentTrackTask
{
private _id: number;
private _requiredLevel: number;
private _badgeCode: string;
private _state: number;
private _currentScore: number;
private _totalScore: number;
constructor(id: number, requiredLevel: number, badgeCode: string, state: number, currentScore: number, totalScore: number)
{
this._id = id;
this._requiredLevel = requiredLevel;
this._badgeCode = badgeCode;
this._state = state;
this._currentScore = currentScore;
this._totalScore = totalScore;
}
public get id(): number
{
return this._id;
}
public get requiredLevel(): number
{
return this._requiredLevel;
}
public get badgeCode(): string
{
return this._badgeCode;
}
public get state(): number
{
return this._state;
}
public get currentScore(): number
{
return this._currentScore;
}
public get totalScore(): number
{
return this._totalScore;
}
}
@@ -0,0 +1,7 @@
export * from './TalentLevelUpMessageParser';
export * from './TalentTrackLevel';
export * from './TalentTrackLevelMessageParser';
export * from './TalentTrackParser';
export * from './TalentTrackRewardPerk';
export * from './TalentTrackRewardProduct';
export * from './TalentTrackTask';