private void Fire() { switch (BagelType) { case BagelType.Shooting: entityAdder.AddEntity( new BagelEnemy(BagelType.Clone, sizeProvider, entityAdder, X, Y, 0, ShotSpeed, health: 1) ); break; case BagelType.Clone: case BagelType.InvincibleClone: if (Health > 1) { AddFourDirectionalBagels(BagelType); } break; } }
public EnemyGenerator(IEntityAdder entityAdder, ISizeProvider sizeProvider) { this.entityAdder = entityAdder; this.sizeProvider = sizeProvider; rand = new Random(); enemyWaveGenerators = new List <Action> { () => { //4-way bounce attack const int health = 3; var farX = sizeProvider.Width - 40; var farY = sizeProvider.Height - 40; entityAdder.AddEntity( new BagelEnemy(BagelType.Bouncing, this.sizeProvider, null, 40, 40, 5, 5, health)); entityAdder.AddEntity( new BagelEnemy(BagelType.Bouncing, this.sizeProvider, null, 40, farY, 5, -5, health)); entityAdder.AddEntity( new BagelEnemy(BagelType.Bouncing, this.sizeProvider, null, farX, 40, -5, 5, health)); entityAdder.AddEntity( new BagelEnemy(BagelType.Bouncing, this.sizeProvider, null, farX, farY, -5, -5, health)); }, () => { //clone attack const int health = 10; var farX = sizeProvider.Width - 40; entityAdder.AddEntity( new BagelEnemy(BagelType.Clone, this.sizeProvider, this.entityAdder, 40, 40, 0, 0, health)); entityAdder.AddEntity( new BagelEnemy(BagelType.Clone, this.sizeProvider, this.entityAdder, farX, 40, 0, 0, health)); }, () => { //healing attack const int health = 10; var farX = sizeProvider.Width - 40; entityAdder.AddEntity( new BagelEnemy(BagelType.Healing, this.sizeProvider, this.entityAdder, 40, 40, 0, 0, health)); entityAdder.AddEntity( new BagelEnemy(BagelType.InvincibleClone, this.sizeProvider, this.entityAdder, farX, 40, 0, 0, health)); }, () => { //inv clone attack const int health = 10; var farX = sizeProvider.Width - 40; entityAdder.AddEntity( new BagelEnemy(BagelType.InvincibleClone, this.sizeProvider, this.entityAdder, 40, 40, 0, 0, health)); entityAdder.AddEntity( new BagelEnemy(BagelType.InvincibleClone, this.sizeProvider, this.entityAdder, farX, 40, 0, 0, health)); }, () => { const int health = 1; for (var i = 0; i > -500; i -= 64) { entityAdder.AddEntity( new BagelEnemy(BagelType.Shooting, this.sizeProvider, this.entityAdder, i, i, 10, 3, health)); entityAdder.AddEntity( new BagelEnemy(BagelType.Shooting, this.sizeProvider, this.entityAdder, sizeProvider.Width - i, i, -10, 3, health)); } }, () => { const int health = 2; for (var i = 0; i > -500; i -= 64) { entityAdder.AddEntity( new BagelEnemy(BagelType.Basic, this.sizeProvider, this.entityAdder, i, i, 5, 5, health)); entityAdder.AddEntity( new BagelEnemy(BagelType.Basic, this.sizeProvider, this.entityAdder, sizeProvider.Width - i, i, -5, 5, health)); } }, () => { const int health = 2; for (var i = 40; i < 700; i += 64) { entityAdder.AddEntity( new BagelEnemy(BagelType.Basic, this.sizeProvider, this.entityAdder, i / 2, i - 1000, 0, 5, health)); entityAdder.AddEntity( new BagelEnemy(BagelType.Basic, this.sizeProvider, this.entityAdder, sizeProvider.Width - i / 2, i - 1000, 0, 5, health)); } } }; }