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(); }
// 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()); } }
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); } } }
protected override void Initialize() { base.Initialize(); TileInformation.TileDiemensions(16, 16); screenManager.AddScreen(new BackgroundScreen(), null); screenManager.AddScreen(new MainMenuScreen(), null); }
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. }
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(); }
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); }
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>(); }
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); }
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); }
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); }
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; }