Skip to content
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

Relationship & Childhood Overhaul #4521

Merged
merged 54 commits into from
Sep 26, 2024
Merged
Show file tree
Hide file tree
Changes from 46 commits
Commits
Show all changes
54 commits
Select commit Hold shift + click to select a range
70724db
Add randomized relationship history for personnel
IllianiCBT Jul 29, 2024
b437dc5
Fixed status logic for clan members
IllianiCBT Jul 29, 2024
a2a0aab
Replace PercentageRandomProcreation with randomProcreation
IllianiCBT Jul 29, 2024
532fc80
Rolled Back accidental switch from `randomFloat` to `randomInt` in te…
IllianiCBT Jul 29, 2024
b5ce81d
Update the procreation process to weekly instead of daily
IllianiCBT Jul 29, 2024
350f599
Adjust simulation duration to use weeks instead of days
IllianiCBT Jul 29, 2024
c8dacd2
Refactored marriage logic to use dice roll method
IllianiCBT Jul 30, 2024
24ffa55
Switch random divorce method to dice roll
IllianiCBT Jul 30, 2024
bd3f387
Deprecate `useRandomSameSexMarriages` option
IllianiCBT Jul 30, 2024
0beba4c
Update panel titles in CampaignOptionsDialog
IllianiCBT Jul 30, 2024
fcac235
Adjusted marriage and procreation dice sizes.
IllianiCBT Jul 30, 2024
161330a
Merge branch 'master' into relationships_doubleToInt
IllianiCBT Jul 30, 2024
27b9c66
Refactored random divorce logic and fixed procreation class name
IllianiCBT Jul 30, 2024
01b22d6
Refactor marriage logic and simplify dice size settings
IllianiCBT Jul 30, 2024
519004b
Update procreation settings and simplify logic
IllianiCBT Jul 30, 2024
e3400fb
Remove same-sex marriage setting
IllianiCBT Jul 30, 2024
fb65061
Remove redundant checks and strings
IllianiCBT Jul 30, 2024
20947ec
Add separate dice size for same-sex random marriages
IllianiCBT Jul 30, 2024
aface43
Added support for inter-unit marriages
IllianiCBT Jul 30, 2024
b225f3a
Fix age adjustment logic for external spouse creation
IllianiCBT Jul 30, 2024
4378d59
Add logging and joinedCampaign attribute to Person
IllianiCBT Jul 31, 2024
aa0ed0f
Merge branch 'refs/heads/master' into relationships_doubleToInt
IllianiCBT Jul 31, 2024
6c4857b
Merge branch 'refs/heads/master' into relationships_doubleToInt
IllianiCBT Aug 2, 2024
08c3c83
Refactor logging system references
IllianiCBT Aug 2, 2024
1e6630b
Merge branch 'refs/heads/backgrounds_simulatedRelationships' into rel…
IllianiCBT Aug 2, 2024
50c62fb
Refactor and streamline personnel generation logic
IllianiCBT Aug 3, 2024
5413a64
Refactored personnel generation and dialog code.
IllianiCBT Aug 3, 2024
76b2986
Remove redundant test verifications for processNewWeek
IllianiCBT Aug 3, 2024
b8c9a11
Refactor role checking and marriage & divorce processes
IllianiCBT Aug 4, 2024
6999be0
Remove minimum marriage age option and update marriage checks
IllianiCBT Aug 4, 2024
793a538
Refactor PersonViewPanel display behavior
IllianiCBT Aug 4, 2024
2337bbd
Add maternity leave support
IllianiCBT Aug 4, 2024
7a4b56b
Add tests for ON_MATERNITY_LEAVE PersonnelStatus
IllianiCBT Aug 4, 2024
9e52e7f
Add adoption functionality for personnel management
IllianiCBT Aug 4, 2024
24e7d9b
Added non-binary gender option for personnel generation
IllianiCBT Aug 5, 2024
183052c
Refactored Gender Enum and Added Marriage/Children Dice Sizes
IllianiCBT Aug 5, 2024
94fc177
Update copyright years for MekHQ source files
IllianiCBT Aug 5, 2024
1a71bd2
Merge branch 'master' into relationships_doubleToInt
IllianiCBT Aug 7, 2024
4143dde
Merge branch 'refs/heads/master' into relationships_doubleToInt
IllianiCBT Aug 7, 2024
7bea27d
Merge remote-tracking branch 'origin/relationships_doubleToInt' into …
IllianiCBT Aug 7, 2024
b31bad5
Merge branch 'refs/heads/master' into relationships_doubleToInt
IllianiCBT Aug 9, 2024
c54baed
Refactored imports in AbstractProcreation.java
IllianiCBT Aug 9, 2024
186e22f
Merge branch 'refs/heads/master' into relationships_doubleToInt
IllianiCBT Aug 19, 2024
d83c2a1
Refactor randomize methods to remove Person parameter
IllianiCBT Aug 20, 2024
5ae936e
Merge branch 'refs/heads/master' into relationships_doubleToInt
IllianiCBT Sep 25, 2024
f1f7c5a
Fixed post-merge weirdness
IllianiCBT Sep 25, 2024
b6d9d00
Remove @SuppressWarnings annotations and add documentation
IllianiCBT Sep 25, 2024
30e3fe1
Remove @SuppressWarnings annotations and add documentation
IllianiCBT Sep 25, 2024
1a39f8e
Merge remote-tracking branch 'origin/relationships_doubleToInt' into …
IllianiCBT Sep 25, 2024
837b344
Enhanced Random-Death Reporting
IllianiCBT Sep 25, 2024
8619d8e
Roll-back Accidental Push to Master
IllianiCBT Sep 25, 2024
a2f8860
Merge branch 'MegaMek:master' into master
IllianiCBT Sep 25, 2024
52d0cdc
Merge branch 'refs/heads/master' into relationships_doubleToInt
IllianiCBT Sep 25, 2024
b42aca4
Remove redundant imports in CampaignGUI.java
IllianiCBT Sep 25, 2024
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
3 changes: 3 additions & 0 deletions MekHQ/resources/mekhq/resources/Campaign.properties
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,9 @@ divorce.text=%s has divorced %s.
#### Unsorted Campaign Resources
dependentLeavesForce.text=%s is no longer travelling with the force, and is thus no longer dependent on it.
dependentJoinsForce.text=%s has started traveling with the force, and is now dependent on it.
relativeJoinsForce.text=%s, %s's %s, has started traveling with the force, and is now dependent on it.
relativeJoinsForceSpouse.text=spouse
relativeJoinsForceChild.text=child
bonusPartLog.text=Bonus part used to acquire 1x
newAtBScenario.format=New scenario "{0}" will occur on {1}.
atbScenarioToday.format=Scenario "{0}" is today, deploy a force from your TOE!
Expand Down
70 changes: 43 additions & 27 deletions MekHQ/resources/mekhq/resources/CampaignOptionsDialog.properties
Original file line number Diff line number Diff line change
Expand Up @@ -435,6 +435,11 @@ lifePathsPanel.title=Life Paths
personnelRandomizationPanel.title=Personnel Randomization
chkUseDylansRandomXP.text=Use Dylan's Random XP (Unofficial)
chkUseDylansRandomXP.toolTipText=Use Dylan's optional random XP on creation of a new person (20% chance each of 0, 1, 2, 3, and randomized between 1 and 8 XP)
lblNonBinaryDiceSize.text=Non-Binary Personnel Dice Size
lblNonBinaryDiceSize.toolTipText=This is the number of sides on the die rolled to determine whether a character's random gender is 'Other.' A character will identify as a gender other than Male or Female on a roll of 1. Set to 0 to disable non-binary characters. The default value is based on the 2022 US Census and gives a result of around 1.6%.

