private static void RevertEffects(MonsterCard attacker, MonsterCard defender, AttributeTriggers trigger)
 {
     foreach (ICardAttributeRevertableVariable attackerAttribute in attacker.Attributes.Where(x => x.TriggerAttributeOn == trigger && x is ICardAttributeRevertableVariable))
     {
         IVariableParameter parameter = attackerAttribute switch
         {
             ICardAttributeAffectVariable <SelfCardParameter> => new SelfCardParameter(attacker),
             ICardAttributeAffectVariable <DoubleCardParameter> => new DoubleCardParameter(attacker, defender)
         };
         attackerAttribute.Revert(parameter);
     }
 }
 private static void CalculateEffects(MonsterCard attacker, MonsterCard defender, AttributeTriggers trigger, CombatResult dei = null)
 {
     foreach (ICardAttributeAffectVariable attackerAttribute in attacker.Attributes.Where(x => x.TriggerAttributeOn == trigger))
     {
         IVariableParameter parameter = attackerAttribute switch
         {
             ICardAttributeAffectVariable <SelfCardParameter> => new SelfCardParameter(attacker),
             ICardAttributeAffectVariable <DoubleCardParameter> => new DoubleCardParameter(attacker, defender),
             ICardAttributeAffectVariable <DuringCardParameter> => new DuringCardParameter(attacker, dei),
         };
         attackerAttribute.Affect(parameter);
     }
 }