Exemplo n.º 1
0
        public async Task <IEnumerable <Perk> > LoadPerks(DestinyItemSocketState socket)
        {
            if (socket.ReusablePlugs != null)
            {
                var tasks = socket.ReusablePlugs.Select(reusablePlug =>
                {
                    var isSelected = reusablePlug.PlugItemHash == socket.PlugHash;
                    return(LoadPerk(reusablePlug.PlugItemHash, isSelected));
                });
                var perks = await Task.WhenAll(tasks);

                if (!perks.Any(perk => perk.Hash == socket.PlugHash))
                {
                    var selectedPerk = await LoadPerk(socket.PlugHash, true);

                    return(perks.Concat(new[] { selectedPerk }));
                }

                return(perks);
            }

            var singlePerk = await LoadPerk(socket.PlugHash, true);

            return(new[] { singlePerk });
        }
Exemplo n.º 2
0
        private async Task <Socket> CreateSocket(DestinyItemSocketEntryDefinition socketEntry,
                                                 DestinySocketTypeDefinition socketType, DestinySocketCategoryDefinition categoryDef,
                                                 DestinyItemSocketState socketState)
        {
            Perk selectedPerk = null;

            if (socketState.PlugHash != 0)
            {
                selectedPerk = await _perkFactory.LoadPerk(socketState.PlugHash, true);
            }

            return(new Socket(selectedPerk, null));
        }