Now, this idea will probably get instantly rejected by most of you for being too high RP. But I hope after reading this topic I can atleast kind of change your mind on that.
First of all, my idea: Add a mood system for humans which allows them to gain or lose happiness based on recent events.
Being in a bad mood could take the effect of current hunger (being slowed down, replacing hunger's negative effect with a bad moodlet or possibly toxin damage), and make you sob randomly or in REALLY extreme cases (as in, you just saw your mother die, your dog got lynched, and your PR was closed. All at the same time.), stun you and make you cry for a while. These effects would not always be happening. They would happen if you are either severely abusing yourself, or being abused by an antag. So please don't worry it'll continiously stun you in bad times because you didn't do X and Y. There's no plan to make it be like that.
Good moods positive effects are to be thought about in the future.
Either way, mood is gained or lost by gaining moodlets, these moodlets can be something simple like "I recently had some nice food +1 happiness" or "I recently saw a clown +1 happiness". This system potentially adds some fluff to character development, and combined with things such as hulk, you could have a new system of balancing positive and negative effect (Being a hulk could give you a huge negative mood effect, for example.)
Now, I can already imagine a lot of you will proclaim that this idea is too H-RP, but that's where I disagree. H-RP servers would actually dislike this idea because they revolve around the idea of passive RP, in which RP is usually, well, passive. You pretend your character dislikes the clown, you pretend your burger is wrapped and you unwrap it, you pretend the engine is more complex than it's mechanics offer. This idea however, is a game mechanic. It doesn't make you pretend, it just sets up another game rule. And it's actually another challenge for you to face. It would give us another way to balance a lot of features. And in a way you can just compare moods to damage on a very high level. You can gain (heal) or lose (get damaged) mood, and that makes the game more difficult for you.
Now, I already have a big part of this PR set up and could easily PR it to TG, adding a framework that allows anyone to add moodlets to players that could for example last for 5 minutes, or untill a certain event has passed.
DISCLAIMER 1: the hygiene and needs will not be included, as I don't think TG would be too interested in that.
https://github.com/FTL13/FTL13/pull/2564
DISCLAIMER 2: the hygiene and needs will not be included, as I don't think TG would be too interested in that.
DISCLAIMER 3: Some things in this version of the PR will be changed to better fit TGs level of RP as compared to FTLs. It's mainly as an example of what it could look like.
But as an example, a clown hugs you. You would be able to call
Code: Select all
M.add_event("clown_hug", /datum/happiness_event/clown_hug)
And once again; none of this is final. So even if you dislike some of the parts of this idea, but like others, feel free to give some suggestions that could make this a bit more acceptable.
Pictures of current moodies UI design:
Edit: Added a few example of the moodlets we have coded in so far: (Thanks to Ike!)
Code: Select all
/datum/happiness_event/creampie
description = "<span class='warning'>I've been creamed. Tastes like pie flavor.</span>\n"
happiness = -2
timeout = 1800
/datum/happiness_event/delam //SM delamination
description = "<span class='boldwarning'>Those God damn engineers can't do anything right...</span>\n"
happiness = -8
timeout = 6000
/datum/happiness_event/shameful_suicide //suicide_acts that return SHAME, like sord
description = "<span class='boldwarning'>I can't even end it all!</span>\n"
happiness = -10
timeout = 600
/datum/happiness_event/blessing
description = "<span class='green'>I've been blessed.</span>\n"
happiness = 3
timeout = 3000
/datum/happiness_event/honk
description = "<span class='green'>Maybe clowns aren't so bad after all. Honk!</span>\n"
happiness = 2
timeout = 2400
/datum/happiness_event/broken_vow //Used for when mimes break their vow of silence
description = "<span class='boldwarning'>I have brought shame upon my name, and betrayed my fellow mimes by breaking our sacred vow...</span>\n"
happiness = -5
/datum/happiness_event/tased
description = "<span class='warning'>There's no \"z\" in \"taser\". It's in the zap.</span>\n"
happiness = -4
timeout = 3000
/datum/happiness_event/drugs/withdrawal_severe
happiness = -7
/datum/happiness_event/drugs/withdrawal_severe/add_effects(name)
description = "<span class='boldwarning'>Oh god I need some [name]</span>\n"