public override void Query(object source, StatQuery sq) { if (ReferenceEquals(source, this)) { switch (sq.Statistic) { case Statistic.Attack: sq.Result += this.Attack; break; case Statistic.Defense: sq.Result += this.Defense; break; default: throw new ArgumentException(); } } else { if (sq.Statistic == Statistic.Defense) { sq.Result++; } } }
public override void Query(object source, StatQuery sq) { if (!ReferenceEquals(source, this) && sq.Statistic == Statistic.Attack) { sq.Result++; } }
public abstract void Query(object source, StatQuery q);