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

Conversation

IllianiBird
Copy link
Collaborator
@IllianiBird IllianiBird commented Apr 2, 2025
  • Moved skills out of personnel and into their own discrete package personnel.skills.
  • Introduced SkillAttribute enum to represent attributes associated with skills.
    • Includes attributes such as REFLEXES, DEXTERITY, CHARISMA, etc.
    • Provides a utility method fromString for parsing input strings or integers.
  • Updated SkillType class:
    • Added references to SkillAttribute and SkillSubType.
    • Integrated new attributes firstAttribute, secondAttribute, and subType.
    • Deprecated methods isCombatSkill, isPiloting, and isGunnery in favor of isSubTypeOf methods.
    • Enhanced XML deserialization to handle new attributes and ensure backward compatibility.
  • Implemented a robust compatibility handler for legacy SkillType definitions.
    • Ensures compliance with new standards by updating subtype and attributes where missing.

Dev Notes

Nothing too exciting here, basically this is all prep work for an upcoming skills project. It's going to appear more impactful than it is, because of me moving skills into their own package - rather than just sitting, loose, in personnel.

Testing

Tested with both an existing campaign and a new. Everything stills to work fine.

- Moved all skill-related classes into a discrete package
… Handling

- Introduced `SkillAttribute` enum to represent attributes associated with skills.
  - Includes attributes such as REFLEXES, DEXTERITY, CHARISMA, etc.
  - Provides a utility method `fromString` for parsing input strings or integers.
- Updated `SkillType` class:
  - Added references to `SkillAttribute` and `SkillSubType`.
  - Integrated new attributes `firstAttribute`, `secondAttribute`, and `subType`.
  - Deprecated methods `isCombatSkill`, `isPiloting`, and `isGunnery` in favor of `isSubTypeOf` methods.
  - Enhanced XML deserialization to handle new attributes and ensure backward compatibility.
- Implemented a robust compatibility handler for legacy `SkillType` definitions.
  - Ensures compliance with new standards by updating subtype and attributes where missing.
@IllianiBird IllianiBird added Personnel Personnel-related Issues Refactoring labels Apr 2, 2025
@IllianiBird IllianiBird self-assigned this Apr 2, 2025
Copy link
codecov bot commented Apr 2, 2025

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 11.35%. Comparing base (e1247a7) to head (fb86e93).
Report is 8 commits behind head on master.

Additional details and impacted files
@@            Coverage Diff            @@
##             master    #6534   +/-   ##
=========================================
  Coverage     11.34%   11.35%           
- Complexity     6319     6322    +3     
=========================================
  Files          1082     1082           
  Lines        137903   137903           
  Branches      21377    21377           
=========================================
+ Hits          15645    15652    +7     
+ Misses       120703   120694    -9     
- Partials       1555     1557    +2     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

