Example #1
0
        public void JewelOfLifeFailRemovesOption()
        {
            var contextProvider = new InMemoryPersistenceContextProvider();
            var consumeHandler  = new LifeJewelConsumeHandler(contextProvider);

            consumeHandler.Configuration.SuccessChance = 1;
            var player             = this.GetPlayer();
            var upgradeableItem    = this.GetItemWithPossibleOption();
            var upgradableItemSlot = (byte)(ItemSlot + 1);

            player.Inventory.AddItem(upgradableItemSlot, upgradeableItem);

            var jol = this.GetItem();

            player.Inventory.AddItem(ItemSlot, jol);
            jol.Durability = 1;

            consumeHandler.ConsumeItem(player, ItemSlot, upgradableItemSlot);
            Assert.That(upgradeableItem.ItemOptions.Count, Is.EqualTo(1));

            // then adding fails, so one option needs to be removed
            consumeHandler.Configuration.SuccessChance = 0;
            var jol2 = this.GetItem();

            player.Inventory.AddItem(ItemSlot, jol2);
            jol2.Durability = 1;
            var jolConsumed = consumeHandler.ConsumeItem(player, ItemSlot, upgradableItemSlot);

            Assert.That(jolConsumed, Is.True);
            Assert.That(upgradeableItem.ItemOptions.Count, Is.EqualTo(0));
        }
Example #2
0
        public void JewelOfLifeFailReducesOptionLevel()
        {
            var contextProvider = new InMemoryPersistenceContextProvider();
            var consumeHandler  = new LifeJewelConsumeHandler(contextProvider);

            consumeHandler.Configuration.SuccessChance = 1;
            var player             = this.GetPlayer();
            var upgradeableItem    = this.GetItemWithPossibleOption();
            var upgradableItemSlot = (byte)(ItemSlot + 1);

            player.Inventory.AddItem(upgradableItemSlot, upgradeableItem);

            // we're adding 3 options first
            for (int i = 0; i < 3; i++)
            {
                var item = this.GetItem();
                player.Inventory.AddItem(ItemSlot, item);
                item.Durability = 1;

                consumeHandler.ConsumeItem(player, item, upgradeableItem);
            }

            // then adding fails, so one option needs to be removed
            consumeHandler.Configuration.SuccessChance = 0;
            var jol = this.GetItem();

            player.Inventory.AddItem(ItemSlot, jol);
            jol.Durability = 1;
            var jolConsumed = consumeHandler.ConsumeItem(player, jol, upgradeableItem);

            Assert.That(jolConsumed, Is.True);
            Assert.That(upgradeableItem.ItemOptions.Count, Is.EqualTo(1));
            Assert.That(upgradeableItem.ItemOptions.First().Level, Is.EqualTo(2));
        }
Example #3
0
        public void JewelOfLife(int numberOfOptions, bool consumptionExpectation)
        {
            var contextProvider = new InMemoryPersistenceContextProvider();
            var consumeHandler  = new LifeJewelConsumeHandler(contextProvider);

            consumeHandler.Configuration.SuccessChance = 1;
            var player             = this.GetPlayer();
            var upgradeableItem    = this.GetItemWithPossibleOption();
            var upgradableItemSlot = (byte)(ItemSlot + 1);

            player.Inventory.AddItem(upgradableItemSlot, upgradeableItem);
            bool jolConsumed = false;

            for (int i = 0; i < numberOfOptions; i++)
            {
                var item = this.GetItem();
                player.Inventory.AddItem(ItemSlot, item);
                item.Durability = 1;

                jolConsumed = consumeHandler.ConsumeItem(player, ItemSlot, upgradableItemSlot);
            }

            Assert.That(jolConsumed, Is.EqualTo(consumptionExpectation));
            if (jolConsumed)
            {
                Assert.That(upgradeableItem.ItemOptions.Count, Is.EqualTo(1));
                Assert.That(upgradeableItem.ItemOptions.First().Level, Is.EqualTo(numberOfOptions));
            }
        }
Example #4
0
        public void JewelOfLife(int numberOfOptions, bool expectation)
        {
            var repositoryManager = new BaseRepositoryManager();
            var consumeHandler    = new LifeJewelConsumeHandler(repositoryManager);

            consumeHandler.Configuration.SuccessChance = 1;
            var player             = this.GetPlayer();
            var upgradeableItem    = this.GetItemWithPossibleOption();
            var upgradableItemSlot = (byte)(ItemSlot + 1);

            player.Inventory.AddItem(upgradableItemSlot, upgradeableItem);
            bool success = false;

            for (int i = 0; i < numberOfOptions; i++)
            {
                var item = this.GetItem();
                player.Inventory.AddItem(ItemSlot, item);
                item.Durability = 1;

                success = consumeHandler.ConsumeItem(player, ItemSlot, upgradableItemSlot);
            }

            Assert.That(success, Is.EqualTo(expectation));
            if (success)
            {
                Assert.That(upgradeableItem.ItemOptions.Count, Is.EqualTo(numberOfOptions));
            }
        }