少年修仙传客户端代码仓库
client_linchunjie
2018-09-21 ae84b233fea372516a0a4133d7fb448291ed1710
3737【前端】仙盟联赛预告
2个文件已添加
5个文件已修改
306 ■■■■■ 已修改文件
System/DailyQuest/DayRemind.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FairyAu/FairyLeagueModel.cs 125 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FairyAu/FairyLeagueNoticeWin.cs 111 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FairyAu/FairyLeagueNoticeWin.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Message/WordAnalysis.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/OpenServerActivity/ImpactRankModel.cs 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/OpenServerActivity/OpenServerActivityWin.cs 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/DailyQuest/DayRemind.cs
@@ -45,6 +45,7 @@
    public const string OSGIFT_REDPOINT = "OSGitf_Redpoint";
    public const string TASK_SKILL_HOLE = "TaskSkillHole";
    public const string RUNE_SPECIAL_HOLE = "RuneSpecialHole";
    public const string LEAGUE_NOTICE_REDPOINT = "LeagueNoticeRedpoint";
    public Dictionary<string, int[]> dayRemindDic = new Dictionary<string, int[]>();
    public bool GetDayRemind(string _remindKey)
@@ -98,6 +99,7 @@
        SetDayRemind(OSGIFT_REDPOINT);
        SetDayRemind(TASK_SKILL_HOLE);
        SetDayRemind(RUNE_SPECIAL_HOLE);
        SetDayRemind(LEAGUE_NOTICE_REDPOINT);
    }
    private void SetDayRemind(string _key)
System/FairyAu/FairyLeagueModel.cs
@@ -9,7 +9,7 @@
namespace Snxxz.UI
{
    public class FairyLeagueModel : Model, IAfterPlayerDataInitialize, IBeforePlayerDataInitialize, IPlayerLoginOk
    public class FairyLeagueModel : Model, IAfterPlayerDataInitialize, IBeforePlayerDataInitialize, IPlayerLoginOk,IOpenServerActivity
    {
        public event Action OnRefreshFairyLeagueEvent;
@@ -123,9 +123,11 @@
            DTCA003_tagUniversalGameRecInfo.onGetUniversalGameInfo += OnGetUniversalGameInfo;
            PlayerDatas.Instance.PlayerDataRefreshInfoEvent += PlayerDataRefreshInfoEvent;
            StageManager.Instance.onStageLoadFinish += OnStageLoadFinish;
            FuncOpen.Instance.OnFuncStateChangeEvent += OnFuncStateChangeEvent;
            TimeMgr.Instance.OnMinuteEvent += MinuteEvent;
            TimeMgr.Instance.OnDayEvent += DayEvent;
            fairyLeagueHelp = new FairyLeagueHelp();
            OpenServerActivityCenter.Instance.Register((int)OpenServerActivityCenter.OSActivityType.FairyLeagueNotice, this);
        }
        public override void UnInit()
@@ -154,6 +156,7 @@
            cacheLeagueStage = fairyLeagueStage;
            CheckFairyLeagueData();
            UpdateRedpoint();
            UpdateNoticeRedpoint();
            serverInited = true;
        }
@@ -244,6 +247,7 @@
        readonly List<int> fairyLeagueStateValues = new List<int>() { 11, 12, 13, 21, 22, 23 };
        FairyLeagueWeekTime fairyLeagueWeekTime = new FairyLeagueWeekTime();
        Dictionary<int, Dictionary<int, FairyLeagueWeekTime>> specialLeagueTimes = new Dictionary<int, Dictionary<int, FairyLeagueWeekTime>>();
        public Dictionary<int,int> leagueNoticeWeapons { get; private set; }
        private void ParseConfig()
        {
            FuncConfigConfig cfg = Config.Instance.Get<FuncConfigConfig>("FamilyMatchGuide");
@@ -351,12 +355,15 @@
            integralAddition = int.Parse(cfg.Numerical5);
            cfg = Config.Instance.Get<FuncConfigConfig>("FamilyMatchResourcePoint1");
            crystalRateDict = ConfigParse.GetDic<int, float>(cfg.Numerical1);
            cfg = Config.Instance.Get<FuncConfigConfig>("FamilyForcast");
            leagueNoticeWeapons = ConfigParse.GetDic<int, int>(cfg.Numerical1);
        }
        int GetIndexOfWeek(int _openWeekDay, int _openDays, out int dayOfWeek)
        {
            var index = (_openWeekDay + _openDays - 1) / 7;
            var index = (_openWeekDay + _openDays - 2) / 7;
            dayOfWeek = (_openWeekDay + _openDays - 1) % 7;
            dayOfWeek = dayOfWeek == 0 ? 7 : dayOfWeek;
            return index;
        }
