public void OnSkillTipsShow() { if (this.m_FormScript != null) { GameObject gameObject = this.m_FormScript.transform.Find("SkillTipsBg").gameObject; if (!gameObject.activeSelf) { gameObject.CustomSetActive(true); } SkillSlotType[] typeArray1 = new SkillSlotType[4]; typeArray1[1] = SkillSlotType.SLOT_SKILL_1; typeArray1[2] = SkillSlotType.SLOT_SKILL_2; typeArray1[3] = SkillSlotType.SLOT_SKILL_3; SkillSlotType[] typeArray = typeArray1; GameObject[] objArray = new GameObject[typeArray.Length]; objArray[0] = gameObject.transform.Find("Panel0").gameObject; objArray[1] = gameObject.transform.Find("Panel1").gameObject; objArray[2] = gameObject.transform.Find("Panel2").gameObject; objArray[3] = gameObject.transform.Find("Panel3").gameObject; Skill skillObj = null; if (Singleton <GamePlayerCenter> .instance.GetHostPlayer() != null) { PoolObjHandle <ActorRoot> captain = Singleton <GamePlayerCenter> .instance.GetHostPlayer().Captain; if (captain != 0) { IHeroData data = CHeroDataFactory.CreateHeroData((uint)captain.handle.TheActorMeta.ConfigId); SkillSlot[] skillSlotArray = captain.handle.SkillControl.SkillSlotArray; for (int i = 0; i < typeArray.Length; i++) { SkillSlot slot = skillSlotArray[(int)typeArray[i]]; objArray[i].CustomSetActive(true); if (slot != null) { skillObj = slot.SkillObj; } else if ((i < (typeArray.Length - 1)) && (i > 0)) { skillObj = new Skill((captain.handle.TheActorMeta.ConfigId * 100) + (i * 10)); } else { skillObj = null; } if (skillObj != null) { Image component = objArray[i].transform.Find("SkillMask/SkillImg").GetComponent <Image>(); if ((component != null) && !string.IsNullOrEmpty(skillObj.IconName)) { component.SetSprite(CUIUtility.s_Sprite_Dynamic_Skill_Dir + skillObj.IconName, Singleton <CUIManager> .GetInstance().GetForm(s_battleHeroInfoForm), true, false, false); } Text text = objArray[i].transform.Find("Text_Tittle").GetComponent <Text>(); if ((text != null) && (skillObj.cfgData.szSkillName.Length > 0)) { text.text = StringHelper.UTF8BytesToString(ref skillObj.cfgData.szSkillName); } Text text2 = objArray[i].transform.Find("Text_CD").GetComponent <Text>(); int skillCDMax = 0; if (slot != null) { skillCDMax = slot.GetSkillCDMax(); } text2.text = (i != 0) ? Singleton <CTextManager> .instance.GetText("Skill_Cool_Down_Tips", new string[1]) : Singleton <CTextManager> .instance.GetText("Skill_Common_Effect_Type_5"); if ((i < typeArray.Length) && (i > 0)) { Text text3 = objArray[i].transform.Find("Text_EnergyCost").GetComponent <Text>(); if (slot == null) { string[] args = new string[] { skillObj.cfgData.iEnergyCost.ToString() }; text3.text = Singleton <CTextManager> .instance.GetText(CUICommonSystem.GetEnergyMaxOrCostText(skillObj.cfgData.dwEnergyCostType, EnergyShowType.CostValue), args); } else { string[] textArray3 = new string[] { slot.NextSkillEnergyCostTotal().ToString() }; text3.text = Singleton <CTextManager> .instance.GetText(CUICommonSystem.GetEnergyMaxOrCostText(skillObj.cfgData.dwEnergyCostType, EnergyShowType.CostValue), textArray3); } } uint[] skillEffectType = skillObj.cfgData.SkillEffectType; GameObject obj3 = null; for (int j = 1; j <= 2; j++) { obj3 = objArray[i].transform.Find(string.Format("EffectNode{0}", j)).gameObject; if ((j <= skillEffectType.Length) && (skillEffectType[j - 1] != 0)) { obj3.CustomSetActive(true); obj3.GetComponent <Image>().SetSprite(CSkillData.GetEffectSlotBg((SkillEffectType)skillEffectType[j - 1]), this.m_FormScript, true, false, false); obj3.transform.Find("Text").GetComponent <Text>().text = CSkillData.GetEffectDesc((SkillEffectType)skillEffectType[j - 1]); } else { obj3.CustomSetActive(false); } } Text text4 = objArray[i].transform.Find("Text_Detail").GetComponent <Text>(); ValueDataInfo[] actorValue = captain.handle.ValueComponent.mActorValue.GetActorValue(); if ((text4 != null) && (skillObj.cfgData.szSkillDesc.Length > 0)) { text4.text = CUICommonSystem.GetSkillDesc(skillObj.cfgData.szSkillDesc, actorValue, slot.GetSkillLevel(), captain.handle.ValueComponent.actorSoulLevel); } } else if (i == (typeArray.Length - 1)) { Text text5 = objArray[i].transform.Find("Text_Detail").GetComponent <Text>(); if (Singleton <BattleLogic> .GetInstance().GetCurLvelContext().IsMobaMode()) { text5.text = Singleton <CTextManager> .GetInstance().GetText("Skill_Text_Lock_PVP"); } else { text5.text = Singleton <CTextManager> .GetInstance().GetText("Skill_Text_Lock_PVE"); } } } } } } }
private void RefreshHeroPropPanel(GameObject root, ref PoolObjHandle <ActorRoot> actor) { if ((actor.handle != null) && (actor.handle.ValueComponent != null)) { ValueDataInfo[] actorValue = actor.handle.ValueComponent.mActorValue.GetActorValue(); int soulLevel = actor.handle.ValueComponent.mActorValue.SoulLevel; uint configId = (uint)actor.handle.TheActorMeta.ConfigId; int actorMoveSpeed = actor.handle.ValueComponent.actorMoveSpeed; uint energyType = (uint)actor.handle.ValueComponent.mActorValue.EnergyType; Transform transform = root.transform; int totalValue = 0; int percent = 0; Text[] textArray = new Text[PropertyMaxAmount + 1]; Text[] textArray2 = new Text[PropertyMaxAmount + 1]; for (int i = 1; i <= PropertyMaxAmount; i++) { textArray[i] = transform.Find(string.Format("TextL{0}", i)).GetComponent <Text>(); textArray2[i] = transform.Find(string.Format("TextR{0}", i)).GetComponent <Text>(); } ResBattleParam anyData = GameDataMgr.battleParam.GetAnyData(); textArray[1].text = Singleton <CTextManager> .GetInstance().GetText("Hero_Prop_PhyAtkPt"); textArray2[1].text = GetFormStr((float)actorValue[1].basePropertyValue, (float)actorValue[1].extraPropertyValue); textArray[2].text = Singleton <CTextManager> .GetInstance().GetText("Hero_Prop_MgcAtkPt"); textArray2[2].text = GetFormStr((float)actorValue[2].basePropertyValue, (float)actorValue[2].extraPropertyValue); textArray[3].text = Singleton <CTextManager> .GetInstance().GetText("Hero_Prop_MaxHp"); textArray2[3].text = GetFormStr((float)actorValue[5].basePropertyValue, (float)actorValue[5].extraPropertyValue); textArray[4].text = Singleton <CTextManager> .GetInstance().GetText(CUICommonSystem.GetEnergyMaxOrCostText(energyType, EnergyShowType.MaxValue)); textArray2[4].text = GetFormStr((float)actorValue[0x20].basePropertyValue, (float)actorValue[0x20].extraPropertyValue); totalValue = actorValue[3].totalValue; percent = (int)((totalValue * 0x2710) / ((totalValue + (soulLevel * anyData.dwM_PhysicsDefend)) + anyData.dwN_PhysicsDefend)); textArray[5].text = Singleton <CTextManager> .GetInstance().GetText("Hero_Prop_PhyDefPt"); textArray2[5].text = string.Format("{0}|{1}", GetFormStr((float)actorValue[3].basePropertyValue, (float)actorValue[3].extraPropertyValue), GetFormPercentStr(percent, actorValue[3].extraPropertyValue > 0)); totalValue = actorValue[4].totalValue; percent = (int)((totalValue * 0x2710) / ((totalValue + (soulLevel * anyData.dwM_MagicDefend)) + anyData.dwN_MagicDefend)); textArray[6].text = Singleton <CTextManager> .GetInstance().GetText("Hero_Prop_MgcDefPt"); textArray2[6].text = string.Format("{0}|{1}", GetFormStr((float)actorValue[4].basePropertyValue, (float)actorValue[4].extraPropertyValue), GetFormPercentStr(percent, actorValue[4].extraPropertyValue > 0)); totalValue = actorValue[0x1c].totalValue; percent = ((int)((0x2710 * totalValue) / ((totalValue + (soulLevel * anyData.dwM_AttackSpeed)) + anyData.dwN_AttackSpeed))) + actorValue[0x12].totalValue; textArray[7].text = Singleton <CTextManager> .GetInstance().GetText("Hero_Prop_AtkSpdLvl"); textArray2[7].text = GetFormPercentStr(percent, actorValue[0x12].extraPropertyValue > 0); percent = actorValue[20].totalValue; textArray[8].text = Singleton <CTextManager> .GetInstance().GetText("Hero_Prop_CdReduce"); textArray2[8].text = GetFormPercentStr(percent, actorValue[20].extraPropertyValue > 0); totalValue = actorValue[0x18].totalValue; percent = ((int)((0x2710 * totalValue) / ((totalValue + (soulLevel * anyData.dwM_Critical)) + anyData.dwN_Critical))) + actorValue[6].totalValue; textArray[9].text = Singleton <CTextManager> .GetInstance().GetText("Hero_Prop_CritLvl"); textArray2[9].text = GetFormPercentStr(percent, actorValue[6].extraPropertyValue > 0); textArray[10].text = Singleton <CTextManager> .GetInstance().GetText("Hero_Prop_MoveSpd"); textArray2[10].text = GetFormStr((float)(actorValue[15].basePropertyValue / 10), (float)((actorMoveSpeed - actorValue[15].basePropertyValue) / 10)); textArray[11].text = Singleton <CTextManager> .GetInstance().GetText("Hero_Prop_HpRecover"); totalValue = actorValue[0x10].totalValue; string str = string.Format(Singleton <CTextManager> .GetInstance().GetText("Hero_Prop_HpRecover_Desc"), totalValue); textArray2[11].text = GetFormStr((float)actorValue[0x10].basePropertyValue, (float)actorValue[0x10].extraPropertyValue); textArray[12].text = Singleton <CTextManager> .GetInstance().GetText(CUICommonSystem.GetEnergyMaxOrCostText(energyType, EnergyShowType.RecoverValue)); totalValue = actorValue[0x21].totalValue; string str2 = string.Format(Singleton <CTextManager> .GetInstance().GetText("Hero_Prop_EpRecover_Desc"), totalValue); textArray2[12].text = GetFormStr((float)actorValue[0x21].basePropertyValue, (float)actorValue[0x21].extraPropertyValue); textArray[13].text = Singleton <CTextManager> .GetInstance().GetText("Hero_Prop_PhyArmorHurt"); textArray2[13].text = string.Format("{0}|{1}", GetFormStr((float)actorValue[7].baseValue, (float)actorValue[7].extraPropertyValue), GetFormPercentStr(actorValue[0x22].totalValue, actorValue[0x22].extraPropertyValue > 0)); textArray[14].text = Singleton <CTextManager> .GetInstance().GetText("Hero_Prop_MgcArmorHurt"); textArray2[14].text = string.Format("{0}|{1}", GetFormStr((float)actorValue[8].baseValue, (float)actorValue[8].extraPropertyValue), GetFormPercentStr(actorValue[0x23].totalValue, actorValue[0x23].extraPropertyValue > 0)); totalValue = actorValue[0x1a].totalValue; percent = ((int)((0x2710 * totalValue) / ((totalValue + (soulLevel * anyData.dwM_PhysicsHemophagia)) + anyData.dwN_PhysicsHemophagia))) + actorValue[9].totalValue; textArray[15].text = Singleton <CTextManager> .GetInstance().GetText("Hero_Prop_PhyVampLvl"); textArray2[15].text = GetFormPercentStr(percent, actorValue[9].extraPropertyValue > 0); totalValue = actorValue[0x1b].totalValue; percent = ((int)((0x2710 * totalValue) / ((totalValue + (soulLevel * anyData.dwM_MagicHemophagia)) + anyData.dwN_MagicHemophagia))) + actorValue[10].totalValue; textArray[0x10].text = Singleton <CTextManager> .GetInstance().GetText("Hero_Prop_MgcVampLvl"); textArray2[0x10].text = GetFormPercentStr(percent, actorValue[10].extraPropertyValue > 0); ResHeroCfgInfo dataByKey = GameDataMgr.heroDatabin.GetDataByKey(configId); if (dataByKey != null) { textArray[0x11].text = Singleton <CTextManager> .GetInstance().GetText("Hero_Prop_BaseAtkRange"); textArray2[0x11].text = Utility.UTF8Convert(dataByKey.szAttackRangeDesc); } else { textArray[0x11].text = string.Empty; textArray2[0x11].text = string.Empty; } totalValue = actorValue[0x1d].totalValue; percent = ((int)((0x2710 * totalValue) / ((totalValue + (soulLevel * anyData.dwM_Tenacity)) + anyData.dwN_Tenacity))) + actorValue[0x11].totalValue; textArray[0x12].text = Singleton <CTextManager> .GetInstance().GetText("Hero_Prop_CtrlReduceLvl"); textArray2[0x12].text = GetFormPercentStr(percent, actorValue[0x11].extraPropertyValue > 0); } }