private static void DoorScan(IncursionData data)
        {
            foreach (var door in IncursionDoors)
            {
                var targetable = door.IsTargetable;
                var id         = door.Id;
                var index      = data.Doors.FindIndex(d => d.Id == id);

                if (index >= 0)
                {
                    if (!targetable)
                    {
                        GlobalLog.Info($"[HandleIncursionTask] Removing opened {door.WalkablePosition()}");
                        data.Doors.RemoveAt(index);
                    }
                }
                else
                {
                    if (targetable)
                    {
                        var pos = door.WalkablePosition();
                        GlobalLog.Warn($"[HandleIncursionTask] Registering {pos}");
                        data.Doors.Add(new CachedObject(id, pos));
                    }
                }
            }
        }
        private static void ArchitectScan(IncursionData data)
        {
            foreach (var icon in LokiPoe.InstanceInfo.MinimapIcons)
            {
                var iconName = icon.MinimapIcon.Name;

                if (iconName != IconUpgrade && iconName != IconChange)
                {
                    continue;
                }

                var id = icon.ObjectId;

                if (Blacklist.Contains(id))
                {
                    continue;
                }

                var settings = Incursion.CurrentRoomSettings;
                if (settings != null)
                {
                    if (settings.NoUpgrade && iconName == IconUpgrade)
                    {
                        GlobalLog.Warn("[HandleIncursionTask] Blacklisting upgrading architect according to settings.");
                        Blacklist.Add(id, TimeSpan.FromMinutes(10));
                        continue;
                    }
                    if (settings.NoChange && iconName == IconChange)
                    {
                        GlobalLog.Warn("[HandleIncursionTask] Blacklisting changing architect according to settings.");
                        Blacklist.Add(id, TimeSpan.FromMinutes(10));
                        continue;
                    }
                }

                var mob = icon.NetworkObject as Monster;

                if (mob == null)
                {
                    continue;
                }

                var isDead = mob.IsDead;
                var index  = data.Architects.FindIndex(a => a.Id == id);

                if (index >= 0)
                {
                    if (isDead)
                    {
                        GlobalLog.Info($"[HandleIncursionTask] Removing dead {mob.WalkablePosition()}");
                        data.Architects.RemoveAt(index);
                    }
                    else
                    {
                        data.Architects[index].Position = mob.WalkablePosition();
                    }
                }
                else
                {
                    if (!isDead)
                    {
                        var pos = mob.WalkablePosition();
                        GlobalLog.Warn($"[HandleIncursionTask] Registering {pos}");
                        data.Architects.Add(new CachedArchitect(id, pos, iconName));
                    }
                }
            }
        }