From 8ec139a41a68bc0aebd3c2de4912276d3db3bd8e Mon Sep 17 00:00:00 2001
From: client_Hale <339726288@qq.com>
Date: 星期五, 21 九月 2018 15:39:14 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.0.87:10010/r/snxxz_scripts
---
System/FairyAu/FairyLeagueModel.cs | 125 +++++++++++++++++++++++++++++++++++++++++
1 files changed, 123 insertions(+), 2 deletions(-)
diff --git a/System/FairyAu/FairyLeagueModel.cs b/System/FairyAu/FairyLeagueModel.cs
index eed633f..d27d464 100644
--- a/System/FairyAu/FairyLeagueModel.cs
+++ b/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 == 142)
+ {
+ if (onStateUpate != null)
+ {
+ onStateUpate((int)OpenServerActivityCenter.OSActivityType.FairyLeagueNotice);
+ }
+ UpdateNoticeRedpoint();
+ }
+ }
+
+ public event Action<int> onStateUpate;
+ public bool IsOpen
+ {
+ get
+ {
+ return FuncOpen.Instance.IsFuncOpen(142) && !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);
--
Gitblit v1.8.0