private static void handleAchievement(IEnemyObject enemy, ICollision side) { if (side.returnCollisionSide().Equals(CollisionSide.Top) && enemy.canHurtMario()) { AchievementEventTracker.killingEnemyAcievement(); } }
private static void handleMarioMovement(Mario mario, IEnemyObject enemy, ICollision side) { Rectangle enemyRectangle = enemy.returnCollisionRectangle(); Rectangle marioRectangle = mario.returnCollisionRectangle(); Rectangle intersectionRectangle = Rectangle.Intersect(marioRectangle, enemyRectangle); int locationDiffToChange = UtilityClass.zero; if (side.returnCollisionSide().Equals(CollisionSide.Left)) { locationDiffToChange = intersectionRectangle.Width; int newMarioX = (int)mario.Location.X - locationDiffToChange; mario.Location = new Vector2(newMarioX, mario.Location.Y); } else if (side.returnCollisionSide().Equals(CollisionSide.Right)) { locationDiffToChange = intersectionRectangle.Width; int newMarioX = (int)mario.Location.X + locationDiffToChange; mario.Location = new Vector2(newMarioX, mario.Location.Y); } else if (side.returnCollisionSide().Equals(CollisionSide.Top)) { locationDiffToChange = intersectionRectangle.Height; int newMarioY = (int)mario.Location.Y - locationDiffToChange; mario.Location = new Vector2(mario.Location.X, newMarioY); } else if (side.returnCollisionSide().Equals(CollisionSide.Bottom)) { locationDiffToChange = intersectionRectangle.Height; int newMarioY = (int)mario.Location.Y + locationDiffToChange; mario.Location = new Vector2(mario.Location.X, newMarioY); } }
public static void handleCollision(IEnemyObject enemy, IBlock block, ICollision side) { if (!(side.returnCollisionSide().Equals(CollisionSide.None))) { handleEnemyMovement(enemy, block, side); } }
public static void handleCollision(Mario mario, IEnemyObject enemy, ICollision side, LevelStorage levelStorage) { ICommand command; if (!(side.returnCollisionSide().Equals(CollisionSide.None))) { handleMarioMovement(mario, enemy, side); } if (side.returnCollisionSide().Equals(CollisionSide.Top) && enemy.canHurtMario()) { command = new MarioHitsEnemyCollision(enemy, mario); command.Execute(); levelStorage.decreaseEnemyCount(); } else if (!(side.returnCollisionSide().Equals(CollisionSide.None)) && enemy.canHurtMario()) { command = new EnemyHitsMarioCollision(mario, enemy); command.Execute(); if (!mario.Star) { StatePuaseAlterationCall.Execute(); } } if (enemy.canHurtOtherEnemies() && !(side.returnCollisionSide().Equals(CollisionSide.None)) && !enemy.canHurtMario()) { handleMarioMovement(mario, enemy, side); handleEnemyMovement(enemy, side); } handleAchievement(enemy, side); }
public static void handleCollision(IEnemyObject enemy, IEnviromental enviromental, ICollision side) { if (!(side.returnCollisionSide().Equals(CollisionSide.None))) { handleEnemyMovement(enemy, enviromental, side); } }
public static void handleCollision(IEnemyObject enemy, IProjectile projectile, ICollision side) { if (!(side.returnCollisionSide().Equals(CollisionSide.None))) { handleMovement(enemy, projectile, side); } if (!(side.returnCollisionSide().Equals(CollisionSide.None))) { ICommand command = new ProjectileHitsEnemyCollision(enemy, projectile); command.Execute(); } }
private static void handleEnemyMovement(IEnemyObject enemy, ICollision side) { if (side.returnCollisionSide().Equals(CollisionSide.Left)) { ((Koopa)enemy).shellLeftHit(); } else if (side.returnCollisionSide().Equals(CollisionSide.Right)) { ((Koopa)enemy).shellRightHit(); } else if (side.returnCollisionSide().Equals(CollisionSide.Top)) { ((Koopa)enemy).shellLeftHit(); } }
public static void handleCollision(IEnemyObject firstEnemy, IEnemyObject secondEnemy, ICollision side) { if (!(side.returnCollisionSide().Equals(CollisionSide.None))) { handleEnemyMovement(firstEnemy, secondEnemy, side); } if (firstEnemy.canHurtOtherEnemies() && !(side.returnCollisionSide().Equals(CollisionSide.None))) { secondEnemy.TakeDamage(); } else if (secondEnemy.canHurtOtherEnemies() && !(side.returnCollisionSide().Equals(CollisionSide.None))) { firstEnemy.TakeDamage(); } }
public static void handleEnemyCollision(IEnemyObject enemy, LevelStorage storage) { CollisionDetector collisionDetector = new CollisionDetector(); ICollision side; Rectangle floorCheck; floorCheck = enemy.returnCollisionRectangle(); floorCheck.Y++; enemy.GetRigidBody().Floored = false; foreach (IBlock block in storage.blocksList) { if (block.checkForCollisionTestFlag()) { side = collisionDetector.getCollision(enemy.returnCollisionRectangle(), block.returnCollisionRectangle()); EnemyBlockCollisionHandler.handleCollision(enemy, block, side); } if (collisionDetector.getCollision(floorCheck, block.returnCollisionRectangle()).returnCollisionSide().Equals(CollisionSide.Top)) { enemy.GetRigidBody().Floored = true; } } foreach (IEnviromental enviromental in storage.enviromentalObjectsList) { side = collisionDetector.getCollision(enemy.returnCollisionRectangle(), enviromental.returnCollisionRectangle()); EnemyEnviromentalCollisionHandler.handleCollision(enemy, enviromental, side); } foreach (IEnemyObject secondEnemy in storage.enemiesList) { if (!enemy.Equals(secondEnemy)) { side = collisionDetector.getCollision(enemy.returnCollisionRectangle(), secondEnemy.returnCollisionRectangle()); EnemyEnemyCollisionHandler.handleCollision(enemy, secondEnemy, side); } } foreach (IProjectile projectile in storage.projectileList) { if (projectile.Active()) { side = collisionDetector.getCollision(enemy.returnCollisionRectangle(), projectile.returnCollisionRectangle()); EnemyProjectileCollisionHandler.handleCollision(enemy, projectile, side); } } }
private static void handleMovement(IEnemyObject enemy, IProjectile projectile, ICollision side) { Rectangle projectileRectangle = projectile.returnCollisionRectangle(); Rectangle enemyRectangle = enemy.returnCollisionRectangle(); Rectangle intersectionRectangle = Rectangle.Intersect(enemyRectangle, projectileRectangle); Vector2 enemyLocation = enemy.returnLocation(); int locationDiffToChange = UtilityClass.zero; if (side.returnCollisionSide().Equals(CollisionSide.Left)) { locationDiffToChange = intersectionRectangle.Width; int newEnemyX = (int)enemyLocation.X - locationDiffToChange; enemy.updateLocation(new Vector2((newEnemyX), enemyLocation.Y)); enemy.RightCollision(); } else if (side.returnCollisionSide().Equals(CollisionSide.Right)) { locationDiffToChange = intersectionRectangle.Width; int newEnemyX = (int)enemyLocation.X + locationDiffToChange; enemy.updateLocation(new Vector2((newEnemyX), enemyLocation.Y)); enemy.LeftCollision(); } else if (side.returnCollisionSide().Equals(CollisionSide.Top)) { locationDiffToChange = intersectionRectangle.Height; int newEnemyY = (int)enemyLocation.Y - locationDiffToChange; enemy.updateLocation(new Vector2(enemyLocation.X, newEnemyY)); enemy.BottomCollision(); } else if (side.returnCollisionSide().Equals(CollisionSide.Bottom)) { locationDiffToChange = intersectionRectangle.Height; int newEnemyY = (int)enemyLocation.Y + locationDiffToChange; enemy.updateLocation(new Vector2(enemyLocation.X, newEnemyY)); enemy.TopCollision(); } }
private void handleEnemyCollision(IEnemyObject enemy) { LevelCollisionHandlerHelper.handleEnemyCollision(enemy, this); }
public ProjectileHitsEnemyCollision(IEnemyObject hitEnemy, IProjectile proj) { enemy = hitEnemy; projectile = proj; }
public MarioHitsEnemyCollision(IEnemyObject hitEnemy, IPlayer mario) { enemy = hitEnemy; this.mario = mario; }
public EnemyHitsMarioCollision(Mario mario, IEnemyObject enemy) { this.mario = mario; this.enemy = enemy; }