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();
|
2021-01-06 01:24:37 +01:00
|
|
|
this.prepareDerivedData();
|
2020-12-23 16:52:20 +01:00
|
|
|
}
|
2021-01-06 01:24:37 +01:00
|
|
|
|
|
|
|
prepareDerivedData(): void {
|
2021-02-05 03:42:42 +01:00
|
|
|
if (this.data.type === "talent") {
|
|
|
|
const data = this.data.data;
|
2021-01-06 11:52:11 +01:00
|
|
|
data.rank.total = data.rank.base + data.rank.mod;
|
2021-01-06 01:24:37 +01:00
|
|
|
}
|
|
|
|
}
|
2021-02-16 03:26:26 +01:00
|
|
|
|
|
|
|
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
|
|
|
}
|