少年修仙传客户端代码仓库
lcy
2024-12-16 a39c35fc6449430cd02bccb681c4a0a880e46cd9
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
using vnxbqy.UI;
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
 
 
/// <summary>
/// 合服-骑宠盛宴
/// </summary>
 
public class MergeServerQCSYModel : ILModel<MergeServerQCSYModel>
{
    public ILOpenServerActivityProxy activity;
    public Operation operationType = Operation.default11;
    public const int activityID = 4;
    public const int activityType = (int)OpenServerActivityCenter.ActivityType.AT_HFHD;
    
    public bool IsOpen()
    {
        return OperationTimeHepler.Instance.SatisfyOpenCondition(operationType);
    }
 
    public bool IsAdvance()
    {
        return false;
    }
 
    public bool priorityOpen()
    {
        //红点
        return redpoint.state == RedPointState.Simple;
    }
 
 
    public event Action<int> onStateUpdate;
 
    protected override void Init()
    {
        OperationTimeHepler.Instance.operationStartEvent += OperationStartEvent;
        OperationTimeHepler.Instance.operationEndEvent += OperationEndEvent;
        GameEvent.beforePlayerDataInitializeEvent += OnBeforePlayerDataInitialize;
        GameEvent.playerLoginOkEvent += OnPlayerLoginOk;
        activity = new ILOpenServerActivityProxy(IsOpen, IsAdvance, priorityOpen);
        OpenServerActivityCenter.Instance.Register(activityID, activity, activityType);
 
    }
 
    public void OnBeforePlayerDataInitialize()
    {
    }
 
    public void OnPlayerLoginOk()
    {
        UpdateRedpoint();
    }
 
    protected override void UnInit()
    {
        OperationTimeHepler.Instance.operationStartEvent -= OperationStartEvent;
        OperationTimeHepler.Instance.operationEndEvent -= OperationEndEvent;
        GameEvent.beforePlayerDataInitializeEvent -= OnBeforePlayerDataInitialize;
        GameEvent.playerLoginOkEvent -= OnPlayerLoginOk;
    }
 
 
    private void OperationEndEvent(Operation operation, int state)
    {
        if (operation == operationType && state == 0)
        {
            TimeMgr.Instance.OnMinuteEvent -= OnMinuteEvent;
            if (onStateUpdate != null)
            {
                onStateUpdate(activityID);
            }
            redpoint.state = RedPointState.None;
        }
    }
 
    private void OperationStartEvent(Operation operation, int state)
    {
        if (operation == operationType && state == 0)
        {
            TimeMgr.Instance.OnMinuteEvent -= OnMinuteEvent;
            TimeMgr.Instance.OnMinuteEvent += OnMinuteEvent;
            if (onStateUpdate != null)
            {
                onStateUpdate(activityID);
            }
        }
    }
 
    void OnMinuteEvent()
    {
        OperationBase operationBase = null;
        if (OperationTimeHepler.Instance.TryGetOperationTime(operationType, out operationBase))
        {
            OperationQCSY operation = operationBase as OperationQCSY;
            if (operation.IsInAction())
            { 
                UpdateRedpoint();
            }
        }
    }
 
 
    #region 红点
    public Redpoint redpoint = new Redpoint(MainRedPoint.hfhdRedPoint, MainRedPoint.hfhdRedPoint * 100 + activityID);
    public void UpdateRedpoint()
    {
        redpoint.state = RedPointState.None;
        if (!IsOpen())
        {
            return;
        }
        redpoint.state = RedPointState.Simple;
    }
    #endregion
}