Esempio n. 1
0
 public static void handleCollision(IItemObjects item, IBlock block, ICollision side)
 {
     if (!(side.returnCollisionSide().Equals(CollisionSide.None)))
     {
         handleItemMovement(item, block, side);
     }
 }
        private static void handleMarioMovement(Mario mario, IItemObjects item, ICollision side)
        {
            Rectangle itemRectangle         = item.returnCollisionRectangle();
            Rectangle marioRectangle        = mario.returnCollisionRectangle();
            Rectangle intersectionRectangle = Rectangle.Intersect(marioRectangle, itemRectangle);
            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(IItemObjects item, IEnviromental enviro, ICollision side)
 {
     if (!(side.returnCollisionSide().Equals(CollisionSide.None)))
     {
         handleItemMovement(item, enviro, side);
     }
 }
Esempio n. 4
0
        public static void handleItemCollision(IItemObjects item, LevelStorage storage)
        {
            CollisionDetector collisionDetector = new CollisionDetector();
            ICollision        side;
            Rectangle         floorCheck;

            floorCheck = item.returnCollisionRectangle();
            floorCheck.Y++;
            item.RigidBody().Floored = false;
            foreach (IBlock block in storage.blocksList)
            {
                if (block.checkForCollisionTestFlag())
                {
                    side = collisionDetector.getCollision(item.returnCollisionRectangle(), block.returnCollisionRectangle());
                    ItemBlockCollisionHandler.handleCollision(item, block, side);
                }
                if (collisionDetector.getCollision(floorCheck, block.returnCollisionRectangle()).returnCollisionSide().Equals(CollisionSide.Top))
                {
                    item.RigidBody().Floored = true;
                }
            }
            foreach (IEnviromental enviromental in storage.enviromentalObjectsList)
            {
                side = collisionDetector.getCollision(item.returnCollisionRectangle(), enviromental.returnCollisionRectangle());
                ItemEnvriomentalCollisionHandler.handleCollision(item, enviromental, side);
            }
        }
Esempio n. 5
0
 public void Execute()
 {
     ((QuestionIceFlower)block).bounceBlock();
     block.Update();
     if (((QuestionIceFlower)block).dispenseItem())
     {
         IItemObjects iceFlower = ((QuestionIceFlower)block).spawnIceFlower();
         game.levelStore.itemList.Add(iceFlower);
     }
 }
 public void Execute()
 {
     ((QuestionSuperMushroomFireFlower)block).bounceBlock();
     block.Update();
     if (((QuestionSuperMushroomFireFlower)block).dispenseItem())
     {
         IItemObjects superMushroom = ((QuestionSuperMushroomFireFlower)block).spawnSuperMushroom();
         game.levelStore.itemList.Add(superMushroom);
     }
 }
 public void Execute()
 {
     ((QuestionStarBlock)block).bounceBlock();
     block.Update();
     if (((QuestionStarBlock)block).dispenseItem())
     {
         IItemObjects superStar = ((QuestionStarBlock)block).spawnStar();
         game.levelStore.itemList.Add(superStar);
     }
 }
Esempio n. 8
0
 public void Execute()
 {
     ((BrickBlockCoinDispenser)block).bounceBlock();
     if (((BrickBlockCoinDispenser)block).coinCounting())
     {
         IItemObjects coin = ((BrickBlockCoinDispenser)block).dispenseCoin();
         ((Mario)mario).AddCoin();
         game.levelStore.itemList.Add(coin);
     }
 }
Esempio n. 9
0
 public void Execute()
 {
     ((HiddenBlock)block).useHiddenBlock();
     ((HiddenBlock)block).unSpeaclize();
     if (((HiddenBlock)block).dispenseItem())
     {
         IItemObjects oneUp = ((HiddenBlock)block).spawnOneUp();
         game.levelStore.itemList.Add(oneUp);
     }
 }
 public void Execute()
 {
     ((QuestionCoinBlock)block).bounceBlock();
     block.Update();
     if (((QuestionCoinBlock)block).dispenseItem())
     {
         IItemObjects coin = ((QuestionCoinBlock)block).spawnCoin();
         game.levelStore.itemList.Add(coin);
         ((Mario)game.mario).AddCoin();
     }
 }
        public static void handleCollision(Mario mario, IItemObjects item, ICollision side)
        {
            ICommand command;

            if (!(side.returnCollisionSide().Equals(CollisionSide.None)))
            {
                handleMarioMovement(mario, item, side);
                command = chooseCorrectCommand(item, mario);
                command.Execute();
                mario.ScoreEvent(item.ScoreData());
                handleAchievements(item);
            }
        }
 private static void handleAchievements(IItemObjects item)
 {
     if (item.returnItemType().Equals(ItemType.FireFlower))
     {
         AchievementEventTracker.fireFlowerAcievement();
     }
     else if (item.returnItemType().Equals(ItemType.OneUpMushroom))
     {
         AchievementEventTracker.oneUpAcievement();
     }
     else if (item.returnItemType().Equals(ItemType.Star))
     {
         AchievementEventTracker.starAcievement();
     }
     else if (item.returnItemType().Equals(ItemType.SuperMushroom))
     {
         AchievementEventTracker.superMushAcievement();
     }
 }
        private static ICommand chooseCorrectCommand(IItemObjects item, IPlayer mario)
        {
            ICommand command;

            if (item.returnItemType().Equals(ItemType.Coin))
            {
                command = new MarioCoinCollisionCommand(mario, item);
            }
            else if (item.returnItemType().Equals(ItemType.FireFlower))
            {
                command = new MarioFireFlowerCollisionCommand(mario, item);
                if (!((Mario)mario).Fire)
                {
                    StatePuaseAlterationCall.Execute();
                }
            }
            else if (item.returnItemType().Equals(ItemType.IceFlower))
            {
                command = new MarioIceFlowerCollisionCommand(mario, item);
            }
            else if (item.returnItemType().Equals(ItemType.OneUpMushroom))
            {
                command = new MarioOneUpMushroomCollisionCommand(mario, item);
            }
            else if (item.returnItemType().Equals(ItemType.Star))
            {
                command = new MarioStarCollisionCommand(mario, item);
            }
            else
            {
                command = new MarioSuperMushroomCollisionCommand(mario, item);
                if (((Mario)mario).Small)
                {
                    StatePuaseAlterationCall.Execute();
                }
            }
            return(command);
        }
Esempio n. 14
0
        private static void handleItemMovement(IItemObjects item, IBlock block, ICollision side)
        {
            Rectangle blockRectangle        = block.returnCollisionRectangle();
            Rectangle itemRectangle         = item.returnCollisionRectangle();
            Rectangle intersectionRectangle = Rectangle.Intersect(itemRectangle, blockRectangle);
            Vector2   itemLocation          = item.returnLocation();
            int       locationDiffToChange  = UtilityClass.zero;

            if (side.returnCollisionSide().Equals(CollisionSide.Left))
            {
                locationDiffToChange = intersectionRectangle.Width;
                int newItemX = (int)itemLocation.X - locationDiffToChange;
                item.updateLocation(new Vector2((newItemX), itemLocation.Y));
                item.RigidBody().RightCollision();
            }
            else if (side.returnCollisionSide().Equals(CollisionSide.Right))
            {
                locationDiffToChange = intersectionRectangle.Width;
                int newItemX = (int)itemLocation.X + locationDiffToChange;
                item.updateLocation(new Vector2((newItemX), itemLocation.Y));
                item.RigidBody().LeftCollision();
            }
            else if (side.returnCollisionSide().Equals(CollisionSide.Top))
            {
                locationDiffToChange = intersectionRectangle.Height;
                int newItemY = (int)itemLocation.Y - locationDiffToChange;
                item.updateLocation(new Vector2(itemLocation.X, newItemY));
                item.RigidBody().BottomCollision();
            }
            else if (side.returnCollisionSide().Equals(CollisionSide.Bottom))
            {
                locationDiffToChange = intersectionRectangle.Height;
                int newItemY = (int)itemLocation.Y + locationDiffToChange;
                item.updateLocation(new Vector2(itemLocation.X, newItemY));
                item.RigidBody().TopCollision();
            }
        }
 public MarioCoinCollisionCommand(IPlayer mario, IItemObjects coin)
 {
     this.coin = coin;
     player    = mario;
 }
Esempio n. 16
0
 public MarioStarCollisionCommand(IPlayer mario, IItemObjects star)
 {
     this.mario = mario;
     this.star  = star;
 }
 public MarioIceFlowerCollisionCommand(IPlayer mario, IItemObjects iceFlower)
 {
     this.mario     = mario;
     this.iceFlower = iceFlower;
 }
Esempio n. 18
0
 private void handleItemCollision(IItemObjects item)
 {
     LevelCollisionHandlerHelper.handleItemCollision(item, this);
 }
 public MarioFireFlowerCollisionCommand(IPlayer mario, IItemObjects fireFlower)
 {
     this.mario      = mario;
     this.fireFlower = fireFlower;
 }
Esempio n. 20
0
 public MarioOneUpMushroomCollisionCommand(IPlayer mario, IItemObjects oneUpMushroom)
 {
     SoundEffectFactory.OneUp();
     player             = mario;
     this.oneUpMushroom = oneUpMushroom;
 }
Esempio n. 21
0
 public MarioSuperMushroomCollisionCommand(IPlayer mario, IItemObjects superMushroom)
 {
     this.mario         = mario;
     this.superMushroom = superMushroom;
 }