少年修仙传客户端代码仓库
client_Wu Xijin
2018-09-18 bbd7bbe9ed3a1eae6cd9ca45ca149cc7f882daa2
System/OpenServerActivity/OSRedEnvelopeModel.cs
@@ -5,7 +5,7 @@
using TableConfig;
namespace Snxxz.UI
{
    public class OSRedEnvelopeModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk
    public class OSRedEnvelopeModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk, IOpenServerActivity
    {
        AchievementModel m_AchievementModel;
        AchievementModel achieveModel
@@ -37,6 +37,7 @@
            envelopeModel.EnvelopeUpdateEvent += EnvelopeUpdateEvent;
            envelopeModel.EnvelopeDelEvent += EnvelopeUpdateEvent;
            envelopeModel.EnvelopeGetEvent += EnvelopeGetEvent;
            OpenServerActivityCenter.Instance.Register(2, this);
        }
        public override void UnInit()
@@ -62,6 +63,10 @@
                if (OSRedEnvelopeUpdateEvent != null)
                {
                    OSRedEnvelopeUpdateEvent();
                }
                if (onStateUpate != null)
                {
                    onStateUpate(2);
                }
            }
        }
@@ -98,15 +103,12 @@
        public List<int> m_AllFuncs { get; private set; }
        public int openDays { get; private set; }
        public int OSRedEnvelopeType { get; private set; }
        public int initialCount { get; private set; }
        public int addSeconds { get; private set; }
        public int limitCount { get; private set; }
        public float envelopeVoiceCD { get; private set; }
        public int addCounts { get; private set; }
        public DateTime overTime = DateTime.Now;
        public DateTime coolDownTime { get; private set; }
        void ParseConfig()
        {
            var _allCfgs = ConfigManager.Instance.GetAllValues<OSRedAchieveConfig>();
            var _allCfgs = Config.Instance.GetAllValues<OSRedAchieveConfig>();
            m_OSRedAchieveDict = new Dictionary<int, OSRedAchieve>();
            m_OSRedAchieves = new List<int>();
            m_AllFuncs = new List<int>();
@@ -128,14 +130,12 @@
                }
            }
            var _cfg = ConfigManager.Instance.GetTemplate<FuncConfigConfig>("OpenServerRedPacketCfg");
            var _cfg = Config.Instance.Get<FuncConfigConfig>("OpenServerRedPacketCfg");
            openDays = int.Parse(_cfg.Numerical1);
            initialCount = int.Parse(_cfg.Numerical2);
            addSeconds = Mathf.Max(60, int.Parse(_cfg.Numerical3));
            limitCount = int.Parse(_cfg.Numerical4);
            _cfg = ConfigManager.Instance.GetTemplate<FuncConfigConfig>("OpenServerRedPacketType");
            addCounts = int.Parse(_cfg.Numerical5);
            _cfg = Config.Instance.Get<FuncConfigConfig>("OpenServerRedPacketType");
            OSRedEnvelopeType = int.Parse(_cfg.Numerical1);
            _cfg = ConfigManager.Instance.GetTemplate<FuncConfigConfig>("RedEnvelopeVoiceCd");
            _cfg = Config.Instance.Get<FuncConfigConfig>("RedEnvelopeVoiceCd");
            envelopeVoiceCD = float.Parse(_cfg.Numerical1) / 1000;
        }
@@ -203,7 +203,7 @@
            }
            foreach (var _achieve in m_OSRedAchieveDict.Values)
            {
                var _cfg = ConfigManager.Instance.GetTemplate<OSRedAchieveConfig>(_achieve.id);
                var _cfg = Config.Instance.Get<OSRedAchieveConfig>(_achieve.id);
                if (_cfg.func != 0 && FuncOpen.Instance.IsFuncOpen(_cfg.func))
                {
                    continue;
@@ -223,11 +223,11 @@
        public void UpdateRedpackRedpoint(bool _checkVoice = false)
        {
            bool hasRed = m_OpenServerGetRedpin.state == RedPointState.Simple;
            bool hasRed = m_OpenServerGetRedpin.state == RedPointState.GetReward;
            m_OpenServerGetRedpin.state = RedPointState.None;
            if (CanGetEnvelope())
            {
                m_OpenServerGetRedpin.state = RedPointState.Simple;
                m_OpenServerGetRedpin.state = RedPointState.GetReward;
                if (_checkVoice && !hasRed && servereInited && HasOtherRedpack() && !HasSelfRedpack())
                {
                    CheckRedEnvelopeVoice();
@@ -407,12 +407,38 @@
        public int totalJadeGet { get; private set; }
        public int getEnvelopeTimes { get; private set; }
        public bool IsOpen
        {
            get
            {
                return TimeUtility.OpenDay < openDays && FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.OpenServerRedEnvelope);
            }
        }
        public bool priorityOpen
        {
            get
            {
                return m_RedAchieveRedpoint.state == RedPointState.Simple
                    || m_OpenServerGetRedpin.state == RedPointState.GetReward;
            }
        }
        public bool IsAdvance
        {
            get
            {
                return false;
            }
        }
        public event Action OSRedEnvelopeInfoEnvent;
        public event Action<int> onStateUpate;
        public void UpdateOSRedEnvelope(HAB24_tagMCOpenServerRedPacketInfo _pak)
        {
            totalJadeGet = (int)_pak.MoneyNum;
            getEnvelopeTimes = _pak.GrabCnt;
            coolDownTime = TimeUtility.GetTime(_pak.StartTime);
            if (OSRedEnvelopeInfoEnvent != null)
            {
                OSRedEnvelopeInfoEnvent();