private static void SpawnWalls(SpriteBatch spriteBatch, IRoom room, string spawnType, int i)
        {
            IBlock blockType;
            Point  position;

            if (i == 0)
            {
                position = new Point(RoomConstants.TopDoorX, RoomConstants.TopDoorY);
            }
            else if (i == 1)
            {
                position = new Point(RoomConstants.RightDoorX, RoomConstants.RightDoorY);
            }
            else if (i == 2)
            {
                position = new Point(RoomConstants.BottomDoorX, RoomConstants.BottomDoorY);
            }
            else if (i == 3)
            {
                position = new Point(RoomConstants.LeftDoorX, RoomConstants.LeftDoorY);
            }
            else
            {
                position = Point.Zero;
            }

            switch (spawnType)
            {
            case RoomConstants.WallPiece:
                blockType = new Walls(spriteBatch, position);
                room.AllObjects.Spawn(blockType);
                break;

            case RoomConstants.OpenDoor:
                blockType = new OpenedDoor(spriteBatch, position, room);
                room.AddDoor((IDoor)blockType);
                room.AllObjects.Spawn(blockType);
                break;

            case RoomConstants.LockedDoor:
                blockType = new LockedDoor(spriteBatch, position, room);
                room.AddDoor((IDoor)blockType);
                room.AllObjects.Spawn(blockType);
                break;

            case RoomConstants.ShutDoor:
                blockType = new ShutDoor(spriteBatch, position, room);
                room.AddDoor((IDoor)blockType);
                room.AllObjects.Spawn(blockType);
                break;

            case RoomConstants.BombableWall:
                blockType = new BombableOpening(spriteBatch, position, room);
                room.AddDoor((IDoor)blockType);
                room.AllObjects.Spawn(blockType);
                break;

            default:
                break;
            }
        }
示例#2
0
 void ResetID()
 {
     OpenedDoor?.Invoke();
 }