Example #1
0
        public Level(ContentManager serviceProvider, TileMap tileMap, RunnerCamera camera)
        {
            this.camera = camera;
            camera.LoadContent(serviceProvider);

            this.tileMap = tileMap;

            content = serviceProvider;

            menuFont = content.Load <SpriteFont>("MenuAssets/gamefont");
            block    = content.Load <Texture2D>("square");

            foreach (CollisionLayer layer in tileMap.colLayers)
            {
                LoadTiles(layer);

                foreach (var cam in layer.camReferences)
                {
                    camera.Waypoints.Enqueue(TileInformation.GetPosition(cam.X, cam.Y));
                }
            }

            CollisionRetrieve.tileMap = tileMap;
            CollisionRetrieve.tile    = tiles;

            player = new Player(serviceProvider, start, camera, tileMap.LevelName);

            HighTime.LoadData(tileMap.LevelName);
        }
    public void GenerateAllPoints()
    {
        List <TileInformation> tiles = new List <TileInformation>();

        for (int x = 0; x < range.x; x++)
        {
            for (int z = 0; z < range.y; z++)
            {
                TileInformation newTile = new TileInformation();
                RaycastHit      hit     = new RaycastHit();
                float           minX    = (-(range.x / 2) + x) * tileSize + transform.position.x;
                float           minZ    = (-(range.y / 2) + z) * tileSize + transform.position.z;

                newTile.minPos = new Vector3(minX, transform.position.y, minZ);
                if (Physics.Raycast(newTile.minPos, Vector3.down, out hit, Mathf.Infinity))
                {
                    newTile.minPos.y = hit.point.y;
                }

                newTile.maxpos = new Vector3(minX + tileSize, transform.position.y, minZ + tileSize);
                if (Physics.Raycast(newTile.maxpos, Vector3.down, out hit, Mathf.Infinity))
                {
                    newTile.maxpos.y = hit.point.y;
                }

                tiles.Add(newTile);
            }
        }
        nodes = tiles.ToArray();
    }
Example #3
0
    // Use this for initialization
    void Start()
    {
        tiles = new TileInformation[width, height];
        for (int i = 0; i < width; i++)
        {
            for (int j = 0; j < height; j++)
            {
                tiles[i, j] = new TileInformation(i, j);
            }
        }

        int numRooms = Mathf.CeilToInt(Random.value * (averageRoomCount)) + 2;

        rooms = new RoomInformation[numRooms]; //(w,h),(x,y)

        for (int i = 0; i < numRooms; i++)
        {
            Vector2 size    = new Vector2(Mathf.CeilToInt(RandomNormal(averageRoomSize)), Mathf.CeilToInt(RandomNormal(averageRoomSize)));
            Vector2 postion = new Vector2((Mathf.CeilToInt(Random.value * (width - size.x))) % width, (Mathf.CeilToInt(Random.value * (height - size.y))) % height);
            rooms[i] = new RoomInformation(postion, size);
        }

        GenerateRooms(rooms);
        AttachIsolatedRooms(rooms);

        for (int i = 0; i < numRooms; i++)
        {
            Debug.Log("Room " + i + ": pos(" + rooms[i].getPosition().x + ", " + rooms[i].getPosition().y
                      + ") size(" + rooms[i].getSize().x + ", " + rooms[i].getSize().y
                      + ") " + rooms[i].getAdjacencyState());
        }
    }
Example #4
0
    public void SetDoors(List <Object> placedTiles)
    {
        GeneralDoors = new List <DoorBehavior>();
        NorthDoors   = new List <DoorBehavior>();
        SouthDoors   = new List <DoorBehavior>();
        EastDoors    = new List <DoorBehavior>();
        WestDoors    = new List <DoorBehavior>();

        foreach (GameObject g in placedTiles)
        {
            TileInformation tmp = g.GetComponent <TileInformation>();

            foreach (DoorBehavior d in tmp.NorthDoors)
            {
                addDoor(d, NorthDoors);
            }
            foreach (DoorBehavior d in tmp.SouthDoors)
            {
                addDoor(d, SouthDoors);
            }
            foreach (DoorBehavior d in tmp.EastDoors)
            {
                addDoor(d, EastDoors);
            }
            foreach (DoorBehavior d in tmp.WestDoors)
            {
                addDoor(d, WestDoors);
            }
            foreach (DoorBehavior d in tmp.OtherOpenableDoors)
            {
                addDoor(d, GeneralDoors);
            }
        }
    }
