mirror of
https://github.com/MartinKral/Slash-The-Hordes
synced 2025-09-24 04:39:05 +00:00
Movement improvements
This commit is contained in:
@@ -6,7 +6,12 @@ import { EnemySpawner } from "./EnemySpawner";
|
||||
|
||||
export class CircularEnemySpawner {
|
||||
private spawnTimer: GameTimer = new GameTimer(10);
|
||||
public constructor(private enemySpawner: EnemySpawner, private enemiesToSpawn: number, private enemyType: EnemyType) {}
|
||||
public constructor(
|
||||
private enemySpawner: EnemySpawner,
|
||||
private enemiesToSpawn: number,
|
||||
private movementType: EnemyMovementType,
|
||||
private enemyType: EnemyType
|
||||
) {}
|
||||
public gameTick(deltaTime: number): void {
|
||||
this.spawnTimer.gameTick(deltaTime);
|
||||
|
||||
@@ -16,7 +21,7 @@ export class CircularEnemySpawner {
|
||||
for (let i = 0; i < this.enemiesToSpawn; i++) {
|
||||
const posX: number = roundToOneDecimal(Math.sin(angle * i)) * 500;
|
||||
const posY: number = roundToOneDecimal(Math.cos(angle * i)) * 500;
|
||||
this.enemySpawner.spawnNewEnemy(posX, posY, EnemyMovementType.Follow);
|
||||
this.enemySpawner.spawnNewEnemy(posX, posY, this.movementType);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -8,14 +8,14 @@ import { EnemySpawner } from "./EnemySpawner";
|
||||
export class IndividualEnemySpawner {
|
||||
private spawnTimer: GameTimer = new GameTimer(1);
|
||||
|
||||
public constructor(private enemySpawner: EnemySpawner, private enemyType: EnemyType) {}
|
||||
public constructor(private enemySpawner: EnemySpawner, private movementType: EnemyMovementType, private enemyType: EnemyType) {}
|
||||
|
||||
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();
|
||||
this.enemySpawner.spawnNewEnemy(posX, posY, EnemyMovementType.Follow);
|
||||
this.enemySpawner.spawnNewEnemy(posX, posY, this.movementType);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -10,6 +10,7 @@ import { EnemySpawner } from "./EnemySpawner";
|
||||
export class WaveEnemySpawner {
|
||||
private enemiesPerWave: number;
|
||||
private waveLifetime: number;
|
||||
private moveType: EnemyMovementType;
|
||||
private enemyType: EnemyType;
|
||||
|
||||
private spawnTimer: GameTimer;
|
||||
@@ -19,6 +20,7 @@ export class WaveEnemySpawner {
|
||||
this.spawnTimer = new GameTimer(settings.cooldown);
|
||||
this.enemiesPerWave = settings.enemiesPerWave;
|
||||
this.waveLifetime = settings.waveLifetime;
|
||||
this.moveType = <EnemyMovementType>settings.moveType;
|
||||
this.enemyType = <EnemyType>settings.enemyType;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user