@@ -905,6 +912,7 @@
        #region 红点
        private Redpoint m_LeagueRedpoint = new Redpoint(107, 10704);
        public Redpoint m_JoinFairyLeagueRedpoint { get; private set; }
        public void UpdateRedpoint()
        {
            m_JoinFairyLeagueRedpoint.state = RedPointState.None;
@@ -918,6 +926,115 @@
                return;
            }
            m_JoinFairyLeagueRedpoint.state = RedPointState.Simple;
        }
        #endregion
        #region 仙盟联赛预告
        private void OnFuncStateChangeEvent(int func)
        {
            if (func == (int)FuncOpenEnum.FairyLeague)
            {
                if (onStateUpate != null)
                {
                    onStateUpate((int)OpenServerActivityCenter.OSActivityType.FairyLeagueNotice);
                }
                UpdateNoticeRedpoint();
            }
        }
        public event Action<int> onStateUpate;
        public bool IsOpen
        {
            get
            {
                return FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.FairyLeague) && !IsAfterFirstLeague();
            }
        }
        public bool IsAdvance
        {
            get { return false; }
        }
        public bool priorityOpen
        {
            get { return false; }
        }
        public int GetBeforeFirstLeagueTime()
        {
            var seconds = 0;
            if (TimeUtility.OpenWeekCnt <= 1)
            {
                if (IsAfterFirstLeague())
                {
                    return 0;
                }
                var weekTime = currentWeekTime == null ? nextWeekTime : currentWeekTime;
                var ring = weekTime.rings[0];
                var session = ring.sessions[0];
                var fightStage = session.stages.Find((x) =>
                {
                    return x.stage == FairyLeagueStage.Fight;
                });
                var time = TimeUtility.openServerTime.AddTicks((weekTime.rings[0].openServerDay - 1) * TimeSpan.TicksPerDay);
                time = new DateTime(time.Year, time.Month, time.Day, fightStage.startHour, fightStage.startMinute, 0);
                seconds = (int)(time - TimeUtility.ServerNow).TotalSeconds;
                seconds = Mathf.Max(seconds, 0);
            }
            return seconds;
        }
        public bool IsAfterFirstLeague()
        {
            if (TimeUtility.OpenWeekCnt <= 1)
            {
                var openServerTime = TimeUtility.openServerTime;
                var openServerWeekDay = openServerTime.DayOfWeek == DayOfWeek.Sunday ? 7 : (int)openServerTime.DayOfWeek;
                if (specialLeagueTimes.ContainsKey(openServerWeekDay))
                {
                    var dict = specialLeagueTimes[openServerWeekDay];
                    var weekCount = TimeUtility.OpenWeekCnt;
                    if (dict.ContainsKey(0) && weekCount > 0)
                    {
                        return true;
                    }
                    if (currentWeekTime == null)
                    {
                        return false;
                    }
                    var weekTime = currentWeekTime == null ? nextWeekTime : currentWeekTime;
                    if (weekTime.IsNextWeek)
                    {
                        return true;
                    }
                    if (weekTime.rings.Count > 1 && weekTime.currentRing == 1)
                    {
                        return true;
                    }
                    return weekTime.currentSession == 1 && weekTime.fairyLeagueStage == FairyLeagueStage.Over;
                }
            }
            return true;
        }
        Redpoint fairyLeagueNoticeRedpoint = new Redpoint(MainRedDot.REDPOINT_OPENSERVER, 20912);
        void UpdateNoticeRedpoint()
        {
            fairyLeagueNoticeRedpoint.state = RedPointState.None;
            if (!DayRemind.Instance.GetDayRemind(DayRemind.LEAGUE_NOTICE_REDPOINT)
                && IsOpen)
            {
                fairyLeagueNoticeRedpoint.state = RedPointState.Simple;
            }
        }
        public void SetViewLeagueNotice()
        {
            if (fairyLeagueNoticeRedpoint.state == RedPointState.Simple)
            {
                DayRemind.Instance.SetDayRemind(DayRemind.LEAGUE_NOTICE_REDPOINT, true);
                UpdateNoticeRedpoint();
            }
        }
        #endregion
    }
