少年修仙传客户端代码仓库
5189 【开发】【1.3.100】仙盟联赛第一场结束后即显示第二场分组情况,并在主界面显示第二场倒计时按钮(点击打开仙盟联赛界面)
2个文件已添加
2个文件已修改
187 ■■■■■ 已修改文件
System/FairyAu/FairyLeagueModel.cs 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FairyAu/FairyLeagueRemindBehaviour.cs 136 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FairyAu/FairyLeagueRemindBehaviour.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/MainInterfacePanel/MainInterfaceWin.cs 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FairyAu/FairyLeagueModel.cs
@@ -568,7 +568,7 @@
                        FairyLeagueBattleData battleData = new FairyLeagueBattleData()
                        {
                            grade = (int)_pakData.Value1,
                            ring = (int)_pakData.Value2 - 1,
                            session = (int)_pakData.Value2 - 1,
                            fairyId1 = (int)_pakData.Value3,
                            fairyId2 = (int)_pakData.Value4,
                            winFairyId = (int)_pakData.Value5,
@@ -617,6 +617,36 @@
                            _error = 5;
                        }
                        return _fairyBattle.winFairyId == 0;
                    }
                }
            }
            return false;
        }
        public bool RequireFairyLeagueRemind(int session)
        {
            if (!FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.FairyLeague))
            {
                return false;
            }
            var _fairyId = PlayerDatas.Instance.fairyData.fairy.FamilyID;
            if (!fairyLeagueBattleDict.ContainsKey(session))
            {
                return false;
            }
            var dict = fairyLeagueBattleDict[session];
            foreach (var grade in dict.Keys)
            {
                if (dict[grade] == null)
                {
                    continue;
                }
                foreach (var battleList in dict[grade])
                {
                    if (battleList.fairyId1 == _fairyId
                        || battleList.fairyId2 == _fairyId)
                    {
                        return true;
                    }
                }
            }
@@ -1404,7 +1434,7 @@
                {
                    return false;
                }
                if (time.Hour == overStage.endHour && time.Minute > overStage.endMinute)
                if (time.Hour == overStage.endHour && time.Minute >= overStage.endMinute)
                {
                    return false;
                }
