Пример #1
0
        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;
                    }
                }
            }
        }
Пример #2
0
        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];
                                }
                            }
                        }
                    }
                }
            }
        }