{
	"format_version": "1.10.0",
	"animation_controllers": {
		"controller.animation.shapescape_mb.frog_boss.special_attack": {
			"initial_state": "default",
			"states": {
				"default": {
					"transitions": [
						{
							"spawn": "q.property('shapescape_mb:state') == 'spawn'"
						},
						{
							"ready": "q.property('shapescape_mb:state') == 'ready'"
						},
						{
							"leap": "q.property('shapescape_mb:state') == 'leap'"
						},
						{
							"summon_totem": "q.property('shapescape_mb:state') == 'summon_totem'"
						},
						{
							"tongue": "q.property('shapescape_mb:state') == 'tongue'"
						},
						{
							"spit": "q.property('shapescape_mb:state') == 'spit'"
						},
						{
							"disabled": "q.property('shapescape_mb:state') == 'disabled'"
						},
						{
							"death": "q.property('shapescape_mb:state') == 'death'"
						}
					]
				},
				"spawn": {
					"on_entry": ["/playsound shapescape_mb.frog_boss.spawn @a ~ ~ ~ 4 1 0"],
					"transitions": [
						{
							"default": "q.property('shapescape_mb:state') != 'spawn'"
						}
					]
				},
				"disabled": {
					"transitions": [
						{
							"default": "q.property('shapescape_mb:state') != 'disabled'"
						}
					]
				},
				"ready": {
					"on_entry": ["v.special_attack_delay = math.random(1.5, 3);", "@s shapescape_mb:special_attack_ready"],
					"transitions": [
						{
							"ready_select_attack": "q.state_time >= v.special_attack_delay && !q.is_delayed_attacking"
						},
						{
							"default": "q.property('shapescape_mb:state') != 'ready'"
						}
					]
				},
				"ready_select_attack": {
					"on_entry": ["/scriptevent shapescape_mb:frog_boss_special_attack"],
					"transitions": [
						{
							"leap": "q.property('shapescape_mb:state') == 'leap'"
						},
						{
							"summon_totem": "q.property('shapescape_mb:state') == 'summon_totem'"
						},
						{
							"tongue": "q.property('shapescape_mb:state') == 'tongue'"
						},
						{
							"spit": "q.property('shapescape_mb:state') == 'spit'"
						},
						{
							"ready_retry_select_attack": "q.state_time >= 1.0"
						},
						{
							"default": "q.property('shapescape_mb:state') != 'ready'"
						}
					]
				},
				"ready_retry_select_attack": {
					"transitions": [
						{
							"default": "q.property('shapescape_mb:state') != 'ready'"
						},
						{
							"ready_select_attack": "1.0"
						}
					]
				},
				"leap": {
					"on_entry": ["@s shapescape_mb:special_attack_leap"],
					"transitions": [
						{
							"leap_end": "q.state_time > 1.5"
						},
						{
							"leap_end_explosion": "q.state_time < 0.5 && q.is_on_ground"
						},
						{
							"leap_end_explosion": "q.state_time > 0.1 && !q.is_on_ground && q.modified_move_speed < 0.5 && q.state_time < 1.0"
						},
						{
							"default": "q.property('shapescape_mb:state') != 'leap'"
						}
					]
				},
				"leap_end": {
					"on_exit": ["@s shapescape_mb:special_attack_ready", "v.special_attack_previous_state_time=q.state_time;"],
					"transitions": [
						{
							"leap_end_camera_shake": "q.is_on_ground"
						},
						{
							"default": "(q.is_in_water) && q.state_time > 0.5"
						}
					]
				},
				"leap_end_camera_shake": {
					"on_entry": ["/playsound shapescape_mb.frog_boss.landing @a ~ ~ ~ 1 1 0.3", "/camerashake add @a[r=20] 0.7 0.5 positional"],
					"transitions": [
						{
							"default": "q.state_time + v.special_attack_previous_state_time > 0.5"
						}
					]
				},
				"leap_end_explosion": {
					"on_exit": ["/scriptevent shapescape_mb:frog_boss_leap_hit_wall", "/playsound shapescape_mb.frog_boss.landing @a ~ ~ ~ 1 1 0.3", "/camerashake add @a[r=20] 0.7 0.5 positional", "@s shapescape_mb:special_attack_ready"],
					"transitions": [
						{
							"default": "(q.is_on_ground || q.is_in_water) && q.state_time > 0.5"
						}
					]
				},
				"summon_totem": {
					"on_entry": ["@s shapescape_mb:special_attack_summon_totem"],
					"transitions": [
						{
							"default": "q.property('shapescape_mb:state') != 'summon_totem'"
						},
						{
							"summon_totem_end": "q.state_time > 1.5"
						}
					]
				},
				"summon_totem_end": {
					"on_entry": ["@s shapescape_mb:special_attack_ready"],
					"transitions": [
						{
							"default": "1.0"
						}
					]
				},
				"tongue": {
					"on_entry": ["@s shapescape_mb:special_attack_tongue", "/playsound shapescape_mb.frog_boss.tongue @a ~ ~ ~ 4 1 0"],
					"transitions": [
						{
							"default": "q.property('shapescape_mb:state') != 'tongue'"
						},
						{
							"tongue_end": "q.state_time > 1.7"
						}
					]
				},
				"tongue_end": {
					"on_entry": ["@s shapescape_mb:special_attack_ready", "/playsound shapescape_mb.frog_boss.swallow @a ~ ~ ~ 2 1 0"],
					"transitions": [
						{
							"default": "1.0"
						}
					]
				},
				"spit": {
					"on_entry": ["@s shapescape_mb:special_attack_spit", "/playsound shapescape_mb.frog_boss.spit @a ~ ~ ~ 4 1 0"],
					"transitions": [
						{
							"default": "q.property('shapescape_mb:state') != 'spit'"
						},
						{
							"spit_end": "q.state_time > 2.0"
						}
					]
				},
				"spit_end": {
					"on_entry": ["@s shapescape_mb:special_attack_ready"],
					"transitions": [
						{
							"default": "1.0"
						}
					]
				},
				"death": {
					"transitions": [
						{
							"default": "q.property('shapescape_mb:state') != 'death'"
						}
					]
				}
			}
		},
		"controller.animation.shapescape_mb.frog_boss.totem_cooldown": {
			"initial_state": "default",
			"states": {
				"default": {
					"transitions": [
						{
							"cooldown": "q.property('shapescape_mb:summon_totem_ability_state') == 'cooldown'"
						}
					]
				},
				"cooldown": {
					"transitions": [
						{
							"default": "q.state_time > 15"
						}
					],
					"on_exit": ["@s shapescape_mb:set_property_summon_totem_ability_totem_ready"]
				}
			}
		},
		"controller.animation.shapescape_mb.frog_boss.death": {
			"initial_state": "default",
			"states": {
				"default": {
					"transitions": [
						{
							"death": "q.health <= 1"
						}
					]
				},
				"death": {
					"transitions": [
						{
							"despawn": "1.0"
						}
					],
					"on_exit": ["/function shapescape/mb/frog_boss/death"]
				},
				"despawn": {
					"on_entry": ["@s shapescape_mb:despawn"]
				}
			}
		},
		"controller.animation.shapescape_mb.frog_boss.resist_suffocation": {
			"initial_state": "default",
			"states": {
				"default": {
					"transitions": [
						{
							"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"
						}
					]
				}
			}
		}
	}
}