KF-MMO-Server/Classes/itemData.ts

57 lines
1.2 KiB
TypeScript
Raw Normal View History

2023-09-18 18:33:06 +08:00
import { game } from "../game"
2023-09-16 05:42:42 +08:00
export class itemData{
2023-09-18 18:33:06 +08:00
name : string
id : number
templateId : number
rarity : number
count : number = 1
stats : Stat[] = []
static fromPersistentData(data : persistentItemData){
let item = new itemData()
item.name = data.name;
item.id = ++game.itemCount;
item.templateId = data.id;
item.rarity = Math.floor(Math.random()*data.rarityMax);
item.count = 1;
return item
}
static copy(data : itemData){
let item = new itemData()
item.name = data.name;
item.id = data.id;
item.templateId = data.templateId;
item.rarity = data.rarity
item.count = data.count
data.stats.forEach(stat=>item.stats.push(stat))
return item
}
}
export class persistentItemData{
name: string
id: number
itemType: number
description: string
rarityMin: number
rarityMax: number
maxCount: number
tags: number[] = []
stats: Stat[] = []
constructor(init?: Partial<persistentItemData>) {
Object.assign(this, init);
}
}
export interface Stat {
Key: number
Value: number
2023-09-16 05:42:42 +08:00
}
2023-09-18 18:33:06 +08:00