8000 Added 29 Brand New, Fully Implemented SPAs from A Time of War; Added 2 New Unofficial SPAs by IllianiBird · Pull Request #6607 · MegaMek/mekhq · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Added 29 Brand New, Fully Implemented SPAs from A Time of War; Added 2 New Unofficial SPAs #6607

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 17 commits into from
Apr 12, 2025

Conversation

IllianiBird
Copy link
Collaborator
@IllianiBird IllianiBird commented Apr 9, 2025

Dev Notes

Today was stressful, so I decided to treat myself to a couple of SPAs. All SPAs featured below are fully implemented with their mechanical effects. Are most of them particularly impactful? No, not really. But I imagine the role-players among our player base will get a real kick out of these turning up randomly on new hires.

Fast Learner (ATOW)

Decreases the cost of purchasing and improving Skills by 20% (rounded normally).

If XP adjustments from a high or low Reasoning are enabled, those adjustments are additive. So 20% decrease from this SPA and a 5% increase from Reasoning would equal a 15% decrease.

Slow Learner (ATOW)

Increases the cost of purchasing and improving Skills by 20% (rounded normally).

If XP adjustments from a high or low Reasoning are enabled, those adjustments are additive. So 20% increase from this SPA and a 5% decrease from Reasoning would equal a 15% increase.

Toughness (ATOW)

All injuries suffered are reduced by 25% and Fatigue gain is halved. Fatigue gain from sustaining injuries is not halved.

Sixth Sense (ATOW)

The Target Number of all Perception checks are decreased by 3.

Poison Resistance (ATOW)

The character cannot be poisoned.

Mechanically, this offers few benefits; however, the character will be completely immune to the Fatigue gain from the 'Poisoning' Prisoner Event.

Tech Empathy (ATOW)

The cost of purchasing and improving the Tech/Any, Computers, Communications, or Security Systems/Electronic skills is decreased by 10% (rounded normally).

Furthermore, the Target Number of checks made with such skills is decreased by 1.

Gremlins (ATOW)

The cost of purchasing and improving the Tech/Any, Computers, Communications, or Security Systems/Electronic skills is increased by 10% (rounded normally).

Furthermore, the Target Number of checks made with such skills is increased by 1.

Functional Tail and Mobile Ears (ATOW:Companion)

Decreases Charisma Attribute by 3 (may not take it below 1).

The Target Number of all Perception checks decreased by 1 due to improved hearing.

Functional Tail and Mobile Ears (Unofficial)

Increases Charisma Attribute by 1 (may not take it above 10).

The Target Number of all Perception checks decreased by 1 due to improved hearing.

I added this unofficial version of the above SPA because I know full well some players will try to debate why having tails and ears is a Charisma penalty, given the profound popularity of Catgirls and similar.

Serious Disfigurement (ATOW:Companion)

Decreases Charisma Attribute by 3 (may not take it below 1).

Extremely Excess Facial Hair (ATOW:Companion)

Decreases Charisma Attribute by 1 (may not take it below 1).

Exotic (Yet Pleasing) Appearance (ATOW:Companion)

Increases Charisma Attribute by 1 (may not take it above 10).

Exceptional Immune System (ATOW:Companion)

Recover from injuries at twice the normal rate (Advanced Medical only).

Freakish Strength (ATOW:Companion)

Increases Strength Attribute by 2 (may not take it above 10).

Increases the target number of all Charisma-based skills by 2 due to inhumanly shaped bulk.

Transit Disorientation Syndrome (ATOW)

Is violently ill following a hyperspace jump.

They increase the Target Number of Piloting and Gunnery checks by 1 for 48 hours following the jump (Advanced Medical only).

They also gain Fatigue based on the campaign options fatigue rate (default 1).

Patient (ATOW)

The Target Number of Art/Any, Cryptography, Demolitions, Investigation, Protocols, Security Systems/Any, Strategy, Tactics and Training checks is decreased by 1.

Impatient (ATOW)

The Target Number of Art/Any, Cryptography, Demolitions, Investigation, Protocols, Security Systems/Any, Strategy, Tactics and Training checks is increased by 1.

Gregarious (ATOW)

The Target Number of all Acting and Negotiation checks are decreased by 1.

Introvert (ATOW)