@@ -1093,6 +1210,8 @@
            public int dayOfWeek { get; set; }
            public int openServerDay { get; private set; }
            public void Sort()
            {
                sessions.Sort((Session x, Session y) =>
@@ -1122,6 +1241,8 @@
            public void ParseConfig(DungeonSpecialStateTimeConfig config, int dayOfWeek)
            {
                openServerDay = config.OpenServerDay;
                var session = sessions.Find((x) =>
                {
                    return x.session == (config.StateValue < 20 ? 0 : 1);
System/FairyAu/FairyLeagueNoticeWin.cs
New file
@@ -0,0 +1,111 @@
//--------------------------------------------------------
//    [Author]:           第二世界
//    [  Date ]:           Friday, September 21, 2018
//--------------------------------------------------------
using System;
using System.Collections;
using System.Collections.Generic;
using TableConfig;
using UnityEngine;
using UnityEngine.UI;
namespace Snxxz.UI {
    public class FairyLeagueNoticeWin : Window
    {
        [SerializeField] RectTransform m_ContainerNoFairy;
        [SerializeField] RectTransform m_ContainerHasFairy;
        [SerializeField] Button m_JoinFairy;
        [SerializeField] Button m_Goto;
        [SerializeField] RawImage[] m_RawWeapons;
        [SerializeField, Header("武器角度,职业1,2,3")] Vector3[] m_WeaponAngles;
        FairyLeagueModel model { get { return ModelCenter.Instance.GetModel<FairyLeagueModel>(); } }
        #region Built-in
        protected override void BindController()
        {
        }
        protected override void AddListeners()
        {
            m_JoinFairy.onClick.AddListener(JoinFairy);
            m_Goto.onClick.AddListener(Goto);
        }
        protected override void OnPreOpen()
        {
            PlayerDatas.Instance.fairyData.OnRefreshFairyInfo += OnRefreshFairyInfo;
            PlayerDatas.Instance.fairyData.OnRefreshFairyMine += OnRefreshFairyInfo;
            model.SetViewLeagueNotice();
            Display();
            DisplayWeapons();
        }
        protected override void OnAfterOpen()
        {
        }
        protected override void OnPreClose()
        {
            PlayerDatas.Instance.fairyData.OnRefreshFairyInfo -= OnRefreshFairyInfo;
            PlayerDatas.Instance.fairyData.OnRefreshFairyMine -= OnRefreshFairyInfo;
            UI3DModelExhibition.Instance.StopShowEquipment();
        }
        protected override void OnAfterClose()
        {
        }
        #endregion
        void Display()
        {
            m_ContainerNoFairy.gameObject.SetActive(!PlayerDatas.Instance.fairyData.HasFairy);
            m_ContainerHasFairy.gameObject.SetActive(PlayerDatas.Instance.fairyData.HasFairy);
        }
        private void Goto()
        {
            WindowJumpMgr.Instance.WindowJumpTo(JumpUIType.UnionFunc4);
        }
        private void JoinFairy()
        {
            WindowJumpMgr.Instance.WindowJumpTo(JumpUIType.UnionFunc3);
        }
        private void OnRefreshFairyInfo()
        {
            Display();
        }
        void DisplayWeapons()
        {
            var job = PlayerDatas.Instance.baseData.Job;
            var _rawImage = m_RawWeapons[0];
            var _angle = m_WeaponAngles[0];
            var _weaponId = model.leagueNoticeWeapons.ContainsKey(job) ? model.leagueNoticeWeapons[job] : 0;
            if (_weaponId == 0)
            {
                return;
            }
            for (int i = 0; i < m_RawWeapons.Length; i++)
            {
                m_RawWeapons[i].gameObject.SetActive(job == (i + 1));
                if ((i + 1) == job)
                {
                    _rawImage = m_RawWeapons[i];
                    _angle = m_WeaponAngles[i];
                }
            }
            var config = Config.Instance.Get<ItemConfig>(_weaponId);
            UI3DModelExhibition.Instance.BeginShowEquipment(config.ChangeOrd, _angle, _rawImage);
        }
    }
}
System/FairyAu/FairyLeagueNoticeWin.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: c1c8b96d40cac8741ab435102d9d4549
timeCreated: 1537498840
licenseType: Pro
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
System/Message/WordAnalysis.cs
@@ -10,8 +10,8 @@
    public static Regex Color_Start_Regex = new Regex(@"<color=#[0-9a-zA-Z]+>", RegexOptions.Singleline);
    public static Regex Color_End_Regex = new Regex(@"</color>", RegexOptions.Singleline);
    public static Regex Space_Regex = new Regex(@"<Space=([0-9]*)>", RegexOptions.Singleline);
    public static Regex Size_Start_Regex = new Regex(@"<Size=([0-9]+)>", RegexOptions.Singleline);
    public static Regex Size_End_Regex = new Regex(@"</Size>", RegexOptions.Singleline);
    public static Regex Size_Start_Regex = new Regex(@"<[Ss]ize=([0-9]+)>", RegexOptions.Singleline);
    public static Regex Size_End_Regex = new Regex(@"</[Ss]ize>", RegexOptions.Singleline);
    private static RichTextEventEnum eventType = RichTextEventEnum.TABLE;
System/OpenServerActivity/ImpactRankModel.cs
@@ -781,7 +781,9 @@
            [Header("仙玉投资")]
            FairyInvest,
            [Header("VIP投资")]
            VipInvest
            VipInvest,
            [Header("仙盟联赛预告")]
            FairyLeagueNotice,
        }
    }
System/OpenServerActivity/OpenServerActivityWin.cs
@@ -29,6 +29,7 @@
                return m_OSRedEnvelopeModel ?? (m_OSRedEnvelopeModel = ModelCenter.Instance.GetModel<OSRedEnvelopeModel>());
            }
        }
        FairyLeagueModel fairyLeagueModel { get { return ModelCenter.Instance.GetModel<FairyLeagueModel>(); } }
        List<int> openActivitys = new List<int>();
        List<int> priorityActivitys = new List<int>();
@@ -64,6 +65,7 @@
            impactRankModel.presentSelectType = impactDefaultType;
            impactRankModel.gotoImpactRankType = 0;
            envelopeModel.selectType = 1;
            GlobalTimeEvent.Instance.secondEvent += SecondEvent;
            CheckAlreadyOpen();
            UpdateFunctionBtns();
        }
