public static void BuildReplacementArgs_MobState( List <Tuple <string, string> > replacementArgs, MobStateType sourceMobState, double sourceMobHpPercentLeft, MobStateType destMobStateDefault) { if (sourceMobHpPercentLeft < 100.0) { replacementArgs.Add(Tuple.Create("MobState", "BelowHp")); replacementArgs.Add(Tuple.Create("MobHpPercentLeft", sourceMobHpPercentLeft.ToString())); } else if (sourceMobState != destMobStateDefault) { replacementArgs.Add(Tuple.Create("MobState", sourceMobState.ToString())); } }
// 30May2013-08:11UTC chinajade public static void CheckMobState( List <string> exclusionReasons, WoWObject wowObject, MobStateType mobState, double mobLowHealthThreshold) { var wowUnit = wowObject.ToUnit(); if (Query.IsViable(wowUnit)) { if (!Query.IsStateMatch_MobState(wowUnit, mobState, mobLowHealthThreshold)) { exclusionReasons.Add(wowUnit.HealthPercent <= mobLowHealthThreshold ? string.Format("!{0}", mobState) : string.Format("!{0}({1}%)", MobStateType.BelowHp, mobLowHealthThreshold)); } } }
// 28Apr2013-03:38UTC chinajade public static bool IsStateMatch_MobState(WoWObject wowObject, MobStateType requestedMobState, double mobHpPercentLeft = 100.0) { var wowUnit = wowObject as WoWUnit; if (wowUnit != null) { bool isMobAlive = wowUnit.IsAlive; return ((wowUnit.HealthPercent <= mobHpPercentLeft) && (requestedMobState == MobStateType.DontCare) || ((requestedMobState == MobStateType.Alive) && isMobAlive) || ((requestedMobState == MobStateType.AliveNotInCombat) && isMobAlive && !wowUnit.Combat) || ((requestedMobState == MobStateType.BelowHp) && isMobAlive) || ((requestedMobState == MobStateType.Dead) && wowUnit.IsDead && wowUnit.IsUntagged())); } return(false); }