protected override Shape GetProjectileSpawnPoint() { return((Shape)GameHelper.FindCanvasChild(launcherModel, "projectileSpawnPoint")); }
private Queue <ExplosionParticle> GetExplosionParticles(Type particleType, int particlesPerType) { Queue <ExplosionParticle> particles = new Queue <ExplosionParticle>(); if (particleType == typeof(Rectangle)) { for (int i = 0; i < particlesPerType; i++) { ExplosionParticle particle = new ExplosionParticle(game, (Rectangle)GameHelper.Clone(game.GameObjectModels["rectangleExplosionParticle"])); particles.Enqueue(particle); particle.Model.Visibility = System.Windows.Visibility.Hidden; game.PlayArea.Children.Add(particle.Model); } } if (particleType == typeof(Ellipse)) { for (int i = 0; i < particlesPerType; i++) { ExplosionParticle particle = new ExplosionParticle(game, (Ellipse)GameHelper.Clone(game.GameObjectModels["ellipseExplosionParticle"])); particles.Enqueue(particle); particle.Model.Visibility = System.Windows.Visibility.Hidden; game.PlayArea.Children.Add(particle.Model); } } return(particles); }
protected override void Initialize() { magazine = new Queue <WeaponProjectile>(); launcherModel = (Canvas)GameHelper.FindCanvasChild(Holder.Model as Canvas, "waterTurretProjectileLauncher"); }
public override void Update() { base.Update(); if (currentEnemyTarget == null || currentEnemyTarget != null && currentEnemyTarget.Destroyed || GameHelper.GetDistance(Position, currentEnemyTarget.Position) > range) { projectileLauncher.Fire = false; currentEnemyTarget = FindTarget(); } else { projectileLauncher.Target = currentEnemyTarget.Collider.Center; projectileLauncher.Fire = true; } projectileLauncher.Update(); }