public override void OnExit() { this.thisPickedEqpII = null; thisEqpToolPanel.CheckAndRemoveEmptyEqpIIs(); thisEqpIITAM.ClearHoveredEqpII(); thisEqpIITAM.ClearEqpIIsToEquipAndUnequip(); }
List <IItemIcon> CreateStubEqpIIsWithSameItemAt(int size, IUIItem sourceItem, int[] sameAt) { List <IItemIcon> result = new List <IItemIcon>(); for (int i = 0; i < size; i++) { IEquippableItemIcon tarII = Substitute.For <IEquippableItemIcon>(); IUIItem tarItem = Substitute.For <IUIItem>(); tarII.GetUIItem().Returns(tarItem); bool contained = false; foreach (int j in sameAt) { if (j == i) { contained = true; } } if (contained) { tarItem.IsSameAs(sourceItem).Returns(true); } else { tarItem.IsSameAs(sourceItem).Returns(false); } result.Add(tarII); } return(result); }
List <IItemIcon> CreateStubIIsWithNoMatchAndEmptyAt(int size, IEquippableUIItem item, int[] emptyAt) { List <IItemIcon> result = new List <IItemIcon>(); for (int i = 0; i < size; i++) { IEquippableItemIcon tarII = Substitute.For <IEquippableItemIcon>(); bool contained = false; foreach (int j in emptyAt) { if (j == i) { contained = true; } } if (contained) { tarII.GetUIItem().Returns((IUIItem)null); tarII.IsEmpty().Returns(true); } else { IUIItem tarItem = Substitute.For <IUIItem>(); tarII.GetUIItem().Returns(tarItem); tarII.IsEmpty().Returns(false); } result.Add(tarII); } return(result); }
bool IsEligibleForHoverAsDestIGEqpII(IEquippableItemIcon pickedEqpII) { if (this.IsEmpty()) { return(true); } else { if (this.HasSameItemTemp(pickedEqpII)) { if (this.IsInPoolIG()) //picked from equipIG to pool { if (this.IsTransferable()) { return(true); } else { return(false); } } else //this.IsInEqpIG(), picked from pool { return(true); } } else //diff family { return(false); } } }
public override void CheckAndAddEmptyAddTarget(IEquippableItemIcon pickedEqpII) { if (this.IsEligibleForEmptyAddTargetAddition(pickedEqpII)) { IEquipToolEquippedCarriedGearsIG eqpCGIG = thisEqpIITAM.GetRelevantEquippedCarriedGearsIG(); eqpCGIG.AddEmptyAddTarget((pickedEqpII.GetEquippableItem())); } }
public IEquippableItemIcon CreateStubEqpII(bool isBowOrWear, bool isInEqpIG, bool isEquipped) { IEquippableItemIcon eqpII = Substitute.For <IEquippableItemIcon>(); eqpII.IsBowOrWearItemIcon().Returns(isBowOrWear); eqpII.IsInEqpIG().Returns(isInEqpIG); eqpII.IsEquipped().Returns(isEquipped); return(eqpII); }
protected IEquippableItemIcon GetSameItemEqpII(IEquippableItemIcon sourceEqpII) { IItemIcon iiWithItem = GetItemIconFromItem(sourceEqpII.GetUIItem()); if (iiWithItem != null) { return((IEquippableItemIcon)iiWithItem); } return(null); }
public void SetPickedII_SetsPickedEqpIIArg() { IEqpIITAMConstArg arg; EquippableItemIconTransactionManager eqpIITAM = CreateEqpIITAM(out arg); IEquippableItemIcon pickedEqpII = Substitute.For <IEquippableItemIcon>(); eqpIITAM.SetPickedII(pickedEqpII); Assert.That(eqpIITAM.GetPickedEqpII(), Is.SameAs(pickedEqpII)); }
public void HoverDefaultTransactionTargetEqpII(IEquippableItemIcon pickedEqpII) { IEquipToolIG relevantIG = this.GetRelevantEqpToolIG(pickedEqpII); IEquippableItemIcon defaultTATargetEqpII = relevantIG.GetDefaultTATargetEqpII(pickedEqpII); if (defaultTATargetEqpII != null) { defaultTATargetEqpII.CheckForHover(); } }
public void EvaluateHoverability_PickedTempIsCarriedGear_PickedEqpIIIsInPoolIG_PickedEqpIIIsEquipped_CallsEngineBecomeHoverable() { IEquipToolPanelConstArg arg; EquipToolEquippedItemsPanel eqpItemsPanel = CreateEqpToolEqpItemsPanel(out arg); IEquippableItemIcon pickedEqpII = CreateStubEqpII(isBowOrWear: false, isInEqpIG: false, isEquipped: true); IPanelTransactionStateEngine mockEngine = arg.panelTransactionStateEngine; eqpItemsPanel.EvaluateHoverability(pickedEqpII); mockEngine.Received(1).BecomeHoverable(); }
public void GetRelevantEquipIG_ArgItemTempIsCGears_ReturnsRelevantEquippedCGearsIG() { ITestEquipToolIGManagerConstArg arg; TestEquipToolIGManager testIGManager = CreateTestEquipToolIGManager(out arg); IEquippableItemIcon pickedEqpII = Substitute.For <IEquippableItemIcon>(); pickedEqpII.GetItemTemplate().Returns(Substitute.For <ICarriedGearTemplate>()); IEquipToolIG actualEqpToolIG = testIGManager.GetRelevantEquipIG(pickedEqpII); Assert.That(actualEqpToolIG, Is.SameAs(arg.cgIG)); }
public void ExcecuteTransaction_ThisEIIToEquipIsNotNull_CallsItEquip() { IEqpIITAMConstArg arg; TestEqpIITAM testEqpIITAM = CreateTestEqpIITAM(out arg); IEquippableItemIcon eii = Substitute.For <IEquippableItemIcon>(); testEqpIITAM.SetEIIToEquip(eii); Assert.That(testEqpIITAM.GetEIIToEquip(), Is.SameAs(eii)); testEqpIITAM.ExecuteTransaction(); eii.Received(1).Equip(); }
public void HoverInitialPickUpReceiver_PickedEqpIIIsNotInEqpIG_CallsPoolPanelCheckForHover() { IEqpIITAMConstArg arg; TestEqpIITAM testEqpIITAM = CreateTestEqpIITAM(out arg); IEquippableItemIcon pickedEqpII = Substitute.For <IEquippableItemIcon>(); pickedEqpII.IsInEqpIG().Returns(false); testEqpIITAM.SetPickedII(pickedEqpII); testEqpIITAM.HoverInitialPickUpReceiver(); arg.poolItemsPanel.Received(1).CheckForHover(); }
public void EvaluateHoverability_PickedEqpIIIsNotBowOrWear_CallsEngineBecomeHoverable() { IEquipToolPanelConstArg arg; EqpToolPoolItemsPanel panel = CreateEqpToolPoolItemsPanel(out arg); IEquippableItemIcon pickedEqpII = Substitute.For <IEquippableItemIcon>(); pickedEqpII.IsBowOrWearItemIcon().Returns(false); IPanelTransactionStateEngine engine = arg.panelTransactionStateEngine; panel.EvaluateHoverability(pickedEqpII); engine.Received(1).BecomeHoverable(); }
protected bool IsEligibleForQuickDrop() { IEquippableItemIcon hoveredEqpII = eqpIITAM.GetHoveredEqpII(); if (thisItem.IsStackable() && this.HasSameItem(hoveredEqpII)) { return(false); } else { return(true); } }
protected override bool IsEligibleForHover(IItemIcon pickedII) { CheckPassedItemIconTypeValidity(pickedII); IEquippableItemIcon pickedEqpII = (IEquippableItemIcon)pickedII; if (this.IsInSourceIG(pickedEqpII)) { return(this.IsEligibleForHoverAsSourceIGEqpII(pickedEqpII)); } else { return(this.IsEligibleForHoverAsDestIGEqpII(pickedEqpII)); } }
public void CheckAndRemoveEmptyEqpIIs_RelevEqpCGIGIsOfCarriedGearsTemp_CallsRelevIGRemoveEmpty() { IEquipToolPanelConstArg arg; EquipToolEquippedItemsPanel eqpItemsPanel = CreateEqpToolEqpItemsPanel(out arg); IEquipToolEquippedCarriedGearsIG relevEqpIG = Substitute.For <IEquipToolEquippedCarriedGearsIG>(); IEquippableItemIcon pickedEqpII = Substitute.For <IEquippableItemIcon>(); arg.eqpIITAM.GetPickedEqpII().Returns(pickedEqpII); arg.eqpIITAM.GetRelevantEquipIG(pickedEqpII).Returns(relevEqpIG); eqpItemsPanel.CheckAndRemoveEmptyEqpIIs(); relevEqpIG.Received(1).RemoveEmptyIIs(); }
protected override bool IsEligibleForHover(IItemIcon pickedII) { if (pickedII is IEquippableItemIcon) { IEquippableItemIcon pickedEqpII = pickedII as IEquippableItemIcon; IUIItem pickedItem = pickedEqpII.GetUIItem(); IItemTemplate pickedItemTemp = pickedItem.GetItemTemplate(); if (pickedEqpII.IsBowOrWearItemIcon()) // always swapped { return(true); } else { if (pickedEqpII.IsInEqpIG()) { return(true); //always revertable } else // pickd from pool { if (pickedEqpII.IsEquipped()) //always has the same partially picked item { return(true); } else { IEquipToolIG relevantEqpIG = thisEqpIITAM.GetRelevantEquipIG(pickedEqpII); if (relevantEqpIG.GetSize() == 1) //swap target is deduced { return(true); } else { if (relevantEqpIG.HasSlotSpace()) //add target is deduced { return(true); } else { return(false); } } } } } } else { throw new System.ArgumentException("pickedII must be of type IEquippableItemIcon"); } }
public void EvaluateHoverability_PickedTempIsCarriedGear_PickedEqpIIIsInPoolIG_PickedEqpIIIsNotEquipped_RelevantEqpIGSizeIsOne_CallsEngineBecomeHoverable() { IEquipToolPanelConstArg arg; EquipToolEquippedItemsPanel eqpItemsPanel = CreateEqpToolEqpItemsPanel(out arg); IEquippableItemIcon pickedEqpII = CreateStubEqpII(isBowOrWear: false, isInEqpIG: false, isEquipped: false); IPanelTransactionStateEngine mockEngine = arg.panelTransactionStateEngine; IEquipToolEquipIG relevantIG = Substitute.For <IEquipToolEquipIG>(); relevantIG.GetSize().Returns(1); arg.eqpIITAM.GetRelevantEquipIG(pickedEqpII).Returns(relevantIG); eqpItemsPanel.EvaluateHoverability(pickedEqpII); mockEngine.Received(1).BecomeHoverable(); }
public void IsEligibleForHover_ThisIsInSourceIG_ThisIsEmpty_ReturnsTrue() { IEquippableItemIconConstArg arg; TestEqpII testEqpII = CreateTestEqpII(out arg); IEquippableItemIcon pickedEqpII = Substitute.For <IEquippableItemIcon>(); IIconGroup thisIG = Substitute.For <IIconGroup>(); testEqpII.SetIconGroup(thisIG); pickedEqpII.GetIconGroup().Returns(thisIG); IItemIconEmptinessStateEngine emptinessStateEngine = arg.emptinessStateEngine; emptinessStateEngine.IsEmpty().Returns(true); Assert.That(testEqpII.TestIsEligibleForHover(pickedEqpII), Is.True); }
public void CheckAndAddEmptyAddTarget_PickedEqpIIIsBowOrWear_DoesNotCallRelevEqpCGIGAddEmpty() { IEquipToolPanelConstArg arg; EquipToolEquippedItemsPanel eqpItemsPanel = CreateEqpToolEqpItemsPanel(out arg); IEquippableItemIcon pickedEqpII = Substitute.For <IEquippableItemIcon>(); pickedEqpII.IsBowOrWearItemIcon().Returns(true); IEquipToolEquipIG relevEqpCGIG = Substitute.For <IEquipToolEquipIG>(); arg.eqpIITAM.GetRelevantEquippedCarriedGearsIG().Returns(relevEqpCGIG); eqpItemsPanel.CheckAndAddEmptyAddTarget(pickedEqpII); relevEqpCGIG.DidNotReceive().AddEmptyAddTarget(Arg.Any <IEquippableUIItem>()); }
public void HoverDefaultTransactionTargetEqpII_WhenCalled_CallsRelevEqpIGDefTATarEqpIICheckForHover() { IEquipToolPanelConstArg arg; EquipToolEquippedItemsPanel eqpItemsPanel = CreateEqpToolEqpItemsPanel(out arg); IEquippableItemIcon pickedEqpII = Substitute.For <IEquippableItemIcon>(); IEquipToolEquipIG relevantIG = Substitute.For <IEquipToolEquipIG>(); IEquippableItemIcon mockTarEqpII = Substitute.For <IEquippableItemIcon>(); relevantIG.GetDefaultTATargetEqpII(pickedEqpII).Returns(mockTarEqpII); arg.eqpIITAM.GetRelevantEquipIG(pickedEqpII).Returns(relevantIG); eqpItemsPanel.HoverDefaultTransactionTargetEqpII(pickedEqpII); mockTarEqpII.Received(1).CheckForHover(); }
public void GetAllRelevantIGs_ArgIsNotNull_ReturnsPoolIGAndRelevantEquipIG() { IEqpIITAMConstArg arg; EquippableItemIconTransactionManager eqpIITAM = CreateEqpIITAM(out arg); IEquipToolIGManager eqpToolIGManager = arg.eqpToolIGManager; IEquippableItemIcon pickedEqpII = Substitute.For <IEquippableItemIcon>(); List <IIconGroup> actualIGs = eqpIITAM.GetAllRelevantIGs(pickedEqpII); List <IEquipToolIG> expectedEqpToolIGs = new List <IEquipToolIG>(new IEquipToolIG[] { eqpToolIGManager.GetRelevantPoolIG(), eqpToolIGManager.GetRelevantEquipIG(pickedEqpII) }); Assert.That(actualIGs, Is.EqualTo(expectedEqpToolIGs)); }
public void EvaluateHoverability_CallsPanelsAndAllRelevIGsEvaluateHov() { IEqpIITAMConstArg arg; EquippableItemIconTransactionManager eqpIITAM = CreateEqpIITAM(out arg); IEquippableItemIcon pickedEqpII = Substitute.For <IEquippableItemIcon>(); eqpIITAM.SetPickedII(pickedEqpII); eqpIITAM.EvaluateHoverability(); arg.equippedItemsPanel.Received(1).EvaluateHoverability(pickedEqpII); arg.poolItemsPanel.Received(1).EvaluateHoverability(pickedEqpII); arg.eqpToolIGManager.GetRelevantPoolIG().Received(1).EvaluateAllIIsHoverability(pickedEqpII); arg.eqpToolIGManager.GetRelevantEquipIG(pickedEqpII).Received(1).EvaluateAllIIsHoverability(pickedEqpII); }
public void IsEligibleForQuickDrop_ThisItemIsStackable_ThisHasSameItemAsHoveredEqpII_ReturnsFalse() { IEquippableItemIconConstArg arg; TestEqpII testEqpII = CreateTestEqpII(out arg); IUIItem item = arg.item; item.IsStackable().Returns(true); IEquippableItemIcon hoveredEqpII = Substitute.For <IEquippableItemIcon>(); IEquippableUIItem hoveredItem = Substitute.For <IEquippableUIItem>(); hoveredEqpII.GetEquippableItem().Returns(hoveredItem); item.IsSameAs(hoveredItem).Returns(true); ((IEquippableIITAManager)arg.iiTAM).GetHoveredEqpII().Returns(hoveredEqpII); Assert.That(testEqpII.TestIsEligibleForQuickDrop(), Is.False); }
public void ExcecuteTransaction_ThisEIIToEquipIsNotNull_ThisEIIToEquipIsSameAsPickedEqpII_CallsItImmigrateToRelevEqpIG() { IEqpIITAMConstArg arg; TestEqpIITAM testEqpIITAM = CreateTestEqpIITAM(out arg); IEquippableItemIcon eii = Substitute.For <IEquippableItemIcon>(); testEqpIITAM.SetEIIToEquip(eii); Assert.That(testEqpIITAM.GetEIIToEquip(), Is.SameAs(eii)); testEqpIITAM.SetPickedII(eii); Assert.That(testEqpIITAM.GetPickedEqpII(), Is.SameAs(testEqpIITAM.GetEIIToEquip())); IEquipToolEquipIG eqpIG = arg.eqpToolIGManager.GetRelevantEquipIG(eii); testEqpIITAM.ExecuteTransaction(); eii.Received(1).TravelTransfer(eqpIG); }
public EqpIIHoveredState CreateEqpIIHoveredState(out IEqpIITAStateConstArg arg, out IEquippableItemIcon eqpII) { IEqpIITAStateConstArg thisArg = Substitute.For <IEqpIITAStateConstArg>(); IEquippableIITAManager thisEqpIITAM = Substitute.For <IEquippableIITAManager>(); thisArg.iiTAM.Returns(thisEqpIITAM); thisArg.eqpIITAM.Returns(thisEqpIITAM); thisArg.eqpTool.Returns(Substitute.For <IEquipTool>()); EqpIIHoveredState hoveredState = new EqpIIHoveredState(thisArg); IEquippableItemIcon thisEqpII = Substitute.For <IEquippableItemIcon>(); hoveredState.SetItemIcon(thisEqpII); arg = thisArg; eqpII = thisEqpII; return(hoveredState); }
public IEquipToolEquipIG GetRelevantEquipIG(IEquippableItemIcon pickedEqpII) { IItemTemplate itemTemp = pickedEqpII.GetItemTemplate(); if (itemTemp is IBowTemplate) { return(GetRelevantEquippedBowIG()); } else if (itemTemp is IWearTemplate) { return(GetRelevantEquippedWearIG()); } else { return(GetRelevantEquippedCarriedGearsIG()); } }
public void EqpToolEqpCarriedGearIG_GetDefaultTATargetEqpII_HasNoSameItem_HasEmpty_ReturnsFirstEmpty(int[] emptyAt) { IIconGroupConstArg arg; TestEqpToolEqpCGIG ig = CreateEqpToolEqpCarriedGearIG(0, 4, out arg); IEquippableItemIcon pickedEqpII = Substitute.For <IEquippableItemIcon>(); IEquippableUIItem pickedEqpItem = Substitute.For <IEquippableUIItem>(); pickedEqpII.GetUIItem().Returns(pickedEqpItem); List <IItemIcon> iis = CreateStubIIsWithNoMatchAndEmptyAt(4, pickedEqpItem, emptyAt); ig.SetItemIcons(iis); IEquippableItemIcon actualEqpII = ig.GetDefaultTATargetEqpII(pickedEqpII); IItemIcon expectedEqpII = iis[emptyAt[0]]; Assert.That(actualEqpII, Is.SameAs(expectedEqpII)); }
public void EqpToolEqpCarriedGearIG_GetDefaultTATargetEqpII_HasSameItem_ReturnsIt(int[] sameAt) { IIconGroupConstArg arg; TestEqpToolEqpCGIG ig = CreateEqpToolEqpCarriedGearIG(0, 4, out arg); IEquippableItemIcon pickedEqpII = Substitute.For <IEquippableItemIcon>(); IEquippableUIItem pickedEqpItem = Substitute.For <IEquippableUIItem>(); pickedEqpII.GetUIItem().Returns(pickedEqpItem); List <IItemIcon> iisContainingSameItem = CreateStubEqpIIsWithSameItemAt(4, pickedEqpItem, sameAt); ig.SetItemIcons(iisContainingSameItem); IEquippableItemIcon actualEqpII = ig.GetDefaultTATargetEqpII(pickedEqpII); IItemIcon expectedII = iisContainingSameItem[sameAt[0]]; Assert.That(actualEqpII, Is.SameAs(expectedII)); }