[
  {
    "//": "This spell exists in json as a template for contributors to see the possible values of the spell",
    "id": "example_template",
    "type": "SPELL",
    "name": "Template Spell",
    "description": "This is a template to show off all the available values",
    "message": "As you cast %s, your ears pops!",
    "//2": "The 'message' will replace 'You cast %s!' message when you cast this spell",
    "valid_targets": [ "hostile", "ground", "self", "ally" ],
    "//3": "effect is only limited by what is coded.",
    "effect": "none",
    "shape": "blast",
    "//4": "base_casting_time is in moves",
    "base_casting_time": 100,
    "casting_time_increment": 1,
    "final_casting_time": 110,
    "base_energy_cost": 10,
    "//5": "Available energy sourcese are: MANA, STAMINA, HP, BIONIC, NONE",
    "energy_source": "MANA",
    "difficulty": 12,
    "max_level": 10,
    "min_damage": 0,
    "max_damage": 100,
    "damage_increment": 2.5,
    "min_aoe": 0,
    "max_aoe": 5,
    "aoe_increment": 0.1,
    "min_range": 1,
    "max_range": 10,
    "range_increment": 2,
    "min_dot": 0,
    "max_dot": 2,
    "dot_increment": 0.1,
    "//6": "duration is in moves",
    "min_duration": 0,
    "max_duration": 1000,
    "duration_increment": 4,
    "min_pierce": 0,
    "max_pierce": 1,
    "pierce_increment": 0.1,
    "//7": "Learn spells by adding map of 'spell_id': 'level' ",
    "learn_spells": { "create_atomic_light": 1, "megablast": 2 }
  },
  {
    "type": "SPELL",
    "id": "debug_push_basic",
    "name": "debug push no aoe",
    "description": "pushes all types of objects with an aoe of 0",
    "valid_targets": [ "ally", "self", "hostile", "field", "item", "ground" ],
    "effect": "directed_push",
    "shape": "blast",
    "min_damage": 0,
    "max_damage": 10,
    "damage_increment": 1,
    "min_range": 20,
    "max_range": 20,
    "max_level": 10
  },
  {
    "type": "SPELL",
    "id": "debug_push_blast",
    "name": "debug push blast",
    "description": "pushes all types of objects with an aoe of 3 in a blast pattern",
    "valid_targets": [ "ally", "self", "hostile", "field", "item", "ground" ],
    "effect": "directed_push",
    "shape": "blast",
    "min_aoe": 3,
    "max_aoe": 3,
    "min_damage": 0,
    "max_damage": 10,
    "damage_increment": 1,
    "min_range": 20,
    "max_range": 20,
    "max_level": 10
  },
  {
    "id": "spawn_debug_monster",
    "type": "SPELL",
    "name": "Spawn Debug Monsters",
    "description": "Set level to number of monsters spawned.",
    "message": "Debug spell %s cast.",
    "valid_targets": [ "ground" ],
    "effect": "summon",
    "shape": "blast",
    "effect_str": "debug_mon",
    "base_casting_time": 100,
    "max_level": 30,
    "min_aoe": 10,
    "max_aoe": 10,
    "min_damage": 1,
    "max_damage": 30,
    "damage_increment": 1,
    "min_range": 20,
    "max_range": 20,
    "min_duration": 1000,
    "max_duration": 1000,
    "energy_source": "NONE"
  },
  {
    "id": "debug_stamina",
    "type": "SPELL",
    "name": "Debug Stamina Spell",
    "description": "Uses a little stamina",
    "message": "Debug spell [ %s ] has no effect.  Debug warning is expected.",
    "valid_targets": [ "self" ],
    "effect": "none",
    "shape": "blast",
    "min_range": 1,
    "max_range": 1,
    "base_casting_time": 100,
    "base_energy_cost": 100,
    "energy_source": "STAMINA"
  },
  {
    "id": "debug_fatigue",
    "type": "SPELL",
    "name": "Debug Fatigue Spell",
    "description": "Uses a little fatigue",
    "message": "Debug spell %s cast.",
    "valid_targets": [ "self" ],
    "effect": "none",
    "shape": "blast",
    "min_range": 1,
    "max_range": 1,
    "base_casting_time": 100,
    "base_energy_cost": 100,
    "energy_source": "FATIGUE"
  },
  {
    "id": "debug_polymorph",
    "type": "SPELL",
    "name": "Debug polymorph",
    "description": "Well you wanted to lose weight, right?",
    "valid_targets": [ "hostile", "ally" ],
    "flags": [ "NO_LEGS", "LOUD", "SOMATIC" ],
    "effect": "targeted_polymorph",
    "shape": "blast",
    "energy_source": "MANA",
    "difficulty": 1,
    "min_damage": 9999,
    "max_damage": 9999,
    "max_level": 1,
    "base_casting_time": 10,
    "base_energy_cost": 1,
    "final_energy_cost": 1,
    "min_range": 30,
    "max_range": 30
  },
  {
    "id": "debug_hp",
    "type": "SPELL",
    "name": "Debug HP Spell",
    "description": "Uses a little HP",
    "message": "Debug spell %s cast.",
    "valid_targets": [ "self" ],
    "effect": "none",
    "shape": "blast",
    "min_range": 1,
    "max_range": 1,
    "base_casting_time": 100,
    "base_energy_cost": 30,
    "energy_source": "HP"
  },
  {
    "id": "debug_bionic",
    "type": "SPELL",
    "name": "Debug Bionic Spell",
    "description": "Uses a little Bionic Power",
    "message": "Debug spell %s cast.",
    "valid_targets": [ "self" ],
    "effect": "none",
    "shape": "blast",
    "min_range": 1,
    "max_range": 1,
    "base_casting_time": 100,
    "base_energy_cost": 150,
    "energy_source": "BIONIC"
  },
  {
    "id": "debug_effect",
    "type": "SPELL",
    "name": "Debug effect spell",
    "description": "Adds an effect to the target",
    "message": "Debug spell %s cast.",
    "valid_targets": [ "self", "hostile", "ally" ],
    "effect": "attack",
    "effect_str": "dazed",
    "flags": [ "NO_PROJECTILE" ],
    "shape": "blast",
    "min_range": 12,
    "max_range": 12,
    "base_casting_time": 100,
    "base_energy_cost": 150,
    "min_duration": 500,
    "max_duration": 500,
    "energy_source": "MANA"
  },
  {
    "id": "test_area_pull_all",
    "type": "SPELL",
    "name": "Test Area Pull",
    "description": "Pulls all objects inside.",
    "message": "Debug spell %s cast.",
    "effect": "area_pull",
    "shape": "blast",
    "valid_targets": [ "self", "ally", "hostile", "ground", "item", "field" ],
    "min_range": 5,
    "max_range": 15,
    "range_increment": 2.5,
    "min_aoe": 3,
    "max_aoe": 10,
    "aoe_increment": 1.0,
    "max_level": 20,
    "difficulty": 1,
    "base_casting_time": 100,
    "energy_source": "MANA",
    "base_energy_cost": 100
  },
  {
    "id": "test_area_pull_field",
    "type": "SPELL",
    "name": "Test Area Pull (Field)",
    "description": "Pulls field contents tiles inside.",
    "message": "Debug spell %s cast.",
    "effect": "area_pull",
    "shape": "blast",
    "valid_targets": [ "ground", "field" ],
    "min_range": 5,
    "max_range": 15,
    "range_increment": 2.5,
    "min_aoe": 3,
    "max_aoe": 10,
    "aoe_increment": 1.0,
    "max_level": 20,
    "difficulty": 1,
    "base_casting_time": 100,
    "energy_source": "MANA",
    "base_energy_cost": 100
  },
  {
    "id": "test_area_push",
    "type": "SPELL",
    "name": "Test Area Push",
    "description": "Pushes all objects outside.",
    "message": "Debug spell %s cast.",
    "effect": "area_push",
    "shape": "blast",
    "valid_targets": [ "ground", "item" ],
    "min_range": 5,
    "max_range": 15,
    "range_increment": 2.5,
    "min_aoe": 3,
    "max_aoe": 10,
    "aoe_increment": 1.0,
    "max_level": 20,
    "difficulty": 1,
    "base_casting_time": 100,
    "energy_source": "MANA",
    "base_energy_cost": 100
  },
  {
    "id": "debug_full_protection",
    "type": "SPELL",
    "name": "Debug Full Protection",
    "description": "You can not be harmed by anything.",
    "message": "You are invulnerable, nothing can harm you!",
    "valid_targets": [ "self" ],
    "effect": "attack",
    "shape": "blast",
    "effect_str": "debug_full_protection",
    "min_range": 1,
    "max_range": 1,
    "base_casting_time": 100,
    "base_energy_cost": 100,
    "energy_source": "MANA",
    "min_duration": 100000,
    "max_duration": 100000
  },
  {
    "id": "debug_fall_protection",
    "type": "SPELL",
    "name": "Debug Feather Falling",
    "description": "You  are light as a feather and fall like.",
    "message": "You eat a feather!",
    "valid_targets": [ "self" ],
    "effect": "attack",
    "effect_str": "debug_feather_fall",
    "shape": "blast",
    "min_range": 1,
    "max_range": 1,
    "base_casting_time": 100,
    "base_energy_cost": 100,
    "energy_source": "MANA",
    "min_duration": 400,
    "max_duration": 400
  }
]
