{
  "AbilityName": "Palicus_DynamicDifficultyManager",
  "AbilitySpecials": {
    "AS_DynamicDifficulty": {
      "Value": 600,
      "ValueType": "Float"
    },
    "AS_SkipProbability": {
      "Value": 0,
      "ValueType": "Float"
    },
    "AS_TriggerMode": {
      "Value": 0,
      "ValueType": "Integer"
    }
  },
  "AbilityStacking": "Unique",
  "DefaultModifier": {
    "OnAttackLanded": [
      {
        "$type": "BranchOperator",
        "Conditions": [
          {
            "$type": "ByOr",
            "Predicates": [
              {
                "$type": "ByHasHpShield",
                "HpShieldValueCompare": "Greater",
                "Target": "Other",
                "Value": 0
              },
              {
                "$type": "ByHasModifier",
                "ModifierNameList": [
                  "Palicus_DynamicDifficulty_AttackProtect_Modifier"
                ],
                "Target": "Self"
              }
            ],
            "Target": "Other"
          }
        ],
        "FailureActions": [
          {
            "$type": "ApplyModifier",
            "ModifierName": "Palicus_DynamicDifficulty_AttackProtect_Modifier",
            "Target": "Self"
          },
          {
            "$type": "BranchOperator",
            "Conditions": [
              {
                "$type": "ByIsInZoneTags",
                "Tags": [
                  "Clone"
                ]
              }
            ],
            "FailureActions": [
              {
                "$type": "TriggerAbilityAction",
                "AbilityName": "Palicus_DynamicDifficultyManager",
                "InitAbilitySpecialList": [
                  {
                    "SpecialName": "AS_TriggerMode",
                    "Value": 1,
                    "ValueType": "Integer"
                  }
                ]
              }
            ],
            "SuccessActions": [
              {
                "$type": "TriggerAbilityAction",
                "AbilityName": "Palicus_DynamicDifficultyManager",
                "CustomKey": "Monster_Palicus_Other",
                "InitAbilitySpecialList": [
                  {
                    "SpecialName": "AS_TriggerMode",
                    "Value": 1,
                    "ValueType": "Integer"
                  }
                ],
                "Target": "Custom"
              }
            ]
          }
        ]
      }
    ],
    "OnBeingHit": [
      {
        "$type": "BranchOperator",
        "Conditions": [
          {
            "$type": "ByIsInZoneTags",
            "Tags": [
              "Clone"
            ]
          }
        ],
        "FailureActions": [
          {
            "$type": "TriggerAbilityAction",
            "AbilityName": "Palicus_DynamicDifficultyManager",
            "InitAbilitySpecialList": [
              {
                "SpecialName": "AS_TriggerMode",
                "Value": 0,
                "ValueType": "Integer"
              }
            ]
          }
        ],
        "SuccessActions": [
          {
            "$type": "TriggerAbilityAction",
            "AbilityName": "Palicus_DynamicDifficultyManager",
            "CustomKey": "Monster_Palicus_Other",
            "InitAbilitySpecialList": [
              {
                "SpecialName": "AS_TriggerMode",
                "Value": 0,
                "ValueType": "Integer"
              }
            ],
            "Target": "Custom"
          }
        ]
      }
    ]
  },
  "Modifiers": {
    "Palicus_DynamicDifficulty_AttackProtect_Modifier": {
      "Duration": 1.5,
      "IsUnique": true,
      "ModifierStacking": "Replace"
    },
    "Palicus_DynamicDifficulty_Manager_Modifier": {
      "OnThinkInterval": [
        {
          "$type": "SetAbilitySpecialAction",
          "ModifyFunction": "Add",
          "Param": 2.5,
          "ParamName": "AS_DynamicDifficulty",
          "ParamType": "Float",
          "Predicates": [
            {
              "$type": "ByHasModifier",
              "ModifierNameList": [
                "Palicus_DynamicDifficulty_StartIncrease_Modifier"
              ]
            },
            {
              "$type": "ByNot",
              "Predicates": [
                {
                  "$type": "ByHasModifier",
                  "ModifierNameList": [
                    "Palicus_DynamicDifficulty_StopIncrease_Modifier"
                  ]
                }
              ]
            }
          ]
        },
        {
          "$type": "ApplyModifier",
          "ModifierName": "Palicus_DynamicDifficulty_SetSkipProbability_Modifier"
        }
      ],
      "ThinkInterval": 0.1
    },
    "Palicus_DynamicDifficulty_SetSkipProbability_Modifier": {
      "Duration": 0.1,
      "IsUnique": true,
      "ModifierStacking": "Replace",
      "OnAdded": [
        {
          "$type": "SetAbilitySpecialAction",
          "ModifyFunction": "Replace",
          "Param": "%AS_DynamicDifficulty",
          "ParamName": "AS_SkipProbability",
          "ParamType": "Float"
        },
        {
          "$type": "SetAbilitySpecialAction",
          "ModifyFunction": "Mul",
          "Param": -1,
          "ParamName": "AS_SkipProbability",
          "ParamType": "Float"
        },
        {
          "$type": "SetAbilitySpecialAction",
          "ModifyFunction": "Add",
          "Param": 500,
          "ParamName": "AS_SkipProbability",
          "ParamType": "Float"
        },
        {
          "$type": "SetAbilitySpecialAction",
          "ModifyFunction": "Div",
          "Param": 500,
          "ParamName": "AS_SkipProbability",
          "ParamType": "Float"
        },
        {
          "$type": "BranchOperator",
          "Conditions": [
            {
              "$type": "ByAbilitySpecial",
              "CompareType": "Less",
              "Param": 0,
              "ParamName": "AS_SkipProbability",
              "ParamType": "Float"
            }
          ],
          "FailureActions": [
            {
              "$type": "WriteAIParamAction",
              "FloatParamValue": "%AS_SkipProbability",
              "ModifyFunction": "Replace",
              "ParamName": "SkipProbability"
            }
          ],
          "SuccessActions": [
            {
              "$type": "WriteAIParamAction",
              "FloatParamValue": 0,
              "ModifyFunction": "Replace",
              "ParamName": "SkipProbability"
            }
          ]
        }
      ]
    },
    "Palicus_DynamicDifficulty_StartIncrease_Modifier": {
      "Duration": 3,
      "IsUnique": true,
      "ModifierStacking": "Refresh"
    },
    "Palicus_DynamicDifficulty_StopIncrease_Modifier": {
      "Duration": 8,
      "IsUnique": true,
      "ModifierStacking": "Replace",
      "OnAdded": [
        {
          "$type": "SetAbilitySpecialAction",
          "ModifyFunction": "Mul",
          "Param": 0.7,
          "ParamName": "AS_DynamicDifficulty",
          "ParamType": "Float"
        },
        {
          "$type": "ApplyModifier",
          "ModifierName": "Palicus_DynamicDifficulty_SetSkipProbability_Modifier"
        }
      ]
    }
  },
  "OnAbilityTrigger": [
    {
      "$type": "BranchOperator",
      "Conditions": [
        {
          "$type": "ByAbilitySpecial",
          "CompareType": "Equal",
          "Param": 0,
          "ParamName": "AS_TriggerMode",
          "ParamType": "Integer"
        }
      ],
      "FailureActions": [
        {
          "$type": "ApplyModifier",
          "ModifierName": "Palicus_DynamicDifficulty_StopIncrease_Modifier"
        }
      ],
      "SuccessActions": [
        {
          "$type": "ApplyModifier",
          "ModifierName": "Palicus_DynamicDifficulty_StartIncrease_Modifier"
        }
      ]
    }
  ],
  "OnAdded": [
    {
      "$type": "ApplyModifier",
      "ModifierName": "Palicus_DynamicDifficulty_Manager_Modifier",
      "Predicates": [
        {
          "$type": "ByNot",
          "Predicates": [
            {
              "$type": "ByIsInZoneTags",
              "Tags": [
                "Clone"
              ]
            }
          ]
        }
      ]
    }
  ]
}