{ "AbilityMixins": [ { "$type": "ActionsOnPropertyChangeMixin", "PropertyActions": [ { "IsUsePercentage": false, "PropertyType": "CurSP", "ReferMaxPropertyType": "MaxSP", "ValueRangeActions": [ { "LowToValueActions": [ { "$type": "HandleAnimatorZoneTagsAction", "AnimatorStateTags": [ "Astra_Card_A_02" ], "IsAdd": true } ], "Val": "%AS_DecreaseSP" } ] } ] } ], "AbilityName": "Astra_Card_A_02", "AbilitySpecials": { "AS_ConstC": { "Value": 0.0557, "ValueType": "Float" }, "AS_DecreaseSP": { "Value": 25, "ValueType": "Float" }, "AS_LocalRatio": { "Value": 0, "ValueType": "Float" }, "AS_Ratio": { "Value": 0.2, "ValueType": "Float" } }, "AbilityStacking": "Unique", "DefaultModifier": { "OnAdded": [ { "$type": "ApplyAbilityAction", "AbilityName": "Astra_Card_A_02_ExtraThunder", "IsAutoTrigger": false, "Target": "Self" }, { "$type": "HandleAnimatorZoneTagsAction", "AnimatorStateTags": [ "Astra_Card_A_02" ], "IsAdd": true, "Predicates": [ { "$type": "ByPlayerPropertyValue", "CompareType": "GreaterEqual", "Denominator": "MaxSP", "IsUsePercent": false, "Numerator": "CurSP", "Target": "Caster", "Val1": "%AS_DecreaseSP" } ] }, { "$type": "SetAbilitySpecialAction", "ModifyFunction": "Replace", "Param": "%AS_ConstC", "ParamName": "AS_LocalRatio", "ParamType": "Float", "Target": "Self" } ], "OnCustomEventReceived": [ { "$type": "HandleAnimatorZoneTagsAction", "AnimatorStateTags": [ "Astra_Card_A_02" ], "IsAdd": false, "Predicates": [ { "$type": "ByCustomEvent", "EventKey": "Astra_Card_S_02_NotEnoughSP" } ] } ], "OnRemoved": [ { "$type": "HandleAnimatorZoneTagsAction", "AnimatorStateTags": [ "Astra_Card_A_02" ], "IsAdd": false } ], "OnSkillStart": [ { "$type": "RandomOperator", "Odds": "%AS_LocalRatio", "OnFailure": [ { "$type": "SetAbilitySpecialAction", "ModifyFunction": "Add", "Param": "%AS_ConstC", "ParamName": "AS_LocalRatio", "ParamType": "Float", "Target": "Self" } ], "OnSuccess": [ { "$type": "ApplyModifier", "ModifierName": "PerfectAttackModifier", "Target": "Self" }, { "$type": "SetAbilitySpecialAction", "ModifyFunction": "Replace", "Param": "%AS_ConstC", "ParamName": "AS_LocalRatio", "ParamType": "Float", "Target": "Self" } ], "Predicates": [ { "$type": "ByOr", "Predicates": [ { "$type": "ByFromSkillID", "SkillID": "Astra_SingAttack" }, { "$type": "ByFromSkillID", "SkillID": "Astra_SingAttack_Perfect" } ] } ] }, { "$type": "HandleAnimatorZoneTagsAction", "AnimatorStateTags": [ "Astra_Card_A_02" ], "IsAdd": false, "Predicates": [ { "$type": "ByPlayerPropertyValue", "CompareType": "Less", "Denominator": "MaxSP", "IsUsePercent": false, "Numerator": "CurSP", "Target": "Caster", "Val1": 25 }, { "$type": "ByOr", "Predicates": [ { "$type": "ByFromSkillID", "SkillID": "Astra_ExSp" }, { "$type": "ByFromSkillID", "SkillID": "Astra_Sp" }, { "$type": "ByFromSkillID", "SkillID": "Astra_SingAttack" }, { "$type": "ByFromSkillID", "SkillID": "Astra_SingAttack_Hold" }, { "$type": "ByFromSkillID", "SkillID": "Astra_SingAttack_Perfect" } ] } ] } ] }, "Modifiers": { "PerfectAttackModifier": { "Duration": 10, "IgnoreTimeScale": false, "ModifierMixins": [ { "$type": "ActwithStateFrameMixin", "ConfigList": [ { "ActionList": [ { "$type": "RemoveModifier", "ModifierName": "PerfectAttackModifier", "Target": "Self" } ], "AnimatorStateName": "Attack_Branch_02_Singing_Evade", "ForceTriggerOnTransitionIn": false, "ForceTriggerOnTransitionOut": true, "Frame": 0, "IsLoop": false, "LayerIndex": 0, "MaxFrame": true } ] } ], "ModifierStacking": "Replace", "OnAdded": [ { "$type": "AttachEffect", "EffectPattern": "Eff_Astra_Attack_Card_A_02_Hint", "Target": "Self" }, { "$type": "HandleAnimatorZoneTagsAction", "AnimatorStateTags": [ "Astra_Card_A_02_Perfect" ], "IsAdd": true, "Target": "Self" } ], "OnRemoved": [ { "$type": "HandleAnimatorZoneTagsAction", "AnimatorStateTags": [ "Astra_Card_A_02_Perfect" ], "IsAdd": false, "Target": "Self" } ] } } }