diff --git a/.eslintrc.json b/.eslintrc.json index f020239..5d25375 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -23,11 +23,17 @@ "@typescript-eslint" ], "rules": { - "prettier/prettier": "error", - "camelcase": ["error", {"allow": ["((bj_)\\w+[A-Z]$)"]}], //exclude bj_CAPITAL_LETTER + "prettier/prettier": ["warn", { + "endOfLine": "auto" + }], + "arrow-body-style": 0, + "default-param-last": 0, + "linebreak-style": 0, + "camelcase": ["error", {"allow": ["((bj_)\\w+[A-Z]$)", "bj_lastCreatedGroup"]}], //exclude bj_CAPITAL_LETTER "eqeqeq": ["error", "always", {"null": "never"}], "@typescript-eslint/no-implicit-any-catch": "error", "@typescript-eslint/strict-boolean-expressions": ["warn"], + "@typescript-eslint/no-non-null-assertion": 0, "no-underscore-dangle": ["error", { "allowAfterThis": true, "allowAfterSuper": true }], "no-throw-literal": 0, //Maybe one day if wc3 gets a polyfill for the debug library "no-cond-assign": 0, diff --git a/globals/index.ts b/globals/index.ts index c60d845..fc2d678 100644 --- a/globals/index.ts +++ b/globals/index.ts @@ -1,11 +1,7 @@ import { MapPlayer } from "../handles/player"; export * from "./order"; -export const Players: MapPlayer[] = []; - -for (let i = 0; i < bj_MAX_PLAYER_SLOTS; i++) { - const pl = MapPlayer.fromHandle(Player(i)); - if (pl) { - Players[i] = pl; - } -} +export const Players = Array.from( + { length: bj_MAX_PLAYER_SLOTS }, + (_, i) => MapPlayer.fromHandle(Player(i)!)! +); diff --git a/handles/camera.ts b/handles/camera.ts index f7e4a78..811d95b 100644 --- a/handles/camera.ts +++ b/handles/camera.ts @@ -4,11 +4,6 @@ import { Handle } from "./handle"; import { Point } from "./point"; export class Camera { - // eslint-disable-next-line no-useless-constructor - private constructor() { - // nothing - } - public static set visible(flag: boolean) { DisplayCineFilter(flag); } @@ -339,17 +334,8 @@ export class CameraSetup extends Handle { /** * Creates a new CameraSetup object. */ - public static create(): CameraSetup | undefined { - const handle = CreateCameraSetup(); - if (handle) { - const obj = this.getObject(handle) as CameraSetup; - - const values: Record = {}; - values.handle = handle; - - return Object.assign(obj, values); - } - return undefined; + public static create() { + return this.fromHandle(CreateCameraSetup()); } /** @@ -502,10 +488,4 @@ export class CameraSetup extends Handle { public setField(whichField: camerafield, value: number, duration: number) { CameraSetupSetField(this.handle, whichField, value, duration); } - - public static fromHandle( - handle: camerasetup | undefined - ): CameraSetup | undefined { - return handle ? this.getObject(handle) : undefined; - } } diff --git a/handles/destructable.ts b/handles/destructable.ts index bc1ab94..b901e97 100644 --- a/handles/destructable.ts +++ b/handles/destructable.ts @@ -54,15 +54,11 @@ export class Destructable extends Widget { objectId: number, x: number, y: number, - face?: number, - scale?: number, - variation?: number, + face = 0, + scale = 1, + variation = 0, skinId?: number - ): Destructable | undefined { - if (face === undefined) face = 0; - if (scale === undefined) scale = 1; - if (variation === undefined) variation = 0; - + ) { let handle: destructable | undefined; if (skinId !== undefined) { @@ -79,18 +75,10 @@ export class Destructable extends Widget { handle = CreateDestructable(objectId, x, y, face, scale, variation); } - if (handle) { - const obj = this.getObject(handle) as Destructable; - - const values: Record = {}; - values.handle = handle; - if (skinId !== undefined) { - values.skin = skinId; - } - - return Object.assign(obj, values); - } - return undefined; + return this.fromHandle( + handle, + skinId !== undefined ? { skin: skinId } : undefined + ); } /** @@ -134,18 +122,10 @@ export class Destructable extends Widget { handle = CreateDestructableZ(objectId, x, y, z, face, scale, variation); } - if (handle) { - const obj = this.getObject(handle) as Destructable; - - const values: Record = {}; - values.handle = handle; - if (skinId !== undefined) { - values.skin = skinId; - } - - return Object.assign(obj, values); - } - return undefined; + return this.fromHandle( + handle, + skinId !== undefined ? { skin: skinId } : undefined + ); } public set invulnerable(flag: boolean) { @@ -238,10 +218,4 @@ export class Destructable extends Widget { public static override fromEvent() { return this.fromHandle(GetTriggerDestructable()); } - - public static override fromHandle( - handle: destructable | undefined - ): Destructable | undefined { - return handle ? this.getObject(handle) : undefined; - } } diff --git a/handles/dialog.ts b/handles/dialog.ts index 1dba991..842ed4d 100644 --- a/handles/dialog.ts +++ b/handles/dialog.ts @@ -21,7 +21,7 @@ export class DialogButton extends Handle