{ // Unagi特殊攻击强化 "AbilityName" : "Unagi_SpecialSkill", "AbilityStacking": "Unique", "DefaultModifier" : { "OnAdded" : [ //设置UI箭头指示位置 { "$type": "MoleMole.SetUIArrowAction", "position": 40 } ] }, "AbilityMixins" : [ { "$type": "MoleMole.ActionsOnPropertyChangeMixin", "PropertyActions": [ { "PropertyType": "CurSP", "ReferMaxPropertyType": "MaxSP", "IsUsePercentage": false, "ValueRangeActions": [ { "Val": 40, "LowToValueActions": [ { "$type" : "MoleMole.SetAnimCtrlerParamAction", "ParamType" : 3, "ParamName" : "Int_BranchIndex", "Target" : "Self", "IntVal" : 1 } ] }, { "Val": 40, "ValueToLowActions": [ { "$type" : "MoleMole.SetAnimCtrlerParamAction", "ParamType" : 3, "ParamName" : "Int_BranchIndex", "Target" : "Self", "IntVal" : 0 } ] } ] }, { "PropertyType": "Custom", "CustomPropertyType": "MagicValueCounts", "IsUsePercentage": false, "ValueRangeActions": [ //魔刃值等于3时,同步状态机参数 { "Val": 3, "LowToValueActions": [ { "$type" : "MoleMole.SetAnimCtrlerParamAction", "ParamType" : 2, "ParamName" : "Bool_MagicBladeNormal", "Target" : "Self", "BoolVal" : true } ] }, { "Val": 3, "ValueToLowActions": [ { "$type" : "MoleMole.SetAnimCtrlerParamAction", "ParamType" : 2, "ParamName" : "Bool_MagicBladeNormal", "Target" : "Self", "BoolVal" : false } ] } ] } ] }, { "$type" : "MoleMole.AttachStateWithModifierMixin", "ConfigList": [ { "LayerIndex": 0, "AnimatorStateName": "Attack_Branch_Start_01", "MaxFrameCountLow": false, "FrameCountLow": 0, "MaxFrameCountHigh": true, "FrameCountHigh": 0, "IsLoop": false, "ModifierNameList": [ "HasExitTimeModifier_Controller", "ChargeAttackModifer_01", ] }, { "LayerIndex": 0, "AnimatorStateName": "Attack_Branch_Start_02", "MaxFrameCountLow": false, "FrameCountLow": 0, "MaxFrameCountHigh": true, "FrameCountHigh": 0, "IsLoop": false, "ModifierNameList": [ "HasExitTimeModifier_Controller", "ChargeAttackModifer_01", ] }, { "LayerIndex": 0, "AnimatorStateName": "Attack_Branch_Start_03", "MaxFrameCountLow": false, "FrameCountLow": 0, "MaxFrameCountHigh": true, "FrameCountHigh": 0, "IsLoop": false, "ModifierNameList": [ "HasExitTimeModifier_Controller", "ChargeAttackModifer_02", ] }, { "LayerIndex": 0, "AnimatorStateName": "Attack_Branch_Start_04", "MaxFrameCountLow": false, "FrameCountLow": 0, "MaxFrameCountHigh": true, "FrameCountHigh": 0, "IsLoop": false, "ModifierNameList": [ "HasExitTimeModifier_Controller", "ChargeAttackModifer_02", ] } ] } ], "OnAbilityStart": [ //执行SP检测,能量不足时强制松手 { "$type": "MoleMole.ApplyModifier", "ModifierName": "SpCheckModifier_Failed", "Predicates" : [ { "$type": "MoleMole.ByPlayerPropertyValue", "Numerator": "CurSP", //"CustomNumerator": "PerfectReady", "Denominator": "MaxSP", "IsUsePercent": false, "CompareType": "Less", "Val1" : 40, //"Val2" : 300, "Target" : "Self" }, ] }, //执行SP检测,能量足够时成功蓄力 { "$type": "MoleMole.ApplyModifier", "ModifierName": "SpCheckModifier_Success", "Predicates" : [ { "$type": "MoleMole.ByPlayerPropertyValue", "Numerator": "CurSP", //"CustomNumerator": "PerfectReady", "Denominator": "MaxSP", "IsUsePercent": false, "CompareType": "GreaterEqual", "Val1" : 40, //"Val2" : 300, "Target" : "Self" } ] } ], "Modifiers" : { //略作延迟后,执行蓄力判定(30帧) "ChargeAttackModifer_01": { "ModifierStacking": "Unique", "Duration": -1, "OnAdded" : [ { "$type" : "MoleMole.SetAnimCtrlerParamAction", "ParamType" : 3, "ParamName" : "Int_ChargeIndex", "Target" : "Self", "IntVal" : 0, }, ], "DelayHandlers" : [ { "DelayTime" : 0.5, "TimeUpActions": [ { "$type" : "MoleMole.TriggerAbilityAction", "AbilityName" : "Unagi_SpecialSkill", "Target" : "Self", } ] } ] }, //略作延迟后,执行蓄力判定(15帧) "ChargeAttackModifer_02": { "ModifierStacking": "Unique", "Duration": -1, "OnAdded" : [ { "$type" : "MoleMole.SetAnimCtrlerParamAction", "ParamType" : 3, "ParamName" : "Int_ChargeIndex", "Target" : "Self", "IntVal" : 0, }, ], "DelayHandlers" : [ { "DelayTime" : 0.25, "TimeUpActions": [ { "$type" : "MoleMole.TriggerAbilityAction", "AbilityName" : "Unagi_SpecialSkill", "Target" : "Self", } ] } ] }, //无能量,蓄力失败 "SpCheckModifier_Failed": { "ModifierStacking": "MultipleRefresh", "Duration": 0.1, "OnAdded" : [ { "$type" : "MoleMole.SetAnimCtrlerParamAction", "ParamType" : 2, "ParamName" : "Bool_HoldAttackB", "Target" : "Self", "BoolVal" : false } ], }, //有能量,蓄力成功 "SpCheckModifier_Success": { "ModifierStacking": "MultipleRefresh", "Duration": 0.1, "OnAdded" : [ //蓄力成功状态机参数 { "$type" : "MoleMole.SetAnimCtrlerParamAction", "ParamType" : 3, "ParamName" : "Int_ChargeIndex", "Target" : "Self", "IntVal" : 1, }, //隐藏小幽灵 { "$type" : "MoleMole.TriggerAbilityAction", "AbilityName" : "Unagi_Follower_ShowandHidewithState", "Target" : "Self", }, //蓄力成功特效 { "$type": "MoleMole.FireEffect", "EffectPattern": "Eff_Unagi_Attack_Branch_01_Charge", "Target": "Self", "FireEffectPosRot" : { "CoordsOption" : "ReferTarget", "TargetOption" : { "$type" : "MoleMole.ConfigPosRotReferTarget", "OffsetReferTarget" : "Self", "AttachPoint" : "WeaponPoint_01", "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, } }, "Predicates": //正好在同一帧松手会有时序问题,打个补丁 [ { "$type": "MoleMole.ByAnimCtrlerParam", "ParamType": 2, "ParamName": "Bool_HoldAttackB", "CompareType": "Equal", "BoolVal": true, } ] }, //蓄力成功音效 { "$type" : "MoleMole.FireAudio", "AudioPattern" : "Play_sfx_char_unagi_attack_branch_03_2", "Predicates": //正好在同一帧松手会有时序问题,打个补丁 [ { "$type": "MoleMole.ByAnimCtrlerParam", "ParamType": 2, "ParamName": "Bool_HoldAttackB", "CompareType": "Equal", "BoolVal": true, } ] }, //略作延迟,强制触发攻击 { "$type" : "MoleMole.ApplyModifier", "ModifierName" : "HasExitTimeModifier_Trigger", "Target" : "Self" } ] }, //略作延迟,强制触发攻击(管理) "HasExitTimeModifier_Controller": { "ModifierStacking": "Unique", "Duration": -1, "OnRemoved" : [ { "$type" : "MoleMole.RemoveModifier", "ModifierName" : "HasExitTimeModifier_Trigger", "Target" : "Self" }, ] }, //略作延迟,强制触发攻击(效果) "HasExitTimeModifier_Trigger": { "ModifierStacking": "Unique", "Duration": -1, "DelayHandlers" : [ { "DelayTime" : 0.25, "TimeUpActions": [ { "$type" : "MoleMole.SetAnimCtrlerParamAction", "ParamType" : 2, "ParamName" : "Bool_HoldAttackB", "Target" : "Self", "BoolVal" : false } ] } ] } } }