public void Update() { BaseItemType BaseItem = gameController.Files.BaseItemTypes.Translate(Entity.Path); string ItemName = BaseItem.BaseName; ClassID = BaseItem.ClassName; MavenDetails mavenDetails = new MavenDetails(); int packSize = 0; int quantity = Entity.GetComponent <Quality>()?.ItemQuality ?? 0; // get and evaluate mods var mapComponent = Entity.GetComponent <Map>() ?? null; Tier = mapComponent?.Tier ?? -1; NeedsPadding = Tier == -1 ? false : true; ZanaMissionType = ObjectiveType.None; Bricked = false; Corrupted = Entity.GetComponent <Base>()?.isCorrupted ?? false; var modsComponent = Entity.GetComponent <Mods>() ?? null; ModCount = modsComponent?.ItemMods.Count() ?? 0; if (modsComponent != null && ModCount > 0) { // add warnings, add quant, add packsize if (modsComponent != null && modsComponent.ItemRarity != ItemRarity.Unique) { foreach (var mod in modsComponent.ItemMods.Where(x => !x.Group.Contains("MapAtlasInfluence"))) { if (ModNameBlacklist.Any(m => mod.RawName.Contains(m))) { ModCount--; continue; } #region Elder Guardian Maven Areas and Regions if (mod.Group.Contains("MapElderContainsBoss")) { ModCount--; switch (mod.Value1) { case 1: mavenDetails.MavenRegion = "The Twisted"; mavenDetails.MavenArea = "The Enslaver"; break; case 2: mavenDetails.MavenRegion = "The Twisted"; mavenDetails.MavenArea = "The Eradicator"; break; case 3: mavenDetails.MavenRegion = "The Twisted"; mavenDetails.MavenArea = "The Constrictor"; break; case 4: mavenDetails.MavenRegion = "The Twisted"; mavenDetails.MavenArea = "The Purifier"; break; } continue; } #endregion quantity += mod.Value1; packSize += mod.Value3; if (WarningDictionary.Where(x => mod.RawName.Contains(x.Key)).Any()) { StyledText warning = WarningDictionary.Where(x => mod.RawName.Contains(x.Key)).FirstOrDefault().Value; if (warning.Bricking) { Bricked = true; } ActiveWarnings.Add(warning); } } } // Check Zana missions if (!modsComponent.ItemMods.Any(x => x.RawName == "MapZanaSubAreaMissionDetails")) { ZanaMod = null; } else if (ZanaMods.TryGetValue(modsComponent.ItemMods. FirstOrDefault(x => x.RawName == "MapZanaSubAreaMissionDetails").Value2, out string modName)) { Vector4 textColor = new Vector4(0.9f, 0.85f, 0.65f, 1f); if (modName.Contains("Elder Guardian")) { ZanaMissionType = ObjectiveType.ElderGuardian; } else if (modName.Contains("Shaper Guardian")) { ZanaMissionType = ObjectiveType.ShaperGuardian; } else if (modName.Contains("Harvest")) { ZanaMissionType = ObjectiveType.Harvest; } else if (modName.Contains("Delirium")) { ZanaMissionType = ObjectiveType.Delirium; } else if (modName.Contains("Blighted Map")) { ZanaMissionType = ObjectiveType.Blighted; } else if (modName.Contains("Blight Encounter")) { ZanaMissionType = ObjectiveType.BlightEncounter; } else if (modName.Contains("Legion")) { ZanaMissionType = ObjectiveType.Legion; } else if (modName.Contains("Metamorph")) { ZanaMissionType = ObjectiveType.Metamorph; } ZanaMod = new StyledText() { Color = textColor, Text = modName }; } else { Vector4 textColor = new Vector4(0.9f, 0.85f, 0.65f, 1f); modName = $"Unknown Zana Mission: {modsComponent.ItemMods.FirstOrDefault(x => x.RawName == "MapZanaSubAreaMissionDetails").Value2}"; ZanaMod = new StyledText() { Color = textColor, Text = modName }; } } ; Quantity = quantity; PackSize = packSize; if (!ClassID.Contains("HeistContract") && !ClassID.Contains("HeistBlueprint") && !ClassID.Contains("AtlasRegionUpgradeItem") && !ClassID.Contains("QuestItem") && !ClassID.Contains("MiscMapItem") && !ClassID.Contains("MapFragment")) { WorldArea area = mapComponent.Area; string mapTrim = Entity.GetComponent <Base>().Name.Replace(" Map", ""); if (modsComponent.ItemRarity == ItemRarity.Unique) { // normal map at inner, 0x18, 0x18 long mapUnique = gameController.IngameState.M.Read <long>(mapComponent.Address + 0x10, 0x10, 0x20); area = gameController.Files.WorldAreas.GetByAddress(mapUnique) ?? area; mapTrim = area.Name; } MapName = $"[T{mapComponent.Tier}] {mapTrim}"; Awakened = AwakenedAreas.Contains(area) ? true : false; Bonus = BonusAreas.Contains(area) ? true : false; Completed = CompletedAreas.Contains(area) ? true : false; mavenDetails.MavenCompletion = MavenAreas.Contains(area) ? true : false; if (AreaRegion.TryGetValue(mapTrim, out string region)) { MapRegion = region; } else { MapRegion = "Unknown Region"; } } if (Entity.Path.Contains("MavenMap")) { mavenDetails.MavenInvitation = true; MapName = ItemName; mavenDetails.MavenRegion = RegionReadable.FirstOrDefault(x => Entity.Path.Contains(x.Key)).Value ?? "Uncharted"; } if (ClassID.Contains("MapFragment")) { MapName = ItemName; NeedsPadding = true; } #region Maven Regions & Areas if (Entity.Path.Contains("BreachFragmentPhysical")) { mavenDetails.MavenRegion = "The Hidden"; mavenDetails.MavenArea = "Uul-Netol's Domain"; } else if (Entity.Path.Contains("BreachFragmentCold")) { mavenDetails.MavenRegion = "The Hidden"; mavenDetails.MavenArea = "Tul's Domain"; } else if (Entity.Path.Contains("BreachFragmentFire")) { mavenDetails.MavenRegion = "The Hidden"; mavenDetails.MavenArea = "Xoph's Domain"; } else if (Entity.Path.Contains("BreachFragmentLightning")) { mavenDetails.MavenRegion = "The Hidden"; mavenDetails.MavenArea = "Esh's Domain"; } else if (Entity.Path.Contains("BreachFragmentChaos")) { mavenDetails.MavenRegion = "The Feared"; mavenDetails.MavenArea = "Chayula's Domain"; } else if (Entity.Path.Contains("CurrencyElderFragment")) { mavenDetails.MavenRegion = "The Feared"; mavenDetails.MavenArea = "Absence of Value and Meaning"; } else if (Entity.Path.Contains("ShaperFragment")) { mavenDetails.MavenRegion = "The Feared"; mavenDetails.MavenArea = "The Shaper's Realm"; } else if (Entity.Path.Contains("VaalFragment2_")) { mavenDetails.MavenRegion = "The Feared"; mavenDetails.MavenArea = "The Alluring Abyss"; } else if (ItemName == "Cortex") { mavenDetails.MavenRegion = "The Feared"; mavenDetails.MavenArea = "Cortex"; } else if (ItemName.Contains("Lair of the Hydra") || ItemName.Contains("Maze of the Minotaur") || ItemName.Contains("Forge of the Phoenix Map") || ItemName.Contains("Pit of the Chimera Map")) { mavenDetails.MavenRegion = "The Formed"; mavenDetails.MavenArea = ItemName.Replace(" Map", ""); } else if (ItemName == "Rewritten Distant Memory" || ItemName == "Augmented Distant Memory" || ItemName == "Altered Distant Memory" || ItemName == "Twisted Distant Memory") { mavenDetails.MavenRegion = "The Forgotten"; mavenDetails.MavenArea = ItemName; } if (mavenDetails.MavenInvitation || mavenDetails.MavenArea != string.Empty) { mavenDetails.MavenUncharted = MavenAreas.Any(x => x.Name == mavenDetails.MavenArea) ? true : false; mavenDetails.MavenBosses = MavenBosses(Entity.Path, mavenDetails.MavenRegion); } #endregion MavenDetails = mavenDetails; if ((MapName ?? string.Empty) != string.Empty && LacksCompletionList.Any(x => MapName.Contains(x))) { LacksCompletion = true; } // evaluate rarity for colouring item name ItemColor = GetRarityColor(modsComponent?.ItemRarity ?? ItemRarity.Normal); }