{
  "$id": "blockception.minecraft.behavior.entities.minecraft.behavior.summon_entity",
  "description": "Allows the mob to attack the player by summoning other entities.",
  "title": "Summon Entity",
  "type": "object",
  "additionalProperties": false,
  "required": [],
  "properties": {
    "priority": {
      "$ref": "./types/priority.json"
    },
    "summon_choices": {
      "type": "array",
      "description": "List of spells for the mob to use to summon entities.",
      "title": "Summon Choices",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "cast_duration": {
            "type": "number",
            "description": "Time in seconds the spell casting will take.",
            "title": "Cast Duration"
          },
          "cooldown_time": {
            "type": "number",
            "default": 0,
            "description": "Time in seconds the mob has to wait before using the spell again.",
            "title": "Cooldown Time"
          },
          "do_casting": {
            "type": "boolean",
            "default": true,
            "description": "If true, the mob will do the casting animations and render spell particles.",
            "title": "Do Casting"
          },
          "filters": {
            "$ref": "../../filters/filters.json"
          },
          "max_activation_range": {
            "type": "number",
            "default": -1,
            "description": "Upper bound of the activation distance in blocks for this spell.",
            "title": "Maximum Activation Range"
          },
          "min_activation_range": {
            "type": "number",
            "default": 1,
            "description": "Lower bound of the activation distance in blocks for this spell.",
            "title": "Minimum Activation Range"
          },
          "particle_color": {
            "description": "The color of the particles for this spell.",
            "title": "Particle Color",
            "oneOf": [
              {
                "type": "integer",
                "default": 0
              },
              {
                "type": "string",
                "format": "color-hex"
              }
            ]
          },
          "sequence": {
            "type": "array",
            "description": "List of steps for the spell.",
            "title": "Sequence",
            "items": {
              "type": "object",
              "additionalProperties": false,
              "title": "Sequence",
              "properties": {
                "delay": {
                  "type": "number",
                  "default": 0,
                  "description": "Amount of time in seconds to wait before this step starts.",
                  "title": "Delay"
                },
                "delay_per_summon": {
                  "type": "number",
                  "default": 0,
                  "title": "Delay Per Summon",
                  "description": "Amount of time in seconds before each entity is summoned in this step."
                },
                "entity_lifespan": {
                  "type": "number",
                  "title": "Entity Lifespan",
                  "default": -1,
                  "description": "Amount of time in seconds that the spawned entity will be alive for. A value of -1.0 means it will remain alive for as long as it can"
                },
                "base_delay": {
                  "type": "number",
                  "default": 0,
                  "description": "Amount of time in seconds to wait before this step starts.",
                  "title": "Base Delay"
                },
                "entity_type": {
                  "type": "string",
                  "description": "The entity type of the entities we will spawn in this step.",
                  "title": "Entity Type"
                },
                "num_entities_spawned": {
                  "type": "integer",
                  "default": 1,
                  "description": "Number of entities that will be spawned in this step.",
                  "title": "Number Entities Spawned"
                },
                "shape": {
                  "type": "string",
                  "default": "line",
                  "description": "The base shape of this step. Valid values are circle and line",
                  "enum": ["line", "circle"],
                  "title": "Shape"
                },
                "size": {
                  "type": "number",
                  "default": 1,
                  "description": "The base size of the entity.",
                  "title": "Size"
                },
                "sound_event": {
                  "$ref": "../../../../general/sound_event.json",
                  "description": "The sound event to play for this step.",
                  "title": "Sound Event"
                },
                "summon_cap": {
                  "type": "integer",
                  "default": 0,
                  "description": "Maximum number of summoned entities at any given time.",
                  "title": "Summon Cap"
                },
                "summon_cap_radius": {
                  "type": "number",
                  "default": 0,
                  "description": "Maximum radius where the summon entities can spawn.",
                  "title": "Summon Cap Radius"
                },
                "target": {
                  "type": "string",
                  "default": "self",
                  "description": "The target of the spell. This is where the spell will start (line will start here, circle will be centered here)",
                  "title": "Target"
                }
              }
            }
          },
          "start_sound_event": {
            "$ref": "../../../../general/sound_event.json",
            "description": "The sound event to play when using this spell.",
            "title": "Start Sound Event"
          },
          "weight": {
            "type": "number",
            "title": "Weight",
            "default": 0,
            "description": "The weight of this spell. Controls how likely the mob is to choose this spell when casting one"
          }
        }
      }
    }
  },
  "examples": [
    {
      "summon_choices": []
    }
  ]
}
