{ "AbilityMixins": [ { "$type": "AttachStateWithModifierMixin", "ConfigList": [ { "AnimatorStateName": "SwitchIn_Attack", "FrameCountHigh": 0, "FrameCountLow": 0, "IsLoop": false, "LayerIndex": 0, "MaxFrameCountHigh": true, "MaxFrameCountLow": false, "ModifierNameList": [ "AttachPointModifier" ] }, { "AnimatorStateName": "SwitchIn_Attack", "FrameCountHigh": 60, "FrameCountLow": 48, "IsLoop": false, "LayerIndex": 0, "MaxFrameCountHigh": false, "MaxFrameCountLow": false, "ModifierNameList": [ "QTEWarnEffectModifier" ] } ] }, { "$type": "AttachStateWithModifierMixin", "ConfigList": [ { "AnimatorStateName": "SwitchIn_Attack_Ex", "FrameCountHigh": 0, "FrameCountLow": 0, "IsLoop": false, "LayerIndex": 0, "MaxFrameCountHigh": true, "MaxFrameCountLow": false, "ModifierNameList": [ "AttachPointModifier" ] }, { "AnimatorStateName": "SwitchIn_Attack_Ex", "FrameCountHigh": 21, "FrameCountLow": 0, "IsLoop": false, "LayerIndex": 0, "MaxFrameCountHigh": false, "MaxFrameCountLow": false, "ModifierNameList": [ "ExQTEWarnEffectModifier" ] } ] }, { "$type": "ActwithStateFrameMixin", "ConfigList": [ { "ActionList": [ { "$type": "ApplyModifier", "ModifierName": "ExQTEMusicModifier", "Target": "Self" } ], "AnimatorStateName": "SwitchIn_Attack_Ex_Start", "ForceTriggerOnTransitionIn": true, "ForceTriggerOnTransitionOut": false, "Frame": 0, "IsLoop": false, "LayerIndex": 0 }, { "ActionList": [ { "$type": "ApplyModifier", "ModifierName": "ExQTEMusicModifier", "Target": "Self" } ], "AnimatorStateName": "SwitchIn_Attack_Ex_Start_02", "ForceTriggerOnTransitionIn": true, "ForceTriggerOnTransitionOut": false, "Frame": 0, "IsLoop": false, "LayerIndex": 0 } ] } ], "AbilityName": "Astra_SwitchIn_Attack_AttackPoint", "AbilitySpecials": { "AS_QTERemianTimes": { "Value": 0, "ValueType": "Integer" } }, "AbilityStacking": "Unique", "Modifiers": { "ApplyAstraExQTE02Modifier": { "Duration": 5, "ModifierStacking": "Replace", "OnAttackLanded": [ { "$type": "ApplyModifier", "ModifierName": "AstraExQTE02Modifier", "Predicates": [ { "$type": "ByIsLocalAvatar", "IsLocalAvatar": true, "Target": "Self" }, { "$type": "ByCauseStun", "IsCauseStun": true }, { "$type": "ByAnimTagList", "TagList": [ "NormalQTE" ] } ], "Target": "Caster" } ] }, "AstraExQTE02Modifier": { "Duration": 3, "ModifierStacking": "Replace", "OnAdded": [ { "$type": "PopMuteAidAttackSwitchTypeAction", "Tag": "Astra_Singing_CommonAid", "Target": "Self" }, { "$type": "HandleAnimatorZoneTagsAction", "AnimatorStateTags": [ "AidAttack_Astra" ], "IsAdd": true, "Target": "Self" } ], "OnRemoved": [ { "$type": "HandleAnimatorZoneTagsAction", "AnimatorStateTags": [ "AidAttack_Astra" ], "IsAdd": false, "Target": "Self" }, { "$type": "PushMuteAidAttackSwitchTypeAction", "SwitchTypeList": [ "CommonAid" ], "Tag": "Astra_Singing_CommonAid", "Target": "Self" } ], "OnSwitchInBegin": [ { "$type": "RemoveModifier", "ModifierName": "AstraExQTE02Modifier", "Predicates": [ { "$type": "ByAvatarSwitchType", "SwitchType": "AidAttack", "Target": "Self" } ], "Target": "Self" } ] }, "AttachPointModifier": { "Duration": -1, "ModifierMixins": [ { "$type": "AttachPointFollowMixin", "AttachPointName": "AstraSwitchInAttackPoint", "FollowPosRot": { "CoordsOption": "ReferTarget", "NeedRaycastGround": true, "Offset": { "AngleOffset": { "x": 0, "y": 0, "z": 0 }, "BackupPositionOffset": { "x": 0, "y": 0, "z": 6 }, "IsUseRotationXZ": false, "IsUseRotationY": true, "PositionOffset": { "x": 0, "y": 0, "z": 0 } }, "RaycastGroundOffset": 0, "TargetOption": { "$type": "ConfigPosRotReferTarget", "AttachPoint": "MiddlePoint", "BackupOffsetReferTarget": "Self", "IsUseAttachPointPos": true, "IsUseAttachPointRotation": false, "OffsetReferTarget": "SelfAttackTarget" } }, "PolarAngleRatio": 5, "PolarHeightRatio": 8, "PolarRadiusRatio": 15, "PosType": "Instant", "RotRatio": 8, "RotType": "Lerp", "TransitionDuration": 0.3 } ], "ModifierStacking": "Unique", "OnAdded": [ { "$type": "ProcessAttachPointAction", "AttachPointName": "AstraSwitchInAttackPoint", "HierarchyType": "World", "PosRot": { "CoordsOption": "Self", "NeedRaycastGround": true, "Offset": { "AngleOffset": { "x": 0, "y": 0, "z": 0 }, "BackupPositionOffset": { "x": 0, "y": 0, "z": 6 }, "IsUseRotationXZ": false, "IsUseRotationY": true, "PositionOffset": { "x": 0, "y": 0, "z": 0 } }, "RaycastGroundOffset": 0, "TargetOption": { "$type": "ConfigPosRotReferTarget", "AttachPoint": "MiddlePoint", "BackupOffsetReferTarget": "Self", "IsUseAttachPointPos": true, "IsUseAttachPointRotation": false, "OffsetReferTarget": "SelfAttackTarget" } }, "ProcessType": "Create", "Target": "Self" } ] }, "CommonAidToQTEModifier": { "Duration": -1, "ModifierStacking": "Replace", "OnAdded": [ { "$type": "SetAbilitySpecialAction", "ModifyFunction": "Replace", "Param": 2, "ParamName": "AS_QTERemianTimes", "ParamType": "Integer", "Target": "Caster" }, { "$type": "PushOverrideSwitchInAttackAction", "SourceSwitchInIndex": 30, "SourceSwitchType": "AidAttack", "Tag": "Astra_AidToQTE", "Target": "Self", "TargetSwitchType": "QTE" }, { "$type": "SetTargetAbilitySpecialAction", "Params": [ { "AbilityName": "Astra_Branch_Singing", "AbilitySpecials": [ { "ModifyFunction": "Replace", "Param": "%AS_QTERemianTimes", "ParamName": "AS_QTERemianTimes", "ParamType": "Float" } ] } ], "Target": "Caster" }, { "$type": "AttachModifier", "ModifierName": "OverrideAidAttackBtnUIModifier", "Predicates": [ { "$type": "ByAbilitySpecial", "CompareType": "Greater", "Param": 0, "ParamName": "AS_QTERemianTimes", "ParamType": "Integer", "Target": "Caster" } ], "Target": "Self" } ], "OnRemoved": [ { "$type": "PopOverrideSwitchInAttackAction", "SourceSwitchInIndex": 30, "SourceSwitchType": "AidAttack", "Tag": "Astra_AidToQTE", "Target": "Self" } ], "OnSwitchInBegin": [ { "$type": "BranchOperator", "Conditions": [ { "$type": "ByAvatarSwitchType", "CheckOverrideSwitch": "Override", "OverrideSourceType": "AidAttack", "SwitchType": "QTE", "Target": "Self" } ], "SuccessActions": [ { "$type": "ApplyModifier", "ModifierName": "UnlimitQTEChainOnlyOnceModifier", "Target": "Self" }, { "$type": "SetAbilitySpecialAction", "ModifyFunction": "Add", "Param": -1, "ParamName": "AS_QTERemianTimes", "ParamType": "Integer", "Target": "Caster" }, { "$type": "SetTargetAbilitySpecialAction", "Params": [ { "AbilityName": "Astra_Branch_Singing", "AbilitySpecials": [ { "ModifyFunction": "Replace", "Param": "%AS_QTERemianTimes", "ParamName": "AS_QTERemianTimes", "ParamType": "Float" } ] } ], "Target": "Caster" }, { "$type": "RemoveModifier", "ModifierName": "CommonAidToQTEModifier", "Predicates": [ { "$type": "ByAbilitySpecial", "CompareType": "LessEqual", "Param": 0, "ParamName": "AS_QTERemianTimes", "ParamType": "Integer", "Target": "Caster" } ], "Target": "TeamAvatars" } ] } ] }, "ExQTEMusicModifier": { "Duration": 60, "ModifierStacking": "Replace", "OnAdded": [ { "$type": "HandleAnimatorZoneTagsAction", "AnimatorStateTags": [ "ExQTE" ], "IsAdd": true, "Target": "Self" }, { "$type": "SetAnimCtrlerParamAction", "BoolVal": true, "ParamName": "Bool_ExQTE_Music", "ParamType": 2, "Target": "Self" } ], "OnRemoved": [ { "$type": "HandleAnimatorZoneTagsAction", "AnimatorStateTags": [ "ExQTE" ], "IsAdd": false, "Target": "Self" }, { "$type": "SetAnimCtrlerParamAction", "BoolVal": false, "ParamName": "Bool_ExQTE_Music", "ParamType": 2, "Target": "Self" } ] }, "ExQTEReleaseAttackModifier": { "DelayHandlers": [ { "DelayTime": 0.1, "TimeUpActions": [ { "$type": "HandleAnimEvent", "AnimEventID": "Astra_SwitchIn_Attack_Ex_AttackProperty_02", "Target": "Self" }, { "$type": "AttackCameraShakeAction", "ShakeConfigKey": "Astra_Attack_SwitchIn_Attack_Ex_CamShake_E_02", "Target": "Self" }, { "$type": "GamepadRumbleAction", "GamepadRumbleKey": "Astra_GamepadRumble_E_ExQTE_02" } ] }, { "DelayTime": 0.2, "TimeUpActions": [ { "$type": "HandleAnimEvent", "AnimEventID": "Astra_SwitchIn_Attack_Ex_AttackProperty_02", "Target": "Self" }, { "$type": "AttackCameraShakeAction", "ShakeConfigKey": "Astra_Attack_SwitchIn_Attack_Ex_CamShake_E_02", "Target": "Self" }, { "$type": "GamepadRumbleAction", "GamepadRumbleKey": "Astra_GamepadRumble_E_ExQTE_02" } ] }, { "DelayTime": 0.4, "TimeUpActions": [ { "$type": "HandleAnimEvent", "AnimEventID": "Astra_SwitchIn_Attack_Ex_AttackProperty_03", "Target": "Self" }, { "$type": "AttackCameraShakeAction", "ShakeConfigKey": "Astra_Attack_SwitchIn_Attack_Ex_CamShake_E_03", "Target": "Self" }, { "$type": "GamepadRumbleAction", "GamepadRumbleKey": "Astra_GamepadRumble_E_ExQTE_03" } ] } ], "Duration": 1, "IgnoreTimeScale": false, "ModifierStacking": "Replace", "NotIgnoreList": [ "World", "Owner" ], "OnAdded": [ { "$type": "ApplyModifier", "ModifierName": "CommonAidToQTEModifier", "Target": "TeamAvatars" }, { "$type": "TriggerAbilityAction", "AbilityName": "Astra_Branch_Singing", "Target": "Self" }, { "$type": "ProcessAttachPointAction", "AttachPointName": "AstraSwitchInAttackPoint", "HierarchyType": "World", "PosRot": { "CoordsOption": "Self", "NeedRaycastGround": true, "Offset": { "AngleOffset": { "x": 0, "y": 0, "z": 0 }, "BackupPositionOffset": { "x": 0, "y": 0, "z": 6 }, "IsUseRotationXZ": true, "IsUseRotationY": true, "PositionOffset": { "x": 0, "y": 0, "z": 0 } }, "TargetOption": { "$type": "ConfigPosRotReferTarget", "BackupOffsetReferTarget": "Self", "IsUseAttachPointPos": true, "IsUseAttachPointRotation": false, "OffsetReferTarget": "SelfAttackTarget" } }, "Target": "Self" }, { "$type": "FireEffect", "AttachPointName": "AstraSwitchInAttackPoint", "EffectPattern": "Eff_Astra_Attack_Branch_01_Release_03_ShockWave", "Target": "Self" }, { "$type": "HandleAnimEvent", "AnimEventID": "Astra_SwitchIn_Attack_Ex_AttackProperty_01", "Target": "Self" }, { "$type": "AttackCameraShakeAction", "ShakeConfigKey": "Astra_Attack_SwitchIn_Attack_Ex_CamShake_E_01", "Target": "Self" }, { "$type": "GamepadRumbleAction", "GamepadRumbleKey": "Astra_GamepadRumble_E_ExQTE_01" } ] }, "ExQTEWarnEffectModifier": { "Duration": -1, "ModifierStacking": "MultipleAllRefresh", "OnAdded": [ { "$type": "AttachEffect", "AttachPointName": "AstraSwitchInAttackPoint", "EffectPattern": "Eff_Astra_Attack_Normal_03_04_Warn", "Target": "Self" } ], "OnRemoved": [ { "$type": "ApplyModifier", "ModifierName": "ExQTEReleaseAttackModifier", "Target": "Self" }, { "$type": "TriggerAbilityAction", "AbilityName": "Astra_ExQTE_RecoverHP", "Target": "Self" } ] }, "OverrideAidAttackBtnUIModifier": { "Duration": -1, "ModifierStacking": "Unique", "Properties": { "Actor_OverrideAidAttackBtnUI": 1 } }, "QTEReleaseAttackModifier": { "Duration": 1, "ModifierStacking": "Replace", "OnAdded": [ { "$type": "TriggerAbilityAction", "AbilityName": "Astra_Branch_Singing", "Target": "Self" }, { "$type": "ProcessAttachPointAction", "AttachPointName": "AstraSwitchInAttackPoint", "HierarchyType": "World", "PosRot": { "CoordsOption": "Self", "NeedRaycastGround": true, "Offset": { "AngleOffset": { "x": 0, "y": 0, "z": 0 }, "BackupPositionOffset": { "x": 0, "y": 0, "z": 6 }, "IsUseRotationXZ": true, "IsUseRotationY": true, "PositionOffset": { "x": 0, "y": 0, "z": 0 } }, "TargetOption": { "$type": "ConfigPosRotReferTarget", "BackupOffsetReferTarget": "Self", "IsUseAttachPointPos": true, "IsUseAttachPointRotation": false, "OffsetReferTarget": "SelfAttackTarget" } }, "Target": "Self" }, { "$type": "FireEffect", "AttachPointName": "AstraSwitchInAttackPoint", "EffectPattern": "Eff_Astra_Attack_AssaultAid_03_ShockWave", "Target": "Self" }, { "$type": "HandleAnimEvent", "AnimEventID": "Astra_SwitchIn_Attack_AttackProperty_01", "Target": "Self" }, { "$type": "AttackCameraShakeAction", "ShakeConfigKey": "Astra_SwitchIn_Attack_CamShake_E_01", "Target": "Self" }, { "$type": "GamepadRumbleAction", "GamepadRumbleKey": "Astra_GamepadRumble_E_SwitchIn_Attack_01" }, { "$type": "TriggerAbilityAction", "AbilityName": "Astra_Charge", "Target": "Self" } ] }, "QTEWarnEffectModifier": { "Duration": -1, "ModifierStacking": "MultipleAllRefresh", "OnAdded": [ { "$type": "AttachEffect", "AttachPointName": "AstraSwitchInAttackPoint", "EffectPattern": "Eff_Astra_Attack_Normal_03_04_Warn", "Target": "Self" } ], "OnRemoved": [ { "$type": "ApplyModifier", "ModifierName": "QTEReleaseAttackModifier", "Target": "Self" } ] }, "UnlimitQTEChainOnlyOnceModifier": { "Duration": 5, "ModifierStacking": "Replace", "OnAdded": [ { "$type": "PushQTEChainOnlyOnceLimitAction", "Target": "Self" }, { "$type": "HandleAnimatorZoneTagsAction", "AnimatorStateTags": [ "PushQTEChainOnlyOnceLimit" ], "IsAdd": true, "Target": "Self" } ], "OnAttackLanded": [ { "$type": "RemoveModifier", "ModifierName": "UnlimitQTEChainOnlyOnceModifier", "Predicates": [ { "$type": "ByOriginalCauseStun", "IsCauseStun": true, "Target": "Self" }, { "$type": "ByAnimTagList", "TagList": [ "NormalQTE" ], "Target": "Self" } ], "Target": "Self" } ], "OnRemoved": [ { "$type": "PopQTEChainOnlyOnceLimitAction", "Target": "Self" }, { "$type": "HandleAnimatorZoneTagsAction", "AnimatorStateTags": [ "PushQTEChainOnlyOnceLimit" ], "IsAdd": false, "Target": "Self" }, { "$type": "TriggerSoundAction", "Predicates": [ { "$type": "ByAbilitySpecial", "CompareType": "LessEqual", "Param": 0, "ParamName": "AS_QTERemianTimes", "ParamType": "Integer", "Target": "Caster" } ], "Target": "Caster", "soundActionKey": "SA_Astra_SpecialSwitchInQTE_Finish" } ], "OnSkillStart": [ { "$type": "RemoveModifier", "ModifierName": "UnlimitQTEChainOnlyOnceModifier", "Predicates": [ { "$type": "ByNot", "Predicates": [ { "$type": "ByFromSkillType", "SkillType": "QTE", "Target": "Self" } ] } ], "Target": "Self" } ], "OnSwitchTriggered": [ { "$type": "RemoveModifier", "ModifierName": "UnlimitQTEChainOnlyOnceModifier", "Target": "Self" } ] } } }