示例#1
0
 public async void ChangePanel_OkBtn()
 {
     if (!this.Connecter.IsWatcher)
     {
         if (this.Connecter.IsHost)
         {
             this.HostCard.CC_id = this.picked.CC_id;
             this.HostCard.level = this.picked.level;
             this.HostCardObj    = this.picked_cardObj;
             this.HostCardAB     = this.PickedCardAB;
             StartCoroutine(this.HostCard.InitCCImg2(
                                picked_cardObj, PickedCardAB));
             StartCoroutine(this.HostCard.InitCCLvFrame());
             StartCoroutine(this.HostCard.InitEquSetting(0, 0));
         }
         else
         {
             this.DuelerCard.CC_id = this.picked.CC_id;
             this.DuelerCard.level = this.picked.level;
             this.DuelCardObj      = this.picked_cardObj;
             this.DuelCardAB       = this.PickedCardAB;
             StartCoroutine(this.DuelerCard.InitCCImg2(
                                picked_cardObj, PickedCardAB));
             StartCoroutine(this.DuelerCard.InitCCLvFrame());
             StartCoroutine(this.DuelerCard.InitEquSetting(0, 0));
         }
         await this.Connecter.ChangeCharCard(
             this.picked.CC_id,
             this.PickedCardAB.id,
             this.picked.level
             );
     }
     this.ChangeDeckPanel.SetActive(false);
 }
    public IEnumerator InitCCImg(CardObject Co, CardSetPack Cs)
    {
        string name_string = "";

        switch (SL_setting)
        {
        case SystemLanguage.Chinese:
        case SystemLanguage.ChineseTraditional:
            name_string = Co.name.tcn;
            break;

        case SystemLanguage.ChineseSimplified:
            name_string = Co.name.scn;
            break;

        case SystemLanguage.Japanese:
            name_string = Co.name.jp;
            break;

        case SystemLanguage.Korean:
            name_string = Co.name.kr;
            break;

        case SystemLanguage.Indonesian:
            name_string = Co.name.ina;
            break;

        case SystemLanguage.Thai:
            name_string = Co.name.thai;
            break;

        case SystemLanguage.English:
        case SystemLanguage.Unknown:
        default:
            name_string = Co.name.en;
            break;
        }
        if (name_string == "")
        {
            name_string = Co.name.en;
        }

        if (this.transform.Find("frame/name/val").gameObject)
        {
            this.transform.Find("frame/name/val").gameObject.GetComponent <Text>().text = name_string;
            this.HP_defaut = Cs.hp;
            this.HPDefault.GetComponent <Text>().text = "/" + Cs.hp.ToString();
            this.HP         = Cs.hp;
            this.ATK_defaut = Cs.ap;
            this.ATK        = Cs.ap;
            this.DEF_defaut = Cs.dp;
            this.DEF        = Cs.dp;
        }
        else
        {
            yield return(false);
        }
        yield return(true);
    }
示例#3
0
    public IEnumerator InitCCImg(CardSetPack Cs)
    {
        MainStand_raw = Cs.stand_image;
        Shadow_raw    = Cs.bg_image;

        if (MainStand == null)
        {
            yield return(false);
        }
        else
        {
            Texture2D tas = Cs.stand_image_t2;

            var income_img_ratio = (float)(tas.height / tas.width);
            var orig_img_ratio   = (float)Cs.stand_image.height / Cs.stand_image.width;

            var ms_sprite = MainStand.GetComponent <SpriteRenderer>();
            ms_sprite.sprite = Sprite.Create(tas,
                                             new Rect(0, 0, tas.width, tas.height),
                                             new Vector2(0.5f, 0f)
                                             );
            MainStand.AddComponent <BoxCollider2D>();

            var mtrans = MainStand.GetComponent <RectTransform>();
            mtrans.localScale = new Vector3((float)(income_img_ratio / orig_img_ratio), 1, 1);
        }

        if (Shadow == null)
        {
            yield return(false);
        }
        else
        {
            Texture2D tas = Cs.bg_image_t2;
            var       income_img_ratio = (float)1 / (tas.width / tas.height);
            var       orig_img_ratio   = (float)Cs.bg_image.height / Cs.bg_image.width;

            var ms_sprite = Shadow.GetComponent <SpriteRenderer>();
            ms_sprite.sprite = Sprite.Create(tas,
                                             new Rect(0, 0, tas.width, tas.height),
                                             new Vector2(0.5f, 1f)
                                             );
            var mtrans = Shadow.GetComponent <RectTransform>();
            mtrans.localScale = new Vector3((float)(income_img_ratio / orig_img_ratio), 1, 1);
        }

        if (CCMainSet == null)
        {
            yield return(false);
        }
        else
        {
            this.transform.Find("cc").localScale = new Vector3(ratio, ratio, 1);
        }

        yield return(true);
    }
