{

    "AbilityName" : "Bangboo_Eous001_Skill_Resonate_Recover_Heal",

    "AbilityStacking":"Unique",



    //回复共鸣，回复量为两次释放期间，玩家所受到的最高单次伤害

    "DefaultModifier" :

    {

        "OnAdded" :

        [

            {

                "$type": "MoleMole.ApplyModifier",

                "ModifierName": "ListenDamageModifier",

                "Target" : "TeamAvatars"

            },

        ],

    },



    //回复共鸣，加血

    "OnAbilityStart":

    [

        {

            "$type": "MoleMole.ApplyModifier",

            "ModifierName": "FieldRangeModifier",

            "Target" : "Self"

        },

    ],



    "Modifiers" :

    {

        "ListenDamageModifier" : 

        {

            "ModifierStacking" : "Unique",

            "Duration" : -1,



            "OnBeingHitPre":

            [

                {

                    "$type": "MoleMole.SetAbilitySpecialsByPropertyAction",

                    "Target": "Self",

                    "ParamName": "AS_HPPre",

                    "ModifyFunction": "Replace",

                    "PropertyType" : "CurHP",

                    "Percentage" : 1.0

                },

            ],



            "OnBeingHitResolved":

            [

                {

                    "$type": "MoleMole.SetAbilitySpecialsByPropertyAction",

                    "Target": "Self",

                    "ParamName": "AS_HPResolved",

                    "ModifyFunction": "Replace",

                    "PropertyType" : "CurHP",

                    "Percentage" : 1.0

                },

                {

                    "$type": "MoleMole.SetAbilitySpecialAction",

                    "Target": "Self",

                    "ParamName": "AS_HPResolved",

                    "ParamType": "float",

                    "ModifyFunction": "Mul",

                    "Param": -1.0

                },

                {

                    "$type": "MoleMole.SetAbilitySpecialAction",

                    "Target": "Self",

                    "ParamName": "AS_HPPre",

                    "ParamType": "abilitySpecial_float",

                    "ModifyFunction": "Add",

                    "Param": "AS_HPResolved"

                },

                {

                    "$type": "MoleMole.SetAbilitySpecialAction",

                    "Target": "Self",

                    "ParamName": "AS_HealAmount_01",

                    "ParamType": "abilitySpecial_float",

                    "ModifyFunction": "Replace",

                    "Param": "AS_HPPre",

                    "Predicates": 

                    [

                        {

                            "$type" : "MoleMole.ByOriginalAvatarTeamIndex",

                            "Target" : "Self",

                            "TeamIndex": 1,

                        },

                        {

                            "$type" : "MoleMole.ByAbilitySpecial",

                            "Target" : "Self",

                            "ParamName": "AS_HealAmount_01",

                            "ParamType": "abilitySpecial_float",

                            "CompareType": "LessEqual",

                            "Param" : "AS_HPPre",

                        },

                    ]

                },

                {

                    "$type": "MoleMole.SetAbilitySpecialAction",

                    "Target": "Self",

                    "ParamName": "AS_HealAmount_02",

                    "ParamType": "abilitySpecial_float",

                    "ModifyFunction": "Replace",

                    "Param": "AS_HPPre",

                    "Predicates": 

                    [

                        {

                            "$type" : "MoleMole.ByOriginalAvatarTeamIndex",

                            "Target" : "Self",

                            "TeamIndex": 2,

                        },

                        {

                            "$type" : "MoleMole.ByAbilitySpecial",

                            "Target" : "Self",

                            "ParamName": "AS_HealAmount_02",

                            "ParamType": "abilitySpecial_float",

                            "CompareType": "LessEqual",

                            "Param" : "AS_HPPre",

                        },

                    ]

                },

                {

                    "$type": "MoleMole.SetAbilitySpecialAction",

                    "Target": "Self",

                    "ParamName": "AS_HealAmount_03",

                    "ParamType": "abilitySpecial_float",

                    "ModifyFunction": "Replace",

                    "Param": "AS_HPPre",

                    "Predicates": 

                    [

                        {

                            "$type" : "MoleMole.ByOriginalAvatarTeamIndex",

                            "Target" : "Self",

                            "TeamIndex": 3,

                        },

                        {

                            "$type" : "MoleMole.ByAbilitySpecial",

                            "Target" : "Self",

                            "ParamName": "AS_HealAmount_03",

                            "ParamType": "abilitySpecial_float",

                            "CompareType": "LessEqual",

                            "Param" : "AS_HPPre",

                        },

                    ]

                },

            ]

        },



        "FieldRangeModifier" : 

        {

            "ModifierStacking" : "MultipleRefresh",

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

            "IgnoreTimeScale" : false,



            "OnAdded" : 

            [

                {  

                    "$type" : "MoleMole.FireEffect",

                    "EffectPattern" : "Eff_Bangboo_Resonate_Recover_Cast_02",

                    "Target" : "Self",

                    "FireEffectPosRot" : 

                    {

                        "CoordsOption" : "ReferTarget",

                        "NeedRaycastGround": true,

                        //"RaycastGroundOffset": 0.0,

                        "TargetOption" : 

                        {

                            "$type" : "MoleMole.ConfigPosRotReferTarget",

                            "OffsetReferTarget" : "Self",



                            "AttachPoint" : "BombPoint",

                            "IsUseAttachPointPos" : true,

                            "IsUseAttachPointRotation" : false,

                        },

                        "Offset" : 

                        {

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

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

        

                            "IsUseRotationY" : false,

                            "IsUseRotationXZ" : false,

                        },

                    },

                }

            ],



            "ModifierMixins" : 

            [

                {

                    "$type": "MoleMole.FieldRangeMixin",

                    "TotalDuration": 2.5, //有效时长



                    //"StartEffectPattern": "Eff_RandomSkill_WeakenField_Start",

                    //"LoopEffectPattern": "Eff_Bangboo_Resonate_Recover_Cast_02",

                    //"EndEffectPattern": "Eff_RandomSkill_WeakenField_End",

                    "IsFollow": false,

                    

                    //力场初始位置

                    "FieldInitPosRot" : 

                    {

                        "CoordsOption" : "ReferTarget",

                        "NeedRaycastGround": true,

                        //"RaycastGroundOffset": 0.0,

                        "TargetOption" : 

                        {

                            "$type" : "MoleMole.ConfigPosRotReferTarget",

                            "OffsetReferTarget" : "Self",



                            "AttachPoint" : "BombPoint",

                            "IsUseAttachPointPos" : true,

                            "IsUseAttachPointRotation" : false,

                        },

                        "Offset" : 

                        {

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

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

        

                            "IsUseRotationY" : false,

                            "IsUseRotationXZ" : false,

                        },

                    },



                    "ColliderConfig":

                    {

                        "ColliderType" : "FanCylinder",

                        "FanCylinderColliderRadius" : 3,

                        "FanCylinderColliderHeight" : 12,

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

                            "Target" : "Target",

                            "Predicates": 

                            [

                                {

                                    "$type": "MoleMole.ByRelativeCampType",

                                    "Relationship": "Allied",

                                    "Target" : "Target",

                                },

                            ]

                        }

                    ],



                    //停止时

                    "FieldStopActions":

                    [

                        {

                            "$type": "MoleMole.SetAbilitySpecialAction",

                            "Target": "Self",

                            "ParamName": "AS_HealAmount_01",

                            "ParamType": "float",

                            "ModifyFunction": "Replace",

                            "Param": 0.0

                        },

                        {

                            "$type": "MoleMole.SetAbilitySpecialAction",

                            "Target": "Self",

                            "ParamName": "AS_HealAmount_02",

                            "ParamType": "float",

                            "ModifyFunction": "Replace",

                            "Param": 0.0

                        },

                        {

                            "$type": "MoleMole.SetAbilitySpecialAction",

                            "Target": "Self",

                            "ParamName": "AS_HealAmount_03",

                            "ParamType": "float",

                            "ModifyFunction": "Replace",

                            "Param": 0.0

                        },

                        {

                            "$type": "MoleMole.RemoveModifier",

                            "ModifierName": "HealModifier",

                            "Target" : "All",

                        },

                        {

                            "$type": "MoleMole.RemoveModifier",

                            "ModifierName": "FieldRangeModifier",

                            "Target" : "Self",

                        },

                    ],

                }

            ]

        },



        "HealModifier": 

        {

            "ModifierStacking" : "Unique",

            "Duration": -1,

            "OnAdded":

            [

                {

                    "$type": "MoleMole.ModifyProperty",

                    "PropertyType": "CurHP",

                    "IsUsePercentage": false,

                    "PropertyModifyFunction": "Add",

                    "Percentage": 0.0,

                    "Amount": "%AS_HealAmount_01",

                    "Target": "Self",

                    "Predicates" :

                    [

                        {

                            "$type" : "MoleMole.ByOriginalAvatarTeamIndex",

                            "Target" : "Self",

                            "TeamIndex": 1,

                        },

                    ]

                },

                {

                    "$type" : "MoleMole.FireEffect",

                    "EffectPattern" : "Eff_Common_HealSmall",

                    "Target" : "Self",

                    "Predicates" :

                    [

                        {

                            "$type" : "MoleMole.ByOriginalAvatarTeamIndex",

                            "Target" : "Self",

                            "TeamIndex": 1,

                        },

                        {

                            "$type" : "MoleMole.ByAbilitySpecial",

                            "Target" : "Self",

                            "ParamName": "AS_HealAmount_01",

                            "ParamType": "float",

                            "CompareType": "Greater",

                            "Param" : 0,

                        },

                    ]

                },

                {

                    "$type": "MoleMole.ModifyProperty",

                    "PropertyType": "CurHP",

                    "IsUsePercentage": false,

                    "PropertyModifyFunction": "Add",

                    "Percentage": 0.0,

                    "Amount": "%AS_HealAmount_02",

                    "Target": "Self",

                    "Predicates" :

                    [

                        {

                            "$type" : "MoleMole.ByOriginalAvatarTeamIndex",

                            "Target" : "Self",

                            "TeamIndex": 2,

                        },

                    ]

                },

                {

                    "$type" : "MoleMole.FireEffect",

                    "EffectPattern" : "Eff_Common_HealSmall",

                    "Target" : "Self",

                    "Predicates" :

                    [

                        {

                            "$type" : "MoleMole.ByOriginalAvatarTeamIndex",

                            "Target" : "Self",

                            "TeamIndex": 2,

                        },

                        {

                            "$type" : "MoleMole.ByAbilitySpecial",

                            "Target" : "Self",

                            "ParamName": "AS_HealAmount_02",

                            "ParamType": "float",

                            "CompareType": "Greater",

                            "Param" : 0,

                        },

                    ]

                },

                {

                    "$type": "MoleMole.ModifyProperty",

                    "PropertyType": "CurHP",

                    "IsUsePercentage": false,

                    "PropertyModifyFunction": "Add",

                    "Percentage": 0.0,

                    "Amount": "%AS_HealAmount_03",

                    "Target": "Self",

                    "Predicates" :

                    [

                        {

                            "$type" : "MoleMole.ByOriginalAvatarTeamIndex",

                            "Target" : "Self",

                            "TeamIndex": 3,

                        },

                    ]

                },

                {

                    "$type" : "MoleMole.FireEffect",

                    "EffectPattern" : "Eff_Common_HealSmall",

                    "Target" : "Self",

                    "Predicates" :

                    [

                        {

                            "$type" : "MoleMole.ByOriginalAvatarTeamIndex",

                            "Target" : "Self",

                            "TeamIndex": 3,

                        },

                        {

                            "$type" : "MoleMole.ByAbilitySpecial",

                            "Target" : "Self",

                            "ParamName": "AS_HealAmount_03",

                            "ParamType": "float",

                            "CompareType": "Greater",

                            "Param" : 0,

                        },

                    ]

                }

            ]

        }

    },



    "AbilitySpecials":

    {



        "AS_HPPre": 

        {

            "Value": 0.0

        },

        "AS_HPResolved": 

        {

            "Value": 0.0

        },

        "AS_HealAmount_01": 

        {

            "Value": 0.0

        },

        "AS_HealAmount_02": 

        {

            "Value": 0.0

        },

        "AS_HealAmount_03": 

        {

            "Value": 0.0

        },

    }

}