private void SetHeadView()
    {
        HeroRare officerUp = JsonMgr.GetSingleton().GetHeroRareByID(heroData.Rare);

        Border_img.sprite = ResourceMgr.Instance.LoadSprite(officerUp.HeadBorder);
        Head_img.sprite   = ResourceMgr.Instance.LoadSprite(heroData.JsonData.headid);
        Lv_txt.text       = heroData.Level.ToString();

        int showStar = HeroMgr.MaxHeroStar - heroData.Star;

        starImage = HideStar_obj.transform.GetComponentsInChildren <Transform>();
        for (int i = 0; i < showStar; ++i)
        {
            starImage[i].SetParent(StarParent_obj.transform);
        }
    }
    private void ShowCard()
    {
        showGo = Card_trf;
        showGo.SetParent(Right_trf);

        bigcard_img.sprite = ResourceMgr.Instance.LoadSprite(heroData.JsonData.cardid);
        Worker_img.sprite  = ResourceMgr.Instance.LoadSprite(heroData.JsonData.type);

        HeroRare officerUp = JsonMgr.GetSingleton().GetHeroRareByID(heroData.Rare);

        Floor_img.sprite = ResourceMgr.Instance.LoadSprite(officerUp.CardBorder);
        Trans_img.sprite = ResourceMgr.Instance.LoadSprite(officerUp.CardTrans);

        for (int i = 0, length = crArray.Length; i < length; ++i)
        {
            crArray[i].SetAlpha(i < heroData.Star ? 1 : 0);
        }
        ///暂用 武将满星后处理待定....
        int[] matnum    = JsonMgr.GetSingleton().GetHeroStarByID(heroData.HeroId).matnum;
        int   needPiece = matnum[Mathf.Min(heroData.Star, matnum.Length - 1)];

        Piece_slider.value = heroData.Piece * 1f / needPiece;
        Num_txt.text       = heroData.Piece + "/" + needPiece;
        //升星减碎片
        if (heroData.Star >= HeroMgr.MaxHeroStar)
        {
            StarUp_btn.interactable = false;
        }
        else
        {
            StarUp_btn.interactable = true;
            EventListener.Get(StarUp_btn.gameObject).OnClick = go =>
            {
                if (StarUp_btn.interactable)
                {
                    UIFace.GetSingleton().Open(UIID.HeroStarUp, heroData.HeroId);
                }
            };
        }
    }
Beispiel #3
0
    private void openMonsterTip(int monsterId, Vector2 pos, int align, Vector2 offset, bool isBoss)
    {
        Monster monsterJson = JsonMgr.GetSingleton().GetMonsterByID(monsterId);

        if (monsterJson == null)
        {
            EDebug.LogErrorFormat("openMonsterTip invalid monster id {0}", monsterId);
            return;
        }
        this.monsterhead_img.sprite  = ResourceMgr.Instance.LoadSprite(monsterJson.headid);
        this.monsterlevel_img.sprite = ResourceMgr.Instance.LoadSprite(ColorMgr.Border[monsterJson.rare - 1]);
        HeroRare rareData = JsonMgr.GetSingleton().GetHeroRareByID(monsterJson.rare);

        this.monsterlevel_img.sprite = ResourceMgr.Instance.LoadSprite(rareData.HeadBorder);
        string monsterName = string.Format("{0}({1})", monsterJson.name, rareData.Name);

        this.monstername_txt.text  = monsterName.AddColorLabel(rareData.Color);
        this.monsterlevel_txt.text = string.Format(JsonMgr.GetSingleton().GetGlobalStringArrayByID(2004).desc, monsterJson.level);
        this.monsterisboss_obj.SetActive(isBoss);
        this.monsterintroduce_txt.text         = monsterJson.desc;
        this.monstertips_rect.anchoredPosition = calAlignment(pos, this.monstertips_rect.sizeDelta, align, offset);
        this.monstertips_rect.gameObject.SetActive(true);
    }
