bool GetRuneGroupValueStr(RunepassiveTemplate runeT, int idx, out string result) { result = ""; int attri = -1; int isPercent = 1; string Symbol = ""; int value = 0; switch (idx) { case 0: isPercent = runeT.getType1(); Symbol = runeT.getSymbol1(); value = runeT.getValue1(); attri = runeT.getAttribute1(); break; case 1: isPercent = runeT.getType2(); Symbol = runeT.getSymbol2(); value = runeT.getValue2(); attri = runeT.getAttribute2(); break; case 2: isPercent = runeT.getType3(); Symbol = runeT.getSymbol3(); value = runeT.getValue3(); attri = runeT.getAttribute3(); break; } if (isPercent == 1) { result = Symbol + ((float)(value) / 10f).ToString() + "%"; } else { result = Symbol + value; } return(attri != -1); }
/// <summary> /// 刷新所有有关符文装配界面的信息; /// </summary> void UpdateUIForm() { List <int> equipedTypes = new List <int>(); for (int i = 0, j = (int)(EM_RUNE_POINT.EM_RUNE_POINT_NUMBER); i < j; i++) { EM_RUNE_POINT erp = (EM_RUNE_POINT)i; ItemEquip runeInfo = mObjectCard.GetHeroData().GetRuneItemInfo(erp); mRunes[i].SetRuneType(EM_RUNE_TYPE.EM_RUNE_TYPE_INVALID); if (runeInfo == null) { //mRunes[i].SetIcon(common.defaultPath + AddSpriteName); mRunes[i].SetIcon(AddSprite); mRunes[i].SetLevelInfoActive(false); } else { ItemTemplate runeTemp = DataTemplate.GetInstance().GetItemTemplateById(runeInfo.GetItemTableID()); if (runeTemp != null) { mRunes[i].SetIcon(common.defaultPath + runeTemp.getIcon()); //mRunes[i].SetLevel(runeInfo.) mRunes[i].SetStarsNum(runeTemp.getRune_quality()); mRunes[i].SetLevel(runeInfo.GetStrenghLevel()); int runeType = runeTemp.getRune_type(); //if (!equipedTypes.Contains(runeType)) equipedTypes.Add(runeType); bool isSpecial = i == (int)(EM_RUNE_POINT.EM_RUNE_POINT_SPECIAL); if (!isSpecial) { mRunes[i].SetRuneType(runeType); } } mRunes[i].SetLevelInfoActive(true); } } int heroTableID = mObjectCard.GetHeroData().TableID; HeroTemplate heroT = DataTemplate.GetInstance().GetHeroTemplateById(heroTableID); if (heroT == null) { LogManager.LogError("hero表中缺少数据 heroid = " + heroTableID); return; } List <int> runeGroup = DataTemplate.GetInstance().GetHeroRuneGroup(heroT); if (runeGroup == null) { LogManager.LogError("获取英雄符文组合失败 heroid = " + heroTableID); return; } if (runeGroup.Count > 4) { LogManager.LogError("符文组合最多4个符文"); return; } for (int i = 0, j = mRuneGoupItems.Length; i < j; i++) { mRuneGoupItems[i].SetActive(false); } for (int i = 0, j = runeGroup.Count; i < j; i++) { //mRuneGoupItems[i].SetIcon(GetIconByRuneType(runeGroup[i])); mRuneGoupItems[i].SetIcon(GetSpriteByRuneFlagType(runeGroup[i])); mRuneGoupItems[i].SetEffectShow(EM_RUNE_TYPE.EM_RUNE_TYPE_INVALID); mRuneGoupItems[i].SetActive(true); } int activeNum = 0; for (int i = 0; i < runeGroup.Count; i++) { int idx = equipedTypes.IndexOf(runeGroup[i]); if (idx == -1) { mRuneGoupItems[i].SetEffectShow(EM_RUNE_TYPE.EM_RUNE_TYPE_INVALID); continue; } else { mRuneGoupItems[i].SetEffectShow((EM_RUNE_TYPE)runeGroup[i]); equipedTypes.RemoveAt(idx); activeNum++; } } bool isActive = activeNum >= runeGroup.Count; //是否激活符文组合条件; RunepassiveTemplate runPassT = DataTemplate.GetInstance().GetRunepassiveTemplate(heroT.getRunePassive()); if (runPassT != null) { string str1 = ""; bool isShow1 = GetRuneGroupValueStr(runPassT, 0, out str1); mRuneValues[0].text = isActive ? str1 : "<color=#acacac>" + str1 + "</color>"; mRuneValues[0].transform.parent.gameObject.SetActive(isShow1); mRuneDetails[0].text = isShow1 ? GameUtils.getString(runPassT.getDes1()) : ""; mRuneAttrImgs[0].sprite = RuneAttrImgs[isActive ? 1 : 0]; string str2 = ""; bool isShow2 = GetRuneGroupValueStr(runPassT, 1, out str2); mRuneValues[1].text = isActive ? str2 : "<color=#acacac>" + str2 + "</color>"; mRuneValues[1].transform.parent.gameObject.SetActive(isShow2); mRuneDetails[1].text = isShow2 ? GameUtils.getString(runPassT.getDes2()) : ""; mRuneAttrImgs[1].sprite = RuneAttrImgs[isActive ? 1 : 0]; string str3 = ""; bool isShow3 = GetRuneGroupValueStr(runPassT, 2, out str3); mRuneValues[2].text = isActive ? str3 : "<color=#acacac>" + str3 + "</color>"; mRuneValues[2].transform.parent.gameObject.SetActive(isShow3); mRuneDetails[2].text = isShow3 ? GameUtils.getString(runPassT.getDes3()) : ""; mRuneAttrImgs[2].sprite = RuneAttrImgs[isActive ? 1 : 0]; } }