The Target Number of all Acting and Negotiation checks are increased by 1.

Good Vision (ATOW)

The Target Number of all Perception checks is decreased by 1.

Poor Vision (ATOW)

The Target Number of all Perception checks is increased by 1.

Good Hearing (ATOW)

The Target Number of all Perception checks is decreased by 1.

Poor Hearing (ATOW)

The Target Number of all Perception checks is increased by 1.

Fit (ATOW)

Half all Fatigue gained (rounding down).

Unfit (Unofficial)

Doubles all Fatigue gain.

This was added because I have no plans to add the 'Handicap' SPA, as it's not really something we can tastefully model in MekHQ.

Attractive (ATOW)

Decreases the target number of all Charisma-based skills by 2.

Unattractive (ATOW)

Increases the target number of all Charisma-based skills by 2.

Ambidextrous (ATOW)

Removes the penalties from a single missing arm or hand (Advanced Medical only).

Animal Empathy (ATOW)

Decreases the Tar 8000 get Number for all Animal Handling checks by 2.

Animal Antipathy (ATOW)

Increases the Target Number for all Animal Handling checks by 2.

Alternate ID (ATOW)

A low Reputation trait infers a penalty to Negotiation, Streewise and Protocols skill checks. This SPA reduces that penalty by 2.

While this SPA does exist in ATOW (and that's where you'll find its description), these effects are unique to MekHQ as the RAW effects aren't something we could model.

- Introduced the ATOW Toughness option for personnel, providing reduced fatigue gain and injury severity.
- Updated fatigue calculation logic to account for the new Toughness option when combined with the Glass Jaw flaw.
- Ensured Glass Jaw and Toughness cannot coexist due to their opposing effects.
- Applied modified fatigue and injury calculations across multiple classes, including `StratconRulesManager`, `ResolveScenarioTracker`, and `EventEffectsManager`.
- Refactored redundant logic and improved readability of fatigue and injury handling.
- Updated `defaultspa.xml` to define ATOW Toughness attributes and prevent coexistence with Glass Jaw.
- Introduced the "Slow Learner" flaw and "Fast Learner" SPA.
- Updated `defaultspa.xml` to include details for both SPAs, including descriptions, XP costs, and interactions.
- Adjusted skill XP cost calculations in `Person` class to account for the new SPAs.
- Linked "Slow Learner" and "Fast Learner" as mutually exclusive abilities.
- Introduced several new SPAs Flaws from ATOW and ATOW:Companion, including traits like Alternate ID, Ambidextrous, Animal Empathy, Fit, Patient, Poison Resistance, Sixth Sense, and more.
# Conflicts:
#	MekHQ/src/mekhq/campaign/personnel/Person.java
#	MekHQ/src/mekhq/campaign/personnel/PersonnelOptions.java
# Conflicts:
#	MekHQ/src/mekhq/campaign/ResolveScenarioTracker.java
#	MekHQ/src/mekhq/campaign/personnel/PersonnelOptions.java
#	MekHQ/src/mekhq/campaign/randomEvents/prisoners/EventEffectsManager.java
#	MekHQ/src/mekhq/campaign/stratcon/StratconRulesManager.java
…r readability and maintainability:

  - Clarified condition interactions for `FLAW_GLASS_JAW`, `ATOW_TOUGHNESS`, `ATOW_FIT`, and `FLAW_UNFIT`.
  - Ensured proper handling of mutually canceling conditions.
  - Adjusted final multiplier to avoid invalid values (e.g., setting a baseline of 0.5 or 0.25).
- Fixed fatigue increase calculation in `ResolveScenarioTracker` by removing incorrect inclusion of `extraHits` in the formula.
- Replaced `getPilotingInjuryMod` and `getGunneryInjuryMod` with a unified `getInjuryModifiers` method.
  - Improved handling of ambidextrous characters and limb-specific modifiers.
  - Marked old methods as deprecated for future removal.
- Added a new injury type: Transit Disorientation Syndrome.
  - Introduced effects and recovery logic for this injury.
  - Applied injury and fatigue mechanics during hyperspace jumps for affected characters.
- Updated default SPA (Special Physical Abilities) data with adjusted costs, descriptions, and additions for ATOW:Companion.
  - Fixed "Half all Fatigue gained" phrasing in ability descriptions.
