57 lines
1.2 KiB
TypeScript
57 lines
1.2 KiB
TypeScript
import { game } from "../game"
|
|
|
|
export class itemData{
|
|
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
|
|
}
|
|
|