Example #5
0
        protected override void Initialize()
        {
            base.Initialize();

            TileInformation.TileDiemensions(16, 16);

            screenManager.AddScreen(new BackgroundScreen(), null);
            screenManager.AddScreen(new MainMenuScreen(), null);
        }
Example #6
0
        private TileCardWPF GetGraphics(TileInformation thisTile)
        {
            TileCardWPF thisGraphics = new TileCardWPF();
            var         thisBind     = GetCommandBinding(nameof(TileBoardObservable.ObjectSingleClickCommand));

            thisGraphics.SetBinding(TileCardWPF.CommandProperty, thisBind);
            thisGraphics.CommandParameter = thisTile;
            thisGraphics.SendSize(TileCP.TagUsed, thisTile);
            return(thisGraphics); //well see what else we need.
        }
Example #7
0
        protected override void Initialize()
        {
            base.Initialize();

            TileInformation.TileDiemensions(32, 32);

            screenManager.AddScreen(new BackgroundScreen(), null);
            screenManager.AddScreen(new MainMenuScreen(), null);
            ExitOnEscapeKeyPress = false;
        }
 void Start()
 {
     PopupManager.SetUpPopupManager();
     TileInformation.SetUpTileInformation();
     TileManager.SetUpTiles();
     CardInformation.SetUpCardInformation();
     CardManager.SetUpCardManager();
     PlayerManager.PlacePlayersOnBoard();
     PlayerInformationManager.SetUpPlayerInformationManager(PlayerManager.GetPlayers().Length);
     GameLoop.SetUpGameLoop();
 }
Example #9
0
        public TileInformation GetTile(int deck)
        {
            if (SavedTiles !.Count == 0)
            {
                throw new BasicBlankException("No saved tiles");
            }
            var             tempTile = SavedTiles[deck - 1];
            TileInformation output   = new TileInformation();

            output.Deck   = deck;
            output.Letter = tempTile;
            return(output);
        }
Example #10
0
        public static void SetUpTiles()
        {
            _gameTiles[0]  = new GoTile();
            _gameTiles[1]  = new RealEstateTile();
            _gameTiles[2]  = new CardDeckTile();
            _gameTiles[3]  = new RealEstateTile();
            _gameTiles[4]  = new TaxTile();
            _gameTiles[5]  = new RailroadTile();
            _gameTiles[6]  = new RealEstateTile();
            _gameTiles[7]  = new CardDeckTile();
            _gameTiles[8]  = new RealEstateTile();
            _gameTiles[9]  = new RealEstateTile();
            _gameTiles[10] = new InJailTile();
            _gameTiles[11] = new RealEstateTile();
            _gameTiles[12] = new UtilityTile();
            _gameTiles[13] = new RealEstateTile();
            _gameTiles[14] = new RealEstateTile();
            _gameTiles[15] = new RailroadTile();
            _gameTiles[16] = new RealEstateTile();
            _gameTiles[17] = new CardDeckTile();
            _gameTiles[18] = new RealEstateTile();
            _gameTiles[19] = new RealEstateTile();
            _gameTiles[20] = new FreeParkingTile();
            _gameTiles[21] = new RealEstateTile();
            _gameTiles[22] = new CardDeckTile();
            _gameTiles[23] = new RealEstateTile();
            _gameTiles[24] = new RealEstateTile();
            _gameTiles[25] = new RailroadTile();
            _gameTiles[26] = new RealEstateTile();
            _gameTiles[27] = new RealEstateTile();
            _gameTiles[28] = new UtilityTile();
            _gameTiles[29] = new RealEstateTile();
            _gameTiles[30] = new GoToJailTile();
            _gameTiles[31] = new RealEstateTile();
            _gameTiles[32] = new RealEstateTile();
            _gameTiles[33] = new CardDeckTile();
            _gameTiles[34] = new RealEstateTile();
            _gameTiles[35] = new RailroadTile();
            _gameTiles[36] = new CardDeckTile();
            _gameTiles[37] = new RealEstateTile();
            _gameTiles[38] = new TaxTile();
            _gameTiles[39] = new RealEstateTile();

            for (int n = 0; n < 40; n++)
            {
                var tileInformationHolder = TileInformation.GetTileInformation(n);
                _gameTiles[n].SetUpTile(tileInformationHolder.Item1, tileInformationHolder.Item2, tileInformationHolder.Item3, tileInformationHolder.Item4, tileInformationHolder.Item5);
            }
        }
 private bool isTileCompatible(int x, int y, TileInformation tile)
 {
     if (x > 0)
     {
         if (Map[y][x - 1] != null)
         {
             if (Map[y][x - 1].East != tile.West)
             {
                 return(false);
             }
         }
     }
     if (x < MapDemensionsX - 1)
     {
         if (Map[y][x + 1] != null)
         {
             if (Map[y][x + 1].West != tile.East)
             {
                 return(false);
             }
         }
     }
     if (y > 0)
     {
         if (Map[y - 1][x] != null)
         {
             if (Map[y - 1][x].South != tile.North)
             {
                 return(false);
             }
         }
     }
     if (y < MapDemensionsY - 1)
     {
         if (Map[y + 1][x] != null)
         {
             if (Map[y + 1][x].North != tile.South)
             {
                 return(false);
             }
         }
     }
     return(true);
 }
 void Start()
 {
     tInfo = GetComponent<TileInformation>();
 }
