Skip to content

Commit

Permalink
Merge branch 'LinkedScenario' of https://github.com/DM0000/mekhq into…
Browse files Browse the repository at this point in the history
… LinkedScenario
DM0000 committed Feb 1, 2025
2 parents ad20773 + c8e806c commit 459ed07
Showing 7 changed files with 52 additions and 15 deletions.
5 changes: 5 additions & 0 deletions MekHQ/docs/history.txt
Original file line number Diff line number Diff line change
@@ -154,6 +154,11 @@ MEKHQ VERSION HISTORY:
+ Fix #5934: Fixed Contract Multiplier Again
+ PR #5941: Corrected Weight Class Parameter Setting Logic
+ PR #5942: Renamed 'Fixed BV' to 'BV' in BotForce Scenario Details
+ Fix #5921: Fixed Used Parts Multiplier Labels to Ignore Quality Reversal in Finances Tab
+ Fix #5917: Added Soldier Requirements Handling in UnitTableModel
+ PR #5930: Format Part Names as Italicized when Brand New
+ PR #5933: Fixed Overwriting of 'Brand New' Part State
+ Fix #5685: More control settings for autoLogistics


0.50.02 (2024-12-30 2130 UTC)
Original file line number Diff line number Diff line change
@@ -4,4 +4,5 @@ chkIgnoreMothballed.text=Ignore Parts on Mothballed Units
chkTopUpWeekly.text=Add Part Orders to Fill Requested Stock Levels Weekly
topUpBtn.text=Order Parts to Fill Requested Stock
topUpGMBtn.text=Add Parts to Fill Requested Stock Levels
resetRequestedStockBtn.text=Reset Requested Stock Levels to Default
lblIgnoreSparesUnderQuality.text=Ignore Spare Parts Under Quality
1 change: 0 additions & 1 deletion MekHQ/src/mekhq/campaign/Quartermaster.java
Original file line number Diff line number Diff line change
@@ -103,7 +103,6 @@ public void addPart(Part part, int transitDays) {
}

part.setDaysToArrival(Math.max(transitDays, 0));
part.setBrandNew(false);

