public double getAveWeight() { List<Entity> activeFighters = getActiveSubEntities() .orElse(Collections.emptyList()); return activeFighters.isEmpty() ? Double.NaN : (getWeight() / activeFighters.size()); }
@Override public boolean hasTargComp() { List<Entity> activeFighters = getActiveSubEntities() .orElse(Collections.emptyList()); if (activeFighters.isEmpty()) { return false; } int nTC = activeFighters.stream() .mapToInt(ent -> ent.hasTargComp() ? 1 : 0).sum(); return (nTC * 1.0 / activeFighters.size() >= 0.5); }
private List<ViewElement> getArmor() { FighterSquadron fs = (FighterSquadron) entity; List<ViewElement> retVal = new ArrayList<>(); retVal.add(new LabeledElement(Messages.getString("MechView.Armor"), //$NON-NLS-1$ String.valueOf(fs.getTotalArmor()))); retVal.add(new LabeledElement(Messages.getString("MechView.ActiveFighters"), //$NON-NLS-1$ String.valueOf(fs.getActiveSubEntities().orElse(Collections.emptyList()).size()))); return retVal; }
/** * update the skills for this squadron */ public void updateSkills() { List<Entity> activeFighters = getActiveSubEntities().orElse(Collections.emptyList()); if(activeFighters.isEmpty()) { return; } int pilotingTotal = 0; int gunneryTotal = 0; int gunneryLTotal = 0; int gunneryMTotal = 0; int gunneryBTotal = 0; for(Entity fighter : activeFighters) { pilotingTotal += fighter.getCrew().getPiloting(); gunneryTotal += fighter.getCrew().getGunnery(); gunneryLTotal += fighter.getCrew().getGunneryL(); gunneryMTotal += fighter.getCrew().getGunneryM(); gunneryBTotal += fighter.getCrew().getGunneryB(); } getCrew().setPiloting(pilotingTotal / activeFighters.size(), 0); getCrew().setGunnery(gunneryTotal / activeFighters.size(), 0); getCrew().setGunneryL(gunneryLTotal / activeFighters.size(), 0); getCrew().setGunneryM(gunneryMTotal / activeFighters.size(), 0); getCrew().setGunneryB(gunneryBTotal / activeFighters.size(), 0); }