//credits to Singular devs protected Composite CreateMoveToAndFace(float maxRange, float coneDegrees, UnitSelectDelegate unit, bool noMovement) { return(new Decorator( ret => !DunatanksSettings.Instance.DisableMovement && unit(ret) != null, new PrioritySelector( new Decorator( ret => (!unit(ret).InLineOfSightOCD || (!noMovement && unit(ret).DistanceSqr > maxRange * maxRange)), new Action(ret => Navigator.MoveTo(unit(ret).Location))), //Returning failure for movestop for smoother movement //Rest should return success ! new Decorator( ret => Me.IsMoving && unit(ret).DistanceSqr <= maxRange * maxRange, new Action(delegate { Navigator.PlayerMover.MoveStop(); return RunStatus.Failure; })), new Decorator( ret => Me.CurrentTarget != null && Me.CurrentTarget.IsAlive && !Me.IsSafelyFacing(Me.CurrentTarget, coneDegrees), new Action(ret => Me.CurrentTarget.Face())) ))); }
protected Composite CreateMoveToAndFace(UnitSelectDelegate unitToCheck) { return CreateMoveToAndFace(5f, unitToCheck); }
protected Composite CreateMoveToAndFace(float maxRange, UnitSelectDelegate distanceFrom) { return CreateMoveToAndFace(maxRange, 70, distanceFrom); }
protected Composite CreateMoveToAndFace(float maxRange, float coneDegrees, UnitSelectDelegate unit) { return CreateMoveToAndFace(maxRange, coneDegrees, unit, false); }
//credits to Singular devs protected Composite CreateMoveToAndFace(float maxRange, float coneDegrees, UnitSelectDelegate unit, bool noMovement) { return new Decorator( ret => !DunatanksSettings.Instance.DisableMovement && unit(ret) != null, new PrioritySelector( new Decorator( ret => (!unit(ret).InLineOfSight || (!noMovement && unit(ret).DistanceSqr > maxRange * maxRange)), new Action(ret => Navigator.MoveTo(unit(ret).Location))), //Returning failure for movestop for smoother movement //Rest should return success ! new Decorator( ret => Me.IsMoving && unit(ret).DistanceSqr <= maxRange * maxRange, new Action(delegate { Navigator.PlayerMover.MoveStop(); return RunStatus.Failure; })), new Decorator( ret => Me.CurrentTarget != null && Me.CurrentTarget.IsAlive && !Me.IsSafelyFacing(Me.CurrentTarget, coneDegrees), new Action(ret => Me.CurrentTarget.Face())) )); }
protected Composite CreateFaceUnit(UnitSelectDelegate unitToCheck) { return CreateMoveToAndFace(5f, 70, unitToCheck, true); }
public void UnRegisterUnitSelectCallback(UnitSelectDelegate callback) { UnitSelectCallback -= callback; UIwaitingForUnitSelection = false; }
public void RegisterUnitSelectCallback(UnitSelectDelegate callback) { UnitSelectCallback += callback; UIwaitingForUnitSelection = true; }
public Composite CreateBuffCheckAndCast(string name, UnitSelectDelegate onUnit, CanRunDecoratorDelegate extra, bool targetLast) { return new Decorator(ret => extra(ret) && SpellManager.CanBuff(name, onUnit(ret)), new Action(ret => SpellManager.Buff(name, onUnit(ret)))); }
public Composite CreateBuffCheckAndCast(string name, UnitSelectDelegate onUnit, CanRunDecoratorDelegate extra) { return CreateBuffCheckAndCast(name, onUnit, extra, false); }
public Composite CreateBuffCheckAndCast(string name, UnitSelectDelegate onUnit) { return new Decorator(ret => SpellManager.CanBuff(name, onUnit(ret)), new Action(ret => SpellManager.Buff(name, onUnit(ret)))); }
protected Composite CreateFaceUnit(UnitSelectDelegate unitToCheck) { return(CreateMoveToAndFace(5f, 70, unitToCheck, true)); }
protected Composite CreateMoveToAndFace(UnitSelectDelegate unitToCheck) { return(CreateMoveToAndFace(5f, unitToCheck)); }
protected Composite CreateMoveToAndFace(float maxRange, UnitSelectDelegate distanceFrom) { return(CreateMoveToAndFace(maxRange, 70, distanceFrom)); }
protected Composite CreateMoveToAndFace(float maxRange, float coneDegrees, UnitSelectDelegate unit) { return(CreateMoveToAndFace(maxRange, coneDegrees, unit, false)); }