{ "format_version": "1.13.0", "minecraft:entity": { "description": { "identifier": "minecraft:vindicator", "is_spawnable": true, "is_summonable": true, "is_experimental": false }, "component_groups": { "minecraft:celebrate": { "minecraft:behavior.celebrate": { "priority": 5, "celebration_sound": "celebrate", "sound_interval": { "range_min": 2.0, "range_max": 7.0 }, "jump_interval": { "range_min": 1.0, "range_max": 3.5 }, "duration": 30.0, "on_celebration_end_event": { "event": "minecraft:stop_celebrating", "target": "self" } } }, "minecraft:vindicator_aggro": { "minecraft:angry": { "duration": -1, "broadcast_anger": false, "calm_event": { "event": "minecraft:stop_aggro", "target": "self" } } }, "minecraft:vindicator_johnny": { "minecraft:behavior.nearest_attackable_target": { "priority": 2, "within_radius": 12, "must_see": true, "must_see_forget_duration": 40.0, "entity_types": [ { "filters": { "all_of": [ { "test": "is_family", "subject": "other", "operator": "!=", "value": "illager" } ] }, "max_dist": 12 } ] } }, "minecraft:default_targeting": { "minecraft:behavior.nearest_attackable_target": { "priority": 2, "within_radius": 12, "must_see": true, "must_see_forget_duration": 40.0, "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" }, { "test": "is_family", "subject": "other", "value": "wandering_trader" } ] }, "max_dist": 12 }, { "filters": { "all_of": [ { "test": "is_family", "subject": "other", "value": "villager" }, { "test": "has_component", "subject": "other", "operator": "!=", "value": "minecraft:is_baby" } ] }, "max_dist": 12 } ] } }, "minecraft:raid_configuration": { "minecraft:dweller": { "dwelling_type": "village", "dweller_role": "hostile", "update_interval_base": 60, "update_interval_variant": 40, "can_find_poi": false, "can_migrate": false, "first_founding_reward": 0 }, "minecraft:behavior.move_to_village": { "priority": 4, "speed_multiplier": 1.0, "goal_radius": 2.0 }, "minecraft:loot": { "table": "loot_tables/entities/vindicator_raid.json" }, "minecraft:navigation.walk": { "can_path_over_water": true, "can_pass_doors": true, "can_break_doors": true }, "minecraft:annotation.break_door": { "break_time": 30, "min_difficulty": "normal" }, "minecraft:ambient_sound_interval": { "value": 2.0, "range": 4.0, "event_name": "ambient.in.raid" } }, "minecraft:illager_squad_captain": { "minecraft:is_illager_captain": { }, "minecraft:variant": { "value": 1 }, "minecraft:equipment": { "table": "loot_tables/entities/vindicator_captain_equipment.json", "slot_drop_chance": [ { "slot": "slot.armor.chest", "drop_chance": 1.0 } ] }, "minecraft:damage_sensor": { "triggers": { "on_damage": { "filters": { "all_of": [ { "test": "has_damage", "value": "fatal" }, { "test": "is_family", "subject": "other", "value": "player" } ] }, "event": "minecraft:gain_bad_omen", "target": "other" } } } }, "minecraft:patrol_captain": { "minecraft:is_illager_captain": { }, "minecraft:variant": { "value": 1 }, "minecraft:equipment": { "table": "loot_tables/entities/vindicator_captain_equipment.json", "slot_drop_chance": [ { "slot": "slot.armor.chest", "drop_chance": 1.0 } ] }, "minecraft:damage_sensor": { "triggers": { "on_damage": { "filters": { "all_of": [ { "test": "has_damage", "value": "fatal" }, { "test": "is_family", "subject": "other", "value": "player" } ] }, "event": "minecraft:gain_bad_omen", "target": "other" } } }, "minecraft:behavior.move_to_random_block": { "priority": 5, "speed_multiplier": 0.55, "within_radius": 8, "block_distance": 512 } }, "minecraft:patrol_follower": { "minecraft:behavior.follow_target_captain": { "priority": 5, "speed_multiplier": 0.8, "within_radius": 64, "follow_distance": 5 } } }, "components": { "minecraft:experience_reward": { "on_death": "query.last_hit_by_player ? (query.is_baby ? 12 : 5) + (Math.die_roll(query.equipment_count,1,3)) : 0" }, "minecraft:nameable": { "default_trigger": { "event": "minecraft:stop_johnny", "target": "self" }, "name_actions": [ { "name_filter": "Johnny", "on_named": { "event": "minecraft:start_johnny", "target": "self" } } ] }, // vindicator Components "minecraft:type_family": { "family": [ "vindicator", "monster", "illager", "mob" ] }, "minecraft:variant": { "value": 0 }, "minecraft:breathable": { "total_supply": 15, "suffocate_time": 0 }, "minecraft:collision_box": { "width": 0.6, "height": 1.9 }, "minecraft:health": { "value": 24, "max": 24 }, "minecraft:hurt_on_condition": { "damage_conditions": [ { "filters": { "test": "in_lava", "subject": "self", "operator": "==", "value": true }, "cause": "lava", "damage_per_tick": 4 } ] }, "minecraft:attack": { "damage": 8 }, "minecraft:movement": { "value": 0.35 }, "minecraft:navigation.walk": { "can_path_over_water": true }, "minecraft:movement.basic": { }, "minecraft:jump.static": { }, "minecraft:follow_range": { "value": 64 }, "minecraft:loot": { "table": "loot_tables/entities/vindication_illager.json" }, "minecraft:equipment": { "table": "loot_tables/entities/vindicator_gear.json" }, // vindicator Behaviors "minecraft:behavior.float": { "priority": 0 }, "minecraft:behavior.melee_attack": { "priority": 3, "speed_multiplier": 1, "track_target": false }, "minecraft:behavior.random_stroll": { "priority": 9, "speed_multiplier": 1 }, "minecraft:behavior.look_at_player": { "priority": 10, "look_distance": 8, "probability": 0.02 }, "minecraft:behavior.hurt_by_target": { "priority": 1 }, "minecraft:on_target_acquired": { "event": "minecraft:become_aggro", "target": "self" }, "minecraft:on_target_escape": { "event": "minecraft:stop_aggro", "target": "self" }, "minecraft:physics": { }, "minecraft:pushable": { "is_pushable": true, "is_pushable_by_piston": true } }, "events": { "minecraft:entity_spawned": { "add": { "component_groups": [ "minecraft:default_targeting" ] } }, "minecraft:spawn_as_patrol_follower": { "add": { "component_groups": [ "minecraft:default_targeting", "minecraft:patrol_follower" ] } }, "minecraft:become_aggro": { "add": { "component_groups": [ "minecraft:vindicator_aggro" ] } }, "minecraft:stop_aggro": { "remove": { "component_groups": [ "minecraft:vindicator_aggro" ] } }, "minecraft:start_johnny": { "add": { "component_groups": [ "minecraft:vindicator_johnny" ] } }, "minecraft:stop_johnny": { "remove": { "component_groups": [ "minecraft:vindicator_johnny" ] }, "add": { "component_groups": [ "minecraft:default_targeting" ] } }, "minecraft:spawn_for_raid": { "add": { "component_groups": [ "minecraft:default_targeting", "minecraft:raid_configuration" ] } }, "minecraft:spawn_as_illager_captain": { "add": { "component_groups": [ "minecraft:illager_squad_captain" ] } }, "minecraft:promote_to_illager_captain": { "add": { "component_groups": [ "minecraft:illager_squad_captain" ] }, "remove": { "component_groups": [ "minecraft:patrol_follower" ] } }, "minecraft:promote_to_patrol_captain": { "add": { "component_groups": [ "minecraft:patrol_captain" ] }, "remove": { "component_groups": [ "minecraft:patrol_follower" ] } }, "minecraft:start_celebrating": { // Event must be called exactly this for village to fire it when a raid is lost "add": { "component_groups": [ "minecraft:celebrate" ] } }, "minecraft:stop_celebrating": { "remove": { "component_groups": [ "minecraft:celebrate" ] } } } } }