# Random Histories
randomHistoriesPanel.title=Random Histories

# Random Histories
randomHistoriesPanel.title=Random Histories
Expand All @@ -446,47 +451,57 @@ chkUseIntelligenceXpMultiplier.text=Use Intelligence XP Modifiers
chkUseIntelligenceXpMultiplier.toolTipText=If enabled, a character's intelligence will influence all XP costs.
chkUseRandomPersonalityReputation.text=Personalities Influence Unit Reputation
chkUseRandomPersonalityReputation.toolTipText=if enabled, the personality of the campaign commander will impact the unit's Reputation.
chkUseSimulatedRelationships.text=Simulate Relationship History
chkUseSimulatedRelationships.toolTipText=<html>Personnel are generated with a random relationship history.\
<br>\
<br>If randomized marriages are enabled the various marriage settings (including chance) will be used to determine whether new personnel have been previously married.\
<br>\
<br>If randomized procreation is enabled the various procreation settings (including chance) will be used to determine whether new personnel have children traveling with them.\
<br>\
<br>If randomized divorce is enabled the various divorce settings (including chance) will be used to determine whether any marriages have ended in divorce.\
<br>\
<br>Any children and current spouses will travel alongside the unit.</html>

# Family
familyPanel.title=Family (Unofficial)
familyPanel.title=Family
lblFamilyDisplayLevel.text=The Level of Relation to be Displayed in the Personnel Panel
lblFamilyDisplayLevel.toolTipText=<html>This setting is the relation to the selected person that MekHQ will display up to, including the previous levels <br>(higher levels require more processing when loading a person in the personnel table)</html>

