Ejemplo n.º 1
0
        public bool DoCombineRecipe(ICombineRecipe pRecipe, IEnumerable <ICombineMaterial> arrMaterial)
        {
            if (Check_Recipe_IsEnoughMaterial(pRecipe, arrMaterial) == false)
            {
                return(false);
            }

            foreach (ICombineMaterial pMaterial in arrMaterial)
            {
                IRequireCombineMaterialData pRequireCombinationMaterial = pRecipe.arrRequireMaterialData.Where(p => p.IRequireMaterialKey == pMaterial.strCombineMaterialKey).FirstOrDefault();
                if (pRequireCombinationMaterial == null)
                {
                    continue;
                }

                if (pMaterial.iMaterialCount < pRequireCombinationMaterial.iRequireCount)
                {
                    continue;
                }

                pMaterial.iMaterialCount -= pRequireCombinationMaterial.iRequireCount;
            }

            return(pRecipe.ICombineRecipe_Combine(arrMaterial));
        }