コード例 #1
0
 private CombatStatistics(
     int range,
     IDamageTypesStore attackDetails,
     IDamageTypesStore defenseDetails)
 {
     _range          = range;
     _attackDetails  = attackDetails;
     _defenseDetails = defenseDetails;
 }
コード例 #2
0
        public static CombatStatistics Create(
            int range,
            IDamageTypesStore attackDetails,
            IDamageTypesStore defenseDetails)
        {
            Debug.Assert(attackDetails != null);
            Debug.Assert(defenseDetails != null);

            return(new CombatStatistics(range, attackDetails, defenseDetails));
        }
コード例 #3
0
 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);
 }
コード例 #4
0
 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);
 }