# Marriage
marriagePanel.title=Marriage
marriagePanel.title=Marriage (Unofficial)
chkUseManualMarriages.text=Use Manual Marriages
chkUseManualMarriages.toolTipText=<html>This allows the player to disable the Choose Spouse (Mate) option in the personnel table mouse adapter. <br>This option is provided for performance reasons for extremely large campaigns (10k+ personnel).</html>
chkUseClanPersonnelMarriages.text=Use Clan Personnel Marriages
chkUseClanPersonnelMarriages.toolTipText=Allow clan-origin personnel to marry other personnel.
chkUsePrisonerMarriages.text=Use Prisoner Marriages
chkUsePrisonerMarriages.toolTipText=Allow prisoners to marry other prisoners, and manually marrying a prisoner to a free member of the force. Bondsmen are treated as free personnel when it comes to this option, and are thus not affected by it.
lblMinimumMarriageAge.text=Minimum Marital Age
lblMinimumMarriageAge.toolTipText=This is the minimum age that is allowed for a person to be married.
lblNoInterestInMarriageDiceSize.text=No Interest in Marriage Dice Size
lblNoInterestInMarriageDiceSize.toolTipText=This is the number of sides on the die rolled to determine whether a character has no interest in marriage. This die is rolled when a character is created, with no interest in marriage being determined on a roll of 1. This can be overridden by right-clicking on the character and changing their 'Interested in Marriage' flag.
lblCheckMutualAncestorsDepth.text=Minimum Mutual Ancestor Check Depth for Marriage to be Possible
lblCheckMutualAncestorsDepth.toolTipText=<html>This is the depth to which the ancestry of two people are checked for mutual ancestors to determine if they can marry. <br>Set to 0 to disable the ancestry check.</html>
lblCheckMutualAncestorsDepth.toolTipText=<html>This is the depth to which the ancestry of two people is checked for mutual ancestors to determine if they can marry. <br>Set to 0 to disable the ancestry check.</html>
chkLogMarriageNameChanges.text=Log Marriage Name Changes
chkLogMarriageNameChanges.toolTipText=This enables the addition of a personnel log entry whenever a name is changed during marriage.
marriageSurnameWeightsPanel.title=Marriage Surname Weights
marriageSurnameWeightsPanel.toolTipText=<html>These are the weights used in determining the surname change, if any, when using the Weighted Marriage option. <br>They will be the percent chance if the values for the weights all add up to 100.</html>
randomMarriagePanel.title=Random Marriages (Unofficial)
randomMarriagePanel.title=Random Marriages
lblRandomMarriageMethod.text=Random Marriage Method
lblRandomMarriageMethod.toolTipText=This is the method used to determine if an eligible person randomly marries.
chkUseRandomSameSexMarriages.text=Use Same-sex Random Marriage
chkUseRandomSameSexMarriages.toolTipText=This enables random marriages between fitting same sex members of your force.
chkUseRandomClanPersonnelMarriages.text=Use Random Clan Personnel Marriages
chkUseRandomClanPersonnelMarriages.toolTipText=Allow clan-origin personnel to randomly marry other personnel.
chkUseRandomPrisonerMarriages.text=Use Random Prisoner Marriages
chkUseRandomPrisonerMarriages.toolTipText=Allow prisoners to randomly marry other prisoners. Bondsmen are treated as free personnel when it comes to this option, and are thus not affected by it.
lblRandomMarriageAgeRange.text=Random Marriage Age Range
lblRandomMarriageAgeRange.toolTipText=This plus/minus the age forms the possible range of ages for spouses in the forming of a random marriage.
percentageRandomMarriagePanel.title=Percentage Random Marriage
lblPercentageRandomMarriageOppositeSexChance.text=Opposite Sex Chance
lblPercentageRandomMarriageOppositeSexChance.toolTipText=This is the percent chance that a fitting member of your force will marry another fitting member of your force of the opposite sex.
lblPercentageRandomMarriageSameSexChance.text=Same Sex Chance
lblPercentageRandomMarriageSameSexChance.toolTipText=This is the percent chance that a fitting member of your force will marry another fitting member of your force of the same sex.
lblRandomMarriageAgeRange.toolTipText=This plus/minus age forms the possible range of ages for spouses in the forming of a random marriage.
percentageRandomMarriagePanel.title=Marriage Dice
lblRandomMarriageOppositeSexDiceSize.text=Opposite Sex Die Size
lblRandomMarriageOppositeSexDiceSize.toolTipText=This determines the number of sides on the die rolled to determine whether a character gets married. Marriage occurs on a roll of 1.
lblRandomSameSexMarriageDiceSize.text=Same Sex Die Size
lblRandomSameSexMarriageDiceSize.toolTipText=This determines the number of sides on the die rolled to determine whether a marriage is same-sex. Same-sex marriage occurs on a roll of 1. Set this value to 0 to disable same-sex marriages. The default value is based on real world data. For additional information, please see the documentation included in `MekHQ/docs/personnel modules`.
lblRandomNewDependentMarriage.text=Inter-Unit Marriage Die Size
lblRandomNewDependentMarriage.toolTipText=This determines the number of sides on the die rolled to determine whether a marriage is another character in the campaign unit. Inter-unit marriage occurs on a roll of 1. Set this value to 0 to disable inter-unit marriages.

