public void Apply(CardEffector effector) { if (effector.CanApply(cardData)) { effects.Add(effector.effect); } }
public int GetMutualEffectorCount(CardEffector comparisionEffector) { // todo: make sure it counts correctly return(Enum.GetValues(typeof(CardEffector)).Cast <CardEffector>().Count(effector => comparisionEffector.HasFlag(effector) && cardEffector.HasFlag(effector)) - 1); }
public float CalculateCrowdDamage(CardEffector weakEffector, CardEffector strongEffector) { return(_configuration.BaseCrowdDamage + _configuration.EffectorMultiplier * (_configuration.GetMutualEffectorCount(weakEffector) - _configuration.GetMutualEffectorCount(strongEffector))); }