コード例 #1
0
        public void Equip_HasMultipleFullSlots_UnequipsFirst()
        {
            var item1 = GiveHandTestItem(3);
            var item2 = GiveHandTestItem(4);
            var item3 = GiveHandTestItem(5);

            equipmentSystem.Equip(entity, item1);
            equipmentSystem.Equip(entity, item2);
            var result = equipmentSystem.Equip(entity, item3);

            result.Should().BeTrue();

            var expected = new EquipmentMappingList {
                new EquipmentMappingListItem {
                    EquipmentId = item3.EntityId, Slot = HandSlot
                },
                new EquipmentMappingListItem {
                    EquipmentId = item2.EntityId, Slot = HandSlot2
                }
            };

            entity.Get <Equipped>().EquippedItems.Should().BeEquivalentTo(expected);

            var expectedInventory = new EntityReferenceList()
            {
                item1
            };

            entity.Get <Inventory>().Contents.Should().BeEquivalentTo(expectedInventory);
        }
コード例 #2
0
        public void Equip_HasSlotAndSomethingEquipped_SingleSlot_ReplacesEquippedAndPutsOldInInventory()
        {
            var item = GiveHelmTestItem(3);

            equipmentSystem.Equip(entity, item);

            var newItem = GiveHelmTestItem(4);

            var result = equipmentSystem.Equip(entity, newItem);

            result.Should().BeTrue();


            var expected = new EquipmentMappingList
            {
                new EquipmentMappingListItem {
                    EquipmentId = newItem.EntityId, Slot = HeadSlot
                }
            };

            entity.Get <Equipped>().EquippedItems.Should().BeEquivalentTo(expected);

            var expectedInventory = new EntityReferenceList {
                item
            };

            entity.Get <Inventory>().Contents.Should().BeEquivalentTo(expectedInventory);
        }
コード例 #3
0
        public void Equip_EquipItemEventFails_DoesNotEquip()
        {
            var item = GiveHelmTestItem(3);

            eventSystem.Try(EventType.EquipItem, entity, Arg.Any <object>()).Returns(false);

            var result = equipmentSystem.Equip(entity, item);

            result.Should().BeFalse();

            var expected = new EquipmentMappingList {
            };

            entity.Get <Equipped>().EquippedItems.Should().BeEquivalentTo(expected);
        }
コード例 #4
0
        public void Equip_HasSlotAndNothingEquipped_AddsToEquipped()
        {
            var item = GiveHelmTestItem(3);

            var result = equipmentSystem.Equip(entity, item);

            result.Should().BeTrue();

            var expected = new EquipmentMappingList
            {
                new EquipmentMappingListItem {
                    EquipmentId = item.EntityId, Slot = HeadSlot
                }
            };

            entity.Get <Equipped>().EquippedItems.Should().BeEquivalentTo(expected);
        }
コード例 #5
0
        public void Equip_HasNoSlotFor_DoesNotEquipAndRemainsInInventory()
        {
            var item = GiveHelmTestItem(3);

            prototypeSystem.Get("EquipmentMappings").Returns(new Entity(1, "EquipmentMappings", new IEntityComponent[0]));

            var result = equipmentSystem.Equip(entity, item);

            result.Should().BeFalse();

            var expected = new EquipmentMappingList();

            entity.Get <Equipped>().EquippedItems.Should().BeEquivalentTo(expected);

            var expectedInventory = new EntityReferenceList {
                item
            };

            entity.Get <Inventory>().Contents.Should().BeEquivalentTo(expectedInventory);
        }
コード例 #6
0
        public void Equip_Boots_DoesNotUnequipTrousers()
        {
            var trousers = GiveTestItem(3, EquipmentSlot.Legs);
            var boots    = GiveTestItem(4, EquipmentSlot.Boots);

            var result = equipmentSystem.Equip(entity, trousers);

            result.Should().BeTrue();

            result = equipmentSystem.Equip(entity, boots);

            result.Should().BeTrue();

            var expected = new EquipmentMappingList {
                new EquipmentMappingListItem {
                    EquipmentId = trousers.EntityId, Slot = new EquipmentSlotDetails(EquipmentSlot.Legs, BodyPartType.Legs, BodyPartLocation.Lower, 0)
                },
                new EquipmentMappingListItem {
                    EquipmentId = boots.EntityId, Slot = new EquipmentSlotDetails(EquipmentSlot.Boots, BodyPartType.Legs, BodyPartLocation.Lower, 0)
                }
            };

            entity.Get <Equipped>().EquippedItems.Should().BeEquivalentTo(expected);
        }