Beispiel #4
0
    public void Open(int heroId)
    {
        HeroData heroData = HeroMgr.GetSingleton().GetHeroData(heroId);

        int[] matnum = JsonMgr.GetSingleton().GetHeroStarByID(heroData.HeroId).matnum;
        //取下一星级需要数量 刚好为当前星级下标
        int needPiece = matnum[heroData.Star];

        Piece_txt.text = heroData.Piece + "/" + needPiece;

        HeroRare officerUp = JsonMgr.GetSingleton().GetHeroRareByID(heroData.Rare);

        Border_img.sprite = ResourceMgr.Instance.LoadSprite(officerUp.HeadBorder);
        Head_img.sprite   = ResourceMgr.Instance.LoadSprite(heroData.JsonData.headid);
        Lv_txt.text       = heroData.Level.ToString();
        //碎片ID为武将ID
        piece_img.sprite  = ResourceMgr.Instance.LoadSprite(heroData.HeroId);
        Fighting_txt.text = "12334325";
        Cost_txt.text     = JsonMgr.GetSingleton().GetGlobalIntArrayByID(heroData.Star + StarBegin).value.ToString("N0");

        int showStar = HeroMgr.MaxHeroStar - heroData.Star;

        starImage = HideStar_obj.transform.GetComponentsInChildren <Image>();
        for (int i = 0; i < heroData.Star; ++i)
        {
            starImage[i].transform.SetParent(StarParent_obj.transform);
        }

        CanvasRenderer[] leftStar = leftstar_obj.GetComponentsInChildren <CanvasRenderer>();
        for (int i = 0; i < leftStar.Length; ++i)
        {
            leftStar[i].SetAlpha((i < showStar) ? 0 : 1);
        }
        CanvasRenderer[] rightStar = rightstar_obj.GetComponentsInChildren <CanvasRenderer>();
        for (int i = 0; i < rightStar.Length; ++i)
        {
            rightStar[i].SetAlpha((i < (showStar - 1)) ? 0 : 1);
        }

        EventListener.Get(Canel_btn.gameObject).OnClick = e =>
        {
            UIFace.GetSingleton().Close(UIID.HeroStarUp);
        };
        EventListener.Get(StarUp_btn.gameObject).OnClick = e =>
        {
            if (heroData.Piece < needPiece)
            {
                CanvasView.Instance.AddNotice("碎片不足");
                return;
            }
            Close();
            //服务器处理升星逻辑 客户端暂代
            int expend = Mathf.RoundToInt(JsonMgr.GetSingleton().GetGlobalIntArrayByID(heroData.Star + StarBegin).value);
            Role.Instance.Cash -= expend;
            heroData.Piece     -= needPiece;
            heroData.Star++;
            ZEventSystem.Dispatch(EventConst.REFRESHSIDE, false);
            if (heroData.Star == HeroMgr.MaxHeroStar)
            {
                UIFace.GetSingleton().Close(UIID.HeroStarUp);
                return;
            }
            Open(heroId);
        };
        EventListener.Get(piece_img.gameObject).OnClick = e =>
        {
            UIFace.GetSingleton().Open(UIID.HeroGoto, heroId);
        };
    }