# Conflicts:
#	MekHQ/src/mekhq/campaign/io/CampaignXmlParser.java
#	MekHQ/src/mekhq/gui/CommandCenterTab.java
#	MekHQ/src/mekhq/gui/campaignOptions/CampaignOptionsPane.java
#	MekHQ/src/mekhq/gui/campaignOptions/contents/AbilitiesTab.java
# Conflicts:
#	MekHQ/src/mekhq/CampaignPreset.java
#	MekHQ/src/mekhq/campaign/Campaign.java
#	MekHQ/src/mekhq/campaign/CampaignOptions.java
#	MekHQ/src/mekhq/campaign/MercRosterAccess.java
#	MekHQ/src/mekhq/campaign/againstTheBot/AtBConfiguration.java
#	MekHQ/src/mekhq/campaign/io/CampaignXmlParser.java
#	MekHQ/src/mekhq/campaign/market/PersonnelMarket.java
#	MekHQ/src/mekhq/campaign/market/contractMarket/AtbMonthlyContractMarket.java
#	MekHQ/src/mekhq/campaign/mission/AtBDynamicScenarioFactory.java
#	MekHQ/src/mekhq/campaign/mission/resupplyAndCaches/Resupply.java
#	MekHQ/src/mekhq/campaign/mod/am/InjuryUtil.java
#	MekHQ/src/mekhq/campaign/parts/AeroLifeSupport.java
#	MekHQ/src/mekhq/campaign/parts/AeroSensor.java
#	MekHQ/src/mekhq/campaign/parts/Avionics.java
#	MekHQ/src/mekhq/campaign/parts/CombatInformationCenter.java
#	MekHQ/src/mekhq/campaign/parts/FireControlSystem.java
#	MekHQ/src/mekhq/campaign/parts/LandingGear.java
#	MekHQ/src/mekhq/campaign/parts/MekActuator.java
#	MekHQ/src/mekhq/campaign/parts/MekLifeSupport.java
#	MekHQ/src/mekhq/campaign/parts/MekSensor.java
#	MekHQ/src/mekhq/campaign/parts/ProtoMekJumpJet.java
#	MekHQ/src/mekhq/campaign/parts/ProtoMekLegActuator.java
#	MekHQ/src/mekhq/campaign/parts/ProtoMekSensor.java
#	MekHQ/src/mekhq/campaign/parts/SpacecraftEngine.java
#	MekHQ/src/mekhq/campaign/parts/Thrusters.java
#	MekHQ/src/mekhq/campaign/personnel/Person.java
#	MekHQ/src/mekhq/campaign/personnel/PersonUtility.java
#	MekHQ/src/mekhq/campaign/personnel/SkillPerquisite.java
#	MekHQ/src/mekhq/campaign/personnel/SpecialAbility.java
#	MekHQ/src/mekhq/campaign/personnel/education/Academy.java
#	MekHQ/src/mekhq/campaign/personnel/generator/AbstractPersonnelGenerator.java
#	MekHQ/src/mekhq/campaign/personnel/generator/AbstractSkillGenerator.java
#	MekHQ/src/mekhq/campaign/personnel/generator/DefaultSkillGenerator.java
#	MekHQ/src/mekhq/campaign/personnel/turnoverAndRetention/RetirementDefectionTracker.java
#	MekHQ/src/mekhq/campaign/randomEvents/RoninOffer.java
#	MekHQ/src/mekhq/campaign/randomEvents/prisoners/EventEffectsManager.java
#	MekHQ/src/mekhq/campaign/randomEvents/prisoners/PrisonEscapeScenario.java
#	MekHQ/src/mekhq/campaign/rating/CamOpsReputation/CommandRating.java
#	MekHQ/src/mekhq/campaign/storyarc/storypoint/CreateCharacterStoryPoint.java
#	MekHQ/src/mekhq/campaign/stratcon/SupportPointNegotiation.java
#	MekHQ/src/mekhq/campaign/unit/Unit.java
#	MekHQ/src/mekhq/campaign/unit/actions/HirePersonnelUnitAction.java
#	MekHQ/src/mekhq/campaign/universe/generators/companyGenerators/AbstractCompanyGenerator.java
#	MekHQ/src/mekhq/gui/BriefingTab.java
#	MekHQ/src/mekhq/gui/CampaignGUI.java
#	MekHQ/src/mekhq/gui/CommandCenterTab.java
#	MekHQ/src/mekhq/gui/adapter/PersonnelTableMouseAdapter.java
#	MekHQ/src/mekhq/gui/campaignOptions/CreateCampaignPreset.java
#	MekHQ/src/mekhq/gui/campaignOptions/contents/AdvancementTab.java
#	MekHQ/src/mekhq/gui/campaignOptions/contents/PersonnelTab.java
#	MekHQ/src/mekhq/gui/campaignOptions/contents/RulesetsTab.java
#	MekHQ/src/mekhq/gui/campaignOptions/contents/SkillsTab.java
#	MekHQ/src/mekhq/gui/dialog/BatchXPDialog.java
#	MekHQ/src/mekhq/gui/dialog/CampaignExportWizard.java
#	MekHQ/src/mekhq/gui/dialog/CreateCharacterDialog.java
#	MekHQ/src/mekhq/gui/dialog/CustomizePersonDialog.java
#	MekHQ/src/mekhq/gui/dialog/DataLoadingDialog.java
#	MekHQ/src/mekhq/gui/enums/PersonnelTableModelColumn.java
#	MekHQ/src/mekhq/gui/view/ContractSummaryPanel.java
#	MekHQ/src/mekhq/gui/view/PersonViewPanel.java
#	MekHQ/src/mekhq/module/atb/AtBEventProcessor.java
#	MekHQ/src/mekhq/module/atb/PersonnelMarketAtB.java
#	MekHQ/unittests/mekhq/campaign/autoresolve/ResolverTest.java
#	MekHQ/unittests/mekhq/campaign/personnel/education/AcademyTests.java
#	MekHQ/unittests/mekhq/campaign/randomEvents/prisoners/EventEffectsManagerTest.java
#	MekHQ/unittests/mekhq/campaign/randomEvents/prisoners/PrisonerMissionEndEventTest.java
#	MekHQ/unittests/mekhq/campaign/rating/FieldManualMercRevDragoonsRatingTest.java
#	MekHQ/unittests/mekhq/gui/dialog/nagDialogs/nagLogic/UntreatedPersonnelNagLogicTest.java
@IllianiBird IllianiBird merged commit c92ae14 into MegaMek:master Apr 4, 2025
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Personnel Personnel-related Issues Refactoring
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant
0