void Start() { _thisEnemy = SpawnerBehaviour.AllSpawned[gameObject]; _dpsMeter = HUDBehaviour.Instance.DpsMeter; if (_thisEnemy is IFighter fighter) { fighter.DagameReceived += damage => _dpsMeter.CurrentFight.AddDamage(damage); } if (_thisEnemy is ISkilled skilled) { foreach (var skill in skilled.Skills) { skill.OnSuccessUsed += Skill_OnSuccessUsed; } } }
/// <summary> /// Timer to update SpellLockWatcher and HealingGrid updates /// </summary> private void PulsetimerTick(object sender, EventArgs e) { try { if (Me.IsValid && StyxWoW.IsInGame) { this.paint(); // SpellLockWatcher label10.Text = DpsMeter._dpsMeterInitialized ? "Initialized" : "Shutdown"; if (DpsMeter._dpsMeterInitialized) { label13.Text = DpsMeter.GetDps(Me).ToString(CultureInfo.InvariantCulture); label15.Text = DpsMeter.GetCombatTimeLeft(Me).Seconds != 0 ? DpsMeter.GetCombatTimeLeft(Me).Seconds.ToString(CultureInfo.InvariantCulture) : "0"; } // HealingGrid if (Me.CastingSpell != null) { if (Me.CurrentTarget != null) { this.label4.Text = "Casting: " + Me.CastingSpell.Name + " on " + Me.CurrentTarget; } else { this.label4.Text = "Casting: " + Me.CastingSpell.Name; } } else { this.label4.Text = "Casting: " + "Waiting..."; } label5.Text = "HealableUnits: " + HealableUnit.ListofHealableUnits.Count; if (this.autoselectcurrenttarget.Checked) { this.TargetChange(); } } } catch { } }
private void ShowDps(DpsMeter dpsMeter) { var textDuration = DpsPanel.GetComponentsInChildren <Text>().First(t => t.name == "Dps_Duration"); var textTotal = DpsPanel.GetComponentsInChildren <Text>().First(t => t.name == "Dps_Total"); var textDetails = DpsPanel.GetComponentsInChildren <Text>().First(t => t.name == "Dps_Details"); if (dpsMeter.CurrentFight == null) { textDuration.text = "-"; textTotal.text = "-"; textDetails.text = "-"; return; } textDuration.text = "Duration: " + Math.Round(dpsMeter.CurrentFight.Duration.TotalSeconds) + " sec"; textTotal.text = "Total DPS: " + Math.Round(dpsMeter.CurrentFight.GetDpsOf(Player.Instance), 1); var detailedDps = dpsMeter.CurrentFight.GetDetailedDpsOf(Player.Instance); textDetails.text = string.Join(Environment.NewLine, detailedDps .OrderByDescending(p => p.Value) .Select(p => p.Key.Name + " : " + Math.Round(p.Value, 1))); }
private void button12_Click(object sender, EventArgs e) { DpsMeter.Update(); }
private void button11_Click(object sender, EventArgs e) { DpsMeter.Shutdown(); }
private void button10_Click(object sender, EventArgs e) { DpsMeter.Initialize(); }