Skip to content

Commit

Permalink
[MoM] Add Headblind trait and Latent Psion trait. (#76004)
Browse files Browse the repository at this point in the history
* Add trait

* Add traits

* Update README.md

* Headblind characters cannot gain psionics

* Add randomized odds EoC

* Traits have Cancels fields to prevent weird stacking

* Edit snippet for awakening odds

* Most NPCs cannot be psions

* Awakening removes Latent Psion

* Awakening Psion profession starts with Latent Psion

* EoC has to be recurring to set NPC randomized awakening odds

* Set load EoC to prevent existing characters from having their awakening count increased

* Lint

* Final fixes
  • Loading branch information
Standing-Storm authored Aug 30, 2024
1 parent 79e2897 commit bc9e6bc
Show file tree
Hide file tree
Showing 8 changed files with 232 additions and 24 deletions.
4 changes: 4 additions & 0 deletions data/mods/MindOverMatter/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,10 @@ Bathe in the energies of the Nether.

We have such sights to show you.

Starting characters without psionics have random odds to gain them using these methods, from 50% to less than 1%. There are three traits that can affect this. The first, Latent Psion, raises the odds of gaining initial psionics to 100%. The second, Headblind, prevents a character from ever gaining psionics. The last, Limited Awakening, is designed to be taken by a character who starts with psionics and makes unlocking future paths much harder. Most NPCs are Headblind, and most NPCs who have psionics have Limited Awakening.

Finally, the odds of unlocking future paths are reduced based on the number of paths you already have. This is true for both methods of awakening psionics. There may be other means of awakening that are not subject to these restrictions.

LEARNING NEW POWERS

New powers are unlocked by leveling existing powers. When particular prerequisites are reached and after a certain amount of time (anywhere from a couple of days to a couple of weeks, depending on power difficulty), you have the chance to unlock the possibility of a new power. Once you’ve done so, you can attempt its contemplation recipe, found in the Practice crafting tab, to attempt to understand the power. If you succeed (success depends on your Metaphysics skill), you’ll unlock the power and it will appear in your powers list. If you fail, you’ll have to try again. You can try repeatedly until you successfully unlock it.
Expand Down
55 changes: 43 additions & 12 deletions data/mods/MindOverMatter/effectoncondition/eoc_awakening.json

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -1,4 +1,63 @@
[
{
"type": "effect_on_condition",
"id": "EOC_GAMESTART_RANDOMIZE_AWAKENING_ODDS",
"recurrence": [ "1 minutes", "1 minutes" ],
"condition": { "math": [ "u_has_initial_awakening_countup_set", "!=", "1" ] },
"deactivate_condition": { "math": [ "u_has_initial_awakening_countup_set", "==", "1" ] },
"effect": [ { "run_eocs": "EOC_GAMESTART_RANDOMIZE_AWAKENING_ODDS_2" } ]
},
{
"type": "effect_on_condition",
"id": "EOC_GAMESTART_RANDOMIZE_AWAKENING_ODDS_2",
"condition": {
"or": [
{
"and": [
{
"not": {
"u_has_any_trait": [
"BIOKINETIC",
"CLAIRSENTIENT",
"ELECTROKINETIC",
"PHOTOKINETIC",
"PYROKINETIC",
"TELEKINETIC",
"TELEPATH",
"TELEPORTER",
"VITAKINETIC"
]
}
},
{ "not": { "u_has_trait": "ALWAYS_GAIN_PSIONICS" } }
]
},
{
"and": [
{
"u_has_any_trait": [
"BIOKINETIC",
"CLAIRSENTIENT",
"ELECTROKINETIC",
"PHOTOKINETIC",
"PYROKINETIC",
"TELEKINETIC",
"TELEPATH",
"TELEPORTER",
"VITAKINETIC"
]
},
{ "u_has_trait": "LIMITED_PSIONICS" }
]
}
]
},
"effect": [
{ "math": [ "u_awakening_countup", "+=", "rand(8) + 1" ] },
{ "math": [ "u_has_initial_awakening_countup_set", "=", "1" ] }
],
"false_effect": [ { "math": [ "u_has_initial_awakening_countup_set", "=", "1" ] } ]
},
{
"type": "effect_on_condition",
"id": "EOC_CHECK_GAMESTART_BIOKIN",
Expand Down
58 changes: 58 additions & 0 deletions data/mods/MindOverMatter/mutations/traits.json
Original file line number Diff line number Diff line change
Expand Up @@ -107,6 +107,64 @@
"valid": false,
"spells_learned": [ [ "vita_slow_bleeding", 2 ], [ "vita_health_power", 2 ], [ "classless_toggleable_concentration_end", 1 ] ]
},
{
"type": "mutation",
"id": "CANNOT_GAIN_PSIONICS",
"name": { "str": "Headblind" },
"points": -4,
"description": "You've seen people do some crazy things after the Cataclysm, but you've never managed to figure out how they do it. You can never learn psionic powers.",
"valid": false,
"player_display": true,
"starting_trait": true,
"purifiable": false,
"cancels": [
"BIOKINETIC",
"CLAIRSENTIENT",
"ELECTROKINETIC",
"PHOTOKINETIC",
"PYROKINETIC",
"TELEPATH",
"TELEKINETIC",
"TELEPORTER",
"VITAKINETIC",
"ALWAYS_GAIN_PSIONICS"
]
},
{
"type": "mutation",
"id": "ALWAYS_GAIN_PSIONICS",
"name": { "str": "Latent Psion" },
"points": 3,
"description": "Before the Cataclysm, you were lucky in some way. Maybe you never lost your keys, or maybe you always made that last green light before getting home, or maybe you never had to take a sick day in your life. Now after the Cataclysm, you have the potential for even more power. Your first attempt to awaken psionic powers will always be successful.",
"valid": false,
"player_display": true,
"starting_trait": true,
"purifiable": false,
"cancels": [
"BIOKINETIC",
"CLAIRSENTIENT",
"ELECTROKINETIC",
"PHOTOKINETIC",
"PYROKINETIC",
"TELEPATH",
"TELEKINETIC",
"TELEPORTER",
"VITAKINETIC",
"CANNOT_GAIN_PSIONICS"
]
},
{
"type": "mutation",
"id": "LIMITED_PSIONICS",
"name": { "str": "Limited Awakening" },
"points": -2,
"description": "You managed to awaken psionic powers, but it was a struggle and you're not sure you'll be able to do it again. You are subject to the random odds of awakening new powers.",
"valid": false,
"player_display": false,
"starting_trait": true,
"purifiable": false,
"cancels": [ "CANNOT_GAIN_PSIONICS", "ALWAYS_GAIN_PSIONICS" ]
},
{
"type": "mutation",
"id": "FIFTH_SUN_PEOPLE",
Expand Down
69 changes: 58 additions & 11 deletions data/mods/MindOverMatter/npcs/starting_traits.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,24 @@
"type": "trait_group",
"id": "NPC_starting_traits",
"subtype": "collection",
"traits": [ { "group": "trait_group_PSION", "prob": 1 } ]
"traits": [ { "group": "trait_group_PSION", "prob": 100 } ]
},
{
"//": "This group picks out one of the traits, leading to a 1% chance for an NPC to be a psion.",
"type": "trait_group",
"id": "trait_group_PSION",
"subtype": "distribution",
"traits": [
{ "trait": "CANNOT_GAIN_PSIONICS", "prob": 80 },
{ "trait": "ALWAYS_GAIN_PSIONICS", "prob": 3 },
{ "group": "trait_group_NULL", "prob": 15 },
{ "group": "trait_group_PSION_AWAKENED", "prob": 1 }
]
},
{
"//": "This group picks out one of the traits, leading to a 1% chance for an NPC to be a psion.",
"type": "trait_group",
"id": "trait_group_PSION_AWAKENED",
"subtype": "distribution",
"traits": [
{ "group": "trait_group_BIOKINETIC", "prob": 1 },
{ "group": "trait_group_CLAIRSENTIENT", "prob": 1 },
Expand All @@ -32,54 +43,90 @@
"type": "trait_group",
"id": "trait_group_BIOKINETIC",
"subtype": "collection",
"traits": [ { "trait": "BIOKINETIC", "prob": 100 }, { "trait": "BIOKIN_NEEDS", "prob": 100 } ]
"traits": [
{ "trait": "BIOKINETIC", "prob": 100 },
{ "trait": "BIOKIN_NEEDS", "prob": 100 },
{ "trait": "LIMITED_PSIONICS", "prob": 95 }
]
},
{
"type": "trait_group",
"id": "trait_group_CLAIRSENTIENT",
"subtype": "collection",
"traits": [ { "trait": "CLAIRSENTIENT", "prob": 100 }, { "trait": "CLAIR_SENSES", "prob": 100 } ]
"traits": [
{ "trait": "CLAIRSENTIENT", "prob": 100 },
{ "trait": "CLAIR_SENSES", "prob": 100 },
{ "trait": "LIMITED_PSIONICS", "prob": 95 }
]
},
{
"type": "trait_group",
"id": "trait_group_ELECTROKINETIC",
"subtype": "collection",
"traits": [ { "trait": "ELECTROKINETIC", "prob": 100 }, { "trait": "ELECTRO_SHIELD", "prob": 100 } ]
"traits": [
{ "trait": "ELECTROKINETIC", "prob": 100 },
{ "trait": "ELECTRO_SHIELD", "prob": 100 },
{ "trait": "LIMITED_PSIONICS", "prob": 95 }
]
},
{
"type": "trait_group",
"id": "trait_group_PHOTOKINETIC",
"subtype": "collection",
"traits": [ { "trait": "PHOTOKINETIC", "prob": 100 }, { "trait": "PHOTO_EYES", "prob": 100 } ]
"traits": [
{ "trait": "PHOTOKINETIC", "prob": 100 },
{ "trait": "PHOTO_EYES", "prob": 100 },
{ "trait": "LIMITED_PSIONICS", "prob": 95 }
]
},
{
"type": "trait_group",
"id": "trait_group_PYROKINETIC",
"subtype": "collection",
"traits": [ { "trait": "PYROKINETIC", "prob": 100 }, { "trait": "PYROKIN_ADAPTATION", "prob": 100 } ]
"traits": [
{ "trait": "PYROKINETIC", "prob": 100 },
{ "trait": "PYROKIN_ADAPTATION", "prob": 100 },
{ "trait": "LIMITED_PSIONICS", "prob": 95 }
]
},
{
"type": "trait_group",
"id": "trait_group_TELEKINETIC",
"subtype": "collection",
"traits": [ { "trait": "TELEKINETIC", "prob": 100 }, { "trait": "TELEKINETIC_LIFTER_1", "prob": 100 } ]
"traits": [
{ "trait": "TELEKINETIC", "prob": 100 },
{ "trait": "TELEKINETIC_GRAB_POCKETS", "prob": 100 },
{ "trait": "LIMITED_PSIONICS", "prob": 95 }
]
},
{
"type": "trait_group",
"id": "trait_group_TELEPATH",
"subtype": "collection",
"traits": [ { "trait": "TELEPATH", "prob": 100 }, { "trait": "TELEPATHIC_SUGGESTION", "prob": 100 } ]
"traits": [
{ "trait": "TELEPATH", "prob": 100 },
{ "trait": "TELEPATHIC_SUGGESTION", "prob": 100 },
{ "trait": "LIMITED_PSIONICS", "prob": 95 }
]
},
{
"type": "trait_group",
"id": "trait_group_TELEPORTER",
"subtype": "collection",
"traits": [ { "trait": "TELEPORTER", "prob": 100 }, { "trait": "TELEPORTER_PROTECT", "prob": 100 } ]
"traits": [
{ "trait": "TELEPORTER", "prob": 100 },
{ "trait": "TELEPORTER_PROTECT", "prob": 100 },
{ "trait": "LIMITED_PSIONICS", "prob": 95 }
]
},
{
"type": "trait_group",
"id": "trait_group_VITAKINETIC",
"subtype": "collection",
"traits": [ { "trait": "VITAKINETIC", "prob": 100 }, { "trait": "VITAKINETIC_HEALTH", "prob": 100 } ]
"traits": [
{ "trait": "VITAKINETIC", "prob": 100 },
{ "trait": "VITAKINETIC_HEALTH", "prob": 100 },
{ "trait": "LIMITED_PSIONICS", "prob": 95 }
]
}
]
8 changes: 8 additions & 0 deletions data/mods/MindOverMatter/obsolete/eocs.json
Original file line number Diff line number Diff line change
@@ -1,4 +1,12 @@
[
{
"type": "effect_on_condition",
"id": "EOC_MOM_GAMELOAD_HEADBLIND_UPDATER",
"eoc_type": "EVENT",
"required_event": "game_load",
"condition": { "math": [ "u_has_headblind_pr_set", "!=", "1" ] },
"effect": [ { "math": [ "u_has_headblind_pr_set", "=", "1" ] }, { "math": [ "u_has_initial_awakening_countup_set", "=", "1" ] } ]
},
{
"type": "effect_on_condition",
"id": "EOC_MOM_GAMELOAD_POWER_LEARNING_VARIABLES_UPDATER",
Expand Down
1 change: 1 addition & 0 deletions data/mods/MindOverMatter/professions.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
"name": "Awakening Psion",
"description": "You survived a portal storm and hid inside while reality broke around you, and when you left to examine the damage you found a strange crystal the storm had left behind. It was captivating, and you took it with you. Sometimes, at night, you look into it before you sleep, and you almost feel like something in you is responding to the glow within the crystal.",
"points": 1,
"traits": [ "ALWAYS_GAIN_PSIONICS" ],
"items": {
"both": {
"entries": [
Expand Down
2 changes: 1 addition & 1 deletion data/mods/MindOverMatter/snippets/snippets_new.json
Original file line number Diff line number Diff line change
Expand Up @@ -430,7 +430,7 @@
{
"name": "Preliminary Report: Matrix Awakening",
"id": "lab_file_matrix_research_03",
"text": "Initial testing shows that the rate of awakening from matrix crystal exposure is over 50% with no side effects. Candidates that failed to awaken complained of headaches and bad dreams but the effects rarely last longer than a week (see fig 4). In approximately 5% of cases, however, awakening causes serious side effects including hallucinations, high fever exceeding 39.5°C, muscle tremors, unconsciousness, disassociation, and amnesia. This can occur in either successful or unsuccessful awakening and is a serious danger in certain cases (e.g. incident reports ID39483 and IC49378).\n\nMultiple awakenings are not cost-effective. Despite a wide range of candidates and repeated attempts, only two incidents have ever occurred and no specific commonality between the mathematicians other than gender exist. No further attempts should be made until a similar effectiveness to initial awakenings has been achieved.\n\nIn-phase awakenings show variable efficacy, sometimes much lower or much higher than normal. Efficacy is in general consistent within each plane, though some planes show variable efficacy. Plane 398RG shows 99% efficacy; however, side effects rise to 35% of cases and so further experimentation with 398RG is prohibited. Melchior has so far been unable to find any specific characteristics of a plane that would lead to greater or lesser efficacy. Further testing and sampling are required."
"text": "Initial testing shows that the rate of awakening from matrix crystal exposure is just over 10%, generally with no side effects. Candidates that failed to awaken complained of headaches and bad dreams but the effects rarely last longer than a week (see fig 4). In approximately 15% of cases, however, awakening causes serious side effects including hallucinations, high fever exceeding 39.5°C, muscle tremors, unconsciousness, disassociation, and amnesia. This can occur in either successful or unsuccessful awakening and is a serious danger in certain cases (e.g. incident reports ID39483 and IC49378).\n\nMultiple awakenings are not cost-effective. Despite a wide range of candidates and repeated attempts, only two incidents have ever occurred and no specific commonality between the mathematicians other than gender exist. No further attempts should be made until a similar effectiveness to initial awakenings has been achieved.\n\nIn-phase awakenings show variable efficacy, sometimes much lower or much higher than normal. Efficacy is in general consistent within each plane, though some planes show variable efficacy. Plane 398RG shows 99% efficacy; however, side effects rise to 85% of cases and so further experimentation with 398RG is prohibited. Melchior has so far been unable to find any specific characteristics of a plane that would lead to greater or lesser efficacy. Further testing and sampling are required."
},
{
"name": "LV-429 Analysis",
Expand Down

0 comments on commit bc9e6bc

Please sign in to comment.