[
  {
    "id": "pain_damage",
    "type": "SPELL",
    "name": { "str": "Pain", "//~": "NO_I18N" },
    "description": { "str": "Increases pain.", "//~": "NO_I18N" },
    "valid_targets": [ "hostile" ],
    "flags": [ "SILENT", "NO_EXPLOSION_SFX" ],
    "//": "Listed as a recover energy effect with a negative modifier that decreases with each level of the spell, which makes it cause damage instead.",
    "min_damage": -25,
    "max_damage": -225,
    "damage_increment": -50.0,
    "max_level": 10,
    "shape": "blast",
    "effect": "recover_energy",
    "effect_str": "PAIN"
  },
  {
    "id": "stamina_damage",
    "type": "SPELL",
    "name": { "str": "Tired", "//~": "NO_I18N" },
    "description": { "str": "Decreases stamina.", "//~": "NO_I18N" },
    "valid_targets": [ "hostile" ],
    "flags": [ "SILENT", "NO_EXPLOSION_SFX" ],
    "//": "Listed as a recover energy effect with a negative modifier that decreases with each level of the spell, which makes it cause damage instead.",
    "min_damage": -2000,
    "max_damage": -10000,
    "damage_increment": -2000.0,
    "max_level": 10,
    "shape": "blast",
    "effect": "recover_energy",
    "effect_str": "STAMINA"
  },
  {
    "type": "SPELL",
    "id": "mon_summon_zombie_gasbag_crawler",
    "name": { "str": "Summon Gangrenous Crawlers", "//~": "NO_I18N" },
    "description": { "str": "Summons 2 permanent gangrenous crawlers.", "//~": "NO_I18N" },
    "flags": [ "HOSTILE_SUMMON", "PERMANENT", "NO_EXPLOSION_SFX" ],
    "valid_targets": [ "ground", "self" ],
    "max_level": 1,
    "min_damage": 1,
    "max_damage": 1,
    "min_range": 0,
    "max_range": 0,
    "min_aoe": 3,
    "max_aoe": 3,
    "base_casting_time": 3,
    "shape": "blast",
    "effect": "summon",
    "effect_str": "mon_zombie_gasbag_crawler"
  },
  {
    "type": "SPELL",
    "id": "crushed_giant_summoning",
    "name": { "str": "Summon Gangrenous Monsters", "//~": "NO_I18N" },
    "description": { "str": "Summons 2 permanent gangrenous impalers.", "//~": "NO_I18N" },
    "flags": [ "HOSTILE_SUMMON", "PERMANENT", "NO_EXPLOSION_SFX" ],
    "valid_targets": [ "ground" ],
    "extra_effects": [ { "id": "mon_summon_zombie_gasbag_crawler" } ],
    "max_level": 1,
    "min_damage": 1,
    "max_damage": 1,
    "min_range": 0,
    "max_range": 0,
    "min_aoe": 3,
    "max_aoe": 3,
    "base_casting_time": 3,
    "shape": "blast",
    "effect": "summon",
    "effect_str": "mon_zombie_gasbag_impaler"
  },
  {
    "type": "SPELL",
    "id": "frog_mother_summon",
    "name": { "str": "Summon Tadpole Constrictors", "//~": "NO_I18N" },
    "description": { "str": "Summons several temporary tadpoles.", "//~": "NO_I18N" },
    "flags": [ "HOSTILE_SUMMON", "RANDOM_DAMAGE", "RANDOM_DURATION", "NO_EXPLOSION_SFX" ],
    "valid_targets": [ "ground", "hostile" ],
    "min_damage": 2,
    "max_damage": 5,
    "min_range": 7,
    "max_range": 7,
    "min_aoe": 3,
    "max_aoe": 3,
    "base_casting_time": 80,
    "min_duration": 1000,
    "max_duration": 2500,
    "extra_effects": [ { "id": "frog_mother_hurt_self", "hit_self": true } ],
    "shape": "blast",
    "effect": "summon",
    "effect_str": "mon_tadpole_grabber"
  },
  {
    "type": "SPELL",
    "id": "wretch_hurt_self",
    "name": { "str": "Wretch Hurt Self", "//~": "NO_I18N" },
    "description": { "str": "Hurts yourself.", "//~": "NO_I18N" },
    "flags": [ "RANDOM_DAMAGE", "NO_PROJECTILE", "NO_EXPLOSION_SFX" ],
    "min_damage": 5,
    "max_damage": 15,
    "damage_type": "cut",
    "valid_targets": [ "hostile", "ally", "self", "ground" ],
    "shape": "blast",
    "effect": "attack"
  },
  {
    "type": "SPELL",
    "id": "frog_mother_hurt_self",
    "name": { "str": "Frog Mother Hurt Self", "//~": "NO_I18N" },
    "description": { "str": "Hurts yourself.", "//~": "NO_I18N" },
    "flags": [ "LOUD", "RANDOM_DAMAGE", "NO_PROJECTILE", "NO_EXPLOSION_SFX" ],
    "min_damage": 10,
    "max_damage": 20,
    "damage_type": "cut",
    "valid_targets": [ "hostile", "ally", "self", "ground" ],
    "shape": "blast",
    "effect": "attack"
  },
  {
    "type": "SPELL",
    "id": "fragile_frog_leap",
    "name": { "str": "Fragile Frog Leap", "//~": "NO_I18N" },
    "description": { "str": "Cast after a burned frog monster leaps; causes self harm and creates a smoke cloud.", "//~": "NO_I18N" },
    "flags": [ "LOUD", "RANDOM_DAMAGE", "NO_PROJECTILE", "NO_EXPLOSION_SFX" ],
    "base_casting_time": 0,
    "message": "",
    "min_damage": 10,
    "max_damage": 15,
    "damage_type": "cut",
    "valid_targets": [ "self", "hostile", "ground" ],
    "shape": "blast",
    "field_id": "fd_smoke",
    "field_chance": 2,
    "min_field_intensity": 1,
    "max_field_intensity": 3,
    "min_aoe": 2,
    "max_aoe": 3,
    "effect": "attack",
    "min_range": 1,
    "max_range": 1,
    "extra_effects": [ { "id": "fragile_no_more", "hit_self": true } ]
  },
  {
    "type": "SPELL",
    "id": "dusty_frog_leap",
    "name": { "str": "Dusty Frog Leap", "//~": "NO_I18N" },
    "description": { "str": "Cast after a burned frog monster leaps; causes self harm and creates a smoke plume.", "//~": "NO_I18N" },
    "flags": [ "LOUD", "RANDOM_DAMAGE", "NO_PROJECTILE", "NO_EXPLOSION_SFX" ],
    "base_casting_time": 0,
    "message": "",
    "min_damage": 5,
    "max_damage": 10,
    "damage_type": "cut",
    "valid_targets": [ "self", "hostile", "ground" ],
    "shape": "blast",
    "field_id": "fd_smoke",
    "field_chance": 2,
    "min_field_intensity": 1,
    "max_field_intensity": 1,
    "min_aoe": 1,
    "max_aoe": 2,
    "effect": "attack",
    "min_range": 1,
    "max_range": 1,
    "extra_effects": [ { "id": "fragile_no_more", "hit_self": true } ]
  },
  {
    "id": "fragile_no_more",
    "type": "SPELL",
    "name": { "str": "Fragile No More", "//~": "NO_I18N" },
    "description": { "str": "removes conditional effect for burned frogs crumble after leaping.", "//~": "NO_I18N" },
    "valid_targets": [ "self" ],
    "effect": "remove_effect",
    "effect_str": "fragile_frog",
    "shape": "blast"
  },
  {
    "type": "SPELL",
    "id": "small_raptor_spawn",
    "name": { "str": "Summon Raptors", "//~": "NO_I18N" },
    "description": { "str": "Summons a few zombiespawn raptors.", "//~": "NO_I18N" },
    "flags": [ "HOSTILE_SUMMON", "RANDOM_DAMAGE", "PERMANENT", "NO_EXPLOSION_SFX" ],
    "valid_targets": [ "ground", "self" ],
    "min_damage": 1,
    "max_damage": 2,
    "min_aoe": 4,
    "max_aoe": 4,
    "extra_effects": [ { "id": "spawning_zombie_die", "hit_self": true } ],
    "shape": "blast",
    "effect": "summon",
    "effect_str": "mon_spawn_raptor"
  },
  {
    "type": "SPELL",
    "id": "big_raptor_spawn",
    "name": { "str": "Summon Many Raptors", "//~": "NO_I18N" },
    "description": { "str": "Summons many zombiespawn raptors.", "//~": "NO_I18N" },
    "flags": [ "HOSTILE_SUMMON", "RANDOM_DAMAGE", "PERMANENT", "NO_EXPLOSION_SFX" ],
    "valid_targets": [ "ground", "self" ],
    "min_damage": 3,
    "max_damage": 6,
    "min_aoe": 4,
    "max_aoe": 4,
    "extra_effects": [ { "id": "spawning_zombie_die", "hit_self": true } ],
    "shape": "blast",
    "effect": "summon",
    "effect_str": "mon_spawn_raptor"
  },
  {
    "type": "SPELL",
    "id": "wretch_raptor_spawn",
    "name": { "str": "Summon Raptor", "//~": "NO_I18N" },
    "description": { "str": "Summons a flesh raptor while dealing some damage to the zombie.", "//~": "NO_I18N" },
    "flags": [ "HOSTILE_SUMMON", "RANDOM_DAMAGE", "PERMANENT", "NO_EXPLOSION_SFX" ],
    "valid_targets": [ "ground", "self" ],
    "min_damage": 1,
    "max_damage": 1,
    "min_aoe": 4,
    "max_aoe": 4,
    "extra_effects": [ { "id": "wretch_hurt_self", "hit_self": true } ],
    "shape": "blast",
    "effect": "summon",
    "effect_str": "mon_spawn_raptor"
  },
  {
    "type": "SPELL",
    "id": "hive_raptor_spawn",
    "name": { "str": "Summon Raptor", "//~": "NO_I18N" },
    "description": { "str": "Summons a zombie-spawn raptor without killing the zombie.", "//~": "NO_I18N" },
    "flags": [ "HOSTILE_SUMMON", "RANDOM_DAMAGE", "PERMANENT", "NO_EXPLOSION_SFX" ],
    "valid_targets": [ "ground", "self" ],
    "min_damage": 1,
    "max_damage": 1,
    "min_aoe": 4,
    "max_aoe": 4,
    "shape": "blast",
    "effect": "summon",
    "effect_str": "mon_spawn_raptor"
  },
  {
    "type": "SPELL",
    "id": "shady_raptor_spawn",
    "name": { "str": "Summon Shady Raptors", "//~": "NO_I18N" },
    "description": { "str": "Summons a few shady zombiespawn raptors.", "//~": "NO_I18N" },
    "flags": [ "HOSTILE_SUMMON", "RANDOM_DAMAGE", "PERMANENT", "NO_EXPLOSION_SFX" ],
    "valid_targets": [ "ground", "self" ],
    "min_damage": 1,
    "max_damage": 2,
    "min_aoe": 4,
    "max_aoe": 4,
    "extra_effects": [ { "id": "spawning_zombie_die", "hit_self": true } ],
    "shape": "blast",
    "effect": "summon",
    "effect_str": "mon_spawn_raptor_shady"
  },
  {
    "type": "SPELL",
    "id": "wretch_fungal_raptor_spawn",
    "name": { "str": "Summon Raptor", "//~": "NO_I18N" },
    "description": { "str": "Summons a fungal flesh raptor while dealing some damage to the zombie.", "//~": "NO_I18N" },
    "flags": [ "HOSTILE_SUMMON", "RANDOM_DAMAGE", "PERMANENT", "NO_EXPLOSION_SFX" ],
    "valid_targets": [ "ground", "self" ],
    "min_damage": 1,
    "max_damage": 1,
    "min_aoe": 4,
    "max_aoe": 4,
    "extra_effects": [ { "id": "wretch_hurt_self", "hit_self": true } ],
    "shape": "blast",
    "effect": "summon",
    "effect_str": "mon_fungal_raptor"
  },
  {
    "type": "SPELL",
    "id": "small_fungal_raptor_spawn",
    "name": { "str": "Summon Fungal Raptors", "//~": "NO_I18N" },
    "description": { "str": "Summons a few fungal raptors.", "//~": "NO_I18N" },
    "flags": [ "HOSTILE_SUMMON", "RANDOM_DAMAGE", "PERMANENT", "NO_EXPLOSION_SFX" ],
    "valid_targets": [ "ground", "self" ],
    "min_damage": 1,
    "max_damage": 2,
    "min_aoe": 4,
    "max_aoe": 4,
    "extra_effects": [ { "id": "spawning_zombie_die", "hit_self": true } ],
    "shape": "blast",
    "effect": "summon",
    "effect_str": "mon_fungal_raptor"
  },
  {
    "type": "SPELL",
    "id": "spawning_zombie_die",
    "name": { "str": "Spawning Zombie Die", "//~": "NO_I18N" },
    "description": { "str": "For zombies that are spawning something and die in the process.", "//~": "NO_I18N" },
    "flags": [ "SILENT", "NO_PROJECTILE", "NO_EXPLOSION_SFX", "EXTRA_EFFECTS_FIRST" ],
    "min_damage": 2000,
    "max_damage": 2000,
    "damage_type": "pure",
    "valid_targets": [ "self" ],
    "extra_effects": [ { "id": "soft_squelch", "hit_self": true } ],
    "shape": "blast",
    "effect": "attack"
  },
  {
    "type": "SPELL",
    "id": "soft_squelch",
    "name": { "str": "Soft Squelch", "//~": "NO_I18N" },
    "description": { "str": "Noise, emitted by the monster when it explode with gore.", "//~": "NO_I18N" },
    "flags": [ "NO_PROJECTILE", "NO_EXPLOSION_SFX" ],
    "min_damage": 6,
    "max_damage": 16,
    "sound_type": "combat",
    "sound_description": "a loud tearing!",
    "valid_targets": [ "self" ],
    "shape": "blast",
    "effect": "noise"
  },
  {
    "type": "SPELL",
    "id": "phase_skulker_teleport",
    "name": { "str": "Phase Skulker Teleport", "//~": "NO_I18N" },
    "description": { "str": "Teleports the monster.", "//~": "NO_I18N" },
    "effect": "short_range_teleport",
    "shape": "blast",
    "valid_targets": [ "none" ],
    "flags": [ "SOMATIC", "SILENT", "NO_LEGS", "NO_EXPLOSION_SFX" ],
    "min_range": 2,
    "max_range": 12,
    "min_aoe": 2,
    "max_aoe": 12,
    "base_casting_time": 100
  },
  {
    "type": "SPELL",
    "id": "cellar_spider_leg_detach",
    "name": { "str": "Detach Leg", "//~": "NO_I18N" },
    "description": { "str": "The hurt leg of the cellar spider wriggles loose.  Ew.", "//~": "NO_I18N" },
    "flags": [ "HOSTILE_SUMMON", "NO_PROJECTILE", "RANDOM_TARGET", "NO_EXPLOSION_SFX" ],
    "effect": "effect_on_condition",
    "valid_targets": [ "self" ],
    "base_casting_time": 10,
    "min_range": 1,
    "min_aoe": 3,
    "shape": "blast",
    "effect_str": "EOC_cellar_spider_leg",
    "extra_effects": [ { "id": "frog_mother_hurt_self", "hit_self": true }, { "id": "frog_mother_hurt_self", "hit_self": true } ]
  },
  {
    "type": "effect_on_condition",
    "id": "EOC_cellar_spider_leg",
    "condition": { "one_in_chance": 2 },
    "effect": [
      {
        "u_spawn_monster": "mon_spider_cellar_leg",
        "real_count": [ 1, 4 ],
        "min_radius": 1,
        "max_radius": 3,
        "spawn_message": "The maimed leg wriggles loose!",
        "spawn_message_plural": "The maimed legs wriggle loose!"
      },
      { "u_lose_effect": "maimed_leg" }
    ]
  },
  {
    "type": "SPELL",
    "id": "centipede_mom_summon",
    "name": { "str": "Summon Centipede", "//~": "NO_I18N" },
    "description": { "str": "Summons a small, sometimes pissed off centipede.", "//~": "NO_I18N" },
    "flags": [ "HOSTILE_SUMMON", "PERMANENT", "RANDOM_TARGET", "NO_PROJECTILE", "NO_EXPLOSION_SFX", "SPAWN_GROUP" ],
    "valid_targets": [ "ground" ],
    "base_casting_time": 200,
    "min_range": 1,
    "max_range": 3,
    "min_damage": 1,
    "max_damage": 1,
    "min_aoe": 1,
    "max_aoe": 1,
    "shape": "line",
    "effect": "summon",
    "effect_str": "GROUP_CENTIPEDE_MOM_SUMMON"
  },
  {
    "type": "SPELL",
    "id": "phase_shrike_teleport",
    "name": { "str": "Phase Skulker Teleport", "//~": "NO_I18N" },
    "description": { "str": "Electric explosion followed by a teleport.", "//~": "NO_I18N" },
    "extra_effects": [ { "id": "phase_skulker_teleport", "hit_self": true } ],
    "valid_targets": [ "hostile", "ground", "self", "ally" ],
    "effect": "attack",
    "shape": "blast",
    "flags": [ "LOUD", "RANDOM_DAMAGE", "RANDOM_AOE", "NO_PROJECTILE", "NO_EXPLOSION_SFX" ],
    "base_casting_time": 100,
    "min_damage": 5,
    "max_damage": 10,
    "damage_type": "electric",
    "min_aoe": 4,
    "max_aoe": 8,
    "min_range": 2,
    "max_range": 6,
    "field_id": "fd_electricity",
    "field_chance": 3,
    "min_field_intensity": 1,
    "max_field_intensity": 3
  },
  {
    "type": "SPELL",
    "id": "spur_shrill",
    "name": { "str": "Spur Shrill", "//~": "NO_I18N" },
    "description": { "str": "Heals nearby scrap swarms.", "//~": "NO_I18N" },
    "valid_targets": [ "hostile", "ground", "self", "ally" ],
    "targeted_monster_ids": [ "mon_shrapnel_swarm" ],
    "effect": "attack",
    "shape": "blast",
    "flags": [ "LOUD", "RANDOM_DAMAGE", "NO_PROJECTILE", "NO_EXPLOSION_SFX" ],
    "base_casting_time": 100,
    "min_damage": -50,
    "max_damage": -100,
    "min_aoe": 12,
    "max_aoe": 12,
    "min_range": 2,
    "max_range": 6,
    "field_id": "fd_biolum",
    "field_chance": 2,
    "min_field_intensity": 1,
    "max_field_intensity": 3
  },
  {
    "type": "SPELL",
    "id": "shock_cone",
    "name": { "str": "an arc of electricity", "//~": "NO_I18N" },
    "description": { "str": "Spawns electric fields.", "//~": "NO_I18N" },
    "effect": "attack",
    "shape": "cone",
    "valid_targets": [ "hostile", "ground" ],
    "max_level": 5,
    "min_damage": 0,
    "max_damage": 0,
    "min_aoe": 10,
    "max_aoe": 15,
    "aoe_increment": 1,
    "min_range": 8,
    "max_range": 16,
    "range_increment": 2,
    "base_casting_time": 50,
    "field_id": "fd_electricity",
    "min_field_intensity": 3,
    "max_field_intensity": 9,
    "field_intensity_increment": 1,
    "field_intensity_variance": 1,
    "field_chance": 4,
    "damage_type": "electric",
    "sound_type": "combat",
    "sound_id": "fire_gun",
    "sound_variant": "bio_lightning",
    "sound_description": "a crackle"
  },
  {
    "type": "SPELL",
    "id": "shock_blast",
    "name": { "str": "Shock Blast", "//~": "NO_I18N" },
    "description": { "str": "Spawns electric fields in a blast", "//~": "NO_I18N" },
    "base_casting_time": 10,
    "effect": "attack",
    "shape": "blast",
    "valid_targets": [ "self", "ground" ],
    "flags": [ "LOUD", "SPLIT_DAMAGE" ],
    "damage_type": "electric",
    "max_level": 4,
    "min_damage": 4,
    "max_damage": 16,
    "damage_increment": 4,
    "min_range": 1,
    "max_range": 5,
    "range_increment": 1,
    "min_aoe": 1,
    "max_aoe": 5,
    "aoe_increment": 1,
    "field_id": "fd_electricity",
    "min_field_intensity": 3,
    "max_field_intensity": 9,
    "field_intensity_increment": 2,
    "field_chance": 2,
    "field_intensity_variance": 0.2,
    "effect_str": "maimed_capacitor",
    "min_duration": 2000,
    "max_duration": 2000,
    "extra_effects": [ { "id": "hit_and_run", "hit_self": true } ]
  },
  {
    "type": "SPELL",
    "id": "hit_and_run",
    "name": { "str": "Running Away", "//~": "NO_I18N" },
    "description": { "str": "Causes monster to run away for 5 turns.", "//~": "NO_I18N" },
    "flags": [ "SILENT", "NO_EXPLOSION_SFX" ],
    "valid_targets": [ "self" ],
    "effect": "attack",
    "shape": "blast",
    "effect_str": "run",
    "min_duration": 500
  },
  {
    "type": "SPELL",
    "id": "dermatik_emergence",
    "name": { "str": "Dermatik Emergence", "//~": "NO_I18N" },
    "description": { "str": "The incubating dermatik larvae flee their host.", "//~": "NO_I18N" },
    "flags": [ "HOSTILE_SUMMON", "PERMANENT", "RANDOM_DAMAGE", "NO_EXPLOSION_SFX" ],
    "valid_targets": [ "ground", "self" ],
    "base_casting_time": 20,
    "min_range": 1,
    "max_range": 5,
    "min_damage": 1,
    "max_damage": 3,
    "damage_type": "stab",
    "min_aoe": 2,
    "max_aoe": 3,
    "shape": "blast",
    "effect": "summon",
    "effect_str": "mon_dermatik_larva",
    "extra_effects": [ { "id": "frog_mother_hurt_self", "hit_self": true } ]
  },
  {
    "type": "SPELL",
    "id": "mutant_frenzy",
    "name": { "str": "Mutant Frenzy", "//~": "NO_I18N" },
    "description": { "str": "Speeds up allied mutants in a radius.", "//~": "NO_I18N" },
    "valid_targets": [ "ally" ],
    "targeted_monster_ids": [
      "mon_mutant_antler",
      "mon_mutant_arthropod",
      "mon_mutant_camouflaged",
      "mon_mutant_mollusk",
      "mon_mutant_experimental",
      "mon_mutant_evolved"
    ],
    "effect": "attack",
    "shape": "blast",
    "effect_str": "frenzy",
    "max_level": 1,
    "min_range": 10,
    "max_range": 10,
    "min_aoe": 8,
    "max_aoe": 12,
    "min_damage": 0,
    "max_damage": 0,
    "min_duration": 9000,
    "max_duration": 9000,
    "base_casting_time": 200,
    "flags": [ "RANDOM_AOE", "NO_EXPLOSION_SFX" ]
  },
  {
    "type": "SPELL",
    "id": "spread_sludge",
    "name": { "str": "Spread Sludge", "//~": "NO_I18N" },
    "description": { "str": "Splatters sludge along the ground in a cone.", "//~": "NO_I18N" },
    "valid_targets": [ "hostile", "ground" ],
    "max_level": 1,
    "flags": [ "SILENT", "NO_HANDS", "NO_LEGS", "NO_EXPLOSION_SFX" ],
    "min_aoe": 45,
    "max_aoe": 45,
    "base_casting_time": 75,
    "min_range": 4,
    "max_range": 4,
    "effect": "attack",
    "shape": "cone",
    "field_id": "fd_sludge",
    "field_chance": 2,
    "min_field_intensity": 2,
    "max_field_intensity": 2
  },
  {
    "type": "effect_on_condition",
    "id": "EOC_random_mutate",
    "condition": { "and": [ { "math": [ "_proj_damage + _damage > 0" ] }, "has_beta", "npc_is_character" ] },
    "effect": [
      { "set_string_var": "<random_category>", "target_var": { "context_val": "dart_mutation_category" }, "parse_tags": true },
      {
        "npc_mutate_category": { "context_val": "dart_mutation_category" },
        "use_vitamins": false,
        "true_random": true
      }
    ]
  },
  {
    "type": "snippet",
    "category": "<random_category>",
    "text": [
      { "text": "CHIMERA", "weight": 6 },
      { "text": "INSECT", "weight": 2 },
      { "text": "ALPHA", "weight": 1 },
      { "text": "URSINE", "weight": 2 },
      { "text": "CHIROPTERAN", "weight": 2 },
      { "text": "BIRD", "weight": 2 },
      { "text": "MEDICAL", "weight": 1 },
      { "text": "LUPINE", "weight": 2 },
      { "text": "RAT", "weight": 2 },
      { "text": "SLIME", "weight": 1 },
      { "text": "PLANT", "weight": 2 },
      { "text": "BATRACHIAN", "weight": 2 },
      { "text": "RAPTOR", "weight": 1 },
      { "text": "MOUSE", "weight": 2 },
      { "text": "CEPHALOPOD", "weight": 2 },
      { "text": "ELFA", "weight": 1 },
      { "text": "FISH", "weight": 2 },
      { "text": "HUMAN", "weight": 1 },
      { "text": "RABBIT", "weight": 2 },
      { "text": "GASTROPOD", "weight": 2 },
      { "text": "BEAST", "weight": 1 },
      { "text": "FELINE", "weight": 1 },
      { "text": "CATTLE", "weight": 1 },
      { "text": "LIZARD", "weight": 1 },
      { "text": "TROGLOBITE", "weight": 1 },
      { "text": "CRUSTACEAN", "weight": 1 }
    ]
  },
  {
    "type": "SPELL",
    "id": "base_portal",
    "name": { "str": "Base characteristics of portal spells", "//~": "NO_I18N" },
    "description": { "str": "Base portal stats.", "//~": "NO_I18N" },
    "valid_targets": [ "hostile" ],
    "max_level": 1,
    "flags": [ "SILENT", "NO_HANDS", "NO_LEGS", "NO_PROJECTILE", "NO_EXPLOSION_SFX" ],
    "base_casting_time": 75,
    "min_range": 1,
    "max_range": 1,
    "extra_effects": [ { "id": "portal_hurt_self", "hit_self": true } ],
    "shape": "blast",
    "effect": "effect_on_condition",
    "effect_str": ""
  },
  {
    "type": "SPELL",
    "id": "shifting_mass_attack",
    "name": { "str": "Shifting Mass Attack", "//~": "NO_I18N" },
    "description": { "str": "Drains some of your essence.", "//~": "NO_I18N" },
    "copy-from": "base_portal",
    "min_damage": -25,
    "max_damage": -50,
    "damage_increment": -10.0,
    "effect_str": "EOC_shifting_mass_attack"
  },
  {
    "type": "SPELL",
    "id": "portal_hurt_self",
    "name": { "str": "Hurt Self", "//~": "NO_I18N" },
    "description": { "str": "Touching/perceiving you is bad for the other side as well.", "//~": "NO_I18N" },
    "flags": [ "SILENT", "NO_HANDS", "NO_LEGS", "NO_PROJECTILE", "NO_EXPLOSION_SFX" ],
    "min_damage": 5,
    "max_damage": 5,
    "damage_type": "pure",
    "valid_targets": [ "self" ],
    "shape": "blast",
    "effect": "attack"
  },
  {
    "type": "SPELL",
    "id": "portal_severely_hurt_self",
    "name": { "str": "Hurt Self", "//~": "NO_I18N" },
    "description": { "str": "Touching/perceiving you is bad for the other side as well.", "//~": "NO_I18N" },
    "flags": [ "SILENT", "NO_HANDS", "NO_LEGS", "NO_PROJECTILE", "NO_EXPLOSION_SFX" ],
    "min_damage": 30,
    "max_damage": 30,
    "damage_type": "pure",
    "valid_targets": [ "self" ],
    "shape": "blast",
    "effect": "attack"
  },
  {
    "type": "effect_on_condition",
    "id": "EOC_shifting_mass_attack",
    "condition": { "not": { "u_has_worn_with_flag": "PORTAL_PROOF" } },
    "effect": [
      { "math": [ "u_val('sleepiness') = min(u_val('sleepiness') + ps_str + 20, 1200)" ] },
      { "math": [ "u_val('stamina')", "*=", "ps_str + 50" ] },
      { "math": [ "u_sleep_deprivation", "+=", "time('1 minutes')" ] }
    ]
  },
  {
    "type": "SPELL",
    "id": "impossible_shape_attack",
    "name": { "str": "Impossible Shape Attack", "//~": "NO_I18N" },
    "description": { "str": "Hurts you mentally.", "//~": "NO_I18N" },
    "copy-from": "base_portal",
    "min_range": 50,
    "max_range": 50,
    "effect_str": "EOC_impossible_shape_attack"
  },
  {
    "type": "effect_on_condition",
    "id": "EOC_impossible_shape_attack",
    "condition": { "and": [ { "or": [ "u_can_see", { "u_has_flag": "BLIND" } ] }, { "math": [ "u_madness > 10" ] } ] },
    "effect": [
      { "u_add_effect": "nightmares", "duration": "18 hours" },
      { "u_add_effect": "disrupted_sleep", "duration": "18 hours" },
      {
        "u_add_morale": "morale_impossible_shape",
        "bonus": -20,
        "max_bonus": -60,
        "duration": "36 hours",
        "decay_start": "24 hours"
      },
      { "math": [ "u_pain()", "+=", "3" ] },
      { "math": [ "u_madness = 0" ] },
      {
        "u_message": "Your mind lurches, the shapes and figures dance across your vision, you feel like your head is going to explode."
      }
    ],
    "false_effect": [
      { "math": [ "u_pain()", "+=", "3" ] },
      { "math": [ "u_madness++" ] },
      {
        "u_message": "You can't look away from the impossible shape, staring at it is making you feel sick, you have to get away!"
      }
    ]
  },
  {
    "type": "SPELL",
    "id": "absence_capture_attack",
    "name": { "str": "Absence Capture Attack", "//~": "NO_I18N" },
    "description": { "str": "Traps you with nothing.", "//~": "NO_I18N" },
    "copy-from": "base_portal",
    "min_range": 12,
    "max_range": 12,
    "effect_str": "EOC_absence_capture_attack"
  },
  {
    "type": "effect_on_condition",
    "id": "EOC_absence_capture_attack",
    "condition": { "math": [ "distance('u', 'npc') > 3" ] },
    "effect": [
      { "u_location_variable": { "global_val": "portal_cage" } },
      {
        "u_transform_radius": 2,
        "ter_furn_transform": "portal_cage_transform",
        "target_var": { "global_val": "portal_cage" }
      },
      {
        "u_transform_radius": 2,
        "ter_furn_transform": "portal_cage_revert_transform",
        "target_var": { "global_val": "portal_cage" },
        "time_in_future": [ "3 seconds", "5 seconds" ]
      },
      { "u_message": "All the empty space around you is suddenly even emptier than should be possible." }
    ],
    "false_effect": [
      {
        "weighted_list_eocs": [ [ "EOC_shifting_mass_attack", 2 ], [ "EOC_PORTAL_TELEPORT_STUCK_START", 2 ], [ "EOC_PORTAL_INCORPOREAL", 1 ] ]
      },
      { "u_message": "For an instant you feel the absence's hunger upon you." }
    ]
  },
  {
    "type": "ter_furn_transform",
    "id": "portal_cage_transform",
    "furniture": [ { "result": [ "f_absence" ], "valid_furniture": [ "f_null" ] } ]
  },
  {
    "type": "ter_furn_transform",
    "id": "portal_cage_revert_transform",
    "furniture": [ { "result": [ "f_null" ], "valid_furniture": [ "f_absence" ] } ]
  },
  {
    "id": "skunk_squirt",
    "type": "SPELL",
    "name": { "str": "Skunk Spray", "//~": "NO_I18N" },
    "description": { "str": "Skunk spray defense mechanism.", "//~": "NO_I18N" },
    "valid_targets": [ "hostile" ],
    "effect": "attack",
    "shape": "cone",
    "min_range": 4,
    "max_range": 4,
    "//": "Duration is 3-5 hours, can't seem to write it in hours, had to write it in moves which is terrible",
    "min_duration": 1080000,
    "max_duration": 1800000,
    "flags": [ "RANDOM_DURATION" ],
    "effect_str": "skunk_spray"
  },
  {
    "id": "boomer_claymore_initial",
    "type": "SPELL",
    "//": "exist because zed try to use boomer_claymore on max range except trying to minimize the distance (ty venera for idea)",
    "name": { "str": "Initial Boomer Claymore Attack", "//~": "NO_I18N" },
    "description": { "str": "Nothing to see here.", "//~": "NO_I18N" },
    "valid_targets": [ "hostile" ],
    "flags": [ "NO_EXPLOSION_SFX" ],
    "effect": "attack",
    "shape": "blast",
    "min_damage": 0,
    "max_damage": 0,
    "min_range": 3,
    "max_range": 3,
    "extra_effects": [ { "id": "boomer_claymore" } ]
  },
  {
    "id": "boomer_claymore",
    "type": "SPELL",
    "name": { "str": "Boomer Claymore Attack", "//~": "NO_I18N" },
    "description": { "str": "Nothing to see here.", "//~": "NO_I18N" },
    "valid_targets": [ "hostile", "ally", "ground" ],
    "flags": [ "SPLIT_DAMAGE" ],
    "effect": "attack",
    "shape": "cone",
    "min_damage": 30,
    "max_damage": 30,
    "damage_type": "cut",
    "min_range": 6,
    "max_range": 6,
    "min_aoe": 120,
    "max_aoe": 120,
    "extra_effects": [ { "id": "boomer_claymore_suicide", "hit_self": true } ]
  },
  {
    "id": "create_noise",
    "type": "SPELL",
    "name": { "str": "Do noise", "//~": "NO_I18N" },
    "description": { "str": "Causes some noise", "//~": "NO_I18N" },
    "flags": [ "NO_EXPLOSION_SFX" ],
    "message": "The %s makes a deafening screech",
    "sound_description": "a deafening screech",
    "sound_type": "combat",
    "sound_ambient": true,
    "sound_id": "misc",
    "sound_variant": "shockwave",
    "min_damage": 50,
    "max_damage": 50,
    "valid_targets": [ "self" ],
    "shape": "blast",
    "effect": "noise"
  },
  {
    "id": "boomer_claymore_suicide",
    "type": "SPELL",
    "name": { "str": "Boomer Suicide Spell", "//~": "NO_I18N" },
    "description": { "str": "Nothing to see here.", "//~": "NO_I18N" },
    "valid_targets": [ "hostile", "ally", "self" ],
    "effect": "attack",
    "shape": "blast",
    "damage_type": "biological",
    "flags": [ "NO_EXPLOSION_SFX" ],
    "min_damage": 9999,
    "max_damage": 9999
  },
  {
    "type": "SPELL",
    "id": "mon_twisting_blade_attack",
    "name": { "str": "Twisting Blade Attack", "//~": "NO_I18N" },
    "description": { "str": "Hurts you mentally.", "//~": "NO_I18N" },
    "copy-from": "base_portal",
    "effect_str": "EOC_mon_twisting_blade_attack"
  },
  {
    "type": "effect_on_condition",
    "id": "EOC_mon_twisting_blade_attack",
    "condition": "u_can_see",
    "effect": [
      { "u_add_effect": "nightmares", "duration": "18 hours" },
      { "math": [ "u_pain()", "+=", "3" ] },
      { "math": [ "u_val('stamina')", "-=", "20" ] }
    ]
  },
  {
    "type": "SPELL",
    "id": "mon_swarm_structure_attack",
    "name": { "str": "Swarm Structure Action", "//~": "NO_I18N" },
    "description": { "str": "Teleports and summons monsters.", "//~": "NO_I18N" },
    "copy-from": "base_portal",
    "extra_effects": [ { "id": "portal_severely_hurt_self", "hit_self": true } ],
    "min_range": 15,
    "max_range": 15,
    "effect_str": "EOC_mon_swarm_structure_attack"
  },
  {
    "type": "effect_on_condition",
    "id": "EOC_mon_swarm_structure_attack",
    "condition": { "math": [ "distance('u', 'npc') > 4" ] },
    "effect": [
      { "u_location_variable": { "npc_val": "swarm_target" }, "min_radius": 1, "max_radius": 2 },
      { "npc_teleport": { "npc_val": "swarm_target" } }
    ],
    "false_effect": {
      "u_spawn_monster": "mon_twisting_blade",
      "real_count": [ 3, 5 ],
      "hallucination_count": [ 5, 10 ],
      "min_radius": 3,
      "max_radius": 5,
      "lifespan": [ "5 seconds", "10 seconds" ]
    }
  },
  {
    "type": "SPELL",
    "id": "mon_reflection_attack",
    "name": { "str": "Reflection Action", "//~": "NO_I18N" },
    "description": { "str": "Teleports and harms monsters.", "//~": "NO_I18N" },
    "copy-from": "base_portal",
    "min_range": 15,
    "max_range": 15,
    "effect_str": "EOC_mon_reflection_attack"
  },
  {
    "type": "effect_on_condition",
    "id": "EOC_mon_reflection_attack",
    "effect": {
      "switch": { "math": [ "distance('u', 'npc')" ] },
      "cases": [
        {
          "case": 0,
          "effect": [
            { "u_message": "Your reflection feasts directly on your essence." },
            { "math": [ "u_val('sleepiness') = min(u_val('sleepiness') + portal_dungeon_reflect_strength, 1200)" ] },
            { "math": [ "portal_dungeon_reflect_strength", "+=", "3" ] }
          ]
        },
        {
          "case": 2,
          "effect": [
            { "u_message": "Your reflection uses your bond to feast on your essence." },
            { "math": [ "u_val('sleepiness') = min(u_val('sleepiness') + portal_dungeon_reflect_strength, 1200)" ] },
            { "math": [ "portal_dungeon_reflect_strength++" ] }
          ]
        },
        {
          "case": 8,
          "effect": [
            {
              "switch": { "math": [ "rand(10)" ] },
              "cases": [
                {
                  "case": 0,
                  "effect": [
                    { "u_message": "Your reflection clears the way between you two." },
                    { "u_location_variable": { "global_val": "first" } },
                    { "npc_location_variable": { "global_val": "second" } },
                    {
                      "transform_line": "clear_portal_walls",
                      "first": { "global_val": "first" },
                      "second": { "global_val": "second" }
                    }
                  ]
                },
                {
                  "case": 5,
                  "effect": {
                    "if": {
                      "and": [
                        { "math": [ "portal_dungeon_level > 0" ] },
                        { "math": [ "monsters_nearby('mon_guilt', 'location': dungeon_loc) < 1" ] }
                      ]
                    },
                    "then": {
                      "u_spawn_monster": "mon_guilt",
                      "real_count": 1,
                      "min_radius": 2,
                      "max_radius": 4,
                      "spawn_message": "Something deep inside you is manifested physically."
                    }
                  }
                },
                {
                  "case": 8,
                  "effect": {
                    "if": {
                      "and": [
                        { "math": [ "portal_dungeon_level > 0" ] },
                        { "math": [ "monsters_nearby('mon_sloth', 'location': dungeon_loc) < 1" ] }
                      ]
                    },
                    "then": {
                      "u_spawn_monster": "mon_sloth",
                      "real_count": 1,
                      "min_radius": 2,
                      "max_radius": 4,
                      "spawn_message": "Something deep inside you is manifested physically."
                    }
                  }
                }
              ]
            }
          ]
        }
      ]
    }
  },
  {
    "type": "ter_furn_transform",
    "id": "clear_portal_walls",
    "terrain": [ { "result": [ "t_floor_warped" ], "valid_terrain": [ "t_wall_warped" ] } ]
  },
  {
    "type": "SPELL",
    "id": "mon_reflection_revive",
    "name": { "str": "Reflection Revive", "//~": "NO_I18N" },
    "description": { "str": "Revives the reflection.", "//~": "NO_I18N" },
    "valid_targets": [ "self", "ground" ],
    "max_level": 1,
    "flags": [ "SILENT", "NO_HANDS", "NO_LEGS", "NO_EXPLOSION_SFX" ],
    "base_casting_time": 75,
    "min_range": 15,
    "max_range": 15,
    "shape": "blast",
    "effect": "effect_on_condition",
    "effect_str": "EOC_PORTAL_STORM_DUNGEON_REFLECTION_RESPAWN"
  },
  {
    "type": "SPELL",
    "id": "mon_XEDRA_officer_banish",
    "name": { "str": "Officer banish", "//~": "NO_I18N" },
    "description": { "str": "Stops the haunting.", "//~": "NO_I18N" },
    "valid_targets": [ "self", "ground" ],
    "max_level": 1,
    "flags": [ "SILENT", "NO_HANDS", "NO_LEGS" ],
    "base_casting_time": 75,
    "min_range": 15,
    "max_range": 15,
    "shape": "blast",
    "effect": "effect_on_condition",
    "effect_str": "EOC_HAUNTING_QUEUE_STOP"
  },
  {
    "type": "effect_on_condition",
    "id": "EOC_PORTAL_STORM_DUNGEON_REFLECTION_RESPAWN",
    "effect": [ { "run_eocs": "EOC_PORTAL_STORM_DUNGEON_REFLECTION_SPAWN", "time_in_future": [ "30 seconds", "1 minutes" ] } ]
  },
  {
    "type": "SPELL",
    "id": "mon_tainted_shadow_revive",
    "name": { "str": "Tainted Shadow Revive", "//~": "NO_I18N" },
    "description": { "str": "Revives the tainted shadow.", "//~": "NO_I18N" },
    "valid_targets": [ "self", "ground" ],
    "max_level": 1,
    "flags": [ "SILENT", "NO_HANDS", "NO_LEGS", "NO_EXPLOSION_SFX" ],
    "base_casting_time": 75,
    "min_range": 15,
    "max_range": 15,
    "shape": "blast",
    "effect": "effect_on_condition",
    "effect_str": "EOC_PORTAL_STORM_SHADOW_RESPAWN"
  },
  {
    "type": "effect_on_condition",
    "id": "EOC_PORTAL_STORM_SHADOW_RESPAWN",
    "condition": { "x_in_y_chance": { "x": 8, "y": 10 } },
    "effect": [ { "run_eocs": "EOC_PORTAL_STORM_SHADOW_SPAWN", "time_in_future": [ "30 seconds", "1 minutes" ] } ],
    "false_effect": [ { "u_lose_trait": "TAINTED_SHADOW" } ]
  },
  {
    "id": "hallu_touch_suicide",
    "type": "SPELL",
    "name": { "str": "Hallucination Touch Dissipation", "//~": "NO_I18N" },
    "description": { "str": "Nothing to see here.", "//~": "NO_I18N" },
    "valid_targets": [ "hostile", "ally", "self" ],
    "effect": "attack",
    "shape": "blast",
    "flags": [ "SILENT", "NO_EXPLOSION_SFX" ],
    "damage_type": "pure",
    "min_damage": 100000000,
    "max_damage": 100000000
  },
  {
    "id": "hallucinator_touch",
    "type": "SPELL",
    "name": { "str": "Give The Hallucination Effect", "//~": "NO_I18N" },
    "description": {
      "str": "Spell that gives the player the effect, that will cause short term hallucination attacks.  You can see it only in debug menu.",
      "//~": "NO_I18N"
    },
    "valid_targets": [ "hostile" ],
    "effect": "attack",
    "effect_str": "hallucination_attacks",
    "shape": "blast",
    "flags": [ "SILENT", "NO_EXPLOSION_SFX" ],
    "min_damage": 0,
    "max_damage": 0,
    "min_range": 1,
    "max_range": 1,
    "min_duration": 25920000,
    "max_duration": 25920000,
    "extra_effects": [ { "id": "hallu_touch_suicide", "hit_self": true } ]
  },
  {
    "type": "SPELL",
    "id": "flatlander_attack",
    "name": { "str": "flatlander attack", "//~": "NO_I18N" },
    "description": { "str": "Dazes the player", "//~": "NO_I18N" },
    "valid_targets": [ "hostile" ],
    "effect": "attack",
    "effect_str": "stunned",
    "min_range": 4,
    "max_range": 4,
    "shape": "blast",
    "message": "",
    "min_duration": 100,
    "max_duration": 400,
    "flags": [ "SILENT", "NO_EXPLOSION_SFX", "RANDOM_DURATION" ],
    "extra_effects": [ { "id": "flatlander_attack_nausea" } ]
  },
  {
    "type": "SPELL",
    "id": "flatlander_attack_nausea",
    "name": { "str": "flatlander attack nausea", "//~": "NO_I18N" },
    "description": { "str": "Makes enemy nauseous", "//~": "NO_I18N" },
    "valid_targets": [ "hostile" ],
    "effect": "attack",
    "shape": "blast",
    "message": "",
    "min_duration": 300,
    "max_duration": 1000,
    "flags": [ "SILENT", "NO_EXPLOSION_SFX", "RANDOM_DURATION" ],
    "effect_str": "nausea"
  },
  {
    "type": "SPELL",
    "id": "star_vampire_invisibility_spell",
    "name": { "str": "star vampire invisibility", "//~": "NO_I18N" },
    "description": { "str": "Makes the star vampire invisible", "//~": "NO_I18N" },
    "valid_targets": [ "self" ],
    "effect": "attack",
    "effect_str": "invisibility",
    "shape": "blast",
    "message": "",
    "min_duration": 99999999999,
    "max_duration": 99999999999,
    "flags": [ "SILENT", "NO_EXPLOSION_SFX", "RANDOM_DURATION" ]
  },
  {
    "type": "SPELL",
    "id": "sloth_attack",
    "name": { "str": "Sloth Attack", "//~": "NO_I18N" },
    "description": { "str": "Slows you.", "//~": "NO_I18N" },
    "copy-from": "base_portal",
    "effect_str": "EOC_sloth_attack"
  },
  {
    "type": "effect_on_condition",
    "id": "EOC_sloth_attack",
    "effect": [
      { "math": [ "portal_dungeon_slow_strength = max(portal_dungeon_slow_strength - 1, -75)" ] },
      { "u_add_effect": "slowed_time", "duration": [ "4 hours", "6 hours" ] }
    ]
  },
  {
    "type": "SPELL",
    "id": "spell_conjure_memories",
    "name": { "str": "Life Flashing", "//~": "NO_I18N" },
    "description": { "str": "Brings back memories.", "//~": "NO_I18N" },
    "copy-from": "base_portal",
    "max_range": 3,
    "effect_str": "EOC_conjure_memories"
  },
  {
    "type": "SPELL",
    "id": "guilt_attack",
    "name": { "str": "Guilt Attack", "//~": "NO_I18N" },
    "description": { "str": "Makes things heavier.", "//~": "NO_I18N" },
    "copy-from": "base_portal",
    "effect_str": "EOC_guilt_attack"
  },
  {
    "type": "effect_on_condition",
    "id": "EOC_guilt_attack",
    "effect": [
      { "math": [ "portal_dungeon_carry_strength = max(portal_dungeon_carry_strength - 1, -75)" ] },
      { "u_add_effect": "strengthened_gravity", "duration": [ "4 hours", "6 hours" ] }
    ]
  },
  {
    "id": "fear_paralyze",
    "type": "SPELL",
    "name": { "str": "Fear Paralyze", "//~": "NO_I18N" },
    "description": { "str": "Paralyzes you when you see the creature.", "//~": "NO_I18N" },
    "effect": "effect_on_condition",
    "effect_str": "EOC_FEAR_PARALYZE",
    "message": "",
    "shape": "blast",
    "valid_targets": [ "hostile" ],
    "flags": [ "SILENT", "NO_EXPLOSION_SFX" ],
    "min_range": 10,
    "max_range": 10
  },
  {
    "type": "effect_on_condition",
    "id": "EOC_FEAR_PARALYZE",
    "condition": { "not": { "u_has_effect": "fearparalyze" } },
    "effect": { "run_eocs": [ "EOC_FEAR_PARALYZE2" ] }
  },
  {
    "type": "effect_on_condition",
    "id": "EOC_FEAR_PARALYZE2",
    "condition": { "and": [ { "u_has_worn_with_flag": "PSYSHIELD_PARTIAL" }, { "one_in_chance": 4 } ] },
    "effect": { "u_message": "The <npc_name> probes your mind, but is rebuffed!" },
    "false_effect": { "run_eocs": [ "EOC_FEAR_PARALYZE3" ] }
  },
  {
    "type": "effect_on_condition",
    "id": "EOC_FEAR_PARALYZE3",
    "condition": { "math": [ "rand(20) > u_val('intelligence')" ] },
    "effect": [
      { "u_message": "The terrifying visage of the <npc_name> paralyzes you.", "type": "bad" },
      { "u_add_effect": "fearparalyze", "duration": 5 },
      { "turn_cost": { "math": [ "4 * u_speed() / 100" ] } }
    ],
    "false_effect": { "u_message": "You manage to avoid staring at the horrendous <npc_name>." }
  },
  {
    "id": "stare",
    "type": "SPELL",
    "name": { "str": "Stare", "//~": "NO_I18N" },
    "description": { "str": "Applies various effects when you see the creature.", "//~": "NO_I18N" },
    "effect": "effect_on_condition",
    "effect_str": "EOC_STARE",
    "message": "",
    "shape": "blast",
    "valid_targets": [ "hostile" ],
    "flags": [ "SILENT", "NO_EXPLOSION_SFX" ],
    "min_range": 150,
    "max_range": 150
  },
  {
    "type": "effect_on_condition",
    "id": "EOC_STARE",
    "//": "dimensional effects don't take against dimensionally anchored foes.",
    "condition": { "or": [ { "u_has_worn_with_flag": "DIMENSIONAL_ANCHOR" }, { "npc_has_flag": "DIMENSIONAL_ANCHOR" } ] },
    "effect": { "u_message": "You feel a strange reverberation across your body.", "type": "warning" },
    "false_effect": { "run_eocs": [ "EOC_STARE2" ] }
  },
  {
    "type": "effect_on_condition",
    "id": "EOC_STARE2",
    "condition": "player_see_npc",
    "effect": [
      { "u_message": "The <npc_name> stares at you, and you shudder.", "type": "bad" },
      { "run_eocs": [ "EOC_STARE_EFF" ] }
    ],
    "false_effect": [
      { "u_message": "You feel like you're being watched, it makes you sick.", "type": "bad" },
      { "run_eocs": [ "EOC_STARE_EFF" ] }
    ]
  },
  {
    "type": "effect_on_condition",
    "id": "EOC_STARE_EFF",
    "effect": [
      {
        "u_add_effect": "taint",
        "intensity": { "math": [ "u_effect_intensity('taint') + 1" ] },
        "duration": [ "2 m", "5 m" ]
      },
      { "run_eocs": [ "EOC_STARE_EFF2" ] },
      { "run_eocs": [ "EOC_STARE_EFF3" ] },
      { "run_eocs": [ "EOC_STARE_EFF4" ] }
    ]
  },
  {
    "type": "effect_on_condition",
    "id": "EOC_STARE_EFF2",
    "//": "in case of fire, break glass, pull u_is_avatar",
    "condition": { "and": [ { "math": [ "u_effect_intensity('taint') >= 2" ] }, { "one_in_chance": 2 } ] },
    "effect": [
      { "u_add_effect": "hallu", "duration": [ "25 m", "35 m" ] },
      { "u_spawn_monster": "", "hallucination_count": 1, "target_range": 50, "lifespan": 60 }
    ]
  },
  {
    "type": "effect_on_condition",
    "id": "EOC_STARE_EFF3",
    "condition": { "and": [ { "math": [ "u_effect_intensity('taint') >= 3" ] }, { "one_in_chance": 12 } ] },
    "effect": [
      { "u_add_effect": "blind", "duration": [ "4 m", "5 m" ] },
      { "u_message": "Your sight darkens as the visions overtake you!", "type": "bad" }
    ]
  },
  {
    "type": "effect_on_condition",
    "id": "EOC_STARE_EFF4",
    "condition": { "and": [ { "math": [ "u_effect_intensity('taint') == 4" ] }, { "one_in_chance": 12 } ] },
    "effect": [
      { "u_add_effect": "tindrift", "duration": "1 s" },
      { "u_message": "Your sight darkens as the visions overtake you!", "type": "bad" }
    ]
  },
  {
    "type": "SPELL",
    "id": "veiled_butterfly_irradiate",
    "name": { "str": "Irradiate Player", "//~": "NO_I18N" },
    "description": { "str": "Adds minor radiation to player.", "//~": "NO_I18N" },
    "flags": [ "NO_PROJECTILE", "SILENT", "NO_EXPLOSION_SFX" ],
    "effect": "effect_on_condition",
    "effect_str": "EOC_veiled_butterfly_irradiate",
    "valid_targets": [ "hostile" ],
    "base_casting_time": 200,
    "min_aoe": 1,
    "max_aoe": 1,
    "min_range": 1,
    "max_range": 5,
    "shape": "blast"
  },
  {
    "type": "effect_on_condition",
    "id": "EOC_veiled_butterfly_irradiate",
    "condition": "u_is_character",
    "effect": [
      { "u_message": "The veiled butterfly's wings move in odd ways and a strange glow envelops you!", "type": "bad" },
      { "math": [ "u_val('rad')", "+=", "20" ] }
    ]
  }
]
