From 6eb915c129fc90c6f4c82ae097dd6ffad5239efc Mon Sep 17 00:00:00 2001 From: chai Date: Mon, 25 Jan 2021 14:28:30 +0800 Subject: +scripts --- .../XMainClient/UI/SpectateLevelRewardView.cs | 300 +++++++++++++++++++++ 1 file changed, 300 insertions(+) create mode 100644 Client/Assets/Scripts/XMainClient/UI/SpectateLevelRewardView.cs (limited to 'Client/Assets/Scripts/XMainClient/UI/SpectateLevelRewardView.cs') diff --git a/Client/Assets/Scripts/XMainClient/UI/SpectateLevelRewardView.cs b/Client/Assets/Scripts/XMainClient/UI/SpectateLevelRewardView.cs new file mode 100644 index 00000000..323b21e9 --- /dev/null +++ b/Client/Assets/Scripts/XMainClient/UI/SpectateLevelRewardView.cs @@ -0,0 +1,300 @@ +using System; +using UILib; +using UnityEngine; +using XMainClient.UI.UICommon; +using XUtliPoolLib; + +namespace XMainClient.UI +{ + internal class SpectateLevelRewardView : DlgBase + { + public override bool autoload + { + get + { + return true; + } + } + + public override string fileName + { + get + { + return "Battle/SpectateLevelReward"; + } + } + + private XSpectateLevelRewardDocument _doc; + + public int MemberAndSplitHeight; + + protected override void Init() + { + this._doc = XDocuments.GetSpecificDocument(XSpectateLevelRewardDocument.uuID); + base.uiBehaviour.m_GoOnBtnText.SetText(XStringDefineProxy.GetString("Spectate_Goon")); + } + + public override void RegisterEvent() + { + base.uiBehaviour.m_BackToMainCityBtn.RegisterSpriteClickEventHandler(new SpriteClickEventHandler(this.BackToMainCityBtnClick)); + base.uiBehaviour.m_GoOnBtn.RegisterSpriteClickEventHandler(new SpriteClickEventHandler(this.OnGoOnBtnClick)); + } + + public void BackToMainCityBtnClick(IXUISprite btn) + { + this._doc.LevelScene(); + } + + public void OnGoOnBtnClick(IXUISprite iSp) + { + this.SetVisible(false, true); + DlgBase.singleton.SetVisible(true, true); + } + + private void OnAddFriendClick(IXUISprite sp) + { + DlgBase.singleton.AddFriendById(sp.ID); + } + + protected override void OnShow() + { + bool flag = DlgBase.singleton.IsVisible(); + if (flag) + { + DlgBase.singleton.SetVisible(false, true); + } + } + + public void ShowData() + { + bool flag = DlgBase.singleton.IsVisible(); + if (!flag) + { + bool flag2 = DlgBase.singleton.IsLoaded() && DlgBase.singleton.m_XOptionBattleHandler != null && DlgBase.singleton.m_XOptionBattleHandler.IsVisible(); + if (flag2) + { + DlgBase.singleton.m_XOptionBattleHandler.OnCloseClicked(null); + } + this.SetVisibleWithAnimation(true, null); + base.uiBehaviour.m_MVP.SetActive(false); + this.MemberAndSplitHeight = base.uiBehaviour.MemberHeight; + base.uiBehaviour.m_WatchNum.SetText(this._doc.WatchNum.ToString()); + base.uiBehaviour.m_CommendNum.SetText(this._doc.CommendNum.ToString()); + this.InitPool(); + this.SetTitle(); + this.SetMember(); + } + } + + public void InitPool() + { + base.uiBehaviour.m_TitlePool.ReturnAll(true); + base.uiBehaviour.m_MemberPool.ReturnAll(true); + base.uiBehaviour.m_DetailPool.ReturnAll(true); + base.uiBehaviour.m_SplitPool.ReturnAll(true); + base.uiBehaviour.m_LabelPool.ReturnAll(true); + base.uiBehaviour.m_StarPool.ReturnAll(true); + base.uiBehaviour.m_WinLosePool.ReturnAll(true); + } + + public void SetTitle() + { + int num = -this._doc.WidthTotal / 2; + bool flag = this._doc.DataType != null; + if (flag) + { + for (int i = 0; i < this._doc.DataType.Length; i++) + { + bool flag2 = this._doc.WidthList[i] == 0; + if (!flag2) + { + GameObject gameObject = base.uiBehaviour.m_TitlePool.FetchGameObject(false); + gameObject.transform.parent = base.uiBehaviour.m_TitleParent; + Vector3 localPosition = gameObject.transform.localPosition; + localPosition.x = (float)(num + this._doc.WidthList[i] / 2); + gameObject.transform.localPosition = localPosition; + IXUILabel ixuilabel = gameObject.GetComponent("XUILabel") as IXUILabel; + ixuilabel.SetText(XSingleton.singleton.GetString(string.Format("SpectateLevelRewardTitle{0}", this._doc.DataType[i]))); + IXUISprite ixuisprite = gameObject.transform.Find("Button").GetComponent("XUISprite") as IXUISprite; + ixuisprite.spriteWidth = this._doc.WidthList[i] - 4; + num += this._doc.WidthList[i]; + } + } + } + } + + public void SetMember() + { + int num = -this._doc.WidthTotal / 2; + int num2 = base.uiBehaviour.MemberStartY; + for (int i = 0; i < this._doc.DataList.Count; i++) + { + GameObject gameObject = base.uiBehaviour.m_MemberPool.FetchGameObject(true); + gameObject.transform.parent = base.uiBehaviour.m_MemberParent; + gameObject.transform.localPosition = new Vector3(0f, (float)num2, 0f); + IXUISprite ixuisprite = gameObject.GetComponent("XUISprite") as IXUISprite; + ixuisprite.spriteWidth = this._doc.WidthTotal; + bool flag = this._doc.DataType != null; + if (flag) + { + for (int j = 0; j < this._doc.DataType.Length; j++) + { + switch (this._doc.DataType[j]) + { + case 3: + this.SetHeadIcon(num, i, this._doc.WidthList[j], gameObject); + break; + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + this.SetJustText(num, i, this._doc.DataType[j], this._doc.WidthList[j], gameObject); + break; + case 11: + this.SetStar(num, i, this._doc.WidthList[j], gameObject); + break; + case 12: + this.SetWinLose(num, i, this._doc.WidthList[j], gameObject); + break; + case 13: + this.SetMvp(num, i, this._doc.WidthList[j], gameObject); + break; + } + num += this._doc.WidthList[j]; + bool flag2 = j != this._doc.DataType.Length - 1; + if (flag2) + { + GameObject gameObject2 = base.uiBehaviour.m_SplitPool.FetchGameObject(false); + gameObject2.transform.parent = gameObject.transform; + gameObject2.transform.localPosition = new Vector3((float)(num - 1), 0f, 0f); + } + } + } + num = -this._doc.WidthTotal / 2; + num2 -= this.MemberAndSplitHeight; + XSingleton.singleton.m_uiTool.MarkParentAsChanged(gameObject); + } + } + + public void SetHeadIcon(int x, int index, int width, GameObject parentGo) + { + GameObject gameObject = base.uiBehaviour.m_DetailPool.FetchGameObject(false); + gameObject.transform.parent = parentGo.transform; + gameObject.transform.localPosition = new Vector3((float)(x + width / 2), 0f, 0f); + XSpectateSceneDocument specificDocument = XDocuments.GetSpecificDocument(XSpectateSceneDocument.uuID); + bool flag = true; + bool flag2 = !specificDocument.IsBlueTeamDict.TryGetValue(this._doc.DataList[index].roleid, out flag); + if (flag2) + { + XSingleton.singleton.AddErrorLog("spectate level reward can't find this player's team, player name = ", this._doc.DataList[index].name, null, null, null, null); + } + string text = string.Format("{0}{1}", flag ? "[00bdff]" : "[ff0000]", this._doc.DataList[index].name); + IXUILabel ixuilabel = gameObject.transform.Find("Name").GetComponent("XUILabel") as IXUILabel; + ixuilabel.SetText(text); + IXUISprite ixuisprite = gameObject.transform.Find("Avatar").GetComponent("XUISprite") as IXUISprite; + ixuisprite.spriteName = XSingleton.singleton.GetProfHeadIcon((int)this._doc.DataList[index].profession); + GameObject gameObject2 = gameObject.transform.Find("Avatar/Leader").gameObject; + gameObject2.SetActive(this._doc.DataList[index].type == 1u); + IXUISprite ixuisprite2 = gameObject.transform.Find("AddFriend/Add").GetComponent("XUISprite") as IXUISprite; + ixuisprite2.ID = this._doc.DataList[index].roleid; + ixuisprite2.RegisterSpriteClickEventHandler(new SpriteClickEventHandler(this.OnAddFriendClick)); + } + + private void SetJustText(int x, int index, int type, int width, GameObject parentGo) + { + GameObject gameObject = base.uiBehaviour.m_LabelPool.FetchGameObject(false); + gameObject.transform.parent = parentGo.transform; + gameObject.transform.localPosition = new Vector3((float)(x + width / 2), 0f, 0f); + IXUILabel ixuilabel = gameObject.GetComponent("XUILabel") as IXUILabel; + switch (type) + { + case 5: + ixuilabel.SetText(this._doc.DataList[index].killcount.ToString()); + break; + case 6: + ixuilabel.SetText(this._doc.DataList[index].damageall.ToString("0.0")); + break; + case 7: + ixuilabel.SetText(string.Format("{0}%", ((this._doc.DamageSum < 1.0) ? 0.0 : (this._doc.DataList[index].damageall * 100.0 / this._doc.DamageSum)).ToString("0.0"))); + break; + case 8: + ixuilabel.SetText(this._doc.DataList[index].treatcount.ToString()); + break; + case 9: + ixuilabel.SetText(this._doc.DataList[index].deadcount.ToString()); + break; + case 10: + ixuilabel.SetText(this._doc.DataList[index].combomax.ToString()); + break; + } + } + + private void SetStar(int x, int index, int width, GameObject parentGo) + { + uint num = 0u; + bool flag = !this._doc.StarDict.TryGetValue(this._doc.DataList[index].roleid, out num); + if (flag) + { + XSingleton.singleton.AddLog("spectate level reward can't find this player' star, player name = ", this._doc.DataList[index].name, " maybe nest fail.", null, null, null, XDebugColor.XDebug_None); + } + int num2 = this.CalStarNum((int)num); + int num3 = x + width / 2 - base.uiBehaviour.m_StarPool.TplWidth; + for (int i = 0; i < 3; i++) + { + GameObject gameObject = base.uiBehaviour.m_StarPool.FetchGameObject(false); + gameObject.transform.parent = parentGo.transform; + gameObject.transform.localPosition = new Vector3((float)(num3 + i * base.uiBehaviour.m_StarPool.TplWidth), 0f, 0f); + GameObject gameObject2 = gameObject.transform.Find("Fg").gameObject; + gameObject2.SetActive(i < num2); + } + } + + private void SetWinLose(int x, int index, int width, GameObject parentGo) + { + GameObject gameObject = base.uiBehaviour.m_WinLosePool.FetchGameObject(false); + gameObject.transform.parent = parentGo.transform; + gameObject.transform.localPosition = new Vector3((float)(x + width / 2), 0f, 0f); + IXUISprite ixuisprite = gameObject.GetComponent("XUISprite") as IXUISprite; + bool flag = this._doc.WinTag == 0; + if (flag) + { + ixuisprite.spriteName = "bhdz_p"; + } + else + { + XSpectateSceneDocument specificDocument = XDocuments.GetSpecificDocument(XSpectateSceneDocument.uuID); + bool flag2 = true; + bool flag3 = !specificDocument.IsBlueTeamDict.TryGetValue(this._doc.DataList[index].roleid, out flag2); + if (flag3) + { + XSingleton.singleton.AddErrorLog("spectate level reward can't find this player's team, player name = ", this._doc.DataList[index].name, null, null, null, null); + } + ixuisprite.spriteName = (((flag2 && this._doc.WinTag == 1) || (!flag2 && this._doc.WinTag == -1)) ? "bhdz_win" : "bhdz_lose"); + } + } + + private void SetMvp(int x, int index, int width, GameObject parentGo) + { + bool flag = this._doc.DataList[index].roleid == this._doc.MvpUid; + if (flag) + { + base.uiBehaviour.m_MVP.SetActive(true); + base.uiBehaviour.m_MVP.transform.parent = parentGo.transform; + base.uiBehaviour.m_MVP.transform.localPosition = new Vector3((float)(x + width / 2), 0f, 0f); + } + } + + private int CalStarNum(int num) + { + int num2 = 0; + while (num != 0) + { + num2++; + num -= (num & -num); + } + return num2; + } + } +} -- cgit v1.1-26-g67d0