anchor.diff:      if (aGroupID > 0) then
       begin
         G := fIDCache.GetGroup(aGroupID);
  -      if (G <> nil) and (G.GroupType = gtMelee) then
  +      if (G <> nil) and (G.GroupType = gtMelee) and G.CanTakeOrders then
           G.OrderStorm(True);
       end
       else
  
positive.code:       G := fIDCache.GetGroup(aGroupID);
        U := fIDCache.GetUnit(aUnitID);
        if (G <> nil)
        and (U <> nil)
        and (U is TKMUnitWarrior)
        and (G.HasMember(TKMUnitWarrior(U))) then
  
negative.code:       and (aDirection in [dirN..dirNW]) then
      begin
        G := fIDCache.GetGroup(aGroupID);
        if (G <> nil) and G.CanTakeOrders and G.CanWalkTo(KMPoint(X,Y), 0) then
          G.OrderWalk(KMPoint(X,Y), True, wtokScript, aDirection);
      end
      else
  