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