Пример #1
0
        private bool CheckPropResource(IPropStore inventory,
                                       string usedPropResourceType,
                                       int usedPropResourceCount)
        {
            var props         = inventory.CalcActualItems();
            var propResources = new List <Resource>();

            foreach (var prop in props)
            {
                var propResource = prop as Resource;
                if (propResource == null)
                {
                    continue;
                }

                if (propResource.Scheme.Bullet?.Caliber == usedPropResourceType)
                {
                    propResources.Add(propResource);
                }
            }

            var preferredPropResource = propResources.FirstOrDefault();

            return(preferredPropResource != null && preferredPropResource.Count >= usedPropResourceCount);
        }
Пример #2
0
        private static bool CheckPropResource(IPropStore inventory,
                                              string usedPropResourceType,
                                              int usedPropResourceCount)
        {
            var props         = inventory.CalcActualItems();
            var propResources = new List <Resource>();

            foreach (var prop in props)
            {
                if (prop is Resource propResource)
                {
                    AddResourceOfUsageToList(usedPropResourceType, usedPropResourceCount, propResources, propResource);
                }

                // Остальные типы предметов пока не могут выступать, как источник ресурса.
                // Далее нужно будет сделать, чтобы:
                // 1. У персонажа был предмет экипировки, который позволяет выполнять
                // определённые действия другим предметов. Условно, симбиоз двух предметов (или сет предметов).
                // 2. У персонажа был экипирован предмет, который позволяет выполнять
                // определённые действия другим предметов.
                // 3. Расход прочности другого предмета.
                // 4. Применение обойм. Механика расхода предметов, когда ресурсы изымаются не из инвентаря,
                // а их специального контейнера внутри предмета. При необходимости, предмет нужно перезаряжать за
                // отдельное время.
            }

            var preferredPropResource = propResources.FirstOrDefault();

            return(preferredPropResource != null && preferredPropResource.Count >= usedPropResourceCount);
        }
Пример #3
0
        private bool CheckPropResource(IPropStore inventory,
                                       string usedPropResourceType,
                                       int usedPropResourceCount)
        {
            var propResources = from prop in inventory.CalcActualItems()
                                let propResource = prop as Resource
                                                   where propResource != null
                                                   where propResource.Scheme.Bullet?.Caliber == usedPropResourceType
                                                   select propResource;

            var preferredPropResource = propResources.FirstOrDefault();

            return(preferredPropResource != null && preferredPropResource.Count >= usedPropResourceCount);
        }