// be careful in using this next line
part.postProcessCampaignAddition();
Original file line number Diff line number Diff line change
@@ -645,14 +645,12 @@ private JPanel createGeneralMultipliersPanel() {
* @return A JPanel containing labels and spinners for used parts price multipliers.
*/
private JPanel createUsedPartsMultiplierPanel() {
boolean reverseQualities = campaign.getCampaignOptions().isReverseQualityNames();

// Contents
lblUsedPartPriceMultipliers = new JLabel[QUALITY_F.ordinal() + 1];
spnUsedPartPriceMultipliers = new JSpinner[QUALITY_F.ordinal() + 1];

for (PartQuality partQuality : PartQuality.values()) {
final String qualityLevel = partQuality.toName(reverseQualities);
final String qualityLevel = partQuality.toName(false);
int ordinal = partQuality.ordinal();

lblUsedPartPriceMultipliers[ordinal] = new JLabel(qualityLevel);
21 changes: 20 additions & 1 deletion MekHQ/src/mekhq/gui/dialog/PartsReportDialog.java
Original file line number Diff line number Diff line change
@@ -71,7 +71,7 @@
public class PartsReportDialog extends JDialog {

private JCheckBox ignoreMothballedCheck, topUpWeeklyCheck;
private JButton topUpButton, topUpGMButton;
private JButton topUpButton, topUpGMButton, resetRequestedStockButton;
private JComboBox<String> ignoreSparesUnderQualityCB;
private JTable overviewPartsInUseTable;
private PartsInUseTableModel overviewPartsModel;
@@ -305,6 +305,15 @@ public void actionPerformed(ActionEvent e) {
topUpGMButton.setMargin(new Insets(10,20,10,20));
topUpGMButton.addActionListener(evt -> topUpGM());

resetRequestedStockButton = new JButton();
resetRequestedStockButton.setText(resourceMap.getString("resetRequestedStockBtn.text"));
resetRequestedStockButton.setIcon(null);
resetRequestedStockButton.setFocusPainted(false);
resetRequestedStockButton.setEnabled(true);
resetRequestedStockButton.setBorder(null);
resetRequestedStockButton.setMargin(new Insets(10,20,10,20));
resetRequestedStockButton.addActionListener(evt -> resetRequestedStock());

boolean reverse = campaign.getCampaignOptions().isReverseQualityNames();
String[] qualities = {
" ", // Combo box is blank for first one because it accepts everything and is default
@@ -343,6 +352,7 @@ public void actionPerformed(ActionEvent e) {
.addComponent(topUpWeeklyCheck)
.addComponent(topUpButton)
.addComponent(topUpGMButton)
.addComponent(resetRequestedStockButton)
.addPreferredGap(LayoutStyle.ComponentPlacement.RELATED, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(btnClose))));

@@ -355,6 +365,7 @@ public void actionPerformed(ActionEvent e) {
.addComponent(topUpWeeklyCheck)
.addComponent(topUpButton)
.addComponent(topUpGMButton)
.addComponent(resetRequestedStockButton)
.addComponent(btnClose)));

setPreferredSize(UIUtil.scaleForGUI(1400,1000));
@@ -465,4 +476,12 @@ private Map<String,Double> getCurrentRequestedStockMap() {
private void onClose() {
storePartInUseRequestedStockMap();
}

/**
* Wipes the requested stock numbers back to their defaults
*/
private void resetRequestedStock() {
campaign.wipePartsInUseMap();
updateOverviewPartsInUse();
}
}
22 changes: 14 additions & 8 deletions MekHQ/src/mekhq/gui/model/PartsTableModel.java
Original file line number Diff line number Diff line change
@@ -18,16 +18,14 @@
*/
package mekhq.gui.model;

import java.awt.Component;
import java.util.ArrayList;

import javax.swing.JTable;
import javax.swing.SwingConstants;
import javax.swing.table.DefaultTableCellRenderer;

import megamek.common.annotations.Nullable;
import mekhq.campaign.parts.Part;

import javax.swing.*;
import javax.swing.table.DefaultTableCellRenderer;
import java.awt.*;
import java.util.ArrayList;

/**
* A table model for displaying parts
*/
@@ -96,7 +94,15 @@ public Object getValueAt(int row, int col) {
}

if (col == COL_NAME) {
return "<html><nobr>" + part.getName() + "</nobr></html>";
String openBrace = "";
String closeBrace = "";

if (part.isBrandNew()) {
openBrace = "<i>";
closeBrace = "</i>";
}

return "<html><nobr>" + openBrace + part.getName() + closeBrace + "</nobr></html>";
}
if (col == COL_DETAIL) {
return "<html><nobr>" + part.getDetails() + "</nobr></html>";
13 changes: 11 additions & 2 deletions MekHQ/src/mekhq/gui/model/UnitTableModel.java
Original file line number Diff line number Diff line change
@@ -163,6 +163,9 @@ static String getCrewTooltip(Unit unit) {
int driversAssigned = unit.getDrivers().size();

Entity entity = unit.getEntity();
int soldiersNeeded = entity instanceof Infantry ? gunnersNeeded : 0;
int soldiersAssigned = entity instanceof Infantry ? gunnersAssigned : 0;

int navigatorsNeeded = entity instanceof Jumpship && !(entity instanceof SpaceStation) ? 1 : 0;
int navigatorsAssigned = unit.getNavigator() == null ? 0 : 1;

@@ -171,15 +174,21 @@ static String getCrewTooltip(Unit unit) {

StringBuilder report = new StringBuilder("<html>");

if (driversNeeded > 0) {

if (driversNeeded > 0 && soldiersNeeded == 0) {
appendReport(report, "Drivers", driversAssigned, driversNeeded);
}

if (gunnersNeeded > 0) {
if (gunnersNeeded > 0 && soldiersNeeded == 0) {
report.append("<br>");
appendReport(report, "Gunners", gunnersAssigned, gunnersNeeded);
}

if (soldiersNeeded > 0) {
report.append("<br>");
appendReport(report, "Soldiers", soldiersAssigned, soldiersNeeded);
}

if (crewNeeded > 0) {
report.append("<br>");
appendReport(report, "Crew", crewAssigned, crewNeeded);

0 comments on commit 459ed07

Please sign in to comment.