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

Cannibals are pariahs 2 #77825

Open
wants to merge 6 commits into
base: master
Choose a base branch
from

Conversation

RenechCDDA
Copy link
Member

@RenechCDDA RenechCDDA commented Nov 14, 2024

Summary

None

Purpose of change

Followup to #77793

I only flagged the beggars as getting mad if you force fed them. People pointed out that this was insufficient. I agree.

Any signs of cannibalism will be treated with ostracizing at best.

Describe the solution

-Butchering people for meat causes anyone that can see you and is not okay with it to take massive opinion hits

-Selling/giving cannibal products to the refugee center will result in exile. You're given a minute to, essentially, run the hell away.

-Food with cannibalism vitamins is worthless

-Non-cannibal/psychopath/sapiovore NPCs will refuse to butcher human corpses.

I extracted a common check of being a canibal/psychopath/sapiovore into a common Character::okay_with_eating_humans() function.

I had to expand json's ability to access faction_food_supply to get/set vitamins

Describe alternatives you've considered

I would like to have Smokes' confrontation to be forced and immediate next time you're at the refugee center, but it is mechanically 1000x simpler and easier to maintain to only do it when the trading topic is selected.

Testing

Cannibal food is worth 0
image

Selling the refugee center cannibal food causes Smokes to confront you next time you bring up trading. (Note that this example used modified vitamin values because of #77825 (comment))

2024-11-17.16-39-37.mp4

Butchering people in front of those who are not okay with it results in them getting angry.

image

image

Additional context

Known issues:
NPCs that are not okay with doing butchering will still "help [you] with this task..."

There's not a simple way to untangle it, since that message is given before the activity even begins, let alone before you are prompted to actually confirm your intentions.

@github-actions github-actions bot added [C++] Changes (can be) made in C++. Previously named `Code` json-styled JSON lint passed, label assigned by github actions astyled astyled PR, label is assigned by github actions labels Nov 14, 2024
@Naadn
Copy link
Contributor

Naadn commented Nov 14, 2024

I have a question : How do other people know the mysterious meat randos sell to them is human meat?

@SariusSkelrets
Copy link
Contributor

I wonder that too, it's not like if they regularly see human flesh or can know at a glance the difference between cooking oil made from human fat and cooking oil made from non-human fat.

@RenechCDDA
Copy link
Member Author

The same way you do. This has already been discussed, so please refer to the previous PR instead of bringing it up again.

@ampersand55
Copy link
Contributor

I like that there are cannibal aspects in the game.

(Bare with me for a moment, I'm not an edge lord)

Take a moment to consider the implications of the fact that a starving beggar camping outside the refugee camp can instantly recognize human meat... That's some horrific immersive story-telling, world-building and character development all in one, from just a simply game mechanic! It ties in so well with the cataclysm setting of a growing sense of desperation and dread.

Lean into it, I would welcome the refugee center to prominently taking a hard stance against cannibalism. Have them attack you on sight. Maybe a quests to kill a band of sapiovores, or a revenge quest from the beggar? Perhaps there could be some other faction that you slowly learn are actually cannibals?

@kevingranade
Copy link
Member

As outlined in the previous PR, we are not interested in "leaning into" cannibalism-related content. The current stance is "yes it's possible but here are the repercussions of doing so".

@IdleSol
Copy link
Contributor

IdleSol commented Nov 14, 2024

What about marlo and turning beggars into mushrooms? I.e. does it work at all? And if it works, shouldn't this patch be extended to marlo as well?

Edit.

Never really thought about it. But I can use "bad" ingredients when making food, can't I? Contaminated, mutated, or just water from the nearest ditch. And the result will contain all the things that were in the ingredients: poison, mutagen and parasites. (assuming I haven't forgotten anything).

Can this be used to feed the beggars? Can it be given to a refugee center? Or just trade with other NPC?

And if the NPCs somehow magically know about the composition. Then they should react.

P.S. I read the comments on the first thread. My personal opinion: detailed information is information for the player. Neither the character nor the NPC knows it. Therefore, we should focus on the consequences of consumption. Human meat does not cause any consequences, unlike poisoned food. But that's my personal opinion.

Edit 2.

There's a mutant in the lobby of the center who feeds the beggars. Maybe he has a keen sense of smell? Or psychic powers? I mean, he could tell if something's wrong with the food. And raise the alarm.

If I wanted to put it in the lore. It would be one of the terms of the deal between the center and the beggars. The mutant helps check the food, and the refugee center doesn't kick the beggars out and sometimes feeds them. Information about this, you could get after completing the quests beggars (from the mutant) or from the merchant after completing the quests of the center (quest to send the plan to the ranch).

Furthermore, I would raise the alarm with some delay. That is, the player gave a bad meal, was thanked and sent home. But on the second visit, there would be a well-armed squad in the center. Neutral and distributed throughout the lobby.

And when the player approached the center, a dialog would activate: drop your weapons and explain what you were trying to feed us. With multiple dialog options and a lie check. The consequences would depend on what exactly you were trying to feed us. Human meat or marlo? The beginning of the fight. Something poisoned? Here's your fine and get the hell out of here. Mutagenic food? Are you a mutant?

@Bone-blood-moss
Copy link

Just make sure your follows don't care. Or it will 100% begin Considered a bug And add more reason to not have followers.

@RenechCDDA
Copy link
Member Author

Just make sure your follows don't care. Or it will 100% begin Considered a bug And add more reason to not have followers.

There is no reason for your followers to suddenly become mindless drones.

@ampersand55
Copy link
Contributor

ampersand55 commented Nov 17, 2024

Perhaps a has_trait check on npcs for cannibal, strict humanitarian or hunter/predator/apex predator to see how they react to a cannibal player.

@RenechCDDA
Copy link
Member Author

Perhaps a has_trait check on npcs for cannibal, strict humanitarian or hunter/predator/apex predator to see how they react to a cannibal player.

That was the planned implementation of Character::okay_with_eating_people(). You'll note it's a dummy (non-existent) at the time of this writing

@RenechCDDA RenechCDDA force-pushed the cannibals_are_pariahs_everywhere branch from cf06f43 to 88be89d Compare November 17, 2024 19:13
@github-actions github-actions bot added the [JSON] Changes (can be) made in JSON label Nov 17, 2024
@RenechCDDA RenechCDDA force-pushed the cannibals_are_pariahs_everywhere branch from 88be89d to 6d9ae77 Compare November 17, 2024 19:45
@github-actions github-actions bot added <Documentation> Design documents, internal info, guides and help. NPC / Factions NPCs, AI, Speech, Factions, Ownership [Markdown] Markdown issues and PRs labels Nov 17, 2024
@RenechCDDA RenechCDDA force-pushed the cannibals_are_pariahs_everywhere branch from 29bffa7 to 619f73e Compare November 17, 2024 20:12
@RenechCDDA
Copy link
Member Author

RenechCDDA commented Nov 17, 2024

The refugee center's protections will not be fully effective in this PR. It's way out of scope so I plan to make a followup for this.

image

Update: Not due to pizza scraping, due to distribute_food. Hoist by my own petard

I don't know what I'm going to do about it, but it won't be in this PR

@github-actions github-actions bot added the BasicBuildPassed This PR builds correctly, label assigned by github actions label Nov 17, 2024
@RenechCDDA RenechCDDA force-pushed the cannibals_are_pariahs_everywhere branch from c1a4579 to f4959fd Compare November 17, 2024 21:25
@github-actions github-actions bot removed the BasicBuildPassed This PR builds correctly, label assigned by github actions label Nov 17, 2024
@RenechCDDA RenechCDDA marked this pull request as ready for review November 17, 2024 22:20
…t human dissection proficiency)

