1
0
mirror of https://github.com/Mojang/bedrock-samples.git synced 2025-01-31 06:01:26 +00:00
Mike Ammerlaan 5ce65764d3 v1.21.50.7
2024-12-03 08:43:20 -08:00

445 lines
12 KiB
JSON

{
"format_version": "1.21.50",
"minecraft:entity": {
"description": {
"identifier": "minecraft:vindicator",
"spawn_category": "monster",
"is_spawnable": true,
"is_summonable": true
},
"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,
"must_see": true,
"within_radius": 12.0,
"must_see_forget_duration": 40.0,
"entity_types": [
{
"filters": { "test": "is_family", "subject": "other", "operator": "!=", "value": "illager" },
"max_dist": 12
}
]
}
},
"minecraft:default_targeting": {
"minecraft:behavior.nearest_attackable_target": {
"priority": 2,
"must_see": true,
"within_radius": 12.0,
"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": true,
"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:raid_persistence": {
"minecraft:persistent": {}
},
"minecraft:raid_despawn": {
"minecraft:despawn": {
"despawn_from_distance": {}
}
},
"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:loot": {
"table": "loot_tables/entities/pillager_captain.json"
}
},
"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:loot": {
"table": "loot_tables/entities/pillager_captain.json"
},
"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": {
// Components
"minecraft:equip_item": {
},
"minecraft:shareables": {
"items": [
{
"item": "minecraft:banner:15",
"want_amount": 1,
"surplus_amount": 1,
"priority": 0
}
]
},
"minecraft:is_hidden_when_invisible": {
},
"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:can_join_raid": {
},
"minecraft:conditional_bandwidth_optimization": {
},
"minecraft:nameable": {
"default_trigger": {
"event": "minecraft:stop_johnny",
"target": "self"
},
"name_actions": [
{
"name_filter": "Johnny",
"on_named": {
"event": "minecraft:start_johnny",
"target": "self"
}
}
]
},
"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"
},
// Behaviors
"minecraft:behavior.float": {
"priority": 0
},
"minecraft:behavior.avoid_mob_type": {
"priority": 2,
"entity_types": [
{
"filters": { "test": "is_family", "subject": "other", "value": "creaking" },
"max_dist": 8,
"sprint_speed_multiplier": 1.2
}
]
},
"minecraft:behavior.melee_box_attack": {
"priority": 3
},
"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,
"entity_types": {
"filters": {
"test": "is_family", "subject": "other", "operator": "!=", "value": "illager"
},
"max_dist": 64
}
},
"minecraft:behavior.equip_item": {
"priority": 3
},
"minecraft:behavior.pickup_items": {
"priority": 7,
"max_dist": 3,
"goal_radius": 2,
"speed_multiplier": 1.0
},
"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:raid_persistence",
"minecraft:raid_despawn"
]
}
},
"minecraft:spawn_as_illager_captain": {
"add": {
"component_groups": [
"minecraft:default_targeting",
"minecraft:illager_squad_captain"
]
}
},
"minecraft:promote_to_illager_captain": {
"add": {
"component_groups": [
"minecraft:default_targeting",
"minecraft:illager_squad_captain"
]
},
"remove": {
"component_groups": [
"minecraft:patrol_follower"
]
}
},
"minecraft:promote_to_patrol_captain": {
"add": {
"component_groups": [
"minecraft:default_targeting",
"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
"sequence": [
{
"add": { "component_groups": [ "minecraft:celebrate" ] }
},
{
"filters": { "test": "has_nametag", "value": false },
"remove": { "component_groups": [ "minecraft:raid_persistence" ] }
}
]
},
"minecraft:stop_celebrating": {
"remove": { "component_groups": [ "minecraft:celebrate" ] }
},
"minecraft:raid_expired": {
"sequence": [
{
"filters": { "test": "has_nametag", "value": false },
"remove": { "component_groups": [ "minecraft:raid_persistence" ] }
}
]
}
}
}
}