| Core/GameEngine/Model/Player/Realm/RealmModel.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/Login/CrossServerLogin.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/MainInterfacePanel/ChatFrame.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/Realm/AdaptiveRect.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/Realm/AdaptiveRect.cs.meta | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/Realm/RealmProgressBehaviour.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/Realm/RealmStageBehaviour.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/Realm/RealmUpWin.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
Core/GameEngine/Model/Player/Realm/RealmModel.cs
@@ -37,6 +37,7 @@ PlayerDatas.Instance.PlayerDataRefreshInfoEvent += RefreshInfo; StageManager.Instance.onStageLoadFinish += OnStageLoadFinish; NewBieCenter.Instance.guideCompletedEvent += GuideCompletedEvent; NewBieCenter.Instance.guideBeginEvent += GuideBeginEvent; BossShowModel.Instance.bossShowCompletedEvent += BossShowCompletedEvent; FairyFeastTransmitShow.Instance.onComplete += BossShowCompletedEvent; } @@ -55,6 +56,8 @@ public int realmGuardianDisplayTime { get; private set; } public bool excuteRealmOpenGuide { get; private set; } public bool realmDungeonState { get { return LocalSave.GetBool(StringUtility.Contact(PlayerDatas.Instance.PlayerId, "_RealmDungeon_Show")); } @@ -64,6 +67,15 @@ private void GuideCompletedEvent(int _id) { SnxxzGame.Instance.StartCoroutine(Co_GuideComplete()); } private void GuideBeginEvent() { if (NewBieCenter.Instance.inGuiding && NewBieCenter.Instance.currentGuide == 36) { excuteRealmOpenGuide = true; } } IEnumerator Co_GuideComplete() @@ -85,6 +97,7 @@ if (!(StageManager.Instance.CurrentStage is DungeonStage)) { cacheMapId = 0; excuteRealmOpenGuide = false; return; } if (PlayerDatas.Instance.baseData.MapID == REALM_DUNGEON_ID) System/Login/CrossServerLogin.cs
@@ -76,6 +76,7 @@ WindowCenter.Instance.Open<LoadingWin>(); oneVsOnePlayerData = oneVsOnePlayerData.SetWaitForLoginCrossServer(false); AccountLogin(account, ip, port, false); } @@ -101,22 +102,8 @@ return; } reLoginTimes = 0; busy = true; if (Time.time - lastLoginTime < 15) { reLoginTimes++; if (reLoginTimes > 2) { ProcessLoginFailure(); return; } } else { reLoginTimes = 0; } lastLoginTime = Time.time; try { this.reconnectBackGround = reconnectBackGround; @@ -125,7 +112,7 @@ gamePortBuf = gamePort; StopLoginOverTimeProcess(); loginOverTimeClock = Clock.Create(DateTime.Now + new TimeSpan(10 * TimeSpan.TicksPerSecond), () => loginOverTimeClock = Clock.Create(DateTime.Now + new TimeSpan(30 * TimeSpan.TicksPerSecond), () => { busy = false; ReAccountLogin(); @@ -149,25 +136,18 @@ } busy = true; if (Time.time - lastLoginTime < 15) reLoginTimes++; if (reLoginTimes > 1) { reLoginTimes++; if (reLoginTimes > 2) { ProcessLoginFailure(); return; } } else { reLoginTimes = 0; ProcessLoginFailure(); return; } lastLoginTime = Time.time; try { this.reconnectBackGround = true; StopLoginOverTimeProcess(); loginOverTimeClock = Clock.Create(DateTime.Now + new TimeSpan(10 * TimeSpan.TicksPerSecond), () => loginOverTimeClock = Clock.Create(DateTime.Now + new TimeSpan(30 * TimeSpan.TicksPerSecond), () => { busy = false; ReAccountLogin(); System/MainInterfacePanel/ChatFrame.cs
@@ -184,6 +184,7 @@ { m_RealmLV.SetSprite("NoRealm"); } m_RealmLV.SetNativeSize(); } System/Realm/AdaptiveRect.cs
New file @@ -0,0 +1,55 @@ using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.EventSystems; namespace Snxxz.UI { [ExecuteInEditMode] public class AdaptiveRect : UIBehaviour { [SerializeField] RectTransform m_Target; [SerializeField] Vector2 m_Offset; RectTransform m_Rect; RectTransform rectTransform { get { if (m_Rect == null) { m_Rect = GetComponent<RectTransform>(); } return m_Rect; } } protected override void OnEnable() { UpdateRect(); } [ExecuteInEditMode] private void LateUpdate() { UpdateRect(); } void UpdateRect() { if (m_Target == null) { return; } var width = rectTransform.sizeDelta.x; var height = rectTransform.sizeDelta.y; var targetWidth = m_Target.sizeDelta.x + m_Offset.x; var targetHeight = m_Target.sizeDelta.y + m_Offset.y; if (width != targetWidth || height != targetHeight) { rectTransform.sizeDelta = new Vector2(targetWidth, targetHeight); } } } } System/Realm/AdaptiveRect.cs.meta
New file @@ -0,0 +1,12 @@ fileFormatVersion: 2 guid: 8539f5b53b285c441b85a821a78bb1a4 timeCreated: 1547017060 licenseType: Pro MonoImporter: serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: System/Realm/RealmProgressBehaviour.cs
@@ -13,8 +13,10 @@ [SerializeField] Text m_RealmPoint; [SerializeField] Text m_OpenRemind; [SerializeField] RectTransform m_ContainerPoint; [SerializeField] float[] m_StageLeftRatio; [SerializeField] float[] m_StageRightRatio; [SerializeField] float m_StartRealmPositionx; [SerializeField] float m_EndRealmPositionx; [SerializeField] float m_BigRealmBottomWidth; [SerializeField] float m_Spacing; [SerializeField] RectTransform m_ContainerRemind; [SerializeField] PropertyBehaviour m_SpecialProperty; @@ -22,13 +24,15 @@ RealmModel model { get { return ModelCenter.Instance.GetModel<RealmModel>(); } } float leftRatio = 0; static readonly Vector2 middleLeft = new Vector2(0, 0.5f); static readonly Vector2 middleRight = new Vector2(1, 0.5f); static readonly Vector2 middleCenter = new Vector2(0.5f, 0.5f); float leftRatio = 0f; float rightRatio = 0; public void Display() { leftRatio = 0; rightRatio = 0; DisplayStages(); DisplayProgress(); } @@ -36,32 +40,73 @@ void DisplayStages() { var realmLevel = PlayerDatas.Instance.baseData.realmLevel; int start = 0;int end = 0; int start = 0; int end = 0; model.TryGetRealmStage(realmLevel, out start, out end); var leftIndex = 0; var rightIndex = 0; var index = 0; m_ContainerRemind.gameObject.SetActive(false); for (int i = start; i <= realmLevel; i++) { m_RealmStages[index].transform.localPosition = GetStagePosition(true, leftIndex); var rect = m_RealmStages[index].transform as RectTransform; rect.anchorMax = middleLeft; rect.anchorMin = middleLeft; rect.pivot = middleLeft; if (i == start) { rect.anchoredPosition = new Vector2(m_StartRealmPositionx, 0); leftRatio = (m_StartRealmPositionx + m_RealmStages[0].GetWidth(i) / 2) / m_ContainerPoint.rect.width; } else { var width = 0f; for (int k = start; k < i; k++) { width += m_RealmStages[0].GetWidth(k); width += m_Spacing; } var positionx = m_StartRealmPositionx + width; rect.anchoredPosition = new Vector2(positionx, 0); if (i == realmLevel) { leftRatio = (positionx + m_RealmStages[0].GetWidth(i) / 2) / m_ContainerPoint.rect.width; } } m_RealmStages[index].gameObject.SetActive(true); m_RealmStages[index].Display(i, false, true, leftIndex); leftRatio = m_StageLeftRatio[leftIndex]; leftIndex++; m_RealmStages[index].Display(i, false); index++; } end = end == model.realmMaxLevel ? end : (end + 1); for (int i = end; i > realmLevel; i--) { m_RealmStages[index].transform.localPosition = GetStagePosition(false, rightIndex); var rect = m_RealmStages[index].transform as RectTransform; rect.anchorMax = middleRight; rect.anchorMin = middleRight; if (i == end) { rect.pivot = middleCenter; rect.anchoredPosition = new Vector2(m_EndRealmPositionx, 0); rightRatio = Mathf.Abs(m_EndRealmPositionx) / m_ContainerPoint.rect.width; } else { var width = 0f; for (int k = end - 1; k > i; k--) { width += m_RealmStages[0].GetWidth(k); width += m_Spacing; } rect.pivot = middleRight; var positionx = m_EndRealmPositionx - m_BigRealmBottomWidth / 2 - m_Spacing - width; rect.anchoredPosition = new Vector2(positionx, 0); if (i == realmLevel + 1) { rightRatio = (Mathf.Abs(positionx) + m_RealmStages[0].GetWidth(i) / 2) / m_ContainerPoint.rect.width; } } m_RealmStages[index].gameObject.SetActive(true); m_RealmStages[index].Display(i, i == end, false, rightIndex); m_RealmStages[index].Display(i, i == end); DisplayRemind(i); rightRatio = m_StageRightRatio[rightIndex]; rightIndex++; index++; } for (int i = index; i < m_RealmStages.Length; i++) @@ -72,7 +117,7 @@ public void DisplayProgress(bool anim = false) { var deltaRatio = rightRatio - leftRatio; var deltaRatio = 1 - leftRatio - rightRatio; var realmPoint = PlayerDatas.Instance.extersion.realmPoint; var config = Config.Instance.Get<RealmConfig>(PlayerDatas.Instance.baseData.realmLevel); var progress = leftRatio + deltaRatio * (Mathf.Min((float)realmPoint / config.NeedPoint, 1)); @@ -106,34 +151,6 @@ m_HurtRemind.text = UIHelper.ReplaceNewLine(Language.Get("RealmSuppressHurt", UIHelper.GetRealmName(config.Lv), (float)model.realmSuppressHurt / 100)); } } Vector3 GetStagePosition(bool left, int index) { if (left && index >= m_StageLeftRatio.Length) { return Vector3.zero; } if (!left && index >= m_StageRightRatio.Length) { return Vector3.zero; } var ratio = left ? m_StageLeftRatio[index] : m_StageRightRatio[index]; Vector3 localpos = Vector3.zero.SetX(m_ContainerPoint.rect.width * ratio); return localpos; } #if UNITY_EDITOR private void LateUpdate() { for (int i = 0; i < m_RealmStages.Length; i++) { if (m_RealmStages[i].gameObject.activeSelf) { m_RealmStages[i].transform.localPosition = GetStagePosition(m_RealmStages[i].left, m_RealmStages[i].index); } } } #endif } } System/Realm/RealmStageBehaviour.cs
@@ -12,10 +12,9 @@ [SerializeField] Image m_RealmCompleted; [SerializeField] Image m_Arrow; [SerializeField] Image m_Last; [SerializeField] VerticalLayoutGroup m_Layout; public bool left { get; private set; } public int index { get; private set; } public void Display(int _realmLv, bool last, bool left, int index) public void Display(int _realmLv, bool last) { var config = Config.Instance.Get<RealmConfig>(_realmLv); var realmLevel = PlayerDatas.Instance.baseData.realmLevel; @@ -26,9 +25,20 @@ m_Arrow.gameObject.SetActive(realmLevel == _realmLv); m_Last.gameObject.SetActive(last); } } this.left = left; this.index = index; public float GetWidth(int realmLevel) { var config = Config.Instance.Get<RealmConfig>(realmLevel); if (config != null) { var sprite = UILoader.LoadSprite(config.Img); if (sprite) { return sprite.rect.width + m_Layout.padding.left + m_Layout.padding.right; } } return 86 + m_Layout.padding.left + m_Layout.padding.right; } } } System/Realm/RealmUpWin.cs
@@ -99,6 +99,20 @@ m_RawPlayer.gameObject.SetActive(true); UI3DModelExhibition.Instance.ShowSitDownPlayer(m_RawPlayer, PlayerDatas.Instance.baseData.Job); } var _realmPoint = PlayerDatas.Instance.extersion.realmPoint; var config = Config.Instance.Get<RealmConfig>(PlayerDatas.Instance.baseData.realmLevel); bool satisfyChallenge = false; if (config != null) { satisfyChallenge = _realmPoint >= config.NeedPoint; } if (satisfyChallenge && !NewBieCenter.Instance.inGuiding && !NewBieCenter.Instance.IsGuideCompleted(35) && realmModel.excuteRealmOpenGuide) { NewBieCenter.Instance.StartNewBieGuide(35); } } protected override void OnAfterOpen()