[
  {
    "type": "effect_on_condition",
    "id": "EOC_TELEKIN_MOMENTUM_INITIATE",
    "condition": { "not": { "u_has_effect": "effect_telekinetic_momentum" } },
    "effect": [
      { "u_message": "The air around you feels more yielding.", "type": "good" },
      { "run_eocs": "EOC_POWER_MAINTENANCE_PLUS_ONE" },
      { "u_add_effect": "effect_telekinetic_momentum", "duration": "PERMANENT" },
      { "u_cast_spell": { "id": "psionic_drained_difficulty_three", "hit_self": true } },
      {
        "queue_eocs": "EOC_TELEKIN_MOMENTUM_DRAIN",
        "time_in_future": [
          {
            "math": [
              "( (u_spell_level('telekinetic_momentum') * 10) + 90) * (scaling_factor(u_val('intelligence') ) ) * u_nether_attunement_power_scaling"
            ]
          },
          {
            "math": [
              "( (u_spell_level('telekinetic_momentum') * 20) + 600) * (scaling_factor(u_val('intelligence') ) ) * u_nether_attunement_power_scaling"
            ]
          }
        ]
      }
    ],
    "false_effect": [ { "run_eocs": "EOC_TELEKIN_REMOVE_MOMENTUM" } ]
  },
  {
    "type": "effect_on_condition",
    "id": "EOC_TELEKIN_REMOVE_MOMENTUM",
    "condition": { "u_has_effect": "effect_telekinetic_momentum" },
    "effect": [ { "run_eocs": "EOC_POWER_MAINTENANCE_MINUS_ONE" }, { "u_lose_effect": "effect_telekinetic_momentum" } ]
  },
  {
    "type": "effect_on_condition",
    "id": "EOC_TELEKIN_MOMENTUM_DRAIN",
    "condition": { "u_has_effect": "effect_telekinetic_momentum" },
    "effect": [
      { "u_cast_spell": { "id": "psionic_maintenance_drained_difficulty_three", "hit_self": true } },
      { "run_eocs": "EOC_POWER_MAINTENANCE_CONCENTRATION_CHECK" },
      {
        "queue_eocs": "EOC_TELEKIN_MOMENTUM_DRAIN",
        "time_in_future": [
          {
            "math": [
              "( (u_spell_level('telekinetic_momentum') * 10) + 90) * (scaling_factor(u_val('intelligence') ) ) * u_nether_attunement_power_scaling"
            ]
          },
          {
            "math": [
              "( (u_spell_level('telekinetic_momentum') * 20) + 600) * (scaling_factor(u_val('intelligence') ) ) * u_nether_attunement_power_scaling"
            ]
          }
        ]
      }
    ],
    "false_effect": [  ]
  },
  {
    "type": "effect_on_condition",
    "id": "EOC_TELEKIN_STRENGTH_INITIATE",
    "condition": { "not": { "u_has_effect": "effect_telekinetic_strength" } },
    "effect": [
      { "u_message": "You concentrate and prepare to lift something heavy.", "type": "good" },
      { "run_eocs": "EOC_POWER_MAINTENANCE_PLUS_ONE" },
      { "u_add_effect": "effect_telekinetic_strength", "duration": "PERMANENT" },
      { "u_cast_spell": { "id": "psionic_drained_difficulty_five", "hit_self": true } },
      {
        "queue_eocs": "EOC_TELEKIN_STRENGTH_DRAIN",
        "time_in_future": [
          {
            "math": [
              "( (u_spell_level('telekinetic_strength') * 15) + 30) * (scaling_factor(u_val('intelligence') ) ) * u_nether_attunement_power_scaling"
            ]
          },
          {
            "math": [
              "( (u_spell_level('telekinetic_strength') * 30) + 120 )* (scaling_factor(u_val('intelligence') ) ) * u_nether_attunement_power_scaling"
            ]
          }
        ]
      }
    ],
    "false_effect": [ { "run_eocs": "EOC_TELEKIN_REMOVE_TELEKINETIC_STRENGTH" } ]
  },
  {
    "type": "effect_on_condition",
    "id": "EOC_TELEKIN_REMOVE_TELEKINETIC_STRENGTH",
    "condition": { "u_has_effect": "effect_telekinetic_strength" },
    "effect": [ { "run_eocs": "EOC_POWER_MAINTENANCE_MINUS_ONE" }, { "u_lose_effect": "effect_telekinetic_strength" } ]
  },
  {
    "type": "effect_on_condition",
    "id": "EOC_TELEKIN_STRENGTH_DRAIN",
    "condition": { "u_has_effect": "effect_telekinetic_strength" },
    "effect": [
      { "u_cast_spell": { "id": "psionic_maintenance_drained_difficulty_five", "hit_self": true } },
      { "run_eocs": "EOC_POWER_MAINTENANCE_CONCENTRATION_CHECK" },
      {
        "queue_eocs": "EOC_TELEKIN_STRENGTH_DRAIN",
        "time_in_future": [
          {
            "math": [
              "( (u_spell_level('telekinetic_strength') * 30) + 180) * (scaling_factor(u_val('intelligence') ) ) * u_nether_attunement_power_scaling"
            ]
          },
          {
            "math": [
              "( (u_spell_level('telekinetic_strength') * 60) + 1800) * (scaling_factor(u_val('intelligence') ) ) * u_nether_attunement_power_scaling"
            ]
          }
        ]
      }
    ],
    "false_effect": [  ]
  },
  {
    "type": "effect_on_condition",
    "id": "EOC_TELEKIN_SHIELD_INITIATE",
    "condition": { "not": { "u_has_effect": "effect_telekinetic_armor" } },
    "effect": [
      { "u_message": "The air around you shimmers slightly.", "type": "good" },
      { "run_eocs": "EOC_POWER_MAINTENANCE_PLUS_ONE" },
      { "u_add_effect": "effect_telekinetic_armor", "duration": "PERMANENT" },
      { "u_cast_spell": { "id": "psionic_drained_difficulty_six", "hit_self": true } },
      {
        "queue_eocs": "EOC_TELEKIN_SHIELD_DRAIN",
        "time_in_future": [
          {
            "math": [
              "( (u_spell_level('telekinetic_shield') * 15) + 90) * (scaling_factor(u_val('intelligence') ) ) * u_nether_attunement_power_scaling"
            ]
          },
          {
            "math": [
              "( (u_spell_level('telekinetic_shield') * 25) + 900) * (scaling_factor(u_val('intelligence') ) ) * u_nether_attunement_power_scaling"
            ]
          }
        ]
      }
    ],
    "false_effect": [ { "run_eocs": "EOC_TELEKIN_REMOVE_SHIELD" } ]
  },
  {
    "type": "effect_on_condition",
    "id": "EOC_TELEKIN_REMOVE_SHIELD",
    "condition": { "u_has_effect": "effect_telekinetic_armor" },
    "effect": [ { "run_eocs": "EOC_POWER_MAINTENANCE_MINUS_ONE" }, { "u_lose_effect": "effect_telekinetic_armor" } ]
  },
  {
    "type": "effect_on_condition",
    "id": "EOC_TELEKIN_SHIELD_DRAIN",
    "condition": { "u_has_effect": "effect_telekinetic_armor" },
    "effect": [
      { "u_cast_spell": { "id": "psionic_maintenance_drained_difficulty_six", "hit_self": true } },
      { "math": [ "u_val('stored_kcal')", "-=", "psionics_kcal_cost(6)" ] },
      { "math": [ "u_spell_exp('telekinetic_shield')", "+=", "(maintenance_exp_factor(u_val('focus')))" ] },
      { "run_eocs": "EOC_POWER_MAINTENANCE_CONCENTRATION_CHECK" },
      {
        "queue_eocs": "EOC_TELEKIN_SHIELD_DRAIN",
        "time_in_future": [
          {
            "math": [
              "( (u_spell_level('telekinetic_shield') * 15) + 90) * (scaling_factor(u_val('intelligence') ) ) * u_nether_attunement_power_scaling"
            ]
          },
          {
            "math": [
              "( (u_spell_level('telekinetic_shield') * 25) + 900) * (scaling_factor(u_val('intelligence') ) ) * u_nether_attunement_power_scaling"
            ]
          }
        ]
      }
    ],
    "false_effect": [  ]
  },
  {
    "type": "effect_on_condition",
    "id": "EOC_TELEKIN_SUMMON_JACKING_TOOL_INITIATE",
    "condition": { "not": { "u_has_effect": "effect_telekinetic_vehicle_lift" } },
    "effect": [
      { "u_message": "You ready yourself to lift a car just enough to work on it.", "type": "good" },
      { "u_cast_spell": { "id": "psionic_drained_difficulty_six", "hit_self": true } },
      { "u_add_effect": "effect_telekinetic_vehicle_lift", "duration": "PERMANENT" },
      { "run_eocs": [ "EOC_POWER_MAINTENANCE_PLUS_ONE", "EOC_TELEKIN_SUMMON_JACKING_TOOL_SWITCHER" ] },
      {
        "queue_eocs": "EOC_TELEKIN_SUMMON_JACKING_TOOL_DRAIN",
        "time_in_future": [
          {
            "math": [
              "( (u_spell_level('telekinetic_vehicle_lift') * 180) + 600) * (scaling_factor(u_val('intelligence') ) ) * u_nether_attunement_power_scaling"
            ]
          },
          {
            "math": [
              "( (u_spell_level('telekinetic_vehicle_lift') * 360) + 1200) * (scaling_factor(u_val('intelligence') ) ) * u_nether_attunement_power_scaling"
            ]
          }
        ]
      }
    ],
    "false_effect": [ { "run_eocs": "EOC_TELEKIN_REMOVE_JACKING_TOOL" } ]
  },
  {
    "type": "effect_on_condition",
    "id": "EOC_TELEKIN_REMOVE_JACKING_TOOL",
    "condition": { "u_has_effect": "effect_telekinetic_vehicle_lift" },
    "effect": [
      { "u_message": "You let the vehicle settle gently to the ground.", "type": "bad" },
      { "run_eocs": "EOC_POWER_MAINTENANCE_MINUS_ONE" },
      { "u_remove_item_with": "telekin_lifting_jack_1" },
      { "u_remove_item_with": "telekin_lifting_jack_2" },
      { "u_remove_item_with": "telekin_lifting_jack_3" },
      { "u_remove_item_with": "telekin_lifting_jack_4" },
      { "u_remove_item_with": "telekin_lifting_jack_5" },
      { "u_remove_item_with": "telekin_lifting_jack_6" },
      { "u_remove_item_with": "telekin_lifting_jack_7" },
      { "u_remove_item_with": "telekin_lifting_jack_8" },
      { "u_remove_item_with": "telekin_lifting_jack_9" },
      { "u_remove_item_with": "telekin_lifting_jack_10" },
      { "u_remove_item_with": "telekin_lifting_jack_11" },
      { "u_remove_item_with": "telekin_lifting_jack_12" },
      { "u_remove_item_with": "telekin_lifting_jack_13" },
      { "u_remove_item_with": "telekin_lifting_jack_14" },
      { "u_remove_item_with": "telekin_lifting_jack_15" },
      { "u_remove_item_with": "telekin_lifting_jack_16" },
      { "u_remove_item_with": "telekin_lifting_jack_17" },
      { "u_remove_item_with": "telekin_lifting_jack_18" },
      { "u_remove_item_with": "telekin_lifting_jack_19" },
      { "u_remove_item_with": "telekin_lifting_jack_20" },
      { "u_lose_effect": "effect_telekinetic_vehicle_lift" }
    ]
  },
  {
    "type": "effect_on_condition",
    "id": "EOC_TELEKIN_SUMMON_JACKING_TOOL_SWITCHER",
    "effect": {
      "switch": { "math": [ "u_spell_level('telekinetic_vehicle_lift')" ] },
      "cases": [
        { "case": 1, "effect": [ { "u_spawn_item": "telekin_lifting_jack_1", "suppress_message": true } ] },
        { "case": 2, "effect": [ { "u_spawn_item": "telekin_lifting_jack_2", "suppress_message": true } ] },
        { "case": 3, "effect": [ { "u_spawn_item": "telekin_lifting_jack_3", "suppress_message": true } ] },
        { "case": 4, "effect": [ { "u_spawn_item": "telekin_lifting_jack_4", "suppress_message": true } ] },
        { "case": 5, "effect": [ { "u_spawn_item": "telekin_lifting_jack_5", "suppress_message": true } ] },
        { "case": 6, "effect": [ { "u_spawn_item": "telekin_lifting_jack_6", "suppress_message": true } ] },
        { "case": 7, "effect": [ { "u_spawn_item": "telekin_lifting_jack_7", "suppress_message": true } ] },
        { "case": 8, "effect": [ { "u_spawn_item": "telekin_lifting_jack_8", "suppress_message": true } ] },
        { "case": 9, "effect": [ { "u_spawn_item": "telekin_lifting_jack_9", "suppress_message": true } ] },
        { "case": 10, "effect": [ { "u_spawn_item": "telekin_lifting_jack_10", "suppress_message": true } ] },
        { "case": 11, "effect": [ { "u_spawn_item": "telekin_lifting_jack_11", "suppress_message": true } ] },
        { "case": 12, "effect": [ { "u_spawn_item": "telekin_lifting_jack_12", "suppress_message": true } ] },
        { "case": 13, "effect": [ { "u_spawn_item": "telekin_lifting_jack_13", "suppress_message": true } ] },
        { "case": 14, "effect": [ { "u_spawn_item": "telekin_lifting_jack_14", "suppress_message": true } ] },
        { "case": 15, "effect": [ { "u_spawn_item": "telekin_lifting_jack_15", "suppress_message": true } ] },
        { "case": 16, "effect": [ { "u_spawn_item": "telekin_lifting_jack_16", "suppress_message": true } ] },
        { "case": 17, "effect": [ { "u_spawn_item": "telekin_lifting_jack_17", "suppress_message": true } ] },
        { "case": 18, "effect": [ { "u_spawn_item": "telekin_lifting_jack_18", "suppress_message": true } ] },
        { "case": 19, "effect": [ { "u_spawn_item": "telekin_lifting_jack_19", "suppress_message": true } ] },
        { "case": 20, "effect": [ { "u_spawn_item": "telekin_lifting_jack_20", "suppress_message": true } ] }
      ]
    }
  },
  {
    "type": "effect_on_condition",
    "id": "EOC_TELEKIN_SUMMON_JACKING_TOOL_DRAIN",
    "condition": { "u_has_effect": "effect_telekinetic_vehicle_lift" },
    "effect": [
      { "u_cast_spell": { "id": "psionic_maintenance_drained_difficulty_six", "hit_self": true } },
      { "run_eocs": "EOC_POWER_MAINTENANCE_CONCENTRATION_CHECK" },
      {
        "queue_eocs": "EOC_TELEKIN_SUMMON_JACKING_TOOL_DRAIN",
        "time_in_future": [
          {
            "math": [
              "( (u_spell_level('telekinetic_vehicle_lift') * 180) + 600) * (scaling_factor(u_val('intelligence') ) ) * u_nether_attunement_power_scaling"
            ]
          },
          {
            "math": [
              "( (u_spell_level('telekinetic_vehicle_lift') * 360) + 1200) * (scaling_factor(u_val('intelligence') ) ) * u_nether_attunement_power_scaling"
            ]
          }
        ]
      }
    ],
    "false_effect": [  ]
  },
  {
    "type": "effect_on_condition",
    "id": "EOC_TELEKIN_LEVITATION_INITIATE",
    "condition": { "not": { "u_has_effect": "effect_telekinetic_levitation" } },
    "effect": [
      { "u_message": "You begin floating a hand's breadth above the ground.", "type": "good" },
      { "run_eocs": [ "EOC_POWER_MAINTENANCE_PLUS_ONE", "EOC_POWER_MAINTENANCE_PLUS_ONE" ] },
      { "u_add_effect": "effect_telekinetic_levitation", "duration": "PERMANENT" },
      { "u_cast_spell": { "id": "psionic_drained_difficulty_seven", "hit_self": true } },
      {
        "queue_eocs": "EOC_TELEKIN_LEVITATION_DRAIN",
        "time_in_future": [
          {
            "math": [
              "( (u_spell_level('telekinetic_levitation') * 0.75) + 1) * (scaling_factor(u_val('intelligence') ) ) * u_nether_attunement_power_scaling"
            ]
          },
          {
            "math": [
              "( (u_spell_level('telekinetic_levitation') * 2) + 5) * (scaling_factor(u_val('intelligence') ) ) * u_nether_attunement_power_scaling"
            ]
          }
        ]
      }
    ],
    "false_effect": [ { "run_eocs": "EOC_TELEKIN_REMOVE_LEVITATION" } ]
  },
  {
    "type": "effect_on_condition",
    "id": "EOC_TELEKIN_REMOVE_LEVITATION",
    "condition": { "u_has_effect": "effect_telekinetic_levitation" },
    "effect": [
      { "run_eocs": [ "EOC_POWER_MAINTENANCE_MINUS_ONE", "EOC_POWER_MAINTENANCE_MINUS_ONE" ] },
      { "u_lose_effect": "effect_telekinetic_levitation" }
    ]
  },
  {
    "type": "effect_on_condition",
    "id": "EOC_TELEKIN_LEVITATION_DRAIN",
    "condition": { "u_has_effect": "effect_telekinetic_levitation" },
    "effect": [
      { "u_cast_spell": { "id": "psionic_maintenance_drained_difficulty_seven", "hit_self": true } },
      { "run_eocs": "EOC_POWER_MAINTENANCE_CONCENTRATION_CHECK" },
      {
        "queue_eocs": "EOC_TELEKIN_LEVITATION_DRAIN",
        "time_in_future": [
          {
            "math": [
              "( (u_spell_level('telekinetic_levitation') * 0.75) + 1) * (scaling_factor(u_val('intelligence') ) ) * u_nether_attunement_power_scaling"
            ]
          },
          {
            "math": [
              "( (u_spell_level('telekinetic_levitation') * 2) + 5) * (scaling_factor(u_val('intelligence') ) ) * u_nether_attunement_power_scaling"
            ]
          }
        ]
      }
    ],
    "false_effect": [  ]
  }
]
