Example #1
0
 public override int CalculateHash(HashCalculator calc)
 {
     return(HashCalculator.Combine(
                base.CalculateHash(calc),
                calc.Calculate(_source),
                calc.Calculate(_creatureOrPlayer)));
 }
 public override int CalculateHash(HashCalculator calc)
 {
     return(HashCalculator.Combine(
                GetType().GetHashCode(),
                _preventCombatOnly.GetHashCode(),
                calc.Calculate(_source)));
 }
Example #3
0
 public int CalculateHash(HashCalculator calc)
 {
     return(HashCalculator.Combine(
                calc.Calculate(_isBlocked),
                calc.Calculate(_card),
                calc.Calculate(_blockers)));
 }
 public override int CalculateHash(HashCalculator calc)
 {
     return(HashCalculator.Combine(
                GetType().GetHashCode(),
                calc.Calculate(_from),
                calc.Calculate(_to)));
 }
 public override int CalculateHash(HashCalculator calc)
 {
     return(HashCalculator.Combine(
                GetType().GetHashCode(),
                _maxAmount,
                calc.Calculate((IHashable)_creatureOrPlayer)));
 }
Example #6
0
 public override int CalculateHash(HashCalculator calc)
 {
     return(HashCalculator.Combine(
                base.CalculateHash(calc),
                _p.ActivateAsSorcery.GetHashCode(),
                calc.Calculate(_p.Cost)));
 }
Example #7
0
 public int CalculateHash(HashCalculator calc)
 {
     return(HashCalculator.Combine(
                calc.Calculate(Card),
                DamageAssignmentOrder,
                calc.Calculate(_assignedDamage)));
 }
Example #8
0
 public int CalculateHash(HashCalculator calc)
 {
     return(HashCalculator.Combine(
                Step.GetHashCode(),
                TurnCount,
                State.GetHashCode()
                ));
 }
Example #9
0
        public override int CalculateHash(HashCalculator calc)
        {
            var hashcodes = _p.Triggers.Select(calc.Calculate).ToList();

            return(HashCalculator.Combine(
                       base.CalculateHash(calc),
                       HashCalculator.Combine(hashcodes)));
        }
Example #10
0
 public int CalculateHash(HashCalculator calc)
 {
     return(HashCalculator.Combine(
                calc.Calculate(Player1),
                calc.Calculate(Player2),
                calc.Calculate(Searching),
                calc.Calculate(_extraTurns)));
 }
Example #11
0
 public int CalculateHash(HashCalculator calc)
 {
     return(HashCalculator.Combine(
                GetType().GetHashCode(),
                calc.Calculate(Source),
                calc.Calculate(Targets),
                CanBeCountered.GetHashCode(),
                X.GetHashCode()));
 }
Example #12
0
        public override int CalculateHash(HashCalculator calc)
        {
            var visible = this
                          .Where(x => x.IsVisibleToPlayer(Owner))
                          .ToList();

            if (visible.Count == 0)
            {
                return(Count);
            }

            return(HashCalculator.Combine(Count, calc.Calculate(visible, true)));
        }
Example #13
0
        public int CalculateHash()
        {
            var calc = new HashCalculator();

            return(HashCalculator.Combine(
                       calc.Calculate(Players),
                       calc.Calculate(Stack),
                       calc.Calculate(Turn),
                       calc.Calculate(Combat),
                       calc.Calculate(_damagePreventions),
                       calc.Calculate(_damageRedirections),
                       calc.Calculate(_decisionQueue)));
        }
Example #14
0
 public int CalculateHash(HashCalculator calc)
 {
     return(HashCalculator.Combine(
                Life,
                HasPriority.GetHashCode(),
                IsActive.GetHashCode(),
                calc.Calculate(_battlefield),
                calc.Calculate(_graveyard),
                calc.Calculate(_library),
                calc.Calculate(_hand),
                _landLimit.Value.GetValueOrDefault(),
                _landsPlayedCount.Value
                ));
 }
Example #15
0
        public int CalculateHash(HashCalculator calc)
        {
            if (Ai.IsSearchInProgress && IsVisibleToSearchingPlayer == false)
            {
                return(Zone.GetHashCode());
            }

            if (_hash.Value.HasValue == false)
            {
                // this value can be same for different cards with same NAME,
                // sometimes this is good sometimes not, currently we favor
                // smaller tree sizes and less accurate results.
                // if tree size is no longer a problem we will replace NAME with
                // a guid.
                _hash.Value = HashCalculator.Combine(
                    Name.GetHashCode(),
                    _hasSummoningSickness.Value.GetHashCode(),
                    UsageScore.GetHashCode(),
                    IsTapped.GetHashCode(),
                    Damage,
                    HasRegenerationShield.GetHashCode(),
                    HasLeathalDamage.GetHashCode(),
                    calc.Calculate(_strenght),
                    Level.GetHashCode(),
                    Counters.GetHashCode(),
                    calc.Calculate(_typeOfCard.Value),
                    Zone.GetHashCode(),
                    _isRevealed.Value.GetHashCode(),
                    _isPeeked.Value.GetHashCode(),
                    _isHidden.Value.GetHashCode(),
                    calc.Calculate(_simpleAbilities),
                    calc.Calculate(_staticAbilities),
                    calc.Calculate(_triggeredAbilities),
                    calc.Calculate(_activatedAbilities),
                    calc.Calculate(_protections),
                    calc.Calculate(_attachments),
                    calc.Calculate(_colors)
                    );
            }

            return(_hash.Value.GetValueOrDefault());
        }
Example #16
0
 public int CalculateHash(HashCalculator calc)
 {
     return(HashCalculator.Combine(
                _value.GetHashCode(),
                _isEnabled.Value.GetHashCode()));
 }
Example #17
0
 public int CalculateHash(HashCalculator calc)
 {
     return(HashCalculator.Combine(Wheels.Select(calc.Calculate)));
 }
 public override int CalculateHash(HashCalculator calc)
 {
     return(HashCalculator.Combine(
                base.CalculateHash(calc),
                _amountLeft.Value));
 }
Example #19
0
 public int CalculateHash(HashCalculator calc)
 {
     return(HashCalculator.Combine(
                _power.Value.GetHashCode(),
                _toughness.Value.GetHashCode()));
 }
Example #20
0
 public int CalculateHash(HashCalculator calc)
 {
     return(HashCalculator.Combine(
                HashCalculator.Combine(_effectTargets.Select(calc.Calculate)),
                HashCalculator.Combine(_costTargets.Select(calc.Calculate))));
 }
Example #21
0
 public int CalculateHash(HashCalculator calc)
 {
     return(HashCalculator.Combine(
                calc.Calculate(_colors.Value, orderImpactsHashcode: false),
                calc.Calculate(_cardTypes.Value, orderImpactsHashcode: false)));
 }
 public override int CalculateHash(HashCalculator calc)
 {
     return(HashCalculator.Combine(
                base.CalculateHash(calc),
                calc.Calculate(_player)));
 }
Example #23
0
 public int CalculateHash(HashCalculator calc)
 {
     return(HashCalculator.Combine(
                calc.Calculate(_attackers),
                calc.Calculate(_blockers)));
 }
Example #24
0
 public int CalculateHash(HashCalculator calc)
 {
     return(HashCalculator.Combine(
                _p.ActivateAsSorcery.GetHashCode(),
                calc.Calculate(_p.Cost)));
 }
Example #25
0
 public int CalculateHash(HashCalculator calc)
 {
     return(HashCalculator.Combine(calc.Calculate(_colors), calc.Calculate(_cardTypes)));
 }