{
  "format_version": "1.10.0",
  "animation_controllers": {
    "controller.animation.yamamoto": {
      "states": {
        "default": {
          "transitions": [
            { "dash": "q.get_equipped_item_name=='yamamoto_skills' && q.property('wesl3y:animes') == 3 && q.property('wesl3y:characters') == 1 && query.scoreboard('wg:skill') == 0 && query.scoreboard('wg:cooldown') == 0 && q.is_using_item" },
            { "cuts": "q.get_equipped_item_name=='yamamoto_skills' && q.property('wesl3y:animes') == 3 && q.property('wesl3y:characters') == 1 && query.scoreboard('wg:skill') == 1 && query.scoreboard('wg:cooldown2') == 0 && q.is_using_item" },
            { "sul": "q.get_equipped_item_name=='yamamoto_skills' && q.property('wesl3y:animes') == 3 && q.property('wesl3y:characters') == 2 && query.scoreboard('wg:skill') == 0 && query.scoreboard('wg:cooldown') == 0 && q.is_using_item" },
            { "norte": "q.get_equipped_item_name=='yamamoto_skills' && q.property('wesl3y:animes') == 3 && q.property('wesl3y:characters') == 2 && query.scoreboard('wg:skill') == 1 && query.scoreboard('wg:cooldown2') == 0 && q.is_using_item" },
            { "attack1": "q.get_equipped_item_name=='yamamoto_skills' && q.property('wesl3y:animes') == 3 && (q.property('wesl3y:characters') == 1 || q.property('wesl3y:characters') == 2) && v.attack_time > 0.0" }
          ],
          "on_entry": [
            "/event entity @s wesl3y:skill0",
            "/inputpermission set @s movement enabled",
            "/tag @s remove skill_distance"
          ]
        },
        "attack1": {
          "animations": ["timer.0_5"],
          "transitions": [
            { "default": "q.get_equipped_item_name!='yamamoto_skills'" },
            { "attack2": "v.attack_time > 0.0 && q.any_animation_finished" },
            { "attack1_2": "query.any_animation_finished" }
          ],
          "on_entry": [
            "/event entity @s wesl3y:skill1",
            "/execute at @s[tag=yamamoto] positioned ^^1^1.5 at @e[c=1,r=1.5,tag=!yamamoto,type=!item,type=!xp_orb] run particle wesl3y:yamamoto_hit ~~1~",
            "/execute at @s[tag=yamamoto_bankai] positioned ^^1^1.5 at @e[c=1,r=1.5,tag=!yamamoto_bankai,type=!item,type=!xp_orb] run particle wesl3y:yamamoto_hit ~~1~"
          ]
        },
        "attack1_2": {
          "animations": ["timer.0_1"],
          "transitions": [
            { "attack2": "v.attack_time > 0.0" },
            { "default": "query.any_animation_finished" }
          ],
          "on_entry": [
            "/event entity @s wesl3y:skill0"
          ]
        },
        "attack2": {
          "animations": ["timer.0_5"],
          "transitions": [
            { "default": "q.get_equipped_item_name!='yamamoto_skills'" },
            { "attack3": "v.attack_time > 0.0 && query.any_animation_finished" },
            { "attack2_2": "query.any_animation_finished" }
          ],
          "on_entry": [
            "/event entity @s wesl3y:skill2",
            "/execute at @s[tag=yamamoto] positioned ^^1^1.5 at @e[c=1,r=1.5,tag=!yamamoto,type=!item,type=!xp_orb] run particle wesl3y:yamamoto_hit2 ~~1~",
            "/execute at @s[tag=yamamoto_bankai] positioned ^^1^1.5 at @e[c=1,r=1.5,tag=!yamamoto_bankai,type=!item,type=!xp_orb] run particle wesl3y:yamamoto_hit2 ~~1~"
          ]
        },
        "attack2_2": {
          "animations": ["timer.0_1"],
          "transitions": [
            { "attack3": "v.attack_time > 0.0" },
            { "default": "query.any_animation_finished" }
          ],
          "on_entry": [
            "/event entity @s wesl3y:skill0"
          ]
        },
        "attack3": {
          "animations": ["timer.0_5"],
          "transitions": [
            {
              "default": "q.get_equipped_item_name!='yamamoto_skills'"
            },
            {
              "default": "query.any_animation_finished"
            }
          ],
          "on_entry": [
            "/event entity @s wesl3y:skill3",
            "/execute at @s[tag=yamamoto] positioned ^^1^1.5 at @e[c=1,r=1.5,tag=!yamamoto,type=!item,type=!xp_orb] run particle wesl3y:yamamoto_hit3 ~~1~",
            "/execute at @s[tag=yamamoto_bankai] positioned ^^1^1.5 at @e[c=1,r=1.5,tag=!yamamoto_bankai,type=!item,type=!xp_orb] run particle wesl3y:yamamoto_hit3 ~~1~"
          ]
        },
        "dash": {
          "animations": ["yamamoto.dash"],
          "transitions": [
            {
              "default": "q.get_equipped_item_name!='yamamoto_skills'"
            },
            {
              "default": "query.any_animation_finished"
            }
          ],
          "on_entry": [
            "/event entity @s wesl3y:skill4"
          ],
          "on_exit": [
            "/scoreboard players set @s wg:cooldown 30"
          ]
        },
        "cuts": {
          "animations": ["yamamoto.cuts"],
          "transitions": [
            {
              "default": "q.get_equipped_item_name!='yamamoto_skills'"
            },
            {
              "default": "query.any_animation_finished"
            }
          ],
          "on_entry": [
            "/event entity @s wesl3y:skill5"
          ],
          "on_exit": [
            "/scoreboard players set @s wg:cooldown2 30",
            "/tag @s remove yamamoto_cuts"
          ]
        },
        "sul": {
          "animations": ["yamamoto_bankai.sul"],
          "transitions": [
            {
              "default": "q.get_equipped_item_name!='yamamoto_skills'"
            },
            {
              "default": "query.any_animation_finished"
            }
          ],
          "on_entry": [
            "/event entity @s wesl3y:skill4"
          ],
          "on_exit": [
            "/scoreboard players set @s wg:cooldown 30"
          ]
        },
        "norte": {
          "animations": ["yamamoto_bankai.norte"],
          "transitions": [
            {
              "default": "q.get_equipped_item_name!='yamamoto_skills'"
            },
            {
              "default": "query.any_animation_finished"
            }
          ],
          "on_entry": [
            "/event entity @s wesl3y:skill5"
          ],
          "on_exit": [
            "/scoreboard players set @s wg:cooldown2 30"
          ]
        }
      }
    }
  }
}