|
32 | 32 | import mekhq.campaign.Campaign;
|
33 | 33 | import mekhq.campaign.CampaignOptions;
|
34 | 34 | import mekhq.campaign.finances.Money;
|
| 35 | +import mekhq.campaign.mission.IPlayerSettings; |
35 | 36 | import mekhq.campaign.personnel.Person;
|
36 | 37 | import mekhq.campaign.personnel.SkillType;
|
37 | 38 | import mekhq.campaign.personnel.enums.PersonnelRole;
|
@@ -1285,4 +1286,90 @@ public static MechSummary retrieveOriginalUnit(Entity newE) throws EntityLoading
|
1285 | 1286 |
|
1286 | 1287 | return summary;
|
1287 | 1288 | }
|
| 1289 | + |
| 1290 | + public static List<String> generateEntityStub(List<Entity> entities) { |
| 1291 | + List<String> stub = new ArrayList<>(); |
| 1292 | + for (Entity en : entities) { |
| 1293 | + if (null == en) { |
| 1294 | + stub.add("<html><font color='red'>No random assignment table found for faction</font></html>"); |
| 1295 | + } else { |
| 1296 | + stub.add("<html>" + en.getCrew().getName() + " (" + |
| 1297 | + en.getCrew().getGunnery() + "/" + |
| 1298 | + en.getCrew().getPiloting() + "), " + |
| 1299 | + "<i>" + en.getShortName() + "</i>" + |
| 1300 | + "</html>"); |
| 1301 | + } |
| 1302 | + } |
| 1303 | + return stub; |
| 1304 | + } |
| 1305 | + |
| 1306 | + /** |
| 1307 | + * Display a descriptive character string for the deployment parameters in an object that implements IPlayerSettings |
| 1308 | + * @param player object that implements IPlayerSettings |
| 1309 | + * @return A character string |
| 1310 | + */ |
| 1311 | + public static String getDeploymentString(Player player) { |
| 1312 | + StringBuilder result = new StringBuilder(""); |
| 1313 | + |
| 1314 | + if(player.getStartingPos() >=0 |
| 1315 | + && player.getStartingPos() <= IStartingPositions.START_LOCATION_NAMES.length) { |
| 1316 | + result.append(IStartingPositions.START_LOCATION_NAMES[player.getStartingPos()]); |
| 1317 | + } |
| 1318 | + |
| 1319 | + if (player.getStartingPos() == 0) { |
| 1320 | + int NWx = player.getStartingAnyNWx() + 1; |
| 1321 | + int NWy = player.getStartingAnyNWy() + 1; |
| 1322 | + int SEx = player.getStartingAnySEx() + 1; |
| 1323 | + int SEy = player.getStartingAnySEy() + 1; |
| 1324 | + if ((NWx + NWy + SEx + SEy) > 0) { |
| 1325 | + result.append(" (" + NWx + ", " + NWy + ")-(" + SEx + ", " + SEy + ")"); |
| 1326 | + } |
| 1327 | + } |
| 1328 | + int so = player.getStartOffset(); |
| 1329 | + int sw = player.getStartWidth(); |
| 1330 | + if ((so != 0) || (sw != 3)) { |
| 1331 | + result.append(", " + so); |
| 1332 | + result.append(", " + sw); |
| 1333 | + } |
| 1334 | + |
| 1335 | + return result.toString(); |
| 1336 | + } |
| 1337 | + |
| 1338 | + public static String getDeploymentString(IPlayerSettings settings) { |
| 1339 | + return getDeploymentString(createPlayer(settings)); |
| 1340 | + } |
| 1341 | + |
| 1342 | + /** |
| 1343 | + * Create a Player object from IPlayerSettings parameters. Useful for tracking these variables in dialogs. |
| 1344 | + * @param settings an object that implements IPlayerSettings |
| 1345 | + * @return A Player object |
| 1346 | + */ |
| 1347 | + public static Player createPlayer(IPlayerSettings settings) { |
| 1348 | + Player p = new Player(1, "fake"); |
| 1349 | + p.setStartingPos(settings.getStartingPos()); |
| 1350 | + p.setStartWidth(settings.getStartWidth()); |
| 1351 | + p.setStartOffset(settings.getStartOffset()); |
| 1352 | + p.setStartingAnyNWx(settings.getStartingAnyNWx()); |
| 1353 | + p.setStartingAnyNWy(settings.getStartingAnyNWy()); |
| 1354 | + p.setStartingAnySEx(settings.getStartingAnySEx()); |
| 1355 | + p.setStartingAnySEy(settings.getStartingAnySEy()); |
| 1356 | + |
| 1357 | + return p; |
| 1358 | + } |
| 1359 | + |
| 1360 | + /** |
| 1361 | + * Update values of an object that implements IPlayerSettings from a player object |
| 1362 | + * @param settings An object that implements IPlayerSettings |
| 1363 | + * @param player A Player object from which to read values |
| 1364 | + */ |
| 1365 | + public static void updatePlayerSettings(IPlayerSettings settings, Player player) { |
| 1366 | + settings.setStartingPos(player.getStartingPos()); |
| 1367 | + settings.setStartWidth(player.getStartWidth()); |
| 1368 | + settings.setStartOffset(player.getStartOffset()); |
| 1369 | + settings.setStartingAnyNWx(player.getStartingAnyNWx()); |
| 1370 | + settings.setStartingAnyNWy(player.getStartingAnyNWy()); |
| 1371 | + settings.setStartingAnySEx(player.getStartingAnySEx()); |
| 1372 | + settings.setStartingAnySEy(player.getStartingAnySEy()); |
| 1373 | + |
| 1374 | + } |
1288 | 1375 | }
|
0 commit comments