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

I can befriend hallucinatory NPCs #53677

Closed
hexagonrecursion opened this issue Dec 22, 2021 · 9 comments
Closed

I can befriend hallucinatory NPCs #53677

hexagonrecursion opened this issue Dec 22, 2021 · 9 comments
Labels
NPC / Factions NPCs, AI, Speech, Factions, Ownership <Suggestion / Discussion> Talk it out before implementing

Comments

@hexagonrecursion
Copy link
Contributor

Describe the bug

It is possible to hallucinate an NPC. You can even talk it her. You can even ask him to be your friend. All sorts of shenanigans become possible once you have an imaginary friend. Right, Alice? All sorts of shenanigans. She agrees disagrees refuses to comment.

Steps to reproduce

  1. Hallucinate an NPC. This may take a while. I do not know how to make this quick.
  2. (optional) save, quit and backup your world
  3. Befriend the NPC. This may take a few tries. Note: I did not use debug mind control out of concern that it might interfere with the experiment
  4. Profit

Things you can do once you have an imaginary friend include:

  1. Bump into your friend and select "Trade" in the menu. Note: trading through the talk menu appears to be disabled for hallucinations.
  2. Sort the armor of your imaginary friend
  3. Talk -> "there's something I want you to do" -> "drop off any items you are not using"
  4. Ask your friend to train you
  5. Likely many, many more

1 and 2 allow transfer of items both to and from your imaginary friend. 3 is one-directional.

Expected behavior

The game should not allow you to befriend a hallucination.

Screenshots

No response

Versions and configuration

  • OS: Linux
    • OS Version: LSB Version: :core-4.1-amd64:core-4.1-noarch; Distributor ID: Fedora; Description: Fedora release 34 (Thirty Four); Release: 34; Codename: ThirtyFour;
  • Game Version: 0.F-4523-g00a57e1f7d [64-bit]
  • Graphics Version: Tiles
  • Game Language: English [en]
  • Mods loaded: [
    Dark Days Ahead [dda],
    Disable NPC Needs [no_npc_food],
    No Fungal Growth [no_fungal_growth],
    Bionic Professions [package_bionic_professions]
    ]

Additional context

Originally reported here #53243 (comment) #53243 (comment) #53243 (comment)

I am merging this all into one bug because I expect one fix. If you instead choose to audit every possible interaction one could have with an allied NPC and make it hallucination-aware (much more code and many more bugs for little profit IMHO; Alice approves though, but she is biased), you should split this bug into several.

@foul-fortune-feline
Copy link
Contributor

I feel like maybe you should be able to befriend a hallucination, but they shouldn't give you physical objects or train you in anything you don't know (Maybe they could train up practical skill if you have theoretical skill tho)

@hexagonrecursion
Copy link
Contributor Author

Me and Alice both agree that imaginary friends are awesome. What is not awesome, however, is that there are probably hundreds of places in the code that would need to be hallucination-aware - there are many mechanics that involve allied NPC interaction. This is also prone to regressions - when code changes or when new mechanics are added. Disallowing this state entirely is much easier.

@Inglonias
Copy link
Contributor

We already have many places in the code that are hallucination aware regarding NPCs. This was added as a feature, rather than a bug.

@ChrisGarrett23
Copy link

Personally I love that this exists and would love to see any items you give them just get dropped on the floor.

This is a neat area/thought for Magiclysm, some imaginary friends could actually be tricky and steal what you give or friendly and act like a tiny pocket dimension for items.

@Maleclypse Maleclypse added <Suggestion / Discussion> Talk it out before implementing NPC / Factions NPCs, AI, Speech, Factions, Ownership labels Dec 25, 2021
@Fris0uman
Copy link
Contributor

Befriending hallucinations is definitly intended #28157
Trading and getting items from them is not though

@hexagonrecursion
Copy link
Contributor Author

Ok. I'll split this then

@hexagonrecursion
Copy link
Contributor Author

I'll wait until a build containing #54307 is available

@hexagonrecursion
Copy link
Contributor Author

The examine -> trade exploit is fixed

  • OS: Linux
    • OS Version: LSB Version: :core-4.1-amd64:core-4.1-noarch; Distributor ID: Fedora; Description: Fedora release 34 (Thirty Four); Release: 34; Codename: ThirtyFour;
  • Game Version: c8a49e1 [64-bit]
  • Graphics Version: Tiles
  • Game Language: English [en]
  • Mods loaded: [
    Dark Days Ahead [dda],
    Disable NPC Needs [no_npc_food],
    Graphical Overmap [Graphical_Overmap]
    ]

@hexagonrecursion
Copy link
Contributor Author

Above are several examples of shenanigans. TLDR: there are many mechanics specific to NPC followers. Every single one needs to be audited to correctly handle hallucinations. What is worse: we now have to know about this edge case and remember to handle it correctly any time we add a new follower-related mechanic.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
NPC / Factions NPCs, AI, Speech, Factions, Ownership <Suggestion / Discussion> Talk it out before implementing
Projects
None yet
Development

No branches or pull requests

6 participants