Esempio n. 1
0
        public MarioNightmareEnemyCollisionResponse(IMario m, INightmareEnemy n, List <IZombie> zombies, CollisionSide c, Game1 g)
        {
            timer--;  // = g.TargetElapsedTime.TotalSeconds;
            delayTimer = timer + 2;

            if (c == CollisionSide.Top)
            {
                if (!g.nightmareThemeIsStarted)
                {
                    MediaPlayer.Play(g.nightmareTheme);
                    g.nightmareThemeIsStarted = true;
                }
                m.Bounce();
                n.Die();
                if (timer == 0)
                {
                    locale.X = n.Location.X;
                    locale.Y = n.Location.Y + n.Texture.Height;
                    SoundEffectFactory.Instance.CreateNightmareZombieSpawnSound().PlaySound();
                    zombies.Add(ZombieFactory.Instance.CreateZombie(locale));
                    timer = 1;
                    n.Die();
                }
            }
            else
            {
                m.Die();
            }
        }
Esempio n. 2
0
        public NightmareEnemyItemCollisionResponse(INightmareEnemy n, IItems i, CollisionSide c, Game1 g)
        {
            Rectangle intersection = Rectangle.Intersect(n.Position, i.Position);

            switch (c)
            {
            case CollisionSide.Top:
                n.BounceY(-intersection.Height);
                if (!n.IsKilled)
                {
                    n.Land();
                }
                break;

            case CollisionSide.Left:

                n.TurnRight();
                n.BounceX(intersection.Width);

                break;

            case CollisionSide.Right:
                n.BounceX(-intersection.Width);
                n.TurnLeft();
                break;

            case CollisionSide.None:
                n.Fall();
                break;
            }
        }
 public ZombieNightmareEnemyCollisionResponse(IZombie z, INightmareEnemy n, List <IZombie> zombieList, CollisionSide c)
 {
     timer--;  // = g.TargetElapsedTime.TotalSeconds;
     delayTimer = timer + 2;
     locale     = n.Location;
     if (c != CollisionSide.None)
     {
         if (n is NightmareGoombaEnemy)
         {
             locale.Y = n.Location.Y + n.Texture.Height;
             n.Die();
             if (timer == 0)
             {
                 SoundEffectFactory.Instance.CreateNightmareZombieSpawnSound().PlaySound();
                 zombieList.Add(ZombieFactory.Instance.CreateZombie(locale));
                 timer = 1;
             }
         }
         else
         {
             if (timer == 0)
             {
                 n.Die();
                 SoundEffectFactory.Instance.CreateNightmareZombieSpawnSound().PlaySound();
                 zombieList.Add(ZombieFactory.Instance.CreateZombie(locale));
                 timer = 1;
             }
         }
     }
 }
Esempio n. 4
0
        public MarioNightmareEnemyCollisionDetector(Game1 g, INightmareEnemy n)
        {
            Rectangle mario = g.Character.Position;
            Rectangle nm    = n.Position;

            CollisionSide type = CollisionDetector.Detect(mario, nm);

            if (type != CollisionSide.None)
            {
                new MarioNighmareEnemyCollisionResponsecs(g.Character, n, type, g);
            }
        }
        public NightmareEnemyEnemyCollisionResponse(INightmareEnemy e1, INightmareEnemy e2, CollisionSide type)
        {
            Rectangle intersect = Rectangle.Intersect(e1.Position, e2.Position);

            if (type == CollisionSide.Left)
            {
                e1.BounceX(intersect.Width);
                e2.BounceX(-intersect.Width);
                e1.Turn();
                e2.Turn();
            }
            else if (type == CollisionSide.Right)
            {
                e1.BounceX(-intersect.Width);
                e2.BounceX(intersect.Width);
                e1.Turn();
                e2.Turn();
            }
        }
