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

Adds social/asocial mutations #71837

Merged
merged 10 commits into from
Feb 23, 2024
Merged

Conversation

fairyarmadillo
Copy link
Contributor

@fairyarmadillo fairyarmadillo commented Feb 18, 2024

Summary

Features "Adds social/asocial mutations"

Purpose of change

We should do more with morale and NPCs.

Describe the solution

This PR creates four new mutations of a new type, SOCIAL.

Extrovert - You don't mind being alone, but you get a slight mood boost from being around friends.
Introvert - You can tolerate others, but you prefer to be alone. Spending time by yourself will boost your mood slightly.
Sociable - You are a social creature. Spending time with friends will improve your mood, but if you're alone too long, you'll start to feel unhappy.
Loner - You'd really rather be by yourself. Being alone will improve your mood, but spending too much time around other people can grate on your nerves.

Extroverts and Introverts get a +6 morale bonus with a two-hour cap. This bonus kicks in after spending 10-30 minutes with/without company.

Sociable and loner characters get the same bonus in the same amount of time, but the bonus lasts six hours instead.

Sociable and loner characters get a stacking -7 morale penalty every 30-90 minutes that they're with/without company.

"Company" refers only to people in the character's faction. This prevents you from farming morale in places where your lingering presence may be unwelcome, like the refugee center, and incentivizes recruiting NPC buddies for the social characters. This also prevents loners from being penalized for simply doing business with NPCs outside their faction. All penalties and bonuses reset when a character sleeps.

All four mutations are available as starting traits, and are also rolled into mutation lines as follows:
Extrovert: Lupine, Bird, Fish
Sociable: Cattle, Mouse, Rat, Chiropteran, Elf-A
Introvert: Feline, Chimera
Loner: Spider, Ursine, Lizard, Beast

Additionally, plant and elf mutants using their tree communion mutation will count as being among allies, for better or worse. Slimes being cheered by their microbians will lose loneliness debuffs, but the microbians aren't sophisticated enough to count as friends and confer buffs.

Alpha's Superiority Complex has been moved from the empathy to social type, so they can be Uncaring again.

On the technical side, this PR adds u_characters_nearby, a math function that can check for friendlies (ie members of your own faction), hostiles, non-friendlies, and all characters. It can also optionally accept hallucinated characters.

Describe alternatives you've considered

None

Testing

  • Hung out around people as an extrovert and a sociable character, got the appropriate bonus both times.
  • Hung out alone as an introvert and a loner, got the appropriate bonus both times.
  • Went off on my own as a sociable character. Saw that penalties accrued as intended.
  • Hung out with people as a loner, saw that penalties accrued as intended.
  • Slept, saw that all effects wore off as intended.

Additional context

@github-actions github-actions bot added <Documentation> Design documents, internal info, guides and help. NPC / Factions NPCs, AI, Speech, Factions, Ownership [JSON] Changes (can be) made in JSON Mutations / Traits / Professions/ Hobbies Mutations / Traits / Professions/ Hobbies [C++] Changes (can be) made in C++. Previously named `Code` [Markdown] Markdown issues and PRs EOC: Effects On Condition Anything concerning Effects On Condition <Enhancement / Feature> New features, or enhancements on existing labels Feb 18, 2024
@github-actions github-actions bot added astyled astyled PR, label is assigned by github actions json-styled JSON lint passed, label assigned by github actions labels Feb 19, 2024
@fairyarmadillo fairyarmadillo changed the title social stuff Adds social/asocial mutations Feb 19, 2024
@github-actions github-actions bot added the BasicBuildPassed This PR builds correctly, label assigned by github actions label Feb 19, 2024
@andrewhr
Copy link
Contributor

I was looking a bit into dreams.json these days and notice Alpha has a lot of dreams related to "leadership", kinda leering onto the "strong ruler" sorta stereotype. Would some of these new mutations fit that line as well? Given the dreams be about that, I think so. What do you think?

PS: great work on this mutation line! 💪

@fairyarmadillo
Copy link
Contributor Author

fairyarmadillo commented Feb 21, 2024

Alpha's Superiority Complex mutation has been moved into the SOCIAL category, which means it will replace any social/asocial traits the character has and prevent them from gaining any others. Alphas don't care if they're alone or they're in a group, but they will not abide following someone inferior. Elf-A, a related line, lacks the superiority complex and instead needs a group to belong to. These mutations were given to a ton of lines and I'd prefer not to overdo it.

This also lets Alphas have the Uncaring trait again so they can be Pat Bateman.

@fairyarmadillo fairyarmadillo marked this pull request as ready for review February 21, 2024 01:09
Copy link
Contributor

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Auto-requesting reviews from non-collaborators: @andrei8l

@Maleclypse
Copy link
Member

I have questions about whether the bonuses and negatives are too high but I also think our bonus and negative morale is incredibly random so it's probably better to see how it plays out in game.

@Maleclypse Maleclypse merged commit e144b3a into CleverRaven:master Feb 23, 2024
40 of 42 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
astyled astyled PR, label is assigned by github actions BasicBuildPassed This PR builds correctly, label assigned by github actions [C++] Changes (can be) made in C++. Previously named `Code` <Documentation> Design documents, internal info, guides and help. <Enhancement / Feature> New features, or enhancements on existing EOC: Effects On Condition Anything concerning Effects On Condition [JSON] Changes (can be) made in JSON json-styled JSON lint passed, label assigned by github actions [Markdown] Markdown issues and PRs Mutations / Traits / Professions/ Hobbies Mutations / Traits / Professions/ Hobbies NPC / Factions NPCs, AI, Speech, Factions, Ownership
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants