Exemple #1
0
        public void UpdateHeroDetailInfo(IntPtr ptrParam, int nPtrLen)
        {
            IntPtrVaArgParseHelper helper = new IntPtrVaArgParseHelper(ptrParam, nPtrLen);

            int dwPDBID = helper.get <int>();
            cmd_entity_hero_detail_info heroDetailInfo = helper.get <cmd_entity_hero_detail_info>();

            PDBIDandHeroID      multiKey = new PDBIDandHeroID(dwPDBID, heroDetailInfo.nHeroID);
            ActorHeroDetailInfo info     = null;

            if (actorHeroDetail.TryGetValue(multiKey, out info) == false)
            {
                return;
            }
            info.heroDetailInfo = heroDetailInfo;

            cmd_count cmdCount = helper.get <cmd_count>();

            info.cmdCount = cmdCount;
            for (int i = 0; i < cmdCount.nCount; i++)
            {
                cmd_match_room_hero_skill_desc skillDesc = helper.get <cmd_match_room_hero_skill_desc>();
                info.heroSkillDesc.Add(skillDesc);
            }

            cmd_Return_Hero_Detail_Info returnHeroInfo;

            returnHeroInfo.nPDBID  = dwPDBID;
            returnHeroInfo.nHeroID = heroDetailInfo.nHeroID;
            UIMsgCmdData uiReturnHeroInfo = null;

            if (eHeroDetailReqType == HeroDetailReqType.HDRT_INIT)
            {
                uiReturnHeroInfo = UIMsgCmdDataHelper.Instance.create <cmd_Return_Hero_Detail_Info>(WndMsgID.WND_MSG_HERODETAIL_HERODETAILINFO, ref returnHeroInfo);
                UISystem.Instance.SendWndMessage(WndMsgID.WND_MSG_HERODETAIL_HERODETAILINFO, uiReturnHeroInfo);
            }
            else if (eHeroDetailReqType == HeroDetailReqType.HDRT_REFRESH)
            {
                uiReturnHeroInfo = UIMsgCmdDataHelper.Instance.create <cmd_Return_Hero_Detail_Info>(WndMsgID.WND_MSG_HERODETAIL_HERODETAILINFOREFRESH, ref returnHeroInfo);
                UISystem.Instance.SendWndMessage(WndMsgID.WND_MSG_HERODETAIL_HERODETAILINFOREFRESH, uiReturnHeroInfo);
            }
            else if (eHeroDetailReqType == HeroDetailReqType.HDRT_LIFEHERO)
            {
                uiReturnHeroInfo = UIMsgCmdDataHelper.Instance.create <cmd_Return_Hero_Detail_Info>(WndMsgID.WND_MSG_OPEN_LIFEHERO_CULTURE_HERO_HINT, ref returnHeroInfo);
                UISystem.Instance.SendWndMessage(WndMsgID.WND_MSG_OPEN_LIFEHERO_CULTURE_HERO_HINT, uiReturnHeroInfo);
            }
        }
Exemple #2
0
        private void SetHeroToolTip(int heroID, int cultureID)
        {
            if (cultureArray == null || cultureArray.Length <= cultureID)
            {
                return;
            }

            UTooltipTrigger tipsTrigger = cultureArray[cultureID].heroTip;

            tipsTrigger.gameObject.GetComponent <Image>().enabled = true;
            StringBuilder          desc         = new StringBuilder();
            SSchemePersonModelData sPersonModel = null;

            if (PersonModelConfig.Instance.GetData_Out(heroID, out sPersonModel))
            {
                desc.Append(String.Format("[size=20]{0}[/size]\n", sPersonModel.szHeroName));
                desc.Append(String.Format("[size=16][color=#a5dbef]{0}[/color][/size]\n", sPersonModel.szHeroTitle));
            }

            ActorHeroDetailInfo heroInfo = LogicDataCenter.playerSystemDataManager.GetActorHeroDetail(heroID, eType: HeroDetailReqType.HDRT_LIFEHERO);

            if (heroInfo != null && heroInfo.heroDetailInfo.nHeroID > 0)
            {
                cmd_entity_hero_detail_info info = heroInfo.heroDetailInfo;
                desc.Append(String.Format("[size=16][color=#a5dbef]场次:{0}[/color][/size]\n", info.nGameCount));
                desc.Append(String.Format("[size=16][color=#a5dbef]胜率:{0}%[/color][/size]\n", info.usWinPro));
                desc.Append(String.Format("[size=16][color=#a5dbef]英雄评级:{0}[/color][/size]", info.nStar));

                cultureArray[cultureID].geneBtn.gameObject.SetActive(true);
                Text starLvDes = cultureArray[cultureID].starLevelDes;
                starLvDes.gameObject.SetActive(true);
                starLvDes.text = String.Format("{0}({1})", heroInfo.heroDetailInfo.chStarDesc, heroInfo.heroDetailInfo.nStar);
                starLvDes.GetComponent <UGradient>().enabled = false;
                starLvDes.GetComponent <Outline>().enabled   = true;
                if (heroInfo.heroDetailInfo.nStar > 0 && heroInfo.heroDetailInfo.nStar < 5)
                {
                    starLvDes.color = Color.white;
                }
                else if (heroInfo.heroDetailInfo.nStar < 10)
                {
                    starLvDes.color = new Color32(0x10, 0x9b, 0xfe, 0xff);
                }
                else if (heroInfo.heroDetailInfo.nStar < 20)
                {
                    starLvDes.color = new Color32(0xcc, 0x09, 0xce, 0xff);
                }
                else if (heroInfo.heroDetailInfo.nStar < 25)
                {
                    starLvDes.color = new Color32(0xd1, 0x8d, 0x5f, 0xff);
                }
                else if (heroInfo.heroDetailInfo.nStar < 30)
                {
                    starLvDes.color = new Color32(0xff, 0xf6, 0x4a, 0xff);
                }
                else
                {
                    starLvDes.color = new Color32(0xbc, 0x30, 0x00, 0xff);
                }
            }

            tipsTrigger.SetText(UTooltipParamName.BodyText, desc.ToString());
        }