8000 Fix for Unit Sale Costs being generally incorrect - Mekhq part by savanik · Pull Request #6868 · MegaMek/mekhq · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Fix for Unit Sale Costs being generally incorrect - Mekhq part #6868

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
May 6, 2025
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 26 additions & 16 deletions MekHQ/src/mekhq/campaign/parts/TankLocation.java
Original file line number Diff line number Diff line change
Expand Up @@ -55,11 +55,13 @@
public class TankLocation extends Part {
private static final MMLogger logger = MMLogger.create(TankLocation.class);

static final TechAdvancement TECH_ADVANCEMENT = new TechAdvancement(TECH_BASE_ALL)
.setAdvancement(2460, 2470, 2510).setApproximate(true, false, false)
.setPrototypeFactions(F_TH).setProductionFactions(F_TH)
.setTechRating(RATING_D).setAvailability(RATING_A, RATING_A, RATING_A, RATING_A)
.setStaticTechLevel(SimpleTechLevel.STANDARD);
static final TechAdvancement TECH_ADVANCEMENT = new TechAdvancement(TECH_BASE_ALL).setAdvancement(2460, 2470, 2510)
.setApproximate(true, false, false)
.setPrototypeFactions(F_TH)
.setProductionFactions(F_TH)
.setTechRating(RATING_D)
.setAvailability(RATING_A, RATING_A, RATING_A, RATING_A)
.setStaticTechLevel(SimpleTechLevel.STANDARD);

protected int loc;
protected int damage;
Expand Down Expand Up @@ -112,9 +114,9 @@ protected void computeCost() {

@Override
public boolean isSamePartType(Part part) {
return part instanceof TankLocation
&& getLoc() == ((TankLocation) part).getLoc()
&& getUnitTonnage() == part.getUnitTonnage();
return part instanceof TankLocation &&
getLoc() == ((TankLocation) part).getLoc() &&
getUnitTonnage() == part.getUnitTonnage();
}

@Override
Expand Down Expand Up @@ -257,10 +259,7 @@ public String getDetails(boolean includeRepairDetails) {
if (isBreached()) {
toReturn.append(", Breached");
} else if (damage > 0) {
toReturn.append(", ")
.append(damage)
.append(damage == 1 ? " point" : " points")
.append(" of damage");
toReturn.append(", ").append(damage).append(damage == 1 ? " point" : " points").append(" of damage");
}
}

Expand Down Expand Up @@ -294,14 +293,25 @@ public boolean canNeverScrap() {

@Override
public double getTonnage() {
// TODO Auto-generated method stub
return 0;
// Technically weight of the location structure for consistency with MekLocation
// Cannot have endo steel etc.
// Turrets are handled separately
double tonnage = getUnitTonnage() * 0.1 / 4;
return (tonnage);
Copy link
Preview
Copilot AI May 6, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[nitpick] The parentheses around the 'tonnage' variable in the return statement are unnecessary. Consider simplifying the code to 'return tonnage;'.

Suggested change
return (tonnage);
return tonnage;

Copilot uses AI. Check for mistakes.

}

@Override
public Money getStickerPrice() {
// TODO Auto-generated method stub
return Money.zero();
// Chassis prices are returned here
double totalCost = 0;
double structureCost = 0;
double controlsCost = 0;
// Tech Manual, 1st printing, p279-280
structureCost += 10000 * getTonnage(); // True for SVs as well?
controlsCost += 10000 * getTonnage() / 2;
Comment on lines +310 to +311
Copy link
Preview
Copilot AI May 6, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[nitpick] Consider caching the result of getTonnage() into a local variable if its computation becomes non-trivial to avoid redundant calls and improve maintainability.

Suggested change
structureCost += 10000 * getTonnage(); // True for SVs as well?
controlsCost += 10000 * getTonnage() / 2;
double tonnage = getTonnage();
structureCost += 10000 * tonnage; // True for SVs as well?
controlsCost += 10000 * tonnage / 2;

Copilot uses AI. Check for mistakes.

//TODO: Support vehicles have chassis structure multipliers
totalCost = structureCost + controlsCost;
return Money.of(totalCost);
}

@Override
Expand Down
Loading
0