private void InitHeroDeadInfoForm() { this.m_hostActor = Singleton <GamePlayerCenter> .get_instance().GetHostPlayer().Captain; if (this.m_hostActor) { PlayerKDA playerKDA = Singleton <BattleStatistic> .GetInstance().m_playerKDAStat.GetPlayerKDA(Singleton <GamePlayerCenter> .get_instance().HostPlayerId); if (playerKDA == null) { return; } ListView <CHostHeroDamage> .Enumerator enumerator = playerKDA.m_hostHeroDamage.GetEnumerator(); while (enumerator.MoveNext()) { if (enumerator.get_Current() != null && this.m_hostActor.get_handle().ObjID == enumerator.get_Current().GetHostHeroObjId()) { uint[] arrDiffTypeHurtValue = new uint[4]; uint[] array = new uint[2]; uint uiTotalDamage = 0u; int allActorsTotalDamageAndTopActorId = enumerator.get_Current().GetAllActorsTotalDamageAndTopActorId(ref array, 2, ref uiTotalDamage, ref arrDiffTypeHurtValue); uint uiObjId = 0u; ActorTypeDef actorTypeDef = ActorTypeDef.Invalid; enumerator.get_Current().GetKillerObjId(ref uiObjId, ref actorTypeDef); DOUBLE_INT_INFO[] array2 = new DOUBLE_INT_INFO[12]; int[] array3 = new int[3]; for (int i = 0; i < 1 + allActorsTotalDamageAndTopActorId; i++) { if (i == 0) { enumerator.get_Current().GetActorDamage(uiObjId, ref array2); } else { enumerator.get_Current().GetActorDamage(array[i - 1], ref array2); } for (int j = 0; j <= 11; j++) { array3[i] += array2[j].iValue; } } int num = (array3[0] <= array3[1]) ? array3[1] : array3[0]; num = ((num <= array3[2]) ? array3[2] : num); for (int k = 0; k < 1 + allActorsTotalDamageAndTopActorId; k++) { if (k == 0) { Transform trHeroPanel = this.m_heroDeadInfoForm.transform.FindChild("PanelDeadInfo/KillerGounp/PanelKiller"); this.InitHeroPanelInfo(uiObjId, trHeroPanel, array3[k], uiTotalDamage, array3[k] == num, enumerator.get_Current()); } else if (allActorsTotalDamageAndTopActorId == 2) { Transform trHeroPanel2 = this.m_heroDeadInfoForm.transform.FindChild("PanelDeadInfo/KillerGounp/PanelAssister" + (k - 1)); this.InitHeroPanelInfo(array[k - 1], trHeroPanel2, array3[k], uiTotalDamage, array3[k] == num, enumerator.get_Current()); } else { Transform trHeroPanel3 = this.m_heroDeadInfoForm.transform.FindChild("PanelDeadInfo/KillerGounp/PanelAssister" + k); this.InitHeroPanelInfo(array[k - 1], trHeroPanel3, array3[k], uiTotalDamage, array3[k] == num, enumerator.get_Current()); } } int num2 = 0; ulong hostHeroDeadTime = enumerator.get_Current().GetHostHeroDeadTime(); if (hostHeroDeadTime == (ulong)Singleton <BattleStatistic> .get_instance().m_battleDeadStat.m_uiFBTime) { num2 |= 2; } if (actorTypeDef == ActorTypeDef.Actor_Type_Organ) { num2 |= 4; } this.InitDeadInfoPanelBottomText(hostHeroDeadTime, arrDiffTypeHurtValue, uiTotalDamage, num2); this.ResetFormSize(1 + allActorsTotalDamageAndTopActorId); break; } } } }
private void InitHeroPanelSkillInfo(uint uiObjId, Transform trHeroPanel, uint uiTotalDamge, CHostHeroDamage objHostHeroDamage) { DOUBLE_INT_INFO[] array = new DOUBLE_INT_INFO[12]; objHostHeroDamage.GetActorDamage(uiObjId, ref array); SkillSlot skillSlot = null; for (int i = 0; i < 3; i++) { string name = "PanelSkill/Skill" + i; Transform transform = trHeroPanel.FindChild(name); if (transform) { if (array[i].iValue <= 0) { transform.gameObject.CustomSetActive(false); } else { transform.gameObject.CustomSetActive(true); skillSlot = null; PoolObjHandle <ActorRoot> actor = Singleton <GameObjMgr> .get_instance().GetActor(uiObjId); if (array[i].iKey < 10 && actor && actor.get_handle().SkillControl != null) { if (actor.get_handle().TheActorMeta.ActorType == ActorTypeDef.Actor_Type_Hero && array[i].iKey > 0) { actor.get_handle().SkillControl.TryGetSkillSlot((SkillSlotType)array[i].iKey, out skillSlot); } else if (actor.get_handle().TheActorMeta.ActorType != ActorTypeDef.Actor_Type_Hero) { actor.get_handle().SkillControl.TryGetSkillSlot((SkillSlotType)array[i].iKey, out skillSlot); } } Transform transform2 = transform.FindChild("ImgSkill"); if (transform2) { Image component = transform2.GetComponent <Image>(); if (component) { if (skillSlot != null) { if (actor.get_handle().TheActorMeta.ActorType == ActorTypeDef.Actor_Type_Hero) { component.SetSprite(CUIUtility.s_Sprite_Dynamic_Skill_Dir + skillSlot.SkillObj.IconName, this.m_heroDeadInfoForm, true, false, false, false); } else { component.SetSprite(CUIUtility.s_Sprite_Dynamic_Skill_Dir + "1001", this.m_heroDeadInfoForm, true, false, false, false); } } else if (array[i].iKey == 10) { component.SetSprite(CUIUtility.s_Sprite_Dynamic_Skill_Dir + "1106", this.m_heroDeadInfoForm, true, false, false, false); } else { component.SetSprite(CUIUtility.s_Sprite_Dynamic_Skill_Dir + "1001", this.m_heroDeadInfoForm, true, false, false, false); } } } int skillSlotHurtType = objHostHeroDamage.GetSkillSlotHurtType(uiObjId, (SkillSlotType)array[i].iKey); if (skillSlotHurtType >= 0 && skillSlotHurtType < 4) { Transform transform3 = transform.FindChild("TxtSkillTypeBg"); if (transform3) { Image component2 = transform3.GetComponent <Image>(); if (component2) { component2.SetSprite("UGUI/Sprite/Common/" + CHostHeroDeadInfo.m_Skill_HurtType_Bg_ImgName[skillSlotHurtType], this.m_heroDeadInfoForm, true, false, false, false); } } Transform transform4 = transform.FindChild("TxtSkillType"); if (transform4) { Text component3 = transform4.GetComponent <Text>(); if (component3) { component3.text = this.m_Skill_HurtType_Name[skillSlotHurtType]; component3.color = CUIUtility.s_Text_Skill_HurtType_Color[skillSlotHurtType]; } } Transform transform5 = transform.FindChild("TxtSkillName"); if (transform5) { Text component4 = transform5.GetComponent <Text>(); if (component4) { if (skillSlot != null) { component4.text = skillSlot.SkillObj.cfgData.szSkillName; } else { ActorTypeDef actorTypeDef = ActorTypeDef.Invalid; if (!actor) { int num = 0; string text = null; string text2 = null; ActorTypeDef actorTypeDef2 = ActorTypeDef.Invalid; byte b = 0; byte b2 = 0; if (objHostHeroDamage.GetDamageActorInfo(uiObjId, ref text, ref text2, ref actorTypeDef, ref num, ref b, ref b2)) { actorTypeDef = actorTypeDef2; } } else { actorTypeDef = actor.get_handle().TheActorMeta.ActorType; } if (actorTypeDef == ActorTypeDef.Actor_Type_Hero) { if (array[i].iKey == 0) { component4.text = this.m_strAtkSkill0Name; } else if (array[i].iKey == 10) { component4.text = this.m_strHeroEquipSkillName; } else { component4.text = this.m_strHeroPassiveSkillName; } } else { component4.text = this.m_strAtkSkill0Name; } } component4.color = CUIUtility.s_Text_SkillName_And_HurtValue_Color[skillSlotHurtType]; } } float value = (uiTotalDamge != 0u) ? ((float)array[i].iValue / uiTotalDamge) : 1f; Transform transform6 = transform.FindChild("Damage"); if (transform6) { for (int j = 0; j < 4; j++) { Transform transform7 = transform6.FindChild(CHostHeroDeadInfo.m_Skill_HurtValue_Bg_ImgName[j]); if (transform7) { transform7.gameObject.CustomSetActive(j == skillSlotHurtType); if (j == skillSlotHurtType) { Image component5 = transform7.GetComponent <Image>(); if (component5) { component5.CustomFillAmount(value); } } } } } Transform transform8 = transform.FindChild("TxtDamageValue"); if (transform8) { Text component6 = transform8.GetComponent <Text>(); if (component6) { string text3 = string.Concat(new object[] { array[i].iValue, "(", value.ToString("P0"), ")" }); component6.text = text3; component6.color = CUIUtility.s_Text_SkillName_And_HurtValue_Color[skillSlotHurtType]; } } } } } } }