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

[MOM] Add Mental Engineering Telepath 'Ritual' recipe #76471

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

Conversation

b3brodie
Copy link
Contributor

@b3brodie b3brodie commented Sep 16, 2024

Summary

Mods "[MOM] Add Mental Engineering Telepath 'Ritual' recipe"

Purpose of change

Add ways for telepaths to permanently modify their own minds. Done under the guise of adding / removing mutations that are mind based such as being a Cannibal. Lets the telepath add both purely positive, purely negative, and neutral traits alongside a good chance of screwing up and adding something random. Adds some fringe horror of a telepath accidently / intentionally turning themselves into a psychopath, or many other things.

Describe the solution

Several thousand lines of EOC
Originally based it off of the gateway power, but I decided that I don't like queuing EOCs so I made the process activity based instead.
EOC Structure:
Question EOC: runs a eoc_run_selector that picks from a sub-eoc for each mutation which determines if the telepath can gain / lose the trait
Sub-EOC: two per trait. Conditioned off of typical trait requirements (ie cannot be both slow reader and fast reader), general telepath strength (better traits typically require a stronger telepath), and sometimes other specific requirements (such as needing water to cure hatred of water). Also, fixing an issue / improving oneself is always harder than causing an issue / removing an improvement.
Variable: Int variable used to remember which sub-eoc was picked
Activity: All Sub-EOCs call the same activity that at its end calls the EOC that alters the users traits.
Result-EOC: Reads the variable with a switch statement and then gives / removes whatever trait was chosen. Also calls the consequences EOC
Consequences-EOC: Rolls a % chance that the user gains another random trait. Starts at 50% and grows lower the more powerful the telepath is. Randomly assigns the variable and uses another switch statement to choose the trait. Unlike specifically selecting traits to change this EOC has no dependence on telepath power or other specific requirements. Its very possible to gain a trait that one doesn't want and then be incapable of fixing it until the psion grows much stronger. Finally, it also calls itself so very unlucky people can get more than one unintended trait.

Also adds a tool used for crafting the recipe, a telepathic focusing tool, the recipe book to craft the tool and the recipe itself, and related infrastructure to obtain those items. The recipe is only craftable with at minimum 100 total levels of telepathy.

Finally, I also fixed the telepath passive trait since I noticed it was using the wrong class id when I copied it over for this.

Describe alternatives you've considered

When I initially thought of the power I thought there was only around 10-15 mental traits that would have to be considered. I walked through the whole mutation tree and discovered that was very wrong as I was writing this up.
Making it a power rather than recipe. Took a look at the power guide and saw that powers alone cannot permanently affect the psions mind like this.
NPC mental engineering. Would be much more EOC / description changes and probably even less likely in terms of telepathic power abilities.
Making the recipe cost telepathic dust as a consumed item.

Testing

Used recipe many times to gain all the traits, observe the consequences being given, etc.
Checked that the options are gated when they should be (no option to remove bad memory if the player doesn't have bad memory).
Checked that non-telepaths cannot use the recipe

Additional context

N/A

@github-actions github-actions bot added Mods Issues related to mods or modding [JSON] Changes (can be) made in JSON Crafting / Construction / Recipes Includes: Uncrafting / Disassembling Spawn Creatures, items, vehicles, locations appearing on map EOC: Effects On Condition Anything concerning Effects On Condition Mods: Mind Over Matter astyled astyled PR, label is assigned by github actions labels Sep 16, 2024
Copy link
Contributor

@TheShadowFerret TheShadowFerret left a comment

Choose a reason for hiding this comment

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

Reviewed through the first 2000 lines

@Standing-Storm
Copy link
Contributor

Looking forward to writing some Project PHAVIAN research notes about project PATIENT MOSAIC (which didn't manage to have any success in altering others before the Cataclysm, so sad).

@GuardianDll
Copy link
Member

GuardianDll commented Sep 16, 2024

ngl i didn't check really deep, but isn't there a way for this pr to, like, not be 5000 lines big? EOC_TELEPATHIC_MENTAL_ENGINEERING_SELECTOR can be simplified somewhat because run_eoc_selector allows to run a single EoC but with different variables (it can't, because each check require it's own condition that can't be stored in any way really), but maybe there is more? i can provide some code help, because i bet it would be suffer to maintain it

@b3brodie b3brodie marked this pull request as ready for review September 22, 2024 00:24
Copy link
Contributor

Spell checker encountered unrecognized words in the in-game text added in this pull request. See below for details.

Click to expand
  • Finding time to DM a game is probably not going to happen again. Even so, by spending an inordinate amount of time studying a DM'ing guide while under the effect of your psychic powers you think you can get some ideas on how to do it again but quicker.
  • How were you able to eat those humany things so easily?
  • Rather than expanding your palette the normal way, use your incredible telepathic powers to force yourself to be OK with untasty looking food. At least it gets the job done.
  • Remove your Addictiveness

This alert is automatically generated. You can simply disregard if this is inaccurate, or (optionally) you can also add the new words to tools/spell_checker/dictionary.txt so they will not trigger an alert next time.

Hints for adding a new word to the dictionary
  • If the word is normally in all lowercase, such as the noun word or the verb does, add it in its lower-case form; if the word is a proper noun, such as the surname George, add it in its initial-caps form; if the word is an acronym or has special letter case, such as the acronym CDDA or the unit mW, add it by preserving the case of all the letters. A word in the dictionary will also match its initial-caps form (if the word is in all lowercase) and all-uppercase form, so a word should be added to the dictionary in its normal letter case even if used in a different letter case in a sentence.
  • For a word to be added to the dictionary, it should either be a real, properly-spelled modern American English word, a foreign loan word (including romanized foreign names), or a foreign or made-up word that is used consistently and commonly enough in the game. Intentional misspelling (including eye dialect) of a word should not be added unless it has become a common terminology in the game, because while someone may have a legitimate use for it, another person may spell it that way accidentally.

b3brodie and others added 3 commits September 21, 2024 18:33
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
@github-actions github-actions bot added the json-styled JSON lint passed, label assigned by github actions label Sep 22, 2024
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 Crafting / Construction / Recipes Includes: Uncrafting / Disassembling EOC: Effects On Condition Anything concerning Effects On Condition [JSON] Changes (can be) made in JSON json-styled JSON lint passed, label assigned by github actions Mods: Mind Over Matter Mods Issues related to mods or modding Spawn Creatures, items, vehicles, locations appearing on map
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants