public new ConsumableItemMaster GetItemMaster() { if (consumableItemMaster != null) { return(consumableItemMaster); } if (ItemRegister.TryGetItem <ConsumableItemMaster>(Name, out var result)) { consumableItemMaster = result; return(consumableItemMaster); } consumableItemMaster = new ConsumableItemMaster(); consumableItemMaster = ItemDatabase.GetItemByName("HP Potion I").DuplicateAs <ConsumableItemMaster>(); consumableItemMaster.SetItemName(NameKey, Name); consumableItemMaster.SetItemDescription(DescriptionKey, Description); consumableItemMaster.worldSpriteName = SpriteKey; consumableItemMaster.stats = new StatsModificator(); consumableItemMaster.equipmentSlot = EquipmentItemMaster.EquipmentSlot.Potion; ItemRegister.AddItemMaster(consumableItemMaster); return(consumableItemMaster); }
public void ItemRegister_Total_SingleItem() { var itemRegister = new ItemRegister(); itemRegister.Add(new MockItem()); Assert.Equal(1.0m, itemRegister.Total()); }
public void ItemRegister_UniqueItemCount_SingleItem() { var register = new ItemRegister(); register.Add(new MockItem()); Assert.Equal(1, register.UniqueItemCount()); }
public void ItemRegister_Total_TenItems() { var itemRegister = new ItemRegister(); for (int i = 0; i < 10; i++) { itemRegister.Add(new MockItem()); } Assert.Equal(10.0m, itemRegister.Total()); }
private void Registers_MethodRegistered(ItemRegister obj) { if (obj is MethodRegister methodItem) { if (!methodItem.Type.CustomAttributes.OfType <SerializableAttribute>().Any()) { MessageBox.Show($"Ошибка в инициализации метода {methodItem.Directory.Last()}. " + $"Класс {methodItem.Type.FullName} не помечен как сериализуемый"); } } }
public void ItemRegister_Add_QuantityItem() { var register = new ItemRegister(); register.Add(new QuantityItem() { quantity = 1, value = 1 }); Assert.Equal(1, register.Total()); }
public void ItemRegister_Add_WeightedItem() { var register = new ItemRegister(); register.Add(new WeightedItem() { weight = 1, value = 1 }); Assert.Equal(1, register.Total()); }
internal static void Postfix(string name, int plusLevel, ref ItemMaster __result) { if (__result != null) { return; } if (ThrowIfNameNullOrEmpty(name)) { return; } // Remove spaces and try to find the name var clean = name.Replace(" ", ""); var cleanedItem = ItemDatabase.Instance?.itemCollections[plusLevel]?.items.FirstOrDefault(i => i != null && i.name == clean); if (cleanedItem != null) { __result = cleanedItem; return; } // Check ItemRegister if (ItemRegister.TryGetItem <ConsumableItemMaster>(name, out var consumeMaster)) { __result = consumeMaster; return; } if (ItemRegister.TryGetItem <WeaponEquipmentMaster>(name, out var weaponMaster)) { __result = weaponMaster; return; } if (ItemRegister.TryGetItem <EquipmentItemMaster>(name, out var equipMaster)) { __result = equipMaster; return; } if (ItemRegister.TryGetItem <ItemMaster>(name, out var itemMaster)) { __result = itemMaster; return; } }
public void ItemRegister_Add_DifferentItems() { var register = new ItemRegister(); register.Add(new QuantityItem() { name = "quantity", quantity = 1, value = 1 }); register.Add(new WeightedItem() { name = "weighted", weight = 1, value = 1 }); register.Add(new MockItem()); Assert.Equal(3, register.Total()); }
public ItemMaster GetItemMaster() { if (itemMaster != null) { return(itemMaster); } if (ItemRegister.TryGetItem <ItemMaster>(Name, out var result)) { itemMaster = result; return(itemMaster); } itemMaster = ItemDatabase.GetItemByName("HP Potion I").Duplicate(); itemMaster.SetItemName(NameKey, Name); itemMaster.SetItemDescription(DescriptionKey, Description); itemMaster.worldSpriteName = SpriteKey; ItemRegister.AddItemMaster(itemMaster); return(itemMaster); }
internal static bool Prefix(ItemStack __instance, ref ItemMaster itemMaster, int howMany = 1) { if (ItemRegister.TryGetItem <ConsumableItemMaster>(itemMaster.name, out var consumable)) { itemMaster = consumable; } if (ItemRegister.TryGetItem <WeaponEquipmentMaster>(itemMaster.name, out var weapon)) { itemMaster = weapon; } if (ItemRegister.TryGetItem <EquipmentItemMaster>(itemMaster.name, out var equip)) { itemMaster = equip; } if (ItemRegister.TryGetItem <ItemMaster>(itemMaster.name, out var item)) { itemMaster = item; } return(true); }
internal static void Postfix(InventoryPanel __instance, ref bool __result) { System.Console.WriteLine("==========================================="); System.Console.WriteLine("Fix null refrence exception when consuming last potion"); System.Console.WriteLine("==========================================="); __result = true; if (!__instance.IsActive() || !__instance.receiveInput || __instance.blockInput) { __result = false; return; } if (!InventoryPanel.currentSelectedSlot) { return; } InventorySlotGUI component = InventoryPanel.currentSelectedSlot.GetComponent <InventorySlotGUI>(); if (!component.itemStack || !component.itemStack.Consumable) { return; } Consumable consumable = component.itemStack.Consumable; if (!consumable.SendConsumeEvent()) { component.PlayWrongAnimation(); return; } component.PlaySelectedAnimation(Constants.GetFloat("inventorySlotPressPunchValue")); BagInventorySlotGUI component2 = InventoryPanel.currentSelectedSlot.GetComponent <BagInventorySlotGUI>(); if (component2) { if (component2.itemStack.Quantity == 0) { HeroMerchant.Instance.heroMerchantInventory.SetItem(null, component2.slotIndex); } else { HeroMerchant.Instance.heroMerchantInventory.RefreshSlotAt(component2.slotIndex); } } else { EquipmentInventorySlotGUI component3 = InventoryPanel.currentSelectedSlot.GetComponent <EquipmentInventorySlotGUI>(); if (component3) { if (component3.type == HeroMerchantInventory.EquipmentSlot.Potion) { if (component3.itemStack.Quantity > 0) { component3.UpdateItem(); HUDManager.Instance.SetPotionQuantity(component3.itemStack.Quantity); } else { HeroMerchant.Instance.heroMerchantInventory.SetEquippedItemByType(null, HeroMerchantInventory.EquipmentSlot.Potion); HUDManager.Instance.SetEmptyConsumableIcon(); } } } else { ChestSlotGUI component4 = InventoryPanel.currentSelectedSlot.GetComponent <ChestSlotGUI>(); if (component4) { component4.UpdateItem(); } } } // Check ItemRegistry to see if this is a custom item ConsumableItemMaster consumableItemMaster = ItemRegister.GetItem <ConsumableItemMaster>(component.item.name); if (consumableItemMaster is null) { consumableItemMaster = component.item as ConsumableItemMaster; } bool isGuidenceEffect = (consumableItemMaster?.consumableEffectName is null) ? false : consumableItemMaster.consumableEffectName.Contains("Guidance"); if (isGuidenceEffect) { DOVirtual.DelayedCall(0.1f, delegate { GUIManager.Instance.DisableCurrentPanel(); }, true); } }
public void ItemRegister_UniqueItemCount_NoItems() { var register = new ItemRegister(); Assert.Equal(0, register.UniqueItemCount()); }