// @buildsys IMPORTED: DO NOT EDIT! 
{
    "format_version": "1.19.0",
    "animation_controllers": {
        "controller.animation.mnp_ci.crab": {
            "initial_state": "default",
            "states": {
                "default": {
                    "animations": [
                        "idle"
                    ],
                    "transitions": [
                        {
                            "swim": "q.is_in_water && q.modified_move_speed > 0.25"
                        },
                        {
                            "walk": "q.is_on_ground && q.modified_move_speed > 0.05"
                        },
                        {
                            "fall.underwater": "q.is_in_water && !q.is_on_ground && q.modified_move_speed < 0.05"
                        }
                    ],
                    "blend_transition": 0.2
                },
                "fall.underwater": {
                    "animations": [
                        "fall.underwater"
                    ],
                    "transitions": [
                        {
                            "swim": "q.is_in_water && q.modified_move_speed > 0.25"
                        },
                        {
                            "walk": "q.is_on_ground && q.modified_move_speed > 0.05"
                        },
                        {
                            "default": "!q.is_in_water || q.is_on_ground"
                        }
                    ],
                    "blend_transition": 0.2
                },
                "walk": {
                    "animations": [
                        "walk"
                    ],
                    "transitions": [
                        {
                            "swim": "q.is_in_water && q.modified_move_speed > 0.25"
                        },
                        {
                            "fall.underwater": "q.is_in_water && !q.is_on_ground && q.modified_move_speed < 0.05"
                        },
                        {
                            "default": "q.modified_move_speed < 0.03"
                        }
                    ],
                    "blend_transition": 0.2
                },
                "swim": {
                    "animations": [
                        "paddle"
                    ],
                    "transitions": [
                        {
                            "fall.underwater": "q.is_in_water && !q.is_on_ground && q.modified_move_speed < 0.03"
                        },
                        {
                            "walk": "q.is_on_ground && q.modified_move_speed > 0.05 && q.modified_move_speed < 0.1"
                        },
                        {
                            "default": "q.modified_move_speed <= 0.05"
                        }
                    ],
                    "blend_transition": 0.2
                }
            }
        },
        "controller.animation.mnp_ci.mantis_shrimp": {
            "initial_state": "idle.underwater",
            "states": {
                "idle": {
                    "animations": [
                        "idle"
                    ],
                    "transitions": [
                        {
                            "walk.underwater": "q.is_in_water && q.modified_move_speed > 0.25"
                        },
                        {
                            "walk": "q.is_on_ground && q.modified_move_speed > 0.05"
                        },
                        {
                            "idle.underwater": "q.is_in_water"
                        }
                    ],
                    "blend_transition": 0.2
                },
                "walk": {
                    "animations": [
                        "walk"
                    ],
                    "transitions": [
                        {
                            "walk.underwater": "q.is_in_water && q.modified_move_speed > 0.25"
                        },
                        {
                            "idle.underwater": "q.is_in_water"
                        },
                        {
                            "idle": "q.modified_move_speed < 0.03"
                        }
                    ],
                    "blend_transition": 0.2
                },
                "idle.underwater": {
                    "animations": [
                        "idle.underwater"
                    ],
                    "transitions": [
                        {
                            "walk.underwater": "q.is_in_water && q.modified_move_speed > 0.25"
                        },
                        {
                            "walk": "!q.is_in_water && q.modified_move_speed > 0.05"
                        },
                        {
                            "idle": "!q.is_in_water"
                        }
                    ],
                    "blend_transition": 0.2
                },
                "walk.underwater": {
                    "animations": [
                        "walk.underwater"
                    ],
                    "transitions": [
                        {
                            "idle.underwater": "q.is_in_water && q.modified_move_speed < 0.03"
                        },
                        {
                            "walk": "!q.is_in_water && q.modified_move_speed > 0.05"
                        },
                        {
                            "idle": "!q.is_in_water"
                        }
                    ],
                    "blend_transition": 0.2
                }
            }
        },
        "controller.animation.mnp_ci.sea_snail": {
            "initial_state": "default",
            "states": {
                "default": {
                    "animations": [
                        "idle"
                    ],
                    "transitions": [
                        {
                            "crawl": "q.modified_move_speed > 0.05 || q.vertical_speed > 0.05"
                        }
                    ],
                    "blend_transition": 0.1
                },
                "crawl": {
                    "animations": [
                        "crawl"
                    ],
                    "transitions": [
                        {
                            "default": "q.modified_move_speed < 0.04 && q.vertical_speed < 0.04"
                        }
                    ],
                    "blend_transition": 0.1
                }
            }
        },
        "controller.animation.mnp_ci.octopus1": {
            "initial_state": "initialize",
            "states": {
                "initialize": {
                    "transitions": [
                        {
                            "camouflaged": "v.camouflaged"
                        }
                    ]
                },
                "default": {
                    "particle_effects": [
                        {
                            "effect": "texture_change"
                        }
                    ],
                    "transitions": [
                        {
                            "camouflaged": "v.camouflaged"
                        }
                    ]
                },
                "camouflaged": {
                    "on_entry": [
                        "v.texture_coord = q.surface_particle_texture_coordinate;",
                        "v.texture_size = q.surface_particle_texture_size;"
                    ],
                    "particle_effects": [
                        {
                            "effect": "texture_change"
                        }
                    ],
                    "transitions": [
                        {
                            "default": "!v.camouflaged"
                        },
                        {
                            "texture_changed": "v.camouflaged && (q.surface_particle_texture_coordinate.u != v.texture_coord.u || q.surface_particle_texture_coordinate.v != v.texture_coord.v || q.surface_particle_texture_size.u != v.texture_size.u || q.surface_particle_texture_size.v != v.texture_size.v)"
                        }
                    ]
                },
                "texture_changed": {
                    "on_entry": [
                        "v.texture_coord = q.surface_particle_texture_coordinate;",
                        "v.texture_size = q.surface_particle_texture_size;"
                    ],
                    "particle_effects": [
                        {
                            "effect": "texture_change"
                        }
                    ],
                    "transitions": [
                        {
                            "default": "!v.camouflaged"
                        },
                        {
                            "camouflaged": "v.camouflaged && (q.surface_particle_texture_coordinate.u != v.texture_coord.u || q.surface_particle_texture_coordinate.v != v.texture_coord.v || q.surface_particle_texture_size.u != v.texture_size.u || q.surface_particle_texture_size.v != v.texture_size.v)"
                        }
                    ]
                }
            }
        },
        "controller.animation.mnp_ci.octopus2": {
            "initial_state": "initialize",
            "states": {
                "initialize": {
                    "transitions": [
                        {
                            "camouflaged": "v.camouflaged"
                        },
                        {
                            "idle.underwater": "q.is_in_water && !q.is_on_ground"
                        },
                        {
                            "walk.underwater": "q.is_in_water"
                        },
                        {
                            "walk": "!q.is_in_water"
                        }
                    ]
                },
                "walk": {
                    "animations": [
                        "walk"
                    ],
                    "transitions": [
                        {
                            "camouflaged": "v.camouflaged"
                        },
                        {
                            "swim": "q.is_in_water && (q.is_avoiding_mobs || q.modified_move_speed > 0.1)"
                        },
                        {
                            "idle.underwater": "q.is_in_water && !q.is_on_ground"
                        },
                        {
                            "walk.underwater": "q.is_in_water"
                        }
                    ],
                    "blend_transition": 0.3
                },
                "walk.underwater": {
                    "animations": [
                        "walk.underwater"
                    ],
                    "transitions": [
                        {
                            "camouflaged": "v.camouflaged"
                        },
                        {
                            "swim": "q.is_in_water && (q.is_avoiding_mobs || q.modified_move_speed > 0.1)"
                        },
                        {
                            "idle.underwater": "q.is_in_water && !q.is_on_ground"
                        },
                        {
                            "walk": "!q.is_in_water"
                        }
                    ],
                    "blend_transition": 0.3
                },
                "idle.underwater": {
                    "animations": [
                        "idle.underwater"
                    ],
                    "transitions": [
                        {
                            "camouflaged": "v.camouflaged"
                        },
                        {
                            "swim": "q.is_in_water && (q.is_avoiding_mobs || q.modified_move_speed > 0.2)"
                        },
                        {
                            "walk.underwater": "q.is_in_water && q.is_on_ground"
                        },
                        {
                            "walk": "!q.is_in_water"
                        }
                    ],
                    "blend_transition": 0.3
                },
                "swim": {
                    "on_entry": [
                        "v.is_swimming = 1;"
                    ],
                    "on_exit": [
                        "v.is_swimming = 0;"
                    ],
                    "animations": [
                        "swim"
                    ],
                    "transitions": [
                        {
                            "camouflaged": "v.camouflaged"
                        },
                        {
                            "idle.underwater": "q.is_in_water && !q.is_on_ground && !q.is_avoiding_mobs && q.modified_move_speed <= 0.05"
                        },
                        {
                            "walk.underwater": "q.is_in_water && !q.is_avoiding_mobs && q.modified_move_speed <= 0.05"
                        },
                        {
                            "walk": "!q.is_in_water"
                        }
                    ],
                    "blend_transition": 0.4
                },
                "camouflaged": {
                    "animations": [
                        "camouflaged",
                        "block_align",
                        "peek"
                    ],
                    "transitions": [
                        {
                            "swim": "!v.camouflaged && q.is_in_water && (q.is_avoiding_mobs || q.modified_move_speed > 0.2)"
                        },
                        {
                            "idle.underwater": "!v.camouflaged && q.is_in_water && !q.is_on_ground"
                        },
                        {
                            "walk.underwater": "!v.camouflaged && q.is_in_water"
                        },
                        {
                            "walk": "!v.camouflaged && !q.is_in_water"
                        }
                    ],
                    "blend_transition": 0.3
                }
            }
        },
        "controller.animation.mnp_ci.barracuda": {
            "initial_state": "swim",
            "states": {
                "idle.underwater": {
                    "animations": [
                        "idle.underwater"
                    ],
                    "transitions": [
                        {
                            "swim": "!q.property('mnp_ci:staring') || q.is_levitating"
                        }
                    ],
                    "blend_transition": 0.3
                },
                "swim": {
                    "animations": [
                        "swim"
                    ],
                    "transitions": [
                        {
                            "idle.underwater": "q.property('mnp_ci:staring') && !q.is_levitating"
                        }
                    ],
                    "blend_transition": 0.3
                }
            }
        },
        "controller.animation.mnp_ci.whale1": {
            "initial_state": "default",
            "states": {
                "default": {
                    "transitions": [
                        {
                            "feed_start": "q.property('mnp_ci:feeding_state') == 'feeding'"
                        }
                    ]
                },
                "feed_start": {
                    "on_exit": ["v.mouth0_r_x = (math.sin(math.sqrt(q.state_time*0.1)*90)+0.2-math.cos(math.min(q.state_time,1)*180)*0.2)*55;"],
                    "animations": [
                        "feed_start"
                    ],
                    "transitions": [
                        {
                            "feed_end_fast": "q.property('mnp_ci:feeding_state') != 'feeding' && q.state_time < 6"
                        },
                        {
                            "feed_end": "q.property('mnp_ci:feeding_state') != 'feeding'"
                        }
                    ],
                    "blend_transition": 0.2
                },
                "feed_end_fast": {
                    "animations": [
                        "feed_end_fast"
                    ],
                    "transitions": [
                        {
                            "feed_start": "q.property('mnp_ci:feeding_state') == 'feeding'"
                        },
                        {
                            "default": "q.all_animations_finished"
                        }
                    ],
                    "blend_transition": 0.2
                },
                "feed_end": {
                    "animations": [
                        "feed_end"
                    ],
                    "transitions": [
                        {
                            "feed_start": "q.property('mnp_ci:feeding_state') == 'feeding'"
                        },
                        {
                            "default": "q.all_animations_finished"
                        }
                    ],
                    "blend_transition": 0.2
                }
            }
        },
        "controller.animation.mnp_ci.whale2": {
            "initial_state": "default",
            "states": {
                "default": {
                    "transitions": [
                        {
                            "whale_spout_pre": "q.property('mnp_ci:whale_spout_state') == 'whale_spout'"
                        }
                    ]
                },
                "whale_spout_pre": {
                    "transitions": [
                        {
                            "default": "q.property('mnp_ci:whale_spout_state') != 'whale_spout'"
                        },
                        {
                            "whale_spout": "q.state_time > 0.1"//delays the spout to wait for the whale to point less vertically
                        }
                    ]
                },
                "whale_spout": {
                    "sound_effects": [
                        {
                            "effect": "spout_breach"
                        }
                    ],
                    "particle_effects": [
                        {
                            "effect": "whale_spout",
                            "locator": "blow_hole"
                        }
                    ],
                    "transitions": [
                        {
                            "default": "q.property('mnp_ci:whale_spout_state') != 'whale_spout'"
                        }
                    ]
                }
            }
        },
        "controller.animation.mnp_ci.whale3": {
            "initial_state": "default",
            "states": {
                "default": {
                    "on_entry": ["v.breach = 0;"],
                    "transitions": [
                        {
                            "breach_flip": "q.property('mnp_ci:whale_spout_state') == 'whale_spout' && v.pitch < -50"
                        },
                        {
                            "breach_curve": "q.property('mnp_ci:whale_spout_state') == 'whale_spout' && v.pitch >= -50 && v.pitch < 5"
                        }
                    ]
                },
                "breach_flip": {
                    "on_entry": ["v.breach = 1;"],
                    "on_exit": ["v.breach = 0;"],
                    "animations": ["breach_flip"],
                    "transitions": [
                        {
                            "default": "q.property('mnp_ci:whale_spout_state') != 'whale_spout' && q.all_animations_finished"
                        }
                    ]
                },
                "breach_curve": {
                    "on_entry": ["v.breach = 1;"],
                    "on_exit": ["v.breach = 0;"],
                    "animations": ["breach_curve"],
                    "transitions": [
                        {
                            "default": "q.property('mnp_ci:whale_spout_state') != 'whale_spout' && q.all_animations_finished"
                        }
                    ]
                }
            }
        },
        "controller.animation.mnp_ci.pearl_oyster_0": {
            "initial_state": "default",
            "states": {
                "default": {
                    "animations": [
                        {"half_open_0": "v.half_open_0"}
                    ],
                    "transitions": [
                        {
                            "open": "q.life_time > v.timer_0"
                        }
                    ]
                },
                "open": {
                    "on_entry": [
                        "v.timer_0 = q.life_time + math.random(25, 50);"
                    ],
                    "on_exit": [
                        "v.timer_0 = q.life_time + math.random(30, 160);"
                    ],
                    "animations": [
                        "open_0"
                    ],
                    "transitions": [
                        {
                            "default": "q.all_animations_finished && q.life_time > v.timer_0"
                        }
                    ],
                    "blend_transition":2
                }
            }
        },
        "controller.animation.mnp_ci.pearl_oyster_1": {
            "initial_state": "default",
            "states": {
                "default": {
                    "animations": [
                        {"half_open_1": "v.half_open_1"}
                    ],
                    "transitions": [
                        {
                            "open": "q.life_time > v.timer_1"
                        }
                    ]
                },
                "open": {
                    "on_entry": [
                        "v.timer_1 = q.life_time + math.random(25, 50);"
                    ],
                    "on_exit": [
                        "v.timer_1 = q.life_time + math.random(30, 160);"
                    ],
                    "animations": [
                        "open_1"
                    ],
                    "transitions": [
                        {
                            "default": "q.all_animations_finished && q.life_time > v.timer_1"
                        }
                    ],
                    "blend_transition":2
                }
            }
        },
        "controller.animation.mnp_ci.pearl_oyster_2": {
            "initial_state": "default",
            "states": {
                "default": {
                    "animations": [
                        {"half_open_2": "v.half_open_2"}
                    ],
                    "transitions": [
                        {
                            "open": "q.life_time > v.timer_2"
                        }
                    ]
                },
                "open": {
                    "on_entry": [
                        "v.timer_2 = q.life_time + math.random(25, 50);"
                    ],
                    "on_exit": [
                        "v.timer_2 = q.life_time + math.random(30, 160);"
                    ],
                    "animations": [
                        "open_2"
                    ],
                    "transitions": [
                        {
                            "default": "q.all_animations_finished && q.life_time > v.timer_2"
                        }
                    ],
                    "blend_transition":2
                }
            }
        },
        "controller.animation.mnp_ci.pearl_oyster_3": {
            "initial_state": "default",
            "states": {
                "default": {
                    "animations": [
                        {"half_open_3": "v.half_open_3"}
                    ],
                    "transitions": [
                        {
                            "open": "q.life_time > v.timer_3"
                        }
                    ]
                },
                "open": {
                    "on_entry": [
                        "v.timer_3 = q.life_time + math.random(25, 50);"
                    ],
                    "on_exit": [
                        "v.timer_3 = q.life_time + math.random(30, 160);"
                    ],
                    "animations": [
                        "open_3"
                    ],
                    "transitions": [
                        {
                            "default": "q.all_animations_finished && q.life_time > v.timer_3"
                        }
                    ],
                    "blend_transition":2
                }
            }
        },
        "controller.animation.mnp_ci.bird": {
            "initial_state": "default",
            "states": {
                "default": {
                    "animations": [
                        "idle"
                    ],
                    "transitions": [
                        {
                            "fly": "!q.is_on_ground"
                        },
                        {
                            "walk": "q.ground_speed > 0.5"
                        }
                    ],
                    "blend_transition": 0.2
                },
                "walk": {
                    "animations": [
                        "walk"
                    ],
                    "transitions": [
                        {
                            "fly": "!q.is_on_ground"
                        },
                        {
                            "default": "q.ground_speed < 0.3"
                        }
                    ],
                    "blend_transition": 0.2
                },
                "fly": {
                    "animations": [
                        "fly",
                        {
                             "fly.flap": "math.clamp(5 - v.smooth_speed * 0.3, 0.1, 1)"
                        },
                        "fly.angle"
                    ],
                    "transitions": [
                        {
                            "walk": "q.is_on_ground && q.ground_speed > 0.5"
                        },
                        {
                            "default": "q.is_on_ground && q.vertical_speed > -0.1"
                        }
                    ],
                    "blend_transition": 0.25
                }
            }
        },
        "controller.animation.mnp_ci.hurt": {
            "initial_state": "default",
            "states": {
                "default": {
                    "transitions": [
                        {
                            "hurt": "q.health < v.health"
                        }
                    ]
                },
                "hurt": {
                    "on_entry": ["v.health = q.health;"],
                    "animations": ["hurt"],
                    "transitions": [
                        {
                            "default": "q.all_animations_finished"
                        }
                    ]
                }
            }
        }
    }
}