From fd201e6c3a66eb8936b7aad414cdd3ad1fd21ba9 Mon Sep 17 00:00:00 2001 From: IllianiCBT Date: Thu, 19 Sep 2024 13:23:31 -0500 Subject: [PATCH] Removed TN Modifier for IS Techs working on Clan Tech, Removed Clan Tech Knowledge SPA and Effects Removed all instances of the 'Clan Tech Knowledge' SPA from `PersonnelOptions`, `Part`, and `defaultspa.xml`. Recently, errata removed the +2 modifier to TNs when IS teams work on Clan-based equipment. This rendered the above SPA no longer relevant. --- MekHQ/data/universe/defaultspa.xml | 15 ------ MekHQ/src/mekhq/campaign/parts/Part.java | 46 ++++--------------- .../campaign/personnel/PersonnelOptions.java | 16 ++----- 3 files changed, 14 insertions(+), 63 deletions(-) diff --git a/MekHQ/data/universe/defaultspa.xml b/MekHQ/data/universe/defaultspa.xml index f9f0b7a087..63d16f0dd2 100644 --- a/MekHQ/data/universe/defaultspa.xml +++ b/MekHQ/data/universe/defaultspa.xml @@ -459,21 +459,6 @@ - - clan_tech_knowledge - Clan Tech Knowledge (Unofficial) - Can work on clan equipment without penalty - 4 - 2 - - Tech/Mek - Tech/Mechanic - Tech/Aero - Tech/BA - Tech/Vessel - - clanperson:false - tech_weapon_specialist Tech Specialist, Weapon (Unofficial) diff --git a/MekHQ/src/mekhq/campaign/parts/Part.java b/MekHQ/src/mekhq/campaign/parts/Part.java index 5621d32939..77319e5b7e 100644 --- a/MekHQ/src/mekhq/campaign/parts/Part.java +++ b/MekHQ/src/mekhq/campaign/parts/Part.java @@ -21,29 +21,8 @@ */ package mekhq.campaign.parts; -import java.io.PrintWriter; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.Objects; -import java.util.ResourceBundle; -import java.util.StringJoiner; -import java.util.UUID; - -import org.apache.commons.lang3.StringUtils; -import org.w3c.dom.NamedNodeMap; -import org.w3c.dom.Node; -import org.w3c.dom.NodeList; - import megamek.Version; -import megamek.common.Entity; -import megamek.common.EquipmentType; -import megamek.common.ITechnology; -import megamek.common.SimpleTechLevel; -import megamek.common.Tank; -import megamek.common.TargetRoll; -import megamek.common.TechAdvancement; -import megamek.common.WeaponType; +import megamek.common.*; import megamek.common.annotations.Nullable; import megamek.common.options.OptionsConstants; import megamek.logging.MMLogger; @@ -62,6 +41,13 @@ import mekhq.campaign.work.WorkTime; import mekhq.utilities.MHQXMLUtility; import mekhq.utilities.ReportingUtilities; +import org.apache.commons.lang3.StringUtils; +import org.w3c.dom.NamedNodeMap; +import org.w3c.dom.Node; +import org.w3c.dom.NodeList; + +import java.io.PrintWriter; +import java.util.*; /** * Parts do the lions share of the work of repairing, salvaging, reloading, @@ -283,10 +269,12 @@ public String getName() { * * @return the part's actual value */ + @Override public Money getActualValue() { return adjustCostsForCampaignOptions(getStickerPrice()); } + @Override public boolean isPriceAdjustedForAmount() { return false; } @@ -893,13 +881,6 @@ public TargetRoll getAllMods(final @Nullable Person tech) { } if (tech != null) { - if ((isClanTechBase() - || ((this instanceof MekLocation) && (getUnit() != null) && getUnit().getEntity().isClan())) - && (!tech.isClanPersonnel() - && !tech.getOptions().booleanOption(PersonnelOptions.TECH_CLAN_TECH_KNOWLEDGE))) { - mods.addModifier(2, "Clan tech"); - } - if (tech.getOptions().booleanOption(PersonnelOptions.TECH_WEAPON_SPECIALIST) && ((IPartWork.findCorrectRepairType(this) == PartRepairType.WEAPON) || (IPartWork.findCorrectMRMSType(this) == PartRepairType.PHYSICAL_WEAPON))) { @@ -949,13 +930,6 @@ public TargetRoll getAllModsForMaintenance() { } if (getUnit().getTech() != null) { - if ((isClanTechBase() || ((this instanceof MekLocation) && getUnit().getEntity().isClan())) - && (!getUnit().getTech().isClanPersonnel() - && !getUnit().getTech().getOptions() - .booleanOption(PersonnelOptions.TECH_CLAN_TECH_KNOWLEDGE))) { - mods.addModifier(2, "Clan tech"); - } - if (getUnit().getTech().getOptions().booleanOption(PersonnelOptions.TECH_WEAPON_SPECIALIST) && ((IPartWork.findCorrectRepairType(this) == PartRepairType.WEAPON) || (IPartWork.findCorrectMRMSType(this) == PartRepairType.PHYSICAL_WEAPON))) { diff --git a/MekHQ/src/mekhq/campaign/personnel/PersonnelOptions.java b/MekHQ/src/mekhq/campaign/personnel/PersonnelOptions.java index 42ea78fa47..971f8f2e29 100644 --- a/MekHQ/src/mekhq/campaign/personnel/PersonnelOptions.java +++ b/MekHQ/src/mekhq/campaign/personnel/PersonnelOptions.java @@ -13,21 +13,15 @@ */ package mekhq.campaign.personnel; +import megamek.common.annotations.Nullable; +import megamek.common.options.*; +import megamek.logging.MMLogger; + import java.util.Enumeration; import java.util.Hashtable; import java.util.List; import java.util.Vector; -import megamek.common.annotations.Nullable; -import megamek.common.options.AbstractOptionsInfo; -import megamek.common.options.IBasicOptionGroup; -import megamek.common.options.IOption; -import megamek.common.options.IOptionGroup; -import megamek.common.options.IOptionInfo; -import megamek.common.options.OptionsConstants; -import megamek.common.options.PilotOptions; -import megamek.logging.MMLogger; - /** * An extension of PilotOptions that adds MekHQ-specific SPAs and edge triggers * for support and command @@ -45,7 +39,6 @@ public class PersonnelOptions extends PilotOptions { public static final String EDGE_REPAIR_FAILED_REFIT = "edge_when_fail_refit_check"; public static final String EDGE_ADMIN_ACQUIRE_FAIL = "edge_when_admin_acquire_fail"; - public static final String TECH_CLAN_TECH_KNOWLEDGE = "clan_tech_knowledge"; public static final String TECH_WEAPON_SPECIALIST = "tech_weapon_specialist"; public static final String TECH_ARMOR_SPECIALIST = "tech_armor_specialist"; public static final String TECH_INTERNAL_SPECIALIST = "tech_internal_specialist"; @@ -89,7 +82,6 @@ public void initialize() { } // Add MekHQ-specific options - addOption(l3a, TECH_CLAN_TECH_KNOWLEDGE, false); addOption(l3a, TECH_WEAPON_SPECIALIST, false); addOption(l3a, TECH_ARMOR_SPECIALIST, false); addOption(l3a, TECH_INTERNAL_SPECIALIST, false);