public KoopatrolFlippedBehavior(BattleEntity entity, int flippedTurns, Enumerations.DamageEffects flippedOnEffects, int defenseLoss,
                                 StatusGlobals.PaybackHolder paybackRemoved, Enumerations.PhysicalAttributes attributeRemoved)
     : base(entity, flippedTurns, flippedOnEffects, defenseLoss)
 {
     PaybackRemoved   = paybackRemoved;
     AttributeRemoved = attributeRemoved;
 }
 public PaybackHolder(PaybackTypes paybackType, Enumerations.PhysicalAttributes physAttribute, Enumerations.Elements element,
                      Enumerations.ContactTypes[] paybackContacts, Enumerations.ContactProperties[] contactProperties,
                      Enumerations.ContactResult contactResult, Enumerations.ContactResult samePhysAttrResult, int constantDamage,
                      params StatusChanceHolder[] statusesInflicted)
     : this(paybackType, physAttribute, element, paybackContacts, contactProperties, contactResult, samePhysAttrResult, statusesInflicted)
 {
     Damage = constantDamage;
 }
        /// <summary>
        /// A Comparison sort method for PhysicalAttributes, putting higher valued attributes first for consistency with contact results.
        /// </summary>
        /// <param name="physAttr1">The first PhysicalAttribute to compare.</param>
        /// <param name="physAttr2">The second PhysicalAttribute to compare.</param>
        /// <returns>-1 if status1 has a higher value, 1 if physAttribute2 has a higher value, 0 if they have the same values.</returns>
        public static int SortPhysicalAttributes(Enumerations.PhysicalAttributes physAttr1, Enumerations.PhysicalAttributes physAttr2)
        {
            if (physAttr1 > physAttr2)
            {
                return(-1);
            }
            else if (physAttr1 < physAttr2)
            {
                return(1);
            }

            return(0);
        }
 public PaybackHolder(PaybackTypes paybackType, Enumerations.PhysicalAttributes physAttribute, Enumerations.Elements element,
                      Enumerations.ContactTypes[] paybackContacts, Enumerations.ContactProperties[] contactProperties,
                      Enumerations.ContactResult contactResult, Enumerations.ContactResult samePhysAttrResult,
                      params StatusChanceHolder[] statusesInflicted)
 {
     PaybackType          = paybackType;
     PhysAttribute        = physAttribute;
     Element              = element;
     PaybackContacts      = paybackContacts;
     ContactProperties    = contactProperties;
     PaybackContactResult = contactResult;
     SamePhysAttrResult   = samePhysAttrResult;
     Damage            = 0;
     StatusesInflicted = statusesInflicted;
 }