Actually check affected NPC opinions and make_angry if need be

Witnessing NPCs that are upset will comment on it (to make it apparent the source of their anger)
@RenechCDDA RenechCDDA force-pushed the cannibals_are_pariahs_everywhere branch from d3bdef5 to 86325b6 Compare November 17, 2024 22:24
@RenechCDDA
Copy link
Member Author

[...] And if the NPCs somehow magically know about the composition. Then they should react. [...]

Yes, I agree, they should be similarly upset if you give them mutant meat, or something disgusting or (basically) inedible. But that's not within the scope of this PR. This PR is aimed at cannibalism and nothing else.

src/math_parser_diag.cpp Outdated Show resolved Hide resolved
src/math_parser_diag.cpp Outdated Show resolved Hide resolved
}
}
}

Copy link
Contributor

Choose a reason for hiding this comment

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

Extract this to a function and use it in npc::value(), npc::wants_to_buy(), and npc::wants_to_sell() rather than here. That way the item is untradeable rather than just worthless, thieving NPCs won't try to pick it up, and you can display a refusal reason in the trade UI.

@github-actions github-actions bot added the BasicBuildPassed This PR builds correctly, label assigned by github actions label Nov 18, 2024
@RenechCDDA RenechCDDA force-pushed the cannibals_are_pariahs_everywhere branch from 4740a4a to 774ce38 Compare November 19, 2024 05:11
@pantherpusher
Copy link

pantherpusher commented Nov 24, 2024

I feel like an easy explanation as to how they identify human flesh would be that someone else has given them human meat before, and they later discovered that said person was a cannibal, so now they know what human meat looks like, hell, maybe they even have a chart wherever they prep food with a picture of what certain types of meat look like, including human.

@Maleclypse
Copy link
Member

@RenechCDDA can you resolve the conflict and ping me when this is basic build passed?

@Bone-blood-moss
Copy link

Bone-blood-moss commented Dec 15, 2024

If you do add Mutant meat make sure there's a timer for it. It should goes off after some time cause animals will mutate more and more. Not sure about Humanoid/demhuman meat. Should be trust based for when we add nether meat.

@RenechCDDA
Copy link
Member Author

@RenechCDDA can you resolve the conflict and ping me when this is basic build passed?

I think it still needs something to address the points @andrei8l brought up.

If you do add Mutant meat make sure there's a timer for it. It should goes off after some time cause animals will mutate more and more. Not sure about Humanoid/demhuman meat. Should be trust based for when we add nether meat.

This PR only address cannibalism.

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. [JSON] Changes (can be) made in JSON json-styled JSON lint passed, label assigned by github actions [Markdown] Markdown issues and PRs NPC / Factions NPCs, AI, Speech, Factions, Ownership
Projects
None yet
Development

Successfully merging this pull request may close these issues.

10 participants