From 6eb915c129fc90c6f4c82ae097dd6ffad5239efc Mon Sep 17 00:00:00 2001 From: chai Date: Mon, 25 Jan 2021 14:28:30 +0800 Subject: +scripts --- .../Assets/Scripts/XMainClient/XCommandNewIcon.cs | 139 +++++++++++++++++++++ 1 file changed, 139 insertions(+) create mode 100644 Client/Assets/Scripts/XMainClient/XCommandNewIcon.cs (limited to 'Client/Assets/Scripts/XMainClient/XCommandNewIcon.cs') diff --git a/Client/Assets/Scripts/XMainClient/XCommandNewIcon.cs b/Client/Assets/Scripts/XMainClient/XCommandNewIcon.cs new file mode 100644 index 00000000..2ecec19f --- /dev/null +++ b/Client/Assets/Scripts/XMainClient/XCommandNewIcon.cs @@ -0,0 +1,139 @@ +using System; +using System.Reflection; +using KKSG; +using UILib; +using UnityEngine; +using XMainClient.UI; +using XMainClient.UI.UICommon; +using XUtliPoolLib; + +namespace XMainClient +{ + internal class XCommandNewIcon : XBaseCommand + { + private GameObject _newicon = null; + + private uint CachedOpenSystem; + + public override bool Execute() + { + base.publicModule(); + return this._execute(this._cmd.param1, this._cmd.param2); + } + + public override void OnFinish() + { + XSingleton.singleton.Exculsive = false; + base.OnFinish(); + } + + public bool _execute(string param1, string param2) + { + this.CachedOpenSystem = uint.Parse(param1); + XPlayerAttributes xplayerAttributes = XSingleton.singleton.Player.Attributes as XPlayerAttributes; + bool flag = xplayerAttributes.IsSystemOpened(this.CachedOpenSystem); + bool result; + if (flag) + { + result = true; + } + else + { + bool flag2 = !XSingleton.singleton.IsSysOpend(this.CachedOpenSystem); + if (flag2) + { + result = false; + } + else + { + bool flag3 = this.CachedOpenSystem > 0u; + if (flag3) + { + string systemIcon = this.GetSystemIcon(this.CachedOpenSystem); + XSingleton.singleton.AddLog("new icon executed", this.CachedOpenSystem.ToString(), ",", systemIcon, null, null, XDebugColor.XDebug_None); + XResourceLoaderMgr.SafeDestroy(ref this._newicon, false); + bool flag4 = this.CachedOpenSystem < 10u; + if (flag4) + { + this._newicon = (XSingleton.singleton.CreateFromPrefab("UI/Common/NewSkill", true, false) as GameObject); + } + else + { + this._newicon = (XSingleton.singleton.CreateFromPrefab("UI/Common/NewIcon", true, false) as GameObject); + } + base.SetOverlay(); + IXUISprite ixuisprite = this._newicon.GetComponent("XUISprite") as IXUISprite; + ixuisprite.spriteName = systemIcon; + XSingleton.singleton.AddChild(XBaseCommand._Overlay.transform, this._newicon.transform); + IXUITweenTool ixuitweenTool = this._newicon.GetComponent("XUIPlayTween") as IXUITweenTool; + ixuitweenTool.RegisterOnFinishEventHandler(new OnTweenFinishEventHandler(this.OnNewIconTweenFinished)); + bool flag5 = param1 != null && param1.Length > 0 && param2 != null && param2.Length > 0; + if (flag5) + { + Type type = Type.GetType("XMainClient.UI." + param1); + MethodInfo method = type.GetMethod("GetChildWorldPos", BindingFlags.Instance | BindingFlags.Static | BindingFlags.Public | BindingFlags.FlattenHierarchy); + Vector3 vector = (Vector3)method.Invoke(null, new object[] + { + param2 + }); + Vector3 to = XSingleton.singleton.UIRoot.InverseTransformPoint(vector); + ixuitweenTool.SetPositionTweenPos(0, Vector3.zero, to); + } + else + { + Vector3 newIconFlyPosH = DlgBase.singleton.GetNewIconFlyPosH1((XSysDefine)this.CachedOpenSystem); + ixuitweenTool.SetPositionTweenPos(0, Vector3.zero, newIconFlyPosH); + } + ixuitweenTool.SetTargetGameObject(this._newicon); + ixuitweenTool.PlayTween(true, -1f); + DlgBase.singleton.ForceOpenSysIcons((XSysDefine)this.CachedOpenSystem); + XSingleton.singleton.Exculsive = true; + result = true; + } + else + { + result = false; + } + } + } + return result; + } + + protected string GetSystemIcon(uint sysID) + { + bool flag = sysID < 10u; + string result; + if (flag) + { + RoleType profession = XSingleton.singleton.Player.PlayerAttributes.Profession; + string str = XSingleton.singleton.RoleTypeToString(profession) + "_B" + sysID; + uint skillHash = XSingleton.singleton.XHash(str); + SkillList.RowData skillConfig = XSingleton.singleton.GetSkillConfig(skillHash, 1u); + result = skillConfig.Icon; + } + else + { + result = XSingleton.singleton.GetSysIcon((int)sysID); + } + return result; + } + + protected void OnNewIconTweenFinished(IXUITweenTool tween) + { + XResourceLoaderMgr.SafeDestroy(ref this._newicon, false); + (XSingleton.singleton.Player.Attributes as XPlayerAttributes).ReallyOpenSystem(this.CachedOpenSystem); + bool flag = DlgBase.singleton.IsVisible(); + if (flag) + { + DlgBase.singleton.OnSysChange((XSysDefine)this.CachedOpenSystem); + } + } + + public override void Stop() + { + XResourceLoaderMgr.SafeDestroy(ref this._newicon, false); + base.Stop(); + XSingleton.singleton.Exculsive = false; + } + } +} -- cgit v1.1-26-g67d0