lcy
2026-05-08 57d67a1f74f16bb4e536d4651b09fdd7d7758c97
597 时装特卖 优化活动系统

1.移除活动系统ActivityType枚举
2.移除活动系统NewDayActivityID枚举,复用OperationType
13个文件已修改
373 ■■■■■ 已修改文件
Main/System/CustomizedGift/CustomizedGiftModel.cs 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/FestivalActivity/FestivalActivityCheckInManager.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/FestivalActivity/FestivalActivityManager.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/FestivalActivity/FestivalActivityMissionManager.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/FestivalActivity/FestivalActivityRechargeTotDayManager.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/FestivalActivity/FestivalActivityRechargeTotalManager.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/HeroDebut/HeroDebutManager.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/HeroReturn/HeroReturnManager.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/OpenServerActivity/OpenServerActivityCenter.cs 322 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/TimeRush/TimeRushManager.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/TotDayRecharge/TotDayRechargeManager.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/TotalRecharge/TotalRechargeManager.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/Utility/EnumHelper.cs 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/CustomizedGift/CustomizedGiftModel.cs
@@ -12,9 +12,7 @@
    private int GiftAwardRecord; //领取状态
    public const int activityType = (int)OpenServerActivityCenter.ActivityType.AT_DateActivity;
    public const int activityID = 99999;
    //public const int activityID = (int)NewDayActivityID.CustomizedGiftWin;
    public static OperationType operaType = (OperationType)99999999;
    //public static OperationType operaType = OperationType.CustomizedGift;
@@ -27,7 +25,7 @@
        OperationTimeHepler.Instance.operationStartEvent += OperationStartEvent;
        OperationTimeHepler.Instance.operationEndEvent += OperationEndEvent;
        OperationTimeHepler.Instance.operationAdvanceEvent += OperationAdvanceEvent;
        OpenServerActivityCenter.Instance.Register(activityID, this, activityType);
        OpenServerActivityCenter.Instance.Register(activityID, this);
    }
Main/System/FestivalActivity/FestivalActivityCheckInManager.cs
@@ -49,8 +49,7 @@
        UpdateRedPoint();
    }
    public const int activityType = (int)OpenServerActivityCenter.ActivityType.AT_DateActivity;
    public const int activityID = (int)NewDayActivityID.FestivalActivityCheckInAct;
    public const int activityID = (int)OperationType.FestivalActivity_CheckIn;
    public static OperationType operaType = OperationType.FestivalActivity_CheckIn;
    public Redpoint redPoint = new Redpoint(MainRedDot.FestivalActivityRepoint,
Main/System/FestivalActivity/FestivalActivityManager.cs
@@ -81,8 +81,7 @@
        TryPopWin();
    }
    public const int activityType = (int)OpenServerActivityCenter.ActivityType.AT_DateActivity;
    public const int activityID = (int)NewDayActivityID.FestivalActivityAct;
    public const int activityID = (int)OperationType.FestivalActivity;
    public static OperationType operaType = OperationType.FestivalActivity;
    public Redpoint redPoint = new Redpoint(MainRedDot.FestivalActivityRepoint);
Main/System/FestivalActivity/FestivalActivityMissionManager.cs
@@ -65,8 +65,7 @@
        UpdateRedPoint();
    }
    public const int activityType = (int)OpenServerActivityCenter.ActivityType.AT_DateActivity;
    public const int activityID = (int)NewDayActivityID.FestivalActivityMissionAct;
    public const int activityID = (int)OperationType.FestivalActivity_Mission;
    public static OperationType operaType = OperationType.FestivalActivity_Mission;
    public Redpoint redPoint = new Redpoint(MainRedDot.FestivalActivityRepoint, FestivalActivityManager.Instance.GetRedPointId(FestivalActivityRepointType.Mission));
Main/System/FestivalActivity/FestivalActivityRechargeTotDayManager.cs
@@ -47,8 +47,7 @@
        awardRecord = 0;
    }
    public const int activityType = (int)OpenServerActivityCenter.ActivityType.AT_DateActivity;
    public const int activityID = (int)NewDayActivityID.FestivalActivityRechargeTotDayAct;
    public const int activityID = (int)OperationType.FestivalActivity_RechargeTotDay;
    public static OperationType operaType = OperationType.FestivalActivity_RechargeTotDay;
    // 总奖励
    public Redpoint redPoint = new Redpoint(
Main/System/FestivalActivity/FestivalActivityRechargeTotalManager.cs
@@ -48,8 +48,7 @@
        awardRecord = 0;
    }
    public const int activityType = (int)OpenServerActivityCenter.ActivityType.AT_DateActivity;
    public const int activityID = (int)NewDayActivityID.FestivalActivityRechargeTotalAct;
    public const int activityID = (int)OperationType.FestivalActivity_RechargeTotal;
    public static OperationType operaType = OperationType.FestivalActivity_RechargeTotal;
    // 总奖励
    public Redpoint redPoint = new Redpoint(
Main/System/HeroDebut/HeroDebutManager.cs
@@ -104,8 +104,7 @@
    }
    public readonly int sendRankType = 6;
    public int loadRankType => actNum * 1000 + sendRankType;
    public const int activityType = (int)OpenServerActivityCenter.ActivityType.AT_DateActivity;
    public const int activityID = (int)NewDayActivityID.HeroDebutAct;
    public const int activityID = (int)OperationType.HeroDebut;
    public static OperationType operaType = OperationType.HeroDebut;
    public Redpoint redPoint = new Redpoint(MainRedDot.HeroDebutRepoint);
