anchor.diff:                        else
                         begin
                           //Melee units must kill target unit and its Group
  -                        OrderExecuted := (OrderTargetUnit = nil) and (OrderTargetGroup = nil);
  -
  -                        if OrderTargetUnit <> nil then
  +                        OrderExecuted :=
  +                              //Target could become ally from script
  +                              ((OrderTargetUnit = nil)  or IsAllyTo(OrderTargetUnit))
  +                          and ((OrderTargetGroup = nil) or IsAllyTo(OrderTargetGroup));
  +
  +                        if (OrderTargetUnit <> nil) and not IsAllyTo(OrderTargetUnit) then //Target could become ally from script
                           begin
                             //See if target is escaping
                             if not KMSamePoint(OrderTargetUnit.NextPosition, fOrderLoc.Loc) then
  
positive.code:     Result := U.IsIdle and KMSamePoint(U.CurrPosition, P.Loc) and (U.Direction = Dir);
      if not Result then Exit;
    end;
  end;
  
  
  
negative.code:     function IsAttackingUnit: Boolean;
      function IsIdleToAI(aOrderWalkKindSet: TKMOrderWalkKindSet = []): Boolean;
      function IsPositioned(const aLoc: TKMPoint; Dir: TKMDirection): Boolean;
      function IsAllyTo(aUnit: TKMUnit): Boolean; overload;
      function IsAllyTo(aUnitGroup: TKMUnitGroup): Boolean; overload;
      function IsAllyTo(aHouse: TKMHouse): Boolean; overload;
      function CanTakeOrders: Boolean;
      function CanWalkTo(const aTo: TKMPoint; aDistance: Single): Boolean;
      function FightMaxRange: Single;
  