Skip to content

Commit 287ce20

Browse files
authored
Merge pull request #7935 from psikomonkie/issue/7751/infinite-reload
Issue #7751: Match Destroyed Ammo Bins
2 parents ae943f7 + cb84846 commit 287ce20

File tree

1 file changed

+12
-1
lines changed

1 file changed

+12
-1
lines changed

MekHQ/src/mekhq/campaign/unit/cleanup/ExactMatchStep.java

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,11 @@
3232
*/
3333
package mekhq.campaign.unit.cleanup;
3434

35+
import megamek.common.equipment.AmmoType;
3536
import megamek.common.equipment.Mounted;
37+
import mekhq.campaign.parts.equipment.AmmoBin;
3638
import mekhq.campaign.parts.equipment.EquipmentPart;
39+
import mekhq.campaign.parts.equipment.MissingAmmoBin;
3740
import mekhq.campaign.parts.equipment.MissingEquipmentPart;
3841

3942
public class ExactMatchStep extends UnscrambleStep {
@@ -48,8 +51,16 @@ public void visit(final EquipmentProposal proposal, final EquipmentPart part) {
4851
@Override
4952
public void visit(final EquipmentProposal proposal, final MissingEquipmentPart part) {
5053
final Mounted<?> mount = proposal.getEquipment(part.getEquipmentNum());
51-
if ((mount != null) && part.getType().equals(mount.getType())) {
54+
if (mount == null) {
55+
return;
56+
}
57+
if (part.getType().equals(mount.getType())) {
5258
proposal.proposeMapping(part, part.getEquipmentNum());
5359
}
60+
61+
if (part instanceof MissingAmmoBin missingAmmoBin &&
62+
((AmmoBin) missingAmmoBin.getReplacementPart()).canChangeMunitions((AmmoType) mount.getType())) {
63+
proposal.proposeMapping(missingAmmoBin, part.getEquipmentNum());
64+
}
5465
}
5566
}

0 commit comments

Comments
 (0)