2022-12-05 12:19:46 +01:00
|
|
|
import { randomRange } from "cc";
|
|
|
|
import { GameTimer } from "../../../Services/GameTimer";
|
|
|
|
import { randomPositiveOrNegative } from "../../../Services/Utils/MathUtils";
|
2022-12-05 15:13:42 +01:00
|
|
|
import { EnemyMovementType } from "./EnemyMovementType";
|
2022-12-05 12:19:46 +01:00
|
|
|
import { EnemySpawner } from "./EnemySpawner";
|
|
|
|
import { EnemyType } from "./EnemyType";
|
|
|
|
|
|
|
|
export class InvididualEnemySpawner {
|
|
|
|
private spawnTimer: GameTimer = new GameTimer(1);
|
2022-12-06 09:15:05 +01:00
|
|
|
|
|
|
|
public constructor(private enemySpawner: EnemySpawner, private enemyType: EnemyType) {}
|
|
|
|
|
2022-12-05 12:19:46 +01:00
|
|
|
public gameTick(deltaTime: number): void {
|
|
|
|
this.spawnTimer.gameTick(deltaTime);
|
|
|
|
if (this.spawnTimer.tryFinishPeriod()) {
|
|
|
|
const posX: number = randomRange(300, 600) * randomPositiveOrNegative();
|
|
|
|
const posY: number = randomRange(300, 600) * randomPositiveOrNegative();
|
2022-12-05 15:13:42 +01:00
|
|
|
this.enemySpawner.spawnNewEnemy(posX, posY, EnemyMovementType.Launch);
|
2022-12-05 12:19:46 +01:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|