{
	"format_version": "1.17.0",
	"animation_controllers": {
		"controller.animation.shapescape_mb.golem_boss.death": {
			"initial_state": "default",
			"states": {
				"default": {
					"transitions": [
						{
							"death": "q.health == 1"
						}
					]
				},
				"death": {
					"on_entry": ["@s death", "variable.death = q.life_time + 5.0;"],
					"transitions": [
						{
							"despawn": "(variable.death < q.life_time)"
						}
					],
					"on_exit": ["/function shapescape/mb/golem_boss/death"]
				},
				"despawn": {
					"on_entry": ["@s despawn"]
				}
			}
		},
		"controller.animation.shapescape_mb.golem_boss.melee_prep": {
			"initial_state": "default",
			"states": {
				"default": {
					"transitions": [
						{
							"attack_ready": "q.variant == 1"
						}
					]
				},
				"attack_ready": {
					"transitions": [
						{
							"default": "q.variant != 1"
						},
						{
							"cancel_attack": "q.is_in_water || q.is_in_lava"
						},
						{
							"attack": "q.is_delayed_attacking && !q.is_sheared"
						}
					]
				},
				"cancel_attack": {
					"on_entry": ["@s move_towards_target_exec"],
					"transitions": [
						{
							"default": "1.0"
						}
					]
				},
				"attack": {
					"on_entry": ["@s melee_exec", "variable.melee_prep = q.life_time + 0.5;"],
					"transitions": [
						{
							"default": "variable.melee_prep < q.life_time"
						}
					]
				}
			}
		},
		"controller.animation.shapescape_mb.golem_boss.melee_exec": {
			"initial_state": "default",
			"states": {
				"default": {
					"transitions": [
						{
							"hit_1": "q.variant == 2 && !q.is_sheared"
						}
					]
				},
				"hit_1": {
					"on_entry": ["variable.melee_exec = q.life_time + (0.7/1.5) + (2.12/1.3);"],
					"transitions": [
						{
							"hit_2": "variable.melee_exec < q.life_time"
						},
						{
							"default": "q.is_sheared"
						}
					]
				},
				"hit_2": {
					"on_entry": ["/execute if entity @s[family=shapescape_mb_boss_class_common] run summon shapescape_mb:boss_knock ^^1^1 ~~ golem_knockback_common", "/execute if entity @s[family=shapescape_mb_boss_class_uncommon] run summon shapescape_mb:boss_knock ^^1^1 ~~ golem_knockback_uncommon", "/execute if entity @s[family=shapescape_mb_boss_class_rare] run summon shapescape_mb:boss_knock ^^1^1 ~~ golem_knockback_rare", "/execute if entity @s[family=shapescape_mb_boss_class_epic] run summon shapescape_mb:boss_knock ^^1^1 ~~ golem_knockback_epic", "/execute if entity @s[family=shapescape_mb_boss_class_legendary] run summon shapescape_mb:boss_knock ^^1^1 ~~ golem_knockback_legendary", "/execute if entity @s[family=shapescape_mb_boss_class_impossible] run summon shapescape_mb:boss_knock ^^1^1 ~~ golem_knockback_impossible", "variable.melee_exec = q.life_time + (1.5/1.5);"],
					"transitions": [
						{
							"hit_3": "variable.melee_exec < q.life_time"
						},
						{
							"default": "q.is_sheared"
						}
					]
				},
				"hit_3": {
					"on_entry": ["/execute if entity @s[family=shapescape_mb_boss_class_common] run summon shapescape_mb:boss_knock ^^1^1 ~~ golem_knockback_common", "/execute if entity @s[family=shapescape_mb_boss_class_uncommon] run summon shapescape_mb:boss_knock ^^1^1 ~~ golem_knockback_uncommon", "/execute if entity @s[family=shapescape_mb_boss_class_rare] run summon shapescape_mb:boss_knock ^^1^1 ~~ golem_knockback_rare", "/execute if entity @s[family=shapescape_mb_boss_class_epic] run summon shapescape_mb:boss_knock ^^1^1 ~~ golem_knockback_epic", "/execute if entity @s[family=shapescape_mb_boss_class_legendary] run summon shapescape_mb:boss_knock ^^1^1 ~~ golem_knockback_legendary", "/execute if entity @s[family=shapescape_mb_boss_class_impossible] run summon shapescape_mb:boss_knock ^^1^1 ~~ golem_knockback_impossible", "variable.melee_exec = q.life_time + (1.85/1.5);"],
					"transitions": [
						{
							"end": "variable.melee_exec < q.life_time"
						},
						{
							"default": "q.is_sheared"
						}
					]
				},
				"end": {
					"on_entry": ["/execute if entity @s[family=shapescape_mb_boss_class_common] run summon shapescape_mb:boss_knock ^^1^1 ~~ golem_knockback_common", "/execute if entity @s[family=shapescape_mb_boss_class_uncommon] run summon shapescape_mb:boss_knock ^^1^1 ~~ golem_knockback_uncommon", "/execute if entity @s[family=shapescape_mb_boss_class_rare] run summon shapescape_mb:boss_knock ^^1^1 ~~ golem_knockback_rare", "/execute if entity @s[family=shapescape_mb_boss_class_epic] run summon shapescape_mb:boss_knock ^^1^1 ~~ golem_knockback_epic", "/execute if entity @s[family=shapescape_mb_boss_class_legendary] run summon shapescape_mb:boss_knock ^^1^1 ~~ golem_knockback_legendary", "/execute if entity @s[family=shapescape_mb_boss_class_impossible] run summon shapescape_mb:boss_knock ^^1^1 ~~ golem_knockback_impossible", "/execute if entity @s[family=shapescape_mb_boss_class_common] run summon shapescape_mb:boss_knock ^^1^3 ~~ golem_knockback_common", "/execute if entity @s[family=shapescape_mb_boss_class_uncommon] run summon shapescape_mb:boss_knock ^^1^3 ~~ golem_knockback_uncommon", "/execute if entity @s[family=shapescape_mb_boss_class_rare] run summon shapescape_mb:boss_knock ^^1^3 ~~ golem_knockback_rare", "/execute if entity @s[family=shapescape_mb_boss_class_epic] run summon shapescape_mb:boss_knock ^^1^3 ~~ golem_knockback_epic", "/execute if entity @s[family=shapescape_mb_boss_class_legendary] run summon shapescape_mb:boss_knock ^^1^3 ~~ golem_knockback_legendary", "/execute if entity @s[family=shapescape_mb_boss_class_impossible] run summon shapescape_mb:boss_knock ^^1^3 ~~ golem_knockback_impossible", "variable.melee_exec = q.life_time + (1.2/1.5) + (3/2);"],
					"transitions": [
						{
							"default": "variable.melee_exec < q.life_time"
						}
					],
					"on_exit": ["@s choose_attack"]
				}
			}
		},
		"controller.animation.shapescape_mb.golem_boss.range_exec": {
			"initial_state": "default",
			"states": {
				"default": {
					"transitions": [
						{
							"start": "q.is_charged && q.variant == 6 && !q.is_sheared"
						}
					]
				},
				"start": {
					"on_entry": ["variable.phase_change_exec = q.life_time + 5.0;"],
					"transitions": [
						{
							"end": "v.phase_change_exec < q.life_time"
						},
						{
							"default": "q.is_sheared"
						}
					]
				},
				"end": {
					"on_entry": ["@s choose_attack"],
					"transitions": [
						{
							"default": "1.0"
						}
					]
				}
			}
		},
		"controller.animation.shapescape_mb.golem_boss.manage_damage_from_projectile_state": {
			"initial_state": "default",
			"states": {
				"default": {
					"on_entry": ["@s shapescape_mb:set_property_damage_from_projectile_state_none"],
					"transitions": [
						{
							"projectile": "q.property('shapescape_mb:damage_from_projectile_state') == 'projectile'"
						},
						{
							"other": "q.property('shapescape_mb:damage_from_projectile_state') == 'other'"
						},
						{
							"projectile_blocking": "q.property('shapescape_mb:damage_from_projectile_state') == 'projectile_blocking'"
						},
						{
							"other_showing": "q.property('shapescape_mb:damage_from_projectile_state') == 'other_showing'"
						}
					]
				},
				"projectile": {
					"on_entry": ["@s shapescape_mb:set_property_damage_from_projectile_state_projectile_blocking"],
					"transitions": [
						{
							"projectile_blocking": "q.property('shapescape_mb:damage_from_projectile_state') == 'projectile_blocking'"
						}
					]
				},
				"projectile_blocking": {
					"transitions": [
						{
							"projectile": "q.property('shapescape_mb:damage_from_projectile_state') == 'projectile'"
						},
						{
							"other": "q.property('shapescape_mb:damage_from_projectile_state') == 'other'"
						},
						{
							"default": "q.state_time > 0.5"
						}
					]
				},
				"other": {
					"on_entry": ["@s shapescape_mb:set_property_damage_from_projectile_state_other_showing"],
					"transitions": [
						{
							"other_showing": "q.property('shapescape_mb:damage_from_projectile_state') == 'other_showing'"
						},
						{
							"default": "q.state_time > 0.5"
						}
					]
				},
				"other_showing": {
					"transitions": [
						{
							"other": "q.property('shapescape_mb:damage_from_projectile_state') == 'other'"
						},
						{
							"default": "q.state_time > 0.5"
						}
					]
				}
			}
		},
		"controller.animation.shapescape_mb.golem_boss.resist_suffocation": {
			"initial_state": "default",
			"states": {
				"default": {
					"transitions": [
						{
							"resist": "q.property('shapescape_mb:boss_class') == 'epic'"
						},
						{
							"resist": "q.property('shapescape_mb:boss_class') == 'legendary'"
						},
						{
							"resist": "q.property('shapescape_mb:boss_class') == 'impossible'"
						}
					]
				},
				"resist": {
					"on_entry": ["/effect @s water_breathing 1 0 true"],
					"transitions": [
						{
							"default": "q.state_time >= 0.9"
						}
					]
				}
			}
		}
	}
}