8000 Added ATOW Attributes to Skills; Improved Combat vs. Non-Combat Skill Handling by IllianiBird · Pull Request #6534 · MegaMek/mekhq · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Added ATOW Attributes to Skills; Improved Combat vs. Non-Combat Skill Handling #6534

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 6 commits into from
Apr 4, 2025
Merged
Show file tree
Hide file tree
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
52 changes: 15 additions & 37 deletions MekHQ/resources/mekhq/resources/CampaignOptionsDialog.properties
Original file line number Diff line number Diff line change
Expand Up @@ -1904,16 +1904,24 @@ lblRecruitmentBonusesCombatPanel.text=Combat Roles
lblRecruitmentBonusesSupportPanel.text=Support Roles
## Advancement Tab
skillsContentTabs.title=Skills
combatSkillsTab.title=Combat Skills
combatSkillsTab.border="Every skill you master is another weapon in your arsenal. Out here, the\
0gunnerySkillsTab.title=Gunnery Skills
0gunnerySkillsTab.border="Every skill you master is another weapon in your arsenal. Out here, the\
\ better you fight, the longer you live."\
<br><i>Sergeant Mick "Crash" Lannister\
<br>The Enforcers</i>
supportSkillsTab.title=Support Skills
supportSkillsTab.border="Support staff are like the coolant system in a 'Mek \u2014 nobody notices them\
1pilotingSkillsTab.title=Piloting Skills
1pilotingSkillsTab.border="Victory or debt!"\
<br><i>The Mercenary's Battle Cry</i>
2supportSkillsTab.title=Support Skills
2supportSkillsTab.border="Support staff are like the coolant system in a 'Mek \u2014 nobody notices them\
\ until they're gone, and then everyone's screaming."\
<br><i>Sergeant Leo "Gears" Malone\
<br>The Panther Corsairs</i>
3roleplaySkillsTab.title=Roleplay Skills
3roleplaySkillsTab.border="War doesn't just change planets and politics \u2014 it changes us. The person you\
\ are doesn't survive who you become."\
<br><i>Colonel Erik "Warhound" Voss\
<br>The Scion Saviors</i>
btnToggle.text=Toggle Advanced Options
btnHideAll.text=Hide All Advanced Options
btnDisplayAll.text=Display All Advanced Options
Expand All @@ -1934,40 +1942,10 @@ lblSkillLevel8.text=8
lblSkillLevel9.text=9
lblSkillLevel10.text=10
# Combat Skills Tab
lblCombatSkillsTab.text=Combat Skill Options
lblSkillPanelPiloting/Mek.text=Piloting/Mek
lblSkillPanelPiloting/Aerospace.text=Piloting/Aerospace
lblSkillPanelPiloting/Aircraft.text=Piloting/Aircraft
lblSkillPanelPiloting/GroundVehicle.text=Piloting/Ground Vehicle
lblSkillPanelPiloting/VTOL.text=Piloting/VTOL
lblSkillPanelPiloting/Naval.text=Piloting/Naval
lblSkillPanelPiloting/Spacecraft.text=Piloting/Spacecraft
lblSkillPanelGunnery/Mek.text=Gunnery/Mek
lblSkillPanelGunnery/Aerospace.text=Gunnery/Aerospace
lblSkillPanelGunnery/Aircraft.text=Gunnery/Aircraft
lblSkillPanelGunnery/Vehicle.text=Gunnery/Vehicle
lblSkillPanelGunnery/Spacecraft.text=Gunnery/Spacecraft
lblSkillPanelGunnery/BattleArmor.text=Gunnery/BattleArmor
lblSkillPanelGunnery/ProtoMek.text=Gunnery/ProtoMek
lblSkillPanelArtillery.text=Artillery
lblSkillPanelSmallArms.text=Small Arms
lblSkillPanelAnti-Mek.text=Anti-Mek
lblGunnerySkillsTab.text=Gunnery Skill Options
lblPilotingSkillsTab.text=Piloting Skill Options
lblSupportSkillsTab.text=Support Skill Options
lblSkillPanelTech/Mek.text=Tech/Mek
lblSkillPanelTech/Mechanic.text=Tech/Mechanic
lblSkillPanelTech/Aero.text=Tech/Aero
lblSkillPanelTech/BattleArmor.text=Tech/BattleArmor
lblSkillPanelTech/Vessel.text=Tech/Vessel
lblSkillPanelAstech.text=Astech
lblSkillPanelDoctor.text=Doctor
lblSkillPanelMedTech.text=MedTech
lblSkillPanelHyperspaceNavigation.text=Hyperspace Navigation
lblSkillPanelAdministration.text=Administration
lblSkillPanelNegotiation.text=Negotiation
lblSkillPanelLeadership.text=Leadership
lblSkillPanelScrounge.text=Scrounge <b>(Deprecated)</b>
lblSkillPanelStrategy.text=Strategy
lblSkillPanelTactics.text=Tactics
lblRoleplaySkillsTab.text=Roleplay Skill Options
## Advancement Tab
abilityContentTabs.title=Abilities
0combatAbilitiesTab.title=Combat Abilities
Expand Down
2 changes: 2 additions & 0 deletions MekHQ/src/mekhq/campaign/Campaign.java
Original file line number Diff line number Diff line change
Expand Up @@ -191,6 +191,8 @@
import mekhq.campaign.personnel.ranks.RankSystem;
import mekhq.campaign.personnel.ranks.RankValidator;
import mekhq.campaign.personnel.ranks.Ranks;
import mekhq.campaign.personnel.skills.Skill;
import mekhq.campaign.personnel.skills.SkillType;
import mekhq.campaign.personnel.turnoverAndRetention.RetirementDefectionTracker;
import mekhq.campaign.randomEvents.GrayMonday;
import mekhq.campaign.randomEvents.RandomEventLibraries;
Expand Down
23 changes: 16 additions & 7 deletions MekHQ/src/mekhq/campaign/MercRosterAccess.java
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,20 @@
*/
package mekhq.campaign;