示例#4
0
    // ChangePanel related
    public void ChangePanel_OnCardClick(CardObject cardObject, CardSetPack cardSet)
    {
        // picked_ab = this.CardAB[cardObject.id - 1];

        picked_cardObj = cardObject;
        picked_cardSet = cardSet;
        picked.CC_id   = cardObject.id;
        picked.level   = cardSet.level;
        // PickedCardAB = this.CardAssetPack[$"cc_{cardObject.id}_{cardSet.id}"];
        PickedCardAB = cardSet;
        StartCoroutine(picked.InitCCImg2(cardObject, cardSet));
        StartCoroutine(picked.InitCCLvFrame());
        StartCoroutine(picked.InitEquSetting(0, 0));
    }
示例#5
0
 public IEnumerator InitCCImg2(CardSetPack Cs)
 {
     if (this.IconBlock == null)
     {
         yield return(false);
     }
     else
     {
         Texture2D tas   = Cs.artifact_image_t2;
         var       sprit = IconBlock.GetComponent <SpriteRenderer>();
         sprit.sprite = Sprite.Create(tas,
                                      new Rect(0, 0, tas.width, tas.height),
                                      new Vector2(0.5f, 0.5f)
                                      );
         float orig_ratio = ((float)tas.height / (float)tas.width) /
                            ((float)Cs.artifact_image.height / (float)Cs.artifact_image.width);
         IconBlock.GetComponent <Transform>().localScale *= new Vector2(orig_ratio * 1.2f, 1 * 1.2f);
     }
     yield return(true);
 }
示例#6
0
    public void OnConnecterUpdate_CardChange(RoomMsg msg)
    {
        string js_str = msg.Message.Replace("CardChange::", "");

        Debug.Log(js_str);

        RoomUpdateCardReq msg_blk = RoomUpdateCardReq.Parser.ParseJson(js_str);

        Debug.Log($"{msg_blk.CharcardId}, {msg_blk.CardsetId}, {msg_blk.Level}");

        var Dataset = this.CardObjectDic[$"cc_{msg_blk.CharcardId.ToString()}"];

        Debug.Log($"Dataset.name{Dataset.name.jp}");

        var tmpAssetPack = this.CardAssetPack[$"cc_{msg_blk.CharcardId.ToString()}_{msg_blk.CardsetId.ToString()}"];

        if (
            (msg_blk.Side == RoomUpdateCardReq.Types.PlayerSide.Host && !this.Connecter.IsHost) ||
            this.Connecter.IsWatcher
            )
        {
            this.HostCard.CC_id = Dataset.id;
            this.HostCard.level = tmpAssetPack.level;
            this.HostCardObj    = Dataset;
            this.HostCardAB     = tmpAssetPack;
            this.isHostUpdated  = true;
        }
        else if (
            (msg_blk.Side == RoomUpdateCardReq.Types.PlayerSide.Dueler && this.Connecter.IsHost) ||
            this.Connecter.IsWatcher
            )
        {
            this.DuelerCard.CC_id = Dataset.id;
            this.DuelerCard.level = tmpAssetPack.level;
            this.DuelCardObj      = Dataset;
            this.DuelCardAB       = tmpAssetPack;
            this.isDuelUpdated    = true;
        }
    }
