Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
 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();
     }
 }