diff --git a/data/mods/MindOverMatter/PowerDescriptionSpoilers.md b/data/mods/MindOverMatter/PowerDescriptionSpoilers.md
index 1e45316c40044..fa9d9ee538c75 100644
--- a/data/mods/MindOverMatter/PowerDescriptionSpoilers.md
+++ b/data/mods/MindOverMatter/PowerDescriptionSpoilers.md
@@ -1115,7 +1115,7 @@ Powers causing telepathic damage have a 5% chance to down the target, a 33% chan
*Duration*: Instant
*Stamina Cost*: 10000, minus 200 per level to a minimum of 6000
*Channeling Time*: 200 moves, minus 5.5 moves per level to a minimum of 75. Attunement takes 8 hours, minus 30 minutes per power level of Gateway to a minimum of 30 minutes
-*Effects*: Transport yourself through the Nether to an attuned location. This power works at any distance..
+*Effects*: Transport yourself through the Nether to an attuned location. This power works at any distance. You may have a number of destinations simultaneously equal to 1 + 1 per 3 levels of Gateway (2.5 levels if you have the Good Memory trait, 4 levels if you have the Forgetful trait).
*Prerequisites*: Farstep 10, Extended Stride 10
## Breach
diff --git a/data/mods/MindOverMatter/activity_types.json b/data/mods/MindOverMatter/activity_types.json
index 6cd7b5979fd11..04342e53e0614 100644
--- a/data/mods/MindOverMatter/activity_types.json
+++ b/data/mods/MindOverMatter/activity_types.json
@@ -23,5 +23,13 @@
"based_on": "time",
"rooted": true,
"do_turn_eoc": "EOC_PSI_STUDYING_POWER"
+ },
+ {
+ "id": "ACT_PSI_TELEPORTER_ATTUNING",
+ "type": "activity_type",
+ "activity_level": "LIGHT_EXERCISE",
+ "verb": "attuning to area",
+ "rooted": true,
+ "based_on": "time"
}
]
diff --git a/data/mods/MindOverMatter/effects/effects_psionic.json b/data/mods/MindOverMatter/effects/effects_psionic.json
index dd01967f31cf4..68d58c51d92d7 100644
--- a/data/mods/MindOverMatter/effects/effects_psionic.json
+++ b/data/mods/MindOverMatter/effects/effects_psionic.json
@@ -1825,6 +1825,13 @@
],
"flags": [ "MUSCLE_VEH_BOOST" ]
},
+ {
+ "type": "effect_type",
+ "id": "effect_teleporter_attuning_to_area",
+ "//": "Hidden effect, used as a tracker",
+ "name": [ "" ],
+ "desc": [ "" ]
+ },
{
"type": "effect_type",
"id": "effect_vitakin_slow_bleeding",
diff --git a/data/mods/MindOverMatter/hobbies.json b/data/mods/MindOverMatter/hobbies.json
index 51aeb187153a9..8d3b1d8cb08e6 100644
--- a/data/mods/MindOverMatter/hobbies.json
+++ b/data/mods/MindOverMatter/hobbies.json
@@ -444,8 +444,7 @@
{ "id": "teleport_collapse", "level": 7 },
{ "id": "teleport_farstep", "level": 10 },
{ "id": "teleport_banish", "level": 6 },
- { "id": "teleport_gateway", "level": 4 },
- { "id": "teleport_area_attune", "level": 1 }
+ { "id": "teleport_gateway", "level": 4 }
]
},
{
@@ -457,7 +456,7 @@
"points": 5,
"traits": [ "TELEPORTER", "TELEPORTER_PROTECT" ],
"skills": [ { "level": 2, "name": "metaphysics" } ],
- "spells": [ { "id": "teleport_gateway", "level": 3 }, { "id": "teleport_area_attune", "level": 1 } ]
+ "spells": [ { "id": "teleport_gateway", "level": 3 } ]
},
{
"type": "profession",
diff --git a/data/mods/MindOverMatter/furniture_and_terrain/furniture_psionic.json b/data/mods/MindOverMatter/obsolete/furniture.json
similarity index 100%
rename from data/mods/MindOverMatter/furniture_and_terrain/furniture_psionic.json
rename to data/mods/MindOverMatter/obsolete/furniture.json
diff --git a/data/mods/MindOverMatter/obsolete/powers.json b/data/mods/MindOverMatter/obsolete/powers.json
index 07eb3f167b680..c0d6fa1c674a1 100644
--- a/data/mods/MindOverMatter/obsolete/powers.json
+++ b/data/mods/MindOverMatter/obsolete/powers.json
@@ -1,4 +1,47 @@
[
+ {
+ "type": "effect_on_condition",
+ "id": "EOC_MOM_GAMESTART_TELEPORTATION_GATEWAY_UPDATE",
+ "eoc_type": "EVENT",
+ "required_event": "game_start",
+ "effect": [ { "math": [ "u_teleportation_gateway_updated", "=", "1" ] } ]
+ },
+ {
+ "type": "effect_on_condition",
+ "id": "EOC_MOM_GAMELOAD_TELEPORTATION_GATEWAY_UPDATE_DONTKNOW",
+ "eoc_type": "EVENT",
+ "required_event": "game_load",
+ "condition": {
+ "and": [
+ { "u_has_trait": "TELEPORTER" },
+ { "math": [ "u_teleportation_gateway_updated", "!=", "1" ] },
+ { "math": [ "u_spell_level('teleport_gateway')", "==", "-1" ] }
+ ]
+ },
+ "effect": [ { "math": [ "u_teleportation_gateway_updated", "=", "1" ] } ]
+ },
+ {
+ "type": "effect_on_condition",
+ "id": "EOC_MOM_GAMELOAD_TELEPORTATION_GATEWAY_UPDATE_KNOW",
+ "eoc_type": "EVENT",
+ "required_event": "game_load",
+ "condition": {
+ "and": [
+ { "u_has_trait": "TELEPORTER" },
+ { "math": [ "u_teleportation_gateway_updated", "!=", "1" ] },
+ { "math": [ "u_spell_level('teleport_gateway')", ">=", "1" ] }
+ ]
+ },
+ "effect": [
+ { "math": [ "u_spell_level('teleport_area_attune')", "=", "-1" ] },
+ { "math": [ "u_spell_level('teleport_gateway_legacy')", "=", "u_spell_level('teleport_gateway')" ] },
+ {
+ "u_message": "Your Gateway power has been updated. Your saved locations have not been updated--you can use the Gateway (Obsolete) power to return to them and add them to the new Gateway power.",
+ "popup": true
+ },
+ { "math": [ "u_teleportation_gateway_updated", "=", "1" ] }
+ ]
+ },
{
"id": "telepathic_fear_self_effect",
"type": "SPELL",
@@ -90,5 +133,49 @@
]
},
"ignored_monster_species": [ "PSI_NULL" ]
+ },
+ {
+ "id": "teleport_gateway_legacy",
+ "type": "SPELL",
+ "name": "[Ψ]Gateway (Obsolete)",
+ "description": "This power is Obsolete, but you can still use it. Teleport to an attuned location.",
+ "message": "There is a long moment of darkness and terrible cold that seems like it will freeze your heart, and then you are somewhere else.",
+ "teachable": false,
+ "valid_targets": [ "self" ],
+ "spell_class": "TELEPORTER",
+ "skill": "metaphysics",
+ "flags": [ "PSIONIC", "CONCENTRATE", "SILENT", "NO_HANDS", "NO_LEGS" ],
+ "difficulty": 8,
+ "max_level": { "math": [ "int_to_level(1)" ] },
+ "effect": "translocate",
+ "shape": "blast",
+ "energy_source": "STAMINA",
+ "base_energy_cost": 10000,
+ "final_energy_cost": 6000,
+ "energy_increment": -200,
+ "base_casting_time": 200,
+ "final_casting_time": 75,
+ "casting_time_increment": -5.5
+ },
+ {
+ "id": "teleport_area_attune",
+ "type": "SPELL",
+ "name": "[Ψ]Attune to Area",
+ "description": "Attune to a location for later teleporting.",
+ "message": "",
+ "teachable": false,
+ "valid_targets": [ "ground" ],
+ "spell_class": "TELEPORTER",
+ "skill": "metaphysics",
+ "flags": [ "PSIONIC", "CONCENTRATE", "SILENT", "NO_HANDS", "NO_LEGS", "NO_FAIL" ],
+ "difficulty": 1,
+ "max_level": 1,
+ "effect": "ter_transform",
+ "effect_str": "ter_teleport_location_attune",
+ "shape": "blast",
+ "min_range": 1,
+ "energy_source": "STAMINA",
+ "base_energy_cost": 0,
+ "base_casting_time": { "math": [ "2880000 - max(( u_spell_level('teleport_gateway') * 108000), 180000)" ] }
}
]
diff --git a/data/mods/MindOverMatter/powers/teleportation.json b/data/mods/MindOverMatter/powers/teleportation.json
index 873bd1339a59d..b06a3ec3e0f0f 100644
--- a/data/mods/MindOverMatter/powers/teleportation.json
+++ b/data/mods/MindOverMatter/powers/teleportation.json
@@ -631,7 +631,7 @@
"type": "SPELL",
"name": "[Ψ]Gateway",
"description": "Transport yourself through the Nether to an attuned location. You must attune yourself to the place you wish to travel to.",
- "message": "There is a long moment of darkness and terrible cold that seems like it will freeze your heart, and then you are somewhere else.",
+ "message": "",
"teachable": false,
"valid_targets": [ "self" ],
"spell_class": "TELEPORTER",
@@ -639,7 +639,8 @@
"flags": [ "PSIONIC", "CONCENTRATE", "SILENT", "NO_HANDS", "NO_LEGS" ],
"difficulty": 8,
"max_level": { "math": [ "int_to_level(1)" ] },
- "effect": "translocate",
+ "effect": "effect_on_condition",
+ "effect_str": "EOC_TELEPORT_GATEWAY_SELECTOR",
"shape": "blast",
"energy_source": "STAMINA",
"base_energy_cost": 10000,
@@ -649,27 +650,6 @@
"final_casting_time": 75,
"casting_time_increment": -5.5
},
- {
- "id": "teleport_area_attune",
- "type": "SPELL",
- "name": "[Ψ]Attune to Area",
- "description": "Attune to a location for later teleporting.",
- "message": "",
- "teachable": false,
- "valid_targets": [ "ground" ],
- "spell_class": "TELEPORTER",
- "skill": "metaphysics",
- "flags": [ "PSIONIC", "CONCENTRATE", "SILENT", "NO_HANDS", "NO_LEGS", "NO_FAIL" ],
- "difficulty": 1,
- "max_level": 1,
- "effect": "ter_transform",
- "effect_str": "ter_teleport_location_attune",
- "shape": "blast",
- "min_range": 1,
- "energy_source": "STAMINA",
- "base_energy_cost": 0,
- "base_casting_time": { "math": [ "2880000 - max(( u_spell_level('teleport_gateway') * 108000), 180000)" ] }
- },
{
"id": "teleport_summon",
"type": "SPELL",
diff --git a/data/mods/MindOverMatter/powers/teleportation_eoc.json b/data/mods/MindOverMatter/powers/teleportation_eoc.json
index 4a353df12ba23..18495a607a1f4 100644
--- a/data/mods/MindOverMatter/powers/teleportation_eoc.json
+++ b/data/mods/MindOverMatter/powers/teleportation_eoc.json
@@ -100,6 +100,676 @@
}
]
},
+ {
+ "type": "effect_on_condition",
+ "id": "EOC_TELEPORTER_GATEWAY_MESSAGE",
+ "effect": [
+ {
+ "u_message": "There is a long moment of darkness and terrible cold that seems like it will freeze your heart, and then you are somewhere else.",
+ "type": "neutral"
+ }
+ ]
+ },
+ {
+ "type": "effect_on_condition",
+ "id": "EOC_TELEPORTER_ATTUNING_MESSAGE",
+ "effect": [
+ { "u_message": "You concentrate and begin memorizing every detail of the current area you are in.", "type": "neutral" }
+ ]
+ },
+ {
+ "type": "effect_on_condition",
+ "id": "EOC_TELEPORTER_ATTUNED_MESSAGE",
+ "effect": [
+ {
+ "u_message": "You have successfully memorized the local area, and may now return to it with your powers.",
+ "type": "good"
+ }
+ ]
+ },
+ {
+ "type": "effect_on_condition",
+ "id": "EOC_TELEPORT_GATEWAY_SELECTOR",
+ "effect": [
+ {
+ "run_eoc_selector": [
+ "EOC_TELEPORT_GATEWAY_SELECTOR_01",
+ "EOC_TELEPORT_GATEWAY_SELECTOR_02",
+ "EOC_TELEPORT_GATEWAY_SELECTOR_03",
+ "EOC_TELEPORT_GATEWAY_SELECTOR_04",
+ "EOC_TELEPORT_GATEWAY_SELECTOR_05",
+ "EOC_TELEPORT_GATEWAY_SELECTOR_06",
+ "EOC_TELEPORT_GATEWAY_SELECTOR_07",
+ "EOC_TELEPORT_GATEWAY_SELECTOR_08",
+ "EOC_TELEPORT_GATEWAY_SELECTOR_09",
+ "EOC_TELEPORT_GATEWAY_SELECTOR_10"
+ ],
+ "names": [
+ "Gateway: ",
+ "Gateway: ",
+ "Gateway: ",
+ "Gateway: ",
+ "Gateway: ",
+ "Gateway: ",
+ "Gateway: ",
+ "Gateway: ",
+ "Gateway: ",
+ "Gateway: "
+ ],
+ "keys": [ "1", "2", "3", "4", "5", "6", "7", "8", "9", "0" ],
+ "descriptions": [
+ "Teleport/Attune to a destination.",
+ "Teleport/Attune to a destination.",
+ "Teleport/Attune to a destination.",
+ "Teleport/Attune to a destination.",
+ "Teleport/Attune to a destination.",
+ "Teleport/Attune to a destination.",
+ "Teleport/Attune to a destination.",
+ "Teleport/Attune to a destination.",
+ "Teleport/Attune to a destination.",
+ "Teleport/Attune to a destination."
+ ],
+ "hide_failing": true,
+ "allow_cancel": true
+ }
+ ]
+ },
+ {
+ "type": "effect_on_condition",
+ "id": "ECO_TELEPORTER_CANCELLING_ATTUNING_CANCELS_ATTUNE",
+ "eoc_type": "EVENT",
+ "required_event": "character_finished_activity",
+ "condition": {
+ "and": [
+ { "compare_string": [ "ACT_PSI_TELEPORTER_ATTUNING", { "context_val": "activity" } ] },
+ { "u_has_effect": "effect_teleporter_attuning_to_area" }
+ ]
+ },
+ "effect": [ { "u_lose_effect": "effect_psi_learning_new_power" }, { "u_lose_effect": "effect_psi_studying_power" } ]
+ },
+ {
+ "type": "effect_on_condition",
+ "id": "EOC_TELEPORT_GATEWAY_SELECTOR_01",
+ "effect": [
+ {
+ "run_eoc_selector": [ "EOC_TELEPORT_GATEWAY_TELEPORT_01", "EOC_TELEPORT_GATEWAY_ATTUNE_01" ],
+ "names": [ "Destination: ", "Attune to Area" ],
+ "keys": [ "1", "2" ],
+ "descriptions": [ "Teleport to .", "Attune to a new destination." ],
+ "hide_failing": true,
+ "allow_cancel": true
+ }
+ ]
+ },
+ {
+ "type": "effect_on_condition",
+ "id": "EOC_TELEPORT_GATEWAY_TELEPORT_01",
+ "condition": { "math": [ "has_var(u_gateway_destination_1)" ] },
+ "effect": [ { "u_teleport": { "u_val": "gateway_destination_1" } }, { "run_eocs": "EOC_TELEPORTER_GATEWAY_MESSAGE" } ]
+ },
+ {
+ "type": "effect_on_condition",
+ "id": "EOC_TELEPORT_GATEWAY_ATTUNE_01",
+ "effect": [
+ { "run_eocs": "EOC_TELEPORTER_ATTUNING_MESSAGE" },
+ { "u_add_effect": "effect_teleporter_attuning_to_area", "duration": "8 hours" },
+ { "u_assign_activity": "ACT_PSI_TELEPORTER_ATTUNING", "duration": "8 hours" },
+ {
+ "queue_eocs": "EOC_TELEPORT_GATEWAY_ATTUNE_01_SUCCESS",
+ "time_in_future": { "math": [ "28800 - clamp(( u_spell_level('teleport_gateway') * 1080), 0, 27000)" ] }
+ }
+ ]
+ },
+ {
+ "type": "effect_on_condition",
+ "id": "EOC_TELEPORT_GATEWAY_ATTUNE_01_SUCCESS",
+ "condition": { "u_has_effect": "effect_teleporter_attuning_to_area" },
+ "effect": [
+ {
+ "set_string_var": "Destination 1",
+ "string_input": {
+ "title": { "i18n": true, "str": "Input a destination name:" },
+ "description": { "i18n": true, "str": "Destination Name:" },
+ "width": 35,
+ "identifier": ""
+ },
+ "target_var": { "u_val": "gateway_destination_name_1" }
+ },
+ { "u_location_variable": { "u_val": "gateway_destination_1" }, "min_radius": 0, "max_radius": 0 },
+ { "run_eocs": "EOC_TELEPORTER_ATTUNED_MESSAGE" }
+ ]
+ },
+ {
+ "type": "effect_on_condition",
+ "id": "EOC_TELEPORT_GATEWAY_SELECTOR_02",
+ "condition": {
+ "math": [
+ "(u_spell_level('teleport_gateway') * (1 + (u_has_trait('GOODMEMORY') * 0.2) ) / (1 + (u_has_trait('FORGETFUL') * 0.33) ) ) / 3",
+ ">=",
+ "1"
+ ]
+ },
+ "effect": [
+ {
+ "run_eoc_selector": [ "EOC_TELEPORT_GATEWAY_TELEPORT_02", "EOC_TELEPORT_GATEWAY_ATTUNE_02" ],
+ "names": [ "Destination: ", "Attune to Area" ],
+ "keys": [ "1", "2" ],
+ "descriptions": [ "Teleport to .", "Attune to a new destination." ],
+ "hide_failing": true,
+ "allow_cancel": true
+ }
+ ]
+ },
+ {
+ "type": "effect_on_condition",
+ "id": "EOC_TELEPORT_GATEWAY_TELEPORT_02",
+ "condition": { "math": [ "has_var(u_gateway_destination_2)" ] },
+ "effect": [ { "u_teleport": { "u_val": "gateway_destination_2" } }, { "run_eocs": "EOC_TELEPORTER_GATEWAY_MESSAGE" } ]
+ },
+ {
+ "type": "effect_on_condition",
+ "id": "EOC_TELEPORT_GATEWAY_ATTUNE_02",
+ "effect": [
+ { "run_eocs": "EOC_TELEPORTER_ATTUNING_MESSAGE" },
+ { "u_add_effect": "effect_teleporter_attuning_to_area", "duration": "8 hours" },
+ { "u_assign_activity": "ACT_PSI_TELEPORTER_ATTUNING", "duration": "8 hours" },
+ {
+ "queue_eocs": "EOC_TELEPORT_GATEWAY_ATTUNE_02_SUCCESS",
+ "time_in_future": { "math": [ "28800 - clamp(( u_spell_level('teleport_gateway') * 1080), 0, 27000)" ] }
+ }
+ ]
+ },
+ {
+ "type": "effect_on_condition",
+ "id": "EOC_TELEPORT_GATEWAY_ATTUNE_02_SUCCESS",
+ "condition": { "u_has_effect": "effect_teleporter_attuning_to_area" },
+ "effect": [
+ {
+ "set_string_var": "Destination 2",
+ "string_input": {
+ "title": { "i18n": true, "str": "Input a destination name:" },
+ "description": { "i18n": true, "str": "Destination Name:" },
+ "width": 35,
+ "identifier": ""
+ },
+ "target_var": { "u_val": "gateway_destination_name_2" }
+ },
+ { "u_location_variable": { "u_val": "gateway_destination_2" }, "min_radius": 0, "max_radius": 0 },
+ { "run_eocs": "EOC_TELEPORTER_ATTUNED_MESSAGE" }
+ ]
+ },
+ {
+ "type": "effect_on_condition",
+ "id": "EOC_TELEPORT_GATEWAY_SELECTOR_03",
+ "condition": {
+ "math": [
+ "(u_spell_level('teleport_gateway') * (1 + (u_has_trait('GOODMEMORY') * 0.2) ) / (1 + (u_has_trait('FORGETFUL') * 0.33) ) ) / 3",
+ ">=",
+ "2"
+ ]
+ },
+ "effect": [
+ {
+ "run_eoc_selector": [ "EOC_TELEPORT_GATEWAY_TELEPORT_03", "EOC_TELEPORT_GATEWAY_ATTUNE_03" ],
+ "names": [ "Destination: ", "Attune to Area" ],
+ "keys": [ "1", "2" ],
+ "descriptions": [ "Teleport to .", "Attune to a new destination." ],
+ "hide_failing": true,
+ "allow_cancel": true
+ }
+ ]
+ },
+ {
+ "type": "effect_on_condition",
+ "id": "EOC_TELEPORT_GATEWAY_TELEPORT_03",
+ "condition": { "math": [ "has_var(u_gateway_destination_3)" ] },
+ "effect": [ { "u_teleport": { "u_val": "gateway_destination_3" } }, { "run_eocs": "EOC_TELEPORTER_GATEWAY_MESSAGE" } ]
+ },
+ {
+ "type": "effect_on_condition",
+ "id": "EOC_TELEPORT_GATEWAY_ATTUNE_03",
+ "effect": [
+ { "run_eocs": "EOC_TELEPORTER_ATTUNING_MESSAGE" },
+ { "u_add_effect": "effect_teleporter_attuning_to_area", "duration": "8 hours" },
+ { "u_assign_activity": "ACT_PSI_TELEPORTER_ATTUNING", "duration": "8 hours" },
+ {
+ "queue_eocs": "EOC_TELEPORT_GATEWAY_ATTUNE_03_SUCCESS",
+ "time_in_future": { "math": [ "28800 - clamp(( u_spell_level('teleport_gateway') * 1080), 0, 27000)" ] }
+ }
+ ]
+ },
+ {
+ "type": "effect_on_condition",
+ "id": "EOC_TELEPORT_GATEWAY_ATTUNE_03_SUCCESS",
+ "condition": { "u_has_effect": "effect_teleporter_attuning_to_area" },
+ "effect": [
+ {
+ "set_string_var": "Destination 3",
+ "string_input": {
+ "title": { "i18n": true, "str": "Input a destination name:" },
+ "description": { "i18n": true, "str": "Destination Name:" },
+ "width": 35,
+ "identifier": ""
+ },
+ "target_var": { "u_val": "gateway_destination_name_3" }
+ },
+ { "u_location_variable": { "u_val": "gateway_destination_3" }, "min_radius": 0, "max_radius": 0 },
+ { "run_eocs": "EOC_TELEPORTER_ATTUNED_MESSAGE" }
+ ]
+ },
+ {
+ "type": "effect_on_condition",
+ "id": "EOC_TELEPORT_GATEWAY_SELECTOR_04",
+ "condition": {
+ "math": [
+ "(u_spell_level('teleport_gateway') * (1 + (u_has_trait('GOODMEMORY') * 0.2) ) / (1 + (u_has_trait('FORGETFUL') * 0.33) ) ) / 3",
+ ">=",
+ "3"
+ ]
+ },
+ "effect": [
+ {
+ "run_eoc_selector": [ "EOC_TELEPORT_GATEWAY_TELEPORT_04", "EOC_TELEPORT_GATEWAY_ATTUNE_04" ],
+ "names": [ "Destination: ", "Attune to Area" ],
+ "keys": [ "1", "2" ],
+ "descriptions": [ "Teleport to .", "Attune to a new destination." ],
+ "hide_failing": true,
+ "allow_cancel": true
+ }
+ ]
+ },
+ {
+ "type": "effect_on_condition",
+ "id": "EOC_TELEPORT_GATEWAY_TELEPORT_04",
+ "condition": { "math": [ "has_var(u_gateway_destination_4)" ] },
+ "effect": [ { "u_teleport": { "u_val": "gateway_destination_4" } }, { "run_eocs": "EOC_TELEPORTER_GATEWAY_MESSAGE" } ]
+ },
+ {
+ "type": "effect_on_condition",
+ "id": "EOC_TELEPORT_GATEWAY_ATTUNE_04",
+ "effect": [
+ { "run_eocs": "EOC_TELEPORTER_ATTUNING_MESSAGE" },
+ { "u_add_effect": "effect_teleporter_attuning_to_area", "duration": "8 hours" },
+ { "u_assign_activity": "ACT_PSI_TELEPORTER_ATTUNING", "duration": "8 hours" },
+ {
+ "queue_eocs": "EOC_TELEPORT_GATEWAY_ATTUNE_04_SUCCESS",
+ "time_in_future": { "math": [ "28800 - clamp(( u_spell_level('teleport_gateway') * 1080), 0, 27000)" ] }
+ }
+ ]
+ },
+ {
+ "type": "effect_on_condition",
+ "id": "EOC_TELEPORT_GATEWAY_ATTUNE_04_SUCCESS",
+ "condition": { "u_has_effect": "effect_teleporter_attuning_to_area" },
+ "effect": [
+ {
+ "set_string_var": "Destination 4",
+ "string_input": {
+ "title": { "i18n": true, "str": "Input a destination name:" },
+ "description": { "i18n": true, "str": "Destination Name:" },
+ "width": 35,
+ "identifier": ""
+ },
+ "target_var": { "u_val": "gateway_destination_name_4" }
+ },
+ { "u_location_variable": { "u_val": "gateway_destination_4" }, "min_radius": 0, "max_radius": 0 },
+ { "run_eocs": "EOC_TELEPORTER_ATTUNED_MESSAGE" }
+ ]
+ },
+ {
+ "type": "effect_on_condition",
+ "id": "EOC_TELEPORT_GATEWAY_SELECTOR_05",
+ "condition": {
+ "math": [
+ "(u_spell_level('teleport_gateway') * (1 + (u_has_trait('GOODMEMORY') * 0.2) ) / (1 + (u_has_trait('FORGETFUL') * 0.33) ) ) / 3",
+ ">=",
+ "4"
+ ]
+ },
+ "effect": [
+ {
+ "run_eoc_selector": [ "EOC_TELEPORT_GATEWAY_TELEPORT_05", "EOC_TELEPORT_GATEWAY_ATTUNE_05" ],
+ "names": [ "Destination: ", "Attune to Area" ],
+ "keys": [ "1", "2" ],
+ "descriptions": [ "Teleport to .", "Attune to a new destination." ],
+ "hide_failing": true,
+ "allow_cancel": true
+ }
+ ]
+ },
+ {
+ "type": "effect_on_condition",
+ "id": "EOC_TELEPORT_GATEWAY_TELEPORT_05",
+ "condition": { "math": [ "has_var(u_gateway_destination_5)" ] },
+ "effect": [ { "u_teleport": { "u_val": "gateway_destination_5" } }, { "run_eocs": "EOC_TELEPORTER_GATEWAY_MESSAGE" } ]
+ },
+ {
+ "type": "effect_on_condition",
+ "id": "EOC_TELEPORT_GATEWAY_ATTUNE_05",
+ "effect": [
+ { "run_eocs": "EOC_TELEPORTER_ATTUNING_MESSAGE" },
+ { "u_add_effect": "effect_teleporter_attuning_to_area", "duration": "8 hours" },
+ { "u_assign_activity": "ACT_PSI_TELEPORTER_ATTUNING", "duration": "8 hours" },
+ {
+ "queue_eocs": "EOC_TELEPORT_GATEWAY_ATTUNE_05_SUCCESS",
+ "time_in_future": { "math": [ "28800 - clamp(( u_spell_level('teleport_gateway') * 1080), 0, 27000)" ] }
+ }
+ ]
+ },
+ {
+ "type": "effect_on_condition",
+ "id": "EOC_TELEPORT_GATEWAY_ATTUNE_05_SUCCESS",
+ "condition": { "u_has_effect": "effect_teleporter_attuning_to_area" },
+ "effect": [
+ {
+ "set_string_var": "Destination 5",
+ "string_input": {
+ "title": { "i18n": true, "str": "Input a destination name:" },
+ "description": { "i18n": true, "str": "Destination Name:" },
+ "width": 35,
+ "identifier": ""
+ },
+ "target_var": { "u_val": "gateway_destination_name_5" }
+ },
+ { "u_location_variable": { "u_val": "gateway_destination_5" }, "min_radius": 0, "max_radius": 0 },
+ { "run_eocs": "EOC_TELEPORTER_ATTUNED_MESSAGE" }
+ ]
+ },
+ {
+ "type": "effect_on_condition",
+ "id": "EOC_TELEPORT_GATEWAY_SELECTOR_06",
+ "condition": {
+ "math": [
+ "(u_spell_level('teleport_gateway') * (1 + (u_has_trait('GOODMEMORY') * 0.2) ) / (1 + (u_has_trait('FORGETFUL') * 0.33) ) ) / 3",
+ ">=",
+ "5"
+ ]
+ },
+ "effect": [
+ {
+ "run_eoc_selector": [ "EOC_TELEPORT_GATEWAY_TELEPORT_06", "EOC_TELEPORT_GATEWAY_ATTUNE_06" ],
+ "names": [ "Destination: ", "Attune to Area" ],
+ "keys": [ "1", "2" ],
+ "descriptions": [ "Teleport to .", "Attune to a new destination." ],
+ "hide_failing": true,
+ "allow_cancel": true
+ }
+ ]
+ },
+ {
+ "type": "effect_on_condition",
+ "id": "EOC_TELEPORT_GATEWAY_TELEPORT_06",
+ "condition": { "math": [ "has_var(u_gateway_destination_6)" ] },
+ "effect": [ { "u_teleport": { "u_val": "gateway_destination_6" } }, { "run_eocs": "EOC_TELEPORTER_GATEWAY_MESSAGE" } ]
+ },
+ {
+ "type": "effect_on_condition",
+ "id": "EOC_TELEPORT_GATEWAY_ATTUNE_06",
+ "effect": [
+ { "run_eocs": "EOC_TELEPORTER_ATTUNING_MESSAGE" },
+ { "u_add_effect": "effect_teleporter_attuning_to_area", "duration": "8 hours" },
+ { "u_assign_activity": "ACT_PSI_TELEPORTER_ATTUNING", "duration": "8 hours" },
+ {
+ "queue_eocs": "EOC_TELEPORT_GATEWAY_ATTUNE_06_SUCCESS",
+ "time_in_future": { "math": [ "28800 - clamp(( u_spell_level('teleport_gateway') * 1080), 0, 27000)" ] }
+ }
+ ]
+ },
+ {
+ "type": "effect_on_condition",
+ "id": "EOC_TELEPORT_GATEWAY_ATTUNE_06_SUCCESS",
+ "condition": { "u_has_effect": "effect_teleporter_attuning_to_area" },
+ "effect": [
+ {
+ "set_string_var": "Destination 6",
+ "string_input": {
+ "title": { "i18n": true, "str": "Input a destination name:" },
+ "description": { "i18n": true, "str": "Destination Name:" },
+ "width": 35,
+ "identifier": ""
+ },
+ "target_var": { "u_val": "gateway_destination_name_6" }
+ },
+ { "u_location_variable": { "u_val": "gateway_destination_6" }, "min_radius": 0, "max_radius": 0 },
+ { "run_eocs": "EOC_TELEPORTER_ATTUNED_MESSAGE" }
+ ]
+ },
+ {
+ "type": "effect_on_condition",
+ "id": "EOC_TELEPORT_GATEWAY_SELECTOR_07",
+ "condition": {
+ "math": [
+ "(u_spell_level('teleport_gateway') * (1 + (u_has_trait('GOODMEMORY') * 0.2) ) / (1 + (u_has_trait('FORGETFUL') * 0.33) ) ) / 3",
+ ">=",
+ "6"
+ ]
+ },
+ "effect": [
+ {
+ "run_eoc_selector": [ "EOC_TELEPORT_GATEWAY_TELEPORT_07", "EOC_TELEPORT_GATEWAY_ATTUNE_07" ],
+ "names": [ "Destination: ", "Attune to Area" ],
+ "keys": [ "1", "2" ],
+ "descriptions": [ "Teleport to .", "Attune to a new destination." ],
+ "hide_failing": true,
+ "allow_cancel": true
+ }
+ ]
+ },
+ {
+ "type": "effect_on_condition",
+ "id": "EOC_TELEPORT_GATEWAY_TELEPORT_07",
+ "condition": { "math": [ "has_var(u_gateway_destination_7)" ] },
+ "effect": [ { "u_teleport": { "u_val": "gateway_destination_7" } }, { "run_eocs": "EOC_TELEPORTER_GATEWAY_MESSAGE" } ]
+ },
+ {
+ "type": "effect_on_condition",
+ "id": "EOC_TELEPORT_GATEWAY_ATTUNE_07",
+ "effect": [
+ { "run_eocs": "EOC_TELEPORTER_ATTUNING_MESSAGE" },
+ { "u_add_effect": "effect_teleporter_attuning_to_area", "duration": "8 hours" },
+ { "u_assign_activity": "ACT_PSI_TELEPORTER_ATTUNING", "duration": "8 hours" },
+ {
+ "queue_eocs": "EOC_TELEPORT_GATEWAY_ATTUNE_07_SUCCESS",
+ "time_in_future": { "math": [ "28800 - clamp(( u_spell_level('teleport_gateway') * 1080), 0, 27000)" ] }
+ }
+ ]
+ },
+ {
+ "type": "effect_on_condition",
+ "id": "EOC_TELEPORT_GATEWAY_ATTUNE_07_SUCCESS",
+ "condition": { "u_has_effect": "effect_teleporter_attuning_to_area" },
+ "effect": [
+ {
+ "set_string_var": "Destination 7",
+ "string_input": {
+ "title": { "i18n": true, "str": "Input a destination name:" },
+ "description": { "i18n": true, "str": "Destination Name:" },
+ "width": 35,
+ "identifier": ""
+ },
+ "target_var": { "u_val": "gateway_destination_name_7" }
+ },
+ { "u_location_variable": { "u_val": "gateway_destination_7" }, "min_radius": 0, "max_radius": 0 },
+ { "run_eocs": "EOC_TELEPORTER_ATTUNED_MESSAGE" }
+ ]
+ },
+ {
+ "type": "effect_on_condition",
+ "id": "EOC_TELEPORT_GATEWAY_SELECTOR_08",
+ "condition": {
+ "math": [
+ "(u_spell_level('teleport_gateway') * (1 + (u_has_trait('GOODMEMORY') * 0.2) ) / (1 + (u_has_trait('FORGETFUL') * 0.33) ) ) / 3",
+ ">=",
+ "7"
+ ]
+ },
+ "effect": [
+ {
+ "run_eoc_selector": [ "EOC_TELEPORT_GATEWAY_TELEPORT_08", "EOC_TELEPORT_GATEWAY_ATTUNE_07" ],
+ "names": [ "Destination: ", "Attune to Area" ],
+ "keys": [ "1", "2" ],
+ "descriptions": [ "Teleport to .", "Attune to a new destination." ],
+ "hide_failing": true,
+ "allow_cancel": true
+ }
+ ]
+ },
+ {
+ "type": "effect_on_condition",
+ "id": "EOC_TELEPORT_GATEWAY_TELEPORT_08",
+ "condition": { "math": [ "has_var(u_gateway_destination_8)" ] },
+ "effect": [ { "u_teleport": { "u_val": "gateway_destination_8" } }, { "run_eocs": "EOC_TELEPORTER_GATEWAY_MESSAGE" } ]
+ },
+ {
+ "type": "effect_on_condition",
+ "id": "EOC_TELEPORT_GATEWAY_ATTUNE_08",
+ "effect": [
+ { "run_eocs": "EOC_TELEPORTER_ATTUNING_MESSAGE" },
+ { "u_add_effect": "effect_teleporter_attuning_to_area", "duration": "8 hours" },
+ { "u_assign_activity": "ACT_PSI_TELEPORTER_ATTUNING", "duration": "8 hours" },
+ {
+ "queue_eocs": "EOC_TELEPORT_GATEWAY_ATTUNE_08_SUCCESS",
+ "time_in_future": { "math": [ "28800 - clamp(( u_spell_level('teleport_gateway') * 1080), 0, 27000)" ] }
+ }
+ ]
+ },
+ {
+ "type": "effect_on_condition",
+ "id": "EOC_TELEPORT_GATEWAY_ATTUNE_08_SUCCESS",
+ "condition": { "u_has_effect": "effect_teleporter_attuning_to_area" },
+ "effect": [
+ {
+ "set_string_var": "Destination 8",
+ "string_input": {
+ "title": { "i18n": true, "str": "Input a destination name:" },
+ "description": { "i18n": true, "str": "Destination Name:" },
+ "width": 35,
+ "identifier": ""
+ },
+ "target_var": { "u_val": "gateway_destination_name_8" }
+ },
+ { "u_location_variable": { "u_val": "gateway_destination_8" }, "min_radius": 0, "max_radius": 0 },
+ { "run_eocs": "EOC_TELEPORTER_ATTUNED_MESSAGE" }
+ ]
+ },
+ {
+ "type": "effect_on_condition",
+ "id": "EOC_TELEPORT_GATEWAY_SELECTOR_09",
+ "condition": {
+ "math": [
+ "(u_spell_level('teleport_gateway') * (1 + (u_has_trait('GOODMEMORY') * 0.2) ) / (1 + (u_has_trait('FORGETFUL') * 0.33) ) ) / 3",
+ ">=",
+ "8"
+ ]
+ },
+ "effect": [
+ {
+ "run_eoc_selector": [ "EOC_TELEPORT_GATEWAY_TELEPORT_09", "EOC_TELEPORT_GATEWAY_ATTUNE_09" ],
+ "names": [ "Destination: ", "Attune to Area" ],
+ "keys": [ "1", "2" ],
+ "descriptions": [ "Teleport to .", "Attune to a new destination." ],
+ "hide_failing": true,
+ "allow_cancel": true
+ }
+ ]
+ },
+ {
+ "type": "effect_on_condition",
+ "id": "EOC_TELEPORT_GATEWAY_TELEPORT_09",
+ "condition": { "math": [ "has_var(u_gateway_destination_9)" ] },
+ "effect": [ { "u_teleport": { "u_val": "gateway_destination_9" } }, { "run_eocs": "EOC_TELEPORTER_GATEWAY_MESSAGE" } ]
+ },
+ {
+ "type": "effect_on_condition",
+ "id": "EOC_TELEPORT_GATEWAY_ATTUNE_09",
+ "effect": [
+ { "run_eocs": "EOC_TELEPORTER_ATTUNING_MESSAGE" },
+ { "u_add_effect": "effect_teleporter_attuning_to_area", "duration": "8 hours" },
+ { "u_assign_activity": "ACT_PSI_TELEPORTER_ATTUNING", "duration": "8 hours" },
+ {
+ "queue_eocs": "EOC_TELEPORT_GATEWAY_ATTUNE_09_SUCCESS",
+ "time_in_future": { "math": [ "28800 - clamp(( u_spell_level('teleport_gateway') * 1080), 0, 27000)" ] }
+ }
+ ]
+ },
+ {
+ "type": "effect_on_condition",
+ "id": "EOC_TELEPORT_GATEWAY_ATTUNE_09_SUCCESS",
+ "condition": { "u_has_effect": "effect_teleporter_attuning_to_area" },
+ "effect": [
+ {
+ "set_string_var": "Destination 9",
+ "string_input": {
+ "title": { "i18n": true, "str": "Input a destination name:" },
+ "description": { "i18n": true, "str": "Destination Name:" },
+ "width": 35,
+ "identifier": ""
+ },
+ "target_var": { "u_val": "gateway_destination_name_9" }
+ },
+ { "u_location_variable": { "u_val": "gateway_destination_9" }, "min_radius": 0, "max_radius": 0 },
+ { "run_eocs": "EOC_TELEPORTER_ATTUNED_MESSAGE" }
+ ]
+ },
+ {
+ "type": "effect_on_condition",
+ "id": "EOC_TELEPORT_GATEWAY_SELECTOR_10",
+ "condition": {
+ "math": [
+ "(u_spell_level('teleport_gateway') * (1 + (u_has_trait('GOODMEMORY') * 0.2) ) / (1 + (u_has_trait('FORGETFUL') * 0.33) ) ) / 3",
+ ">=",
+ "9"
+ ]
+ },
+ "effect": [
+ {
+ "run_eoc_selector": [ "EOC_TELEPORT_GATEWAY_TELEPORT_10", "EOC_TELEPORT_GATEWAY_ATTUNE_10" ],
+ "names": [ "Destination: ", "Attune to Area" ],
+ "keys": [ "1", "2" ],
+ "descriptions": [ "Teleport to .", "Attune to a new destination." ],
+ "hide_failing": true,
+ "allow_cancel": true
+ }
+ ]
+ },
+ {
+ "type": "effect_on_condition",
+ "id": "EOC_TELEPORT_GATEWAY_TELEPORT_10",
+ "condition": { "math": [ "has_var(u_gateway_destination_10)" ] },
+ "effect": [ { "u_teleport": { "u_val": "gateway_destination_10" } }, { "run_eocs": "EOC_TELEPORTER_GATEWAY_MESSAGE" } ]
+ },
+ {
+ "type": "effect_on_condition",
+ "id": "EOC_TELEPORT_GATEWAY_ATTUNE_10",
+ "effect": [
+ { "run_eocs": "EOC_TELEPORTER_ATTUNING_MESSAGE" },
+ { "u_add_effect": "effect_teleporter_attuning_to_area", "duration": "8 hours" },
+ { "u_assign_activity": "ACT_PSI_TELEPORTER_ATTUNING", "duration": "8 hours" },
+ {
+ "queue_eocs": "EOC_TELEPORT_GATEWAY_ATTUNE_10_SUCCESS",
+ "time_in_future": { "math": [ "28800 - clamp(( u_spell_level('teleport_gateway') * 1080), 0, 27000)" ] }
+ }
+ ]
+ },
+ {
+ "type": "effect_on_condition",
+ "id": "EOC_TELEPORT_GATEWAY_ATTUNE_10_SUCCESS",
+ "condition": { "u_has_effect": "effect_teleporter_attuning_to_area" },
+ "effect": [
+ {
+ "set_string_var": "Destination 10",
+ "string_input": {
+ "title": { "i18n": true, "str": "Input a destination name:" },
+ "description": { "i18n": true, "str": "Destination Name:" },
+ "width": 35,
+ "identifier": ""
+ },
+ "target_var": { "u_val": "gateway_destination_name_10" }
+ },
+ { "u_location_variable": { "u_val": "gateway_destination_10" }, "min_radius": 0, "max_radius": 0 },
+ { "run_eocs": "EOC_TELEPORTER_ATTUNED_MESSAGE" }
+ ]
+ },
{
"type": "effect_on_condition",
"id": "EOC_TELEPORT_SUMMON",
diff --git a/data/mods/MindOverMatter/recipes/practice/teleportation_practice.json b/data/mods/MindOverMatter/recipes/practice/teleportation_practice.json
index 98d22e9d9e068..17ff388898767 100644
--- a/data/mods/MindOverMatter/recipes/practice/teleportation_practice.json
+++ b/data/mods/MindOverMatter/recipes/practice/teleportation_practice.json
@@ -875,7 +875,6 @@
"popup": true
},
{ "math": [ "u_spell_level('teleport_gateway')", "=", "1" ] },
- { "math": [ "u_spell_level('teleport_area_attune')", "=", "1" ] },
{ "math": [ "u_vitamin('vitamin_psionic_drain')", "+=", "rng( 45,90 )" ] },
{ "u_lose_effect": "effect_psi_learning_new_power" }
],