refactor: use noImplicitOverride option

This commit is contained in:
Johannes Loher 2022-05-29 17:47:27 +02:00
parent c9a3818571
commit 12bc76ba54
18 changed files with 45 additions and 85 deletions

View file

@ -21,8 +21,7 @@ import type { DS4Item } from "../item/item";
* The base sheet class for all {@link DS4Actor}s.
*/
export class DS4ActorSheet extends ActorSheet<ActorSheet.Options, DS4ActorSheetData> {
/** @override */
static get defaultOptions(): ActorSheet.Options {
static override get defaultOptions(): ActorSheet.Options {
return foundry.utils.mergeObject(super.defaultOptions, {
classes: ["sheet", "ds4-actor-sheet"],
height: 625,
@ -37,14 +36,12 @@ export class DS4ActorSheet extends ActorSheet<ActorSheet.Options, DS4ActorSheetD
});
}
/** @override */
get template(): string {
override get template(): string {
const basePath = "systems/ds4/templates/sheets/actor";
return `${basePath}/${this.actor.data.type}-sheet.hbs`;
}
/** @override */
async getData(): Promise<DS4ActorSheetData> {
override async getData(): Promise<DS4ActorSheetData> {
const itemsByType = Object.fromEntries(
Object.entries(this.actor.itemTypes).map(([itemType, items]) => {
return [itemType, items.map((item) => item.data).sort((a, b) => (a.sort || 0) - (b.sort || 0))];
@ -96,8 +93,7 @@ export class DS4ActorSheet extends ActorSheet<ActorSheet.Options, DS4ActorSheetD
}`;
}
/** @override */
activateListeners(html: JQuery): void {
override activateListeners(html: JQuery): void {
super.activateListeners(html);
if (!this.options.editable) return;
@ -327,8 +323,7 @@ export class DS4ActorSheet extends ActorSheet<ActorSheet.Options, DS4ActorSheetD
this.actor.rollCheck(check).catch((e) => notifications.error(e, { log: true }));
}
/** @override */
_onDragStart(event: DragEvent): void {
override _onDragStart(event: DragEvent): void {
const target = event.currentTarget as HTMLElement;
if (!(target instanceof HTMLElement)) return super._onDragStart(event);
@ -391,8 +386,7 @@ export class DS4ActorSheet extends ActorSheet<ActorSheet.Options, DS4ActorSheetD
this.actor.updateEmbeddedDocuments("Item", updates);
}
/** @override */
protected async _onDropItem(event: DragEvent, data: ActorSheet.DropData.Item): Promise<unknown> {
protected override async _onDropItem(event: DragEvent, data: ActorSheet.DropData.Item): Promise<unknown> {
const item = await Item.fromDropData(data);
if (item && !this.actor.canOwnItemType(item.data.type)) {
notifications.warn(

View file

@ -25,8 +25,7 @@ declare global {
* The Actor class for DS4
*/
export class DS4Actor extends Actor {
/** @override */
prepareData(): void {
override prepareData(): void {
this.data.reset();
this.prepareBaseData();
this.prepareEmbeddedDocuments();
@ -36,8 +35,7 @@ export class DS4Actor extends Actor {
this.prepareFinalDerivedData();
}
/** @override */
prepareBaseData(): void {
override prepareBaseData(): void {
const data = this.data;
data.data.rolling = {
@ -57,11 +55,10 @@ export class DS4Actor extends Actor {
}
/**
* @override
* We override this with an empty implementation because we have our own custom way of applying
* {@link ActiveEffect}s and {@link Actor#prepareEmbeddedDocuments} calls this.
*/
applyActiveEffects(): void {
override applyActiveEffects(): void {
return;
}
@ -117,9 +114,8 @@ export class DS4Actor extends Actor {
/**
* Apply transformations to the Actor data after effects have been applied to the base data.
* @override
*/
prepareDerivedData(): void {
override prepareDerivedData(): void {
this.prepareCombatValues();
this.prepareChecks();
}
@ -281,9 +277,8 @@ export class DS4Actor extends Actor {
/**
* Handle how changes to a Token attribute bar are applied to the Actor.
* This only differs from the base implementation by also allowing negative values.
* @override
*/
async modifyTokenAttribute(
override async modifyTokenAttribute(
attribute: string,
value: number,
isDelta = false,

View file

@ -8,8 +8,7 @@ import { DS4ActorSheet } from "../actor-sheet";
* The Sheet class for DS4 Character Actors
*/
export class DS4CharacterActorSheet extends DS4ActorSheet {
/** @override */
static get defaultOptions(): ActorSheet.Options {
static override get defaultOptions(): ActorSheet.Options {
return foundry.utils.mergeObject(super.defaultOptions, {
classes: ["sheet", "ds4-actor-sheet", "ds4-character-sheet"],
});

View file

@ -7,19 +7,16 @@ import { DS4Actor } from "../actor";
import type { ItemType } from "../../item/item-data-source";
export class DS4Character extends DS4Actor {
/** @override */
prepareFinalDerivedData(): void {
override prepareFinalDerivedData(): void {
super.prepareFinalDerivedData();
this.data.data.slayerPoints.max = 3;
}
/** @override */
get finalDerivedDataProperties(): string[] {
override get finalDerivedDataProperties(): string[] {
return [...super.finalDerivedDataProperties, "data.slayerPoints.max"];
}
/** @override */
get ownableItemTypes(): Array<ItemType> {
override get ownableItemTypes(): Array<ItemType> {
return [...super.ownableItemTypes, "talent", "racialAbility", "language", "alphabet"];
}
}

View file

@ -8,8 +8,7 @@ import { DS4ActorSheet } from "../actor-sheet";
* The Sheet class for DS4 Creature Actors
*/
export class DS4CreatureActorSheet extends DS4ActorSheet {
/** @override */
static get defaultOptions(): ActorSheet.Options {
static override get defaultOptions(): ActorSheet.Options {
return foundry.utils.mergeObject(super.defaultOptions, {
classes: ["sheet", "ds4-actor-sheet", "ds4-creature-sheet"],
});

View file

@ -7,8 +7,7 @@ import { DS4Actor } from "../actor";
import type { ItemType } from "../../item/item-data-source";
export class DS4Creature extends DS4Actor {
/** @override */
get ownableItemTypes(): Array<ItemType> {
override get ownableItemTypes(): Array<ItemType> {
return [...super.ownableItemTypes, "specialCreatureAbility"];
}
}