Пример #1
0
 public LinkOnTile(Link link, ITile tile, Collision.Collision.Direction direction)
 {
     this.game      = link.game;
     this.link      = link;
     this.tile      = tile;
     this.direction = direction;
 }
Пример #2
0
 public LinkOnItem(Link link, IItem item, Collision.Collision.Direction direction)
 {
     this.link      = link;
     this.item      = item;
     this.direction = direction;
 }
Пример #3
0
 public LittleHelperOnEnemy(LittleHelper.LittleHelper littleHelper, IEnemy enemy, Collision.Collision.Direction direction)
 {
     this.littleHelper = littleHelper;
     this.enemy        = enemy;
     this.direction    = direction;
 }
Пример #4
0
 public LinkHurt(Link link, Collision.Collision.Direction direction)
 {
     this.link      = link;
     this.direction = direction;
 }
Пример #5
0
 public ProjectileOnLittleHelper(IProjectile projectile, LittleHelper.LittleHelper littleHelper, Collision.Collision.Direction direction)
 {
     this.littleHelper = littleHelper;
     this.projectile   = projectile;
     this.direction    = direction;
 }
Пример #6
0
 public ProjectileOnTile(IProjectile projectile, ITile tile, Collision.Collision.Direction direction)
 {
     this.projectile = projectile;
     this.tile       = tile;
     this.direction  = direction;
 }
Пример #7
0
 public EnemyOnTile(IEnemy enemy, ITile tile, Collision.Collision.Direction direction)
 {
     this.enemy     = enemy;
     this.tile      = tile;
     this.direction = direction;
 }
