diff --git a/megameklab/resources/megameklab/printing/reference/ClusterHitsTable.properties b/megameklab/resources/megameklab/printing/reference/ClusterHitsTable.properties index 3389ec2b9..bd91b5dfe 100644 --- a/megameklab/resources/megameklab/printing/reference/ClusterHitsTable.properties +++ b/megameklab/resources/megameklab/printing/reference/ClusterHitsTable.properties @@ -1,5 +1,6 @@ title=CLUSTER HITS TABLE dieRoll2d6=Die Roll\n(2D6) +2d6=2D6 artemisIV.note=Artemis IV FCS: +2 artemisV.note=Artemis V FCS: +3 artemisProto.note=Prototype Artemis FCS: +1 diff --git a/megameklab/src/megameklab/printing/PrintCompositeTankSheet.java b/megameklab/src/megameklab/printing/PrintCompositeTankSheet.java index 28441f351..d59e88480 100644 --- a/megameklab/src/megameklab/printing/PrintCompositeTankSheet.java +++ b/megameklab/src/megameklab/printing/PrintCompositeTankSheet.java @@ -205,7 +205,7 @@ protected List getRightSideReferenceTables() { } else { list.add(new NotesTable(this, 12)); } - ClusterHitsTable table = new ClusterHitsTable(this, tank1); + ClusterHitsTable table = new ClusterHitsTable(this, tank1, false); if (table.required()) { list.add(table); } diff --git a/megameklab/src/megameklab/printing/PrintMech.java b/megameklab/src/megameklab/printing/PrintMech.java index e881e8c25..c1048662e 100644 --- a/megameklab/src/megameklab/printing/PrintMech.java +++ b/megameklab/src/megameklab/printing/PrintMech.java @@ -815,7 +815,7 @@ protected List getRightSideReferenceTables() { list.add(new PunchLocation(this)); list.add(new KickLocation(this)); list.add(new MekFallTable(this)); - ClusterHitsTable table = new ClusterHitsTable(this); + ClusterHitsTable table = new ClusterHitsTable(this, false); if (table.required()) { list.add(table); } diff --git a/megameklab/src/megameklab/printing/PrintSmallUnitSheet.java b/megameklab/src/megameklab/printing/PrintSmallUnitSheet.java index 0b7dc0dcc..415f1b1a1 100644 --- a/megameklab/src/megameklab/printing/PrintSmallUnitSheet.java +++ b/megameklab/src/megameklab/printing/PrintSmallUnitSheet.java @@ -159,7 +159,7 @@ protected List getRightSideReferenceTables() { list.add(new AntiMekAttackTable(this)); list.add(new SwarmAttackHitLocation(this)); } - ClusterHitsTable table = new ClusterHitsTable(this, entities); + ClusterHitsTable table = new ClusterHitsTable(this, entities, false); if (table.required() && table.columnCount() <= 10) { list.add(table); } @@ -169,7 +169,7 @@ protected List getRightSideReferenceTables() { @Override protected void addReferenceCharts(PageFormat pageFormat) { super.addReferenceCharts(pageFormat); - ClusterHitsTable clusterTable = new ClusterHitsTable(this, entities); + ClusterHitsTable clusterTable = new ClusterHitsTable(this, entities, false); if (clusterTable.columnCount() > 10) { printBottomTable(clusterTable, pageFormat); } else { diff --git a/megameklab/src/megameklab/printing/PrintTank.java b/megameklab/src/megameklab/printing/PrintTank.java index e356bf264..c378c4e8f 100644 --- a/megameklab/src/megameklab/printing/PrintTank.java +++ b/megameklab/src/megameklab/printing/PrintTank.java @@ -19,6 +19,7 @@ import org.w3c.dom.svg.SVGRectElement; import java.awt.*; +import java.awt.geom.Rectangle2D; import java.awt.print.PageFormat; import java.io.File; import java.util.*; @@ -192,13 +193,26 @@ public String formatFeatures() { @Override protected void drawFluffImage() { - Image fluffImage = getFluffImage(); - if (null != fluffImage) { - Element rect = getSVGDocument().getElementById(FLUFF_IMAGE); - if (rect instanceof SVGRectElement) { - embedImage(fluffImage, (Element) rect.getParentNode(), getRectBBox((SVGRectElement) rect), true); + Element rect = getSVGDocument().getElementById(FLUFF_IMAGE); + if (rect instanceof SVGRectElement) { + if (!options.showCondensedReferenceCharts()) { + Image fluffImage = getFluffImage(); + if (null != fluffImage) { + embedImage(fluffImage, (Element) rect.getParentNode(), getRectBBox((SVGRectElement) rect), true); + hideElement(getSVGDocument().getElementById(NOTES)); + } + } else { + var table = new ClusterHitsTable(this, true); + if (!table.required()) { + return; + } + Rectangle2D bbox = getRectBBox((SVGRectElement) rect); + placeReferenceCharts( + List.of(table), + rect.getParentNode(), bbox.getX() - 3.0, bbox.getY() - 6.0, + bbox.getWidth() + 6.0, bbox.getHeight() + 12.0); + hideElement(getSVGDocument().getElementById(NOTES)); } - hideElement(getSVGDocument().getElementById(NOTES)); } } @@ -212,7 +226,7 @@ protected List getRightSideReferenceTables() { List list = new ArrayList<>(); list.add(new GroundToHitMods(this)); list.add(new MovementCost(this)); - ClusterHitsTable table = new ClusterHitsTable(this); + ClusterHitsTable table = new ClusterHitsTable(this, false); if (table.required()) { list.add(table); } diff --git a/megameklab/src/megameklab/printing/reference/ClusterHitsTable.java b/megameklab/src/megameklab/printing/reference/ClusterHitsTable.java index f0ff38266..c05c0a4d5 100644 --- a/megameklab/src/megameklab/printing/reference/ClusterHitsTable.java +++ b/megameklab/src/megameklab/printing/reference/ClusterHitsTable.java @@ -17,6 +17,9 @@ import megamek.common.weapons.missiles.MissileWeapon; import megameklab.printing.PrintEntity; import megameklab.printing.PrintRecordSheet; +import org.apache.logging.log4j.Level; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import java.util.*; @@ -24,22 +27,26 @@ * Table showing the relevant columns of the cluster hits table */ public class ClusterHitsTable extends ReferenceTable { + private static final Logger log = LogManager.getLogger(ClusterHitsTable.class); protected final Set clusterSizes = new TreeSet<>(); protected boolean hasATM; protected boolean hasHAG; + protected boolean condensed; - public ClusterHitsTable(PrintEntity sheet) { - this(sheet, sheet.getEntity()); + public ClusterHitsTable(PrintEntity sheet, boolean condensed) { + this(sheet, sheet.getEntity(), condensed); } - public ClusterHitsTable(PrintRecordSheet sheet, Entity entity) { + public ClusterHitsTable(PrintRecordSheet sheet, Entity entity, boolean condensed) { super(sheet); + this.condensed = condensed; calculateClusterSizes(entity); addTable(entity); } - public ClusterHitsTable(PrintRecordSheet sheet, List entities) { + public ClusterHitsTable(PrintRecordSheet sheet, List entities, boolean condensed) { super(sheet); + this.condensed = condensed; for (Entity en : entities) { calculateClusterSizes(en); } @@ -59,7 +66,11 @@ protected void addTable(Entity entity) { } setColOffsets(offsets); List headers = new ArrayList<>(); - headers.add(bundle.getString("dieRoll2d6")); + if (!condensed) { + headers.add(bundle.getString("dieRoll2d6")); + } else { + headers.add(bundle.getString("2d6")); + } for (int size : clusterSizes) { headers.add(String.valueOf(size)); } diff --git a/megameklab/src/megameklab/printing/reference/MekLocationAndClusterTable.java b/megameklab/src/megameklab/printing/reference/MekLocationAndClusterTable.java index 24b7a283e..2b4fe1361 100644 --- a/megameklab/src/megameklab/printing/reference/MekLocationAndClusterTable.java +++ b/megameklab/src/megameklab/printing/reference/MekLocationAndClusterTable.java @@ -28,7 +28,7 @@ public class MekLocationAndClusterTable extends ClusterHitsTable { public MekLocationAndClusterTable(PrintEntity sheet) { - super(sheet); + super(sheet, true); } @Override