Beispiel #1
0
        public override void Destroy()
        {
            Health--;
            if (Health <= 0)
            {
                IsDestroyed  = true;
                IsInvincible = true;

                Polyline leftSegment  = generateExplosionGeometry(0, 1);
                Polyline rightSegment = generateExplosionGeometry(1, 2);
                Polyline rearSegment  = generateExplosionGeometry(3, 4);

                Point leftC = new Point(Center.X, Center.Y), leftT = new Point(Center.X - .1, Center.Y - .1);
                Point rightC = new Point(Center.X, Center.Y), rightT = new Point(Center.X + .1, Center.Y + .1);
                Point rearC = new Point(Center.X, Center.Y), rearT = new Point(Center.X, Center.Y + .1);

                Effect left  = new ExplodeEffect(leftC, leftT, 100, 1, leftSegment);
                Effect right = new ExplodeEffect(rightC, rightT, 101, 1, rightSegment);
                Effect rear  = new ExplodeEffect(rearC, rearT, 102, 1, rearSegment);
                Effects.Add(left);
                Effects.Add(right);
                Effects.Add(rear);

                AddToDisplay(left);
                AddToDisplay(right);
                AddToDisplay(rear);

                Geometry.Visibility = Visibility.Hidden;
                DestroyedTimer      = 150;
            }
        }
 public override void Destroy()
 {
     IsDestroyed = true;
     for (int i = 0; i < Geometry.Points.Count - 2; i += 2)
     {
         Polyline segment    = generateExplosionGeometry(i, i + 1);
         Point    center     = new Point(Center.X, Center.Y);
         Point    trajectory = Geometry.Points[i];
         Effect   line       = new ExplodeEffect(center, trajectory, 50 + i, .01, segment);
         Effects.Add(line);
         AddToDisplay(line);
     }
     Geometry.Visibility = Visibility.Hidden;
     DestroyedTimer      = 200;
 }
Beispiel #3
0
        private void GenerateExplosion()
        {
            int num = random.Next(1, 4);

            switch (num)
            {
            case 1:
                ExplodeEffect explodeEfect = new ExplodeEffect(this.Location);
                ParticlesSystem.RegisterEfect(explodeEfect);
                break;

            case 2:
                ExplodeEffectAlt explodeEfectAlt = new ExplodeEffectAlt(this.Location);
                ParticlesSystem.RegisterEfect(explodeEfectAlt);
                break;

            case 3:
                RainEffect rainEfect = new RainEffect(this.Location);
                ParticlesSystem.RegisterEfect(rainEfect);
                break;
            }
        }
Beispiel #4
0
        // ------------------------------------------------------

        public override bool IsNull()
        {
            return(EnergyOutput == null && ExplodeEffect.IsNull());
        }
 private void Awake()
 {
     instance = this;
 }