示例#7
0
    public IEnumerator StartResxLoad()
    {
        ABPreloaded = new List <CardSetPack>();
        List <int> used_cc_id = new List <int> {
            SelfCC_ID,
            DuelCC_ID
        }.Distinct().ToList();

        List <int> used_cc_set_id = new List <int> {
            SelfCardSet_ID, DuelCardSet_ID
        };

        foreach (var tmp in used_cc_id)
        {
            var abs = AssetBundle.LoadFromFile(
                Path.Combine(_asset_path, "CC" + (
                                 tmp.ToString()
                                 ).PadLeft(2, '0') + ".ab")
                );

            if (abs == null)
            {
                yield return(null);
            }
            TextAsset ta  = abs.LoadAsset("card_set.json") as TextAsset;
            TextAsset ska = abs.LoadAsset("skill.json") as TextAsset;

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

            foreach (var cs in co.card_set)
            {
                if (used_cc_set_id.Contains(cs.id))
                {
                    CardSetPack csp = new CardSetPack();
                    csp = cs;
                    csp.chara_image_t2    = abs.LoadAsset(csp.chara_image.name.Replace(".png", "")) as Texture2D;
                    csp.stand_image_t2    = abs.LoadAsset(csp.stand_image.name.Replace(".png", "")) as Texture2D;
                    csp.bg_image_t2       = abs.LoadAsset(csp.bg_image.name.Replace(".png", "")) as Texture2D;
                    csp.artifact_image_t2 = abs.LoadAsset(csp.artifact_image.name.Replace(".png", "")) as Texture2D;

                    List <int> sumd = new List <int>();
                    foreach (int d in csp.skill_pointer)
                    {
                        if (!sumd.Contains(d))
                        {
                            sumd.Add(d);
                        }
                    }
                    List <SkillObject> skj = new List <SkillObject>();
                    foreach (var y in tmp_sk)
                    {
                        if (sumd.Contains(y.id) && !skj.Contains(y))
                        {
                            skj.Add(y);
                        }
                    }

                    foreach (var y in skj)
                    {
                        y.effect_image_t2 = abs.LoadAsset(y.effect_image.name.Replace(".png", "")) as Texture2D;
                    }

                    csp.skill_obj = skj;

                    // ABPreloaded.Add(csp);
                    if (csp.id == SelfCardSet_ID)
                    {
                        SelfDataSet     = co;
                        SelfDataCardSet = csp;
                    }
                    else if (csp.id == DuelCardSet_ID)
                    {
                        DuelDataSet     = co;
                        DuelDataCardSet = csp;
                    }
                    ABPreloaded.Add(csp);
                }
            }

            abs.Unload(false);
        }
        ;

        yield return(true);
    }
示例#8
0
    public IEnumerator InitSkipStatus(
        // AssetBundle tar_asset,
        CardObject json, CardSetPack cs, List <SkillObject> sko,
        int cc_id, int level
        )
    {
        // yield return null;
        card_face.CC_id = cc_id;
        card_face.level = level;
        StartCoroutine(card_face.InitCCImg2(json, cs));
        StartCoroutine(card_face.InitCCLvFrame());
        StartCoroutine(card_face.InitEquSetting(0, 0));
        string name_string = "", desp_string = "";

        switch (sys_lang)
        {
        case SystemLanguage.Chinese:
        case SystemLanguage.ChineseTraditional:
            name_string = json.name.tcn;
            desp_string = json.caption.tcn;
            break;

        case SystemLanguage.ChineseSimplified:
            name_string = json.name.scn;
            desp_string = json.caption.scn;

            break;

        case SystemLanguage.Japanese:
            name_string = json.name.jp;
            desp_string = json.caption.jp;

            break;

        case SystemLanguage.Korean:
            name_string = json.name.kr;
            desp_string = json.caption.kr;
            break;

        case SystemLanguage.Indonesian:
            name_string = json.name.ina;
            desp_string = json.caption.ina;
            break;

        case SystemLanguage.Thai:
            name_string = json.name.thai;
            desp_string = json.caption.thai;
            break;

        case SystemLanguage.English:
        case SystemLanguage.Unknown:
        default:
            name_string = json.name.en;
            desp_string = json.caption.en;
            break;
        }
        if (name_string == "")
        {
            name_string = json.name.jp;
            desp_string = json.caption.jp;
        }

        CC_Title.text = name_string;
        CC_Desp.text  = desp_string;

        // Skill Related
        foreach (SkillObject t in sko)
        {
            if (cs.skill_pointer.Contains(t.id))
            {
                GameObject ff = (GameObject)Instantiate(
                    Skill_Info_Prefab, ScrollParent.transform);
                ff.GetComponent <IP_SkillBox>().init(t);
                this.WaitForDestory.Add(ff);
            }
        }

        // StartCoroutine();
        yield return(true);
    }