# Divorce
divorcePanel.title=Divorce
divorcePanel.title=Divorce (Unofficial)
chkUseManualDivorce.text=Use Manual Divorce
chkUseManualDivorce.toolTipText=This allows the player to disable the Remove Spouse option in the personnel table mouse adapter.
chkUseClanPersonnelDivorce.text=Use Clan Personnel Divorce
Expand All @@ -495,7 +510,7 @@ chkUsePrisonerDivorce.text=Use Prisoner Divorce
chkUsePrisonerDivorce.toolTipText=Allow divorce when one or both of the couple are currently prisoners. Bondsmen are treated as free personnel when it comes to this option, and are thus not affected by it.
divorceSurnameWeightsPanel.title=Divorce Surname Weights
divorceSurnameWeightsPanel.toolTipText=<html>These are the weights used in determining the surname change, if any, when using the Weighted Divorce option. <br>They will be the percent chance if the values for the weights all add up to 100.</html>
randomDivorcePanel.title=Random Divorce (Unofficial)
randomDivorcePanel.title=Random Divorce
lblRandomDivorceMethod.text=Random Divorce Method
lblRandomDivorceMethod.toolTipText=This is the method used to determine if an eligible person randomly divorces.
chkUseRandomOppositeSexDivorce.text=Use Random Opposite Sex Divorce
Expand All @@ -506,11 +521,9 @@ chkUseRandomClanPersonnelDivorce.text=Use Random Clan Personnel Divorce
chkUseRandomClanPersonnelDivorce.toolTipText=Allow clan-origin personnel to randomly divorce, whether as the origin or the spouse.
chkUseRandomPrisonerDivorce.text=Use Random Prisoner Divorce
chkUseRandomPrisonerDivorce.toolTipText=Allow random divorce when one or both of the couple are currently prisoners. Bondsmen are treated as free personnel when it comes to this option, and are thus not affected by it.
percentageRandomDivorcePanel.title=Percentage Random Divorce
lblPercentageRandomDivorceOppositeSexChance.text=Opposite Sex Chance
lblPercentageRandomDivorceOppositeSexChance.toolTipText=This is the percent chance that a fitting member of your force will divorce their opposite sex spouse.
lblPercentageRandomDivorceSameSexChance.text=Same Sex Chance
lblPercentageRandomDivorceSameSexChance.toolTipText=This is the percent chance that a fitting member of your force will divorce their same-sex spouse.
percentageRandomDivorcePanel.title=Divorce Dice
lblRandomDivorceDiceSize.text=Divorce Die Size
lblRandomDivorceDiceSize.toolTipText=This is the number of sides featured on the weekly dice rolled to see whether a marriage ends in divorce. Divorce occurs on a roll of 1. Set to 0 to disable random divorces for all personnel.

