protected override void RefreshEnmityView(CombatantEx targetInfo) { if (this.EnmityView == null) { return; } if (!this.EnmityView.ViewModel.OverlayVisible) { return; } var now = DateTime.Now; if ((now - this.enmityTimestamp).TotalMilliseconds <= 100d) { return; } this.enmityTimestamp = now; EnmityModel.CreateBrushes(); if (targetInfo == null) { this.Model.RefreshEnmityList(null); return; } lock (this.CurrentEnmityModelList) { this.Model.RefreshEnmityList( this.CurrentEnmityModelList, this.currentTankEPS, this.currentNearThreshold); } }
private void RefreshCurrentEnmityModelList( IEnumerable <EnmityEntry> enmityEntryList) { lock (this.CurrentEnmityModelList) { this.CurrentEnmityModelList.Clear(); if (enmityEntryList == null) { return; } var config = Settings.Instance.Enmity; var pcNameStyle = ConfigBridge.Instance.PCNameStyle; var count = 0; foreach (var entry in enmityEntryList) { if (entry.ID == 0) { continue; } count++; if (count > config.MaxCountOfDisplay) { break; } var name = entry.Name; if (string.IsNullOrEmpty(name)) { name = CombatantEx.UnknownName; } else { name = config.IsSelfDisplayYou && entry.IsMe ? "YOU" : CombatantEx.NameToInitial(entry.Name, pcNameStyle); } var model = new EnmityModel(); model.Index = count; model.ID = entry.ID; model.Name = name; model.JobID = (JobIDs)entry.Job; model.Enmity = (double)entry.Enmity; model.HateRate = entry.HateRate / 100f; model.IsMe = entry.IsMe; model.IsPet = entry.IsPet; model.IsTop = count <= 1; this.CurrentEnmityModelList.Add(model); Thread.Yield(); } // EPSを更新する var isRefreshed = this.RefreshEPS(); // ログを出力する if (isRefreshed) { this.WriteEnmityLog(enmityEntryList); } } }