@@ -1514,7 +1544,7 @@
    public class FairyLeagueBattleData
    {
        public int grade;
        public int ring;
        public int session;
        public int fairyId1;
        public int fairyId2;
        public int winFairyId;
System/FairyAu/FairyLeagueRemindBehaviour.cs
New file
@@ -0,0 +1,136 @@
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
namespace Snxxz.UI
{
    public class FairyLeagueRemindBehaviour : MonoBehaviour
    {
        [SerializeField] RectTransform m_Container;
        [SerializeField] Text m_Timer;
        [SerializeField] Button m_Goto;
        FairyLeagueModel model
        {
            get { return ModelCenter.Instance.GetModel<FairyLeagueModel>(); }
        }
        bool requireRemind = false;
        DateTime startTime = DateTime.Now;
        private void Awake()
        {
            m_Goto.AddListener(Goto);
        }
        public void Init()
        {
            GlobalTimeEvent.Instance.secondEvent += OnPerSecond;
            model.OnRefreshFairyLeagueEvent += OnRefreshFairyLeagueEvent;
            model.onFairyLeagueBattleEvent += OnFairyLeagueBattleEvent;
            FuncOpen.Instance.OnFuncStateChangeEvent += OnFuncStateChangeEvent;
            PlayerDatas.Instance.fairyData.OnRefreshFairyInfo += OnRefreshFairyInfo;
            requireRemind = SatisfyRemindCondition() && model.RequireFairyLeagueRemind(1)
                && TryGetStartTime(out startTime);
            m_Container.gameObject.SetActive(requireRemind);
            if (requireRemind)
            {
                DisplayTimer();
            }
        }
        public void UnInit()
        {
            GlobalTimeEvent.Instance.secondEvent -= OnPerSecond;
            model.OnRefreshFairyLeagueEvent -= OnRefreshFairyLeagueEvent;
            model.onFairyLeagueBattleEvent -= OnFairyLeagueBattleEvent;
            FuncOpen.Instance.OnFuncStateChangeEvent -= OnFuncStateChangeEvent;
            PlayerDatas.Instance.fairyData.OnRefreshFairyInfo -= OnRefreshFairyInfo;
            requireRemind = false;
        }
        private void OnPerSecond()
        {
            if (requireRemind)
            {
                DisplayTimer();
            }
        }
        private void OnRefreshFairyInfo()
        {
            OnRefreshFairyLeagueEvent();
        }
        private void OnFuncStateChangeEvent(int id)
        {
            if (id == (int)FuncOpenEnum.FairyLeague)
            {
                OnRefreshFairyLeagueEvent();
            }
        }
        private void OnFairyLeagueBattleEvent()
        {
            requireRemind = SatisfyRemindCondition() && model.RequireFairyLeagueRemind(1)
                && TryGetStartTime(out startTime);
            m_Container.gameObject.SetActive(requireRemind);
            if (requireRemind)
            {
                DisplayTimer();
            }
        }
        private void OnRefreshFairyLeagueEvent()
        {
            requireRemind = SatisfyRemindCondition() && model.RequireFairyLeagueRemind(1)
                && TryGetStartTime(out startTime);
            m_Container.gameObject.SetActive(requireRemind);
            if (requireRemind)
            {
                DisplayTimer();
            }
        }
        bool SatisfyRemindCondition()
        {
            var fairyLeagueStage = model.fairyLeagueStage;
            var session = model.fairyLeagueSession;
            return fairyLeagueStage == FairyLeagueStage.Grouping && session == 1;
        }
        bool TryGetStartTime(out DateTime time)
        {
            time = DateTime.Now;
            var fairyLeagueTime = model.currentWeekTime;
            if (fairyLeagueTime == null)
            {
                return false;
            }
            var ring = fairyLeagueTime.rings[fairyLeagueTime.currentRing];
            var session = ring.sessions[ring.sessions.Count - 1];
            var stage = session.stages.Find((x) =>
            {
                return x.stage == FairyLeagueStage.Fight;
            });
            time = new DateTime(TimeUtility.ServerNow.Year, TimeUtility.ServerNow.Month, TimeUtility.Day,
                stage.startHour, stage.startMinute, 0);
            return true;
        }
        private void DisplayTimer()
        {
            var seconds = (int)(startTime - TimeUtility.ServerNow).TotalSeconds;
            seconds = Mathf.Max(0, seconds);
            m_Timer.text = TimeUtility.SecondsToMS(seconds);
        }
        private void Goto()
        {
            WindowJumpMgr.Instance.WindowJumpTo(JumpUIType.UnionFunc4);
        }
    }
}
System/FairyAu/FairyLeagueRemindBehaviour.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 355afb8d09a2ee5418b118791b4f63d2
timeCreated: 1543888926
licenseType: Pro
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
System/MainInterfacePanel/MainInterfaceWin.cs
@@ -90,6 +90,7 @@
        [SerializeField] RectTransform m_ContainerAdaptiveChat;
        [SerializeField] Button m_GotoFairyGrabBoss;
        [SerializeField] Button m_FlyToFairyGrabBoss;
        [SerializeField] FairyLeagueRemindBehaviour m_FairyLeagueRemind;
        [SerializeField] Transform m_EffectTask;//任务完成特效播放位置
        private int m_CollectNPCID;
@@ -216,6 +217,7 @@
            m_TeamInvitationEntrance.Init();
            m_FairyCallBehaviour.Init();
            m_MapSwitchingBehaviour.Init();
            m_FairyLeagueRemind.Init();
            m_BossBriefInfos.gameObject.SetActive(false);
            UpdateWishAwardImag();
            UpdateMysticalPurchaseImag();
@@ -402,6 +404,7 @@
            m_AnimationFadeOut.Unit();
            m_TeamInvitationEntrance.UnInit();
            m_FairyCallBehaviour.UnInit();
            m_FairyLeagueRemind.UnInit();
            horseRidBool = false;
            purchaseModel.UpdateNewMysticalEvent -= UpdateMysticalPurchaseImag;
            assistModel.UpdateRedpointEvent -= UpdateDungeonAssistImag;