private CombatStatistics( int range, IDamageTypesStore attackDetails, IDamageTypesStore defenseDetails) { _range = range; _attackDetails = attackDetails; _defenseDetails = defenseDetails; }
public static CombatStatistics Create( int range, IDamageTypesStore attackDetails, IDamageTypesStore defenseDetails) { Debug.Assert(attackDetails != null); Debug.Assert(defenseDetails != null); return(new CombatStatistics(range, attackDetails, defenseDetails)); }
private static void Validate( CombatStatistics statistics, int?range = null, IDamageTypesStore attackDetails = null, IDamageTypesStore defenseDetails = null) { Assert.AreEqual(range ?? Range, statistics.Range); Assert.AreSame(attackDetails ?? AttackDetails, statistics.AttackDetails); Assert.AreSame(defenseDetails ?? DefenseDetails, statistics.DefenseDetails); }
public CombatStatistics With( int?range = null, IDamageTypesStore attackDetails = null, IDamageTypesStore defenseDetails = null) { return (range.HasValue || attackDetails != null || defenseDetails != null ? new CombatStatistics( range ?? _range, attackDetails ?? _attackDetails, defenseDetails ?? _defenseDetails) : this); }