Main/System/HeroReturn/HeroReturnManager.cs
@@ -104,8 +104,7 @@
    }
    public readonly int sendRankType = 6;
    public int loadRankType => actNum * 1000 + sendRankType;
    public const int activityType = (int)OpenServerActivityCenter.ActivityType.AT_DateActivity;
    public const int activityID = (int)NewDayActivityID.HeroReturnAct;
    public const int activityID = (int)OperationType.HeroReturn;
    public static OperationType operaType = OperationType.HeroReturn;
    public Redpoint redPoint = new Redpoint(MainRedDot.HeroReturnRepoint);
Main/System/OpenServerActivity/OpenServerActivityCenter.cs
@@ -1,193 +1,129 @@
using 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 日期型活动-默认设计都是同一个入口,根据活动替换图标和名称,打开不同界面
    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);
        }
    }
}
using 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);
        }
    }
}
Main/System/TimeRush/TimeRushManager.cs
@@ -25,8 +25,7 @@
        }
    }
    public const int activityType = (int)OpenServerActivityCenter.ActivityType.AT_DateActivity;
    public const int activityID = (int)NewDayActivityID.TimeRushAct;
    public const int activityID = (int)OperationType.TimeRush;
    public int actNum = 10;
    public static OperationType operaType = OperationType.TimeRush;
    public Redpoint redPoint = new Redpoint(MainRedDot.TimeRushRepoint);
@@ -67,7 +66,7 @@
        OperationTimeHepler.Instance.operationAdvanceEvent += OperationAdvanceEvent;
        StoreModel.Instance.RefreshBuyShopLimitEvent += RefreshBuyShopLimitEvent;
        //storeModel.RefreshBuyShopLimitEvent += RefreshBuyShopLimitEvent;
        OpenServerActivityCenter.Instance.Register(activityID, this, activityType);
        OpenServerActivityCenter.Instance.Register(activityID, this);
        var config = FuncConfigConfig.Get("TimeRush");
        windowIDDict = ConfigParse.ParseIntDict(config.Numerical1);
Main/System/TotDayRecharge/TotDayRechargeManager.cs
@@ -47,8 +47,7 @@
        awardRecord = 0;
    }
    public const int activityType = (int)OpenServerActivityCenter.ActivityType.AT_DateActivity;
    public const int activityID = (int)NewDayActivityID.TotDayRechargeAct;
    public const int activityID = (int)OperationType.TotDayRecharge;
    public static OperationType operaType = OperationType.TotDayRecharge;
    // 总奖励
    public Redpoint redPoint = new Redpoint(MainRedDot.RedPoint_OSGala, MainRedDot.RedPoint_OSGala * 10 + 6);
Main/System/TotalRecharge/TotalRechargeManager.cs
@@ -48,8 +48,7 @@
        awardRecord = 0;
    }
    public const int activityType = (int)OpenServerActivityCenter.ActivityType.AT_DateActivity;
    public const int activityID = (int)NewDayActivityID.TotalRechargeAct;
    public const int activityID = (int)OperationType.TotalRecharge;
    public static OperationType operaType = OperationType.TotalRecharge;
    // 总奖励
    public Redpoint redPoint = new Redpoint(MainRedDot.RedPoint_OSGala, MainRedDot.RedPoint_OSGala * 10 + 5);
Main/Utility/EnumHelper.cs
@@ -1810,21 +1810,6 @@
    Mount,
}
//OpenServerActivityCenter.ActivityType.AT_Activity2的活动  历史原因不要用100
public enum NewDayActivityID
{
    TimeRushAct = 200,  //轮回殿(武将冲刺)
    HeroDebutAct = 201,  //英雄登场活动
    HeroReturnAct = 202,  //英雄返场活动
    TotalRechargeAct = 203,   //累充活动
    TotDayRechargeAct = 204,  //累充天活动
    FestivalActivityAct = 205,  //节日活动
    FestivalActivityRechargeTotalAct = 206,
    FestivalActivityRechargeTotDayAct = 207,
    FestivalActivityCheckInAct = 208,
    FestivalActivityMissionAct = 209,   //节日活动-任务
}
//仙玉购买的二次确认框类型
public enum BuyStoreItemCheckType
{