コード例 #1
0
 public void ApplyTo(MinimapRoom room)
 {
     foreach (var blockState in blockStates)
     {
         blockState.Value.ApplyTo(room.Blocks[blockState.Key]);
     }
 }
コード例 #2
0
 // 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));
 }
コード例 #3
0
 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;
         }
     }
 }
コード例 #4
0
        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;
            }
        }
コード例 #5
0
    /// <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;
        }
    }
コード例 #6
0
        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);
        }
コード例 #7
0
 public MinimapRoomState(Roomkey key, MinimapRoom room)
 {
     RoomKey     = key;
     blockStates = room.Blocks.ToDictionary(b => b.Key, b => new MiniMapBlockState(b.Value));
 }