add intersected summ
This commit is contained in:
@@ -30,6 +30,7 @@ import ru.trader.view.support.autocomplete.SystemsProvider;
|
|||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
|
import java.util.Set;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
public class PowerPlayController {
|
public class PowerPlayController {
|
||||||
@@ -204,7 +205,9 @@ public class PowerPlayController {
|
|||||||
String ccFormat = Localization.getString("powerplay.label.summcc");
|
String ccFormat = Localization.getString("powerplay.label.summcc");
|
||||||
String pwCCFormat = Localization.getString("powerplay.label.cc");
|
String pwCCFormat = Localization.getString("powerplay.label.cc");
|
||||||
PowerStringConverter converter = new PowerStringConverter();
|
PowerStringConverter converter = new PowerStringConverter();
|
||||||
|
Place hq = ModelFabric.get(hqSystem.orElse(null));
|
||||||
long[] contestedCc = new long[POWER.values().length];
|
long[] contestedCc = new long[POWER.values().length];
|
||||||
|
long[] intersectedCc = new long[POWER.values().length];
|
||||||
long[] totalCc = new long[POWER.values().length];
|
long[] totalCc = new long[POWER.values().length];
|
||||||
long contested = 0;
|
long contested = 0;
|
||||||
long summCc = 0;
|
long summCc = 0;
|
||||||
@@ -213,27 +216,34 @@ public class PowerPlayController {
|
|||||||
summCc += cc;
|
summCc += cc;
|
||||||
if (entry.getPower() == null || entry.getPowerState() == null) continue;
|
if (entry.getPower() == null || entry.getPowerState() == null) continue;
|
||||||
if (entry.getPowerState() != POWER_STATE.NONE){
|
if (entry.getPowerState() != POWER_STATE.NONE){
|
||||||
contested += cc;
|
if (hq == null || !entry.getPowerState().isExploited() && !entry.getPowerState().isControl()
|
||||||
|
|| entry.getPower() != hq.getPower()) {
|
||||||
|
contested += cc;
|
||||||
|
}
|
||||||
|
Set<POWER> powers = entry.getControllingSystems().stream().map(Place::getPower).collect(Collectors.toSet());
|
||||||
if (entry.getPowerState() == POWER_STATE.CONTESTED){
|
if (entry.getPowerState() == POWER_STATE.CONTESTED){
|
||||||
for (Place place : entry.getControllingSystems()){
|
for (POWER power : powers){
|
||||||
contestedCc[place.getPower().ordinal()] += cc;
|
contestedCc[power.ordinal()] += cc;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
if (entry.getControllingSystems().size()>1){
|
||||||
|
intersectedCc[entry.getPower().ordinal()] += cc;
|
||||||
|
}
|
||||||
totalCc[entry.getPower().ordinal()] += cc;
|
totalCc[entry.getPower().ordinal()] += cc;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
double upkeep = 0;
|
double upkeep = 0;
|
||||||
if (hqSystem.isPresent() && starSystem != null){
|
if (hq != null && starSystem != null){
|
||||||
upkeep = starSystem.computeUpkeep(ModelFabric.get(hqSystem.get()));
|
upkeep = starSystem.computeUpkeep(hq);
|
||||||
}
|
}
|
||||||
|
|
||||||
StringBuilder builder = new StringBuilder();
|
StringBuilder builder = new StringBuilder();
|
||||||
builder.append(String.format(ccFormat, summCc, contested, upkeep, summCc - contested - upkeep));
|
builder.append(String.format(ccFormat, summCc, contested, summCc - contested, upkeep, summCc - contested - upkeep));
|
||||||
for (int i = 0; i < POWER.values().length; i++) {
|
for (int i = 0; i < POWER.values().length; i++) {
|
||||||
if (totalCc[i] > 0 || contestedCc[i] > 0){
|
if (totalCc[i] > 0 || contestedCc[i] > 0){
|
||||||
builder.append("\n");
|
builder.append("\n");
|
||||||
builder.append(String.format(pwCCFormat, converter.toString(POWER.values()[i]), totalCc[i], contestedCc[i]));
|
builder.append(String.format(pwCCFormat, converter.toString(POWER.values()[i]), totalCc[i], contestedCc[i], intersectedCc[i]));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return builder.toString();
|
return builder.toString();
|
||||||
@@ -459,7 +469,7 @@ public class PowerPlayController {
|
|||||||
currentUpkeep = new SimpleLongProperty(data.getStarSystem().getUpkeep());
|
currentUpkeep = new SimpleLongProperty(data.getStarSystem().getUpkeep());
|
||||||
upkeep = new SimpleDoubleProperty(hq != null ? data.getStarSystem().computeUpkeep(hq) : Double.NaN);
|
upkeep = new SimpleDoubleProperty(hq != null ? data.getStarSystem().computeUpkeep(hq) : Double.NaN);
|
||||||
income = new SimpleLongProperty(data.getStarSystem().getIncome());
|
income = new SimpleLongProperty(data.getStarSystem().getIncome());
|
||||||
cc = new SimpleLongProperty(data.getStarSystem().computeCC(ModelFabric.get(profile).getCCgroups()));
|
cc = new SimpleLongProperty(data.getStarSystem().computeCC());
|
||||||
}
|
}
|
||||||
|
|
||||||
private String getControllingString(Collection<PowerPlayAnalyzator.ControllingData> controllings) {
|
private String getControllingString(Collection<PowerPlayAnalyzator.ControllingData> controllings) {
|
||||||
|
|||||||
@@ -285,8 +285,8 @@ powerplay.label.controlling=Controlled systems:
|
|||||||
powerplay.label.power.systems=Systems of Power:
|
powerplay.label.power.systems=Systems of Power:
|
||||||
powerplay.label.power.state=State:
|
powerplay.label.power.state=State:
|
||||||
powerplay.label.populationSumm=Summ populations:
|
powerplay.label.populationSumm=Summ populations:
|
||||||
powerplay.label.cc=%s: %4d CC Contested: %4d CC
|
powerplay.label.cc=%s: %4d CC Contested: %4d CC Intersected: %4d CC
|
||||||
powerplay.label.summcc=Summ: %6d CC Contested: %6d CC Upkeep: %6.1f CC Total: %6.1f CC
|
powerplay.label.summcc=Summ: %5d CC Contested: %5d CC Income: %5d CC Upkeep: %5.0f CC Total: %5.0f CC
|
||||||
powerplay.result.title=Analyze result
|
powerplay.result.title=Analyze result
|
||||||
powerplay.column.intersecting=Intersect
|
powerplay.column.intersecting=Intersect
|
||||||
powerplay.column.intersectCount=Intersect count
|
powerplay.column.intersectCount=Intersect count
|
||||||
|
|||||||
@@ -285,8 +285,8 @@ powerplay.label.controlling=\u041A\u043E\u043D\u0442\u0440\u043E\u043B\u043B\u04
|
|||||||
powerplay.label.power.systems=C\u0438\u0441\u0442\u0435\u043C\u044B \u0441\u0438\u043B\u044B:
|
powerplay.label.power.systems=C\u0438\u0441\u0442\u0435\u043C\u044B \u0441\u0438\u043B\u044B:
|
||||||
powerplay.label.power.state=\u0421\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u0435:
|
powerplay.label.power.state=\u0421\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u0435:
|
||||||
powerplay.label.populationSumm=\u0421\u0443\u043C\u043C\u0430 \u043D\u0430\u0441\u0435\u043B\u0435\u043D\u0438\u044F:
|
powerplay.label.populationSumm=\u0421\u0443\u043C\u043C\u0430 \u043D\u0430\u0441\u0435\u043B\u0435\u043D\u0438\u044F:
|
||||||
powerplay.label.cc=%s: %4d \u041A\u041A \u041E\u0441\u043F\u0430\u0440\u0438\u0432\u0430\u0435\u043C\u044B\u0445: %4d \u041A\u041A
|
powerplay.label.cc=%s: %4d \u041A\u041A \u041E\u0441\u043F\u0430\u0440\u0438\u0432\u0430\u0435\u043C\u044B\u0445: %4d \u041A\u041A \u041F\u0435\u0440\u0435\u0441\u0435\u043A\u0430\u044E\u0449\u0438\u0445\u0441\u044F: %4d \u041A\u041A
|
||||||
powerplay.label.summcc=\u0421\u0443\u043C\u043C\u0430: %6d \u041A\u041A \u041E\u0441\u043F\u0430\u0440\u0438\u0432\u0430\u0435\u043C\u044B\u0445: %6d \u041A\u041A \u0420\u0430\u0441\u0445\u043E\u0434\u044B: %6.1f \u041A\u041A \u0418\u0442\u043E\u0433\u043E: %6.1f \u041A\u041A
|
powerplay.label.summcc=\u0421\u0443\u043C\u043C\u0430: %5d \u041A\u041A \u041E\u0441\u043F\u0430\u0440\u0438\u0432\u0430\u0435\u043C\u044B\u0445: %5d \u041A\u041A \u0414\u043E\u0445\u043E\u0434: %5d \u041A\u041A \u0420\u0430\u0441\u0445\u043E\u0434\u044B: %5.0f \u041A\u041A \u0418\u0442\u043E\u0433\u043E: %5.0f \u041A\u041A
|
||||||
powerplay.result.title=\u0420\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u044B \u0430\u043D\u0430\u043B\u0438\u0437\u0430
|
powerplay.result.title=\u0420\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u044B \u0430\u043D\u0430\u043B\u0438\u0437\u0430
|
||||||
powerplay.column.intersecting=\u041F\u0435\u0440\u0435\u0441\u0435\u043A\u0430\u0435\u0442\u0441\u044F \u0441
|
powerplay.column.intersecting=\u041F\u0435\u0440\u0435\u0441\u0435\u043A\u0430\u0435\u0442\u0441\u044F \u0441
|
||||||
powerplay.column.intersectCount=\u041F\u0435\u0440\u0435\u0441\u0435\u0447\u0435\u043D\u0438\u0439
|
powerplay.column.intersectCount=\u041F\u0435\u0440\u0435\u0441\u0435\u0447\u0435\u043D\u0438\u0439
|
||||||
|
|||||||
Reference in New Issue
Block a user