private void DoAlert(Entity entity, ItemUsefulProperties ip) { this.currentAlerts.Add(entity, ip.GetDrawStyle()); this.overlay.MinimapRenderer.AddIcon(new ItemMinimapIcon(entity, "minimap_default_icon.png", 8)); if (Settings.GetBool("ItemAlert.PlaySound") && !this.playedSoundsCache.Contains(entity.LongId)) { this.playedSoundsCache.Add(entity.LongId); Sounds.AlertSound.Play(); } }
private void EntityList_OnEntityAdded(Entity entity) { if (!Settings.GetBool("ItemAlert") || this.currentAlerts.ContainsKey(entity)) { return; } if (entity.HasComponent <WorldItem>()) { Entity item = new Entity(this.poe, entity.GetComponent <WorldItem>().ItemEntity); ItemUsefulProperties props = this.EvaluateItem(item); if (props.IsWorthAlertingPlayer(currencyNames, craftingBases)) { this.DoAlert(entity, props); } } }
private ItemUsefulProperties EvaluateItem(Entity item) { ItemUsefulProperties ip = new ItemUsefulProperties(); Mods mods = item.GetComponent <Mods>(); Sockets socks = item.GetComponent <Sockets>(); Map map = item.HasComponent <Map>() ? item.GetComponent <Map>() : null; SkillGem sk = item.HasComponent <SkillGem>() ? item.GetComponent <SkillGem>() : null; Quality q = item.HasComponent <Quality>() ? item.GetComponent <Quality>() : null; string prefix = q != null && q.ItemQuality > 0 ? "Superior " : String.Empty; ip.Name = prefix + this.poe.Files.BaseItemTypes.Translate(item.Path); ip.ItemLevel = mods.ItemLevel; ip.NumLinks = socks.LargestLinkSize; ip.NumSockets = socks.NumberOfSockets; ip.Rarity = mods.ItemRarity; ip.MapLevel = map == null ? 0 : 1; ip.IsCurrency = item.Path.Contains("Currency"); ip.IsSkillGem = sk != null; ip.Quality = q == null ? 0 : q.ItemQuality; ip.WorthChrome = socks != null && socks.IsRGB; return(ip); }