示例#9
0
    public IEnumerator Init(
        AssetBundle tar_asset,
        CardObject json, CardSetPack cs, List <SkillObject> sko,
        bool isSelf, int cc_id, int level
        )
    {
        // yield return null;
        card_face.CC_id = cc_id;
        card_face.level = level;
        StartCoroutine(card_face.InitCCImg(tar_asset, json, cs));
        StartCoroutine(card_face.InitCCLvFrame());
        StartCoroutine(card_face.InitEquSetting(0, 0));
        string name_string = "", desp_string = "";

        switch (sys_lang)
        {
        case SystemLanguage.Chinese:
        case SystemLanguage.ChineseTraditional:
            name_string = json.name.tcn;
            desp_string = json.caption.tcn;
            break;

        case SystemLanguage.ChineseSimplified:
            name_string = json.name.scn;
            desp_string = json.caption.scn;

            break;

        case SystemLanguage.Japanese:
            name_string = json.name.jp;
            desp_string = json.caption.jp;

            break;

        case SystemLanguage.Korean:
            name_string = json.name.kr;
            desp_string = json.caption.kr;
            break;

        case SystemLanguage.Indonesian:
            name_string = json.name.ina;
            desp_string = json.caption.ina;
            break;

        case SystemLanguage.Thai:
            name_string = json.name.thai;
            desp_string = json.caption.thai;
            break;

        case SystemLanguage.English:
        case SystemLanguage.Unknown:
        default:
            name_string = json.name.en;
            desp_string = json.caption.en;
            break;
        }
        if (name_string == "")
        {
            name_string = json.name.jp;
            desp_string = json.caption.jp;
        }

        CC_Title.text = name_string;
        CC_Desp.text  = desp_string;

        foreach (SkillObject t in sko)
        {
            GameObject ff = (GameObject)Instantiate(
                Skill_Info_Prefab, ScrollParent.transform);
            ff.GetComponent <IP_SkillBox>().init(t);
            this.WaitForDestory.Add(ff);
        }
        List <GameObject> status_icon_tmp = new List <GameObject>();
        var Status_list_sample            = isSelf? status_ab.SelfList : status_ab.DuelList;

        for (int i = 0; i < Status_list_sample.Count; i++)
        {
            var st_id = Status_list_sample[i].GetComponent <StatusEffectViewSetting>().rawSet;
            int cd    = Status_list_sample[i].GetComponent <StatusEffectViewSetting>().Turns;

            GameObject ff = (GameObject)Instantiate(status_prefab, status_list.transform);
            ff.GetComponent <IP_Status>().base_asset = status_ab;
            ff.GetComponent <IP_Status>().init(st_id, cd);
            status_icon_tmp.Add(ff);
            this.WaitForDestory.Add(ff);

            GameObject fv = (GameObject)Instantiate(
                Status_Info_Prefab, ScrollParent.transform);
            fv.GetComponent <IP_StatusBox>().base_asset = status_ab;
            fv.GetComponent <IP_StatusBox>().init(st_id);
            this.WaitForDestory.Add(fv);
        }
        var hdiff = (RectTransform)status_prefab.transform;

        for (int k = 0; k < status_icon_tmp.Count; k++)
        {
            float xt = (float)Math.Round((float)(k / 6), 1);
            float yt = (float)(k % 6);

            status_icon_tmp[k].transform.position += new Vector3(
                (hdiff.rect.width + 2) * xt,
                (hdiff.rect.height + 2) * -yt,
                0
                );
        }

        // StartCoroutine();
        yield return(true);
    }
示例#10
0
    public IEnumerator InitCCImg2(CardObject Co, CardSetPack Cs)
    {
        // Debug.Log($"ab:{ab == null},Co:{Co == null},Cs:{Cs == null}");
        // this.original = Cs;
        this.transform.Find("CardFace/char").gameObject.GetComponent <RawImage>().texture = Cs.chara_image_t2;

        string name_string = "";

        switch (SL_setting)
        {
        case SystemLanguage.Chinese:
        case SystemLanguage.ChineseTraditional:
            name_string = Co.name.tcn;
            break;

        case SystemLanguage.ChineseSimplified:
            name_string = Co.name.scn;
            break;

        case SystemLanguage.Japanese:
            name_string = Co.name.jp;
            break;

        case SystemLanguage.Korean:
            name_string = Co.name.kr;
            break;

        case SystemLanguage.Indonesian:
            name_string = Co.name.ina;
            break;

        case SystemLanguage.Thai:
            name_string = Co.name.thai;
            break;

        case SystemLanguage.English:
        case SystemLanguage.Unknown:
        default:
            name_string = Co.name.en;
            break;
        }
        if (name_string == "")
        {
            name_string = Co.name.jp;
        }

        if (this.transform.Find("CardFace/frame/name/val").gameObject)
        {
            this.transform.Find("CardFace/frame/name/val").gameObject.GetComponent <Text>().text = name_string;
            this.HP_defaut  = Cs.hp;
            this.HP         = Cs.hp;
            this.ATK_defaut = Cs.ap;
            this.ATK        = Cs.ap;
            this.DEF_defaut = Cs.dp;
            this.DEF        = Cs.dp;
            yield return(true);
        }
        else
        {
            yield return(false);
        }
        // if (this.transform.Find())
        yield return(true);
    }