{

    "AbilityName" : "Core_Default_02",

    "AbilityStacking":"Unique",



    "DefaultModifier" : 

    {

        "OnAdded" :

        [

            {

                "$type": "MoleMole.ApplyModifier",

                "ModifierName": "FieldRangeModifier",

                "Target" : "Self"

            },

            {

                "$type": "MoleMole.ApplyLogicMoveAction",

                "Target": "Self",

                "MovementConfig" :

                {

                    "$type" : "MoleMole.ConfigMovementSimple",

                    "Duration" : 0.5,

                    "Gravity" : 0.0,

                    "HitTangentialRatio" : 1,

                    "HitNormalRatio" : 1,

                    "TimesUpMoveOption" : "Stop",

                    

                    "InitVelocity" : {"x":0.0, "y":10.0, "z":0.0},

                    "Acceleration" : {"x":0.0, "y":-20.0, "z":0.0},

                    "CoordinateType" : "Local",

                },

            }

        ],



        "DelayHandlers" :

        [

            {  

                "DelayTime" : 2,

                "TimeUpActions":

                [

                    {

                        "$type": "MoleMole.ApplyModifier",

                        "ModifierName": "CloseModifier",

                        "Target" : "Self",

                        "Predicates": 

                        [

                            {

                                "$type" : "MoleMole.ByAbilitySpecial",

                                "Target" : "Self",

                                "ParamName": "AlliedNum",

                                "ParamType": "int",

                                "CompareType": "Equal",

                                "Param" : 0,

                            },

                            // {

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

                            //     "Numerator": "Custom",

                            //     "CustomNumerator": "AlliedNum",

                            //     //"Denominator": "MaxAlliedNum",

                            //     "IsUsePercent": false,

                            //     "CompareType": "LessEqual",

                            //     "Val1" : 0,

                            //     //"Val2" : 300,

                            //     "Target" : "Self"

                            // },

                        ]

                    },

                ]

            },

        ],

    },



    "OnAbilityStart":

    [

        // {

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

        //     "ModifierName": "FieldRangeModifier",

        //     "Target" : "Self",

        //     // "Predicates" :

        //     // [

        //     //     {

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

        //     //         "AnimatorStateName": "Core_Born",

        //     //         "LayerIndex": 0,

        //     //         "NormalizedTimeLow" : 0.0,

        //     //         "NormalizedTimeHigh" : 1.0,

        //     //     },

        //     // ]

        // },

        {

            "$type": "MoleMole.RemoveModifier",

            "ModifierName": "FieldRangeModifier",

            "Target" : "Self",

            // "Predicates" :

            // [

            //     {

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

            //         "AnimatorStateName": "Core_Close",

            //         "LayerIndex": 0,

            //         "NormalizedTimeLow" : 0.0,

            //         "NormalizedTimeHigh" : 1.0,

            //     },

            // ]

        },

    ],



    // "AbilityMixins" : 

    // [

    //     {

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

    //         "ConfigList":

    //         [

    //             {

    //                 "AnimatorStateName": "Core_Idle",

    //                 "LayerIndex": 0,

    //                 "NormalizedTimeLow": 0.0,

    //                 "NormalizedTimeHigh": 1.0,

    //                 "IsLoop": true,

    //                 "ModifierNameList":

    //                 [

    //                     "SpecialEffectModifier"

    //                 ] 

    //             }

    //         ]

    //     }

    // ],



    "Modifiers" :

    {

        "FieldRangeModifier" : 

        {

            "ModifierStacking" : "Refresh",

            "Duration" : -1, //ModifierMixin与Modifier同生共死



            "ModifierMixins" : 

            [

                {

                    "$type": "MoleMole.FieldRangeMixin",



                    "StartEffectPattern": "Eff_TestField_Start",

                    "LoopEffectPattern": "Eff_TestField_Loop",

                    "EndEffectPattern": "Eff_TestField_End",

                    "IsFollow": true,

                    

                    //力场初始位置

                    "FieldInitPosRot" : 

                    {

                        "CoordsOption" : "Self",

                        "TargetOption" : 

                        {

                            "$type" : "MoleMole.ConfigPosRotReferTarget",

                            "OffsetReferTarget" : "Self",

                        },

                        "Offset" : 

                        {

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

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

        

                            "IsUseRotationY" : true,

                            "IsUseRotationXZ" : false,

                        },

                    },



                    //力场判定尺寸及位置

                    "ColliderConfig":

                    {

                        "ColliderType" : "FanCylinder",

                        "FanCylinderColliderRadius" : 9,

                        "FanCylinderColliderHeight" : 10,

                        "FanCylinderColliderAngle" : 360,

                        "FanCylinderColliderVertexNum" :24,

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

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

                    },



                    //进入时

                    "FieldEnterActions":

                    [

                        {

                            "$type": "MoleMole.ApplyModifier",

                            "ModifierName": "EnterModifier",

                            "Target" : "Self",

                            "Predicates": 

                            [

                                {

                                    "$type": "MoleMole.ByRelativeCampType",

                                    "Relationship": "Allied",

                                    "Target" : "Target",

                                },

                                // {

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

                                //     "Target": "Target",

                                //     "CompareType" : "NotEqual",  

                                //     "ModelPath" : "Char/Monster/Monster_Core/Monster_Core"

                                // },



                                // {

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

                                //     "Target": "Target",

                                //     "CompareType" : "NotEqual",  

                                //     "ModelPath" : "Char/Summon/Summon_Core"

                                // },

                                {

                                    "$type": "MoleMole.ByNot",

                                    "Predicates": 

                                    [

                                        {

                                            "$type": "MoleMole.ByEntityTemplateID",

                                            "Target": "Target",

                                            "EntityType": "Monster",

                                            "TemplateID": 14021

                                        },

                                    ],

                                },

                                {

                                    "$type": "MoleMole.ByNot",

                                    "Predicates": 

                                    [

                                        {

                                            "$type": "MoleMole.ByEntityTemplateID",

                                            "Target": "Target",

                                            "EntityType": "Monster",

                                            "TemplateID": 21041

                                        },

                                    ],

                                },

                            ]

                        }

                    ],



                    //退出时

                    "FieldExitActions":

                    [

                        {

                            "$type": "MoleMole.ApplyModifier",

                            "ModifierName": "ExitModifier",

                            "Target" : "Self",

                            "Predicates": 

                            [

                                {

                                    "$type": "MoleMole.ByRelativeCampType",

                                    "Relationship": "Allied",

                                    "Target" : "Target",

                                },

                                // {

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

                                    //     "Target": "Target",

                                    //     "CompareType" : "NotEqual",  

                                    //     "ModelPath" : "Char/Monster/Monster_Core/Monster_Core"

                                    // },

                                    // {

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

                                        //     "Target": "Target",

                                        //     "CompareType" : "NotEqual",  

                                        //     "ModelPath" : "Char/Summon/Summon_Core"

                                        // },

                                {

                                    "$type": "MoleMole.ByNot",

                                    "Predicates": 

                                    [

                                        {

                                            "$type": "MoleMole.ByEntityTemplateID",

                                            "Target": "Target",

                                            "EntityType": "Monster",

                                            "TemplateID": 14021

                                        },

                                    ],

                                },

                                {

                                    "$type": "MoleMole.ByNot",

                                    "Predicates": 

                                    [

                                        {

                                            "$type": "MoleMole.ByEntityTemplateID",

                                            "Target": "Target",

                                            "EntityType": "Monster",

                                            "TemplateID": 21041

                                        },

                                    ],

                                },

                            ]

                        }

                    ],

                }

            ]

        },



        "EnterModifier": 

        {

            "ModifierStacking" : "MultipleRefresh",

            "Duration": 1.0,

            "OnAdded":

            [

                {  

                    "$type" : "MoleMole.FireEffect",

                    "EffectPattern" : "Eff_Avatar_LevelUp_01",

                    "Target" : "Self",

                },

                {

                    "$type": "MoleMole.SetAbilitySpecialAction",

                    "ParamName": "AlliedNum",

                    "ParamType": "int",

                    "ModifyFunction": "Add",

                    "Param": 1,

                },

                {

                    "$type": "MoleMole.ModifyProperty",

                    "PropertyType": "Custom",

                    "CustomPropertyType": "AlliedNum",

                    "PropertyModifyFunction": "Add",

                    "Percentage": 0,

                    "Amount": 1,

                },

                {

                    "$type": "MoleMole.ApplyModifier",

                    "ModifierName": "CloseModifier",

                    "Target" : "Self",

                    "Predicates": 

                    [

                        // {

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

                        //     "Numerator": "Custom",

                        //     "CustomNumerator": "AlliedNum",

                        //     //"Denominator": "MaxAlliedNum",

                        //     "IsUsePercent": false,

                        //     "CompareType": "LessEqual",

                        //     "Val1" : 0,

                        //     //"Val2" : 300,

                        //     "Target" : "Self"

                        // },

                        {

                            "$type" : "MoleMole.ByAbilitySpecial",

                            "Target" : "Self",

                            "ParamName": "AlliedNum",

                            "ParamType": "int",

                            "CompareType": "Equal",

                            "Param" : 0,

                        },

                    ]

                },

            ]

        },



        "ExitModifier": 

        {

            "ModifierStacking" : "MultipleRefresh",

            "Duration": 1.0,

            "OnAdded":

            [

                {  

                    "$type" : "MoleMole.FireEffect",

                    "EffectPattern" : "Eff_Avatar_LevelUp_02",

                    "Target" : "Self",

                },

                {

                    "$type": "MoleMole.SetAbilitySpecialAction",

                    "ParamName": "AlliedNum",

                    "ParamType": "int",

                    "ModifyFunction": "Add",

                    "Param": -1,

                },

                {

                    "$type": "MoleMole.ModifyProperty",

                    "PropertyType": "Custom",

                    "CustomPropertyType": "AlliedNum",

                    "PropertyModifyFunction": "Add",

                    "Percentage": 0,

                    "Amount": -1,

                },

                {

                    "$type": "MoleMole.ApplyModifier",

                    "ModifierName": "CloseModifier",

                    "Target" : "Self",

                    "Predicates": 

                    [

                        // {

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

                        //     "Numerator": "Custom",

                        //     "CustomNumerator": "AlliedNum",

                        //     //"Denominator": "MaxAlliedNum",

                        //     "IsUsePercent": false,

                        //     "CompareType": "LessEqual",

                        //     "Val1" : 0,

                        //     //"Val2" : 300,

                        //     "Target" : "Self"

                        // },

                        {

                            "$type" : "MoleMole.ByAbilitySpecial",

                            "Target" : "Self",

                            "ParamName": "AlliedNum",

                            "ParamType": "int",

                            "CompareType": "Equal",

                            "Param" : 0,

                        },

                    ]

                },

            ]

        },



        "OpenModifier": 

        {

            "ModifierStacking" : "MultipleRefresh",

            "Duration": 1.0,

            "OnAdded":

            [

                {

                    "$type" : "MoleMole.SetAnimCtrlerParamAction",

                    "ParamType" : 2,

                    "ParamName" : "Bool_IsOperating",

                    "Target" : "Self",

                    "BoolVal" : true,

                }

            ]

        },



        "CloseModifier": 

        {

            "ModifierStacking" : "MultipleRefresh",

            "Duration": 1.0,

            "OnAdded":

            [

                {

                    "$type" : "MoleMole.SetAnimCtrlerParamAction",

                    "ParamType" : 2,

                    "ParamName" : "Bool_IsOperating",

                    "Target" : "Self",

                    "BoolVal" : false,

                },

                {

                    "$type": "MoleMole.ApplyLogicMoveAction",

                    "Target": "Self",

                    "MovementConfig" :

                    {

                        "$type" : "MoleMole.ConfigMovementSimple",

                        "Duration" : -1,

                        "Gravity" : -40.0,

                        "MaxHitNumber" : 3,

                        "HitTangentialRatio" : 1,

                        "HitNormalRatio" : 1,

                        "TimesUpMoveOption" : "Remain",

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

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

                        "CoordinateType" : "Local",

                    },

                }

                //开启此RemoveModifier后，游戏卡死

                // {

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

                //     "ModifierName": "FieldRangeModifier",

                //     "Target" : "Self",

                // },

            ]

        },



        "TestModifier_01": 

        {

            "ModifierStacking" : "MultipleRefresh",

            "Duration": 1.0,

            "OnAdded":

            [

                {  

                  "$type" : "MoleMole.FireEffect",

                  "EffectPattern" : "Eff_Avatar_LevelUp_01",

                  "Target" : "Self"

                }

            ]

        },



        "TestModifier_02": 

        {

            "ModifierStacking" : "MultipleRefresh",

            "Duration": 1.0,

            "OnAdded":

            [

                {  

                  "$type" : "MoleMole.FireEffect",

                  "EffectPattern" : "Eff_Avatar_LevelUp_02",

                  "Target" : "Self"

                }

            ]

        },



        "SpecialEffectModifier":

        {

            "ModifierStacking": "Unique",

            "Duration": -1,



            "OnAdded" :  

            [

                {

                    "$type": "MoleMole.AttachEffect",

                    "EffectPattern": "Eff_Common_Core_Idle",

                    "Target": "Self",

                    "AttachEffectPosRot" : 

                    {

                        "CoordsOption" : "ReferTarget",

                        "TargetOption" : 

                        {

                            "$type" : "MoleMole.ConfigPosRotReferTarget",

                            "OffsetReferTarget" : "Self",

                            "AttachPoint" : "MiddlePoint",

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

                            "IsUseRotationY" : true,

                            "IsUseRotationXZ" : true

                        }

                    }

                }

            ]

        }

    },



    "AbilitySpecials" : 

    {

        "AlliedNum" :

        {

            "Value" : 0,

        },

    }

}