public override void OnExit()
 {
     this.thisPickedEqpII = null;
     thisEqpToolPanel.CheckAndRemoveEmptyEqpIIs();
     thisEqpIITAM.ClearHoveredEqpII();
     thisEqpIITAM.ClearEqpIIsToEquipAndUnequip();
 }
Exemplo n.º 2
0
    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);
    }
Exemplo n.º 3
0
    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);
         }
     }
 }
Exemplo n.º 5
0
 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);
    }
Exemplo n.º 7
0
        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));
    }
Exemplo n.º 9
0
        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();
    }
Exemplo n.º 18
0
 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();
    }
Exemplo n.º 20
0
    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);
    }
Exemplo n.º 25
0
    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());
            }
        }
Exemplo n.º 29
0
    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));
    }
Exemplo n.º 30
0
    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));
    }