@@ -121,6 +123,7 @@
            TimeUtility.OnServerOpenDayRefresh -= OnStepServerDayEvent;
            OperationTimeHepler.Instance.operationTimeUpdateEvent -= OperationTimeUpdateEvent;
            OpenServerActivityCenter.Instance.openServerActivityStateChange -= OpenServerActivityStateChange;
            GlobalTimeEvent.Instance.secondEvent -= SecondEvent;
            CloseOtherWin();
            impactRankModel.gotoImpactRankType = 0;
        }
@@ -165,6 +168,24 @@
            {
                openActivitys.Sort(Compare);
                return openActivitys[0];
            }
        }
        private void SecondEvent()
        {
            var cell = m_ActivityCtrl.GetActiveCellView((int)OpenServerActivityCenter.OSActivityType.FairyLeagueNotice);
            if (cell != null)
            {
                var activityCell = cell as OpenServerActivityCell;
                var seconds = fairyLeagueModel.GetBeforeFirstLeagueTime();
                if (seconds > 0)
                {
                    activityCell.title.text = UIHelper.ReplaceNewLine(Language.Get("FairyLeagueForcast", TimeUtility.SecondsToHMS(seconds)));
                }
                else
                {
                    activityCell.title.text = Language.Get("FamilyMatchName");
                }
            }
        }
@@ -224,6 +245,17 @@
                    if (OperationTimeHepler.Instance.TryGetOperationTime(Operation.MultipRealmPoint, out operationBase))
                    {
                        _cell.title.text = Language.Get("MultipleRealmPoint", Language.Get(StringUtility.Contact("Num_CHS_", (operationBase as OperationMultipleRealmPoint).multiplePractice)));
                    }
                    break;
                case 12:
                    var seconds = fairyLeagueModel.GetBeforeFirstLeagueTime();
                    if (seconds > 0)
                    {
                        _cell.title.text = UIHelper.ReplaceNewLine(Language.Get("FairyLeagueForcast", TimeUtility.SecondsToHMS(seconds)));
                    }
                    else
                    {
                        _cell.title.text = Language.Get("FamilyMatchName");
                    }
                    break;
                default:
@@ -471,7 +503,7 @@
                    }
                    else
                    {
                        WindowCenter.Instance.Open<FairyJadeInvestmentWin>();
                        WindowCenter.Instance.Open<FairyJadeInvestmentWin>(true);
                    }
                    break;
                case 11:
@@ -481,10 +513,19 @@
                    }
                    else
                    {
                        WindowCenter.Instance.Open<VipInvestWin>();
                        WindowCenter.Instance.Open<VipInvestWin>(true);
                    }
                    break;
                case 12:
                    if (windowState == WindowState.Opened)
                    {
                        WindowCenter.Instance.OpenWithoutAnimation<FairyLeagueNoticeWin>();
                    }
                    else
                    {
                        WindowCenter.Instance.Open<FairyLeagueNoticeWin>(true);
                    }
                    break;
            }
        }
@@ -518,6 +559,7 @@
            WindowCenter.Instance.CloseImmediately<LimitedTimePackageWin>();
            WindowCenter.Instance.CloseImmediately<FairyJadeInvestmentWin>();
            WindowCenter.Instance.CloseImmediately<VipInvestWin>();
            WindowCenter.Instance.CloseImmediately<FairyLeagueNoticeWin>();
        }
        private int Compare(int order_x, int order_y)