24 public boolean execute(String ruleId, InteractionDialogAPI dialog, List<Token> params, Map<String, MemoryAPI> memoryMap) {
31 boolean useSupplies =
true;
32 if (params.size() >= 1) {
33 useSupplies = params.get(0).getBoolean(memoryMap);
36 float supplies = playerFleet.getCargo().getSupplies();
37 float needed = playerFleet.getLogistics().getTotalRepairAndRecoverySupplyCost();
38 if (needed > 0) needed = Math.max(1, Math.round(needed));
44 for (FleetMemberAPI member : playerFleet.getFleetData().getMembersListCopy()) {
45 if (member.canBeRepaired() || (member.isFighterWing() && !member.getRepairTracker().isSuspendRepairs())) {
46 member.getStatus().repairFully();
47 float max = member.getRepairTracker().getMaxCR();
48 float curr = member.getRepairTracker().getBaseCR();
50 member.getRepairTracker().applyCREvent(max - curr,
"Repaired at dockyard");
55 if (needed > 0 && useSupplies) {
56 playerFleet.getCargo().removeSupplies(needed);
57 playerFleet.getLogistics().updateRepairUtilizationForUI();