{ "AbilityMixins": [ { "$type": "ActionsOnPropertyChangeMixin", "PropertyActions": [ { "PropertyChangeActions": [ { "$type": "SetAbilitySpecialByExpression", "DoRefresh": true, "Expression": "((property(MaxHP))-(property(HpMax_Base)))*specials(AS_ConversionRate_HP)", "ParamName": "SkipDefAttackDelta_HP", "ValueType": "Float" }, { "$type": "SetAbilitySpecialByExpression", "DoRefresh": true, "Expression": "((property(Atk_Battle))-(property(Attack)))*specials(AS_ConversionRate_ATK)", "ParamName": "SkipDefAttackDelta_ATK", "ValueType": "Float" }, { "$type": "SetAbilitySpecialByExpression", "DoRefresh": true, "Expression": "(specials(SkipDefAttackDelta_ATK)+specials(SkipDefAttackDelta_HP))", "ParamName": "SkipDefAttackDelta", "ValueType": "Float" }, { "$type": "SetAbilitySpecialByExpression", "DoRefresh": true, "Expression": "100*specials(AS_RecoverFeverLevelCoefficient)\/property(MaxHP)", "ParamName": "RecoverFeverRatio", "Target": "Self", "ValueType": "Float" }, { "$type": "ApplyModifier", "ModifierName": "AddedAttackModifier", "Target": "Self" } ], "PropertyType": "MaxHP" }, { "PropertyChangeActions": [ { "$type": "SetAbilitySpecialByExpression", "DoRefresh": true, "Expression": "((property(MaxHP))-(property(HpMax_Base)))*specials(AS_ConversionRate_HP)", "ParamName": "SkipDefAttackDelta_HP", "ValueType": "Float" }, { "$type": "SetAbilitySpecialByExpression", "DoRefresh": true, "Expression": "((property(Atk_Battle))-(property(Attack)))*specials(AS_ConversionRate_ATK)", "ParamName": "SkipDefAttackDelta_ATK", "ValueType": "Float" }, { "$type": "SetAbilitySpecialByExpression", "DoRefresh": true, "Expression": "(specials(SkipDefAttackDelta_ATK)+specials(SkipDefAttackDelta_HP))", "ParamName": "SkipDefAttackDelta", "ValueType": "Float" }, { "$type": "ApplyModifier", "ModifierName": "AddedAttackModifier", "Target": "Self" } ], "PropertyType": "Atk_Battle" } ] } ], "AbilityName": "Yidhari_UniqueSkill", "AbilitySpecials": { "AS_AddedDamageRatio": { "Value": 0 }, "AS_ConversionRate_ATK": { "Value": 0.12 }, "AS_ConversionRate_HP": { "Value": 0.12 }, "AS_CurHP": { "Value": 0 }, "AS_MaxBuffAddedDamageRatio": { "Value": 0.5 }, "AS_MaxBuffDuration": { "Value": 5 }, "AS_MaxBuffHPRatio": { "Value": 0.3 }, "AS_MaxHP": { "Value": 0 }, "AS_MaxHP_Delta": { "Value": 0 }, "AS_MaxLevel": { "Value": 0 }, "AS_MaxRecoverFever": { "Value": 500 }, "AS_RecoverFeverLevelCoefficient": { "Value": 5.4 }, "AS_RecoverRPCD": { "Value": 180, "ValueType": "Float" }, "AS_RecoverRPCD_Cache": { "Value": 0, "ValueType": "Float" }, "AS_RecoverRPCD_Real": { "Value": 0, "ValueType": "Float" }, "AS_TalentExtraRecoverFeverRatio": { "Value": 0 }, "AS_TeamAvatarsRecoverFeverRatio": { "Value": 0.8 }, "Hp_Change": { "Value": 0 }, "Hp_Change_Others_01": { "Value": 0 }, "Hp_Change_Others_02": { "Value": 0 }, "Hp_Change_Others_03": { "Value": 0 }, "RecoverFeverRatio": { "Value": 0 }, "RecoverFeverRatio_TeamAvatars": { "Value": 0 }, "RecoverFeverValue_Caster": { "Value": 0 }, "RecoverFeverValue_Others_01": { "Value": 0 }, "RecoverFeverValue_Others_02": { "Value": 0 }, "RecoverFeverValue_Others_03": { "Value": 0 }, "SkipDefAttackDelta": { "Value": 0 }, "SkipDefAttackDelta_ATK": { "Value": 0 }, "SkipDefAttackDelta_HP": { "Value": 0 } }, "AbilityStacking": "Unique", "DefaultModifier": { "OnAdded": [ { "$type": "SetAbilitySpecialByExpression", "DoRefresh": true, "Expression": "100*specials(AS_RecoverFeverLevelCoefficient)\/property(MaxHP)", "ParamName": "RecoverFeverRatio", "Target": "Self", "ValueType": "Float" }, { "$type": "ApplyModifier", "ModifierName": "SpecialFeverManagerModifier_Caster", "Target": "Self" }, { "$type": "SetAbilitySpecialByExpression", "DoRefresh": true, "Expression": "specials(AS_MaxBuffAddedDamageRatio)*min((1-property(CurHP)\/property(MaxHP)),(1-specials(AS_MaxBuffHPRatio)))\/(1-specials(AS_MaxBuffHPRatio))", "ParamName": "AS_AddedDamageRatio", "Target": "Self", "ValueType": "Float" }, { "$type": "ApplyModifier", "ModifierName": "DamageAddRatioModifier" }, { "$type": "BranchOperator", "Conditions": [ { "$type": "ByGameContextType", "GameType": "StreamingGame", "SubGameType": "All" } ], "FailureActions": [ { "$type": "SetAbilitySpecialAction", "ModifyFunction": "Replace", "Param": 0, "ParamName": "AS_RecoverRPCD_Real", "ParamType": "Float" } ], "SuccessActions": [ { "$type": "SetAbilitySpecialByExpression", "Expression": "scenevar(AS_RecoverRPCD_Real)", "ParamName": "AS_RecoverRPCD_Real", "Target": "Self", "ValueType": "Float" }, { "$type": "SetAbilitySpecialAction", "ModifyFunction": "Replace", "Param": "%AS_RecoverRPCD_Real", "ParamName": "AS_RecoverRPCD_Cache", "ParamType": "Float" } ] }, { "$type": "BranchOperator", "Conditions": [ { "$type": "ByAbilitySpecial", "CompareType": "LessEqual", "Param": 0, "ParamName": "AS_RecoverRPCD_Real", "ParamType": "Float" } ], "FailureActions": [ { "$type": "ApplyModifier", "ModifierName": "SmoothDecreaseCDModifier", "Target": "Self" } ], "SuccessActions": [ { "$type": "RecoverRpAction", "Amount": 60, "Target": "Caster" }, { "$type": "SetAbilitySpecialAction", "ModifyFunction": "Replace", "Param": "%AS_RecoverRPCD", "ParamName": "AS_RecoverRPCD_Real", "ParamType": "Float" }, { "$type": "SetAbilitySpecialAction", "ModifyFunction": "Replace", "Param": "%AS_RecoverRPCD", "ParamName": "AS_RecoverRPCD_Cache", "ParamType": "Float" }, { "$type": "ApplyModifier", "ModifierName": "SmoothDecreaseCDModifier", "Target": "Self" } ] } ] }, "Modifiers": { "AddedAttackModifier": { "Duration": -1, "IgnoreTimeScale": false, "ModifierStacking": "Replace", "Properties": { "Actor_SkipDefAttackDelta": "%SkipDefAttackDelta" } }, "DamageAddRatioLockModifier": { "Duration": -1, "IgnoreTimeScale": true, "ModifierMixins": [ { "$type": "ActionsOnPropertyChangeMixin", "PropertyActions": [ { "IsUsePercentage": true, "PropertyType": "CurHP", "ReferMaxPropertyType": "MaxHP", "ValueRangeActions": [ { "LowToValueActions": [ { "$type": "RemoveModifier", "ModifierName": "DamageAddRatioLockModifier", "Target": "Self" } ], "Val": "%AS_MaxBuffHPRatio" } ] } ] } ], "ModifierStacking": "Unique", "OnRemoved": [ { "$type": "ApplyModifier", "ModifierName": "DamageAddRatioLockTimeModifier" } ] }, "DamageAddRatioLockTimeModifier": { "Duration": "%AS_MaxBuffDuration", "IgnoreTimeScale": true, "ModifierStacking": "Refresh", "OnRemoved": [ { "$type": "SetAbilitySpecialsByPropertyAction", "DoRefresh": true, "ModifyFunction": "Replace", "ParamName": "AS_MaxHP", "Percentage": 1, "PropertyType": "MaxHP", "Target": "Self" }, { "$type": "SetAbilitySpecialByExpression", "DoRefresh": true, "Expression": "specials(AS_MaxBuffAddedDamageRatio)*min((1-property(CurHP)\/property(MaxHP)),(1-specials(AS_MaxBuffHPRatio)))\/(1-specials(AS_MaxBuffHPRatio))", "ParamName": "AS_AddedDamageRatio", "Predicates": [ { "$type": "ByNot", "Predicates": [ { "$type": "ByHasModifier", "ModifierNameList": [ "DamageAddRatioLockModifier" ], "Target": "Self" } ] } ], "Target": "Self", "ValueType": "Float" }, { "$type": "ApplyModifier", "ModifierName": "DamageAddRatioModifier", "Predicates": [ { "$type": "ByNot", "Predicates": [ { "$type": "ByHasModifier", "ModifierNameList": [ "DamageAddRatioLockModifier" ], "Target": "Self" } ] } ] } ] }, "DamageAddRatioModifier": { "Duration": -1, "IgnoreTimeScale": false, "ModifierStacking": "Replace", "OnHitOther": [ { "$type": "ModifyAttackDataAction", "PropertyKey": "Actor_AddedDamageRatio", "PropertyValue": "%AS_AddedDamageRatio", "Target": "Self" } ] }, "SmoothDecreaseCDModifier": { "Duration": "%AS_RecoverRPCD", "ModifierMixins": [ { "$type": "SmoothBlendAbilitySpecialMixin", "AbilitySpecial": "AS_RecoverRPCD_Real", "BlendCurve": "Linear", "BlendTime": "%AS_RecoverRPCD_Cache", "TargetValue": 0 } ], "ModifierStacking": "Unique", "OnThinkInterval": [ { "$type": "RemoveModifier", "ModifierName": "SmoothDecreaseCDModifier", "Predicates": [ { "$type": "ByAbilitySpecial", "CompareType": "LessEqual", "Param": 0, "ParamName": "AS_RecoverRPCD_Real", "ParamType": "Float" } ], "Target": "Self" } ], "ThinkInterval": 0.1 }, "SpecialFeverManagerModifier_Caster": { "Duration": -1, "IgnoreTimeScale": true, "ModifierMixins": [ { "$type": "ActionsOnInstantPropertyChangeMixin", "PropertyActions": [ { "InstantPropertyChangeActions": [ { "$type": "SetAbilitySpecialByExpression", "DoRefresh": true, "Expression": "sqrt((specials(AS_MaxHP)-property(MaxHP))*(specials(AS_MaxHP)-property(MaxHP)))", "ParamName": "AS_MaxHP_Delta", "Target": "Self", "ValueType": "Float" }, { "$type": "BranchOperator", "Conditions": [ { "$type": "ByAbilitySpecial", "CompareType": "LessEqual", "Param": 1, "ParamName": "AS_MaxHP_Delta", "ParamType": "Float" } ], "FailureActions": [ { "$type": "SetAbilitySpecialsByPropertyAction", "DoRefresh": true, "ModifyFunction": "Replace", "ParamName": "AS_MaxHP", "Percentage": 1, "PropertyType": "MaxHP", "Target": "Self" } ], "SuccessActions": [ { "$type": "SetAbilitySpecialByExpression", "DoRefresh": true, "Expression": "specials(AS_MaxBuffAddedDamageRatio)*min((1-property(CurHP)\/property(MaxHP)),(1-specials(AS_MaxBuffHPRatio)))\/(1-specials(AS_MaxBuffHPRatio))", "ParamName": "AS_AddedDamageRatio", "Predicates": [ { "$type": "ByNot", "Predicates": [ { "$type": "ByHasModifier", "ModifierNameList": [ "DamageAddRatioLockModifier" ], "Target": "Self" } ] }, { "$type": "ByNot", "Predicates": [ { "$type": "ByHasModifier", "ModifierNameList": [ "DamageAddRatioLockTimeModifier" ], "Target": "Self" } ] } ], "Target": "Self", "ValueType": "Float" }, { "$type": "ApplyModifier", "ModifierName": "DamageAddRatioModifier", "Predicates": [ { "$type": "ByNot", "Predicates": [ { "$type": "ByHasModifier", "ModifierNameList": [ "DamageAddRatioLockModifier" ], "Target": "Self" } ] }, { "$type": "ByNot", "Predicates": [ { "$type": "ByHasModifier", "ModifierNameList": [ "DamageAddRatioLockTimeModifier" ], "Target": "Self" } ] } ] }, { "$type": "ApplyModifier", "ModifierName": "DamageAddRatioLockModifier", "Predicates": [ { "$type": "ByPlayerPropertyValue", "CompareType": "Less", "Denominator": "MaxHP", "IsUsePercent": true, "Numerator": "CurHP", "Target": "Self", "Val1": "%AS_MaxBuffHPRatio" } ] }, { "$type": "BranchOperator", "Conditions": [ { "$type": "ByAbilitySpecial", "CompareType": "Less", "Param": 0, "ParamName": "Hp_Change", "ParamType": "Float" } ], "SuccessActions": [ { "$type": "SetAbilitySpecialByExpression", "DoRefresh": true, "Expression": "min((-1*(specials(Hp_Change))*specials(RecoverFeverRatio)*(1+specials(AS_TalentExtraRecoverFeverRatio))),specials(AS_MaxRecoverFever))", "ParamName": "RecoverFeverValue_Caster", "Target": "Self", "ValueType": "Float" }, { "$type": "RecoverIndividualFeverAction", "Amount": "%RecoverFeverValue_Caster", "Target": "Self" } ] } ] } ], "IsSaveToSpecial": true, "IsUsePercentage": false, "NameSaveToSpecialInstant": "Hp_Change", "PropertyType": "CurHP" } ] } ], "ModifierStacking": "Unique", "OnAdded": [ { "$type": "SetAbilitySpecialsByPropertyAction", "DoRefresh": true, "ModifyFunction": "Replace", "ParamName": "AS_MaxHP", "Percentage": 1, "PropertyType": "MaxHP", "Target": "Self" } ] } } }