예제 #1
0
 public Thing With(
     long?id = null,
     ThingTypes?thingType = null,
     string name          = null,
     ISlotList validSlots = null,
     IMaybe <EquipmentSlots> equipedAs          = null,
     IMaybe <CombatStatistics> combatStatistics = null,
     IThingStore contains = null)
 {
     return
         (id.HasValue ||
          thingType.HasValue ||
          name != null ||
          validSlots != null ||
          equipedAs != null ||
          combatStatistics != null ||
          contains != null
             ? new Thing(
              id ?? _id,
              thingType ?? _thingType,
              name ?? _name,
              validSlots ?? _validSlots,
              equipedAs ?? _equipedAs,
              combatStatistics ?? _combatStatistics,
              contains ?? _contains)
             : this);
 }
예제 #2
0
 public static Thing Create(
     long id,
     ThingTypes thingType,
     string name,
     ISlotList validSlots,
     IMaybe <EquipmentSlots> equipedAs)
 {
     return(new Thing(
                id,
                thingType,
                name,
                validSlots,
                equipedAs,
                Maybe <CombatStatistics> .None,
                ImmutableDictionary <long, Thing> .Empty));
 }
예제 #3
0
 private static void Validate(
     Thing instance,
     long?id = null,
     ThingTypes?thingType = null,
     string name          = null,
     ISlotList validSlots = null,
     IMaybe <EquipmentSlots> equipedAs          = null,
     IMaybe <CombatStatistics> combatStatistics = null,
     IThingStore contains = null)
 {
     Assert.AreEqual(id ?? Id, instance.Id);
     Assert.AreEqual(thingType ?? ThingType, instance.ThingType);
     Assert.AreEqual(name ?? Name, instance.Name);
     Assert.AreSame(validSlots ?? ValidSlots, instance.ValidSlots);
     Assert.AreSame(equipedAs ?? EquipedAs, instance.EquipedAs);
     Assert.AreSame(combatStatistics ?? CombatStats, instance.CombatStatistics);
     Assert.AreSame(contains ?? Contains, instance.Contains);
 }
예제 #4
0
 public static Thing Create(
     long id,
     ThingTypes thingType,
     string name,
     ISlotList validSlots,
     IMaybe <EquipmentSlots> equipedAs,
     IMaybe <CombatStatistics> combatStatistics,
     IThingStore contains)
 {
     return(new Thing(
                id,
                thingType,
                name,
                validSlots,
                equipedAs,
                combatStatistics,
                contains));
 }
예제 #5
0
        public Thing(
            long id,
            ThingTypes thingType,
            string name,
            ISlotList validSlots,
            IMaybe <EquipmentSlots> equipedAs,
            IMaybe <CombatStatistics> combatStatistics,
            IThingStore contains)
        {
            Debug.Assert(name != null);
            Debug.Assert(validSlots != null);
            Debug.Assert(equipedAs != null);
            Debug.Assert(combatStatistics != null);
            Debug.Assert(contains != null);

            _id               = id;
            _thingType        = thingType;
            _name             = name;
            _validSlots       = validSlots;
            _equipedAs        = equipedAs;
            _combatStatistics = combatStatistics;
            _contains         = contains;
        }