Exemplo n.º 1
0
        void MarkBasicMapKnowledge()
        {
            foreach (var area in Minimap.Areas)
            {
                foreach (var room in area.Rooms)
                {
                    var roomKey = new Roomkey(area.LevelID, room.RoomID);
                    if (preservedRoomStates.Contains(roomKey))
                    {
                        continue;
                    }

                    preservedRoomStates.Add(new MinimapRoomState(roomKey, room));

                    room.SetKnown(true);

                    foreach (var block in room.Blocks.Values)
                    {
                        if (block.IsCheckpoint || block.IsTransition)
                        {
                            block.IsVisited = true;
                        }

                        if (!block.IsVisited && (block.IsBoss || block.IsTimespinner))
                        {
                            MarkBlockAsBossOrTimespinner(block);
                        }
                    }
                }
            }
        }
Exemplo n.º 2
0
        void MarkAvailableItemLocations()
        {
            preservedRoomStates = new LookupDictionairy <Roomkey, MinimapRoomState>(r => r.RoomKey);

            var visableAreas = (List <EMinimapEraType>)Dynamic._availableEras;

            foreach (var itemLocation in GetAvailableItemLocations())
            {
                var roomKey = new Roomkey(itemLocation.Key.LevelId, itemLocation.Key.RoomId);                 //somehow they keys dont match if we use itemLocation.Key directly
                if (preservedRoomStates.Contains(roomKey))
                {
                    continue;
                }

                var room = GetRoom(roomKey);

                MakeSureEraIsVisable(visableAreas, room);
                preservedRoomStates.Add(new MinimapRoomState(roomKey, room));

                foreach (var block in room.Blocks.Values)
                {
                    if (block.IsSolidWall)
                    {
                        continue;
                    }

                    block.IsKnown   = true;
                    block.IsVisited = true;

                    if (block.IsTransition || block.IsCheckpoint || block.IsBoss)
                    {
                        block.IsTransition = false;
                        block.IsCheckpoint = false;
                        block.RoomColor    = EMinimapRoomColor.Yellow;
                    }
                    else
                    {
                        block.RoomColor = EMinimapRoomColor.Orange;
                    }
                }
            }
        }
Exemplo n.º 3
0
 public MinimapRoomState(Roomkey key, MinimapRoom room)
 {
     RoomKey     = key;
     blockStates = room.Blocks.ToDictionary(b => b.Key, b => new MiniMapBlockState(b.Value));
 }
Exemplo n.º 4
0
 MinimapRoom GetRoom(Roomkey roomKey) =>
 Minimap.GetRoomFromLevelAndRoom(roomKey.LevelId, roomKey.RoomId);