{
  "AbilityMixins": [
    {
      "$type": "AttachStateWithModifierMixin",
      "ConfigList": [
        {
          "AnimatorStateName": "Attack_Branch_01_Start",
          "FrameCountHigh": 0,
          "FrameCountLow": 0,
          "IsLoop": false,
          "LayerIndex": 0,
          "MaxFrameCountHigh": true,
          "MaxFrameCountLow": false,
          "ModifierNameList": [
            "HPShieldModifier_Controller"
          ]
        },
        {
          "AnimatorStateName": "Attack_Branch_01_Loop",
          "FrameCountHigh": 0,
          "FrameCountLow": 0,
          "IsLoop": true,
          "LayerIndex": 0,
          "MaxFrameCountHigh": true,
          "MaxFrameCountLow": false,
          "ModifierNameList": [
            "HPShieldModifier_Controller"
          ]
        },
        {
          "AnimatorStateName": "Attack_Branch_02_Start",
          "FrameCountHigh": 0,
          "FrameCountLow": 0,
          "IsLoop": false,
          "LayerIndex": 0,
          "MaxFrameCountHigh": true,
          "MaxFrameCountLow": false,
          "ModifierNameList": [
            "HPShieldModifier_Controller"
          ]
        },
        {
          "AnimatorStateName": "Attack_Branch_02_Loop",
          "FrameCountHigh": 0,
          "FrameCountLow": 0,
          "IsLoop": true,
          "LayerIndex": 0,
          "MaxFrameCountHigh": true,
          "MaxFrameCountLow": false,
          "ModifierNameList": [
            "HPShieldModifier_Controller"
          ]
        }
      ]
    }
  ],
  "AbilityName": "Ben_ShieldManager",
  "AbilitySpecials": {
    "AS_HpShieldComsumeAmount": {
      "Value": 0.1
    },
    "AS_HpShieldComsumePercentage": {
      "Value": 0.1
    },
    "AS_HpShieldRatioCur": {
      "Value": 0
    },
    "AS_HpShieldRatioMax": {
      "Value": 0.5
    },
    "AS_HpShieldRecoverPercentage": {
      "Value": 0.1
    },
    "AS_HpShieldRemainAmount": {
      "Value": 0
    },
    "AS_HpShieldRemainPercentage": {
      "Value": 0
    }
  },
  "AbilityStacking": "Unique",
  "DefaultModifier": {
    "OnAdded": [
      {
        "$type": "ModifyProperty",
        "Amount": "%AS_HpShieldRatioMax",
        "CustomPropertyType": "HpShieldRatioCur",
        "IsUsePercentage": false,
        "Percentage": 0,
        "PropertyModifyFunction": "Replace",
        "PropertyType": "Custom"
      },
      {
        "$type": "ModifyProperty",
        "Amount": "%AS_HpShieldRatioMax",
        "CustomPropertyType": "HpShieldRatioMax",
        "IsUsePercentage": false,
        "Percentage": 0,
        "PropertyModifyFunction": "Replace",
        "PropertyType": "Custom"
      },
      {
        "$type": "ApplyModifier",
        "ModifierName": "HpShieldModifier_Recover",
        "Target": "Self"
      }
    ]
  },
  "Modifiers": {
    "HPShieldModifier": {
      "Duration": -1,
      "ModifierMixins": [
        {
          "$type": "HpShieldMixin",
          "AddedActions": [
            {
              "$type": "ModifyMaterialPropertyAction",
              "Predicates": [
                {
                  "$type": "ByAbilitySpecial",
                  "CompareType": "Greater",
                  "Param": 0,
                  "ParamName": "AS_HpShieldRatioCur",
                  "ParamType": "Float"
                }
              ],
              "Tag": "Avatar_Male_Size03_Ben_MA_BlockState_Mat01_OverrideRimGlow_01",
              "Target": "Self",
              "key": "Avatar_Male_Size03_Ben_MA_BlockState_Mat01_OverrideRimGlow_01"
            }
          ],
          "Duration": -1,
          "EmptyActions": [
            {
              "$type": "InterruptMaterialPropertyAction",
              "Tag": "Avatar_Male_Size03_Ben_MA_BlockState_Mat01_OverrideRimGlow_01",
              "Target": "Self"
            }
          ],
          "Priority": 0,
          "RecoverAmount": "%AS_HpShieldComsumeAmount",
          "RecoverPercentage": 0,
          "RemovedActions": [
            {
              "$type": "InterruptMaterialPropertyAction",
              "Tag": "Avatar_Male_Size03_Ben_MA_BlockState_Mat01_OverrideRimGlow_01",
              "Target": "Self"
            }
          ],
          "Tag": "Ben_Block_HpShield",
          "TotalValueConfig": {
            "Amount": 0,
            "Percentage": "%AS_HpShieldRatioCur",
            "PropertyType": "MaxHP"
          }
        }
      ],
      "ModifierStacking": "Unique"
    },
    "HPShieldModifier_Controller": {
      "Duration": -1,
      "ModifierStacking": "Unique",
      "OnAdded": [
        {
          "$type": "ModifyProperty",
          "Amount": 0,
          "CustomPropertyType": "HpShieldRatioCur",
          "IsUsePercentage": false,
          "Percentage": 1,
          "Predicates": [
            {
              "$type": "ByAnimatorStateNormalizedTime",
              "AnimatorStateName": "Attack_Branch_02_Start",
              "FrameCountHigh": 0,
              "FrameCountLow": 0,
              "IsLoop": false,
              "LayerIndex": 0,
              "MaxFrameCountHigh": true,
              "MaxFrameCountLow": false
            }
          ],
          "PropertyModifyFunction": "Replace",
          "PropertyType": "Custom"
        },
        {
          "$type": "SetAbilitySpecialsByPropertyAction",
          "CustomPropertyType": "HpShieldRatioCur",
          "ModifyFunction": "Replace",
          "ParamName": "AS_HpShieldRatioCur",
          "Percentage": 1,
          "PropertyType": "Custom",
          "Target": "Self"
        },
        {
          "$type": "SetAbilitySpecialByExpression",
          "DoRefresh": true,
          "Expression": "property(MaxHP)*property(HpShieldRatioMax)*specials(AS_HpShieldComsumePercentage)*(-1)",
          "ParamName": "AS_HpShieldComsumeAmount",
          "Target": "Self",
          "ValueType": "Float"
        },
        {
          "$type": "ApplyModifier",
          "ModifierName": "HPShieldModifier",
          "Target": "Self"
        },
        {
          "$type": "RemoveModifier",
          "ModifierName": "HpShieldModifier_Recover",
          "Target": "Self"
        }
      ],
      "OnRemoved": [
        {
          "$type": "SetAbilitySpecialsByHpShiledValueAction",
          "ModifyFunction": "Replace",
          "ParamName": "AS_HpShieldRemainAmount",
          "ParamType": "Float",
          "Tag": "Ben_Block_HpShield",
          "Target": "Self",
          "ValueType": "CurValue"
        },
        {
          "$type": "SetAbilitySpecialByExpression",
          "DoRefresh": true,
          "Expression": "specials(AS_HpShieldRemainAmount)\/property(MaxHP)",
          "ParamName": "AS_HpShieldRemainPercentage",
          "Target": "Self",
          "ValueType": "Float"
        },
        {
          "$type": "ModifyProperty",
          "Amount": "%AS_HpShieldRemainPercentage",
          "CustomPropertyType": "HpShieldRatioCur",
          "IsUsePercentage": false,
          "Percentage": 0,
          "PropertyModifyFunction": "Replace",
          "PropertyType": "Custom"
        },
        {
          "$type": "RemoveModifier",
          "ModifierName": "HPShieldModifier",
          "Target": "Self"
        },
        {
          "$type": "ApplyModifier",
          "ModifierName": "HpShieldModifier_Recover",
          "Target": "Self"
        }
      ]
    },
    "HpShieldModifier_Recover": {
      "Duration": -1,
      "ModifierMixins": [
        {
          "$type": "SmoothChangePropertyMixin",
          "PropertyItems": [
            {
              "Amount": 0,
              "CustomPropertyType": "HpShieldRatioCur",
              "Percentage": "%AS_HpShieldRecoverPercentage",
              "PropertyModifyFunction": "Add",
              "PropertyType": "Custom"
            }
          ]
        }
      ],
      "ModifierStacking": "Unique"
    }
  }
}