{

	//幽灵召唤及管理脚本

    "AbilityName" : "Lucy_Branch",

    "AbilityStacking": "Unique",



    "OnAbilityStart" :

    [



        {

            "$type": "MoleMole.ApplyModifier",

            "ModifierName": "TeleportMainWoodModifier01",

            "Target": "Custom",

            "CustomKey": "LucyWood_AbilityTargetting_00",

            

            "Predicates" : 

            [

                {

                    "$type": "MoleMole.ByAnimatorStateNormalizedTime",

                    "AnimatorStateName": "Attack_Branch_01_Start",

                    "Target":"Self",

                    "LayerIndex": 0,

                    "NormalizedTimeLow" : 0.0,

                    "NormalizedTimeHigh" : 1.0,

                },

            ],

        },



        {

            "$type": "MoleMole.ApplyModifier",

            "ModifierName": "FadeInWoodModifier",

            "Target": "Custom",

            "CustomKey": "LucyWood_AbilityTargetting_00",

        },



        {

            "$type": "MoleMole.ApplyModifier",

            "ModifierName": "AIModifier",

            "Target": "Custom",

            "CustomKey": "LucyWood_AbilityTargetting_00",

        },



        {

            "$type": "MoleMole.ApplyModifier",

            "ModifierName": "ControllerModifier01",

            "Target": "Custom",

            "CustomKey": "LucyWood_AbilityTargetting_00",

            "Predicates" : 

            [

                {

                    "$type": "MoleMole.ByAnimatorStateNormalizedTime",

                    "AnimatorStateName": "Attack_Branch_01_Start",

                    "Target":"Self",

                    "LayerIndex": 0,

                    "NormalizedTimeLow" : 0.0,

                    "NormalizedTimeHigh" : 1.0,

                },

            ],

        },



        {

            "$type": "MoleMole.ApplyModifier",

            "ModifierName": "TeleportMainWoodModifier02",

            "Target": "Custom",

            "CustomKey": "LucyWood_AbilityTargetting_00",

            "Predicates" : 

            [

                {

                    "$type": "MoleMole.ByAnimatorStateNormalizedTime",

                    "AnimatorStateName": "Attack_Branch_02_Start",

                    "Target":"Self",

                    "LayerIndex": 0,

                    "NormalizedTimeLow" : 0.0,

                    "NormalizedTimeHigh" : 1.0,

                },

            ],

        },



        {

            "$type": "MoleMole.ApplyModifier",

            "ModifierName": "ControllerModifier02",

            "Target": "Custom",

            "CustomKey": "LucyWood_AbilityTargetting_00",

            "Predicates" : 

            [

                {

                    "$type": "MoleMole.ByAnimatorStateNormalizedTime",

                    "AnimatorStateName": "Attack_Branch_02_Start",

                    "Target":"Self",

                    "LayerIndex": 0,

                    "NormalizedTimeLow" : 0.0,

                    "NormalizedTimeHigh" : 1.0,

                },

            ],

        },



        {

            "$type": "MoleMole.ApplyModifier",

            "ModifierName": "RandomJumpModifier",

            "Target": "Self",

        }

    ],



    "Modifiers":

    {

        "TeleportMainWoodModifier01":

		{

			"ModifierStacking": "Refresh",

			"Duration": 0.03,

			"IgnoreTimeScale": false,



            "OnAdded":

            [

                {

                    "$type": "MoleMole.ApplyLogicMoveAction",

                    "Target": "Self",



                    "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",

                                "AttachPoint" : "WoodBranchPoint01",

                                "IsUseAttachPointPos" : true,

                                "IsUseAttachPointRotation" : true

                            },

                            "Offset" : 

                            {

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

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

                                "IsClampOffsetDistance" : false

                            }

                        },

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



                        "MoveType":

                        {

                            "$type" : "MoleMole.MovementTypeInstant",

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

                        },

                        

                        "TargetUpdateMode" : "Always",

                        "ReachTargetStop" : true

                    },



                    "RotationConfig" :

                    {   

                        "$type" : "MoleMole.ConfigRotationToTarget",

                        "Duration" : -1,

                        "TargetPosRot" : 

                        {

                            "CoordsOption" : "ReferTarget",

                            "TargetOption" : 

                            {

                                "$type" : "MoleMole.ConfigPosRotReferTarget",

                                "OffsetReferTarget" : "Caster",

                            },

                            "Offset" : 

                            {

                                //看向目标点前方无限远处，即和目标点朝向保持一致

                                "PositionOffset" : {"x":0.0, "y":0.0, "z":9999.0},

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

                                "IsUseRotationY" : true,

                                "IsUseRotationXZ" : true,

                                "IsClampOffsetDistance" : false

                            }

                        },

                        "RotateType" : "Instant",

                        "RotateSpeed" : 1,

                        "TargetUpdateMode" : "OnStart",

                        "ReachTargetStop" : true

                    },

                },

            ]

        },



        "AIModifier":

        {

            "ModifierStacking": "Refresh",

			"Duration": 0.03,

			"IgnoreTimeScale": false,



            "OnAdded":

            [

                {

                    "$type" : "MoleMole.WriteAIParamAction",

                    "Target" : "Self",

                    "ParamName" : "Int_ActionMode",

                    "IntParamValue" : 99,

                }

            ]

        },



        "ControllerModifier01":

        {

            "ModifierStacking": "Refresh",

			"Duration": 0.03,

			"IgnoreTimeScale": false,



            "OnAdded":

            [

                {

                    "$type" : "MoleMole.SetAnimCtrlerParamAction",

                    "ParamType" : 3,

                    "ParamName" : "Int_AttackIndex",

                    "Target" : "Self",

                    "IntVal" : 4,

                },

                {

                    "$type" : "MoleMole.SetAnimCtrlerParamAction",

                    "ParamType" : 1,

                    "ParamName" : "Trigger_PressAttackA",

                    "Target" : "Self",

                    "BoolVal" : true,

                },

            ]

        },



        "TeleportMainWoodModifier02":

		{

			"ModifierStacking": "Refresh",

			"Duration": 0.03,

			"IgnoreTimeScale": false,



            "OnAdded":

            [

                {

                    "$type": "MoleMole.ApplyLogicMoveAction",

                    "Target": "Self",



                    "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",

                                "AttachPoint" : "WoodBranchPoint02",

                                "IsUseAttachPointPos" : true,

                                "IsUseAttachPointRotation" : true

                            },

                            "Offset" : 

                            {

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

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

                                "IsClampOffsetDistance" : false

                            }

                        },

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



                        "MoveType":

                        {

                            "$type" : "MoleMole.MovementTypeInstant",

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

                        },

                        

                        "TargetUpdateMode" : "Always",

                        "ReachTargetStop" : true

                    },



                    "RotationConfig" :

                    {   

                        "$type" : "MoleMole.ConfigRotationToTarget",

                        "Duration" : -1,

                        "TargetPosRot" : 

                        {

                            "CoordsOption" : "ReferTarget",

                            "TargetOption" : 

                            {

                                "$type" : "MoleMole.ConfigPosRotReferTarget",

                                "OffsetReferTarget" : "Caster",

                            },

                            "Offset" : 

                            {

                                //看向目标点前方无限远处，即和目标点朝向保持一致

                                "PositionOffset" : {"x":0.0, "y":0.0, "z":9999.0},

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

                                "IsUseRotationY" : true,

                                "IsUseRotationXZ" : true,

                                "IsClampOffsetDistance" : false

                            }

                        },

                        "RotateType" : "Instant",

                        "RotateSpeed" : 1,

                        "TargetUpdateMode" : "OnStart",

                        "ReachTargetStop" : true

                    },

                },

            ]

        },



        "FadeInWoodModifier":

        {

            "ModifierStacking": "Refresh",

			"Duration": 0.03,

			"IgnoreTimeScale": false,



            "OnAdded":

            [

                {

                    "$type": "MoleMole.DitherFadeAction",

                    "DitherFadeType": "FadeIn",

                    "DitherFadeKey": "Default_Dither_Alpha_FadeIn",

                    "Duration": 0.3,

                    "Target" : "Self"

                },

            ],



        },



        "ControllerModifier02":

        {

            "ModifierStacking": "Refresh",

			"Duration": 0.03,

			"IgnoreTimeScale": false,



            "OnAdded":

            [

                {

                    "$type" : "MoleMole.SetAnimCtrlerParamAction",

                    "ParamType" : 3,

                    "ParamName" : "Int_AttackIndex",

                    "Target" : "Self",

                    "IntVal" : 5,

                },

                {

                    "$type" : "MoleMole.SetAnimCtrlerParamAction",

                    "ParamType" : 1,

                    "ParamName" : "Trigger_PressAttackA",

                    "Target" : "Self",

                    "BoolVal" : true,

                },

            ]

        },



        "RandomJumpModifier":

        {

            "ModifierStacking": "Refresh",

			"Duration": 0.03,

			"IgnoreTimeScale": false,



            "OnAdded":

            [

                {

                    "$type" : "MoleMole.RandomOperator",

                    "Target" : "Self",

                    "Odds" : 0.333,

                    "OnSuccess" : 

                    [

                        {

                            "$type" : "MoleMole.SetAnimCtrlerParamAction",

                            "ParamType" : 3,

                            "ParamName" : "Int_JumpIndex",

                            "Target": "Custom",

                            "CustomKey": "LucyWood_AbilityTargetting_00",

                            "IntVal" : 0,

                        },

                    ],

                    "OnFailure": 

                    [

                        {

                            "$type" : "MoleMole.RandomOperator",

                            "Target" : "Self",

                            "Odds" : 0.5,



                            "OnSuccess" : 

                            [

                                {

                                    "$type" : "MoleMole.SetAnimCtrlerParamAction",

                                    "ParamType" : 3,

                                    "ParamName" : "Int_JumpIndex",

                                    "Target": "Custom",

                                    "CustomKey": "LucyWood_AbilityTargetting_00",

                                    "IntVal" : 1,

                                },

                            ],

                            "OnFailure": 

                            [

                                {

                                    "$type" : "MoleMole.SetAnimCtrlerParamAction",

                                    "ParamType" : 3,

                                    "ParamName" : "Int_JumpIndex",

                                    "Target": "Custom",

                                    "CustomKey": "LucyWood_AbilityTargetting_00",

                                    "IntVal" : 2,

                                },

                            ]

                        }

                    ]

                }

            ]

        }

    }



}