{
  "format_version": "1.10.0",
  "animation_controllers": {
    "controller.animation.silverlabs_nat.shark": {
      "initial_state": "idle",
      "states": {
        "idle": {
          "animations": ["idle"],
          "transitions": [
            { "flop_wait": "!q.is_in_water && q.is_on_ground" },
            {
              "swim": "q.is_in_water && q.modified_move_speed > 0.1 && !q.has_target"
            },
            {
              "swim_fast": "q.is_in_water && q.modified_move_speed > 0.1 && q.has_target"
            }
          ],

          "blend_transition": 0.2
        },

        "swim": {
          "animations": ["swim"],
          "transitions": [
            { "flop_wait": "!q.is_in_water && q.is_on_ground" },
            {
              "swim_fast": "q.is_in_water && q.modified_move_speed > 0.1 && q.has_target"
            },
            { "idle": "q.is_in_water && q.modified_move_speed <= 0.1" }
          ],

          "blend_transition": 0.2
        },

        "swim_fast": {
          "animations": ["swim_fast"],
          "transitions": [
            { "flop_wait": "!q.is_in_water" },
            {
              "swim": "q.is_in_water && q.modified_move_speed > 0.1 && !q.has_target"
            },
            { "idle": "q.is_in_water && q.modified_move_speed <= 0.1" }
          ],

          "blend_transition": 0.2
        },

        "flop_wait": {
          "on_entry": ["v.wait_time = q.life_time;"],
          "transitions": [
            { "idle": "q.is_in_water" },
            {
              "flop": "q.life_time >= (v.wait_time + 0.05) && q.is_on_ground"
            }
          ]
        },

        "flop": {
          "animations": ["flop"],
          "transitions": [
            { "idle": "q.is_in_water && q.modified_move_speed <= 0.1" },
            { "swim": "q.is_in_water && q.modified_move_speed > 0.1" }
          ],

          "blend_transition": 0.2
        }
      }
    },

    "controller.animation.silverlabs_nat.shark.attack": {
      "states": {
        "default": {
          "transitions": [
            { "attack": "q.is_delayed_attacking" }
          ]
        },

        "attack": {
          "animations": ["attack"],

          "transitions": [
            {
              "default": "!q.is_delayed_attacking && q.all_animations_finished"
            }
          ],

          "blend_transition": 0.2
        }
      }
    }
  }
}
