예제 #1
0
        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);
        }
        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;
            }
        }
예제 #3
0
        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);
        }
예제 #4
0
        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);
        }