public static Composite CreateMageLossOfControlBehavior() { return(new Decorator( req => Me.Combat, new PrioritySelector( // deal with Ice Block here (a stun of our own doing) new Decorator( ret => Me.ActiveAuras.ContainsKey("Ice Block"), new PrioritySelector( new Throttle(10, new Action(r => Logger.Write(Color.DodgerBlue, "^Ice Block for 10 secs"))), new Decorator( ret => DateTime.UtcNow < _cancelIceBlockForCauterize && !Me.ActiveAuras.ContainsKey("Cauterize"), new Action(ret => { Logger.Write(LogColor.Cancel, "/cancel Ice Block since Cauterize has expired"); _cancelIceBlockForCauterize = DateTime.MinValue; // Me.GetAuraByName("Ice Block").TryCancelAura(); Me.CancelAura("Ice Block"); return RunStatus.Success; }) ), new ActionIdle() ) ), Spell.BuffSelf("Cold Snap", req => Me.Combat && Me.HealthPercent < MageSettings.ColdSnapHealthPct) ) )); }