public ContinuousEffects(final ContinuousEffects effect) {
    this.applyCounters = effect.applyCounters.copy();
    this.planeswalkerRedirectionEffect = effect.planeswalkerRedirectionEffect.copy();
    this.auraReplacementEffect = effect.auraReplacementEffect.copy();
    layeredEffects = effect.layeredEffects.copy();
    continuousRuleModifyingEffects = effect.continuousRuleModifyingEffects.copy();
    replacementEffects = effect.replacementEffects.copy();
    preventionEffects = effect.preventionEffects.copy();
    requirementEffects = effect.requirementEffects.copy();
    restrictionEffects = effect.restrictionEffects.copy();
    restrictionUntapNotMoreThanEffects = effect.restrictionUntapNotMoreThanEffects.copy();
    for (Map.Entry<AsThoughEffectType, ContinuousEffectsList<AsThoughEffect>> entry :
        effect.asThoughEffectsMap.entrySet()) {
      asThoughEffectsMap.put(entry.getKey(), entry.getValue().copy());
    }

    costModificationEffects = effect.costModificationEffects.copy();
    spliceCardEffects = effect.spliceCardEffects.copy();
    temporaryEffects.putAll(effect.temporaryEffects);
    collectAllEffects();
    order = effect.order;
  }
 public ContinuousEffects() {
   applyCounters = new ApplyCountersEffect();
   planeswalkerRedirectionEffect = new PlaneswalkerRedirectionEffect();
   auraReplacementEffect = new AuraReplacementEffect();
   collectAllEffects();
 }