Example #13
0
        protected override void Update(GameTime gameTime)
        {
            if (Keyboard.GetState().IsKeyDown(Keys.Escape))
                this.Exit();

            // Set up side bar
            if (sideBar.PageIndex == 0)
            {
                // General functions
            }
            else if (sideBar.PageIndex == 1)
            {
                // Select tiles
                if (sideBar.SelectedButton != null)
                    selectedRectangle = sideBar.SelectedButton.TileInfo;
            }
            else if (sideBar.PageIndex == 2)
            {
                // Select objects
            }

            if (Mouse.GetState().LeftButton == ButtonState.Pressed)
            {
                if (!mleftPressed && Mouse.GetState().X > (sideBar.Hidden ? 32 : SideBar.WIDTH))
                {
                    if (Keyboard.GetState().IsKeyUp(Keys.LeftShift)) // Make sure not changing bounds
                    {
                        if (sideBar.PageIndex == 1)
                        {
                            // Create new tile object
                            TileInformation i = new TileInformation();
                            i.srcRectangle = selectedRectangle;
                            i.X = (int)((Mouse.GetState().X + camera.X - cameraCenter.X) / totalScale + cameraCenter.X);
                            i.Y = (int)((Mouse.GetState().Y + camera.Y - cameraCenter.Y) / totalScale + cameraCenter.Y);
                            i.Scale = selTexScale / totalScale;
                            i.Rotation = selTexRotation;
                            i.Layer = layer;
                            i.Effect = selTexEffect;

                            // Add tile to list sorted by layer
                            if (tileInfo.Count > 0)
                            {
                                int id;
                                for (id = 0; id < tileInfo.Count; id++)
                                {
                                    if (tileInfo[id].Layer > i.Layer)
                                        break;
                                }
                                if (id < tileInfo.Count)
                                    tileInfo.Insert(id, i);
                                else
                                    tileInfo.Add(i);
                            }
                            else
                                tileInfo.Add(i);
                        }
                    }
                    else
                    {
                        // Change level size when holding shift
                        if (!changingBounds)
                        {
                            changingBounds = true;
                            levelSize.X = (int)((Mouse.GetState().X + camera.X - cameraCenter.X) / totalScale + cameraCenter.X);
                            levelSize.Y = (int)((Mouse.GetState().Y + camera.Y - cameraCenter.Y) / totalScale + cameraCenter.Y);
                        }
                        else
                        {
                            changingBounds = false;
                            levelSize.Width = (int)((Mouse.GetState().X + camera.X - cameraCenter.X) / totalScale + cameraCenter.X) - levelSize.X;
                            levelSize.Height = (int)((Mouse.GetState().Y + camera.Y - cameraCenter.Y) / totalScale + cameraCenter.Y) - levelSize.Y;
                        }
                    }
                }
                mleftPressed = true;
            }
            else
                mleftPressed = false;

            sideBar.Update();

            // Rotate selection counterclockwise
            if (Keyboard.GetState().IsKeyDown(Keys.A))
            {
                if (Keyboard.GetState().IsKeyDown(Keys.LeftControl))
                {
                    if (!rotOnceLeft)
                    {
                        float rounded = selTexRotation + MathHelper.TwoPi - 0.01f;
                        int countRotations = 0;
                        while (rounded > MathHelper.PiOver4)
                        {
                            countRotations++;
                            rounded -= MathHelper.PiOver4;
                        }

                        if (rounded == 0)
                            countRotations--;

                        selTexRotation = MathHelper.PiOver4 * countRotations;
                        rotOnceLeft = true;
                    }
                }
                else
                    selTexRotation -= 0.05f;
            }
            // Rotate selection clockwise
            else if (Keyboard.GetState().IsKeyDown(Keys.D))
            {
                rotOnceLeft = false;
                if (Keyboard.GetState().IsKeyDown(Keys.LeftControl))
                {
                    if (!rotOnceRight)
                    {
                        float rounded = selTexRotation + 0.01f;
                        int countRotations = 0;
                        while (rounded <= MathHelper.TwoPi - MathHelper.PiOver4)
                        {
                            countRotations++;
                            rounded += MathHelper.PiOver4;
                        }

                        if (rounded == MathHelper.TwoPi)
                            countRotations--;

                        selTexRotation = MathHelper.TwoPi - (MathHelper.PiOver4 * countRotations);
                        rotOnceRight = true;
                    }
                }
                else
                    selTexRotation += 0.05f;
            }
            else
            {
                rotOnceLeft = false;
                rotOnceRight = false;
            }
            if (selTexRotation < 0)
                selTexRotation += MathHelper.TwoPi;
            else if (selTexRotation >= MathHelper.TwoPi)
                selTexRotation -= MathHelper.TwoPi;

            // Scale selection
            if (Keyboard.GetState().IsKeyDown(Keys.W))
                selTexScale += 0.05f;
            else if (Keyboard.GetState().IsKeyDown(Keys.S) && selTexScale > 0.05f)
                selTexScale -= 0.05f;

            if (selTexScale < 0.05f)
                selTexScale = 0.05f;

            // Flip selection
            if (Keyboard.GetState().IsKeyDown(Keys.X))
            {
                if (!xPressed)
                {
                    xPressed = true;
                    selTexEffect = (selTexEffect == SpriteEffects.None ? SpriteEffects.FlipHorizontally : SpriteEffects.None);
                }
            }
            else
                xPressed = false;

            // Change selected layer
            Keys[] pressedKeys = Keyboard.GetState().GetPressedKeys();
            if (pressedKeys.Count() > 0)
                if (pressedKeys[0] >= Keys.D0 && pressedKeys[0] <= Keys.D9)
                    layer = float.Parse(Enum.GetName(typeof(Keys), pressedKeys[0]).Substring(1)) / 9.0f;

            // Change zoom
            Global.DScroll = Mouse.GetState().ScrollWheelValue - prevScrollTotal;
            if (Global.DScroll != 0 && Keyboard.GetState().IsKeyDown(Keys.LeftControl))
                totalScale += Global.DScroll > 0 ? 0.05f : -0.05f;
            prevScrollTotal = Mouse.GetState().ScrollWheelValue;

            // Pan
            if (Mouse.GetState().MiddleButton == ButtonState.Pressed)
            {
                camera.X -= (int)((Mouse.GetState().X - prevMX) / totalScale);
                camera.Y -= (int)((Mouse.GetState().Y - prevMY) / totalScale);
            }
            cameraCenter = new Vector2(camera.Width / 2 + camera.X, camera.Height / 2 + camera.Y);
            prevMX = Mouse.GetState().X;
            prevMY = Mouse.GetState().Y;

            base.Update(gameTime);
        }
    // Start is called before the first frame update
    void Start()
    {
        //foreach (Transform child in LevelTileArray.transform)
        //{
        //    _tileList.Add(child.gameObject.GetComponent<TileInformation>());
        //}


        daRocks = GetComponent <AsteroidGenerator>();
        FindObjectOfType <UndestroyableData>().SetUpLevel(ref MapDemensionsX, ref MapDemensionsY, ref FillMap,
                                                          ref TileQuantity, ref WarnForXManyFrames, ref CloseRoomXManyFrames,
                                                          ref daRocks.AsteroidSpeed, ref daRocks.chuckEvery, ref daRocks.plusOrMinus);

        foreach (Transform child in PlayerArray.transform)
        {
            if (child.gameObject.GetComponent <CharacterMovement_Physics>().Environment == null)
            {
                child.gameObject.GetComponent <CharacterMovement_Physics>().Environment = this;
            }
            if (PlayerDoorDashSpeed != -1)
            {
                child.gameObject.GetComponent <CharacterMovement_Physics>().doorPullSpeed = PlayerDoorDashSpeed;
            }
        }


        Map = new TileInformation[MapDemensionsY][];
        for (int i = 0; i < MapDemensionsY; ++i)
        {
            Map[i] = new TileInformation[MapDemensionsX];
            //for(int j=0; j<MapDemensions; ++j)
            //    Map[i][j] = new TileInformation();
        }
        PlacedTileList = new List <Object>();

        int tileCount = 0;//, playerSpawnerCount = 0 ;

        foreach (Transform child in LevelTileArray.transform)
        {
            tileCount++;
            //playerSpawnerCount+=child.GetComponent<TileInformation>().PlayerSpawners.Length;
        }

        //print("count=" + playerSpawnerCount);
        TilePallette = new GameObject[tileCount];
        //PlayerSpawners = new PlayerSpawner[playerSpawnerCount];
        tileCount = 0;
        //playerSpawnerCount = 0;
        foreach (Transform child in LevelTileArray.transform)
        {
            //foreach(PlayerSpawner g in child.GetComponent<TileInformation>().PlayerSpawners)
            //    PlayerSpawners[playerSpawnerCount++] = g;



            child.gameObject.SetActive(false);
            TilePallette[tileCount] = child.gameObject;
            TileInformation tmp = TilePallette[tileCount].GetComponent <TileInformation>();


            tmp.closeEast();
            tmp.closeNorth();
            tmp.closeSouth();
            tmp.closeWest();
            tileCount++;
        }


        setUpItemPallette();


        if (Seed != -1)
        {
            Random.InitState(Seed);
        }
        //Random.seed = Seed;

        doorManager = new DoorManager(Map, FramesToKeepDoorsOpen);
        randomizeLevel();

        //daRocks.Init(startX, startY, startZ, xTileSize, yTileSize, WarnForXManyFrames);
    }
