{
  "format_version": "1.26.20",
  "minecraft:entity": {
    "description": {
      "identifier": "fo:foreboder",
      "is_spawnable": false,
      "is_summonable": true,
      "is_experimental": false
    },
    "components": {
      "minecraft:type_family": {
        "family": [
          "mob",
          "fo_foreboder",
          "fo_tracked"
        ]
      },
      "minecraft:behavior.melee_attack": {
        "priority": 4,
        "melee_fov": 90,
        "random_stop_interval": 0,
        "reach_multiplier": 2,
        "speed_multiplier": 1.1,
        "require_complete_path": false,
        "track_target": true,
        "cooldown_time": 0.7
      },
      "minecraft:behavior.open_door": {
        "priority": 7,
        "close_door_after": false
      },
      "minecraft:behavior.look_at_player": {
        "priority": 8,
        "look_distance": 8,
        "probability": 0.2
      },
      "minecraft:damage_sensor": {
        "triggers": [
          {
            "cause": "fall",
            "deals_damage": "no"
          },
          {
            "cause": "lightning",
            "deals_damage": "no"
          },
          {
            "cause": "projectile",
            "deals_damage": "yes",
            "damage_multiplier": 0.10
          },
          {
            "cause": "entity_attack",
            "deals_damage": "yes",
            "damage_multiplier": 0.75
          },
          {
            "cause": "fire",
            "deals_damage": "yes",
            "damage_multiplier": 3
          },
          {
            "cause": "fire_tick",
            "deals_damage": "yes",
            "damage_multiplier": 3
          }
        ]
      },
      "minecraft:navigation.generic": {
        "is_amphibious": true,
        "can_path_over_water": false,
        "can_swim": true,
        "can_walk": true,
        "can_break_doors": false,
        "can_open_doors": true,
        "avoid_portals": true,
        "avoid_damage_blocks": true
      },
      "minecraft:movement": {
        "value": 0.35
      },
      "minecraft:underwater_movement": {
        "value": 0.08
      },
      "minecraft:movement.basic": {},
      "minecraft:preferred_path": {
        "default_block_cost": 1.5,
        "jump_cost": 1,
        "max_fall_blocks": 12,
        "preferred_path_blocks": [
          {
            "cost": 0,
            "blocks": [
              "grass_path",
              "cobblestone",
              "stone",
              "granite",
              "polished_granite",
              "diorite",
              "polished_diorite",
              "andesite",
              "polished_andesite",
              "stone_bricks",
              "mossy_stone_bricks",
              "cracked_stone_bricks",
              "chiseled_stone_bricks",
              "sandstone",
              "cut_sandstone",
              "chiseled_sandstone",
              "smooth_sandstone",
              "mossy_cobblestone",
              "smooth_stone_slab",
              "sandstone_slab",
              "cobblestone_slab",
              "brick_slab",
              "stone_brick_slab",
              "quartz_slab",
              "nether_brick_slab",
              "red_sandstone_slab",
              "purpur_slab",
              "prismarine_slab",
              "dark_prismarine_slab",
              "prismarine_brick_slab",
              "mossy_cobblestone_slab",
              "smooth_sandstone_slab",
              "red_nether_brick_slab",
              "end_stone_brick_slab",
              "smooth_red_sandstone_slab",
              "polished_andesite_slab",
              "andesite_slab",
              "diorite_slab",
              "polished_diorite_slab",
              "granite_slab",
              "polished_granite_slab",
              "mossy_stone_brick_slab",
              "smooth_quartz_slab",
              "normal_stone_slab",
              "cut_sandstone_slab",
              "cut_red_sandstone_slab",
              "smooth_stone_double_slab",
              "sandstone_double_slab",
              "cobblestone_double_slab",
              "brick_double_slab",
              "stone_brick_double_slab",
              "quartz_double_slab",
              "nether_brick_double_slab",
              "red_sandstone_double_slab",
              "purpur_double_slab",
              "prismarine_double_slab",
              "dark_prismarine_double_slab",
              "prismarine_brick_double_slab",
              "mossy_cobblestone_double_slab",
              "smooth_sandstone_double_slab",
              "red_nether_brick_double_slab",
              "end_stone_brick_double_slab",
              "smooth_red_sandstone_double_slab",
              "polished_andesite_double_slab",
              "andesite_double_slab",
              "diorite_double_slab",
              "polished_diorite_double_slab",
              "granite_double_slab",
              "polished_granite_double_slab",
              "mossy_stone_brick_double_slab",
              "smooth_quartz_double_slab",
              "normal_stone_double_slab",
              "cut_sandstone_double_slab",
              "cut_red_sandstone_double_slab",
              "oak_slab",
              "spruce_slab",
              "birch_slab",
              "jungle_slab",
              "acacia_slab",
              "dark_oak_slab",
              "oak_double_slab",
              "spruce_double_slab",
              "birch_double_slab",
              "jungle_double_slab",
              "acacia_double_slab",
              "dark_oak_double_slab",
              "oak_planks",
              "spruce_planks",
              "birch_planks",
              "jungle_planks",
              "acacia_planks",
              "dark_oak_planks",
              "brick_block",
              "nether_brick",
              "red_nether_brick",
              "end_bricks",
              "red_sandstone",
              "cut_red_sandstone",
              "chiseled_red_sandstone",
              "smooth_red_sandstone",
              "white_stained_glass",
              "orange_stained_glass",
              "magenta_stained_glass",
              "light_blue_stained_glass",
              "yellow_stained_glass",
              "lime_stained_glass",
              "pink_stained_glass",
              "gray_stained_glass",
              "light_gray_stained_glass",
              "cyan_stained_glass",
              "purple_stained_glass",
              "blue_stained_glass",
              "brown_stained_glass",
              "green_stained_glass",
              "red_stained_glass",
              "black_stained_glass",
              "glass",
              "glowstone",
              "prismarine",
              "emerald_block",
              "diamond_block",
              "lapis_block",
              "gold_block",
              "redstone_block",
              "purple_glazed_terracotta",
              "white_glazed_terracotta",
              "orange_glazed_terracotta",
              "magenta_glazed_terracotta",
              "light_blue_glazed_terracotta",
              "yellow_glazed_terracotta",
              "lime_glazed_terracotta",
              "pink_glazed_terracotta",
              "gray_glazed_terracotta",
              "silver_glazed_terracotta",
              "cyan_glazed_terracotta",
              "blue_glazed_terracotta",
              "brown_glazed_terracotta",
              "green_glazed_terracotta",
              "red_glazed_terracotta",
              "black_glazed_terracotta"
            ]
          },
          {
            "cost": 50,
            "blocks": [
              "bed",
              "lectern",
              "composter",
              "grindstone",
              "blast_furnace",
              "smoker",
              "fletching_table",
              "cartography_table",
              "brewing_stand",
              "smithing_table",
              "cauldron",
              "barrel",
              "loom",
              "stonecutter"
            ]
          }
        ]
      },
      "minecraft:breathable": {
        "total_supply": 180,
        "suffocate_time": -1,
        "inhale_time": 3.75,
        "generates_bubbles": false
      },
      "minecraft:scale": {
        "value": 0.99
      },
      "minecraft:health": {
        "value": 20,
        "max": 20
      },
      "minecraft:hurt_on_condition": {
        "damage_conditions": [
          {
            "filters": {
              "test": "in_lava",
              "subject": "self",
              "operator": "==",
              "value": true
            },
            "cause": "lava",
            "damage_per_tick": 4
          }
        ]
      },
      "minecraft:attack": {
        "damage": 1
      },
      "minecraft:follow_range": {
        "value": 98,
        "max": 98
      },
      "minecraft:annotation.open_door": {},
      "minecraft:dimension_bound": {},
      "minecraft:is_hidden_when_invisible": {},
      "minecraft:physics": {
        "has_gravity": true,
        "has_collision": true,
        "push_towards_closest_space": true
      },
      "minecraft:pushable_by_entity": {},
      "minecraft:pushable_by_block": {},
      "minecraft:push_through": {
        "value": 1
      },
      "minecraft:can_climb": {},
      "minecraft:block_climber": {},
      "minecraft:nameable": {
        "allow_name_tag_renaming": false,
        "always_show": true,
        "name_actions": [
          {
            "name_filter": "Kolveman",
            "on_named": {
              "event": "foreboding:on_kolveman",
              "target": "self"
            }
          }
        ]
      },
      "minecraft:jump.static": {},
      "minecraft:despawn": {
        "despawn_from_distance": {
          "min_distance": 50,
          "max_distance": 98
        }
      },
      "minecraft:loot": {
        "table": "loot_tables/fo_foreboder.json"
      },
      "minecraft:behavior.equip_item": {
        "priority": 29
      },
      "minecraft:equip_item": {
        "can_wear_armor": true
      },
      "minecraft:equipment": {
        "table": "loot_tables/fo_foreboderGear.json",
        "slot_drop_chance": [
          {
            "slot": "slot.weapon.mainhand",
            "drop_chance": 0.0025
          },
          {
            "slot": "slot.weapon.offhand",
            "drop_chance": 0.0025
          },
          {
            "slot": "slot.armor.head",
            "drop_chance": 0.0025
          },
          {
            "slot": "slot.armor.chest",
            "drop_chance": 0.0025
          },
          {
            "slot": "slot.armor.legs",
            "drop_chance": 0.0025
          },
          {
            "slot": "slot.armor.feet",
            "drop_chance": 0.0025
          }
        ]
      },
      "minecraft:collision_box": {
        "height": 1.8,
        "width": 0.6
      },
      "minecraft:timer": {
        "time": [
          120,
          180
        ],
        "looping": true,
        "time_down_event": {
          "event": "foreboding:retreat",
          "target": "self"
        }
      },
      "minecraft:behavior.timer_flag_1": {
        "cooldown_range": {
          "min": 60,
          "max": 240
        },
        "on_end": {
          "event": "foreboding:range_attack",
          "target": "self"
        }
      },
      "minecraft:behavior.timer_flag_2": {
        "cooldown_range": {
          "min": 10,
          "max": 60
        },
        "on_end": {
          "event": "foreboding:jump",
          "target": "self"
        }
      }
    },
    "component_groups": {
      "foreboding:is_aggressive": {
        "minecraft:behavior.hurt_by_target": {
          "priority": 2
        },
        "minecraft:behavior.nearest_attackable_target": {
          "priority": 3,
          "must_see": false,
          "reselect_targets": true,
          "target_search_height": 98,
          "within_radius": 98,
          "entity_types": [
            {
              "filters": {
                "any_of": [
                  {
                    "test": "is_family",
                    "subject": "other",
                    "value": "player"
                  },
                  {
                    "test": "is_family",
                    "subject": "other",
                    "value": "snowgolem"
                  },
                  {
                    "test": "is_family",
                    "subject": "other",
                    "value": "irongolem"
                  }
                ]
              },
              "max_dist": 98
            }
          ]
        },
        "minecraft:break_blocks": {
          "breakable_blocks": [
            "iron_door",
            "iron_trapdoor",
            "fence_gate",
            "spruce_fence_gate",
            "birch_fence_gate",
            "jungle_fence_gate",
            "acacia_fence_gate",
            "dark_oak_fence_gate",
            "mangrove_fence_gate",
            "cherry_fence_gate",
            "pale_oak_fence_gate",
            "bamboo_fence_gate",
            "crimson_fence_gate",
            "warped_fence_gate",
            "trapdoor",
            "spruce_trapdoor",
            "birch_trapdoor",
            "jungle_trapdoor",
            "acacia_trapdoor",
            "dark_oak_trapdoor",
            "mangrove_trapdoor",
            "cherry_trapdoor",
            "pale_oak_trapdoor",
            "bamboo_trapdoor",
            "crimson_trapdoor",
            "warped_trapdoor",
            "copper_trapdoor",
            "exposed_copper_trapdoor",
            "weathered_copper_trapdoor",
            "oxidized_copper_trapdoor",
            "waxed_copper_trapdoor",
            "waxed_exposed_copper_trapdoor",
            "waxed_weathered_copper_trapdoor",
            "waxed_oxidized_copper_trapdoor"
          ]
        },
        "minecraft:environment_sensor": {
          "triggers": [
            {
              "event": "foreboding:start_in_boat",
              "target": "self",
              "filters": [
                {
                  "test": "is_riding",
                  "operator": "==",
                  "value": true
                }
              ]
            },
            {
              "event": "foreboding:retreat",
              "target": "self",
              "filters": [
                {
                  "all_of": [
                    {
                      "test": "distance_to_nearest_player",
                      "operator": ">=",
                      "value": 48
                    }
                  ]
                }
              ]
            },
            {
              "event": "foreboding:on_weak",
              "target": "self",
              "filters": [
                {
                  "test": "actor_health",
                  "subject": "self",
                  "operator": "<=",
                  "value": 5
                }
              ]
            }
          ]
        }
      },
      "foreboding:is_weak": {
        "minecraft:behavior.avoid_mob_type": {
          "priority": 1,
          "max_dist": 18,
          "max_flee": 16,
          "walk_speed_multiplier": 1.2,
          "sprint_speed_multiplier": 1.2,
          "ignore_visibility": true,
          "remove_target": true,
          "on_escape_event": {
            "event": "foreboding:retreat",
            "target": "self"
          },
          "entity_types": [
            {
              "filters": {
                "any_of": [
                  {
                    "test": "is_family",
                    "subject": "other",
                    "value": "player"
                  },
                  {
                    "test": "is_family",
                    "subject": "other",
                    "value": "snowgolem"
                  },
                  {
                    "test": "is_family",
                    "subject": "other",
                    "value": "irongolem"
                  }
                ]
              }
            }
          ]
        },
        "minecraft:environment_sensor": {
          "triggers": [
            {
              "event": "foreboding:start_in_boat",
              "target": "self",
              "filters": [
                {
                  "test": "is_riding",
                  "operator": "==",
                  "value": true
                }
              ]
            },
            {
              "event": "foreboding:retreat",
              "target": "self",
              "filters": [
                {
                  "all_of": [
                    {
                      "test": "distance_to_nearest_player",
                      "operator": ">=",
                      "value": 12
                    }
                  ]
                }
              ]
            }
          ]
        }
      },
      "foreboding:is_kolveman": {
        "minecraft:loot": {
          "table": "loot_tables/fo_foreboderK.json"
        }
      }
    },
    "events": {
      "minecraft:entity_spawned": {
        "add": {
          "component_groups": [
            "foreboding:is_aggressive"
          ]
        }
      },
      "foreboding:start_in_boat": {
        "queue_command": {
          "target": "self",
          "command": [
            "kill @n[type=boat]"
          ]
        }
      },
      "foreboding:retreat": {
        "queue_command": {
          "target": "self",
          "command": [
            "particle fo:foreboderC2 ~ ~ ~",
            "playsound foreboder.portal @a[r=64] ~ ~ ~ 2 1.3",
            "foreboding:entity.remove @s"
          ]
        }
      },
      "foreboding:range_attack": {
        "queue_command": {
          "target": "self",
          "command": [
            "foreboding:entity.rangeattack 16 35"
          ]
        }
      },
      "foreboding:jump": {
        "queue_command": {
          "target": "self",
          "command": [
            "foreboding:entity.jumptotarget @s @p 8"
          ]
        }
      },
      "foreboding:on_weak": {
        "add": {
          "component_groups": [
            "foreboding:is_weak"
          ]
        },
        "remove": {
          "component_groups": [
            "foreboding:is_aggressive"
          ]
        }
      },
      "foreboding:on_kolveman": {
        "add": {
          "component_groups": [
            "foreboding:is_kolveman"
          ]
        }
      }
    }
  }
}