示例#1
0
        public ReprocessSession CollectReprocessSession(Character character, Container container, IEnumerable <long> targetEids)
        {
            var ec = ErrorCodes.NoError;
            var materialMultiplier = GetMaterialMultiplier(character);

#if (DEBUG)
            Logger.Info("material multiplier for reprocess: " + materialMultiplier);
#endif
            var reprocessSession = _reprocessSessionFactory();
            foreach (var targetEid in targetEids)
            {
                var targetItem = container.GetItem(targetEid, true);
                if (targetItem == null)
                {
                    continue;
                }

                if ((ec = ProductionHelper.CheckReprocessCondition(targetItem, character)) != ErrorCodes.NoError)
                {
                    continue;
                }

                reprocessSession.AddMember(targetItem, materialMultiplier, character);
            }

            if (targetEids.Count() == 1)
            {
                ec.ThrowIfNotEqual(ErrorCodes.NoError, ec);
            }

            return(reprocessSession);
        }