Пример #1
0
        protected virtual int GetProgress(
            ConquestState state, Item item, int quality, bool slayer, CraftResource res, CraftSystem craft)
        {
            if (state.User == null)
            {
                return(0);
            }

            if (item == null || craft == null)
            {
                return(0);
            }

            if (ItemType.IsNotNull && !item.TypeEquals(ItemType, ItemChildren))
            {
                if (ItemChangeReset)
                {
                    return(-state.Progress);
                }

                return(0);
            }

            if (IsExceptional && quality == 0)
            {
                return(0);
            }

            if (IsSlayer && !slayer)
            {
                return(0);
            }

            if (IsCloth && !(item is BaseClothing))
            {
                return(0);
            }

            if (Resource != CraftResource.None && res != Resource)
            {
                return(0);
            }

            if (CraftSystem.IsNotNull && !craft.TypeEquals(CraftSystem, false))
            {
                return(0);
            }

            // This function is only called after a successful completion so amount will
            // not be zero except for the case of a potion that was created and auto-consolidated
            // into a keg by the oncraft handler in BasePotion
            if (item.Amount <= 0)
            {
                return(1);
            }

            return(item.Amount);
        }