@IllianiBird IllianiBird added the SPA Any issue relating to SPA's. Includes Bugs and RFE label Apr 9, 2025
@IllianiBird IllianiBird self-assigned this Apr 9, 2025
@IllianiBird IllianiBird added the Implementation of Missing Official Rule Used with the RFE tag for the implementation of missing official rule label Apr 9, 2025
Copy link
codecov bot commented Apr 9, 2025

Codecov Report

Attention: Patch coverage is 22.25806% with 241 lines in your changes missing coverage. Please review.

Project coverage is 11.44%. Comparing base (b4b20ba) to head (34e0da5).
Report is 47 commits behind head on master.

Files with missing lines Patch % Lines
MekHQ/src/mekhq/campaign/personnel/Person.java 11.62% 103 Missing and 11 partials ⚠️
...kHQ/src/mekhq/campaign/personnel/skills/Skill.java 2.22% 38 Missing and 6 partials ⚠️
...src/mekhq/campaign/personnel/skills/SkillType.java 0.00% 0 Missing and 18 partials ⚠️
...kHQ/src/mekhq/campaign/ResolveScenarioTracker.java 0.00% 13 Missing ⚠️
MekHQ/src/mekhq/campaign/CurrentLocation.java 0.00% 11 Missing ⚠️
MekHQ/src/mekhq/gui/view/PersonViewPanel.java 0.00% 9 Missing ⚠️
MekHQ/src/mekhq/campaign/unit/Unit.java 0.00% 8 Missing ⚠️
...paign/personnel/education/TrainingCombatTeams.java 0.00% 7 Missing ⚠️
MekHQ/src/mekhq/campaign/mod/am/InjuryTypes.java 64.70% 6 Missing ⚠️
MekHQ/src/mekhq/campaign/personnel/InjuryType.java 37.50% 2 Missing and 3 partials ⚠️
... and 3 more
Additional details and impacted files
@@             Coverage Diff              @@
##             master    #6607      +/-   ##
============================================
+ Coverage     11.40%   11.44%   +0.03%     
- Complexity     6450     6474      +24     
============================================
  Files          1089     1089              
  Lines        139885   140180     +295     
  Branches      21642    21745     +103     
============================================
+ Hits          15953    16041      +88     
- Misses       122339   122505     +166     
- Partials       1593     1634      +41     

☔ 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.

@IllianiBird IllianiBird changed the title Added 30 Brand New, Fully Implemented SPAs from A Time of War Added 30 Brand New, Fully Implemented SPAs from A Time of War; Added 2 New Unofficial SPAs Apr 9, 2025
@IllianiBird IllianiBird changed the title Added 30 Brand New, Fully Implemented SPAs from A Time of War; Added 2 New Unofficial SPAs Added 29 Brand New, Fully Implemented SPAs from A Time of War; Added 2 New Unofficial SPAs Apr 9, 2025
@IllianiBird IllianiBird changed the title Added 29 Brand New, Fully Implemented SPAs from A Time of War; Added 2 New Unofficial SPAs Added 29 Brand New, Fully Implemented SPAs from A Time of War; Added 3 New Unofficial SPAs Apr 9, 2025
- Removed `MUTATION_FREAKISH_STRENGTH_UNOFFICIAL` from personnel options and related XML entries.
- Updated relevant methods to eliminate logic handling these unofficial abilities.
- Adjusted descriptions and functionality of `MUTATION_FREAKISH_STRENGTH` and `MUTATION_CAT_GIRL` to consolidate effects.
- Improved error handling and logging for special ability assignment in `CrewSkillUpgrader`.
@IllianiBird IllianiBird changed the title Added 29 Brand New, Fully Implemented SPAs from A Time of War; Added 3 New Unofficial SPAs Added 29 Brand New, Fully Implemented SPAs from A Time of War; Added 2 New Unofficial SPAs Apr 9, 2025
# Conflicts:
#	MekHQ/src/mekhq/campaign/personnel/skills/SkillType.java
@IllianiBird IllianiBird merged commit 2125c1d into MegaMek:master Apr 12, 2025
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Implementation of Missing Official Rule Used with the RFE tag for the implementation of missing official rule SPA Any issue relating to SPA's. Includes Bugs and RFE
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants
0