# Procreation
procreationPanel.title=Procreation (Unofficial)
Expand All @@ -533,6 +546,10 @@ chkDetermineFatherAtBirth.text=Determine Father at Birth instead of Conception
chkDetermineFatherAtBirth.toolTipText=<html>The father of a child will be determined based on the spouse at the birth of the child, followed by the spouse at time of conception, followed by nobody. <br>This is opposed to just using the spouse, if any, at the time of conception.</html>
chkDisplayTrueDueDate.text=Display True Due Date
chkDisplayTrueDueDate.toolTipText=This displays the actual date the baby will be delivered on the mother's personnel sheet instead of an estimated due date.
lblNoInterestInChildrenDiceSize.text=No Interest in Children Die Size
lblNoInterestInChildrenDiceSize.toolTipText=This is the number of sides on the die rolled to determine whether a character has no interest in children. This die is rolled when creating the character, with no interest occurring on a roll of 1. The results of this roll can be changed by right-clicking on the character and changing the 'Interested in Children' flag. Changing this value to 1 will mean all characters are interested in children.
chkUseMaternityLeave.text=Use Automatic Maternity Leave
chkUseMaternityLeave.toolTipText=If enabled, pregnant personnel will be placed on maternity leave 20 weeks before they give birth and will not return to active duty until 6 after they have given birth.
chkLogProcreation.text=Log Conception and Birth in Personnel and Medical Logs
chkLogProcreation.toolTipText=This enables logging the date of conception and birth in a person's logs.
randomProcreationPanel.title=Random Procreation
Expand All @@ -544,11 +561,11 @@ chkUseRandomClanPersonnelProcreation.text=Use Random Clan Personnel Procreation
chkUseRandomClanPersonnelProcreation.toolTipText=Allow clan-origin personnel to randomly procreate.
chkUseRandomPrisonerProcreation.text=Use Random Prisoner Procreation
chkUseRandomPrisonerProcreation.toolTipText=Allow prisoners to randomly procreate. Bondsmen are treated as free personnel when it comes to this option, and are thus not affected by it.
percentageRandomProcreationPanel.title=Percentage Random Procreation
lblPercentageRandomProcreationRelationshipChance.text=Relationship Chance
lblPercentageRandomProcreationRelationshipChance.toolTipText=This is the percent chance per day that a female member of your force in a relationship will have a baby when not deployed.
lblPercentageRandomProcreationRelationshiplessChance.text=Relationshipless Chance
lblPercentageRandomProcreationRelationshiplessChance.toolTipText=This is the percent chance per day that a female member of your force not in a relationship will have a baby when not deployed.
percentageRandomProcreationPanel.title=Procreation Dice
lblRandomProcreationRelationshipDiceSize.text=Relationship Die Size
lblRandomProcreationRelationshipDiceSize.toolTipText=This is the number of sides on the dice rolled weekly to determine whether a woman in a relationship will fall pregnant. A roll of 1 results in a pregnancy.
lblRandomProcreationRelationshiplessDiceSize.text=Relationshipless Die Size
lblRandomProcreationRelationshiplessDiceSize.toolTipText=This is the number of sides on the dice rolled weekly to determine whether a woman not in a relationship will fall pregnant. A roll of 1 results in a pregnancy.

# Death
deathPanel.title=Death
Expand Down Expand Up @@ -719,7 +736,6 @@ chkOverageRepaymentInFinalPayment.toolTipText=This is an unofficial addition tha
lblXpCostMultiplier.text=XP Cost Multiplier
lblXpCostMultiplier.tooltip=This value multiplies the XP costs for SPA and Skill Levels.
lblScenarioXP.text=XP for each completed scenario
lblKillXP.text=XP for every
lblXPForEvery.text=XP for every
lblKills.text=kills
lblTasks.text=successful tasks
Expand Down
Loading
Loading