import java.sql.Connection;
import java.sql.Date;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;
import java.util.UUID;
import javax.swing.SwingWorker;

import megamek.common.UnitType;
import megamek.logging.MMLogger;
import mekhq.campaign.force.Force;
Expand All @@ -36,15 +50,10 @@
import mekhq.campaign.personnel.enums.PersonnelRole;
import mekhq.campaign.personnel.enums.Profession;
import mekhq.campaign.personnel.ranks.Rank;
import mekhq.campaign.personnel.skills.Skill;
import mekhq.campaign.personnel.skills.SkillType;
import mekhq.campaign.unit.Unit;

import javax.swing.*;
import java.sql.*;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;
import java.util.UUID;

public class MercRosterAccess extends SwingWorker<Void, Void> {
private static final MMLogger logger = MMLogger.create(MercRosterAccess.class);

Expand Down
27 changes: 18 additions & 9 deletions MekHQ/src/mekhq/campaign/againstTheBot/AtBConfiguration.java
F438
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,24 @@
*/
package mekhq.campaign.againstTheBot;

import megamek.common.*;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.List;
import java.util.ResourceBundle;
import java.util.function.Function;
import javax.xml.parsers.DocumentBuilder;

import megamek.common.Compute;
import megamek.common.EntityWeightClass;
import megamek.common.MekSummary;
import megamek.common.MekSummaryCache;
import megamek.common.TargetRoll;
import megamek.common.UnitType;
import megamek.common.annotations.Nullable;
import megamek.logging.MMLogger;
import mekhq.MekHQ;
Expand All @@ -45,14 +62,6 @@
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;

import javax.xml.parsers.DocumentBuilder;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;
import java.time.LocalDate;
import java.util.*;
import java.util.function.Function;

/**
* @author Neoancient
*
Expand Down
1 change: 1 addition & 0 deletions MekHQ/src/mekhq/campaign/io/CampaignXmlParser.java
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@
import static mekhq.campaign.force.Force.FORCE_NONE;
import static mekhq.campaign.personnel.skills.SkillDeprecationTool.DEPRECATED_SKILLS;
import static mekhq.campaign.personnel.enums.PersonnelStatus.statusValidator;
import static mekhq.campaign.personnel.skills.SkillDeprecationTool.DEPRECATED_SKILLS;
import static org.apache.commons.lang3.ObjectUtils.firstNonNull;

import java.io.File;
Expand Down
20 changes: 15 additions & 5 deletions MekHQ/src/mekhq/campaign/market/PersonnelMarket.java
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,21 @@
*/
package mekhq.campaign.market;

import java.io.PrintWriter;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.Collections;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.UUID;

import megamek.Version;
import megamek.common.*;
import megamek.common.Entity;
import megamek.common.MekFileParser;
import megamek.common.MekSummary;
import megamek.common.MekSummaryCache;
import megamek.common.TargetRoll;
import megamek.common.event.Subscribe;
import megamek.common.loaders.EntityLoadingException;
import megamek.logging.MMLogger;
Expand All @@ -40,6 +53,7 @@
import mekhq.campaign.personnel.Person;
import mekhq.campaign.personnel.skills.SkillType;
import mekhq.campaign.personnel.enums.PersonnelRole;
import mekhq.campaign.personnel.skills.SkillType;
import mekhq.campaign.rating.IUnitRating;
import mekhq.campaign.unit.HangarStatistics;
import mekhq.campaign.universe.PlanetarySystem;
Expand All @@ -49,10 +63,6 @@
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;

import java.io.PrintWriter;
import java.time.LocalDate;
import java.util.*;

public class PersonnelMarket {
private static final MMLogger logger = MMLogger.create(PersonnelMarket.class);

Expand Down
23 changes: 14 additions & 9 deletions MekHQ/src/mekhq/campaign/mission/AtBDynamicScenario.java
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,20 @@
*/
package mekhq.campaign.mission;

import static mekhq.campaign.mission.AtBDynamicScenarioFactory.getPlanetOwnerAlignment;
import static mekhq.campaign.mission.AtBDynamicScenarioFactory.getPlanetOwnerFaction;
import static mekhq.campaign.mission.ScenarioForceTemplate.ForceAlignment.Allied;
import static mekhq.campaign.mission.ScenarioForceTemplate.ForceAlignment.PlanetOwner;

import java.io.PrintWriter;
import java.text.ParseException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.UUID;

import megamek.Version;
import megamek.common.Entity;
import megamek.common.annotations.Nullable;
Expand All @@ -48,15 +62,6 @@
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;

import java.io.PrintWriter;
import java.text.ParseException;
import java.util.*;

import static mekhq.campaign.mission.AtBDynamicScenarioFactory.getPlanetOwnerAlignment;
import static mekhq.campaign.mission.AtBDynamicScenarioFactory.getPlanetOwnerFaction;
import static mekhq.campaign.mission.ScenarioForceTemplate.ForceAlignment.Allied;
import static mekhq.campaign.mission.ScenarioForceTemplate.ForceAlignment.PlanetOwner;

/**
* Data structure intended to hold data relevant to AtB Dynamic Scenarios (AtB 3.0)
* @author NickAragua
Expand Down
67 changes: 41 additions & 26 deletions MekHQ/src/mekhq/campaign/mission/AtBDynamicScenarioFactory.java
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,35 @@
*/
package mekhq.campaign.mission;

import static java.lang.Math.max;
import static java.lang.Math.round;
import static megamek.client.ratgenerator.MissionRole.*;
import static megamek.codeUtilities.MathUtility.clamp;
import static megamek.common.Compute.d6;
import static megamek.common.Compute.randomInt;
import static megamek.common.UnitType.*;
import static megamek.common.planetaryconditions.Wind.TORNADO_F4;
import static mekhq.campaign.force.CombatTeam.getStandardForceSize;
import static mekhq.campaign.mission.Scenario.T_GROUND;
import static mekhq.campaign.mission.ScenarioForceTemplate.SPECIAL_UNIT_TYPE_ATB_AERO_MIX;
import static mekhq.campaign.mission.ScenarioForceTemplate.SPECIAL_UNIT_TYPE_ATB_CIVILIANS;
import static mekhq.campaign.mission.ScenarioForceTemplate.SPECIAL_UNIT_TYPE_ATB_MIX;
import static mekhq.campaign.personnel.skills.SkillType.EXP_ELITE;
import static mekhq.campaign.universe.IUnitGenerator.unitTypeSupportsWeightClass;
import static mekhq.utilities.EntityUtilities.getEntityFromUnitId;

import java.io.File;
import java.time.LocalDate;
import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.IntStream;

import megamek.client.bot.princess.CardinalEdge;
import megamek.client.generator.*;
import megamek.client.generator.RandomGenderGenerator;
import megamek.client.generator.RandomNameGenerator;
import megamek.client.generator.RandomUnitGenerator;
import megamek.client.generator.ReconfigurationParameters;
import megamek.client.generator.TeamLoadOutGenerator;
import megamek.client.generator.skillGenerators.AbstractSkillGenerator;
import megamek.client.generator.skillGenerators.ModifiedConstantSkillGenerator;
import megamek.client.ratgenerator.MissionRole;
Expand Down Expand Up @@ -64,38 +91,26 @@
import mekhq.campaign.personnel.SpecialAbility;
import mekhq.campaign.personnel.enums.Phenotype;
import mekhq.campaign.rating.IUnitRating;
import mekhq.campaign.stratcon.*;
import mekhq.campaign.stratcon.StratconBiomeManifest;
import mekhq.campaign.stratcon.StratconCampaignState;
import mekhq.campaign.stratcon.StratconContractInitializer;
import mekhq.campaign.stratcon.StratconFacility;
import mekhq.campaign.stratcon.StratconFacility.FacilityType;
import mekhq.campaign.stratcon.StratconScenario;
import mekhq.campaign.stratcon.StratconTrackState;
import mekhq.campaign.unit.Unit;
import mekhq.campaign.universe.*;
import mekhq.campaign.universe.Faction;
import mekhq.campaign.universe.Faction.Tag;
import mekhq.campaign.universe.Factions;
import mekhq.campaign.universe.IUnitGenerator;
import mekhq.campaign.universe.Planet;
import mekhq.campaign.universe.PlanetarySystem;
import mekhq.campaign.universe.Systems;
import mekhq.campaign.universe.UnitGeneratorParameters;
import mekhq.campaign.universe.enums.EraFlag;
import mekhq.campaign.universe.enums.HonorRating;
import mekhq.campaign.universe.fameAndInfamy.BatchallFactions;

import java.io.File;
import java.time.LocalDate;
import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.IntStream;

import static java.lang.Math.max;
import static java.lang.Math.round;
import static megamek.client.ratgenerator.MissionRole.*;
import static megamek.codeUtilities.MathUtility.clamp;
import static megamek.common.Compute.d6;
import static megamek.common.Compute.randomInt;
import static megamek.common.UnitType.*;
import static megamek.common.planetaryconditions.Wind.TORNADO_F4;
import static mekhq.campaign.force.CombatTeam.getStandardForceSize;
import static mekhq.campaign.mission.Scenario.T_GROUND;
import static mekhq.campaign.mission.ScenarioForceTemplate.SPECIAL_UNIT_TYPE_ATB_AERO_MIX;
import static mekhq.campaign.mission.ScenarioForceTemplate.SPECIAL_UNIT_TYPE_ATB_CIVILIANS;
import static mekhq.campaign.mission.ScenarioForceTemplate.SPECIAL_UNIT_TYPE_ATB_MIX;
import static mekhq.campaign.personnel.skills.SkillType.EXP_ELITE;
import static mekhq.campaign.universe.IUnitGenerator.unitTypeSupportsWeightClass;
import static mekhq.utilities.EntityUtilities.getEntityFromUnitId;

/**
* This class handles the creation and substantive manipulation of
* AtBDynamicScenarios
Expand Down
34 changes: 26 additions & 8 deletions MekHQ/src/mekhq/campaign/mission/AtBScenario.java
Original file line number Diff line number Diff line change
Expand Up @@ -28,16 +28,35 @@
*/
package mekhq.campaign.mission;

import java.io.PrintWriter;
import java.text.ParseException;
import java.time.LocalDate;
import java.util.*;

import megamek.Version;
import megamek.client.generator.TeamLoadOutGenerator;
import megamek.codeUtilities.ObjectUtility;
import megamek.common.*;
import megamek.common.Board;
import megamek.common.BoardDimensions;
import megamek.common.Compute;
import megamek.common.Entity;
import megamek.common.EntityWeightClass;
import megamek.common.Infantry;
import megamek.common.TargetRoll;
import megamek.common.UnitType;
import megamek.common.WeatherRestriction;
import megamek.common.annotations.Nullable;
import megamek.common.enums.SkillLevel;
import megamek.common.icons.Camouflage;
import megamek.common.options.OptionsConstants;
import megamek.common.planetaryconditions.Atmosphere;
import megamek.common.planetaryconditions.*;
import megamek.common.planetaryconditions.BlowingSand;
import megamek.common.planetaryconditions.EMI;
import megamek.common.planetaryconditions.Fog;
import megamek.common.planetaryconditions.Light;
import megamek.common.planetaryconditions.PlanetaryConditions;
import megamek.common.planetaryconditions.Weather;
import megamek.common.planetaryconditions.Wind;
import megamek.common.util.fileUtils.MegaMekFile;
import megamek.logging.MMLogger;
import megamek.utilities.BoardClassifier;
Expand All @@ -61,17 +80,16 @@
import mekhq.campaign.stratcon.StratconScenario;
import mekhq.campaign.stratcon.StratconTrackState;
import mekhq.campaign.unit.Unit;
import mekhq.campaign.universe.*;
import mekhq.campaign.universe.Faction;
import mekhq.campaign.universe.Factions;
import mekhq.campaign.universe.Planet;
import mekhq.campaign.universe.PlanetarySystem;
import mekhq.campaign.universe.Systems;
import mekhq.utilities.MHQXMLUtility;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;

import java.io.PrintWriter;
import java.text.ParseException;
import java.time.LocalDate;
import java.util.*;

/**
* @author Neoancient
*/
Expand Down
Loading
Loading
0