{
  "$id": "blockception.minecraft.behavior.entities.1.13.0.minecraft.projectile",
  "description": "Allows the entity to be a thrown entity.",
  "type": "object",
  "title": "Projectile 1.13.0",
  "additionalProperties": false,

  "properties": {
    "anchor": { "type": "number", "title": "Anchor", "description": "UNDOCUMENTED", "$comment": "UNDOCUMENTED" },
    "angle_offset": {
      "type": "number",
      "default": 0,
      "description": "Determines the angle at which the projectile is thrown",
      "title": "Angle Offset"
    },
    "catch_fire": { "type": "boolean", "default": false, "description": "If true, the entity hit will be set on fire", "title": "Catch Fire" },
    "crit_particle_on_hurt": {
      "type": "boolean",
      "default": false,
      "description": "If true, the projectile will produce additional particles when a critical hit happens",
      "title": "Crit Particle On Hurt"
    },
    "destroy_on_hurt": {
      "type": "boolean",
      "default": false,
      "description": "If true, this entity will be destroyed when hit",
      "title": "Destroy On Hurt"
    },
    "filter": {
      "type": "string",
      "default": "",
      "description": "Entity Definitions defined here can't be hurt by the projectile",
      "title": "Filter"
    },
    "fire_affected_by_griefing": {
      "type": "boolean",
      "default": false,
      "description": "If true, whether the projectile causes fire is affected by the mob griefing game rule",
      "title": "Fire Affected By Griefing"
    },
    "gravity": {
      "type": "number",
      "default": 0.05,
      "description": "The gravity applied to this entity when thrown. The higher the value, the faster the entity falls",
      "title": "Gravity"
    },
    "hit_sound": { "type": "string", "default": "", "description": "The sound that plays when the projectile hits something", "title": "Hit Sound" },
    "homing": { "type": "boolean", "default": false, "description": "If true, the projectile homes in to the nearest entity", "title": "Homing" },
    "inertia": {
      "type": "number",
      "default": 0.99,
      "description": "The fraction of the projectile's speed maintained every frame while traveling in air",
      "title": "Inertia"
    },
    "is_dangerous": {
      "type": "boolean",
      "default": false,
      "description": "If true, the projectile will be treated as dangerous to the players",
      "title": "Is Dangerous"
    },
    "knockback": {
      "type": "boolean",
      "default": true,
      "description": "If true, the projectile will knock back the entity it hits",
      "title": "Knockback"
    },
    "lightning": { "type": "boolean", "default": false, "description": "If true, the entity hit will be struck by lightning", "title": "Lightning" },
    "liquid_inertia": {
      "type": "number",
      "default": 0.6,
      "description": "The fraction of the projectile's speed maintained every frame while traveling in water",
      "title": "Liquid Inertia"
    },
    "multiple_targets": {
      "type": "boolean",
      "default": true,
      "description": "If true, the projectile can hit multiple entities per flight",
      "title": "Multiple Targets"
    },
    "offset": {
      "type": "array",
      "default": [0.0, 0.5, 0.0],
      "description": "The offset from the entity's anchor where the projectile will spawn",
      "title": "Offset",
      "items": [
        { "type": "number", "title": "X" },
        { "type": "number", "title": "Y" },
        { "type": "number", "title": "Z" }
      ]
    },
    "on_fire_time": {
      "type": "number",
      "default": 5,
      "description": "Time in seconds that the entity hit will be on fire for",
      "title": "On Fire Time"
    },
    "on_hit": {
      "additionalProperties": false,
      "type": "object",
      "title": "On Hit",
      "description": "UNDOCUMENTED",
      "$comment": "UNDOCUMENTED",
      "properties": {
        "arrow_effect": {
          "description": "UNDOCUMENTED",
          "$comment": "UNDOCUMENTED",
          "title": "Arrow Effect",
          "type": "object",
          "additionalProperties": false
        },
        "impact_damage": {
          "additionalProperties": false,
          "type": "object",
          "title": "Impact Damage",
          "description": "UNDOCUMENTED",
          "$comment": "UNDOCUMENTED",
          "properties": {
            "damage": {
              "oneOf": [{ "type": "number" }, { "type": "array", "items": [{ "type": "integer" }, { "type": "integer" }] }],
              "title": "Damage",
              "description": "UNDOCUMENTED",
              "$comment": "UNDOCUMENTED"
            },
            "destroy_on_hit": {
              "type": "boolean",
              "title": "Destroy On Hit",
              "description": "UNDOCUMENTED",
              "$comment": "UNDOCUMENTED"
            },
            "knockback": {
              "type": "boolean",
              "title": "Knockback",
              "description": "UNDOCUMENTED",
              "$comment": "UNDOCUMENTED"
            },
            "max_critical_damage": {
              "type": "integer",
              "title": "Maximum Critical Damage",
              "description": "UNDOCUMENTED",
              "$comment": "UNDOCUMENTED"
            },
            "min_critical_damage": {
              "type": "integer",
              "title": "Minimum Critical Damage",
              "description": "UNDOCUMENTED",
              "$comment": "UNDOCUMENTED"
            },
            "power_multiplier": {
              "type": "number",
              "title": "Power Multiplier",
              "description": "UNDOCUMENTED",
              "$comment": "UNDOCUMENTED"
            },
            "semi_random_diff_damage": {
              "type": "boolean",
              "title": "Semi Random Diff Damage",
              "description": "UNDOCUMENTED",
              "$comment": "UNDOCUMENTED"
            }
          }
        },
        "stick_in_ground": {
          "additionalProperties": false,
          "title": "Stick In Ground",
          "description": "UNDOCUMENTED",
          "$comment": "UNDOCUMENTED",
          "type": "object",
          "properties": { "shake_time": { "title": "Shake Time", "description": "UNDOCUMENTED", "$comment": "UNDOCUMENTED", "type": "number" } }
        }
      }
    },
    "particle": { "type": "string", "default": "iconcrack", "description": "Particle to use upon collision", "title": "Particle" },
    "potion_effect": {
      "type": "integer",
      "default": -1,
      "description": "Defines the effect the arrow will apply to the entity it hits",
      "title": "Potion Effect"
    },
    "power": { "type": "number", "default": 1.3, "description": "Determines the velocity of the projectile", "title": "Power" },
    "reflect_on_hurt": {
      "type": "boolean",
      "default": false,
      "description": "If true, this entity will be reflected back when hit",
      "title": "Reflect On Hurt"
    },
    "semi_random_diff_damage": {
      "type": "boolean",
      "default": false,
      "description": "If true, damage will be randomized based on damage and speed",
      "title": "Semi Random Diff Damage"
    },
    "shoot_sound": { "type": "string", "default": "", "description": "The sound that plays when the projectile is shot", "title": "Shoot Sound" },
    "shoot_target": {
      "type": "boolean",
      "default": true,
      "description": "If true, the projectile will be shot towards the target of the entity firing it",
      "title": "Shoot Target"
    },
    "should_bounce": { "type": "boolean", "default": false, "description": "If true, the projectile will bounce upon hit", "title": "Should Bounce" },
    "splash_potion": {
      "type": "boolean",
      "default": false,
      "description": "If true, the projectile will be treated like a splash potion",
      "title": "Splash Potion"
    },
    "splash_range": { "type": "number", "default": 4, "description": "Radius in blocks of the `splash` effect", "title": "Splash Range" },
    "uncertainty_base": {
      "type": "number",
      "default": 0,
      "description": "The base accuracy. Accuracy is determined by the formula uncertaintyBase - difficultyLevel * uncertaintyMultiplier",
      "title": "Uncertainty Base"
    },
    "uncertainty_multiplier": {
      "type": "number",
      "default": 0,
      "description": "Determines how much difficulty affects accuracy. Accuracy is determined by the formula uncertaintyBase - difficultyLevel * uncertaintyMultiplier",
      "title": "Uncertainty Multiplier"
    }
  }
}
