// 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(); } } }
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(); }
// 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); } }
// 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(); } } }
// 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(); } } }