Archived
0

implement add missions to route which don't have target

This commit is contained in:
iMoHax
2015-11-19 15:38:43 +03:00
parent 5d7ffaca6a
commit 34f789eae0
5 changed files with 179 additions and 25 deletions

View File

@@ -514,4 +514,35 @@ public class RouteFiller {
}
return reserves;
}
}
public static Collection<RouteReserve> changeReserves(final Route route, final int fromIndex, final Offer buyOffer, Collection<RouteReserve> oldReserves){
List<RouteReserve> reserves = new ArrayList<>();
int need = 0;
for (RouteReserve r : oldReserves) {
if (r.getFromIndex() > fromIndex){
need += r.getOrder().getCount();
}
}
int newEndIndex;
if (need > 0){
for (RouteReserve r : getReserves(route, fromIndex, buyOffer)) {
if (need <= 0) break;
if (r.getOrder().getCount() >= need){
r.getOrder().setCount(need);
}
reserves.add(r);
need -= r.getOrder().getCount();
}
newEndIndex = reserves.get(0).getToIndex();
} else {
newEndIndex = route.find(buyOffer.getVendor(), fromIndex);
}
for (RouteReserve r : oldReserves) {
if (r.getFromIndex() <= fromIndex){
RouteReserve reserve = new RouteReserve(r.getOrder(), r.getFromIndex(), newEndIndex);
reserves.add(reserve);
}
}
return reserves;
}
}