示例#1
0
        //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()))
                           )));
        }
示例#2
0
 protected Composite CreateMoveToAndFace(UnitSelectDelegate unitToCheck)
 {
     return CreateMoveToAndFace(5f, unitToCheck);
 }
示例#3
0
 protected Composite CreateMoveToAndFace(float maxRange, UnitSelectDelegate distanceFrom)
 {
     return CreateMoveToAndFace(maxRange, 70, distanceFrom);
 }
示例#4
0
 protected Composite CreateMoveToAndFace(float maxRange, float coneDegrees, UnitSelectDelegate unit)
 {
     return CreateMoveToAndFace(maxRange, coneDegrees, unit, false);
 }
示例#5
0
 //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()))
             ));
 }
示例#6
0
 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;
 }
示例#9
0
 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))));
 }
示例#10
0
 public Composite CreateBuffCheckAndCast(string name, UnitSelectDelegate onUnit, CanRunDecoratorDelegate extra)
 {
     return CreateBuffCheckAndCast(name, onUnit, extra, false);
 }
示例#11
0
 public Composite CreateBuffCheckAndCast(string name, UnitSelectDelegate onUnit)
 {
     return new Decorator(ret => SpellManager.CanBuff(name, onUnit(ret)),
                          new Action(ret => SpellManager.Buff(name, onUnit(ret))));
 }
示例#12
0
 protected Composite CreateFaceUnit(UnitSelectDelegate unitToCheck)
 {
     return(CreateMoveToAndFace(5f, 70, unitToCheck, true));
 }
示例#13
0
 protected Composite CreateMoveToAndFace(UnitSelectDelegate unitToCheck)
 {
     return(CreateMoveToAndFace(5f, unitToCheck));
 }
示例#14
0
 protected Composite CreateMoveToAndFace(float maxRange, UnitSelectDelegate distanceFrom)
 {
     return(CreateMoveToAndFace(maxRange, 70, distanceFrom));
 }
示例#15
0
 protected Composite CreateMoveToAndFace(float maxRange, float coneDegrees, UnitSelectDelegate unit)
 {
     return(CreateMoveToAndFace(maxRange, coneDegrees, unit, false));
 }