Separate types for data and _data for DS4Actor

This commit is contained in:
Johannes Loher 2021-03-22 10:18:43 +01:00
parent 7c7d30854c
commit 17633ced68
7 changed files with 174 additions and 102 deletions

View file

@ -1,16 +1,17 @@
import { ModifiableDataTotal } from "../common/common-data";
import { ModifiableDataBaseTotal } from "../common/common-data";
import { DS4 } from "../config";
import { DS4Item } from "../item/item";
import { ItemType } from "../item/item-data";
import { DS4ActorData } from "./actor-data";
import { DS4ActorPreparedData } from "./actor-prepared-data";
/**
* The Actor class for DS4
*/
export class DS4Actor extends Actor<DS4ActorData, DS4Item> {
export class DS4Actor extends Actor<DS4ActorData, DS4Item, DS4ActorPreparedData> {
/** @override */
prepareData(): void {
this.data = duplicate(this._data) as DS4ActorData;
this.data = duplicate(this._data) as DS4ActorPreparedData;
if (!this.data.img) this.data.img = CONST.DEFAULT_TOKEN;
if (!this.data.name) this.data.name = "New " + this.entity;
this.prepareBaseData();
@ -32,11 +33,13 @@ export class DS4Actor extends Actor<DS4ActorData, DS4Item> {
const attributes = data.data.attributes;
Object.values(attributes).forEach(
(attribute: ModifiableDataTotal<number>) => (attribute.total = attribute.base + attribute.mod),
(attribute: ModifiableDataBaseTotal<number>) => (attribute.total = attribute.base + attribute.mod),
);
const traits = data.data.traits;
Object.values(traits).forEach((trait: ModifiableDataTotal<number>) => (trait.total = trait.base + trait.mod));
Object.values(traits).forEach(
(trait: ModifiableDataBaseTotal<number>) => (trait.total = trait.base + trait.mod),
);
}
applyActiveEffectsToBaseData(): void {
@ -184,7 +187,7 @@ export class DS4Actor extends Actor<DS4ActorData, DS4Item> {
(data.attributes.mind.total ?? 0) + (data.traits.dexterity.total ?? 0) - armorValueOfEquippedItems;
Object.values(data.combatValues).forEach(
(combatValue: ModifiableDataTotal<number>) => (combatValue.total = combatValue.base + combatValue.mod),
(combatValue: ModifiableDataBaseTotal<number>) => (combatValue.total = combatValue.base + combatValue.mod),
);
}