@Override public String getKey() { return mechSummary.getName(); }
@Override public String toString() { if (entry instanceof MechSummary) { return ((MechSummary)entry).getName(); } return entry.toString(); } }
/** * Find the role used for Campaign Operations/AlphaStrike formation building rules. * * @param ms A unit summary * @return The role defined for the unit in data/unit_roles.txt, or UNDETERMINED if * the unit has no entry */ public static UnitRole getRoleFor(MechSummary ms) { return getRoleFor(ms.getName()); }
private void searchFor(String search) { for (int i = 0; i < mechs.length; i++) { if (mechs[i].getName().toLowerCase().startsWith(search)) { int selected = tableUnits.convertRowIndexToView(i); if (selected > -1) { tableUnits.changeSelection(selected, 0, false, false); break; } } } }
/** * Helper function used by some grouping constraints to compare units. Units are considered to match * if they are the same model, but omnis can match with different configurations. This is used primarily * for ground units; aerospace units match based on chassis. * * @param ms0 * @param ms1 * @return Whether the two units are considered the same for grouping considerations. */ private static boolean checkUnitMatch(final MechSummary ms0, final MechSummary ms1) { final ModelRecord mRec = RATGenerator.getInstance().getModelRecord(ms0.getName()); if (null != mRec && mRec.isOmni()) { return ms0.getChassis().equals(ms1.getChassis()); } else { return ms0.getName().equals(ms1.getName()); } }
private static void createVehicleCommandLance() { FormationType ft = new FormationType("Vehicle Command", "Command"); ft.allowedUnitTypes = FLAG_TANK | FLAG_VTOL | FLAG_NAVAL; ft.otherCriteria.add(new CountConstraint(1, ms -> EnumSet.of(UnitRole.BRAWLER, UnitRole.STRIKER, UnitRole.SCOUT) .contains(UnitRoleHandler.getRoleFor(ms)), "Brawler, Striker, Scout")); /* The description does not state how many pairs there need to be, but the reference to * "one of the pairs" implies there need to be at least two. */ ft.groupingCriteria = new GroupingConstraint(FLAG_VEHICLE, 2, 2, ms -> EnumSet.of(UnitRole.SNIPER, UnitRole.MISSILE_BOAT, UnitRole.SKIRMISHER, UnitRole.JUGGERNAUT) .contains(UnitRoleHandler.getRoleFor(ms)), (ms0, ms1) -> ms0.getName().equals(ms1.getName()), "Same model"); allFormationTypes.put(ft.name, ft); }
private static Set<MissionRole> getMissionRoles(MechSummary ms) { ModelRecord mRec = RATGenerator.getInstance().getModelRecord(ms.getName()); return mRec == null? EnumSet.noneOf(MissionRole.class) : mRec.getRoles(); }
private static int getNetworkMask(MechSummary ms) { ModelRecord mRec = RATGenerator.getInstance().getModelRecord(ms.getName()); return mRec == null? ModelRecord.NETWORK_NONE : mRec.getNetworkMask(); }
private int getNetworkMask(MechSummary ms) { ModelRecord mRec = RATGenerator.getInstance().getModelRecord(ms.getName()); return mRec == null? ModelRecord.NETWORK_NONE : mRec.getNetworkMask(); }
public void writeToXml(PrintWriter pw1, int indent) { pw1.println(MekHqXmlUtil.indentStr(indent) + "<unitMarket>"); for (MarketOffer o : offers) { pw1.println(MekHqXmlUtil.indentStr(indent + 1) + "<offer>"); pw1.println(MekHqXmlUtil.indentStr(indent + 2) + "<market>" + o.market + "</market>"); pw1.println(MekHqXmlUtil.indentStr(indent + 2) + "<unitType>" + o.unitType + "</unitType>"); pw1.println(MekHqXmlUtil.indentStr(indent + 2) + "<unitWeight>" + o.unitWeight + "</unitWeight>"); pw1.println(MekHqXmlUtil.indentStr(indent + 2) + "<unit>" + o.unit.getName() + "</unit>"); pw1.println(MekHqXmlUtil.indentStr(indent + 2) + "<pct>" + o.pct + "</pct>"); pw1.println(MekHqXmlUtil.indentStr(indent + 1) + "</offer>"); } pw1.println(MekHqXmlUtil.indentStr(indent) + "</unitMarket>"); }
/** * @param index * @return - a string representing the entry at the indicated index for use in the table */ public String getEntryText(int index) { if (index >= salvageTable.size()) { return unitTable.get(index - salvageTable.size()).getUnitEntry().getName(); } else { if (key.getFaction().isClan()) { return "Isorla: " + salvageTable.get(index).getSalvageFaction().getName(key.getYear() - 5); } else { return "Salvage: " + salvageTable.get(index).getSalvageFaction().getName(key.getYear() - 5); } } }
@Override public Object getValueAt(int rowIndex, int columnIndex) { MechSummary ms = units.get(rowIndex); switch(columnIndex) { case COL_NAME: return ms.getName(); case COL_WEIGHT_CLASS: return EntityWeightClass.getClassName(EntityWeightClass.getWeightClass(ms.getTons(), ms.getUnitType())); case COL_MOVEMENT: StringBuilder sb = new StringBuilder(); sb.append(String.valueOf(ms.getWalkMp())).append("/") .append(String.valueOf(ms.getRunMp())); if (formationType.isGround()) { sb.append("/").append(String.valueOf(ms.getJumpMp())); } return sb.toString(); case COL_ROLE: ModelRecord mr = RATGenerator.getInstance().getModelRecord(ms.getName()); if (null == mr) { return UnitRole.UNDETERMINED.toString(); } else { return UnitRoleHandler.getRoleFor(mr.getKey()).toString(); } default: Function<MechSummary,?> metric = formationType.getReportMetric(colNames.get(columnIndex)); return metric == null? "?" : metric.apply(ms); } } }
public String addSingleUnit(Campaign campaign, int market, int unitType, String faction, int quality, int pricePct) { int weight = getRandomWeight(unitType, faction, campaign.getCampaignOptions().getRegionalMechVariations()); MechSummary ms = campaign.getUnitGenerator().generate(faction, unitType, weight, campaign.getCalendar().get(Calendar.YEAR), quality); if (ms == null) { return null; } else { offers.add(new MarketOffer(market, unitType, weight, ms, pricePct)); return ms.getName(); } }
public Object getValueAt(int row, int col) { MechSummary m = getUnitAt(row); String value = ""; if (col == COL_BV) { value += m.getBV(); } else if (col == COL_MOVE) { value += m.getWalkMp() + "/" + m.getRunMp() + "/" + m.getJumpMp(); } else { return m.getName(); } return value; }
unitType, unitWeight, targetYear, unitQuality, test); if (ms != null) { unitPicked.setText(ms.getName()); return ms;
private static ITechnology calcTechProgression(MechSummary ms, int techFaction) { final String METHOD_NAME = "calcTechProgression(MechSummary, int)"; // $NON-NLS-1$ try { Entity en = new MechFileParser(ms.getSourceFile(), ms.getEntryName()).getEntity(); if (null == en) { MekHQ.getLogger().log(BuildMapTask.class, METHOD_NAME, LogLevel.ERROR, "Entity was null: " + ms.getName()); } return en.factionTechLevel(techFaction); } catch (EntityLoadingException ex) { MekHQ.getLogger().log(BuildMapTask.class, METHOD_NAME, LogLevel.ERROR, "Exception loading entity " + ms.getName()); MekHQ.getLogger().error(BuildMapTask.class, METHOD_NAME, ex); return null; } }
public void loadEntities(Ruleset.ProgressListener l, double progress) { if (element) { MechSummary ms = MechSummaryCache.getInstance().getMech(getModelName()); if (ms != null) { try { entity = new MechFileParser(ms.getSourceFile(), ms.getEntryName()).getEntity(); entity.setCrew(getCo().createCrew(entity.defaultCrewType())); entity.setExternalIdAsString(UUID.randomUUID().toString()); } catch (EntityLoadingException ex) { DefaultMmLogger.getInstance().log(getClass(), "loadEntities(Ruleset#ProgressListener, double)", LogLevel.ERROR, "Error loading " + ms.getName() + " from file " + ms.getSourceFile().getPath()); DefaultMmLogger.getInstance().error(getClass(), "loadEntities(Ruleset#ProgressListener, double)", ex); } } } int count = subforces.size() + attached.size(); subforces.forEach(fd -> fd.loadEntities(l, progress / count)); attached.forEach(fd -> fd.loadEntities(l, progress / count)); if (count == 0 && null != l) { l.updateProgress(progress, "Loading entities"); } }
@Override public boolean include(Entry<? extends MechTableModel, ? extends Integer> entry) { MechTableModel mechModel = entry.getModel(); MechSummary mech = mechModel.getMechSummary(entry.getIdentifier()); ITechnology tech = UnitTechProgression.getProgression(mech, campaign.getTechFaction(), true); if ( /*year limits*/ (!campaign.getCampaignOptions().limitByYear() || mech.getYear() <= year) && /*Clan/IS limits*/ (campaign.getCampaignOptions().allowClanPurchases() || !TechConstants.isClan(mech.getType())) && (campaign.getCampaignOptions().allowISPurchases() || TechConstants.isClan(mech.getType())) && /* Canon */ (mech.isCanon() || !campaign.getCampaignOptions().allowCanonOnly()) && /* Weight */ (mech.getWeightClass() == nClass || nClass == EntityWeightClass.SIZE) && /* Technology Level */ (null != tech) && campaign.isLegal(tech) && /*Unit type*/ (nUnit == UnitType.SIZE || mech.getUnitType().equals(UnitType.getTypeName(nUnit))) && (searchFilter==null || MechSearchFilter.isMatch(mech, searchFilter))) { if(txtFilter.getText().length() > 0) { String text = txtFilter.getText(); return mech.getName().toLowerCase().contains(text.toLowerCase()); } return true; } return false; } };
for (MechSummary ms : shipList) { ForceDescriptor sub = transports.createChild(transports.getSubforces().size()); sub.setUnit(RATGenerator.getInstance().getModelRecord(ms.getName())); sub.setEschelon(1); sub.setCoRank(34);