Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | 16x 16x 16x 5x 5x 5x 3x 1x 1x 16x | import { Component } from "jga-patterns-ecs";
import { ComponentName } from "./enum";
export class SpreadComponent extends Component {
private readonly spreadedName: string;
private growth: number;
public constructor(spreadedName: string, growth = 5) {
super(ComponentName.SPREAD);
this.spreadedName = spreadedName;
this.growth = growth;
}
public getRemainingGrowth(): number {
return this.growth;
}
public getSpreadedName(): string {
return this.spreadedName;
}
public spread(): void {
this.growth -= 1;
}
}
// eslint-disable-next-line @typescript-eslint/no-explicit-any
export const isSpreadComponent = (value: any): value is SpreadComponent =>
typeof value.getRemainingGrowth === "function" &&
typeof value.getSpreadedName === "function" &&
typeof value.spread === "function";
|