| System/MainInterfacePanel/TopRightTip.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/OpenServerActivity/ImpactBillRankWin.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/OpenServerActivity/ImpactRankAwardCell.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/OpenServerActivity/ImpactRankModel.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/OpenServerActivity/ImpactRankWin.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/OpenServerActivity/OpenActivityRankTypeCell.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/OpenServerActivity/OpenServerActivityRankWin.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/OpenServerActivity/OpenServerActivityRankWin.cs.meta | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/Store/StoreModel.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
System/MainInterfacePanel/TopRightTip.cs
@@ -18,6 +18,7 @@ public Image m_MapImage; public Image m_MapHero; public Text m_MapName; public Button m_ServerRank; LocalMap mapMatrix; Vector3 heroPrePosition = new Vector3(-999, -8888, 0); @@ -30,6 +31,8 @@ m_Map.SetListener(OpenMapWin); m_Daily.SetListener(OpenDailyQuestWin); m_BackPack.SetListener(OpenBackpack); m_ServerRank.SetListener(OpenRank); OpenServerActivityCenter.Instance.openServerActivityStateChange += OpenServerActivityStateChange; } public void UnInit() @@ -37,6 +40,18 @@ m_Map.RemoveAllListeners(); m_Daily.RemoveAllListeners(); m_BackPack.RemoveAllListeners(); m_ServerRank.RemoveAllListeners(); OpenServerActivityCenter.Instance.openServerActivityStateChange -= OpenServerActivityStateChange; } private void OpenServerActivityStateChange() { m_ServerRank.gameObject.SetActive(OpenServerActivityCenter.Instance.IsActivityOpen(0)); } private void OpenRank() { WindowCenter.Instance.Open<OpenServerActivityRankWin>(); } private void OpenMapWin() System/OpenServerActivity/ImpactBillRankWin.cs
@@ -95,11 +95,12 @@ } } m_RankCtrl.Restart(); m_RankCtrl.JumpIndex(model.viewRankStartIndex); } else { m_RankCtrl.m_Scorller.RefreshActiveCellViews(); m_RankCtrl.JumpIndex(0); m_RankCtrl.JumpIndex(model.viewRankStartIndex); } var rank = 0; if (!rankModel.TryGetMyRank(type, out rank)) System/OpenServerActivity/ImpactRankAwardCell.cs
@@ -19,6 +19,26 @@ public Image hasGetImg { get { return m_HasGetImg; } } [SerializeField] UIEffect m_GetEffect; public UIEffect effect { get { return m_GetEffect; } } [SerializeField] Image m_RankImg; public Image rankImg { get { return m_RankImg; } } [SerializeField] Text m_NameText; public Text nameText { get { return m_NameText; } } [SerializeField] Text m_CountText; public Text countText { get { return m_CountText; } } [SerializeField] Text m_NowText; public Text nowText { get { return m_NowText; } } [SerializeField] GameObject m_ObjTop3; public GameObject objTop3 { get { return m_ObjTop3; } } [SerializeField] GameObject m_RankIndexs; public GameObject objRankIndex { get { return m_RankIndexs; } } [SerializeField] GameObject m_ObjTarget; public GameObject objTarget { get { return m_ObjTarget; } } [SerializeField] Text m_RankIndexsText; public Text rankIndexsText { get { return m_RankIndexsText; } } [SerializeField] Button m_BtnBill; public Button btnBill { get { return m_BtnBill; } } } } System/OpenServerActivity/ImpactRankModel.cs
@@ -114,7 +114,7 @@ public int openServerActivityDays { get; private set; } public int openServerRankDays { get; private set; } public int gotoImpactRankType { get; set; } public int viewRankStartIndex; public List<Int2> GetBillRankPromotePaths(int type) { @@ -336,6 +336,12 @@ return _condition.start - TimeUtility.OpenDay - 1; } public int GetOpenStartDay(int _type) { var _condition = impactRankTypeOpenDict[_type]; return _condition.start; } public int GetSurplusDay(int _type) { if (!impactRankTypeOpenDict.ContainsKey(_type)) @@ -453,16 +459,16 @@ get { return m_PresentSelectType; } set { m_PresentSelectType = value; if (OnSelectRankTypeEvent != null) { OnSelectRankTypeEvent(); } var _order = m_PresentSelectType / 100; var _type = m_PresentSelectType % 100; if (_order == 0) { presentBillRankType = GetRankType(_type); } if (OnSelectRankTypeEvent != null) { OnSelectRankTypeEvent(); } } } System/OpenServerActivity/ImpactRankWin.cs
@@ -118,6 +118,7 @@ if (type == (int)model.presentBillRankType) { UpdateRanks(); m_RankAwardCtrl.m_Scorller.RefreshActiveCellViews(); } } @@ -311,18 +312,30 @@ } var _tip = string.Empty; _cell.objTop3.gameObject.SetActive(false); _cell.objRankIndex.gameObject.SetActive(false); _cell.objTarget.gameObject.SetActive(false); _cell.getBtn.gameObject.SetActive(false); _cell.unCompleteImg.gameObject.SetActive(false); _cell.hasGetImg.gameObject.SetActive(false); _cell.effect.gameObject.SetActive(false); //_cell.rankImg.gameObject.SetActive(false); //_cell.countText.gameObject.SetActive(false); //_cell.nameText.gameObject.SetActive(false); _cell.nowText.gameObject.SetActive(false); _cell.nameText.text = "-"; _cell.countText.text = "-"; ImpactRankModel.OpenServerPlayerData _playerData; var _hasData = model.TryGetOpenServerPlayerData(model.presentSelectType, out _playerData); if (model.IsMissImpactRank(model.presentSelectType) || model.IsLock(model.presentSelectType)) if (awardType == ImpactRankModel.ImpactRankAwardType.Target) { _cell.unCompleteImg.gameObject.SetActive(true); } else if (awardType == ImpactRankModel.ImpactRankAwardType.Target) { _cell.objTarget.gameObject.SetActive(true); _tip = Language.Get(StringUtility.Contact("ImpactRankCellType_Target_", model.presentSelectType), _billTagCfg.Condition); _cell.rankTip.text = _tip; if (!_hasData) { _cell.unCompleteImg.gameObject.SetActive(true); @@ -343,97 +356,51 @@ } } } else if (model.IsActivityClose(model.presentSelectType)) else if (awardType == ImpactRankModel.ImpactRankAwardType.Rank) { if (!_hasData) if (!model.IsActivityClose(model.presentSelectType)) _cell.nowText.gameObject.SetActive(true); var _condition = model.impactRankTypeOpenDict[model.presentSelectType]; if (_billRankCfg.RankA == _billRankCfg.RankB) { _cell.unCompleteImg.gameObject.SetActive(true); _cell.objTop3.gameObject.SetActive(true); _cell.rankImg.SetSprite(_billRankCfg.RankA == 1 ? "Rank_First" : _billRankCfg.RankA == 2 ? "Rank_Second" : "Rank_Third"); //top3 名字和 数值 RankData data = null; List<RankData> rankDatas = null; if (rankModel.TryGetRanks((int)model.presentBillRankType, out rankDatas)) { if (_billRankCfg.RankA <= rankDatas.Count) { data = rankDatas[_billRankCfg.RankA-1]; } if (data != null) { _cell.nameText.text = data.name1; var billName = Language.Get(StringUtility.Contact("ImpactRankType_", model.presentSelectType)); _cell.countText.text = billName.Substring(0, billName.Length / 2) + ":" + data.cmpValue.ToString(); } } } else { if (awardType == ImpactRankModel.ImpactRankAwardType.Rank) _cell.objRankIndex.gameObject.SetActive(true); _cell.rankIndexsText.text = _billRankCfg.RankA.ToString() + "-" + _billRankCfg.RankB.ToString(); _cell.btnBill.onClick.RemoveAllListeners(); _cell.btnBill.onClick.AddListener(() => { var _start = _billRankCfg.RankA; var _end = _billRankCfg.RankB; var _rank = 0; if (!rankModel.TryGetMyRank((int)model.GetRankType(model.presentSelectType), out _rank)) { _rank = -1; } if (_rank == -1 || _rank < _start || _rank > _end) { _cell.unCompleteImg.gameObject.SetActive(!model.InImpactRank(model.presentSelectType)); } else { _cell.unCompleteImg.gameObject.SetActive(false); _cell.hasGetImg.gameObject.SetActive(_playerData.billAwardGet); _cell.getBtn.gameObject.SetActive(!_playerData.billAwardGet); _cell.effect.gameObject.SetActive(!_playerData.billAwardGet); } } OnViewRank(_billRankCfg.RankA-1); }); } } var _condition = model.impactRankTypeOpenDict[model.presentSelectType]; switch (model.presentSelectType) { case 5: switch (awardType) { case ImpactRankModel.ImpactRankAwardType.Rank: { if (_billRankCfg.RankA == _billRankCfg.RankB) { var _realmCfg = RealmConfig.Get(_condition.limit); _tip = Language.Get(StringUtility.Contact("ImpactRankCellType_Single_", model.presentSelectType), _billRankCfg.RankA, _realmCfg != null ? _realmCfg.Name : string.Empty); } else { var _realmCfg = RealmConfig.Get(_condition.limit); _tip = Language.Get(StringUtility.Contact("ImpactRankCellType_Double_", model.presentSelectType), _billRankCfg.RankA, _billRankCfg.RankB, _realmCfg != null ? _realmCfg.Name : string.Empty); } } break; case ImpactRankModel.ImpactRankAwardType.Target: { var _realmCfg = RealmConfig.Get(_billTagCfg.Condition); _tip = Language.Get(StringUtility.Contact("ImpactRankCellType_Target_", model.presentSelectType), _realmCfg != null ? _realmCfg.Name : string.Empty); } break; } break; default: { switch (awardType) { case ImpactRankModel.ImpactRankAwardType.Rank: { if (_billRankCfg.RankA == _billRankCfg.RankB) { _tip = Language.Get(StringUtility.Contact("ImpactRankCellType_Single_", model.presentSelectType), _billRankCfg.RankA, _condition.limit); } else { _tip = Language.Get(StringUtility.Contact("ImpactRankCellType_Double_", model.presentSelectType), _billRankCfg.RankA, _billRankCfg.RankB, _condition.limit); } } break; case ImpactRankModel.ImpactRankAwardType.Target: { _tip = Language.Get(StringUtility.Contact("ImpactRankCellType_Target_", model.presentSelectType), _billTagCfg.Condition); } break; } } break; } _cell.rankTip.text = _tip; _cell.getBtn.onClick.RemoveAllListeners(); _cell.getBtn.onClick.AddListener(() => { @@ -446,8 +413,9 @@ OnGetClick(_billRankCfg, _cell.index); } }); } } private void OnGetClick(OSCBillRankAwardConfig _cfg, int index) { var _index = model.GetBillIndex(model.presentSelectType, index); @@ -467,9 +435,19 @@ SysNotifyMgr.Instance.ShowTip("FunctionNotOpen", Language.Get(StringUtility.Contact("ImpactRankType_", model.presentSelectType))); return; } model.viewRankStartIndex = 0; WindowCenter.Instance.Open<ImpactBillRankWin>(); } private void OnViewRank(int rank) { if (model.IsLock(model.presentSelectType)) { SysNotifyMgr.Instance.ShowTip("FunctionNotOpen", Language.Get(StringUtility.Contact("ImpactRankType_", model.presentSelectType))); return; } model.viewRankStartIndex = rank; WindowCenter.Instance.Open<ImpactBillRankWin>(); } private void OnRuleBtn() { ModelCenter.Instance.GetModel<HowToPlayModel>().ruleId = GetRuleId(); System/OpenServerActivity/OpenActivityRankTypeCell.cs
@@ -37,6 +37,15 @@ { m_ContainerSelect.gameObject.SetActive(select); } [SerializeField] Image m_LockImage; public Image lockImage { get { return m_LockImage; } } } } System/OpenServerActivity/OpenServerActivityRankWin.cs
New file @@ -0,0 +1,321 @@ using System; using System.Collections; using System.Collections.Generic; using System.Linq; using UnityEngine; using UnityEngine.UI; #if UNITY_EDITOR using UnityEditor; using UnityEditorInternal; #endif namespace Snxxz.UI { //开服活动 独立界面 public class OpenServerActivityRankWin : Window { [SerializeField] ScrollerController m_ActivityCtrl; [SerializeField] Button m_BtnClose; List<int> m_OpenServerActivities = new List<int>(); ImpactRankModel impactRankModel { get { return ModelCenter.Instance.GetModel<ImpactRankModel>(); } } List<int> openActivitys = new List<int>(); List<int> priorityActivitys = new List<int>(); List<int> alreadyOpenActivitys = new List<int>(); protected override void BindController() { m_OpenServerActivities.Add(0); } protected override void AddListeners() { m_ActivityCtrl.OnRefreshCell += OnOpenServerActivityRefresh; m_ActivityCtrl.OnGetDynamicSize += OnGetDynamicSize; m_ActivityCtrl.lockType = EnhanceLockType.KeepVertical; m_BtnClose.onClick.AddListener(TryClose); } protected override void OnPreOpen() { TimeUtility.OnServerOpenDayRefresh += OnStepServerDayEvent; OpenServerActivityCenter.Instance.openServerActivityStateChange += OpenServerActivityStateChange; var impactDefaultType = impactRankModel.GetDefaultSelectType(); if (impactRankModel.IsLock(impactDefaultType)) { impactDefaultType = impactRankModel.impactRankSorts[0]; } impactRankModel.presentSelectType = impactDefaultType; impactRankModel.gotoImpactRankType = 0; CheckAlreadyOpen(); UpdateFunctionBtns(); } protected override void OnActived() { if (alreadyOpenActivitys.Count == 0) { CloseImmediately(); return; } if (functionOrder == 0 && !WindowJumpMgr.Instance.IsJumpState) { functionOrder = GetDefaultSelect(); UpdateFunctionBtns(); } WindowCenter.Instance.Open("ImpactRankWin", true); var index = alreadyOpenActivitys.IndexOf(functionOrder); m_ActivityCtrl.JumpIndex(index); } protected override void OnAfterOpen() { impactRankModel.OSCEffectOpen = false; } protected override void OnPreClose() { TimeUtility.OnServerOpenDayRefresh -= OnStepServerDayEvent; OpenServerActivityCenter.Instance.openServerActivityStateChange -= OpenServerActivityStateChange; impactRankModel.gotoImpactRankType = 0; WindowCenter.Instance.Close("ImpactRankWin"); } protected override void OnAfterClose() { if (!WindowJumpMgr.Instance.IsJumpState) { WindowCenter.Instance.Open<MainInterfaceWin>(); } } private void TryClose() { CloseClick(); } int GetDefaultSelect() { openActivitys.Clear(); priorityActivitys.Clear(); for (int i = 0; i < m_OpenServerActivities.Count; i++) { var activityId = m_OpenServerActivities[i]; if (OpenServerActivityCenter.Instance.IsActivityOpen(activityId)) { openActivitys.Add(activityId); if (OpenServerActivityCenter.Instance.IsPriorityOpenOpen(activityId)) { priorityActivitys.Add(activityId); OpenServerActivityCenter.Instance.SetSelectDefaultChildType(activityId); } } } if (priorityActivitys.Count > 0) { priorityActivitys.Sort(Compare); return priorityActivitys[0]; } else { openActivitys.Sort(Compare); return openActivitys[0]; } } void CheckAlreadyOpen() { alreadyOpenActivitys.Clear(); for (int i = 0; i < m_OpenServerActivities.Count; i++) { if (OpenServerActivityCenter.Instance.IsActivityOpen(m_OpenServerActivities[i])) { alreadyOpenActivitys.Add(m_OpenServerActivities[i]); } } } private void OnOpenServerActivityRefresh(ScrollerDataType type, CellView cell) { switch (type) { case ScrollerDataType.Header: RefreshOpenActivityCell(cell as OpenServerActivityCell); break; case ScrollerDataType.Normal: RefreshActivityTypeCell(cell as OpenActivityRankTypeCell); break; } } private bool OnGetDynamicSize(ScrollerDataType type, int index, out float height) { height = 74; //var sort = index; //if (type == ScrollerDataType.Header) //{ // if (!m_ActivitySpreadDict.ContainsKey(sort) || !m_ActivitySpreadDict[sort] // || !OpenServerActivityCenter.Instance.ExistChildBookmark(sort)) // { // height = 121; // return true; // } //} return false; } private void RefreshOpenActivityCell(OpenServerActivityCell _cell) { var activityType = 0; activityType = _cell.index >= 1000 ? _cell.index / 1000 : _cell.index; var extraValue = _cell.index % 1000; var customActivity = m_OpenServerActivities.Find((x) => { return x == activityType; }); _cell.containerTimer.gameObject.SetActive(false); _cell.activityType = activityType; _cell.redpoint.redpointId = MainRedDot.REDPOINT_OPENSERVER * 100 + activityType; _cell.SetSelect(_cell.activityType == functionOrder); _cell.icon.SetSprite("OpenServerActivty_QMCB"); _cell.downArrow.gameObject.SetActive(false); _cell.upArrow.gameObject.SetActive(false); _cell.funcBtn.onClick.RemoveAllListeners(); } private void OnStepServerDayEvent() { UpdateFunctionBtns(); } private void RefreshActivityTypeCell(OpenActivityRankTypeCell _cell) { int _order = _cell.index / 100; int _type = _cell.index % 100; _cell.redpoint.redpointId = (209 * 100 + _order) * 100 + _type; _cell.titleTxt.text = Language.Get(StringUtility.Contact("ImpactRankType_", _type)); _cell.SetSelect(_type == impactRankModel.presentSelectType); _cell.functionBtn.onClick.RemoveAllListeners(); _cell.functionBtn.onClick.AddListener(() => { OnActivityType(_cell.index); }); if (impactRankModel.IsLock(_type)) { _cell.functionBtn.SetColorful(null, false); _cell.lockImage.SetActive(true); } else { _cell.functionBtn.SetColorful(null, true); _cell.lockImage.SetActive(false); } } private void UpdateFunctionBtns() { m_ActivityCtrl.Refresh(); for (int i = 0; i < m_OpenServerActivities.Count; i++) { var activityId = m_OpenServerActivities[i]; if (!alreadyOpenActivitys.Contains(activityId)) { continue; } switch (activityId) { case 0: m_ActivityCtrl.AddCell(ScrollerDataType.Header, activityId); foreach (var _type in impactRankModel.impactRankSorts) { //if (impactRankModel.IsLock(_type)) //{ // continue; //} m_ActivityCtrl.AddCell(ScrollerDataType.Normal, activityId * 100 + _type); } break; default: break; } } m_ActivityCtrl.Restart(); m_ActivityCtrl.m_Scorller.RefreshActiveCellViews(); } private void OnActivityType(int _index) { var _order = _index / 100; var _type = _index % 100; if (impactRankModel.IsLock(_type)) { SysNotifyMgr.Instance.ShowTip("ImpactRankActivityUnOpen", Language.Get(StringUtility.Contact("ImpactRankType_", _type)), impactRankModel.GetOpenStartDay(_type)); return; } impactRankModel.presentSelectType = _type; m_ActivityCtrl.m_Scorller.RefreshActiveCellViews(); } private int Compare(int order_x, int order_y) { var index_x = m_OpenServerActivities.FindIndex((x) => { return order_x == x; }); var index_y = m_OpenServerActivities.FindIndex((x) => { return order_y == x; }); return index_x.CompareTo(index_y); } private void OpenServerActivityStateChange() { bool _update = false; for (int i = 0; i < m_OpenServerActivities.Count; i++) { var activityId = m_OpenServerActivities[i]; if (OpenServerActivityCenter.Instance.IsActivityOpen(activityId) && !alreadyOpenActivitys.Contains(activityId)) { alreadyOpenActivitys.Add(activityId); _update = true; } } if (_update) { UpdateFunctionBtns(); } } } } System/OpenServerActivity/OpenServerActivityRankWin.cs.meta
New file @@ -0,0 +1,12 @@ fileFormatVersion: 2 guid: 4afec3d664d04874d97512f378c061f8 timeCreated: 1570189619 licenseType: Pro MonoImporter: serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: System/Store/StoreModel.cs
@@ -1615,6 +1615,10 @@ shopRedDict[storeConfig.ID].state = RedPointState.None; IsMustBuyDay = false; } else if (type == 1) { shopRedDict[storeConfig.ID].state = RedPointState.None; } } public bool IsMustBuyDay { get; private set; }