Beispiel #5
0
    public int[] GetUnLockOfficer(int rare)
    {
        HeroRare o = JsonMgr.GetSingleton().GetHeroRareByID(rare);

        return(o.UnLock);
    }
    private void ShowOfficer()
    {
        showGo = Officer_trf;
        showGo.SetParent(Right_trf);

        LOfficer_obj.SetActive(true);
        Left_obj.SetActive(false);
        HeroRare ou = JsonMgr.GetSingleton().GetHeroRareByID(heroData.Rare);
        HeroRare up = JsonMgr.GetSingleton().GetHeroRareByID(Mathf.Min(heroData.Rare + 1));

        if (ou == null)
        {
            return;
        }
        if (up == null)
        {
            return;
        }
        currentleft_img.sprite = currentright_img.sprite = ResourceMgr.Instance.LoadSprite(ou.Officer);
        upleft_img.sprite      = upright_img.sprite = ResourceMgr.Instance.LoadSprite(up.Officer);
        current_txt.text       = ou.Name.AddColorLabel(ou.Color);
        up_txt.text            = up.Name.AddColorLabel(up.Color);
        HeroHeadView hhvL = LeftHead_trf.GetComponent <HeroHeadView>();
        HeroHeadView hhvR = RightHea_trf.GetComponent <HeroHeadView>();

        hhvL.Init();
        hhvR.Init();
        hhvL.SetHeroInfo(heroData.JsonData.headid, heroData.Rare, heroData.Star, heroData.Level, true);
        hhvR.SetHeroInfo(heroData.JsonData.headid, heroData.Rare + 1, heroData.Star, heroData.Level, true);
        needhonor_txt.color = Role.Instance.Honor < up.NeedNum ? Color.red : Color.white;
        needhonor_txt.text  = up.NeedNum.ToString("N0");
        EventListener.Get(up_btn.gameObject).OnClick = e =>
        {
            if (heroData.Rare >= JsonMgr.GetSingleton().GetGlobalIntArrayByID(1023).value)
            {
                CanvasView.Instance.AddNotice("高处不胜寒呐~~");
                return;
            }
            if (Role.Instance.Honor < up.NeedNum)
            {
                CanvasView.Instance.AddNotice("荣誉不足!!");
                return;
            }
            HeroMgr.GetSingleton().UnfixOfficer(heroData);
            heroData.Rare++;
            ShowOfficer();
            ShowSide(false);
        };
        Dictionary <Attr, float> ret = heroData.RareAttr(false);
        StringBuilder            sb  = new StringBuilder();

        foreach (var item in ret)
        {
            if (item.Value != 0)
            {
                sb.Append(AttrUtil.GetAttribute(item.Key));
                sb.Append(" ");
                sb.Append(AttrUtil.ShowText(item.Key, item.Value));
                sb.Append("\n");
            }
        }
        leftpro_txt.text = sb.ToString();
        Dictionary <Attr, float> next = heroData.RareAttr(true);

        sb.Length = 0;
        foreach (var item in next)
        {
            if (item.Value != 0)
            {
                sb.Append(AttrUtil.GetAttribute(item.Key));
                sb.Append(" ");
                sb.Append(AttrUtil.ShowText(item.Key, item.Value));
                sb.Append(" ");
                float befor = 0;
                if (ret.ContainsKey(item.Key))
                {
                    befor = ret[item.Key];
                }
                sb.Append(string.Format(@"<color=#00FF00> (+{0})</color>", AttrUtil.ShowText(item.Key, item.Value - befor)));
                sb.Append("\n");
            }
        }
        rightpro_txt.text = sb.ToString();

        int[]          officers   = HeroMgr.GetSingleton().GetUnLockOfficer(heroData.Rare);
        int            childCount = OfficerList_obj.transform.childCount;
        List <Officer> os         = SortPost(officers);

        for (int i = 0; i < os.Count; ++i)
        {
            Officer o = os[i];
            if (o == null)
            {
                continue;
            }
            GameObject itemgo;
            if (i < childCount)
            {
                itemgo = OfficerList_obj.transform.GetChild(i).gameObject;
            }
            else
            {
                itemgo = Instantiate(officerGo, OfficerList_obj.transform, false);
            }
            OfficerItem oi = itemgo.GetComponent <OfficerItem>();

            oi.SetView(heroData, o);
            EventListener.Get(oi.take_btn.gameObject).OnClick = e =>
            {
                int takeID = HeroMgr.GetSingleton().IsTake(o.ID);
                if (takeID == heroData.HeroId)
                {
                    return;
                }
                if (takeID != 0)
                {
                    string  name = HeroMgr.GetSingleton().GetHeroData(takeID).JsonData.name;
                    TipCtrl ctrl = (TipCtrl)UIFace.GetSingleton().Open(UIID.Tip, 1, name);
                    ctrl.SetHandler(delegate() { UIFace.GetSingleton().Close(UIID.Tip); },
                                    delegate()
                    {
                        UIFace.GetSingleton().Close(UIID.Tip);
                        HeroMgr.GetSingleton().TakeOfficer(heroData, o.ID);
                        ShowOfficer();
                    });
                }
                else
                {
                    HeroMgr.GetSingleton().TakeOfficer(heroData, o.ID);
                    ShowOfficer();
                }
            };
            EventListener.Get(itemgo).OnClick = e =>
            {
                oi.OnClickItem();
                float minu   = (oi.highlightY - oi.normalY);
                float height = oi.down ? minu : -minu;
                officerrt.sizeDelta = new Vector2(officerrt.sizeDelta.x, officerrt.sizeDelta.y + height);
            };
            if (oi.down)
            {
                oi.OnClickItem();
            }
            EventListener.Get(itemgo).BegineDragEvent = e =>
            {
                OfficerSV_sr.OnBeginDrag(e);
            };
            EventListener.Get(itemgo).DragEvent = e =>
            {
                OfficerSV_sr.OnDrag(e);
            };
            EventListener.Get(itemgo).EndDragEvent = e =>
            {
                OfficerSV_sr.OnEndDrag(e);
            };
        }
        float maxHeight = (officers.Length + 0.5f) * (10.6f + 101);

        officerrt.sizeDelta = new Vector2(officerrt.sizeDelta.x, maxHeight);
    }