public void ApplyTo(MinimapRoom room) { foreach (var blockState in blockStates) { blockState.Value.ApplyTo(room.Blocks[blockState.Key]); } }
// Use this for initialization void Start() { parent = transform.parent.transform.parent.gameObject; ownRoomScript = transform.parent.GetComponentInChildren <MinimapRoom>(); gridScript = GetComponentInParent <MinimapGridScript>(); roomTileMap = ownRoomScript.transform.parent.GetComponent <Tilemap>(); //generateRoom(); Invoke("generateRoom", Random.Range(0.1f, 0.8f)); }
public void MinimapMove() { foreach (GameObject MinimapRoom in MinimapRooms) { if (MinimapRoom.GetComponent <MinimapRoom>().posX == GameManager.MinimapPosX && MinimapRoom.GetComponent <MinimapRoom>().posY == GameManager.MinimapPosY) { MinimapRoom.GetComponent <Image>().sprite = PlayersAreHere; } else { MinimapRoom.GetComponent <Image>().sprite = null; } } }
static void MakeSureEraIsVisable(ICollection <EMinimapEraType> visableAreas, MinimapRoom room) { switch (room.DefaultColor) { case EMinimapRoomColor.Blue: if (!visableAreas.Contains(EMinimapEraType.Past)) { visableAreas.Add(EMinimapEraType.Past); } break; case EMinimapRoomColor.Green: if (!visableAreas.Contains(EMinimapEraType.Other)) { visableAreas.Add(EMinimapEraType.Other); } break; } }
/// <summary> /// Method that generates a room and sets it's corresponding doors as true /// </summary> private void generateRoom() { if (!generated) { generatedRoom = Instantiate(Resources.Load("Default Room") as GameObject, transform.position, Quaternion.identity); generatedRoom.transform.parent = parent.transform; childRoomScript = generatedRoom.transform.GetComponentInChildren <MinimapRoom>(); gridScript.globalCounter++; childRoomScript.serialNumber = gridScript.globalCounter; //ownRoomScript.childPositions.Add(new MinimapRoom.ChildDictionary(transform.name.Substring(11, 1), childRoomScript.serialNumber)); ownRoomScript.childPositions.Add(transform.name.Substring(11, 1), childRoomScript.serialNumber); switch (transform.name) { case "SpawnPoint Right": generatedRoom.GetComponentInChildren <MinimapRoom>().leftDoor = true; ownRoomScript.rightDoor = true; break; case "SpawnPoint Left": generatedRoom.GetComponentInChildren <MinimapRoom>().rightDoor = true; ownRoomScript.leftDoor = true; break; case "SpawnPoint Top": generatedRoom.GetComponentInChildren <MinimapRoom>().bottomDoor = true; ownRoomScript.topDoor = true; break; case "SpawnPoint Bottom": generatedRoom.GetComponentInChildren <MinimapRoom>().topDoor = true; ownRoomScript.bottomDoor = true; break; } generated = true; } }
static MinimapSpecification DeepClone(MinimapSpecification spec) { var clone = new MinimapSpecification(); foreach (var area in spec.Areas) { var cloneArea = new MinimapArea { DefaultColor = area.DefaultColor, LevelID = area.LevelID }; foreach (var room in area.Rooms) { var cloneRoom = new MinimapRoom(cloneArea) { IsDebug = room.IsDebug, DefaultColor = room.DefaultColor, RoomID = room.RoomID, Width = room.Width, Height = room.Height, Position = room.Position }; foreach (var kvp in room.Blocks) { var point = kvp.Key; var block = kvp.Value; var cloneBlock = new MinimapBlock(cloneRoom) { IsKnown = block.IsKnown, IsVisited = block.IsVisited, IsBoss = block.IsBoss, IsTimespinner = block.IsTimespinner, IsTransition = block.IsTransition, IsCheckpoint = block.IsCheckpoint, IsSolidWall = block.IsSolidWall, HasSolidWallToNW = block.HasSolidWallToNW, RoomColor = block.RoomColor, Position = block.Position }; var dynamicCloneBlock = cloneBlock.AsDynamic(); dynamicCloneBlock._walls = block.Walls; dynamicCloneBlock._doors = block.Doors; dynamicCloneBlock._secretDoors = block.SecretDoors; cloneRoom.Blocks.Add(point, cloneBlock); } cloneArea.Rooms.Add(cloneRoom); } clone.Areas.Add(cloneArea); } foreach (var kvp in spec.Markers) { var point = kvp.Key; var marker = kvp.Value; var cloneMarker = new MinimapMarker { IsVisible = marker.IsVisible, EraColor = marker.EraColor, MarkerColor = marker.MarkerColor, Location = marker.Location, DrawLocationPosition = marker.DrawLocationPosition }; clone.Markers.Add(point, cloneMarker); } foreach (var revealGroup in spec.RevealGroups) { var cloneRevealGroup = new MinimapRevealGroup { ID = revealGroup.ID }; var cloneRoomList = (List <int>)cloneRevealGroup.AsDynamic()._rooms; foreach (var room in revealGroup.Rooms) { cloneRoomList.Add(room); } clone.RevealGroups.Add(cloneRevealGroup); } clone.PopulateAllBlocks(); return(clone); }
public MinimapRoomState(Roomkey key, MinimapRoom room) { RoomKey = key; blockStates = room.Blocks.ToDictionary(b => b.Key, b => new MiniMapBlockState(b.Value)); }