Skip to content

Commit

Permalink
[MoM] Wielding a matrix crystal enhances your powers (#66644)
Browse files Browse the repository at this point in the history
* Initial commits

* Move crystal draining to dedicated EoCs

* rename
  • Loading branch information
Standing-Storm authored Jul 5, 2023
1 parent b0ae1c2 commit 66e88e5
Show file tree
Hide file tree
Showing 5 changed files with 188 additions and 16 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
[
{
"type": "effect_on_condition",
"id": "EOC_BIOKIN_CRYSTAL_DRAINING",
"condition": { "u_has_item": "matrix_crystal_biokinesis" },
"effect": [
{ "u_consume_item": "matrix_crystal_biokinesis", "count": 1 },
{ "u_spawn_item": "matrix_crystal_drained", "suppress_message": true }
]
},
{
"type": "effect_on_condition",
"id": "EOC_CLAIR_CRYSTAL_DRAINING",
"condition": { "u_has_item": "matrix_crystal_clairsentience" },
"effect": [
{ "u_consume_item": "matrix_crystal_clairsentience", "count": 1 },
{ "u_spawn_item": "matrix_crystal_drained", "suppress_message": true }
]
},
{
"type": "effect_on_condition",
"id": "EOC_PYROKIN_CRYSTAL_DRAINING",
"condition": { "u_has_item": "matrix_crystal_pyrokinesis" },
"effect": [
{ "u_consume_item": "matrix_crystal_pyrokinesis", "count": 1 },
{ "u_spawn_item": "matrix_crystal_drained", "suppress_message": true }
]
},
{
"type": "effect_on_condition",
"id": "EOC_TELEKIN_CRYSTAL_DRAINING",
"condition": { "u_has_item": "matrix_crystal_telekinesis" },
"effect": [
{ "u_consume_item": "matrix_crystal_telekinesis", "count": 1 },
{ "u_spawn_item": "matrix_crystal_drained", "suppress_message": true }
]
},
{
"type": "effect_on_condition",
"id": "EOC_TELEPATH_CRYSTAL_DRAINING",
"condition": { "u_has_item": "matrix_crystal_telepathy" },
"effect": [
{ "u_consume_item": "matrix_crystal_telepathy", "count": 1 },
{ "u_spawn_item": "matrix_crystal_drained", "suppress_message": true }
]
},
{
"type": "effect_on_condition",
"id": "EOC_TELEPORT_CRYSTAL_DRAINING",
"condition": { "u_has_item": "matrix_crystal_teleportation" },
"effect": [
{ "u_consume_item": "matrix_crystal_teleportation", "count": 1 },
{ "u_spawn_item": "matrix_crystal_drained", "suppress_message": true }
]
},
{
"type": "effect_on_condition",
"id": "EOC_VITAKIN_CRYSTAL_DRAINING",
"condition": { "u_has_item": "matrix_crystal_vitakinesis" },
"effect": [
{ "u_consume_item": "matrix_crystal_vitakinesis", "count": 1 },
{ "u_spawn_item": "matrix_crystal_drained", "suppress_message": true }
]
}
]
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@
},
{ "u_add_trait": "BIOKINETIC" },
{ "u_add_trait": "BIOKIN_NEEDS" },
{ "u_spawn_item": "matrix_crystal_drained", "suppress_message": true },
{ "queue_eocs": "EOC_BIOKIN_CRYSTAL_DRAINING", "time_in_future": "1 seconds" },
{ "u_add_effect": "effect_biokin_physical", "duration": "5 minutes" },
{ "run_eocs": "EOC_TEACH_BIOKIN_CONTEMPLATE_RECIPES" },
{ "arithmetic": [ { "global_val": "var", "var_name": "awakening_reducer" }, "+=", { "const": 2 } ] }
Expand All @@ -54,7 +54,7 @@
},
{ "u_add_effect": "psionic_overload", "duration": "1 hours" },
{ "u_add_effect": "stunned", "duration": 5 },
{ "u_spawn_item": "matrix_crystal_drained", "suppress_message": true }
{ "queue_eocs": "EOC_BIOKIN_CRYSTAL_DRAINING", "time_in_future": "1 seconds" }
]
},
{
Expand Down Expand Up @@ -96,7 +96,7 @@
},
{ "u_add_trait": "CLAIRSENTIENT" },
{ "u_add_trait": "CLAIR_SENSES" },
{ "u_spawn_item": "matrix_crystal_drained", "suppress_message": true },
{ "queue_eocs": "EOC_CLAIR_CRYSTAL_DRAINING", "time_in_future": "1 seconds" },
{ "u_add_effect": "effect_clair_clear_sight", "duration": "1 minutes" },
{ "run_eocs": "EOC_TEACH_CLAIR_CONTEMPLATE_RECIPES" },
{ "arithmetic": [ { "global_val": "var", "var_name": "awakening_reducer" }, "+=", { "const": 2 } ] }
Expand All @@ -112,7 +112,7 @@
},
{ "u_add_effect": "psionic_overload", "duration": "1 hours" },
{ "u_add_effect": "stunned", "duration": 5 },
{ "u_spawn_item": "matrix_crystal_drained", "suppress_message": true }
{ "queue_eocs": "EOC_CLAIR_CRYSTAL_DRAINING", "time_in_future": "1 seconds" }
]
},
{
Expand Down Expand Up @@ -155,7 +155,7 @@
{ "u_add_trait": "PYROKINETIC" },
{ "u_add_trait": "PYROGLOW_WEAK" },
{ "u_add_trait": "PYROGLOW_STRONG" },
{ "u_spawn_item": "matrix_crystal_drained", "suppress_message": true },
{ "queue_eocs": "EOC_PYROKIN_CRYSTAL_DRAINING", "time_in_future": "1 seconds" },
{ "u_add_effect": "effect_pyrokinetic_cloak", "duration": "5 minutes" },
{ "u_add_effect": "effect_pyrokinetic_aura", "duration": "5 minutes" },
{ "run_eocs": "EOC_TEACH_PYROKIN_CONTEMPLATE_RECIPES" },
Expand All @@ -172,7 +172,7 @@
},
{ "u_add_effect": "psionic_overload", "duration": "1 hours" },
{ "u_add_effect": "stunned", "duration": 5 },
{ "u_spawn_item": "matrix_crystal_drained", "suppress_message": true }
{ "queue_eocs": "EOC_PYROKIN_CRYSTAL_DRAINING", "time_in_future": "1 seconds" }
]
},
{
Expand Down Expand Up @@ -214,7 +214,7 @@
},
{ "u_add_trait": "TELEKINETIC" },
{ "u_add_trait": "TELEKINETIC_LIFTER_1" },
{ "u_spawn_item": "matrix_crystal_drained", "suppress_message": true },
{ "queue_eocs": "EOC_TELEKIN_CRYSTAL_DRAINING", "time_in_future": "1 seconds" },
{ "u_add_effect": "effect_telekinetic_armor", "duration": "1 minutes" },
{ "run_eocs": "EOC_TEACH_TELEKIN_CONTEMPLATE_RECIPES" },
{ "arithmetic": [ { "global_val": "var", "var_name": "awakening_reducer" }, "+=", { "const": 2 } ] }
Expand All @@ -230,7 +230,7 @@
},
{ "u_add_effect": "psionic_overload", "duration": "1 hours" },
{ "u_add_effect": "stunned", "duration": 5 },
{ "u_spawn_item": "matrix_crystal_drained", "suppress_message": true }
{ "queue_eocs": "EOC_TELEKIN_CRYSTAL_DRAINING", "time_in_future": "1 seconds" }
]
},
{
Expand Down Expand Up @@ -272,7 +272,7 @@
},
{ "u_add_trait": "TELEPATH" },
{ "u_add_trait": "TELEPATHIC_SUGGESTION" },
{ "u_spawn_item": "matrix_crystal_drained", "suppress_message": true },
{ "queue_eocs": "EOC_TELEPATH_CRYSTAL_DRAINING", "time_in_future": "1 seconds" },
{ "u_add_effect": "effect_telepathic_learning_bonus", "duration": "1 minutes" },
{ "run_eocs": "EOC_TEACH_TELEPATH_CONTEMPLATE_RECIPES" },
{ "arithmetic": [ { "global_val": "var", "var_name": "awakening_reducer" }, "+=", { "const": 2 } ] }
Expand All @@ -288,7 +288,7 @@
},
{ "u_add_effect": "psionic_overload", "duration": "1 hours" },
{ "u_add_effect": "stunned", "duration": 5 },
{ "u_spawn_item": "matrix_crystal_drained", "suppress_message": true }
{ "queue_eocs": "EOC_TELEPATH_CRYSTAL_DRAINING", "time_in_future": "1 seconds" }
]
},
{
Expand Down Expand Up @@ -330,7 +330,7 @@
},
{ "u_add_trait": "TELEPORTER" },
{ "u_add_trait": "TELEPORTER_PROTECT" },
{ "u_spawn_item": "matrix_crystal_drained", "suppress_message": true },
{ "queue_eocs": "EOC_TELEPORT_CRYSTAL_DRAINING", "time_in_future": "1 seconds" },
{
"u_cast_spell": { "id": "teleport_blink_monster", "message": "Reality suddenly warps around you and you are somewhere else!" }
},
Expand All @@ -348,7 +348,7 @@
},
{ "u_add_effect": "psionic_overload", "duration": "1 hours" },
{ "u_add_effect": "stunned", "duration": 5 },
{ "u_spawn_item": "matrix_crystal_drained", "suppress_message": true }
{ "queue_eocs": "EOC_TELEPORT_CRYSTAL_DRAINING", "time_in_future": "1 seconds" }
]
},
{
Expand Down Expand Up @@ -390,7 +390,7 @@
},
{ "u_add_trait": "VITAKINETIC" },
{ "u_add_trait": "VITAKINETIC_HEALTH" },
{ "u_spawn_item": "matrix_crystal_drained", "suppress_message": true },
{ "queue_eocs": "EOC_VITAKIN_CRYSTAL_DRAINING", "time_in_future": "1 seconds" },
{ "u_add_effect": "effect_vita_health", "duration": "5 minutes" },
{ "run_eocs": "EOC_TEACH_VITAKIN_CONTEMPLATE_RECIPES" },
{ "arithmetic": [ { "global_val": "var", "var_name": "awakening_reducer" }, "+=", { "const": 2 } ] }
Expand All @@ -406,7 +406,7 @@
},
{ "u_add_effect": "psionic_overload", "duration": "1 hours" },
{ "u_add_effect": "stunned", "duration": 5 },
{ "u_spawn_item": "matrix_crystal_drained", "suppress_message": true }
{ "queue_eocs": "EOC_VITAKIN_CRYSTAL_DRAINING", "time_in_future": "1 seconds" }
]
},
{
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
[
{
"type": "effect_on_condition",
"id": "EOC_BIOKIN_MATRIX_BOOST",
"eoc_type": "EVENT",
"required_event": "opens_spellbook",
"condition": { "and": [ { "u_has_trait": "BIOKINETIC" }, { "u_has_wielded_with_flag": "MATRIX_CRYSTAL_BIOKINESIS" } ] },
"effect": [ { "math": [ "u_val('spell_level_adjustment', 'school: BIOKINETIC')", "=", "4" ] } ]
},
{
"type": "effect_on_condition",
"id": "EOC_CLAIR_MATRIX_BOOST",
"eoc_type": "EVENT",
"required_event": "opens_spellbook",
"condition": { "and": [ { "u_has_trait": "CLAIRSENTIENT" }, { "u_has_wielded_with_flag": "MATRIX_CRYSTAL_CLAIRSENTIENCE" } ] },
"effect": [ { "math": [ "u_val('spell_level_adjustment', 'school: CLAIRSENTIENT')", "=", "4" ] } ]
},
{
"type": "effect_on_condition",
"id": "EOC_PYRO_MATRIX_BOOST",
"eoc_type": "EVENT",
"required_event": "opens_spellbook",
"condition": { "and": [ { "u_has_trait": "PYROKINETIC" }, { "u_has_wielded_with_flag": "MATRIX_CRYSTAL_PYROKINESIS" } ] },
"effect": [ { "math": [ "u_val('spell_level_adjustment', 'school: PYROKINETIC')", "=", "4" ] } ]
},
{
"type": "effect_on_condition",
"id": "EOC_TELEKIN_MATRIX_BOOST",
"eoc_type": "EVENT",
"required_event": "opens_spellbook",
"condition": { "and": [ { "u_has_trait": "TELEKINETIC" }, { "u_has_wielded_with_flag": "MATRIX_CRYSTAL_TELEKINESIS" } ] },
"effect": [ { "math": [ "u_val('spell_level_adjustment', 'school: TELEKINETIC')", "=", "4" ] } ]
},
{
"type": "effect_on_condition",
"id": "EOC_TEEP_MATRIX_BOOST",
"eoc_type": "EVENT",
"required_event": "opens_spellbook",
"condition": { "and": [ { "u_has_trait": "TELEPATH" }, { "u_has_wielded_with_flag": "MATRIX_CRYSTAL_TELEPATHY" } ] },
"effect": [ { "math": [ "u_val('spell_level_adjustment', 'school: TELEPATH')", "=", "4" ] } ]
},
{
"type": "effect_on_condition",
"id": "EOC_TELEPORT_MATRIX_BOOST",
"eoc_type": "EVENT",
"required_event": "opens_spellbook",
"condition": { "and": [ { "u_has_trait": "TELEPORTER" }, { "u_has_wielded_with_flag": "MATRIX_CRYSTAL_TELEPORTATION" } ] },
"effect": [ { "math": [ "u_val('spell_level_adjustment', 'school: TELEPORTER')", "=", "4" ] } ]
},
{
"type": "effect_on_condition",
"id": "EOC_VITAKIN_MATRIX_BOOST",
"eoc_type": "EVENT",
"required_event": "opens_spellbook",
"condition": { "and": [ { "u_has_trait": "VITAKINETIC" }, { "u_has_wielded_with_flag": "MATRIX_CRYSTAL_VITAKINESIS" } ] },
"effect": [ { "math": [ "u_val('spell_level_adjustment', 'school: VITAKINETIC')", "=", "4" ] } ]
}
]
11 changes: 9 additions & 2 deletions data/mods/MindOverMatter/items/matrix_crystals.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
"longest_side": "21 mm",
"material": [ "nether_crystal" ],
"looks_like": "art_crystal",
"flags": [ "SINGLE_USE" ],
"flags": [ "MATRIX_CRYSTAL_BIOKINESIS" ],
"use_action": {
"type": "effect_on_conditions",
"description": "The pink glow calls to you.",
Expand Down Expand Up @@ -51,6 +51,7 @@
"copy-from": "matrix_crystal_biokinesis",
"description": "A strange-looking, surprisingly-heavy crystal with a faintly-glowing gray light in its depths. Holding it, you feel more perceptive.",
"color": "dark_gray",
"flags": [ "MATRIX_CRYSTAL_CLAIRSENTIENCE" ],
"use_action": {
"type": "effect_on_conditions",
"description": "The gray glow calls to you.",
Expand Down Expand Up @@ -80,6 +81,7 @@
"copy-from": "matrix_crystal_biokinesis",
"description": "A strange-looking, surprisingly-heavy crystal with a faintly-glowing red light in its depths. Holding it, you feel hot.",
"color": "red",
"flags": [ "MATRIX_CRYSTAL_PYROKINESIS" ],
"use_action": {
"type": "effect_on_conditions",
"description": "The red glow calls to you.",
Expand Down Expand Up @@ -109,6 +111,7 @@
"copy-from": "matrix_crystal_biokinesis",
"description": "A strange-looking, surprisingly-heavy crystal with a faintly-glowing yellow light in its depths. Holding it, you feel lighter.",
"color": "yellow",
"flags": [ "MATRIX_CRYSTAL_TELEKINESIS" ],
"use_action": {
"type": "effect_on_conditions",
"description": "The yellow glow calls to you.",
Expand Down Expand Up @@ -138,6 +141,7 @@
"copy-from": "matrix_crystal_biokinesis",
"description": "A strange-looking, surprisingly-heavy crystal with a faintly-glowing white light in its depths. Holding it, you feel pensive.",
"color": "white",
"flags": [ "MATRIX_CRYSTAL_TELEPATHY" ],
"use_action": {
"type": "effect_on_conditions",
"description": "The white glow calls to you.",
Expand Down Expand Up @@ -167,6 +171,7 @@
"copy-from": "matrix_crystal_biokinesis",
"description": "A strange-looking, surprisingly-heavy crystal with a faintly-glowing blue light in its depths. Holding it, you feel more mobile.",
"color": "blue",
"flags": [ "MATRIX_CRYSTAL_TELEPORTATION" ],
"use_action": {
"type": "effect_on_conditions",
"description": "The blue glow calls to you.",
Expand Down Expand Up @@ -196,6 +201,7 @@
"copy-from": "matrix_crystal_biokinesis",
"description": "A strange-looking, surprisingly-heavy crystal with a faintly-glowing green light in its depths. Holding it, you feel healthier.",
"color": "green",
"flags": [ "MATRIX_CRYSTAL_VITAKINESIS" ],
"use_action": {
"type": "effect_on_conditions",
"description": "The green glow calls to you.",
Expand Down Expand Up @@ -256,9 +262,10 @@
"type": "TOOL",
"id": "matrix_crystal_coruscating",
"name": { "str_sp": "strange crystal" },
"description": "A strange-looking, surprisingly-heavy crystal. In total darkness, multicolored lights churl and swirl within its depths.",
"description": "A strange-looking, surprisingly-heavy crystal. In total darkness, multicolored lights churn and swirl within its depths.",
"copy-from": "matrix_crystal_biokinesis",
"color": "brown",
"flags": [ "MATRIX_CRYSTAL_CORUSCATING" ],
"use_action": {
"type": "effect_on_conditions",
"description": "The coruscating light calls to you.",
Expand Down
42 changes: 42 additions & 0 deletions data/mods/MindOverMatter/json_flags.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
[
{
"id": "MATRIX_CRYSTAL_BIOKINESIS",
"type": "json_flag",
"info": "This is a matrix crystal attuned to biokinesis."
},
{
"id": "MATRIX_CRYSTAL_CLAIRSENTIENCE",
"type": "json_flag",
"info": "This is a matrix crystal attuned to clairsentience."
},
{
"id": "MATRIX_CRYSTAL_PYROKINESIS",
"type": "json_flag",
"info": "This is a matrix crystal attuned to pyrokinesis."
},
{
"id": "MATRIX_CRYSTAL_TELEKINESIS",
"type": "json_flag",
"info": "This is a matrix crystal attuned to telekinesis."
},
{
"id": "MATRIX_CRYSTAL_TELEPATHY",
"type": "json_flag",
"info": "This is a matrix crystal attuned to telepathy."
},
{
"id": "MATRIX_CRYSTAL_TELEPORTATION",
"type": "json_flag",
"info": "This is a matrix crystal attuned to teleportation."
},
{
"id": "MATRIX_CRYSTAL_VITAKINESIS",
"type": "json_flag",
"info": "This is a matrix crystal attuned to vitakinesis."
},
{
"id": "MATRIX_CRYSTAL_CORUSCATING",
"type": "json_flag",
"info": "This is a matrix crystal with an unclear attunement."
}
]

0 comments on commit 66e88e5

Please sign in to comment.