//track Oculus buff uptime
Watching.Add(new UptimeRule()
{
IsRelevant = () => Hud.Game.Players.Any(p => p.Powers.BuffIsActive(Hud.Sno.SnoPowers.OculusRing.Sno)), //someone in the party (or active follower) has oculus ring equipped/cubed
IsUp = () =>
IsInRift() &&
Hud.Game.Me.InCombat &&
Hud.Game.Me.Powers.BuffIsActive(Hud.Sno.SnoPowers.OculusRing.Sno, 2) &&
Hud.Game.AliveMonsters.Any(m => m.IsElite && m.Rarity != ActorRarity.RareMinion && m.CentralXyDistanceToMe < OculusValidDistanceFromTarget), //player.FloorCoordinate.XYZDistanceTo(m.FloorCoordinate)
IsWatching = () => {
if (!IsInRift()) return false;
if (!Hud.Game.Me.InCombat) return false;
var circles = Hud.Game.Actors.Where(a => a.SnoActor.Sno == ActorSnoEnum._generic_proxy && a.GetAttributeValueAsInt(Hud.Sno.Attributes.Power_Buff_1_Visual_Effect_None, Hud.Sno.SnoPowers.OculusRing.Sno) == 1);
return circles.Any(c => Hud.Game.AliveMonsters.Any(m => m.IsElite && m.Rarity != ActorRarity.RareMinion && c.FloorCoordinate.XYZDistanceTo(m.FloorCoordinate) < OculusValidDistanceFromTarget+10));
},
Description = "Oculus " + TextUptime,
Uptime = Hud.Time.CreateWatch(),
TotalTime = Hud.Time.CreateWatch(),
//BgBrush = Hud.Render.CreateBrush(200, 76, 79, 7, 0),
Font = Hud.Render.CreateFont("tahoma", 7, 255, 158, 255, 100, false, false, true), //255, 253, 229
});
//track Flying Dragon's buff uptime
Watching.Add(new UptimeRule()
{
IsRelevant = () => (Hud.Game.Me.CubeSnoItem1.Sno == Hud.Sno.SnoItems.Unique_CombatStaff_2H_009_x1.Sno), //flyingdragon's is cubed
IsUp = () => IsInRift() && Hud.Game.Me.InCombat && Hud.Game.Me.Powers.BuffIsActive(Hud.Sno.SnoPowers.FlyingDragon.Sno, 1),
IsWatching = () => IsInRift() && Hud.Game.Me.InCombat,
Description = "Flying Dragon " + TextUptime,
Uptime = Hud.Time.CreateWatch(),
TotalTime = Hud.Time.CreateWatch(),
//BgBrush = Hud.Render.CreateBrush(200, 81, 78, 72, 0),
Font = Hud.Render.CreateFont("tahoma", 7, 255, 255, 251, 209, false, false, true),
});