Add a tag (AttachEffect.Cap) that controls the behavior of AttachEffect when applied to a target with an existing instance of it.
AttachEffect.Cap defaults to -1. This preserves the existing behavior where new applications of AttachEffect resets the duration to AttachEffect.Duration. Setting AttachEffect.Cap to a non-negative value will instead change this behavior so that AttachEffect.Duration is added to the time remaining on the existing AttachEffect instance. If AttachEffect.Cap is 0, this will occur without limit. A positive AttachEffect.Cap value will act as a limit that the total duration cannot exceed after application.
When AttachEffect.Cumulative is set to true, AttachEffect.Cap will explicitly not behave as detailed in this blueprint. The following rationale can be noted in the documentation, if necessary: "Take the example of a unit with several existing AttachEffect instances with different remaining durations. What is the best way to extend the overall duration of the existing AttachEffect properties on the unit? This question has no straightforward answer, and so the decision has been made that the cumulative logic and stacking duration logic will be mutually exclusive."