mirror of
https://github.com/MartinKral/Slash-The-Hordes
synced 2025-09-24 04:39:05 +00:00
Spawner settings
This commit is contained in:
@@ -1,14 +1,21 @@
|
||||
import { GameTimer } from "../../../../Services/GameTimer";
|
||||
import { roundToOneDecimal } from "../../../../Services/Utils/MathUtils";
|
||||
import { CircularEnemySpawnerSettings } from "../../../Data/GameSettings";
|
||||
|
||||
import { DelayedEnemySpawner } from "./DelayedEnemySpawner";
|
||||
import { EnemySpawner } from "./EnemySpawner";
|
||||
|
||||
export class CircularEnemySpawner extends DelayedEnemySpawner {
|
||||
private spawnTimer: GameTimer = new GameTimer(10);
|
||||
private spawnTimer: GameTimer;
|
||||
private enemyId: string;
|
||||
private enemiesToSpawn: number;
|
||||
|
||||
public constructor(private enemySpawner: EnemySpawner, private enemiesToSpawn: number, private enemyId: string, startDelay = 0, stopDelay = 100) {
|
||||
super(startDelay, stopDelay);
|
||||
public constructor(private enemySpawner: EnemySpawner, settings: CircularEnemySpawnerSettings) {
|
||||
super(settings.common.startDelay, settings.common.stopDelay);
|
||||
|
||||
this.spawnTimer = new GameTimer(settings.common.cooldown);
|
||||
this.enemyId = settings.common.enemyId;
|
||||
this.enemiesToSpawn = settings.enemiesToSpawn;
|
||||
}
|
||||
|
||||
public delayedGameTick(deltaTime: number): void {
|
||||
|
@@ -1,6 +1,10 @@
|
||||
export abstract class DelayedEnemySpawner {
|
||||
private currentTime = 0;
|
||||
public constructor(private startDelay: number, private stopDelay: number) {}
|
||||
public constructor(private startDelay: number, private stopDelay: number) {
|
||||
if (stopDelay === -1) {
|
||||
this.stopDelay = Number.MAX_SAFE_INTEGER;
|
||||
}
|
||||
}
|
||||
|
||||
public gameTick(deltaTime: number): void {
|
||||
this.currentTime += deltaTime;
|
||||
|
@@ -1,14 +1,19 @@
|
||||
import { randomRange } from "cc";
|
||||
import { GameTimer } from "../../../../Services/GameTimer";
|
||||
import { randomPositiveOrNegative } from "../../../../Services/Utils/MathUtils";
|
||||
import { IndividualEnemySpawnerSettings } from "../../../Data/GameSettings";
|
||||
import { DelayedEnemySpawner } from "./DelayedEnemySpawner";
|
||||
import { EnemySpawner } from "./EnemySpawner";
|
||||
|
||||
export class IndividualEnemySpawner extends DelayedEnemySpawner {
|
||||
private spawnTimer: GameTimer = new GameTimer(1);
|
||||
private spawnTimer: GameTimer;
|
||||
private enemyId: string;
|
||||
|
||||
public constructor(private enemySpawner: EnemySpawner, private enemyId: string, startDelay = 0, stopDelay = 100) {
|
||||
super(startDelay, stopDelay);
|
||||
public constructor(private enemySpawner: EnemySpawner, settings: IndividualEnemySpawnerSettings) {
|
||||
super(settings.common.startDelay, settings.common.stopDelay);
|
||||
|
||||
this.spawnTimer = new GameTimer(settings.common.cooldown);
|
||||
this.enemyId = settings.common.enemyId;
|
||||
}
|
||||
|
||||
public delayedGameTick(deltaTime: number): void {
|
||||
|
@@ -15,12 +15,12 @@ export class WaveEnemySpawner extends DelayedEnemySpawner {
|
||||
private waves: EnemyWave[] = [];
|
||||
|
||||
public constructor(private enemySpawner: EnemySpawner, settings: WaveEnemySpawnerSettings) {
|
||||
super(settings.startDelay, settings.stopDelay);
|
||||
super(settings.common.startDelay, settings.common.stopDelay);
|
||||
|
||||
this.spawnTimer = new GameTimer(settings.cooldown);
|
||||
this.enemiesPerWave = settings.enemiesPerWave;
|
||||
this.spawnTimer = new GameTimer(settings.common.cooldown);
|
||||
this.enemiesPerWave = settings.enemiesToSpawn;
|
||||
this.waveLifetime = settings.waveLifetime;
|
||||
this.enemyId = settings.enemyId;
|
||||
this.enemyId = settings.common.enemyId;
|
||||
}
|
||||
|
||||
public delayedGameTick(deltaTime: number): void {
|
||||
|
Reference in New Issue
Block a user