public void LoadProjectileAssetsAndCreatePools(List <IAssetVO> assets)
        {
            if (assets == null || assets.Count == 0)
            {
                return;
            }
            HashSet <string> hashSet = null;
            int i     = 0;
            int count = assets.Count;

            while (i < count)
            {
                IAssetVO assetVO = assets[i];
                if (this.loadedAssets.Add(assetVO))
                {
                    List <string> assetNames = ProjectileUtils.GetAssetNames(assetVO);
                    int           j          = 0;
                    int           count2     = assetNames.Count;
                    while (j < count2)
                    {
                        string text = assetNames[j];
                        if (!this.loadedAssetNames.ContainsKey(text))
                        {
                            if (hashSet == null)
                            {
                                hashSet = new HashSet <string>();
                                hashSet.Add(text);
                            }
                            else if (!hashSet.Contains(text))
                            {
                                hashSet.Add(text);
                            }
                        }
                        j++;
                    }
                }
                i++;
            }
            if (hashSet != null)
            {
                List <string>      list  = new List <string>(hashSet);
                List <object>      list2 = new List <object>();
                List <AssetHandle> list3 = new List <AssetHandle>();
                int k      = 0;
                int count3 = list.Count;
                while (k < count3)
                {
                    list2.Add(list[k]);
                    list3.Add(AssetHandle.Invalid);
                    k++;
                }
                Service.Get <AssetManager>().MultiLoad(list3, list, new AssetSuccessDelegate(this.OnProjectileLoaded), null, list2, null, null);
                int l      = 0;
                int count4 = list.Count;
                while (l < count4)
                {
                    this.loadedAssetNames.Add(list[l], list3[l]);
                    l++;
                }
            }
        }