{ "AbilityMixins": [ { "$type": "ActionsOnPropertyChangeMixin", "PropertyActions": [ { "PropertyChangeActions": [ { "$type": "SetAbilitySpecialByExpression", "DoRefresh": true, "Expression": "min(specials(AS_PenToATK_Max),property(SkipDefAttack_Battle)*specials(AS_PenToATK_Rate))", "ParamName": "AS_PenToATK_Value", "Target": "Self", "ValueType": "Float" } ], "PropertyType": "SkipDefAttack_Battle" } ] } ], "AbilityName": "Norma_UniqueSkill", "AbilitySpecials": { "AS_BreakStunRatioDelta": { "Value": 0 }, "AS_BreakStunRatioDeltaMax": { "Value": 0.3 }, "AS_CritDamageRatioDelta": { "Value": 0 }, "AS_CritDamageRatioDeltaMax": { "Value": 0.5 }, "AS_CritThreshold": { "Value": 0 }, "AS_CritToBreakStunRatio": { "Value": 0.5 }, "AS_CritToCritDmgRatio": { "Value": 0.8 }, "AS_PenToATK_Max": { "Value": 9999 }, "AS_PenToATK_Rate": { "Value": 1 }, "AS_PenToATK_Value": { "Value": 0 }, "AS_ResourceRecoverAmount": { "Value": 0 }, "AS_ResourceRecoverCD": { "Value": 0 }, "AS_ResourceRecoverCD_Cache": { "Value": 0 }, "AS_ResourceRecoverCD_Real": { "Value": 0 } }, "AbilityStacking": "Unique", "DefaultModifier": { "OnAdded": [ { "$type": "SetAbilitySpecialByExpression", "DoRefresh": true, "Expression": "min(specials(AS_CritDamageRatioDeltaMax),max(0,property(Crit)-specials(AS_CritThreshold))*specials(AS_CritToCritDmgRatio))", "ParamName": "AS_CritDamageRatioDelta", "Target": "Self", "ValueType": "Float" }, { "$type": "SetAbilitySpecialByExpression", "DoRefresh": true, "Expression": "min(specials(AS_BreakStunRatioDeltaMax),max(0,property(Crit)-specials(AS_CritThreshold))*specials(AS_CritToBreakStunRatio))", "ParamName": "AS_BreakStunRatioDelta", "Target": "Self", "ValueType": "Float" }, { "$type": "SetAbilitySpecialByExpression", "DoRefresh": true, "Expression": "min(specials(AS_PenToATK_Max),property(SkipDefAttack_Battle)*specials(AS_PenToATK_Rate))", "ParamName": "AS_PenToATK_Value", "Target": "Self", "ValueType": "Float" }, { "$type": "ApplyModifier", "ModifierName": "CritConvertModifier", "Target": "Self" }, { "$type": "BranchOperator", "Conditions": [ { "$type": "ByGameContextType", "GameType": "StreamingGame", "SubGameType": "All" } ], "FailureActions": [ { "$type": "SetAbilitySpecialAction", "ModifyFunction": "Replace", "Param": 0, "ParamName": "AS_ResourceRecoverCD_Real", "ParamType": "Float" } ], "SuccessActions": [ { "$type": "SetAbilitySpecialByExpression", "Expression": "scenevar(AS_ResourceRecoverCD_Real)", "ParamName": "AS_ResourceRecoverCD_Real", "Target": "Self", "ValueType": "Float" }, { "$type": "SetAbilitySpecialAction", "ModifyFunction": "Replace", "Param": "%AS_ResourceRecoverCD_Real", "ParamName": "AS_ResourceRecoverCD_Cache", "ParamType": "Float" } ] }, { "$type": "BranchOperator", "Conditions": [ { "$type": "ByAbilitySpecial", "CompareType": "LessEqual", "Param": 0, "ParamName": "AS_ResourceRecoverCD_Real", "ParamType": "Float" } ], "FailureActions": [ { "$type": "ApplyModifier", "ModifierName": "ResourceRecoverCDModifier", "Target": "Self" } ], "SuccessActions": [ { "$type": "ModifyProperty", "Amount": "%AS_ResourceRecoverAmount", "CustomPropertyType": "Norma_PersonalResource", "Percentage": 0, "PropertyModifyFunction": "Add", "PropertyType": "Custom", "Target": "Self" }, { "$type": "SetAbilitySpecialAction", "ModifyFunction": "Replace", "Param": "%AS_ResourceRecoverCD", "ParamName": "AS_ResourceRecoverCD_Real", "ParamType": "Float" }, { "$type": "SetAbilitySpecialAction", "ModifyFunction": "Replace", "Param": "%AS_ResourceRecoverCD", "ParamName": "AS_ResourceRecoverCD_Cache", "ParamType": "Float" }, { "$type": "ApplyModifier", "ModifierName": "ResourceRecoverCDModifier", "Target": "Self" } ] } ], "OnHitOther": [ { "$type": "ModifyAttackDataAction", "Predicates": [ { "$type": "ByOr", "Predicates": [ { "$type": "ByAnimTagList", "TagList": [ "AttackSpecial", "ExSp" ] }, { "$type": "ByAnimTagList", "TagList": [ "AttackQTE", "ExQTE" ] }, { "$type": "ByAnimTagList", "TagList": [ "AttackSpecial", "NormalSp" ] } ] } ], "PropertyKey": "Actor_AddedBreakStunRatio", "PropertyValue": "%AS_BreakStunRatioDelta" } ], "OnRemoved": [ { "$type": "RemoveModifier", "ModifierName": "CritConvertModifier", "Target": "Self" } ], "OnTeamAvatarConstructed": [ { "$type": "SetAbilitySpecialByExpression", "DoRefresh": true, "Expression": "min(specials(AS_CritDamageRatioDeltaMax),max(0,property(Crit)-specials(AS_CritThreshold))*specials(AS_CritToCritDmgRatio))", "ParamName": "AS_CritDamageRatioDelta", "Target": "Self", "ValueType": "Float" }, { "$type": "SetAbilitySpecialByExpression", "DoRefresh": true, "Expression": "min(specials(AS_BreakStunRatioDeltaMax),max(0,property(Crit)-specials(AS_CritThreshold))*specials(AS_CritToBreakStunRatio))", "ParamName": "AS_BreakStunRatioDelta", "Target": "Self", "ValueType": "Float" }, { "$type": "SetAbilitySpecialByExpression", "DoRefresh": true, "Expression": "min(specials(AS_PenToATK_Max),property(SkipDefAttack_Battle)*specials(AS_PenToATK_Rate))", "ParamName": "AS_PenToATK_Value", "Target": "Self", "ValueType": "Float" } ] }, "Modifiers": { "CritConvertModifier": { "Duration": -1, "ModifierStacking": "Unique", "Properties": { "Actor_BaseAttackDelta": "%AS_PenToATK_Value", "Actor_CriticalDamageRatioDelta": "%AS_CritDamageRatioDelta" } }, "ResourceRecoverCDModifier": { "Duration": "%AS_ResourceRecoverCD", "ModifierMixins": [ { "$type": "SmoothBlendAbilitySpecialMixin", "AbilitySpecial": "AS_ResourceRecoverCD_Real", "BlendCurve": "Linear", "BlendTime": "%AS_ResourceRecoverCD_Cache", "TargetValue": 0 } ], "ModifierStacking": "Unique", "OnThinkInterval": [ { "$type": "RemoveModifier", "ModifierName": "ResourceRecoverCDModifier", "Predicates": [ { "$type": "ByAbilitySpecial", "CompareType": "LessEqual", "Param": 0, "ParamName": "AS_ResourceRecoverCD_Real", "ParamType": "Float" } ], "Target": "Self" } ], "ThinkInterval": 0.1 } } }