Пример #8
0
        public TransitionState(ZeldaGame game, Room oldroom, Room nextroom, Collision.Collision.Direction transitionDirection)
        {
            this.game     = game;
            this.pHUD     = new playerHUD(game, game.hudSpriteFactory);
            this.oldroom  = oldroom;
            this.nextroom = nextroom;
            timer         = TransitionStateStorage.timer;

            RoomTextureStorage roomTextures = new RoomTextureStorage(this.game);

            game.spriteSheets.TryGetValue("DungeonTileset", out itemSpriteSheet);

            windowWidth  = game.GraphicsDevice.Viewport.Width;
            windowHeight = game.GraphicsDevice.Viewport.Height;

            int windowHeightFloor = ((windowHeight / ParserUtility.SCALE_FACTOR - ParserUtility.WINDOW_X_ADJUST / ParserUtility.SCALE_FACTOR) / ParserUtility.GEN_ADJUST) + ParserUtility.GAME_FRAME_ADJUST;
            int windowWidthFloor  = (windowWidth / ParserUtility.SCALE_FACTOR - ParserUtility.WINDOW_Y_ADJUST / ParserUtility.SCALE_FACTOR) / ParserUtility.GEN_ADJUST;

            roomLimiter = TransitionStateStorage.roomLimiter;
            drawOffset  = TransitionStateStorage.drawOffset;

            this.transitionDirection = transitionDirection;

            Vector2 newRoomShift = new Vector2(0, 0);

            //SLIDE
            switch (transitionDirection)
            {
            case Collision.Collision.Direction.up:
                newRoomShift = new Vector2(0, -TransitionStateStorage.roomTransitionY * ParserUtility.SCALE_FACTOR);
                timer        = TransitionStateStorage.roomTransitionY * ParserUtility.SCALE_FACTOR / animationSpeed;
                break;

            case Collision.Collision.Direction.left:
                newRoomShift = new Vector2(-TransitionStateStorage.roomTransitionX * ParserUtility.SCALE_FACTOR, 0);
                timer        = TransitionStateStorage.roomTransitionX * ParserUtility.SCALE_FACTOR / animationSpeed;
                break;

            case Collision.Collision.Direction.right:
                newRoomShift = new Vector2(TransitionStateStorage.roomTransitionX * ParserUtility.SCALE_FACTOR, 0);
                timer        = TransitionStateStorage.roomTransitionX * ParserUtility.SCALE_FACTOR / animationSpeed;
                break;

            case Collision.Collision.Direction.down:
                newRoomShift = new Vector2(0, TransitionStateStorage.roomTransitionY * ParserUtility.SCALE_FACTOR);
                timer        = TransitionStateStorage.roomTransitionY * ParserUtility.SCALE_FACTOR / animationSpeed;
                break;
            }

            drawLocationInteriorOld = new Vector2(windowWidthFloor + drawOffset, windowHeightFloor + drawOffset);
            drawLocationExteriorOld = new Vector2(windowWidthFloor, windowHeightFloor);


            drawLocationInteriorNext = new Vector2(windowWidthFloor + drawOffset, windowHeightFloor + drawOffset) + newRoomShift;
            drawLocationExteriorNext = new Vector2(windowWidthFloor, windowHeightFloor) + newRoomShift;


            int oldRoomNumber = this.oldroom.getRoomNumber();

            roominteriorOld = roomTextures.getRoom(oldRoomNumber);

            int nextRoomNumber = nextroom.getRoomNumber();

            roominteriorNext = roomTextures.getRoom(nextRoomNumber);

            roomexteriorNext = new UniversalSprite(game, itemSpriteSheet, TransitionStateStorage.exteriorTemp, Color.White, SpriteEffects.None, new Vector2(1, 1), roomLimiter, 0.0f);

            if (this.oldroom.getRoomNumber() == TransitionStateStorage.specialRoomNumber)
            {
                roomexteriorOld         = new UniversalSprite(game, itemSpriteSheet, TransitionStateStorage.exteriorActual, Color.White, SpriteEffects.None, new Vector2(1, 1), roomLimiter, 0.0f);
                drawLocationInteriorOld = drawLocationInteriorOld - new Vector2(0, TransitionStateStorage.interiorPosAdjust);
                roominteriorOld         = new UniversalSprite(game, itemSpriteSheet, TransitionStateStorage.exteriorActual, Color.Transparent, SpriteEffects.None, new Vector2(1, 1), roomLimiter, 0.0f);
            }
            else
            {
                roomexteriorOld = new UniversalSprite(game, itemSpriteSheet, TransitionStateStorage.exteriorTemp, Color.White, SpriteEffects.None, new Vector2(1, 1), roomLimiter, 0.0f);
            }

            if (this.nextroom.getRoomNumber() == TransitionStateStorage.specialRoomNumber)
            {
                roomexteriorNext = new UniversalSprite(game, itemSpriteSheet, TransitionStateStorage.exteriorActual, Color.White, SpriteEffects.None, new Vector2(1, 1), roomLimiter, 0.0f);
                roominteriorNext = new UniversalSprite(game, itemSpriteSheet, TransitionStateStorage.exteriorActual, Color.Transparent, SpriteEffects.None, new Vector2(1, 1), roomLimiter, 0.0f);
            }
            else
            {
                roomexteriorNext = new UniversalSprite(game, itemSpriteSheet, TransitionStateStorage.exteriorTemp, Color.White, SpriteEffects.None, new Vector2(1, 1), roomLimiter, 0.0f);
            }

            drawLocationTopDoorOld    = new Vector2(windowWidthFloor + TransitionStateStorage.verticalDoorAdjust * ParserUtility.SCALE_FACTOR, windowHeightFloor);
            drawLocationLeftDoorOld   = new Vector2(windowWidthFloor, windowHeightFloor + TransitionStateStorage.smallAdjust * ParserUtility.SCALE_FACTOR);
            drawLocationRightDoorOld  = new Vector2(windowWidthFloor + TransitionStateStorage.horizontalDoorAdjust * ParserUtility.SCALE_FACTOR, windowHeightFloor + TransitionStateStorage.smallAdjust * ParserUtility.SCALE_FACTOR);
            drawLocationBottomDoorOld = new Vector2(windowWidthFloor + TransitionStateStorage.verticalDoorAdjust * ParserUtility.SCALE_FACTOR, windowHeightFloor + TransitionStateStorage.largeAdjust * ParserUtility.SCALE_FACTOR);

            drawLocationTopDoorNext    = new Vector2(windowWidthFloor + TransitionStateStorage.verticalDoorAdjust * ParserUtility.SCALE_FACTOR, windowHeightFloor) + newRoomShift;
            drawLocationLeftDoorNext   = new Vector2(windowWidthFloor, windowHeightFloor + TransitionStateStorage.smallAdjust * ParserUtility.SCALE_FACTOR) + newRoomShift;
            drawLocationRightDoorNext  = new Vector2(windowWidthFloor + TransitionStateStorage.horizontalDoorAdjust * ParserUtility.SCALE_FACTOR, windowHeightFloor + TransitionStateStorage.smallAdjust * ParserUtility.SCALE_FACTOR) + newRoomShift;
            drawLocationBottomDoorNext = new Vector2(windowWidthFloor + TransitionStateStorage.verticalDoorAdjust * ParserUtility.SCALE_FACTOR, windowHeightFloor + TransitionStateStorage.largeAdjust * ParserUtility.SCALE_FACTOR) + newRoomShift;

            foreach (IDoor door in oldroom.getDoors())
            {
                if (door.GetType() == typeof(TopDoor))
                {
                    topDoorOld = roomTextures.getDoor(door.getDoorValue());
                }
                else if (door.GetType() == typeof(LeftDoor))
                {
                    leftDoorOld = roomTextures.getDoor(door.getDoorValue());
                }
                else if (door.GetType() == typeof(RightDoor))
                {
                    rightDoorOld = roomTextures.getDoor(door.getDoorValue());
                }
                else if (door.GetType() == typeof(BottomDoor))
                {
                    bottomDoorOld = roomTextures.getDoor(door.getDoorValue());
                }
            }

            foreach (IDoor door in nextroom.getDoors())
            {
                if (door.GetType() == typeof(TopDoor))
                {
                    topDoorNext = roomTextures.getDoor(door.getDoorValue());
                }
                else if (door.GetType() == typeof(LeftDoor))
                {
                    leftDoorNext = roomTextures.getDoor(door.getDoorValue());
                }
                else if (door.GetType() == typeof(RightDoor))
                {
                    rightDoorNext = roomTextures.getDoor(door.getDoorValue());
                }
                else if (door.GetType() == typeof(BottomDoor))
                {
                    bottomDoorNext = roomTextures.getDoor(door.getDoorValue());
                }
            }

            foreach (ITile tile in oldroom.getTiles())
            {
                if (tile.GetType() == typeof(PushableTile))
                {
                    this.oldTile = (PushableTile)tile;
                    foundOldTile = true;
                }
            }

            foreach (ITile tile in nextroom.getTiles())
            {
                if (tile.GetType() == typeof(PushableTile))
                {
                    this.nextTile = (PushableTile)tile;
                    foundNextTile = true;
                }
            }

            if (foundOldTile)
            {
                oldTile.pushed = false;
                drawLocationOldPushableTile = oldTile.drawLocation;
                oldPushableTile             = new UniversalSprite(game, itemSpriteSheet, TransitionStateStorage.pushableTile, Color.White, SpriteEffects.None, new Vector2(1, 1), roomLimiter, 0.0f);
            }
            if (foundNextTile)
            {
                drawLocationNextPushableTile = nextTile.drawLocation + newRoomShift;
                nextTile.pushed  = false;
                nextPushableTile = new UniversalSprite(game, itemSpriteSheet, TransitionStateStorage.pushableTile, Color.White, SpriteEffects.None, new Vector2(1, 1), roomLimiter, 0.0f);
            }
        }
