| | |
| | | using UnityEngine; |
| | | namespace Snxxz.UI
|
| | | {
|
| | | //修改成控制多个活动模块,如精彩活动模板1,精彩活动模板2
|
| | | [XLua.LuaCallCSharp]
|
| | | public class OpenServerActivityCenter : Singleton<OpenServerActivityCenter>
|
| | | {
|
| | | public event Action openServerActivityStateChange;
|
| | |
|
| | | Dictionary<int, IOpenServerActivity> openServerActivitys = new Dictionary<int, IOpenServerActivity>();
|
| | | Dictionary<int, ILuaOpenServerActivity> luaOpenServerAcitivitys = new Dictionary<int, ILuaOpenServerActivity>();
|
| | | //{活动模板:{活动ID:活动接口}}
|
| | | Dictionary<int, Dictionary<int, IOpenServerActivity>> GameServerActivitys = new Dictionary<int, Dictionary<int, IOpenServerActivity>>();
|
| | |
|
| | | public int selectFuncOrder = -1;
|
| | |
|
| | | public enum ActivityType
|
| | | {
|
| | | AT_JCHD = 0, //精彩活动
|
| | | AT_JRZF, //节日祝福
|
| | | AT_HFHD, //合服活动
|
| | | AT_Activity1, //预备活动1
|
| | | AT_Activity2, //预备活动2
|
| | | AT_Activity3, //预备活动3
|
| | | }
|
| | |
|
| | | public OpenServerActivityCenter()
|
| | | {
|
| | | TimeUtility.OnServerOpenDayRefresh += OnServerOpenDayRefresh;
|
| | | }
|
| | |
|
| | | public void Register(int funcOrder, IOpenServerActivity activity)
|
| | | 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;
|
| | | }
|
| | | }
|
| | |
|
| | | public void RegisterLuaActivity(int funcOrder, string luaTableName)
|
| | | {
|
| | | if (!openServerActivitys.ContainsKey(funcOrder))
|
| | | {
|
| | | var activity = LuaUtility.Global.Get<IOpenServerActivity>(luaTableName);
|
| | | if (activity != null)
|
| | | {
|
| | | openServerActivitys.Add(funcOrder, activity);
|
| | | activity.onStateUpdate += OnStateUpdate;
|
| | | }
|
| | |
|
| | | var luaActivity = LuaUtility.Global.Get<ILuaOpenServerActivity>(luaTableName);
|
| | | if (luaActivity != null)
|
| | | {
|
| | | luaOpenServerAcitivitys[funcOrder] = luaActivity;
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | |
| | | }
|
| | | }
|
| | |
|
| | | public bool IsAnyActivityOpen(out int _functionOrder)
|
| | | 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)
|
| | | {
|
| | |
| | | return false;
|
| | | }
|
| | |
|
| | | public bool IsActivityOpen(int _funcOrder)
|
| | | public bool IsActivityOpen(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].IsOpen || openServerActivitys[_funcOrder].IsAdvance;
|
| | |
| | | return false;
|
| | | }
|
| | |
|
| | | public bool IsPriorityOpenOpen(int _funcOrder)
|
| | | 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 SetSelectDefaultChildType(int _funcOrder)
|
| | | {
|
| | | if (luaOpenServerAcitivitys.ContainsKey(_funcOrder))
|
| | | {
|
| | | luaOpenServerAcitivitys[_funcOrder].SetSelectDefaultChildType();
|
| | | }
|
| | | }
|
| | |
|
| | | public bool ExistChildBookmark(int _funcOrder)
|
| | | {
|
| | |
| | | }
|
| | | }
|
| | |
|
| | | public int GetChildSelectType(int _funcOrder)
|
| | | {
|
| | | if (luaOpenServerAcitivitys.ContainsKey(_funcOrder))
|
| | | {
|
| | | return luaOpenServerAcitivitys[_funcOrder].selectType;
|
| | | }
|
| | | return 0;
|
| | | }
|
| | |
|
| | | public int[] GetChildTypes(int _funcOrder)
|
| | | {
|
| | |
| | | return null;
|
| | | }
|
| | |
|
| | | public void SetSelectChildType(int _funcOrder, int type)
|
| | | {
|
| | | if (luaOpenServerAcitivitys.ContainsKey(_funcOrder))
|
| | | {
|
| | | luaOpenServerAcitivitys[_funcOrder].SetSelectChildType(type);
|
| | | }
|
| | | }
|
| | |
|
| | | public void ProcessErrorTip()
|
| | | {
|
| | |
| | | event Action<int> onStateUpdate;
|
| | | }
|
| | |
|
| | | [XLua.CSharpCallLua]
|
| | | public interface ILuaOpenServerActivity
|
| | | {
|
| | | int selectType { get; }
|
| | | void SetSelectDefaultChildType();
|
| | | void SetSelectChildType(int type);
|
| | | }
|
| | | } |
| | | |