{

    //挂于土方本体的控制幽灵显示与隐藏脚本

    "AbilityName": "Unagi_Follower_ShowandHidewithState",

    "AbilityStacking": "Unique",



    "OnAbilityStart":

    [

        {

            "$type": "MoleMole.ApplyModifier",

            "ModifierName": "HidewithStateModifier",

        }

    ],



    "AbilityMixins": 

    [

        {

            "$type": "MoleMole.ActwithStateFrameMixin",

            "ConfigList": 

            [

                //显示幽灵（持续）

                {

                    "AnimatorStateName": "Born",

                    "LayerIndex": 0,

                    "Frame": 0,

                    "ForceTriggerOnTransitionOut": true,

                    "IsLoop": false,

                    "ActionList": 

                    [

                        {

                            "$type": "MoleMole.ApplyModifier",

                            "ModifierName": "ShowGhostModifier",

                            "Target": "Self",

                        }

                    ]

                },

                {

                    "AnimatorStateName": "SwitchIn_Normal",

                    "LayerIndex": 0,

                    "Frame": 0,

                    "ForceTriggerOnTransitionOut": true,

                    "IsLoop": false,

                    "ActionList": 

                    [

                        {

                            "$type": "MoleMole.ApplyModifier",

                            "ModifierName": "ShowGhostModifier",

                            "Target": "Self",

                        }

                    ]

                },

                //隐藏幽灵（持续）

                {

                    "AnimatorStateName": "SwitchOut_Normal",

                    "LayerIndex": 0,

                    "Frame": 22,

                    "ForceTriggerOnTransitionOut": true,

                    "IsLoop": false,

                    "ActionList": 

                    [

                        {

                            "$type": "MoleMole.ApplyModifier",

                            "ModifierName": "HideGhostModifier",

                            "Target": "Self",

                        }

                    ]

                },

                {

                    "AnimatorStateName": "SwitchOut_Attack",

                    "LayerIndex": 0,

                    "Frame": 0,

                    "ForceTriggerOnTransitionOut": true,

                    "IsLoop": false,

                    "ActionList": 

                    [

                        {

                            "$type": "MoleMole.ApplyModifier",

                            "ModifierName": "HideGhostModifier",

                            "Target": "Self",

                        }

                    ]

                },

                {

                    "AnimatorStateName": "Death",

                    "LayerIndex": 0,

                    "Frame": 0,

                    "ForceTriggerOnTransitionOut": true,

                    "IsLoop": false,

                    "ActionList": 

                    [

                        {

                            "$type": "MoleMole.ApplyModifier",

                            "ModifierName": "HideGhostModifier",

                            "Target": "Self",

                        }

                    ]

                }

            ]

        },

        {

            "$type": "MoleMole.AttachStateWithModifierMixin",

            "ConfigList": 

            [

                //隐藏幽灵（特定动画中）

                {

                    "AnimatorStateName": "Attack_Normal_05",

                    "LayerIndex": 0,

                    "MaxFrameCountLow": false,

                    "FrameCountLow": 0,

                    "MaxFrameCountHigh": false,

                    "FrameCountHigh": 58,

                    "IsLoop": false,

                    "ModifierNameList": 

                    [

                        "HidewithStateModifier",

                        "HidewithStateModifier_Controller",

                    ]

                },

                {

                    "AnimatorStateName": "Attack_Normal_06",

                    "LayerIndex": 0,

                    "MaxFrameCountLow": false,

                    "FrameCountLow": 0,

                    "MaxFrameCountHigh": true,

                    "FrameCountHigh": 0,

                    "IsLoop": false,

                    "ModifierNameList": 

                    [

                        "HidewithStateModifier",

                        "HidewithStateModifier_Controller",

                    ]

                },

                {

                    "AnimatorStateName": "Attack_Normal_06_02",

                    "LayerIndex": 0,

                    "MaxFrameCountLow": false,

                    "FrameCountLow": 0,

                    "MaxFrameCountHigh": true,

                    "FrameCountHigh": 0,

                    "IsLoop": false,

                    "ModifierNameList": 

                    [

                        "HidewithStateModifier",

                        "HidewithStateModifier_Controller",

                    ]

                },

                {

                    "AnimatorStateName": "Attack_Normal_06_02_End",

                    "LayerIndex": 0,

                    "MaxFrameCountLow": false,

                    "FrameCountLow": 0,

                    "MaxFrameCountHigh": false,

                    "FrameCountHigh": 51,

                    "IsLoop": false,

                    "ModifierNameList": 

                    [

                        "HidewithStateModifier",

                        "HidewithStateModifier_Controller",

                    ]

                },

                {

                    "AnimatorStateName": "Attack_Branch_02_Attack_01",

                    "LayerIndex": 0,

                    "MaxFrameCountLow": false,

                    "FrameCountLow": 0,

                    "MaxFrameCountHigh": true,

                    "FrameCountHigh": 0,

                    "IsLoop": false,

                    "ModifierNameList": 

                    [

                        "HidewithStateModifier",

                        "HidewithStateModifier_Controller",

                    ]

                },

                {

                    "AnimatorStateName": "Attack_Branch_02_Attack_02",

                    "LayerIndex": 0,

                    "MaxFrameCountLow": false,

                    "FrameCountLow": 0,

                    "MaxFrameCountHigh": true,

                    "FrameCountHigh": 0,

                    "IsLoop": false,

                    "ModifierNameList": 

                    [

                        "HidewithStateModifier",

                        "HidewithStateModifier_Controller",

                    ]

                },

                {

                    "AnimatorStateName": "Attack_Branch_03_Attack_01",

                    "LayerIndex": 0,

                    "MaxFrameCountLow": false,

                    "FrameCountLow": 0,

                    "MaxFrameCountHigh": false,

                    "FrameCountHigh": 52,

                    "IsLoop": false,

                    "ModifierNameList": 

                    [

                        "HidewithStateModifier",

                        "HidewithStateModifier_Controller",

                    ]

                },

                {

                    "AnimatorStateName": "Attack_Branch_Start_01",

                    "LayerIndex": 0,

                    "MaxFrameCountLow": false,

                    "FrameCountLow": 0,

                    "MaxFrameCountHigh": true,

                    "FrameCountHigh": 0,

                    "IsLoop": false,

                    "ModifierNameList": 

                    [

                        "HidewithStateModifier_Controller",

                    ]

                },

                {

                    "AnimatorStateName": "Attack_Branch_Start_02",

                    "LayerIndex": 0,

                    "MaxFrameCountLow": false,

                    "FrameCountLow": 0,

                    "MaxFrameCountHigh": true,

                    "FrameCountHigh": 0,

                    "IsLoop": false,

                    "ModifierNameList": 

                    [

                        "HidewithStateModifier_Controller",

                    ]

                },

                {

                    "AnimatorStateName": "Attack_Branch_Start_03",

                    "LayerIndex": 0,

                    "MaxFrameCountLow": false,

                    "FrameCountLow": 0,

                    "MaxFrameCountHigh": true,

                    "FrameCountHigh": 0,

                    "IsLoop": false,

                    "ModifierNameList": 

                    [

                        "HidewithStateModifier_Controller",

                    ]

                },

                {

                    "AnimatorStateName": "Attack_Branch_Start_04",

                    "LayerIndex": 0,

                    "MaxFrameCountLow": false,

                    "FrameCountLow": 0,

                    "MaxFrameCountHigh": true,

                    "FrameCountHigh": 0,

                    "IsLoop": false,

                    "ModifierNameList": 

                    [

                        "HidewithStateModifier",

                        "HidewithStateModifier_Controller",

                    ]

                },

                {

                    "AnimatorStateName": "Attack_Rush_02",

                    "LayerIndex": 0,

                    "MaxFrameCountLow": false,

                    "FrameCountLow": 0,

                    "MaxFrameCountHigh": true,

                    "FrameCountHigh": 0,

                    "IsLoop": false,

                    "ModifierNameList": 

                    [

                        "HidewithStateModifier",

                        "HidewithStateModifier_Controller",

                    ]

                },

                {

                    "AnimatorStateName": "Attack_Counter",

                    "LayerIndex": 0,

                    "MaxFrameCountLow": false,

                    "FrameCountLow": 0,

                    "MaxFrameCountHigh": true,

                    "FrameCountHigh": 0,

                    "IsLoop": false,

                    "ModifierNameList": 

                    [

                        "HidewithStateModifier",

                        "HidewithStateModifier_Controller",

                    ]

                },

                {

                    "AnimatorStateName": "SwitchIn_Attack",

                    "LayerIndex": 0,

                    "MaxFrameCountLow": false,

                    "FrameCountLow": 0,

                    "MaxFrameCountHigh": true,

                    "FrameCountHigh": 0,

                    "IsLoop": false,

                    "ModifierNameList": 

                    [

                        "HidewithStateModifier",

                        "HidewithStateModifier_Controller",

                    ]

                },

                {

                    "AnimatorStateName": "SwitchIn_Attack_Ex_Start",

                    "LayerIndex": 0,

                    "MaxFrameCountLow": false,

                    "FrameCountLow": 0,

                    "MaxFrameCountHigh": true,

                    "FrameCountHigh": 0,

                    "IsLoop": false,

                    "ModifierNameList": 

                    [

                        "HidewithStateModifier",

                        "HidewithStateModifier_Controller",

                    ]

                },

                {

                    "AnimatorStateName": "SwitchIn_Attack_Ex",

                    "LayerIndex": 0,

                    "MaxFrameCountLow": false,

                    "FrameCountLow": 0,

                    "MaxFrameCountHigh": true,

                    "FrameCountHigh": 0,

                    "IsLoop": false,

                    "ModifierNameList": 

                    [

                        "HidewithStateModifier",

                        "HidewithStateModifier_Controller",

                    ]

                }

            ]

        }

    ],



    "Modifiers": 

    {

        //显示幽灵以及特效

        "ShowGhostModifier": 

        {

            "ModifierStacking": "Unique",

            "Duration": -1,

            

            "OnAdded": 

            [

                {

                    "$type": "MoleMole.RemoveModifier",

                    "ModifierName": "HideGhostModifier",

                    "Target": "Self",

                },

                {

                    "$type" : "MoleMole.PopEntityVisibleWithTagAction",

                    "Tag" : "UnagiGhost",

                    "Target": "Custom",

                    "CustomKey": "UnagiGhost_AbilityTargetting_01"

                },

                {

                    "$type": "MoleMole.ApplyModifier",

                    "ModifierName": "AttachEffectModifier",

                    "Target": "Custom",

                    "CustomKey": "UnagiGhost_AbilityTargetting_01"

                },

                {

                    "$type": "MoleMole.FireEffect",

                    "EffectPattern": "Eff_Unagi_PET_01_Bust_02",

                    "Target": "Custom",

                    "CustomKey": "UnagiGhost_AbilityTargetting_01",

                    "FireEffectPosRot": 

                    {

                        "CoordsOption": "ReferTarget",

                        "TargetOption": 

                        {

                            "$type": "MoleMole.ConfigPosRotReferTarget",

                            "OffsetReferTarget": "Target",

                            "AttachPoint": "MiddlePoint",

                            "IsUseAttachPointPos": true,

                            "IsUseAttachPointRotation": true

                        },

                        "Offset": 

                        {

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

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

                            "IsUseRotationY": true,

                            "IsUseRotationXZ": true

                        }

                    },

                    //部分动作中无需闪光

                    "Predicates":

                    [

                        {

                            "$type": "MoleMole.ByNot",

                            "Target": "Self",

                            "Predicates" : 

                            [

                                {

                                    "$type": "MoleMole.ByOr",

                                    "Target": "Self",

                                    "Predicates" : 

                                    [

                                        {

                                            "$type": "MoleMole.ByAnimatorStateNormalizedTime",

                                            "AnimatorStateName": "Born", //出生

                                            "LayerIndex": 0,

                                            "NormalizedTimeLow" : 0.0,

                                            "NormalizedTimeHigh" : 1.0,

                                        },

                                        {

                                            "$type": "MoleMole.ByAnimatorStateNormalizedTime",

                                            "AnimatorStateName": "SwitchIn_Normal", //常规换入

                                            "LayerIndex": 0,

                                            "NormalizedTimeLow" : 0.0,

                                            "NormalizedTimeHigh" : 1.0,

                                        }

                                    ]

                                }

                            ]

                        }

                    ]

                }

            ]

        },



        //隐藏幽灵和特效

        "HideGhostModifier": 

        {

            "ModifierStacking": "Unique",

            "Duration": -1,



            "OnAdded": 

            [

                {

                    "$type": "MoleMole.RemoveModifier",

                    "ModifierName": "ShowGhostModifier",

                    "Target": "Self",

                },

                {

                    "$type" : "MoleMole.PushEntityVisibleWithTagAction",

                    "Visible" : false,

                    "Tag" : "UnagiGhost",

                    "Target": "Custom",

                    "CustomKey": "UnagiGhost_AbilityTargetting_01"

                },

                {

                    "$type": "MoleMole.RemoveModifier",

                    "ModifierName": "AttachEffectModifier",

                    "Target": "Custom",

                    "CustomKey": "UnagiGhost_AbilityTargetting_01"

                },

                {

                    "$type": "MoleMole.FireEffect",

                    "EffectPattern": "Eff_Unagi_PET_01_Bust_02",

                    "Target": "Custom",

                    "CustomKey": "UnagiGhost_AbilityTargetting_01",

                    "FireEffectPosRot": 

                    {

                        "CoordsOption": "ReferTarget",

                        "TargetOption": 

                        {

                            "$type": "MoleMole.ConfigPosRotReferTarget",

                            "OffsetReferTarget": "Target",

                            "AttachPoint": "MiddlePoint",

                            "IsUseAttachPointPos": true,

                            "IsUseAttachPointRotation": true

                        },

                        "Offset": 

                        {

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

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

                            "IsUseRotationY": true,

                            "IsUseRotationXZ": true

                        }

                    },

                    //部分动作中无需闪光

                    "Predicates":

                    [

                        {

                            "$type": "MoleMole.ByNot",

                            "Target": "Self",

                            "Predicates" : 

                            [

                                {

                                    "$type": "MoleMole.ByOr",

                                    "Target": "Self",

                                    "Predicates" : 

                                    [

                                        {

                                            "$type": "MoleMole.ByAnimatorStateNormalizedTime",

                                            "AnimatorStateName": "SwitchOut_Normal", //常规换入

                                            "LayerIndex": 0,

                                            "NormalizedTimeLow" : 0.0,

                                            "NormalizedTimeHigh" : 1.0,

                                        },

                                        {

                                            "$type": "MoleMole.ByAnimatorStateNormalizedTime",

                                            "AnimatorStateName": "SwitchOut_Attack", //后撤缓存

                                            "LayerIndex": 0,

                                            "NormalizedTimeLow" : 0.0,

                                            "NormalizedTimeHigh" : 1.0,

                                        }

                                    ]

                                }

                            ]

                        }

                    ]

                },

            ]

        },



        //Modifier存在时幽灵临时隐藏，移除时恢复显示（管理）

        "HidewithStateModifier_Controller":

        {

            "ModifierStacking": "Unique",

            "Duration": -1,



            "OnRemoved" :

            [

                {

                    "$type" : "MoleMole.RemoveModifier",

                    "ModifierName" : "HidewithStateModifier",

                    "Target" : "Self"

                },

            ]

        },



        //Modifier存在时幽灵临时隐藏，移除时恢复显示

        "HidewithStateModifier": 

        {

            "ModifierStacking": "Unique",

            "Duration": -1,



            "OnAdded": 

            [

                {

                    "$type": "MoleMole.ApplyModifier",

                    "ModifierName": "HideGhostModifier",

                    "Target": "Self",

                }

            ],



            "OnRemoved": 

            [

                {

                    "$type": "MoleMole.ApplyModifier",

                    "ModifierName": "ShowGhostModifier",

                    "Target": "Self",

                }

            ]

        },



        //持续循环特效

        "AttachEffectModifier": 

        {

            "ModifierStacking": "Unique",

            "Duration": -1,



            "OnAdded": 

            [

                {

                    "$type": "MoleMole.AttachEffect",

                    "EffectPattern": "Eff_Unagi_PET_01_Loop_01",

                    "Target": "Custom",

                    "CustomKey": "UnagiGhost_AbilityTargetting_01",

                    "Duration": -1,

                    "AttachEffectPosRot": 

                    {

                        "CoordsOption": "Camera",

                        "TargetOption": 

                        {

                            "$type": "MoleMole.ConfigPosRotReferTarget",

                            "OffsetReferTarget": "Target",

                            "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

                        }

                    }

                }

            ]

        },

    }

}