public override void Configure(IController hud) { var Hud = hud; Hud.RunOnPlugin <AttributeLabelListPlugin>(plugin => { plugin.LabelList.WidthFunc = () => Hud.Window.Size.Height * 0.0630f; var dpsDecorator = plugin.LabelList.LabelDecorators[2]; dpsDecorator.TextFunc = () => { var dps = Hud.Game.Me.Offense.SheetDps * (Hud.Game.Me.Powers.BuffIsActive(246562, 1) ? 2 : 1); return(BasePlugin.ValueToString(dps, ValueFormat.ShortNumber)); }; var apsDecorator = plugin.LabelList.LabelDecorators[3]; apsDecorator.TextFunc = () => { var aps = Hud.Game.Me.Offense.AttackSpeed * (Hud.Game.Me.Powers.BuffIsActive(246562, 1) ? 2 : 1); return(aps.ToString("F2", System.Globalization.CultureInfo.InvariantCulture) + "/s"); }; plugin.LabelList.LabelDecorators[9].TextFunc = () => Hud.Game.Me.Stats.MoveSpeed.ToString("#"); plugin.LabelList.LabelDecorators[9].HintFunc = () => string.Empty; /*var index = 9; //0..9 * if (index < plugin.LabelList.LabelDecorators.Count && index >= 0) * { * plugin.LabelList.LabelDecorators[index].AlertTextFunc = () => Hud.Game.Me.Stats.PickupRange.ToString("#"); * plugin.LabelList.LabelDecorators[index].HintFunc = () => "pickup radius"; * }/**/ var expandedHintFont = Hud.Render.CreateFont("tahoma", 7, 255, 200, 200, 200, false, false, true); var expandedHintWidthMultiplier = 3; var adLabel = plugin.LabelList.LabelDecorators[6]; adLabel.ExpandedHintFont = expandedHintFont; adLabel.ExpandedHintWidthMultiplier = expandedHintWidthMultiplier; adLabel.ExpandUpLabels = new List <TopLabelDecorator> { CreateTopLabel(Hud, ItemLocation.RightHand, () => "Off hand"), CreateTopLabel(Hud, ItemLocation.LeftHand, () => "Main hand"), CreateTopLabel(Hud, ItemLocation.Shoulders, () => "Shoulders"), CreateTopLabel(Hud, ItemLocation.Hands, () => "Hands"), CreateTopLabel(Hud, ItemLocation.LeftRing, () => "Left ring"), CreateTopLabel(Hud, ItemLocation.RightRing, () => "Right ring"), CreateTopLabel(Hud, ItemLocation.Neck, () => "Neck"), }; }); }
public ExpressionsPlugin() { Enabled = true; list = new Dictionary <string, Func <string> >(); list["*bloodshards-total"] = (() => BasePlugin.ValueToString(Me.Materials.BloodShard, ValueFormat.LongNumber)); list["*monsters-in-20"] = (() => BasePlugin.ValueToString(Hud.GetPlugin <UtilityCollection>().monsterDensityAroundPlayer(20), ValueFormat.NormalNumber)); list["*cursor-monsters-in-20"] = (() => BasePlugin.ValueToString(Hud.GetPlugin <UtilityCollection>().monsterDensityAroundCursor(20), ValueFormat.NormalNumber)); list["*shield"] = (() => Def.CurShield > 0 ? BasePlugin.ValueToString(Def.CurShield, ValueFormat.LongNumber) : null); list["*shield-nok"] = (() => Def.CurShield > 0 ? BasePlugin.ValueToString(Def.CurShield, ValueFormat.NormalNumberNoDecimal) : null); list["*gold-in-stash"] = (() => BasePlugin.ValueToString(Me.Materials.Gold, ValueFormat.LongNumber)); list["*gold-in-stash-nok"] = (() => BasePlugin.ValueToString(Me.Materials.Gold, ValueFormat.NormalNumberNoDecimal)); list["*hp-cur"] = (() => BasePlugin.ValueToString(Def.HealthCur, ValueFormat.LongNumber)); list["*hp-cur-nok"] = (() => BasePlugin.ValueToString(Def.HealthCur, ValueFormat.NormalNumberNoDecimal)); list["*hp-cur-pct"] = (() => Def.HealthPct.ToString("F0", CultureInfo.InvariantCulture) + "%"); list["*hp-max"] = (() => Def.HealthMax.ToString("F0", CultureInfo.InvariantCulture)); list["*ehp-max"] = (() => BasePlugin.ValueToString(Def.EhpMax, ValueFormat.LongNumber)); list["*ehp-max-nok"] = (() => BasePlugin.ValueToString(Def.EhpMax, ValueFormat.NormalNumberNoDecimal)); list["*ehp-cur"] = (() => BasePlugin.ValueToString(Def.EhpCur, ValueFormat.NormalNumberNoDecimal)); list["*ehp-cur-nok"] = (() => BasePlugin.ValueToString(Def.EhpCur, ValueFormat.NormalNumberNoDecimal)); list["*resource-cur-pri"] = (() => Stats.ResourceCurPri.ToString("F0", CultureInfo.InvariantCulture)); list["*resource-cur-sec"] = (() => Stats.ResourceCurSec.ToString("F0", CultureInfo.InvariantCulture)); list["*resource-max-pri"] = (() => Stats.ResourceMaxPri.ToString("F0", CultureInfo.InvariantCulture)); list["*resource-max-sec"] = (() => Stats.ResourceMaxSec.ToString("F0", CultureInfo.InvariantCulture)); list["*resource-pct-pri"] = (() => Stats.ResourcePctPri.ToString("F0", CultureInfo.InvariantCulture) + "%"); list["*resource-pct-sec"] = (() => Stats.ResourcePctSec.ToString("F0", CultureInfo.InvariantCulture) + "%"); list["*resource-reg-pri"] = (() => Stats.ResourceRegPri.ToString("F0", CultureInfo.InvariantCulture)); list["*resource-reg-sec"] = (() => Stats.ResourceRegSec.ToString("F0", CultureInfo.InvariantCulture)); list["*critchance"] = (() => Dmg.CriticalHitChance.ToString("F1", CultureInfo.InvariantCulture) + "%"); list["*attackspeed"] = (() => Dmg.AttackSpeed.ToString("F2", CultureInfo.InvariantCulture) + "/s"); list["*dps-sheet"] = (() => BasePlugin.ValueToString(Dmg.SheetDps, ValueFormat.LongNumber)); list["*dps-cur"] = (() => BasePlugin.ValueToString(Me.Damage.CurrentDps, ValueFormat.LongNumber)); list["*dps-run"] = (() => BasePlugin.ValueToString(Me.Damage.RunDps, ValueFormat.LongNumber)); list["*magicfind"] = (() => Stats.MagicFind.ToString("F0", CultureInfo.InvariantCulture) + "%"); list["*goldfind"] = (() => Stats.GoldFind.ToString("F0", CultureInfo.InvariantCulture) + "%"); list["*expbonus"] = (() => (Stats.ExperiencePercentBonus).ToString("F0", CultureInfo.InvariantCulture) + "%"); list["*exponkill"] = (() => BasePlugin.ValueToString(Stats.ExperienceOnKillBonus, ValueFormat.LongNumber)); list["*ingame-latency-average"] = (() => BasePlugin.ValueToString(Hud.Game.AverageLatency, ValueFormat.NormalNumberNoDecimal)); list["*ingame-latency-current"] = (() => BasePlugin.ValueToString(Hud.Game.CurrentLatency, ValueFormat.NormalNumberNoDecimal)); list["*ingame-latency-combined"] = (() => BasePlugin.ValueToString(Hud.Game.AverageLatency, ValueFormat.NormalNumberNoDecimal) + " / " + BasePlugin.ValueToString(Hud.Game.CurrentLatency, ValueFormat.NormalNumberNoDecimal)); list["*ingame-ip"] = (() => Hud.Game.ServerIpAddress); list["*current-time"] = (() => new TimeSpan(Hud.Game.CurrentRealTimeMilliseconds * 10000).ToString(@"hh\:mm\:ss")); list["*game-duration"] = (() => new TimeSpan(Convert.ToInt64(Def.CurrentEffectiveHealingPercent / 60.0f * 10000000)).ToString(@"hh\:mm\:ss")); list["*net-healing"] = (() => BasePlugin.ValueToString(Def.CurrentEffectiveHealingPercent, ValueFormat.LongNumber) + "%"); list["*net-healing-nok"] = (() => BasePlugin.ValueToString(Def.CurrentEffectiveHealingPercent, ValueFormat.NormalNumber) + "%"); list["*hps-cur"] = (() => Def.CurrentHealingPerSecond > 0 ? BasePlugin.ValueToString(Def.CurrentHealingPerSecond, ValueFormat.LongNumber) : ""); list["*hps-cur-nok"] = (() => Def.CurrentHealingPerSecond > 0 ? BasePlugin.ValueToString(Def.CurrentHealingPerSecond, ValueFormat.NormalNumberNoDecimal) : ""); list["*hps-cur-plus"] = (() => Def.CurrentHealingPerSecond > 0 ? "+" + BasePlugin.ValueToString(Def.CurrentHealingPerSecond, ValueFormat.LongNumber) : ""); list["*hps-cur-plus-nok"] = (() => Def.CurrentHealingPerSecond > 0 ? "+" + BasePlugin.ValueToString(Def.CurrentHealingPerSecond, ValueFormat.NormalNumberNoDecimal) : ""); list["*dtps-cur"] = (() => Def.CurrentDamageTakenPerSecond > 0 ? BasePlugin.ValueToString(Def.CurrentDamageTakenPerSecond, ValueFormat.LongNumber) : ""); list["*dtps-cur-nok"] = (() => Def.CurrentDamageTakenPerSecond > 0 ? BasePlugin.ValueToString(Def.CurrentDamageTakenPerSecond, ValueFormat.NormalNumberNoDecimal) : ""); list["*dtps-cur-minus"] = (() => Def.CurrentDamageTakenPerSecond > 0 ? "-" + BasePlugin.ValueToString(Def.CurrentDamageTakenPerSecond, ValueFormat.LongNumber) : ""); list["*dtps-cur-minus-nok"] = (() => Def.CurrentDamageTakenPerSecond > 0 ? "-" + BasePlugin.ValueToString(Def.CurrentDamageTakenPerSecond, ValueFormat.NormalNumberNoDecimal) : ""); list["*dmg-dealt-bonus-ph"] = (() => Dmg.BonusToPhysical == 0 ? "" : (Dmg.BonusToPhysical * 100).ToString("F0", CultureInfo.InvariantCulture)); list["*dmg-dealt-bonus-f"] = (() => Dmg.BonusToFire == 0 ? "" : (Dmg.BonusToFire * 100).ToString("F0", CultureInfo.InvariantCulture)); list["*dmg-dealt-bonus-l"] = (() => Dmg.BonusToLightning == 0 ? "" : (Dmg.BonusToLightning * 100).ToString("F0", CultureInfo.InvariantCulture)); list["*dmg-dealt-bonus-c"] = (() => Dmg.BonusToCold == 0 ? "" : (Dmg.BonusToCold * 100).ToString("F0", CultureInfo.InvariantCulture)); list["*dmg-dealt-bonus-p"] = (() => Dmg.BonusToPoison == 0 ? "" : (Dmg.BonusToPoison * 100).ToString("F0", CultureInfo.InvariantCulture)); list["*dmg-dealt-bonus-a"] = (() => Dmg.BonusToArcane == 0 ? "" : (Dmg.BonusToArcane * 100).ToString("F0", CultureInfo.InvariantCulture)); list["*dmg-dealt-bonus-h"] = (() => Dmg.BonusToHoly == 0 ? "" : (Dmg.BonusToHoly * 100).ToString("F0", CultureInfo.InvariantCulture)); list["*dmg-dealt-bonus-elite"] = (() => Dmg.BonusToElites == 0 ? "" : (Dmg.BonusToElites * 100).ToString("F0", CultureInfo.InvariantCulture)); list["*inventory-free-space"] = (() => BasePlugin.ValueToString(Me.InventorySpaceTotal - Hud.Game.InventorySpaceUsed, ValueFormat.NormalNumber)); list["*cdr"] = (() => BasePlugin.ValueToString(Stats.CooldownReduction * 100, ValueFormat.NormalNumberNoDecimal) + "%"); list["*pickup"] = (() => Stats.PickupRange.ToString("F0", CultureInfo.InvariantCulture)); list["*exp-level-cur"] = (() => (Me.CurrentLevelNormal < Me.CurrentLevelNormalCap) ? Me.CurrentLevelNormal.ToString("0") : "p" + Me.CurrentLevelParagonDouble.ToString("0.##", CultureInfo.InvariantCulture)); list["*exp-to-next-level"] = (() => BasePlugin.ValueToString(Me.ParagonExpToNextLevel, ValueFormat.LongNumber)); list["*exp-to-next-level-nok"] = (() => BasePlugin.ValueToString(Me.ParagonExpToNextLevel, ValueFormat.NormalNumberNoDecimal)); list["*exp-in-this-level"] = (() => BasePlugin.ValueToString(Me.ParagonExpInThisLevel, ValueFormat.LongNumber)); list["*exp-in-this-level-nok"] = (() => BasePlugin.ValueToString(Me.ParagonExpInThisLevel, ValueFormat.NormalNumberNoDecimal)); list["*exp-remaining-to-next-level"] = (() => BasePlugin.ValueToString(Me.ParagonExpToNextLevel - Me.ParagonExpInThisLevel, ValueFormat.LongNumber)); list["*exp-remaining-to-next-level-nok"] = (() => BasePlugin.ValueToString(Me.ParagonExpToNextLevel - Me.ParagonExpInThisLevel, ValueFormat.NormalNumberNoDecimal)); list["*exp-bonus-pool-percent"] = (() => BasePlugin.ValueToString(Me.BonusPoolPercent * 100, ValueFormat.NormalNumber) + "%"); list["*exp-bonus-pool-remaining"] = (() => BasePlugin.ValueToString(Me.BonusPoolRemaining, ValueFormat.LongNumber)); list["*exp-bonus-pool-remaining-nok"] = (() => BasePlugin.ValueToString(Me.BonusPoolRemaining, ValueFormat.NormalNumberNoDecimal)); list["*rift-info-pct"] = (() => Hud.Game.RiftPercentage.ToString("F1", CultureInfo.InvariantCulture) + "%"); list["*rift-info-pct-remaining"] = (() => (100.0 - Hud.Game.RiftPercentage).ToString("F1", CultureInfo.InvariantCulture) + "%"); list["*perf-rendertime"] = (() => Hud.Stat.RenderPerfCounter.LastValue.ToString("F0") + " (" + Hud.Stat.RenderPerfCounter.LastCount.ToString("F0") + " FPS)"); //expressions.Add("*perf-memory-usage-gc", (GC.GetTotalMemory(false) / 1024.0 / 1024.0).ToString("F0") + " MB"); //expressions.Add("*dmg-weapon", BasePlugin.ValueToString(Me.DWHandLeft ? Me.WeaponDMGmh : Me.WeaponDMGoh, ValueFormat.LongNumber)); //expressions.Add("*exp-all", BasePlugin.ValueToString(Me.ParagonTotalExp, ValueFormat.LongNumber)); //expressions.Add("*elemental-dps", BasePlugin.ValueToString(Me.SheetDPS * (1 + Me.HighestElementalDamageBonus), ValueFormat.LongNumber)); //expressions.Add("*elite-dps", BasePlugin.ValueToString(Me.SheetDPS * (1 + Me.HighestElementalDamageBonus) * (1 + Me.BonusToElites), ValueFormat.LongNumber)); //expressions.Add("*movespeed", Me.MoveSpeed.ToString("F0", CultureInfo.InvariantCulture)); //expressions.Add("*movespeed-bonus", Me.MoveSpeedBonus.ToString("F0", CultureInfo.InvariantCulture)); //list["*life-per-second"] = (() => BasePlugin.ValueToString(Hud.Collections.CurHealingPerSecond, ValueFormat.LongNumber)); //list["*life-per-second-nok"] = (() => BasePlugin.ValueToString(Hud.Collections.CurHealingPerSecond, ValueFormat.NormalNumber)); //expressions.Add("*attackspeed-pets", Me.AttackSpeedPets.ToString("F2", CultureInfo.InvariantCulture) + "/s"); //expressions.Add("*healing-sheet", BasePlugin.ValueToString(Me.SheetHealing, ValueFormat.LongNumber)); //expressions.Add("*healing-sheet-nok", BasePlugin.ValueToString(Me.SheetHealing, ValueFormat.NormalNumberNoDecimal)); //expressions.Add("*healing-sheet-plus", "+" + BasePlugin.ValueToString(Me.SheetHealing, ValueFormat.LongNumber)); //expressions.Add("*healing-sheet-plus-nok", "+" + BasePlugin.ValueToString(Me.SheetHealing, ValueFormat.NormalNumberNoDecimal)); /* * expressions.Add("*exp-level-time-to-next1", Engine.TimeToParagonLevel(Me.CurrentLevelParagon + 1, true)); * expressions.Add("*exp-level-time-to-next2", Engine.TimeToParagonLevel(Me.CurrentLevelParagon + 2, true)); * expressions.Add("*exp-level-time-to-next3", Engine.TimeToParagonLevel(Me.CurrentLevelParagon + 3, true)); * expressions.Add("*exp-level-time-to-next10", Engine.TimeToParagonLevel(Me.CurrentLevelParagon + 10, true)); * expressions.Add("*exp-level-time-to-next20", Engine.TimeToParagonLevel(Me.CurrentLevelParagon + 20, true)); * expressions.Add("*exp-level-time-to-next50", Engine.TimeToParagonLevel(Me.CurrentLevelParagon + 50, true)); * expressions.Add("*exp-level-time-to-next100", Engine.TimeToParagonLevel(Me.CurrentLevelParagon + 100, true)); * expressions.Add("*exp-level-time-to-next1-value", Engine.TimeToParagonLevel(Me.CurrentLevelParagon + 1, false)); * expressions.Add("*exp-level-time-to-next2-value", Engine.TimeToParagonLevel(Me.CurrentLevelParagon + 2, false)); * expressions.Add("*exp-level-time-to-next3-value", Engine.TimeToParagonLevel(Me.CurrentLevelParagon + 3, false)); * expressions.Add("*exp-level-time-to-next10-value", Engine.TimeToParagonLevel(Me.CurrentLevelParagon + 10, false)); * expressions.Add("*exp-level-time-to-next20-value", Engine.TimeToParagonLevel(Me.CurrentLevelParagon + 20, false)); * expressions.Add("*exp-level-time-to-next50-value", Engine.TimeToParagonLevel(Me.CurrentLevelParagon + 50, false)); * expressions.Add("*exp-level-time-to-next100-value", Engine.TimeToParagonLevel(Me.CurrentLevelParagon + 100, false)); * expressions.Add("*exp-level-exp-to-next1", Engine.ExpToParagonLevel(Me.CurrentLevelParagon + 1)); * expressions.Add("*exp-level-exp-to-next2", Engine.ExpToParagonLevel(Me.CurrentLevelParagon + 2)); * expressions.Add("*exp-level-exp-to-next3", Engine.ExpToParagonLevel(Me.CurrentLevelParagon + 3)); * expressions.Add("*exp-level-exp-to-next10", Engine.ExpToParagonLevel(Me.CurrentLevelParagon + 10)); * expressions.Add("*exp-level-exp-to-next20", Engine.ExpToParagonLevel(Me.CurrentLevelParagon + 20)); * expressions.Add("*exp-level-exp-to-next50", Engine.ExpToParagonLevel(Me.CurrentLevelParagon + 50)); * expressions.Add("*exp-level-exp-to-next100", Engine.ExpToParagonLevel(Me.CurrentLevelParagon + 100)); * expressions.Add("*life-on-hit", BasePlugin.ValueToString(Me.LifeOnHit, ValueFormat.LongNumber)); * expressions.Add("*life-on-hit-nok", BasePlugin.ValueToString(Me.LifeOnHit, ValueFormat.NormalNumber)); * expressions.Add("*life-on-kill", BasePlugin.ValueToString(Me.LifeOnKill, ValueFormat.LongNumber)); * expressions.Add("*life-on-kill-nok", BasePlugin.ValueToString(Me.LifeOnKill, ValueFormat.NormalNumber)); * expressions.Add("*hp-globe-bonus", BasePlugin.ValueToString(Me.GlobeBonus, ValueFormat.LongNumber)); * expressions.Add("*hp-globe-bonus-nok", BasePlugin.ValueToString(Me.GlobeBonus, ValueFormat.NormalNumber)); * expressions.Add("*dps-cur-party": { long t = 0); for (int i = 0) ; i < Collect.Players.Length); i++) t += (Collect.Players[i].ActorKnown() ? Collect.Players[i].CurDPS : 0)); S = BasePlugin.ValueToString(t, ValueFormat.LongNumber)); } * expressions.Add("*dps-run-party": { long t = 0); for (int i = 0) ; i < Collect.Players.Length); i++) t += Collect.Players[i].RunDPS()); S = BasePlugin.ValueToString(t, ValueFormat.LongNumber)); } * expressions.Add("*monster-damage", BasePlugin.ValueToString(Collect.Actors.MonsterHitpointDecreaseCounter.LastValue, ValueFormat.LongNumber)); * expressions.Add("*dmg-total", BasePlugin.ValueToString(Me.TotalDMG, ValueFormat.LongNumber)); * expressions.Add("*dmg-total-party": { double t = 0); for (int i = 0) ; i < Collect.Players.Length); i++) t += Collect.Players[i].TotalDMG); S = BasePlugin.ValueToString(t, ValueFormat.LongNumber)); } * expressions.Add("*resist-lowest", Me.ResLowest.ToString("F0", CultureInfo.InvariantCulture)); * expressions.Add("*resist-physical", Me.ResPhysical.ToString("F0", CultureInfo.InvariantCulture)); * expressions.Add("*resist-cold", Me.ResCold.ToString("F0", CultureInfo.InvariantCulture)); * expressions.Add("*resist-fire", Me.ResFire.ToString("F0", CultureInfo.InvariantCulture)); * expressions.Add("*resist-lightning", Me.ResLightning.ToString("F0", CultureInfo.InvariantCulture)); * expressions.Add("*resist-poison", Me.ResPoison.ToString("F0", CultureInfo.InvariantCulture)); * expressions.Add("*resist-arcane", Me.ResArcane.ToString("F0", CultureInfo.InvariantCulture)); * expressions.Add("*armor", Me.Armor.ToString("#,0", CultureInfo.InvariantCulture)); * expressions.Add("*damred", (Me.drCombined * 100).ToString("F0", CultureInfo.InvariantCulture) + "%"); * expressions.Add("*damred-elite", Math.Round(Me.DRElite * 100, 0).ToString("F0", CultureInfo.InvariantCulture) + "%"); * expressions.Add("*damred-melee", Math.Round(Me.DRMelee * 100, 0).ToString("F0", CultureInfo.InvariantCulture) + "%"); * expressions.Add("*damred-ranged", Math.Round(Me.DRRanged * 100, 0).ToString("F0", CultureInfo.InvariantCulture) + "%"); */ }
public override void Load(IController hud) { base.Load(hud); var expandedHintFont = Hud.Render.CreateFont("tahoma", 7, 255, 200, 200, 200, true, false, true); var expandedHintWidthMultiplier = 3; LabelList = new HorizontalTopLabelList(hud); LabelList.LeftFunc = () => { var ui = Hud.Render.GetUiElement("Root.NormalLayer.game_dialog_backgroundScreenPC.game_window_hud_overlay"); return(ui.Rectangle.Left + ui.Rectangle.Width * 0.267f); }; LabelList.TopFunc = () => { var ui = Hud.Render.GetUiElement("Root.NormalLayer.game_dialog_backgroundScreenPC.game_window_hud_overlay"); return(ui.Rectangle.Top + ui.Rectangle.Height * 0.318f); }; LabelList.WidthFunc = () => { var ui = Hud.Render.GetUiElement("Root.NormalLayer.game_dialog_backgroundScreenPC.game_window_hud_overlay"); return(Hud.Window.Size.Height * 0.0621f); }; LabelList.HeightFunc = () => { var ui = Hud.Render.GetUiElement("Root.NormalLayer.game_dialog_backgroundScreenPC.game_window_hud_overlay"); return(Hud.Window.Size.Height * 0.025f); }; /// added // value_format can be 'dyn', 'F0', 'F1' /* add Flying Dragon buff in exp bar * * Hud.RunOnPlugin<AttributeLabelListPlugin>(plugin => * { * var dpsDecorator = plugin.LabelList.LabelDecorators[2]; * dpsDecorator.TextFunc = () => * { * var dps = Hud.Game.Me.Offense.SheetDps * (Hud.Game.Me.Powers.BuffIsActive(246562, 1) ? 2 : 1); * return ValueToString(dps, ValueFormat.ShortNumber); * }; * var apsDecorator = plugin.LabelList.LabelDecorators[3]; * apsDecorator.TextFunc = () => * { * var aps = Hud.Game.Me.Offense.AttackSpeed * (Hud.Game.Me.Powers.BuffIsActive(246562, 1) ? 2 : 1); * return aps.ToString("F2", System.Globalization.CultureInfo.InvariantCulture) + "/s"; * }; * }); */ // movement 1 LabelList.LabelDecorators.Add(new TopLabelDecorator(Hud) { TextFont = Hud.Render.CreateFont("tahoma", 7, 230, 255, 255, 255, true, false, true), ExpandedHintFont = expandedHintFont, ExpandedHintWidthMultiplier = expandedHintWidthMultiplier, BackgroundTexture1 = Hud.Texture.ButtonTextureGray, BackgroundTexture2 = Hud.Texture.BackgroundTextureBlue, BackgroundTextureOpacity2 = 0.70f, TextFunc = () => (Hud.Game.Me.Stats.MoveSpeed).ToString("F1", CultureInfo.InvariantCulture) + "%", HintFunc = () => "Move Speed Total", ExpandUpLabels = new List <TopLabelDecorator>() { /* new TopLabelDecorator(Hud) * { * TextFont = Hud.Render.CreateFont("tahoma", 7, 230, 255, 255, 255, true, false, true), * ExpandedHintFont = expandedHintFont, * ExpandedHintWidthMultiplier = expandedHintWidthMultiplier, * BackgroundTexture1 = Hud.Texture.ButtonTextureGray, * BackgroundTexture2 = Hud.Texture.BackgroundTextureBlue, * BackgroundTextureOpacity2 = 1.0f, * TextFunc = () => (Hud.Game.Me.Stats.MoveSpeed - Hud.Game.Me.Stats.MoveSpeedBonus - 100).ToString("F1", CultureInfo.InvariantCulture) + "%", * HintFunc = () => "Move Speed Base", * }, */ /* new TopLabelDecorator(Hud) * { * TextFont = Hud.Render.CreateFont("tahoma", 7, 230, 255, 255, 255, true, false, true), * ExpandedHintFont = expandedHintFont, * ExpandedHintWidthMultiplier = expandedHintWidthMultiplier, * BackgroundTexture1 = Hud.Texture.ButtonTextureGray, * BackgroundTexture2 = Hud.Texture.BackgroundTextureBlue, * BackgroundTextureOpacity2 = 1.0f, * TextFunc = () => (Hud.Game.Me.Stats.MoveSpeedBonus + 100).ToString("F1", CultureInfo.InvariantCulture) + "%", * HintFunc = () => "Move Speed Bonus", * }, */ } }); // defense 2 LabelList.LabelDecorators.Add(new TopLabelDecorator(Hud) { TextFont = Hud.Render.CreateFont("tahoma", 7, 230, 255, 255, 255, true, false, true), ExpandedHintFont = expandedHintFont, ExpandedHintWidthMultiplier = expandedHintWidthMultiplier, BackgroundTexture1 = Hud.Texture.ButtonTextureGray, BackgroundTexture2 = Hud.Texture.BackgroundTextureGreen, BackgroundTextureOpacity2 = 0.70f, TextFunc = () => ValueToString(Hud.Game.Me.Defense.EhpCur, ValueFormat.ShortNumber), HintFunc = () => "EHP Current", ExpandUpLabels = new List <TopLabelDecorator>() { new TopLabelDecorator(Hud) { TextFont = Hud.Render.CreateFont("tahoma", 7, 230, 255, 255, 255, true, false, true), ExpandedHintFont = expandedHintFont, ExpandedHintWidthMultiplier = expandedHintWidthMultiplier, BackgroundTexture1 = Hud.Texture.ButtonTextureGray, BackgroundTexture2 = Hud.Texture.BackgroundTextureGreen, BackgroundTextureOpacity2 = 1.0f, TextFunc = () => ValueToString(Hud.Game.Me.Defense.EhpMax, ValueFormat.ShortNumber), HintFunc = () => "EHP Max", }, new TopLabelDecorator(Hud) { TextFont = Hud.Render.CreateFont("tahoma", 7, 230, 255, 255, 255, true, false, true), ExpandedHintFont = expandedHintFont, ExpandedHintWidthMultiplier = expandedHintWidthMultiplier, BackgroundTexture1 = Hud.Texture.ButtonTextureGray, BackgroundTexture2 = Hud.Texture.BackgroundTextureGreen, BackgroundTextureOpacity2 = 1.0f, TextFunc = () => Hud.Game.Me.Defense.ResAverage.ToString("#,0", CultureInfo.InvariantCulture), HintFunc = () => "Average Resist", }, new TopLabelDecorator(Hud) { TextFont = Hud.Render.CreateFont("tahoma", 7, 230, 255, 255, 255, true, false, true), ExpandedHintFont = expandedHintFont, ExpandedHintWidthMultiplier = expandedHintWidthMultiplier, BackgroundTexture1 = Hud.Texture.ButtonTextureGray, BackgroundTexture2 = Hud.Texture.BackgroundTextureGreen, BackgroundTextureOpacity2 = 1.0f, TextFunc = () => Hud.Game.Me.Defense.Armor.ToString("#,0", CultureInfo.InvariantCulture), HintFunc = () => "Armor", }, new TopLabelDecorator(Hud) { TextFont = Hud.Render.CreateFont("tahoma", 7, 230, 255, 255, 255, true, false, true), ExpandedHintFont = expandedHintFont, ExpandedHintWidthMultiplier = expandedHintWidthMultiplier, BackgroundTexture1 = Hud.Texture.ButtonTextureGray, BackgroundTexture2 = Hud.Texture.BackgroundTextureGreen, BackgroundTextureOpacity2 = 1.0f, TextFunc = () => (Hud.Game.Me.Defense.drCombined * 100).ToString("F1", CultureInfo.InvariantCulture), HintFunc = () => "Damage Reduction", }, } }); // ias 3 LabelList.LabelDecorators.Add(new TopLabelDecorator(Hud) { TextFont = Hud.Render.CreateFont("tahoma", 7, 230, 255, 255, 255, true, false, true), ExpandedHintFont = expandedHintFont, ExpandedHintWidthMultiplier = expandedHintWidthMultiplier, BackgroundTexture1 = Hud.Texture.ButtonTextureOrange, BackgroundTexture2 = Hud.Texture.BackgroundTextureYellow, BackgroundTextureOpacity2 = 0.3f, // TextFunc = () => Hud.Game.Me.Offense.AttackSpeed.ToString("F2", CultureInfo.InvariantCulture) + "/s", //jack's edit to include Flying Dragon staff buff TextFunc = () => { var aps = Hud.Game.Me.Offense.AttackSpeed * (Hud.Game.Me.Powers.BuffIsActive(246562, 1) ? 2 : 1); return(aps.ToString("F2", System.Globalization.CultureInfo.InvariantCulture) + "/s"); }, HintFunc = () => "Attack Speed Per Sec", ExpandUpLabels = new List <TopLabelDecorator>() { new TopLabelDecorator(Hud) { TextFont = Hud.Render.CreateFont("tahoma", 7, 230, 255, 255, 255, true, false, true), ExpandedHintFont = expandedHintFont, ExpandedHintWidthMultiplier = expandedHintWidthMultiplier, BackgroundTexture1 = Hud.Texture.ButtonTextureOrange, BackgroundTexture2 = Hud.Texture.BackgroundTextureOrange, BackgroundTextureOpacity2 = 0.75f, // TextFunc = () => ValueToString(Hud.Game.Me.Offense.SheetDps, ValueFormat.ShortNumber), //jack's edit to include Flying Dragon staff buff TextFunc = () => { var dps = Hud.Game.Me.Offense.SheetDps * (Hud.Game.Me.Powers.BuffIsActive(246562, 1) ? 2 : 1); return(BasePlugin.ValueToString(dps, ValueFormat.ShortNumber)); }, HintFunc = () => "Sheet DPS", }, new TopLabelDecorator(Hud) { TextFont = Hud.Render.CreateFont("tahoma", 7, 230, 255, 255, 255, true, false, true), ExpandedHintFont = expandedHintFont, ExpandedHintWidthMultiplier = expandedHintWidthMultiplier, BackgroundTexture1 = Hud.Texture.ButtonTextureOrange, BackgroundTexture2 = Hud.Texture.BackgroundTextureOrange, BackgroundTextureOpacity2 = 0.75f, TextFunc = () => ValueToString(Hud.Game.Me.Offense.MainHandIsActive ? Hud.Game.Me.Offense.WeaponDamageMainHand : Hud.Game.Me.Offense.WeaponDamageSecondHand, ValueFormat.ShortNumber), HintFunc = () => "Weapon Damage", }, new TopLabelDecorator(Hud) { TextFont = Hud.Render.CreateFont("tahoma", 7, 230, 255, 255, 255, true, false, true), ExpandedHintFont = expandedHintFont, ExpandedHintWidthMultiplier = expandedHintWidthMultiplier, BackgroundTexture1 = Hud.Texture.ButtonTextureOrange, BackgroundTexture2 = Hud.Texture.BackgroundTextureYellow, BackgroundTextureOpacity2 = 0.75f, TextFunc = () => Hud.Game.Me.Offense.AttackSpeedPets.ToString("F2", CultureInfo.InvariantCulture) + "/s", HintFunc = () => "Pet Attack Speed Per Sec", } } }); // chc 4 LabelList.LabelDecorators.Add(new TopLabelDecorator(Hud) { TextFont = Hud.Render.CreateFont("tahoma", 7, 230, 255, 255, 255, true, false, true), ExpandedHintFont = expandedHintFont, ExpandedHintWidthMultiplier = expandedHintWidthMultiplier, BackgroundTexture1 = Hud.Texture.ButtonTextureOrange, BackgroundTexture2 = Hud.Texture.BackgroundTextureGreen, BackgroundTextureOpacity2 = 0.3f, TextFunc = () => Hud.Game.Me.Offense.CriticalHitChance.ToString("F1", CultureInfo.InvariantCulture) + "%", HintFunc = () => "Crit Hit Chance", ExpandUpLabels = new List <TopLabelDecorator>() { new TopLabelDecorator(Hud) { TextFont = Hud.Render.CreateFont("tahoma", 7, 230, 255, 255, 255, true, false, true), ExpandedHintFont = expandedHintFont, ExpandedHintWidthMultiplier = expandedHintWidthMultiplier, BackgroundTexture1 = Hud.Texture.ButtonTextureOrange, BackgroundTexture2 = Hud.Texture.BackgroundTextureGreen, BackgroundTextureOpacity2 = 0.75f, TextFunc = () => Hud.Game.Me.Offense.CritDamage.ToString("F0", CultureInfo.InvariantCulture) + "%", HintFunc = () => "Crit Hit Damage", }, new TopLabelDecorator(Hud) { TextFont = Hud.Render.CreateFont("tahoma", 7, 230, 200, 200, 255, true, false, true), ExpandedHintFont = expandedHintFont, ExpandedHintWidthMultiplier = expandedHintWidthMultiplier, BackgroundTexture1 = Hud.Texture.ButtonTextureOrange, BackgroundTexture2 = Hud.Texture.BackgroundTextureBlue, BackgroundTextureOpacity2 = 0.75f, TextFunc = () => Hud.Game.Me.Offense.AreaDamageBonus.ToString("F0", CultureInfo.InvariantCulture) + "%", HintFunc = () => "Area Damage Bonus", } } }); ////////////////////// // dps 5 LabelList.LabelDecorators.Add(new TopLabelDecorator(Hud) { TextFont = Hud.Render.CreateFont("tahoma", 7, 230, 255, 255, 255, true, false, true), ExpandedHintFont = expandedHintFont, ExpandedHintWidthMultiplier = expandedHintWidthMultiplier, BackgroundTexture1 = Hud.Texture.ButtonTextureBlue, BackgroundTexture2 = Hud.Texture.BackgroundTextureBlue, BackgroundTextureOpacity2 = 0.75f, TextFunc = () => ValueToString(Hud.Game.Me.Damage.CurrentDps, ValueFormat.LongNumber), HintFunc = () => "Current DPS", ExpandUpLabels = new List <TopLabelDecorator>() { new TopLabelDecorator(Hud) { TextFont = Hud.Render.CreateFont("tahoma", 7, 230, 255, 200, 200, true, false, true), ExpandedHintFont = expandedHintFont, ExpandedHintWidthMultiplier = expandedHintWidthMultiplier, BackgroundTexture1 = Hud.Texture.ButtonTextureBlue, BackgroundTexture2 = Hud.Texture.BackgroundTextureBlue, BackgroundTextureOpacity2 = 0.75f, TextFunc = () => ValueToString(Hud.Game.Me.Damage.MaximumDps, ValueFormat.LongNumber), HintFunc = () => "Maximum DPS", }, new TopLabelDecorator(Hud) { TextFont = Hud.Render.CreateFont("tahoma", 7, 230, 255, 200, 200, true, false, true), ExpandedHintFont = expandedHintFont, ExpandedHintWidthMultiplier = expandedHintWidthMultiplier, BackgroundTexture1 = Hud.Texture.ButtonTextureBlue, BackgroundTexture2 = Hud.Texture.BackgroundTextureBlue, BackgroundTextureOpacity2 = 0.75f, TextFunc = () => ValueToString(Hud.Game.Me.Damage.TotalDamage, ValueFormat.ShortNumber), HintFunc = () => "Total Damage", }, } }); // dps 6 LabelList.LabelDecorators.Add(new TopLabelDecorator(Hud) { TextFont = Hud.Render.CreateFont("tahoma", 7, 230, 255, 255, 255, true, false, true), BackgroundTexture1 = Hud.Texture.ButtonTextureGray, BackgroundTexture2 = Hud.Texture.BackgroundTextureBlue, BackgroundTextureOpacity2 = 0.7f, TextFunc = () => ValueToString(Hud.Game.Me.Damage.RunDps, ValueFormat.LongNumber), HintFunc = () => "Average DPS", }); ////////////////////// // cdr 7 LabelList.LabelDecorators.Add(new TopLabelDecorator(Hud) { TextFont = Hud.Render.CreateFont("tahoma", 7, 230, 200, 200, 255, true, false, true), ExpandedHintFont = expandedHintFont, ExpandedHintWidthMultiplier = expandedHintWidthMultiplier, BackgroundTexture1 = Hud.Texture.ButtonTextureBlue, BackgroundTexture2 = Hud.Texture.BackgroundTextureBlue, BackgroundTextureOpacity2 = 0.75f, TextFunc = () => (Hud.Game.Me.Stats.CooldownReduction * 100).ToString("F1", CultureInfo.InvariantCulture) + "%", HintFunc = () => "Cooldown Reduction", ExpandUpLabels = new List <TopLabelDecorator>() { new TopLabelDecorator(Hud) { TextFont = Hud.Render.CreateFont("tahoma", 7, 230, 255, 200, 200, true, false, true), ExpandedHintFont = expandedHintFont, ExpandedHintWidthMultiplier = expandedHintWidthMultiplier, BackgroundTexture1 = Hud.Texture.ButtonTextureBlue, BackgroundTexture2 = Hud.Texture.BackgroundTextureBlue, BackgroundTextureOpacity2 = 0.75f, TextFunc = () => (Hud.Game.Me.Stats.ResourceCostReduction * 100).ToString("F1", CultureInfo.InvariantCulture) + "%", HintFunc = () => "Resource Cost Reduction", }, } }); // rcr 8 LabelList.LabelDecorators.Add(new TopLabelDecorator(Hud) { TextFont = Hud.Render.CreateFont("tahoma", 7, 230, 255, 200, 200, true, false, true), BackgroundTexture1 = Hud.Texture.ButtonTextureBlue, BackgroundTexture2 = Hud.Texture.BackgroundTextureBlue, BackgroundTextureOpacity2 = 0.75f, TextFunc = () => (Hud.Game.Me.Stats.ResourceCostReduction * 100).ToString("F1", CultureInfo.InvariantCulture) + "%", HintFunc = () => "Resource Cost Reduction", }); // misc 9 LabelList.LabelDecorators.Add(new TopLabelDecorator(Hud) { TextFont = Hud.Render.CreateFont("tahoma", 7, 230, 255, 200, 200, true, false, true), ExpandedHintFont = expandedHintFont, ExpandedHintWidthMultiplier = expandedHintWidthMultiplier, BackgroundTexture1 = Hud.Texture.ButtonTextureGray, BackgroundTexture2 = Hud.Texture.BackgroundTextureGreen, BackgroundTextureOpacity2 = 0.75f, TextFunc = () => Hud.Game.Me.Stats.PickupRange.ToString("F0", CultureInfo.InvariantCulture), HintFunc = () => "Pickup Range", ExpandUpLabels = new List <TopLabelDecorator>() { new TopLabelDecorator(Hud) { TextFont = Hud.Render.CreateFont("tahoma", 7, 230, 255, 200, 200, false, false, true), ExpandedHintFont = expandedHintFont, ExpandedHintWidthMultiplier = expandedHintWidthMultiplier, BackgroundTexture1 = Hud.Texture.ButtonTextureGray, BackgroundTexture2 = Hud.Texture.BackgroundTextureGreen, BackgroundTextureOpacity2 = 0.75f, TextFunc = () => (Hud.Game.Me.Stats.GoldFind).ToString("#,0", CultureInfo.InvariantCulture) + "%", HintFunc = () => "Gold Find", }, new TopLabelDecorator(Hud) { TextFont = Hud.Render.CreateFont("tahoma", 7, 230, 255, 200, 200, true, false, true), ExpandedHintFont = expandedHintFont, ExpandedHintWidthMultiplier = expandedHintWidthMultiplier, BackgroundTexture1 = Hud.Texture.ButtonTextureGray, BackgroundTexture2 = Hud.Texture.BackgroundTextureGreen, BackgroundTextureOpacity2 = 0.75f, TextFunc = () => (Hud.Game.Me.Stats.MagicFind).ToString("F0", CultureInfo.InvariantCulture) + "%", HintFunc = () => "Magic Find", }, } }); // exp 10 LabelList.LabelDecorators.Add(new TopLabelDecorator(Hud) { TextFont = Hud.Render.CreateFont("tahoma", 7, 230, 255, 200, 200, false, false, true), ExpandedHintFont = expandedHintFont, ExpandedHintWidthMultiplier = expandedHintWidthMultiplier, BackgroundTexture1 = Hud.Texture.ButtonTextureOrange, BackgroundTexture2 = Hud.Texture.BackgroundTextureGreen, BackgroundTextureOpacity2 = 0.75f, TextFunc = () => ValueToString(Hud.Game.ExperiencePerHourToday, ValueFormat.ShortNumber) + "/h", HintFunc = () => "Exp Per Hour Today", ExpandUpLabels = new List <TopLabelDecorator>() { new TopLabelDecorator(Hud) { TextFont = Hud.Render.CreateFont("tahoma", 7, 230, 255, 200, 200, true, false, true), ExpandedHintFont = expandedHintFont, ExpandedHintWidthMultiplier = expandedHintWidthMultiplier, BackgroundTexture1 = Hud.Texture.ButtonTextureOrange, BackgroundTexture2 = Hud.Texture.BackgroundTextureGreen, BackgroundTextureOpacity2 = 0.75f, TextFunc = () => (Hud.Game.Me.Stats.ExperiencePercentBonus * 100).ToString("F0", CultureInfo.InvariantCulture) + "%", HintFunc = () => "Bonus Exp", }, new TopLabelDecorator(Hud) { TextFont = Hud.Render.CreateFont("tahoma", 7, 230, 255, 200, 200, true, false, true), ExpandedHintFont = expandedHintFont, ExpandedHintWidthMultiplier = expandedHintWidthMultiplier, BackgroundTexture1 = Hud.Texture.ButtonTextureOrange, BackgroundTexture2 = Hud.Texture.BackgroundTextureGreen, BackgroundTextureOpacity2 = 0.75f, TextFunc = () => Hud.Game.Me.Stats.ExpOnKill.ToString("F0", CultureInfo.InvariantCulture), HintFunc = () => "Exp On Kill", }, new TopLabelDecorator(Hud) { TextFont = Hud.Render.CreateFont("tahoma", 7, 230, 255, 200, 200, true, false, true), ExpandedHintFont = expandedHintFont, ExpandedHintWidthMultiplier = expandedHintWidthMultiplier, BackgroundTexture1 = Hud.Texture.ButtonTextureOrange, BackgroundTexture2 = Hud.Texture.BackgroundTextureGreen, BackgroundTextureOpacity2 = 0.75f, TextFunc = () => Hud.Game.Me.Stats.ExperienceOnKillBonus.ToString("F0", CultureInfo.InvariantCulture), HintFunc = () => "Exp On Kill (Bonus)", }, new TopLabelDecorator(Hud) { TextFont = Hud.Render.CreateFont("tahoma", 7, 230, 255, 200, 200, true, false, true), ExpandedHintFont = expandedHintFont, ExpandedHintWidthMultiplier = expandedHintWidthMultiplier, BackgroundTexture1 = Hud.Texture.ButtonTextureOrange, BackgroundTexture2 = Hud.Texture.BackgroundTextureGreen, BackgroundTextureOpacity2 = 0.75f, TextFunc = () => Hud.Game.Me.Stats.ExpOnKillNoPenalty.ToString("F0", CultureInfo.InvariantCulture), HintFunc = () => "Exp On Kill (No Penalty)", }, } }); }