From 57d67a1f74f16bb4e536d4651b09fdd7d7758c97 Mon Sep 17 00:00:00 2001
From: lcy <1459594991@qq.com>
Date: 星期五, 08 五月 2026 19:02:58 +0800
Subject: [PATCH] 597 时装特卖 优化活动系统
---
Main/System/OpenServerActivity/OpenServerActivityCenter.cs | 322 +++++++++++++++++++++--------------------------------
1 files changed, 129 insertions(+), 193 deletions(-)
diff --git a/Main/System/OpenServerActivity/OpenServerActivityCenter.cs b/Main/System/OpenServerActivity/OpenServerActivityCenter.cs
index 079d10c..7dc7d84 100644
--- a/Main/System/OpenServerActivity/OpenServerActivityCenter.cs
+++ b/Main/System/OpenServerActivity/OpenServerActivityCenter.cs
@@ -1,193 +1,129 @@
-锘縰sing System;
-using System.Collections;
-using System.Collections.Generic;
-using UnityEngine;
-//淇敼鎴愭帶鍒跺涓椿鍔ㄦā鍧楋紝濡傜簿褰╂椿鍔ㄦā鏉�1锛岀簿褰╂椿鍔ㄦā鏉�2
-
-public class OpenServerActivityCenter : Singleton<OpenServerActivityCenter>
-{
- public event Action openServerActivityStateChange;
-
- //{娲诲姩妯℃澘锛歿娲诲姩ID锛氭椿鍔ㄦ帴鍙}
- Dictionary<int, Dictionary<int, IOpenServerActivity>> GameServerActivitys = new Dictionary<int, Dictionary<int, IOpenServerActivity>>();
-
- public int selectFuncOrder = -1;
-
- public enum ActivityType
- {
- AT_JCHD = 0, //绮惧僵娲诲姩
- AT_DateActivity, //鏃ユ湡鍨嬫椿鍔�- 鎸夋棩鏈熷紑鏀剧殑鎺掕姒滅郴鍒楁椿鍔ㄧ浉鍏� id浠�200寮�濮嬶紙涓庡叾浠栨椿鍔ㄥ尯鍒嗭紝铏界劧id閲嶅骞舵病鏈夊叧绯伙級锛� 绫诲悓鑺傛棩娲诲姩
- }
-
- public OpenServerActivityCenter()
- {
- TimeUtility.OnServerOpenDayRefresh -= OnServerOpenDayRefresh;
- TimeUtility.OnServerOpenDayRefresh += OnServerOpenDayRefresh;
- }
-
- public void Register(int funcOrder, IOpenServerActivity activity, int activityType = (int)ActivityType.AT_JCHD)
- {
- if (!GameServerActivitys.ContainsKey(activityType))
- {
- GameServerActivitys.Add(activityType, new Dictionary<int, IOpenServerActivity>());
- }
-
- var openServerActivitys = GameServerActivitys[activityType];
- if (!openServerActivitys.ContainsKey(funcOrder))
- {
- openServerActivitys.Add(funcOrder, activity);
- activity.onStateUpdate -= OnStateUpdate;
- activity.onStateUpdate += OnStateUpdate;
- }
- }
-
- private void OnStateUpdate(int _order)
- {
- if (openServerActivityStateChange != null)
- {
- openServerActivityStateChange();
- }
- }
-
- private void OnServerOpenDayRefresh()
- {
- if (openServerActivityStateChange != null)
- {
- openServerActivityStateChange();
- }
- }
-
- public bool IsAnyActivityOpen(out int _functionOrder, int activityType = (int)ActivityType.AT_JCHD)
- {
- if (!GameServerActivitys.ContainsKey(activityType))
- {
- GameServerActivitys.Add(activityType, new Dictionary<int, IOpenServerActivity>());
- }
-
- var openServerActivitys = GameServerActivitys[activityType];
- _functionOrder = 0;
- foreach (var _order in openServerActivitys.Keys)
- {
- if (openServerActivitys[_order].IsOpen || openServerActivitys[_order].IsAdvance)
- {
- _functionOrder = _order;
- return true;
- }
- }
- return false;
- }
-
- public bool IsActivityOpen(int _funcOrder, int activityType = (int)ActivityType.AT_JCHD)
- {
- if (!GameServerActivitys.ContainsKey(activityType))
- {
- GameServerActivitys.Add(activityType, new Dictionary<int, IOpenServerActivity>());
- }
-
- bool isOpen = false;
- var openServerActivitys = GameServerActivitys[activityType];
- if (openServerActivitys.ContainsKey(_funcOrder))
- {
- isOpen = openServerActivitys[_funcOrder].IsOpen || openServerActivitys[_funcOrder].IsAdvance;
- }
-
- return isOpen;
- }
-
- public bool IsPriorityOpenOpen(int _funcOrder, int activityType = (int)ActivityType.AT_JCHD)
- {
- if (!GameServerActivitys.ContainsKey(activityType))
- {
- GameServerActivitys.Add(activityType, new Dictionary<int, IOpenServerActivity>());
- }
-
- var openServerActivitys = GameServerActivitys[activityType];
- if (openServerActivitys.ContainsKey(_funcOrder))
- {
- return openServerActivitys[_funcOrder].priorityOpen;
- }
- return false;
- }
-
-
-
-
- public void ProcessErrorTip()
- {
- SysNotifyMgr.Instance.ShowTip("ActiveOutTime");
- }
-
- //AT_Activity2 鏃ユ湡鍨嬫椿鍔�-榛樿璁捐閮芥槸鍚屼竴涓叆鍙o紝鏍规嵁娲诲姩鏇挎崲鍥炬爣鍜屽悕绉帮紝鎵撳紑涓嶅悓鐣岄潰
- public NewDayActivityInfo GetNewDayActionEnterInfo()
- {
- // if (IsActivityOpen((int)NewDayActivityID.BossTrial, (int)ActivityType.AT_Activity2))
- // {
- // return new NewDayActivityInfo() { activityID = (int)NewDayActivityID.BossTrial, redpointID = MainRedDot.BossTrialRepoint, winName = "BossTrialActWin" };
- // }
- // else if (IsActivityOpen((int)NewDayActivityID.SecretPlaceXB, (int)ActivityType.AT_Activity2))
- // {
- // return new NewDayActivityInfo() { activityID = (int)NewDayActivityID.SecretPlaceXB, redpointID = MainRedDot.MjxbRedpoint, winName = "SecretPlaceActWin" };
- // }
- // else if (IsActivityOpen((int)NewDayActivityID.PetHorseAct, (int)ActivityType.AT_Activity2))
- // {
- // return new NewDayActivityInfo() { activityID = (int)NewDayActivityID.PetHorseAct, redpointID = MainRedDot.QCTrainActRedpoint, winName = "PetHorseActWin" };
- // }
- // else if (IsActivityOpen((int)NewDayActivityID.TreasurePavilionAct, (int)ActivityType.AT_Activity2))
- // {
- // return new NewDayActivityInfo() { activityID = (int)NewDayActivityID.TreasurePavilionAct, redpointID = MainRedDot.TreasurePavilionRankActRepoint, winName = "TreasurePavilionRankActWin" };
- // }
-
- return new NewDayActivityInfo() { activityID = 0 };
- }
-
- //AT_Activity2 鍏ュ彛淇℃伅
- public struct NewDayActivityInfo
- {
- public int activityID;
- public int redpointID;
- public string winName;
- }
-}
-
-public interface IOpenServerActivity
-{
- bool IsOpen { get; }
- bool IsAdvance { get; }
- bool priorityOpen { get; }
-
- event Action<int> onStateUpdate;
-}
-
-public class ILOpenServerActivityProxy : IOpenServerActivity
-{
- public bool IsOpen => funcIsOpen();
-
- public bool IsAdvance => funcIsAdvance();
-
- public bool priorityOpen => funcPriorityOpen();
-
- public event Action<int> onStateUpdate;
-
- private Func<bool> funcIsOpen;
- private Func<bool> funcIsAdvance;
- private Func<bool> funcPriorityOpen;
-
- public ILOpenServerActivityProxy(Func<bool> isOpen, Func<bool> isAdvance, Func<bool> priorityOpen)
- {
- funcIsOpen = isOpen;
- funcIsAdvance = isAdvance;
- funcPriorityOpen = priorityOpen;
- }
-
-
- public void StateUpdate(int id)
- {
- if (onStateUpdate != null)
- {
- onStateUpdate(id);
- }
- }
-
-}
-
-
+锘縰sing System;
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+//淇敼鎴愭帶鍒跺涓椿鍔ㄦā鍧楋紝濡傜簿褰╂椿鍔ㄦā鏉�1锛岀簿褰╂椿鍔ㄦā鏉�2
+
+public class OpenServerActivityCenter : Singleton<OpenServerActivityCenter>
+{
+ public event Action openServerActivityStateChange;
+
+ //{娲诲姩ID锛氭椿鍔ㄦ帴鍙
+ Dictionary<int, IOpenServerActivity> GameServerActivitys = new Dictionary<int, IOpenServerActivity>();
+
+ public int selectFuncOrder = -1;
+
+ public OpenServerActivityCenter()
+ {
+ TimeUtility.OnServerOpenDayRefresh -= OnServerOpenDayRefresh;
+ TimeUtility.OnServerOpenDayRefresh += OnServerOpenDayRefresh;
+ }
+
+ public void Register(int funcOrder, IOpenServerActivity activity)
+ {
+ if (!GameServerActivitys.ContainsKey(funcOrder))
+ {
+ GameServerActivitys.Add(funcOrder, activity);
+ activity.onStateUpdate -= OnStateUpdate;
+ activity.onStateUpdate += OnStateUpdate;
+ }
+ }
+
+ private void OnStateUpdate(int _order)
+ {
+ if (openServerActivityStateChange != null)
+ {
+ openServerActivityStateChange();
+ }
+ }
+
+ private void OnServerOpenDayRefresh()
+ {
+ if (openServerActivityStateChange != null)
+ {
+ openServerActivityStateChange();
+ }
+ }
+
+ public bool IsAnyActivityOpen(out int _functionOrder)
+ {
+ _functionOrder = 0;
+ foreach (var _order in GameServerActivitys.Keys)
+ {
+ if (GameServerActivitys[_order].IsOpen || GameServerActivitys[_order].IsAdvance)
+ {
+ _functionOrder = _order;
+ return true;
+ }
+ }
+ return false;
+ }
+
+ public bool IsActivityOpen(int _funcOrder)
+ {
+ bool isOpen = false;
+ if (GameServerActivitys.ContainsKey(_funcOrder))
+ {
+ isOpen = GameServerActivitys[_funcOrder].IsOpen || GameServerActivitys[_funcOrder].IsAdvance;
+ }
+
+ return isOpen;
+ }
+
+ public bool IsPriorityOpenOpen(int _funcOrder)
+ {
+ if (GameServerActivitys.ContainsKey(_funcOrder))
+ {
+ return GameServerActivitys[_funcOrder].priorityOpen;
+ }
+ return false;
+ }
+
+
+
+ public void ProcessErrorTip()
+ {
+ SysNotifyMgr.Instance.ShowTip("ActiveOutTime");
+ }
+}
+
+public interface IOpenServerActivity
+{
+ bool IsOpen { get; }
+ bool IsAdvance { get; }
+ bool priorityOpen { get; }
+
+ event Action<int> onStateUpdate;
+}
+
+public class ILOpenServerActivityProxy : IOpenServerActivity
+{
+ public bool IsOpen => funcIsOpen();
+
+ public bool IsAdvance => funcIsAdvance();
+
+ public bool priorityOpen => funcPriorityOpen();
+
+ public event Action<int> onStateUpdate;
+
+ private Func<bool> funcIsOpen;
+ private Func<bool> funcIsAdvance;
+ private Func<bool> funcPriorityOpen;
+
+ public ILOpenServerActivityProxy(Func<bool> isOpen, Func<bool> isAdvance, Func<bool> priorityOpen)
+ {
+ funcIsOpen = isOpen;
+ funcIsAdvance = isAdvance;
+ funcPriorityOpen = priorityOpen;
+ }
+
+
+ public void StateUpdate(int id)
+ {
+ if (onStateUpdate != null)
+ {
+ onStateUpdate(id);
+ }
+ }
+
+}
--
Gitblit v1.8.0