diff --git a/data/mods/MindOverMatter/PowerDescriptionSpoilers.md b/data/mods/MindOverMatter/PowerDescriptionSpoilers.md
index a2c8278f5bf57..c7510dab91b5c 100644
--- a/data/mods/MindOverMatter/PowerDescriptionSpoilers.md
+++ b/data/mods/MindOverMatter/PowerDescriptionSpoilers.md
@@ -317,7 +317,7 @@ This is natural painkiller and so has natural effects (reduces speed slightly)
*Prerequisites*: Starting power
-## Electrical Discharge
+## Electrical Discharge (C)
*Difficulty*: 2
*Target*: Self
*Duration*: 5 minutes to 13 minutes and 20 seconds, plus 1 minute and 20 seconds to 3 minutes and 45 seconds per power level
@@ -326,7 +326,7 @@ This is natural painkiller and so has natural effects (reduces speed slightly)
*Prerequisites*: Static Touch 4
-## Voltaic Strikes
+## Voltaic Strikes (C)
*Difficulty*: 3
*Target*: Self
*Duration*: 4 minutes to 10 minutes, plus 55 seconds to 1 minute 30 seconds per power level.
diff --git a/data/mods/MindOverMatter/effectoncondition/eoc_power_effects.json b/data/mods/MindOverMatter/effectoncondition/eoc_power_effects.json
index 08b6c326b4fd8..af7a9ffb082f1 100644
--- a/data/mods/MindOverMatter/effectoncondition/eoc_power_effects.json
+++ b/data/mods/MindOverMatter/effectoncondition/eoc_power_effects.json
@@ -254,6 +254,8 @@
"EOC_CLAIR_REMOVE_CLEAR_SIGHT",
"EOC_CLAIR_REMOVE_GROUP_TACTICS",
"EOC_ELECTROKIN_REMOVE_SEE_ELECTRICITY",
+ "EOC_ELECTROKIN_REMOVE_ZAP_ENEMIES",
+ "EOC_ELECTROKIN_REMOVE_MELEE_ATTACKS",
"EOC_ELECTROKIN_REMOVE_HACKING_INTERFACE",
"EOC_ELECTROKIN_REMOVE_PERSONAL_BATTERY",
"EOC_ELECTROKIN_REMOVE_REDUCE_PAIN",
@@ -292,14 +294,10 @@
{ "u_remove_item_with": "clair_sense_rad_item" },
{ "u_lose_effect": "effect_clair_perfect_shot" },
{ "u_lose_effect": "effect_clair_omniscence" },
- { "u_lose_effect": "effect_electrokin_zap_enemies" },
- { "u_lose_effect": "effect_electrokin_melee_attacks" },
{ "u_lose_effect": "effect_electrokinetic_speed_boost" },
{ "u_lose_effect": "effect_photokin_dodge" },
{ "u_lose_effect": "effect_photokin_invisibility" },
{ "u_lose_effect": "effect_photokin_arms" },
- { "u_lose_effect": "effect_pyrokinetic_aura" },
- { "u_lose_effect": "effect_pyrokinetic_flame_immunity" },
{ "u_lose_effect": "effect_telekinetic_slowfall" },
{ "u_lose_effect": "effect_telekinetic_aegis" },
{ "u_lose_effect": "effect_telepath_invisibility" },
@@ -334,6 +332,8 @@
"EOC_CLAIR_REMOVE_CLEAR_SIGHT",
"EOC_CLAIR_REMOVE_GROUP_TACTICS",
"EOC_ELECTROKIN_REMOVE_SEE_ELECTRICITY",
+ "EOC_ELECTROKIN_REMOVE_ZAP_ENEMIES",
+ "EOC_ELECTROKIN_REMOVE_MELEE_ATTACKS",
"EOC_ELECTROKIN_REMOVE_HACKING_INTERFACE",
"EOC_ELECTROKIN_REMOVE_PERSONAL_BATTERY",
"EOC_ELECTROKIN_REMOVE_REDUCE_PAIN",
diff --git a/data/mods/MindOverMatter/effects/effects_psionic.json b/data/mods/MindOverMatter/effects/effects_psionic.json
index 39b041ef9e56a..b6796c49e4fb4 100644
--- a/data/mods/MindOverMatter/effects/effects_psionic.json
+++ b/data/mods/MindOverMatter/effects/effects_psionic.json
@@ -963,12 +963,9 @@
"desc": [ "Your body is filled with electrical currents." ],
"apply_message": "",
"remove_message": "The tingling on your skin fades.",
- "decay_messages": [ [ "The protective electrical currents are nearly gone.", "bad" ], [ "Your skin is losing its charge.", "bad" ] ],
"rating": "good",
- "max_duration": "20 minutes",
+ "max_duration": "7 days",
"max_intensity": 49,
- "dur_add_perc": 10,
- "int_dur_factor": "25 s",
"enchantments": [ "enchant_electrokin_zap_enemies" ],
"flags": [ "EMP_IMMUNE" ]
},
@@ -979,12 +976,9 @@
"desc": [ "Your melee attacks unleash electrical blasts." ],
"apply_message": "",
"remove_message": "Your hands no longer spark with electricity.",
- "decay_messages": [ [ "The charge in your hands is nearly gone.", "bad" ], [ "The current in your hands is fading.", "bad" ] ],
"rating": "good",
- "max_duration": "20 minutes",
+ "max_duration": "7 days",
"max_intensity": 73,
- "dur_add_perc": 10,
- "int_dur_factor": "17 s",
"enchantments": [ "enchant_electrokin_electric_strikes" ]
},
{
diff --git a/data/mods/MindOverMatter/powers/electrokinesis.json b/data/mods/MindOverMatter/powers/electrokinesis.json
index b47fc11e5b7e3..d7e09dc6bac01 100644
--- a/data/mods/MindOverMatter/powers/electrokinesis.json
+++ b/data/mods/MindOverMatter/powers/electrokinesis.json
@@ -86,9 +86,9 @@
{
"id": "electrokinetic_zap_enemies",
"type": "SPELL",
- "name": "[Ψ]Electrical Discharge",
- "description": "Build up a charge in your body, zapping anyone who attempts to attack you. It will also protect you from EMP attacks.",
- "message": "Your skin tingles.",
+ "name": "[Ψ]Electrical Discharge (C)",
+ "description": "Build up a charge in your body, zapping anyone who attempts to attack you. It will also protect you from EMP attacks.\n\nThis power is maintained by concentration and may fail if concentration is interrupted.",
+ "message": "",
"teachable": false,
"valid_targets": [ "self" ],
"spell_class": "ELECTROKINETIC",
@@ -96,8 +96,8 @@
"flags": [ "PSIONIC", "CONCENTRATE", "SILENT", "NO_HANDS", "NO_LEGS", "NO_EXPLOSION_SFX", "RANDOM_DURATION" ],
"difficulty": 2,
"max_level": { "math": [ "int_to_level(1)" ] },
- "effect": "attack",
- "effect_str": "effect_electrokin_zap_enemies",
+ "effect": "effect_on_condition",
+ "effect_str": "EOC_ELECTROKIN_ZAP_ENEMIES_INITIATE",
"shape": "blast",
"min_duration": {
"math": [
@@ -110,18 +110,22 @@
]
},
"energy_source": "STAMINA",
- "base_energy_cost": 3500,
- "final_energy_cost": 1100,
- "energy_increment": -120,
- "base_casting_time": 125,
- "final_casting_time": 45,
- "casting_time_increment": -5
+ "base_energy_cost": {
+ "math": [
+ "u_effect_intensity('effect_electrokin_zap_enemies') > -1 ? 0 : max((3500 - (u_spell_level('electrokinetic_zap_enemies') * 120)), 1100)"
+ ]
+ },
+ "base_casting_time": {
+ "math": [
+ "u_effect_intensity('effect_electrokin_zap_enemies') > -1 ? 10 : max((125 -(u_spell_level('electrokinetic_zap_enemies') * 5)), 45)"
+ ]
+ }
},
{
"id": "electrokinetic_melee_attacks",
"type": "SPELL",
- "name": "[Ψ]Voltaic Strikes",
- "description": "Unleash electrical blasts on those you strike in melee. It also provides protection against electrical damage.",
+ "name": "[Ψ]Voltaic Strikes (C)",
+ "description": "Unleash electrical blasts on those you strike in melee. It also provides protection against electrical damage.\n\nThis power is maintained by concentration and may fail if concentration is interrupted.",
"message": "Lightning crackles between your fingers!",
"teachable": false,
"valid_targets": [ "self" ],
@@ -130,8 +134,8 @@
"flags": [ "PSIONIC", "CONCENTRATE", "SILENT", "NO_HANDS", "NO_LEGS", "NO_EXPLOSION_SFX", "RANDOM_DURATION" ],
"difficulty": 3,
"max_level": { "math": [ "int_to_level(1)" ] },
- "effect": "attack",
- "effect_str": "effect_electrokin_melee_attacks",
+ "effect": "effect_on_condition",
+ "effect_str": "EOC_ELECTROKIN_MELEE_ATTACKS_INITIATE",
"shape": "blast",
"min_duration": {
"math": [
@@ -144,12 +148,16 @@
]
},
"energy_source": "STAMINA",
- "base_energy_cost": 3750,
- "final_energy_cost": 1450,
- "energy_increment": -115,
- "base_casting_time": 85,
- "final_casting_time": 35,
- "casting_time_increment": -6
+ "base_energy_cost": {
+ "math": [
+ "u_effect_intensity('effect_electrokin_melee_attacks') > -1 ? 0 : max((3750 - (u_spell_level('electrokinetic_melee_attacks') * 115)), 1450)"
+ ]
+ },
+ "base_casting_time": {
+ "math": [
+ "u_effect_intensity('effect_electrokin_melee_attacks') > -1 ? 10 : max((85 -(u_spell_level('electrokinetic_melee_attacks') * 6)), 35)"
+ ]
+ }
},
{
"id": "electrokinetic_hacking_interface",
diff --git a/data/mods/MindOverMatter/powers/electrokinesis_concentration_eocs.json b/data/mods/MindOverMatter/powers/electrokinesis_concentration_eocs.json
index 0f8c052b9b90a..e696c85184372 100644
--- a/data/mods/MindOverMatter/powers/electrokinesis_concentration_eocs.json
+++ b/data/mods/MindOverMatter/powers/electrokinesis_concentration_eocs.json
@@ -59,6 +59,126 @@
],
"false_effect": [ ]
},
+ {
+ "type": "effect_on_condition",
+ "id": "EOC_ELECTROKIN_ZAP_ENEMIES_INITIATE",
+ "condition": { "not": { "u_has_effect": "effect_electrokin_zap_enemies" } },
+ "effect": [
+ { "u_message": "Your skin tingles.", "type": "good" },
+ { "run_eocs": "EOC_POWER_MAINTENANCE_PLUS_ONE" },
+ { "u_add_effect": "effect_electrokin_zap_enemies", "duration": "PERMANENT" },
+ {
+ "queue_eocs": "EOC_ELECTROKIN_ZAP_ENEMIES_DRAIN",
+ "time_in_future": [
+ {
+ "math": [
+ "( (u_spell_level('electrokinetic_zap_enemies') * 80) + 300) * (scaling_factor(u_val('intelligence') ) ) * u_nether_attunement_power_scaling"
+ ]
+ },
+ {
+ "math": [
+ "( (u_spell_level('electrokinetic_zap_enemies') * 225) + 800) * (scaling_factor(u_val('intelligence') ) ) * u_nether_attunement_power_scaling"
+ ]
+ }
+ ]
+ }
+ ],
+ "false_effect": [ { "run_eocs": "EOC_ELECTROKIN_REMOVE_ZAP_ENEMIES" } ]
+ },
+ {
+ "type": "effect_on_condition",
+ "id": "EOC_ELECTROKIN_REMOVE_ZAP_ENEMIES",
+ "condition": { "u_has_effect": "effect_electrokin_zap_enemies" },
+ "effect": [ { "run_eocs": "EOC_POWER_MAINTENANCE_MINUS_ONE" }, { "u_lose_effect": "effect_electrokin_zap_enemies" } ]
+ },
+ {
+ "type": "effect_on_condition",
+ "id": "EOC_ELECTROKIN_ZAP_ENEMIES_DRAIN",
+ "condition": { "u_has_effect": "effect_electrokin_zap_enemies" },
+ "effect": [
+ { "math": [ "u_latest_channeled_power_difficulty", "=", "2" ] },
+ { "run_eocs": "EOC_PSIONICS_GAIN_NETHER_ATTUNEMENT_2" },
+ { "math": [ "u_calories()", "-=", "psionics_kcal_cost(2)" ] },
+ { "math": [ "u_spell_exp('electrokinetic_zap_enemies')", "+=", "(maintenance_exp_factor(u_val('focus')))" ] },
+ { "run_eocs": "EOC_POWER_MAINTENANCE_CONCENTRATION_CHECK" },
+ {
+ "queue_eocs": "EOC_ELECTROKIN_ZAP_ENEMIES_DRAIN",
+ "time_in_future": [
+ {
+ "math": [
+ "( (u_spell_level('electrokinetic_zap_enemies') * 80) + 300) * (scaling_factor(u_val('intelligence') ) ) * u_nether_attunement_power_scaling"
+ ]
+ },
+ {
+ "math": [
+ "( (u_spell_level('electrokinetic_zap_enemies') * 225) + 800) * (scaling_factor(u_val('intelligence') ) ) * u_nether_attunement_power_scaling"
+ ]
+ }
+ ]
+ }
+ ],
+ "false_effect": [ ]
+ },
+ {
+ "type": "effect_on_condition",
+ "id": "EOC_ELECTROKIN_MELEE_ATTACKS_INITIATE",
+ "condition": { "not": { "u_has_effect": "effect_electrokin_melee_attacks" } },
+ "effect": [
+ { "u_message": "Lightning crackles between your fingers!", "type": "good" },
+ { "run_eocs": "EOC_POWER_MAINTENANCE_PLUS_ONE" },
+ { "u_add_effect": "effect_electrokin_melee_attacks", "duration": "PERMANENT" },
+ {
+ "queue_eocs": "EOC_ELECTROKIN_MELEE_ATTACKS_DRAIN",
+ "time_in_future": [
+ {
+ "math": [
+ "( (u_spell_level('electrokinetic_melee_attacks') * 55) + 240) * (scaling_factor(u_val('intelligence') ) ) * u_nether_attunement_power_scaling"
+ ]
+ },
+ {
+ "math": [
+ "( (u_spell_level('electrokinetic_melee_attacks') * 90) + 600) * (scaling_factor(u_val('intelligence') ) ) * u_nether_attunement_power_scaling"
+ ]
+ }
+ ]
+ }
+ ],
+ "false_effect": [ { "run_eocs": "EOC_ELECTROKIN_REMOVE_MELEE_ATTACKS" } ]
+ },
+ {
+ "type": "effect_on_condition",
+ "id": "EOC_ELECTROKIN_REMOVE_MELEE_ATTACKS",
+ "condition": { "u_has_effect": "effect_electrokin_melee_attacks" },
+ "effect": [ { "run_eocs": "EOC_POWER_MAINTENANCE_MINUS_ONE" }, { "u_lose_effect": "effect_electrokin_melee_attacks" } ]
+ },
+ {
+ "type": "effect_on_condition",
+ "id": "EOC_ELECTROKIN_MELEE_ATTACKS_DRAIN",
+ "condition": { "u_has_effect": "effect_electrokin_melee_attacks" },
+ "effect": [
+ { "math": [ "u_latest_channeled_power_difficulty", "=", "3" ] },
+ { "run_eocs": "EOC_PSIONICS_GAIN_NETHER_ATTUNEMENT_2" },
+ { "math": [ "u_calories()", "-=", "psionics_kcal_cost(3)" ] },
+ { "math": [ "u_spell_exp('electrokinetic_melee_attacks')", "+=", "(maintenance_exp_factor(u_val('focus')))" ] },
+ { "run_eocs": "EOC_POWER_MAINTENANCE_CONCENTRATION_CHECK" },
+ {
+ "queue_eocs": "EOC_ELECTROKIN_MELEE_ATTACKS_DRAIN",
+ "time_in_future": [
+ {
+ "math": [
+ "( (u_spell_level('electrokinetic_melee_attacks') * 55) + 240) * (scaling_factor(u_val('intelligence') ) ) * u_nether_attunement_power_scaling"
+ ]
+ },
+ {
+ "math": [
+ "( (u_spell_level('electrokinetic_melee_attacks') * 90) + 600) * (scaling_factor(u_val('intelligence') ) ) * u_nether_attunement_power_scaling"
+ ]
+ }
+ ]
+ }
+ ],
+ "false_effect": [ ]
+ },
{
"type": "effect_on_condition",
"id": "EOC_ELECTROKIN_HACKING_INTERFACE_INITIATE",