public void HandleCollision() { HandleBooAI(); HandleScore(); if (!enemy.IsFlipped) { collision.ResolveOverlap(enemy, side); } if (side is LeftSideCollision) { enemy.ShiftDirection(); if (enemy is GreenKoopa && ((GreenKoopa)enemy).IsWeaponized) { SoundEffectManager.EnemyFlippedEffect(); enemy.Physics.Velocity = new Vector2(-enemy.Physics.Velocity.X, enemy.Physics.Velocity.Y); } } else if (side is RightSideCollision) { enemy.ShiftDirection(); if (enemy is GreenKoopa && ((GreenKoopa)enemy).IsWeaponized) { SoundEffectManager.EnemyFlippedEffect(); enemy.Physics.Velocity = new Vector2(-enemy.Physics.Velocity.X, enemy.Physics.Velocity.Y); } } else if (side is TopSideCollision && ((Block)block).IsBumped) { enemy.CanDealDamage = false; enemy.Flipped(); } }
private void MarioEnemyTopSide() { collision.ResolveOverlap(mario, side); if (enemy is GreenKoopa) { SoundEffectManager.EnemyFlippedEffect(); } enemy.CanDealDamage = false; enemy.Hit(); mario.Physics.Velocity = new Vector2(mario.Physics.Velocity.X, CollisionHandlerConstants.MARIOBUMPSPEEDY); mario.Physics.Acceleration = new Vector2(mario.Physics.Acceleration.X, CollisionHandlerConstants.MARIOBUMPACCELERATIONY); }
private void WeaponizedKoopa() { collision.ResolveOverlap(mario, side); SoundEffectManager.EnemyFlippedEffect(); if (((GreenKoopa)enemy).state is GreenKoopaEmergingFromShellState) { ((GreenKoopa)enemy).state = new GreenKoopaHidingInShellState((GreenKoopa)enemy); } if (side is LeftSideCollision && enemy.Physics.Velocity.X == 0) { ((GreenKoopa)enemy).IsWeaponized = true; enemy.Physics.Velocity = new Vector2(CollisionHandlerConstants.WEAPONIZEDKOOPATRAVELSPEED, enemy.Physics.Velocity.Y); } else if (side is RightSideCollision && enemy.Physics.Velocity.X == 0) { ((GreenKoopa)enemy).IsWeaponized = true; enemy.Physics.Velocity = new Vector2(-CollisionHandlerConstants.WEAPONIZEDKOOPATRAVELSPEED, enemy.Physics.Velocity.Y); } else if (side is TopSideCollision) { ((GreenKoopa)enemy).IsWeaponized = false; enemy.Physics.ResetPhysics(); mario.Physics.Velocity = new Vector2(mario.Physics.Velocity.X, CollisionHandlerConstants.MARIOBUMPSPEEDY); mario.Physics.Acceleration = new Vector2(mario.Physics.Acceleration.X, CollisionHandlerConstants.MARIOBUMPACCELERATIONY); } else if (enemy.Physics.Velocity.X > 0) { enemy.Physics.Velocity = new Vector2(-CollisionHandlerConstants.WEAPONIZEDKOOPATRAVELSPEED, enemy.Physics.Velocity.Y); if (mario.IsBigMario()) { SoundEffectManager.ShrinkingOrPipeEffect(); } mario.Damage(); } else if (enemy.Physics.Velocity.X < 0) { enemy.Physics.Velocity = new Vector2(CollisionHandlerConstants.WEAPONIZEDKOOPATRAVELSPEED, enemy.Physics.Velocity.Y); if (mario.IsBigMario()) { SoundEffectManager.ShrinkingOrPipeEffect(); } mario.Damage(); } }
public void HandleCollision() { collision.ResolveOverlap(enemy, side); if (side is LeftSideCollision) { enemy.ShiftDirection(); if (enemy is GreenKoopa && ((GreenKoopa)enemy).IsWeaponized) { SoundEffectManager.EnemyFlippedEffect(); enemy.Physics.Velocity = new Vector2(-enemy.Physics.Velocity.X, enemy.Physics.Velocity.Y); } } else if (side is RightSideCollision) { enemy.ShiftDirection(); if (enemy is GreenKoopa && ((GreenKoopa)enemy).IsWeaponized) { SoundEffectManager.EnemyFlippedEffect(); enemy.Physics.Velocity = new Vector2(-enemy.Physics.Velocity.X, enemy.Physics.Velocity.Y); } } }