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); }
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); }
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); }
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); }
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); }
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); }