示例#1
0
        // when bomb hits missile
        public override void VisitMissile()
        {
            if (this.category == Category.Bomb)
            {
                // reset bomb location
                ProjectileTracker.ResetProjectile(this);

                // Explode
                if (this.pProxy.pSprite.name == GameSprite.Name.DaggerBomb)
                {
                    this.dropID = (new Random().Next(0, 10));
                    ProjectileTracker.DaggerHandle();
                }
                else if (this.pProxy.pSprite.name == GameSprite.Name.RollingBomb)
                {
                    this.dropID = (new Random().Next(0, 10));
                    ProjectileTracker.RollingHandle();
                }
                else if (this.pProxy.pSprite.name == GameSprite.Name.ZigZagBomb)
                {
                    this.dropID = (new Random().Next(0, 10));
                    ProjectileTracker.ZigZagHandle();
                }
            }
        }
示例#2
0
        public override void VisitShip()
        {
            Debug.Print(this.pProxy.pSprite.name + " hits ship!");

            // Explode
            // ReDrop immediately
            if (this.pProxy.pSprite.name == GameSprite.Name.DaggerBomb)
            {
                this.dropID = (new Random().Next(0, 10));

                ProjectileTracker.DaggerHandle();
            }
            else if (this.pProxy.pSprite.name == GameSprite.Name.RollingBomb)
            {
                this.dropID = (new Random().Next(0, 10));
                ProjectileTracker.RollingHandle();
            }
            else if (this.pProxy.pSprite.name == GameSprite.Name.ZigZagBomb)
            {
                this.dropID = (new Random().Next(0, 10));
                ProjectileTracker.ZigZagHandle();
            }

            // reset bomb location
            this.pProxy.x = -10f;
            this.pProxy.y = -10f;
            this.Update();
        }
示例#3
0
        // When projectile hits Wall
        public override void VisitWall()
        {
            if (this.category == Category.Missile)
            {
                // Explode
                // Reset location
                this.pProxy.x = -10f;
                this.pProxy.y = -10f;
                this.pProxy.Update();
                // Flip Missile Handle
                ProjectileTracker.MissileHandle();
            }
            else if (this.category == Category.Bomb)
            {
                // reset bomb location
                this.pProxy.x = -10f;
                this.pProxy.y = -10f;
                this.pProxy.Update();

                // Explode
                // ReDrop immediately
                if (this.pProxy.pSprite.name == GameSprite.Name.DaggerBomb)
                {
                    this.dropID = (new Random().Next(0, 10));
                    //Debug.Print("Bomb Drop ID: " + this.dropID.ToString());
                    ProjectileTracker.DaggerHandle();
                }
                else if (this.pProxy.pSprite.name == GameSprite.Name.RollingBomb)
                {
                    this.dropID = (new Random().Next(0, 10));
                    ProjectileTracker.RollingHandle();
                }
                else if (this.pProxy.pSprite.name == GameSprite.Name.ZigZagBomb)
                {
                    this.dropID = (new Random().Next(0, 10));
                    ProjectileTracker.ZigZagHandle();
                }
            }
            else if (this.category == Category.AlienGrid)
            {
                //Debug.Print("Alien Grid collides Wall");

                float oldDelta = this.pProxy.delta;

                this.CompositeSetDelta(oldDelta * -1f);
            }
        }
示例#4
0
        // When missile hits Shield
        public override void VisitShield()
        {
            if (this.category == Category.Missile)
            {
                // Explode
                // Reset location
                this.pProxy.x = 0f;
                this.pProxy.y = -10f;
                this.pProxy.Update();
                // Flip Missile Handle
                ProjectileTracker.MissileHandle();
            }
            else if (this.category == Category.Bomb)
            {
                // reset bomb location
                this.pProxy.x = -10f;
                this.pProxy.y = -10f;
                this.pProxy.Update();

                // Explode
                // ReDrop immediately
                if (this.pProxy.pSprite.name == GameSprite.Name.DaggerBomb)
                {
                    this.dropID = (new Random().Next(0, 10));
                    ProjectileTracker.DaggerHandle();
                }
                else if (this.pProxy.pSprite.name == GameSprite.Name.RollingBomb)
                {
                    this.dropID = (new Random().Next(0, 10));
                    ProjectileTracker.RollingHandle();
                }
                else if (this.pProxy.pSprite.name == GameSprite.Name.ZigZagBomb)
                {
                    this.dropID = (new Random().Next(0, 10));
                    ProjectileTracker.ZigZagHandle();
                }
            }
        }
示例#5
0
        // drop a bomb
        public void Drop(float x, float y, int level)
        {
            if (this.direction == -1f)
            {
                if (this.pSprite.name == GameSprite.Name.DaggerBomb && !ProjectileTracker.DaggerFlying)
                {
                    this.setDelta(7.0f + 0.2f * level);
                    // Final: Should be dropping from an alien pro
                    // PA6: get a random dropping point
                    this.x = x;
                    this.y = y;

                    ProjectileTracker.DaggerHandle();
                }
                else if (this.pSprite.name == GameSprite.Name.RollingBomb && !ProjectileTracker.RollingFlying)
                {
                    this.setDelta(5.0f + 0.2f * level);
                    // Final: Should be dropping from an alien pro
                    // PA6: get a random dropping point
                    this.x = x;
                    this.y = y;

                    ProjectileTracker.RollingHandle();
                }
                else if (this.pSprite.name == GameSprite.Name.ZigZagBomb && !ProjectileTracker.ZigzagFlying)
                {
                    this.setDelta(6.0f + 0.2f * level);
                    // Final: Should be dropping from an alien pro
                    // PA6: get a random dropping point
                    this.x = ProjectileTracker.pShip.pProxy.x;
                    this.y = y;

                    ProjectileTracker.ZigZagHandle();
                }
            }
        }