| System/DailyQuest/DailyQuestData.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/DailyQuest/DayRemind.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/FairyAu/FairyGrabBossModel.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/FairyAu/FairyGrabBossNoticeWin.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/FairyAu/FairyGrabBossNoticeWin.cs.meta | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/FairyAu/FairyGrabBossWin.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/OpenServerActivity/ImpactRankModel.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/OpenServerActivity/OpenServerActivityWin.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| UI/Common/UI3DModelExhibition.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
System/DailyQuest/DailyQuestData.cs
@@ -334,6 +334,74 @@ } public int GetFirstOpenSurplusSeconds() { if (IsAfterFirstOpen()) { return 0; } var openDayWeek = (int)TimeUtility.openServerDayOfWeek; var dayIndex = TimeUtility.OpenDay + 1; var maxDays = 15 - openDayWeek == 0 ? 7 : openDayWeek; for (int i = dayIndex; i <= maxDays; i++) { if (specialOpenTimes.ContainsKey(openDayWeek) && specialOpenTimes[openDayWeek].ContainsKey(dayIndex)) { var days = i - dayIndex; var hourMinute = specialOpenTimes[openDayWeek][dayIndex][0]; var hour = TimeUtility.ServerNow.Hour; var minute = TimeUtility.ServerNow.Minute; var time = TimeUtility.ServerNow.AddDays(days); time = new DateTime(time.Year, time.Month, time.Day, hourMinute.hourBegin, hourMinute.minuteBegin, 0); var seconds = (int)(time - TimeUtility.ServerNow).TotalSeconds; return Mathf.Max(0, seconds); } } return 0; } public bool IsAfterFirstOpen() { var isSpecialDay = TimeUtility.OpenWeekCnt <= 1; if (!isSpecialDay) { return true; } var openDayWeek = (int)TimeUtility.openServerDayOfWeek; var dayIndex = TimeUtility.OpenDay + 1; var maxDays = 15 - openDayWeek == 0 ? 7 : openDayWeek; for (int i = 1; i <= maxDays; i++) { if (specialOpenTimes.ContainsKey(openDayWeek) && specialOpenTimes[openDayWeek].ContainsKey(dayIndex)) { if (i < dayIndex) { return true; } if (i == dayIndex) { var hourMinute = specialOpenTimes[openDayWeek][dayIndex][0]; var hour = TimeUtility.ServerNow.Hour; var minute = TimeUtility.ServerNow.Minute; if (hour < hourMinute.hourEnd || (hour == hourMinute.hourEnd && minute < hourMinute.minuteEnd)) { return false; } else { return true; } } if (i > dayIndex) { return false; } } } return true; } public bool ContainTimeNode(int week, int timeNode) { var openDayWeek = (int)TimeUtility.openServerDayOfWeek; System/DailyQuest/DayRemind.cs
@@ -46,6 +46,7 @@ public const string TASK_SKILL_HOLE = "TaskSkillHole"; public const string RUNE_SPECIAL_HOLE = "RuneSpecialHole"; public const string LEAGUE_NOTICE_REDPOINT = "LeagueNoticeRedpoint"; public const string FAIRYGRABBOSS_NOTICE_REDPOINT = "FairyGrabBossRedpoint"; public Dictionary<string, int[]> dayRemindDic = new Dictionary<string, int[]>(); public bool GetDayRemind(string _remindKey) @@ -100,6 +101,7 @@ SetDayRemind(TASK_SKILL_HOLE); SetDayRemind(RUNE_SPECIAL_HOLE); SetDayRemind(LEAGUE_NOTICE_REDPOINT); SetDayRemind(FAIRYGRABBOSS_NOTICE_REDPOINT); } private void SetDayRemind(string _key) System/FairyAu/FairyGrabBossModel.cs
@@ -5,14 +5,14 @@ using UnityEngine; namespace Snxxz.UI { public class FairyGrabBossModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk public class FairyGrabBossModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk, IOpenServerActivity { public List<int> bosses { get; private set; } Dictionary<int, List<Item>> dropItemDict = new Dictionary<int, List<Item>>(); Dictionary<int, Dictionary<int, FairyGrabBossInfo>> fairyGrabBossDict = new Dictionary<int, Dictionary<int, FairyGrabBossInfo>>(); Dictionary<int, BossProgressInfo> bossProgressDict = new Dictionary<int, BossProgressInfo>(); public bool IsOpen public bool IsActivityOpen { get { @@ -76,6 +76,9 @@ public int callMemberDuty { get; private set; } public int callMemberSeconds { get; private set; } public int noticeShowPet { get; private set; } public int noticeShowHorse { get; private set; } private bool serverInited = false; //private DateTime lastQueryProgressTime = DateTime.Now; @@ -103,17 +106,22 @@ PlayerDatas.Instance.PlayerDataRefreshInfoEvent += PlayerDataRefreshInfoEvent; SysNotifyMgr.Instance.sysNotifyEvent += SystemNotifyEvent; GlobalTimeEvent.Instance.secondEvent += SecondEvent; TimeMgr.Instance.OnMinuteEvent += MinuteEvent; OpenServerActivityCenter.Instance.Register(13, this); } public void OnBeforePlayerDataInitialize() { serverInited = false; cacheNoticeOpen = false; bossAliveDict.Clear(); } public void OnPlayerLoginOk() { serverInited = true; cacheNoticeOpen = IsOpen; UpdateNoticeRedpoint(); } public override void UnInit() @@ -126,6 +134,22 @@ PlayerDatas.Instance.PlayerDataRefreshInfoEvent -= PlayerDataRefreshInfoEvent; SysNotifyMgr.Instance.sysNotifyEvent -= SystemNotifyEvent; GlobalTimeEvent.Instance.secondEvent -= SecondEvent; TimeMgr.Instance.OnMinuteEvent -= MinuteEvent; } private void MinuteEvent() { if (serverInited) { if (cacheNoticeOpen != IsOpen) { cacheNoticeOpen = !cacheNoticeOpen; if (onStateUpate != null) { onStateUpate((int)OpenServerActivityCenter.OSActivityType.FairyGrabBossNotice); } } } } private void PlayerDataRefreshInfoEvent(PlayerDataRefresh refreshType) @@ -266,6 +290,11 @@ if (_id == 139) { RecheckGrabBoss(); if (onStateUpate != null) { onStateUpate((int)OpenServerActivityCenter.OSActivityType.FairyGrabBossNotice); } UpdateNoticeRedpoint(); } } @@ -294,6 +323,14 @@ var config = Config.Instance.Get<FuncConfigConfig>("FairyCallMember"); callMemberSeconds = int.Parse(config.Numerical1); callMemberDuty = int.Parse(config.Numerical2); config = Config.Instance.Get<FuncConfigConfig>("FairyGrabBossShowModel"); noticeShowHorse = 305; noticeShowPet = 50106305; if (config != null) { noticeShowPet = int.Parse(config.Numerical1); noticeShowHorse = int.Parse(config.Numerical2); } } public bool TryGetDropItems(int bossId, out List<Item> dropItems) @@ -533,7 +570,6 @@ #region 召集弹窗 public bool helpCoolDown { get; set; } public List<FairyGrabBossHelp> fairyGrabBossHelps = new List<FairyGrabBossHelp>(); public event Action fairyGrabBossHelpUpdate; @@ -638,6 +674,68 @@ } #endregion #region 骑宠争夺预告 public bool IsOpen { get { DailyQuestOpenTime dailyQuestOpenTime; if (dailyQuestModel.TryGetOpenTime((int)DailyQuestType.FairyGrabBoss, out dailyQuestOpenTime)) { return FuncOpen.Instance.IsFuncOpen(139) && !dailyQuestOpenTime.IsAfterFirstOpen(); } return false; } } public bool IsAdvance { get { return false; } } public bool priorityOpen { get { return false; } } bool cacheNoticeOpen { get; set; } public event Action<int> onStateUpate; public int GetFirstOpenSeconds() { int seconds = 0; if (!InActivityTime) { DailyQuestOpenTime dailyQuestOpenTime; if (dailyQuestModel.TryGetOpenTime((int)DailyQuestType.FairyGrabBoss, out dailyQuestOpenTime)) { seconds = dailyQuestOpenTime.GetFirstOpenSurplusSeconds(); } } return seconds; } Redpoint fairyGrabBossNoticeRedpoint = new Redpoint(MainRedDot.REDPOINT_OPENSERVER, 20913); void UpdateNoticeRedpoint() { fairyGrabBossNoticeRedpoint.state = RedPointState.None; if (!DayRemind.Instance.GetDayRemind(DayRemind.FAIRYGRABBOSS_NOTICE_REDPOINT) && IsOpen) { //fairyGrabBossNoticeRedpoint.state = RedPointState.Simple; } } public void SetViewFairyGrabBossNotice() { if (fairyGrabBossNoticeRedpoint.state == RedPointState.Simple) { DayRemind.Instance.SetDayRemind(DayRemind.FAIRYGRABBOSS_NOTICE_REDPOINT, true); UpdateNoticeRedpoint(); } } #endregion public class FairyGrabBossInfo { public int npcId { get; private set; } System/FairyAu/FairyGrabBossNoticeWin.cs
New file @@ -0,0 +1,109 @@ //-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Tuesday, October 09, 2018 //-------------------------------------------------------- using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using TableConfig; namespace Snxxz.UI { public class FairyGrabBossNoticeWin : Window { [SerializeField] Button m_Goto; [SerializeField] RawImage m_Horse; [SerializeField] RawImage m_Pet; [SerializeField] Text m_SurplusTime; FairyGrabBossModel model { get { return ModelCenter.Instance.GetModel<FairyGrabBossModel>(); } } #region Built-in protected override void BindController() { } protected override void AddListeners() { m_Goto.onClick.AddListener(Goto); } protected override void OnPreOpen() { GlobalTimeEvent.Instance.secondEvent += SecondEvent; Display(); DisplayTime(); model.SetViewFairyGrabBossNotice(); } protected override void OnAfterOpen() { } protected override void OnPreClose() { GlobalTimeEvent.Instance.secondEvent -= SecondEvent; UI3DModelExhibition.Instance.StopShow(); UI3DModelExhibition.InstanceClone1.StopShow(); } protected override void OnAfterClose() { } #endregion private void Goto() { WindowJumpMgr.Instance.WindowJumpTo(JumpUIType.FairyGrabBoss); } void Display() { m_Horse.gameObject.SetActive(true); m_Pet.gameObject.SetActive(true); var npcConfig = Config.Instance.Get<NPCConfig>(model.noticeShowPet); UI3DModelExhibition.Instance.ShowNPC(model.noticeShowPet, npcConfig.UIModeLOffset, npcConfig.UIModelRotation, m_Pet); var horseConfig = Config.Instance.Get<HorseConfig>(model.noticeShowHorse); UI3DModelExhibition.InstanceClone1.ShowHourse(horseConfig.Model, m_Horse); UI3DModelExhibition.Instance.interactable = false; UI3DModelExhibition.InstanceClone1.interactable = false; } private void SecondEvent() { DisplayTime(); } void DisplayTime() { var seconds = model.GetFirstOpenSeconds(); var isOpen = model.IsOpen; if (seconds > 0) { if (!m_SurplusTime.gameObject.activeSelf) { m_SurplusTime.gameObject.SetActive(true); } m_SurplusTime.text = Language.Get("FairyGrabBossTime", TimeUtility.SecondsToDHMSCHS(seconds)); } else if (isOpen) { if (!m_SurplusTime.gameObject.activeSelf) { m_SurplusTime.gameObject.SetActive(true); } m_SurplusTime.text = Language.Get("FairyGrabBossOpened"); } else { m_SurplusTime.gameObject.SetActive(false); } } } } System/FairyAu/FairyGrabBossNoticeWin.cs.meta
New file @@ -0,0 +1,12 @@ fileFormatVersion: 2 guid: 1ab2a47cddd6c5c45bd057f4cdc3df3a timeCreated: 1539083346 licenseType: Pro MonoImporter: serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: System/FairyAu/FairyGrabBossWin.cs
@@ -159,7 +159,7 @@ { m_FairyName.text = string.Empty; m_NoneFairy.gameObject.SetActive(true); if (!model.IsOpen) if (!model.IsActivityOpen) { return; } System/OpenServerActivity/ImpactRankModel.cs
@@ -784,6 +784,8 @@ VipInvest, [Header("仙盟联赛预告")] FairyLeagueNotice, [Header("骑宠争夺预告")] FairyGrabBossNotice, } } System/OpenServerActivity/OpenServerActivityWin.cs
@@ -30,6 +30,7 @@ } } FairyLeagueModel fairyLeagueModel { get { return ModelCenter.Instance.GetModel<FairyLeagueModel>(); } } FairyGrabBossModel fairyGrabBossModel { get { return ModelCenter.Instance.GetModel<FairyGrabBossModel>(); } } List<int> openActivitys = new List<int>(); List<int> priorityActivitys = new List<int>(); @@ -181,6 +182,23 @@ activityCell.title.text = TimeUtility.SecondsToHMS(seconds); activityCell.title.gameObject.SetActive(seconds > 0); } cell = m_ActivityCtrl.GetActiveCellView((int)OpenServerActivityCenter.OSActivityType.FairyGrabBossNotice); if (cell != null) { var activityCell = cell as OpenServerActivityCell; var seconds = fairyGrabBossModel.GetFirstOpenSeconds(); bool isOpen = fairyGrabBossModel.IsOpen; activityCell.title.gameObject.SetActive(seconds > 0 || isOpen); activityCell.title.color = UIHelper.GetUIColor(TextColType.Green, true); if (seconds > 0) { activityCell.title.text = TimeUtility.SecondsToHMS(seconds); } else if (isOpen) { activityCell.title.text = Language.Get("FairyGrabBossOpened"); } } } void CheckAlreadyOpen() @@ -232,6 +250,8 @@ }); bool customIcon = !string.IsNullOrEmpty(customActivity.titleIcon); _cell.title.color = UIHelper.GetUIColor(TextColType.NavyBrown); OperationBase operationBase; switch (_cell.index) { @@ -241,7 +261,6 @@ _cell.title.text = Language.Get("ExpActivity_Text5", (operationBase as OperationMultiExp).GetMultipleCHS()); } _cell.title.gameObject.SetActive(!customIcon); _cell.title.color = UIHelper.GetUIColor(TextColType.NavyBrown); break; case 8: if (OperationTimeHepler.Instance.TryGetOperationTime(Operation.MultipRealmPoint, out operationBase)) @@ -249,21 +268,37 @@ _cell.title.text = Language.Get("MultipleRealmPoint", Language.Get(StringUtility.Contact("Num_CHS_", (operationBase as OperationMultipleRealmPoint).multiplePractice))); } _cell.title.gameObject.SetActive(!customIcon); _cell.title.color = UIHelper.GetUIColor(TextColType.NavyBrown); break; case 12: var seconds = fairyLeagueModel.GetBeforeFirstLeagueTime(); _cell.title.gameObject.SetActive(seconds > 0); if (seconds > 0) { _cell.title.text = TimeUtility.SecondsToHMS(seconds); var seconds = fairyLeagueModel.GetBeforeFirstLeagueTime(); _cell.title.gameObject.SetActive(seconds > 0); if (seconds > 0) { _cell.title.text = TimeUtility.SecondsToHMS(seconds); _cell.title.color = UIHelper.GetUIColor(TextColType.Green, true); } } break; case 13: { var seconds = fairyGrabBossModel.GetFirstOpenSeconds(); bool isOpen = fairyGrabBossModel.IsOpen; _cell.title.gameObject.SetActive(seconds > 0 || isOpen); _cell.title.color = UIHelper.GetUIColor(TextColType.Green, true); if (seconds > 0) { _cell.title.text = TimeUtility.SecondsToHMS(seconds); } else if (isOpen) { _cell.title.text = Language.Get("FairyGrabBossOpened"); } } break; default: _cell.title.gameObject.SetActive(!customIcon); _cell.title.text = Language.Get(StringUtility.Contact("OSActivityTitle_", _cell.index)); _cell.title.color = UIHelper.GetUIColor(TextColType.NavyBrown); break; } _cell.order = _cell.index; @@ -529,6 +564,16 @@ WindowCenter.Instance.Open<FairyLeagueNoticeWin>(true); } break; case 13: if (windowState == WindowState.Opened) { WindowCenter.Instance.OpenWithoutAnimation<FairyGrabBossNoticeWin>(); } else { WindowCenter.Instance.Open<FairyGrabBossNoticeWin>(true); } break; } } @@ -563,6 +608,7 @@ WindowCenter.Instance.CloseImmediately<FairyJadeInvestmentWin>(); WindowCenter.Instance.CloseImmediately<VipInvestWin>(); WindowCenter.Instance.CloseImmediately<FairyLeagueNoticeWin>(); WindowCenter.Instance.CloseImmediately<FairyGrabBossNoticeWin>(); } private int Compare(int order_x, int order_y) UI/Common/UI3DModelExhibition.cs
@@ -65,6 +65,19 @@ public static UI3DModelExhibition Instance { get; private set; } static UI3DModelExhibition m_InstanceClone1 = null; public static UI3DModelExhibition InstanceClone1 { get { if (m_InstanceClone1 == null) { CreateCloneStage(); } return m_InstanceClone1; } } public static void CreateStage() { var prefab = Resources.Load<GameObject>("UI/Prefabs/UI3DModelExhibitionStage"); @@ -77,6 +90,18 @@ DontDestroyOnLoad(gameObject); } static void CreateCloneStage() { var prefab = Resources.Load<GameObject>("UI/Prefabs/UI3DModelExhibitionStage"); var gameObject = GameObject.Instantiate(prefab); m_InstanceClone1 = gameObject.GetComponent<UI3DModelExhibition>(); m_InstanceClone1.transform.position = new Vector3(2000, 4000, 5000); m_InstanceClone1.name = "UI3DModelExhibitionStage(clone1)"; m_InstanceClone1.gameObject.SetActive(true); m_InstanceClone1.m_ShowCamera.enabled = false; DontDestroyOnLoad(gameObject); } public void ShowLoginPlayer(RawImage _rawImage, int _job) { var clothesItemId = 0;