Example #15
0
    public void AddTile(int tileX, int tileY, TileInformation tileInformation)
    {
        RemoveFadeTiles();

        var gameTile = (GameObject)Instantiate(TilePrefab, new Vector3(GetTileInUnityPosition(tileX, tileY).t1,
            GetTileInUnityPosition(tileX, tileY).t2, 0), Quaternion.identity);

        var tileScript = gameTile.GetComponent<TileScript>();
        tileScript.TileInformation = tileInformation;
        tileScript.TileInformation.CanPurchase = false;

        tileScript.X = tileX;
        tileScript.Y = tileY;

        tileScript.Grid = this;

        PlaceTile(tileScript, tileX, tileY);

        UpdateOpenTiles(tileScript);

        _gameManagerScript.OnTileAdded(tileInformation);
    }
Example #16
0
    public void CloseDownRoom(int x, int y)
    {
        if (x < 0)
        {
            return;
        }
        if (y < 0)
        {
            return;
        }
        TileInformation tile = Map[y][x];

        //lock all doors in the tile
        foreach (DoorBehavior d in tile.NorthDoors)
        {
            lockDoor(d, NorthDoors);
        }
        foreach (DoorBehavior d in tile.SouthDoors)
        {
            lockDoor(d, SouthDoors);
        }
        foreach (DoorBehavior d in tile.EastDoors)
        {
            lockDoor(d, EastDoors);
        }
        foreach (DoorBehavior d in tile.WestDoors)
        {
            lockDoor(d, WestDoors);
        }
        foreach (DoorBehavior d in tile.OtherOpenableDoors)
        {
            lockDoor(d, GeneralDoors);
        }

        //lock doors neighboring the tile
        if (x - 1 >= 0 && Map[y][x - 1] != null)
        {
            foreach (DoorBehavior d in Map[y][x - 1].EastDoors)
            {
                lockDoor(d, EastDoors);
            }
        }
        if (x + 1 < MapDemensionsX && Map[y][x + 1] != null)
        {
            foreach (DoorBehavior d in Map[y][x + 1].WestDoors)
            {
                lockDoor(d, WestDoors);
            }
        }
        if (y - 1 >= 0 && Map[y - 1][x] != null)
        {
            foreach (DoorBehavior d in Map[y - 1][x].NorthDoors)
            {
                lockDoor(d, NorthDoors);
            }
        }
        if (y + 1 < MapDemensionsY && Map[y + 1][x] != null)
        {
            foreach (DoorBehavior d in Map[y + 1][x].SouthDoors)
            {
                lockDoor(d, SouthDoors);
            }
        }
    }
 protected override void Initialize()
 {
     base.Initialize();
     TileInformation.TileDiemensions(16, 16);
     level.LoadContent();
 }
    public bool AllowedPlaceDistance(List <TileInformation> points, Vector3 checkPos, Vector3 pos, float radius)
    {
        TileInformation tile = points[GetAreaPositionindex(points, checkPos)];

        return(Vector3.Distance(new Vector3(pos.x, tile.position.y, pos.z), tile.position) >= radius * 2);
    }
Example #19
0
    private void GetStrengthNumberFromPlayer(TileInformation fromTileInfo, GameObject toTile)
    {
        // Goes into a state where the games wait for the player to select number of the strengths to move
        moveTargetTile = toTile;

        movePanel.SetActive(true);
        moveSlider.GetComponent<Slider>().maxValue = fromTileInfo.Strength;

        GameState = MOVE_NUMBER_SELECT;
    }