示例#1
0
    // privated init loading
    void init_char_card_load()
    {
        card_setting       = ConfigContainer.LoadCardVersion(ConfigPath.StreamingAsset);
        this.CardAssetPack = new Dictionary <string, CardSetPack>();

        // this.DuelCardSet = new CardSet();
        this.DuelCardObj = new CardObject();
        // this.HostCardSet = new CardSet();
        this.HostCardObj = new CardObject();

        this.CardOption      = new List <GameObject>();
        this.SkillObjectDict = new Dictionary <string, List <SkillObject> >();
        this.CardObjectDic   = new Dictionary <string, CardObject>();

        foreach (var t in card_setting.Available)
        {
            AssetBundle ptmp = AssetBundle.LoadFromFile(
                Path.Combine(ConfigPath.Asset_path, "CC" + (t.ToString()).PadLeft(2, '0') + ".ab")
                );

            // AvailableCCAsset.Add(ptmp);
            TextAsset ta  = ptmp.LoadAsset("card_set.json") as TextAsset;
            TextAsset ska = ptmp.LoadAsset("skill.json") as TextAsset;

            CardObject Dataset = JsonConvert.DeserializeObject <CardObject>(ta.text);
            this.CardObjectDic.Add($"cc_{t.ToString()}", Dataset);

            List <SkillObject> tmp_sk = JsonConvert.DeserializeObject <List <SkillObject> >(ska.text);

            // CardSet
            // AvailableCard.AddRange(Dataset.card_set);

            foreach (var cs in Dataset.card_set)
            {
                GameObject gotmp     = (GameObject)Instantiate(CCardPrefab, ChangeDeckContent.transform);
                var        card_face = gotmp.GetComponent <CCardCtl>();
                card_face.CC_id = Dataset.id;
                card_face.level = cs.level;

                Texture2D tas = ptmp.LoadAsset(cs.chara_image.name.Replace(".png", "")) as Texture2D;
                cs.chara_image_t2 = tas;

                this.CardAssetPack.Add(
                    $"cc_{Dataset.id}_{cs.id}",
                    cs
                    );

                StartCoroutine(card_face.InitCCImg2(Dataset, cs));
                StartCoroutine(card_face.InitCCLvFrame());
                StartCoroutine(card_face.InitEquSetting(0, 0));
                Button gotmp_btn = gotmp.AddComponent <Button>();
                gotmp_btn.onClick.AddListener(() => ChangePanel_OnCardClick(Dataset, cs));
                this.CardOption.Add(gotmp);
                List <SkillObject> skj = new List <SkillObject>();
                foreach (var y in tmp_sk)
                {
                    if (cs.skill_pointer.Contains(y.id) && !skj.Contains(y))
                    {
                        skj.Add(y);
                    }
                }
                this.SkillObjectDict.Add(t.ToString() + "R" + cs.id.ToString(), skj);
            }
            // this.CardAB.Add(ptmp);
            ptmp.Unload(false);
        }
    }