public void AddItem(IUIItem item, bool doesIncrement) { int idAtAdd = GetProspectiveSlotID(item); if (thisItemIcons.Count == idAtAdd) { AddIIAndMutate(item, idAtAdd); } else { IItemIcon iiAtID = thisItemIcons[idAtAdd]; if (iiAtID.IsEmpty()) { iiAtID.Disemptify(item); iiAtID.SetQuantityInstantly(0); iiAtID.UpdateQuantity(item.GetQuantity(), doesIncrement); } else { if (iiAtID.HasSameItem(item)) { iiAtID.IncreaseBy(item.GetQuantity(), doesIncrement); } else { this.AddIIAndMutate(item, idAtAdd); } } } }
public List <IItemIcon> CreateStubItemIconsWithItemTempsMatchingAt(int[] quantities, int[] sameAt, IItemTemplate sourceItemTemp) { List <IItemIcon> result = new List <IItemIcon>(); int index = -1; foreach (int i in quantities) { index++; IItemIcon ii = Substitute.For <IItemIcon>(); IUIItem tarItem = Substitute.For <IUIItem>(); if (i == -1) { ii.IsEmpty().Returns(true); ii.GetUIItem().Returns((IUIItem)null); ii.GetItemTemplate().Returns((IItemTemplate)null); } else { ii.IsEmpty().Returns(false); tarItem.GetQuantity().Returns(i); IItemTemplate tarItemTemp = Substitute.For <IItemTemplate>(); tarItem.GetItemTemplate().Returns(tarItemTemp); bool contained = false; foreach (int j in sameAt) { if (j == index) { contained = true; } } if (contained) { tarItemTemp.IsSameAs(sourceItemTemp).Returns(true); } else { tarItemTemp.IsSameAs(sourceItemTemp).Returns(false); } ii.GetUIItem().Returns(tarItem); ii.GetItemTemplate().Returns(tarItemTemp); } result.Add(ii); } return(result); }
public List <IItemIcon> CreateStubItemIcons(int iisCount, int[] emptyAt) { List <IItemIcon> result = new List <IItemIcon>(); for (int i = 0; i < iisCount; i++) { IItemIcon ii = Substitute.For <IItemIcon>(); foreach (int j in emptyAt) { if (j == i) { ii.IsEmpty().Returns(true); } else { ii.IsEmpty().Returns(false); } } result.Add(ii); } return(result); }
public void EvaluatePickability_ThisIsEmpty_CallsEngineBecomeUnpickable() { IItemIconConstArg arg; IItemIcon itemIcon = CreateTestItemIcon(out arg); IItemIconTransactionStateEngine iiTAStateEngine = arg.iiTAStateEngine; IItemIconEmptinessStateEngine emptinessStateEngine = arg.emptinessStateEngine; emptinessStateEngine.IsEmpty().Returns(true); Assert.That(itemIcon.IsEmpty(), Is.True); itemIcon.EvaluatePickability(); iiTAStateEngine.Received(1).BecomeUnpickable(); }