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

Morale System (Port From White Dream) #620

Merged
merged 67 commits into from
Aug 20, 2024

Conversation

VMSolidus
Copy link
Member

@VMSolidus VMSolidus commented Jul 31, 2024

Description

This Feature has been graciously provided for Einstein Engines to port from the White Dream codebase.

Mood is a system for tracking a character's current Mental State, which fluctuates throughout the round as a result of various events that can modify it. Each consisting of a single line event that can be trivially inserted into any other system, and a yml configured "Moodlet", which is applied to said character. Moodlets can be temporary or permanent, and can also modify a characters mood in either positive or negative directions. Things like, "Being Hungry", "Being Injured", "Petting a cute animal", "Being Hugged", all create a Moodlet.

Mood can provide buffs or debuffs, primarily to movement speed. In fact Mood's movement speed modifier actually completely replaces the movement speed modifiers from Hunger & Thirst. Instead Hunger & Thirst create a negative moodlet that persists until you eat and drink, which can give you a speed penalty. But you might for instance diminish the negative effects by seeking out other positive sources. Or they might just get worse, who knows what could happen?

Media

Mood takes the form of a series of Moodlets, which modify your character's internal Mood stat. It's kinda like a healthbar, but for your mental state. Whenever you gain a moodlet, it appears in a popup. White text for standard moodlets, red text for negative moodlets. By clicking on your mood icon, text will show up displaying all of your currently active Moodlets.

8mb.video-LPa-m8tpkPxa.mp4

New traits!
image

Permission from Codeowners:
morale code permission

TODO

  • Refactor the Crit Threshold modification, and Movement Speed Modification to make it more granular.

Changelog

🆑 VMSolidus & Skubman

  • add: The Mood System has been ported from White Dream. Mood acts as a 3rd healthbar, alongside Health and Stamina, representing your character's current mental state. Having either high or low mood can modify certain physical attributes.
  • add: Mood modifies your Critical Threshold. Your critical threshold can be increased or decreased depending on how high or low your character's mood is.
  • add: Mood modifies your Movement Speed. Characters move faster when they have an overall high mood, and move slower when they have a lower mood.
  • add: Saturnine and Sanguine have been added to the list of Mental traits, both providing innate modifiers to a character's Morale.

@VMSolidus VMSolidus added Changes: C# Changes any cs files Changes: UI Changes any XAML files Changes: YML Changes any yml files Size: 3-Medium For medium issues/PRs Priority: 3-Medium Needs to be resolved at some point Status: Needs Cleanup Someone has to clean this before merging Status: Do Not Merge Do not merge Changes: Sprite Changes any png or json in an RSI Status: Needs Review Someone please review this labels Jul 31, 2024
@github-actions github-actions bot added Changes: Localization Changes any ftl files and removed Changes: UI Changes any XAML files labels Jul 31, 2024
Copy link
Contributor

github-actions bot commented Jul 31, 2024

RSI Diff Bot; head commit a4eb156 merging into 009d45a
This PR makes changes to 1 or more RSIs. Here is a summary of all changes:

Resources/Textures/Interface/Alerts/mood.rsi

State Old New Status
mood1 Added
mood2 Added
mood3 Added
mood4 Added
mood5 Added
mood6 Added
mood7 Added
mood8 Added
mood9 Added
mood_happiness_bad Added
mood_happiness_good Added
mood_insane Added

Edit: diff updated after a4eb156

@DEATHB4DEFEAT DEATHB4DEFEAT marked this pull request as draft July 31, 2024 21:39
@DEATHB4DEFEAT DEATHB4DEFEAT changed the title Port Morale System (DO NOT MERGE) Port Morale System Jul 31, 2024
@VMSolidus VMSolidus marked this pull request as ready for review August 3, 2024 02:54
@VMSolidus
Copy link
Member Author

ALRIGHT, FINISHED AND READY FOR REVIEW. LET'S GO.

@VMSolidus
Copy link
Member Author

All tests passed first try, holy shit.

@VMSolidus VMSolidus removed Status: Needs Cleanup Someone has to clean this before merging Status: Do Not Merge Do not merge labels Aug 3, 2024
@VMSolidus VMSolidus changed the title Port Morale System Port Morale System From White Dream Aug 3, 2024
@DEATHB4DEFEAT DEATHB4DEFEAT added Size: 2-Large For large issues/PRs Type: Balancing Balancing some feature Type: Feature Creation of or significant changes to a feature and removed Size: 3-Medium For medium issues/PRs labels Aug 16, 2024
@github-actions github-actions bot added the Status: Merge Conflict FIX YOUR PR AAAGH label Aug 19, 2024
Copy link
Contributor

This pull request has conflicts, please resolve those before we can evaluate the pull request.

@github-actions github-actions bot removed the Status: Merge Conflict FIX YOUR PR AAAGH label Aug 19, 2024
@OldDanceJacket OldDanceJacket merged commit f8e382b into Simple-Station:master Aug 20, 2024
14 checks passed
SimpleStation14 added a commit that referenced this pull request Aug 20, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Changes: C# Changes any cs files Changes: Localization Changes any ftl files Changes: Sprite Changes any png or json in an RSI Changes: YML Changes any yml files Priority: 3-Medium Needs to be resolved at some point Size: 2-Large For large issues/PRs Status: Needs Review Someone please review this Type: Balancing Balancing some feature Type: Feature Creation of or significant changes to a feature
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants