private void FindAndUpdate(SynchronizedObservableCollection <SkillCooldown> list, SkillCooldown sk) { var existing = list.ToSyncArray().FirstOrDefault(x => x.Skill.IconName == sk.Skill.IconName); if (existing == null) { list.Add(sk); return; } existing.Refresh(sk.Cooldown); }
public void AddNotification(NotifyFlashMessage flash) { if (flash == null) { return; } if (flash.Balloon != null && flash.Balloon.DisplayTime >= 500) { var existing = notificationBalloons.ToSyncArray().FirstOrDefault(x => x.TitleText == flash.Balloon.TitleText && x.Icon == flash.Balloon.Icon); if (existing == null) { if (!SnappedToBottom) { notificationBalloons.Add(flash.Balloon); } else { notificationBalloons.Insert(0, flash.Balloon); } } else { if (flash.Balloon.EventType == EventType.Whisper) { if (!SnappedToBottom) { notificationBalloons.Add(flash.Balloon); } else { notificationBalloons.Insert(0, flash.Balloon); } } else { existing.UpdateBody(flash.Balloon.BodyText); existing.Refresh(); } } Topmost = false; Topmost = true; if (!IsVisible) { ShowWindow(); } } if (!BasicTeraData.Instance.WindowData.MuteSound && flash.Sound != null) { Task.Run(() => flash.Sound.Play()); } }
public static XDocument BuildCharacterFile(SynchronizedObservableCollection <Character> list) { var root = new XElement(CharactersTag, new XAttribute(EliteTag, SessionManager.IsElite)); list.ToSyncArray().ToList().ForEach(c => { var xChar = BuildGeneralDataXelement(c); xChar.Add(BuildDungeonDataXelement(c)); xChar.Add(BuildGearDataXelement(c)); xChar.Add(BuildBuffsXelement(c)); xChar.Add(BuildInventoryDataXelement(c)); root.Add(xChar); }); return(new XDocument(new XDeclaration("1.0", "utf-8", "yes"), root)); }
private static bool FindAndUpdate(SynchronizedObservableCollection <Cooldown> list, Cooldown sk) { var existing = list.ToSyncArray().FirstOrDefault(x => x.Skill.IconName == sk.Skill.IconName); if (existing == null) { list.Add(sk); return(true); } if (existing.Mode == CooldownMode.Pre && sk.Mode == CooldownMode.Normal) { existing.Start(sk); return(true); } else { existing.Refresh(sk.Skill.Id, sk.Duration, sk.Mode); return(true); } }