ds4/src/module/item/item.ts

36 lines
906 B
TypeScript
Raw Normal View History

2021-02-05 03:42:42 +01:00
import { DS4ItemData } from "./item-data";
2020-12-23 18:23:26 +01:00
2020-12-23 16:52:20 +01:00
/**
2021-02-07 11:51:36 +01:00
* The Item class for DS4
2020-12-23 16:52:20 +01:00
*/
2021-01-26 03:55:18 +01:00
export class DS4Item extends Item<DS4ItemData> {
2020-12-23 16:52:20 +01:00
/**
2021-02-07 11:51:36 +01:00
* @override
2020-12-23 16:52:20 +01:00
*/
2020-12-23 18:23:26 +01:00
prepareData(): void {
2020-12-23 16:52:20 +01:00
super.prepareData();
this.prepareDerivedData();
2020-12-23 16:52:20 +01:00
}
prepareDerivedData(): void {
2021-02-05 03:42:42 +01:00
if (this.data.type === "talent") {
const data = this.data.data;
data.rank.total = data.rank.base + data.rank.mod;
}
}
isNonEquippedEuipable(): boolean {
return "equipped" in this.data.data && !this.data.data.equipped;
}
/**
* The number of times that active effect changes originating from this item should be applied.
*/
get activeEffectFactor(): number {
if (this.data.type === "talent") {
return this.data.data.rank.total ?? this.data.data.rank.base + this.data.data.rank.mod;
}
return 1;
}
2020-12-23 16:52:20 +01:00
}