{

	//幽灵召唤及管理脚本

    "AbilityName" : "Lucy_Wood_Whistle",

    "AbilityStacking": "Unique",



    "OnAbilityStart" :

    [



            

        {

            "$type": "MoleMole.ApplyModifier",

            "ModifierName": "TeleportSubWoodModifier01",

            "Target": "Self",

        },



        {

            "$type": "MoleMole.ApplyModifier",

            "ModifierName": "TeleportSubWoodModifier02",

            "Target": "Self",

            "Predicates" :

            [

                {

                    "$type": "MoleMole.ByAIParam",

                    "Target": "Self",

                    "ParamName": "Int_ShouldWhistle",

                    "CompareType": "Equal",

                    "IntParamValue": 3,

                }

            ]

        },





        

        {

            "$type": "MoleMole.ApplyModifier",

            "ModifierName": "SwitchInModifier01",

            "Target": "Self",

        },

    

        {

            "$type": "MoleMole.ApplyModifier",

            "ModifierName": "SwitchInModifier02",

            "Target": "Self",

            "Predicates" :

            [

                {

                    "$type": "MoleMole.ByAIParam",

                    "Target": "Self",

                    "ParamName": "Int_ShouldWhistle",

                    "CompareType": "Equal",

                    "IntParamValue": 3,

                }

            ]

        },



        

        {

            "$type": "MoleMole.ApplyModifier",

            "ModifierName": "WaitForEncourageModifier00",

            "Target": "Self",

        },

    

        {

            "$type": "MoleMole.ApplyModifier",

            "ModifierName": "WaitForEncourageModifier01",

            "Target": "Self",

        },



        {

            "$type": "MoleMole.ApplyModifier",

            "ModifierName": "WaitForEncourageModifier02",

            "Target": "Self",

            "Predicates" :

            [

                {

                    "$type": "MoleMole.ByAIParam",

                    "Target": "Self",

                    "ParamName": "Int_ShouldWhistle",

                    "CompareType": "Equal",

                    "IntParamValue": 3,

                }

            ]

        },

    ],



    "Modifiers":

    {

        "TeleportSubWoodModifier01":

		{

			"ModifierStacking": "Refresh",

			"Duration": 0.03,

			"IgnoreTimeScale": false,



            "OnAdded":

            [

                {

                    "$type": "MoleMole.ApplyLogicMoveAction",

                    "Target": "Custom",

                    "CustomKey": "LucyWood_AbilityTargetting_01",



                    "MovementConfig" :

                    {

                        "$type" : "MoleMole.ConfigMovementTarget",

                        "Duration" : 0.1,

                        "Gravity" : 0.0,

                        "HitTangentialRatio" : 1,

                        "HitNormalRatio" : 1,

                        "TimesUpMoveOption" : "Stop",

                        //此处可迭代成LucyWoodFollowPoint点，参考Lucy_Wood_Summon.而LucyFollowPoint可拆分成SpawnPoint和TeleportPoint以及BranchAttackPoint等等

                        "TargetPosRot" : 

                        {

                            "CoordsOption" : "ReferTarget",

                            "TargetOption" : 

                            {

                                "$type" : "MoleMole.ConfigPosRotReferTarget",

                                "OffsetReferTarget": "Caster",

                            },

                            "Offset" : 

                            {

                                "PositionOffset" : {"x":0.5, "y":0.0, "z":-0.5},

                                "AngleOffset" : {"x":0.0, "y":0.0, "z":0.0},

                                "IsClampOffsetDistance" : false

                            }

                        },

                        "DefaultOffset" : {"x":0.0, "y":0.0, "z":0.0},



                        "MoveType":

                        {

                            "$type" : "MoleMole.MovementTypeInstant",

                            "NeedRayCastCheck" : false,  //本次瞬移能够穿墙

                        },



                        "TargetUpdateMode" : "Always",

                        "ReachTargetStop" : true

                    }

                },

            ]

        },



        "TeleportSubWoodModifier02":

		{

			"ModifierStacking": "Refresh",

			"Duration": 0.03,

			"IgnoreTimeScale": false,





            "OnAdded":

            [

                {

                    "$type": "MoleMole.ApplyLogicMoveAction",

                    "Target": "Custom",

                    "CustomKey": "LucyWood_AbilityTargetting_02",



                    "MovementConfig" :

                    {

                        "$type" : "MoleMole.ConfigMovementTarget",

                        "Duration" : 0.1,

                        "Gravity" : 0.0,

                        "HitTangentialRatio" : 1,

                        "HitNormalRatio" : 1,

                        "TimesUpMoveOption" : "Stop",

                        //此处可迭代成LucyWoodFollowPoint点，参考Lucy_Wood_Summon.而LucyFollowPoint可拆分成SpawnPoint和TeleportPoint以及BranchAttackPoint等等

                        "TargetPosRot" : 

                        {

                            "CoordsOption" : "ReferTarget",

                            "TargetOption" : 

                            {

                                "$type" : "MoleMole.ConfigPosRotReferTarget",

                                "OffsetReferTarget": "Caster",

                            },

                            "Offset" : 

                            {

                                "PositionOffset" : {"x":-0.5, "y":0.0, "z":-0.5},

                                "AngleOffset" : {"x":0.0, "y":0.0, "z":0.0},

                                "IsClampOffsetDistance" : false

                            }

                        },

                        "DefaultOffset" : {"x":0.0, "y":0.0, "z":0.0},



                        "MoveType":

                        {

                            "$type" : "MoleMole.MovementTypeInstant",

                            "NeedRayCastCheck" : false,  //本次瞬移能够穿墙

                        },



                        "TargetUpdateMode" : "Always",

                        "ReachTargetStop" : true

                    }

                },

            ]

        },







        //主猪等待吹口哨结束获得鼓舞

        "WaitForEncourageModifier00":

        {

            "ModifierStacking": "Refresh",

			"Duration": -1,

			"IgnoreTimeScale": false,



            "ModifierMixins":

            [

                {

                    "$type" : "MoleMole.AttachStateWithModifierMixin",

                    "ConfigList":

                    [

                        {

                            "AnimatorStateName": "Attack_Branch_02_Whistle",

                            "LayerIndex": 0,

                            "Target":"Self",

                            "NormalizedTimeLow": 0.467,

                            "NormalizedTimeHigh": 1.0,

                            "ModifierNameList":

                            [

                                "EncourageModifier00",

                            ],

                        },

                    ],

                },

            ],

        },



        "WaitForEncourageModifier01":

        {

            "ModifierStacking": "Refresh",

			"Duration": -1,

			"IgnoreTimeScale": false,



            "ModifierMixins":

            [

                {

                    "$type" : "MoleMole.AttachStateWithModifierMixin",

                    "ConfigList":

                    [

                        {

                            "AnimatorStateName": "Attack_Branch_02_Whistle",

                            "LayerIndex": 0,

                            "Target":"Self",

                            "NormalizedTimeLow": 0.467,

                            "NormalizedTimeHigh": 1.0,

                            "ModifierNameList":

                            [

                                "EncourageModifier01",

                                "AIReadyModifier01",

                            ],

                        },

                    ],

                },

            ],

        },



        "WaitForEncourageModifier02":

        {

            "ModifierStacking": "Refresh",

			"Duration": -1,

			"IgnoreTimeScale": false,



            "ModifierMixins":

            [

                {

                    "$type" : "MoleMole.AttachStateWithModifierMixin",

                    "ConfigList":

                    [

                        {

                            "AnimatorStateName": "Attack_Branch_02_Whistle",

                            "LayerIndex": 0,

                            "Target":"Self",

                            "NormalizedTimeLow": 0.467,

                            "NormalizedTimeHigh": 1.0,

                            "ModifierNameList":

                            [

                                "EncourageModifier02",

                                "AIReadyModifier02",

                            ],

                        },

                    ],

                },

            ],

        },



        "SwitchInModifier01":

        {

            "ModifierStacking": "Refresh",

			"Duration": 0.03,

			"IgnoreTimeScale": false,



            "OnAdded":

            [

                {

                    "$type" : "MoleMole.SetAnimCtrlerParamAction",

                    "ParamType" : 1,

                    "ParamName" : "Trigger_Switch_In",

                    "Target": "Custom",

                    "CustomKey": "LucyWood_AbilityTargetting_01",

                    "BoolVal" : true,

                },

                {

                    "$type" : "MoleMole.SetAnimCtrlerParamAction",

                    "ParamType" : 3,

                    "ParamName" : "Int_SwitchType_In",

                    "Target": "Custom",

                    "CustomKey": "LucyWood_AbilityTargetting_01",

                    "IntVal" : 1,

                },

            ]

        },



        "SwitchInModifier02":

        {

            "ModifierStacking": "Refresh",

			"Duration": 0.03,

			"IgnoreTimeScale": false,



            "OnAdded":

            [

                {

                    "$type" : "MoleMole.SetAnimCtrlerParamAction",

                    "ParamType" : 1,

                    "ParamName" : "Trigger_Switch_In",

                    "Target": "Custom",

                    "CustomKey": "LucyWood_AbilityTargetting_02",

                    "BoolVal" : true,

                },

                {

                    "$type" : "MoleMole.SetAnimCtrlerParamAction",

                    "ParamType" : 3,

                    "ParamName" : "Int_SwitchType_In",

                    "Target": "Custom",

                    "CustomKey": "LucyWood_AbilityTargetting_02",

                    "IntVal" : 1,

                },

            ]

        },



        "AIReadyModifier01":

        {

            "ModifierStacking": "Refresh",

			"Duration": -1,

			"IgnoreTimeScale": false,



            "OnRemoved":

            [

                {

                    "$type" : "MoleMole.TriggerBehaviorTreeAction",

                    "Target": "Custom",

                    "CustomKey": "LucyWood_AbilityTargetting_01",

                    "Enable": true,

                },

                {

                    "$type" : "MoleMole.WriteAIParamAction",

                    "Target": "Custom",

                    "CustomKey": "LucyWood_AbilityTargetting_01",

                    "ParamName" : "Int_ActionMode",

                    "IntParamValue" : 99,

                },

                {

                    "$type" : "MoleMole.WriteAIParamAction",

                    "Target": "Custom",

                    "CustomKey": "LucyWood_AbilityTargetting_01",

                    "ParamName" : "Bool_WoodShow",

                    "BoolParamValue" : true,

                },

            ]

        },



        "AIReadyModifier02":

        {

            "ModifierStacking": "Refresh",

			"Duration": -1,

			"IgnoreTimeScale": false,



            "OnRemoved":

            [

                {

                    "$type" : "MoleMole.TriggerBehaviorTreeAction",

                    "Target": "Custom",

                    "CustomKey": "LucyWood_AbilityTargetting_02",

                    "Enable": true,

                },

                {

                    "$type" : "MoleMole.WriteAIParamAction",

                    "Target": "Custom",

                    "CustomKey": "LucyWood_AbilityTargetting_02",

                    "ParamName" : "Int_ActionMode",

                    "IntParamValue" : 99,

                },

                {

                    "$type" : "MoleMole.WriteAIParamAction",

                    "Target": "Custom",

                    "CustomKey": "LucyWood_AbilityTargetting_02",

                    "ParamName" : "Bool_WoodShow",

                    "BoolParamValue" : true,

                },

            ]

        },



        "EncourageModifier00":

        {

            "ModifierStacking": "Refresh",

			"Duration": -1,

			"IgnoreTimeScale": false,



            "OnRemoved":

            [

                {

                    "$type" : "MoleMole.TriggerAbilityAction",

                    "AbilityName" : "Lucy_Wood_Encourage",

                    "Target" : "Self",

                },

                {

                    "$type" : "MoleMole.WriteAIParamAction",

                    "Target": "Self",

                    "ParamName" : "Int_ShouldWhistle",

                    "IntParamValue" : 0,

                },

            ]

        },



        "EncourageModifier01":

        {

            "ModifierStacking": "Refresh",

			"Duration": -1,

			"IgnoreTimeScale": false,



            "OnRemoved":

            [

                {

                    "$type" : "MoleMole.WriteAIParamAction",

                    "Target": "Custom",

                    "CustomKey": "LucyWood_AbilityTargetting_01",

                    "ParamName" : "Float_Encourage_Time",

                    "FloatParamValue" : 15,

                },

                {

                    "$type" : "MoleMole.WriteAIParamAction",

                    "Target": "Custom",

                    "CustomKey": "LucyWood_AbilityTargetting_01",

                    "ParamName" : "Bool_Encourage",

                    "BoolParamValue" : true,

                },

                {  

                    "$type" : "MoleMole.FireEffect",

                    "EffectPattern" : "Eff_Avatar_LevelUp_01",

                    "Target": "Custom",

                    "CustomKey": "LucyWood_AbilityTargetting_01",

                },

            ]

        },



        "EncourageModifier02":

        {

            "ModifierStacking": "Refresh",

			"Duration": -1,

			"IgnoreTimeScale": false,



            "OnRemoved":

            [

                {

                    "$type" : "MoleMole.WriteAIParamAction",

                    "Target": "Custom",

                    "CustomKey": "LucyWood_AbilityTargetting_02",

                    "ParamName" : "Float_Encourage_Time",

                    "FloatParamValue" : 15,

                },

                {

                    "$type" : "MoleMole.WriteAIParamAction",

                    "Target": "Custom",

                    "CustomKey": "LucyWood_AbilityTargetting_02",

                    "ParamName" : "Bool_Encourage",

                    "BoolParamValue" : true,

                },

                // {  

                //     "$type" : "MoleMole.FireEffect",

                //     "EffectPattern" : "Eff_Avatar_LevelUp_01",

                //     "Target": "Custom",

                //     "CustomKey": "LucyWood_AbilityTargetting_02",

                // },

            ]

        },



    }



}