Cataclysm-DDA
Cataclysm-DDA copied to clipboard
Update Sapiovore mood boosts from eating humans
Summary
Content "Update Sapiovore mood boosts from eating humans"
Purpose of change
Since you can't be a Sapiovore and a Psychopath at the same time anymore (See issue #58764), mood boosts for eating human meat had to be reorganized. Additionally the ingame message "Meh. You've eaten worse." has been changed to a more neutral "Mmh. Tastes like venison." since it makes more sense for them there.
Describe the solution
For Sapiovores there are only two cases that remain: Sapiovore with and without Spiritual. So I could clean up the code in consumption.cpp a bit.
The result is:
- Sapiovore and Spiritual combined grant a mood boost of 10. Message: "You eat the human flesh, and in doing so, devour their spirit." Kudos to @fairyarmadillo for fixing the conditional there, before I changed it again. Fun fact: For lizards and raptors you could technically say, that their human god has become Quetzalcoatl.
- For Sapiovore alone the message is omitted, since they don't feel distaste, like a Psychopath. A Sapiovore doesn't care much about taste, as long as it's meat. A Psychopath on the other hand would eat human meat because he or she had no other choice. If that same Psychopath had a choice between a steak and a cooked creep, he'd rather eat the steak and toss the cooked creep away, hence why I've left the message there for them.
Describe alternatives you've considered
~~The only alternative I considered, was omitting the ingame message for sapiovores ("Meh. You've eaten worse." sounded a bit weird for a human eating creature) and giving no mood boost at all.~~ Scratch that. This 'consideration' actually made it into the PR. See the discussion below.
Testing
Did some testing eating cooked creeps with a human with all permutations of Cannibal, Psycho and Spiritual and with a fully mutated lizard with and without Spiritual.
Additional context
Table of the current outcomes:
Cannibal | Psycho | Spiritual | Sapiovore | Morale | Message |
---|---|---|---|---|---|
✔ | ✔ | ✔ | ❌ | +25 | "You feast upon the human flesh, and in doing so, devour their spirit." |
✔ | ✔ | ❌ | ❌ | +15 | "You feast upon the human flesh." |
✔ | ❌ | ✔ | ❌ | +15 | "You consume the sacred human flesh." |
❌ | ❌ | ✔ | ✔ | +10 | "You eat the human flesh, and in doing so, devour their spirit." |
✔ | ❌ | ❌ | ❌ | +10 | "You indulge your shameful hunger." |
❌ | ✔ | ✔ | ❌ | +5 | "You greedily devour the taboo meat." |
❌ | ✔ | ❌ | ❌ | 0 | "Meh. You've eaten worse." |
❌ | ❌ | ❌ | ✔ | 0 | "Mmh. Tastes like venison." |
❌ | ❌ | ✔ | ❌ | -60 | "This is probably going to count against you if there's still an afterlife." |
❌ | ❌ | ❌ | ❌ | -60 | "You feel horrible for eating a person." |
Closes #58764
Why are non spiritual sapiovores getting a mood bonus from human meat? The point of the mutation is that they don't care.
Psychopathy is not a drive to hurt others, it's a state of not caring. Not caring because you have a psychiatric issue plus not caring because you're turning into a lizard shouldn't make you suddenly get off on eating people. This is a nonsensical change.
Why are non spiritual sapiovores getting a mood bonus from human meat? The point of the mutation is that they don't care.
Psychopathy is not a drive to hurt others, it's a state of not caring. Not caring because you have a psychiatric issue plus not caring because you're turning into a lizard shouldn't make you suddenly get off on eating people. This is a nonsensical change.
I stated my train of thoughts above, but you're ~probably~ right, so BTDT.
Updated the PR message as per discussion. For those, who wonder, where I've mentioned issue #49238 there: Originally this PR took that issue into consideration but as of now, that issue and this PR are completely unrelated putting aside the 'change' to spritual sapiovores. I just wanted to clear that up.
@fairyarmadillo: One final question: Originally sapiovore && spiritual
gave +15 instead of +25 mood. Shall I change that or do you think, that this PR is good to go as it is now?
It was probably there to make up for the fact that sapiovores were losing the cannibal mutation. Since chargen mutations are stuck on now and cannibals can't become sapiovores under any circumstances, I don't see the point.
edit: I misread your question! I have no idea where they got those values. I would just make it the same number as spiritual+psychopath as that represents the same thing as spiritual+sapiovore basically.
edit: I misread your question! I have no idea where they got those values. I would just make it the same number as spiritual+psychopath as that represents the same thing as spiritual+sapiovore basically.
You mean, reduce it to +5 mood? Might be a bit too low. The comment there says:
// Small bonus for violating a taboo.
I was thinking more into the direction of reverting this change:
- } else if( ( cannibal || sapiovore ) && spiritual ) {
+ } else if( cannibal && spiritual ) {
add_msg_if_player( m_good, _( "You consume the sacred human flesh." ) );
// Boosted because you understand the philosophical implications of your actions, and YOU LIKE THEM.
add_morale( MORALE_CANNIBAL, 15, 200 );
But the message doesn't fit very well, mmh. Maybe change it to: "You eat the human flesh, and in doing so, devour their spirit."?
How about the following:
} else if( sapiovore && spiritual ) {
add_msg_if_player( m_good, _( "You eat the human flesh, and in doing so, devour their spirit." ) );
add_morale( MORALE_CANNIBAL, 10, 50 );
Aka: Don't treat them on the same level as cannibal && spiritual
because cannibalism is about eating your own species and humans aren't same species anymore. Would be a compromise between that and 'breaking a taboo' which, too only fits for humans.
Ok, added the +10 morale chunk and modified the top conditional, so it doesn't handle sapiovores anymore. I've tested all possible permutations of cannibal / psycho / spiritual / sapiovore and the messages as seen in the current diff to master show up as intended (I think?). I'd say, we've done enough nitpicking about this and there's always the option of a last minute change from a maintainer.
PS: Ultimately it would be way easier to maintain and test, if that chunk would be jsonified. Especially, since you don't need to run the compiler every time you make a change to it.
Table of the current outcomes:
Cannibal | Psycho | Spiritual | Sapiovore | Morale | Message |
---|---|---|---|---|---|
✔ | ✔ | ✔ | ❌ | +25 | "You feast upon the human flesh, and in doing so, devour their spirit." |
✔ | ✔ | ❌ | ❌ | +15 | "You feast upon the human flesh." |
✔ | ❌ | ✔ | ❌ | +15 | "You consume the sacred human flesh." |
❌ | ❌ | ✔ | ✔ | +10 | "You eat the human flesh, and in doing so, devour their spirit." |
✔ | ❌ | ❌ | ❌ | +10 | "You indulge your shameful hunger." |
❌ | ✔ | ✔ | ❌ | +5 | "You greedily devour the taboo meat." |
❌ | ✔ | ❌ | ❌ | 0 | "Meh. You've eaten worse." |
❌ | ❌ | ❌ | ✔ | 0 | "Mmh. Tastes like venison." |
❌ | ❌ | ✔ | ❌ | -60 | "This is probably going to count against you if there's still an afterlife." |
❌ | ❌ | ❌ | ❌ | -60 | "You feel horrible for eating a person." |
Looks good to me. Just so you're aware, I'm not a maintainer. I also just saw that you already posted in the ready-to-merge channel so I guess I've got nothing more to add. Thanks for contributing :)
I requested that before I've got an all green on those checks. Actually I expected the opposite to happen at that point.