Пример #9
0
 public LittleHelperOnItem(LittleHelper.LittleHelper littleHelper, IItem item, Collision.Collision.Direction direction)
 {
     this.littleHelper = littleHelper;
     this.item         = item;
     this.direction    = direction;
 }
Пример #10
0
 public ProjectileOnEnemy(IProjectile projectile, IEnemy enemy, Collision.Collision.Direction direction)
 {
     this.enemy      = enemy;
     this.projectile = projectile;
     this.direction  = direction;
 }
Пример #11
0
 public UnlockDoor(ZeldaGame game, Collision.Collision.Direction direction)
 {
     this.game      = game;
     this.direction = direction;
 }
Пример #12
0
 public ProjectileOnLink(IProjectile projectile, Link link, Collision.Collision.Direction direction)
 {
     this.link       = link;
     this.projectile = projectile;
     this.direction  = direction;
 }
Пример #13
0
 public ItemOnTile(IItem item, ITile tile, Collision.Collision.Direction direction)
 {
     this.item      = item;
     this.tile      = tile;
     this.direction = direction;
 }
Пример #14
0
 public EnemyOnLink(IEnemy enemy, Link link, Collision.Collision.Direction direciton)
 {
     this.enemy     = enemy;
     this.link      = link;
     this.direction = direciton;
 }
Пример #15
0
 public LinkOnEnemy(Link link, IEnemy enemy, Collision.Collision.Direction direction)
 {
     this.link      = link;
     this.enemy     = enemy;
     this.direction = direction;
 }