Esempio n. 6
0
        public NightmareEnemyNECollisionResponse(INightmareEnemy n1, INightmareEnemy n2, CollisionSide type, Game1 g)
        {
            Rectangle intersect = Rectangle.Intersect(n1.Position, n2.Position);

            if (type == CollisionSide.Left)
            {
                n1.BounceX(intersect.Width);
                n2.BounceX(-intersect.Width);
                n1.Turn();
                n2.Turn();
            }
            else if (type == CollisionSide.Right)
            {
                n1.BounceX(-intersect.Width);
                n2.BounceX(intersect.Width);
                n1.Turn();
                n2.Turn();
            }
        }
Esempio n. 7
0
        public static List <INightmareEnemy> LoadEnemy()
        {
            List <INightmareEnemy> nightmareEnemyList = new List <INightmareEnemy>();
            List <String[]>        loading            = LevelLoader.ReturnLevel();

            int x = 0, y = 0;

            foreach (String[] row in loading)
            {
                foreach (String column in row)
                {
                    INightmareEnemy enemy = null;

                    switch (column)
                    {
                    case "nGoomba":
                        currPosition = new Vector2(x * ItemFactory.Instance.brickBlock.Width, (y + 1) * ItemFactory.Instance.brickBlock.Height - EnemyFactory.Instance.goomba.Height);
                        enemy        = NightmareEnemyFactory.Instance.CreateNightmareGoomba(currPosition);
                        break;

                    case "nTurtle":
                        currPosition = new Vector2(x * ItemFactory.Instance.brickBlock.Width, (y + 1) * ItemFactory.Instance.brickBlock.Height - NightmareEnemyFactory.Instance.nightmareKoopa.Height);
                        Console.WriteLine((y + 1) * ItemFactory.Instance.brickBlock.Height - NightmareEnemyFactory.Instance.nightmareKoopa.Height);
                        enemy = NightmareEnemyFactory.Instance.CreateNightmareTurtle(currPosition);

                        break;

                    default:
                        break;
                    }
                    if (enemy != null)
                    {
                        nightmareEnemyList.Add(enemy);
                    }

                    x++;
                }
                x = 0;
                y++;
            }
            return(nightmareEnemyList);
        }
Esempio n. 8
0
        private void MarioNightmareEnemyCollision()
        {
            for (int i = 0; i < nightmareEnemyList.Count; i++)
            {
                INightmareEnemy e = nightmareEnemyList[i];

                if (!e.IsKilled)
                {
                    Rectangle mario = g.Character.Position;
                    Rectangle enemy = e.Position;

                    CollisionSide type = CollisionDetector.Detect(mario, enemy);

                    if (type != CollisionSide.None)
                    {
                        new MarioNightmareEnemyCollisionResponse(g.Character, e, nightmareZombie, type, g);
                    }
                }
            }
        }
Esempio n. 9
0
        private void ZombieEnemyCollisionDetect()
        {
            for (int i = 0; i < zombies.Count; i++)
            {
                IZombie   zombie = zombies[i];
                Rectangle z      = zombie.Position;

                for (int j = 0; j < nightmareEnemyList.Count; j++)
                {
                    INightmareEnemy ne = nightmareEnemyList[j];
                    Rectangle       n  = ne.Position;

                    CollisionSide cs = CollisionDetector.Detect(z, n);

                    if (cs != CollisionSide.None)
                    {
                        new ZombieNightmareEnemyCollisionResponse(zombie, ne, zombies, cs);
                    }
                }
            }
        }
Esempio n. 10
0
 private void EnemyEnemyCollision()
 {
     for (int i = 0; i < enemies.Count - 1; i++)
     {
         INightmareEnemy e1 = enemies[i];
         if (!e1.IsKilled)
         {
             Rectangle enemy1 = e1.Position;
             for (int j = i; j < enemies.Count; j++)
             {
                 INightmareEnemy e2 = enemies[j];
                 if (!e2.IsKilled)
                 {
                     Rectangle     enemy2 = e2.Position;
                     CollisionSide type   = CollisionDetector.Detect(enemy1, enemy2);
                     if (type != CollisionSide.None)
                     {
                         new NightmareEnemyEnemyCollisionResponse(e1, e2, type);
                     }
                 }
             }
         }
     }
 }