| | |
| | | bool serverInited = false;
|
| | |
|
| | | public List<int> systemDisplayRedpacks = new List<int>();
|
| | | public List<FestivalRedpackAchievement> displayAchievements = new List<FestivalRedpackAchievement>();
|
| | | public List<int> taskDisplayRedpacks = new List<int>();
|
| | |
|
| | | int m_SelectType;
|
| | | public int selectType
|
| | |
| | |
|
| | | public int jumpType { get; set; }
|
| | |
|
| | | public bool autoOpen { get; set; }
|
| | |
|
| | |
|
| | | public bool IsOpen
|
| | | {
|
| | | get
|
| | |
| | |
|
| | | public int grabTotalJade { get; private set; }
|
| | |
|
| | | public float redpackVoiceInterval { get; private set; }
|
| | |
|
| | | DateTime voicePlayTime = DateTime.Now;
|
| | |
|
| | | public const int FESTIVALTASKREDPACKTYPE = 33;
|
| | | public const int FESTIVALSYSTEMREDPACK1 = 31;
|
| | | public const int FESTIVALSYSTEMREDPACK2 = 32;
|
| | |
| | | public event Action selectTypeRefresh;
|
| | | public event Action selectDateIndexRefresh;
|
| | | public event Action<int> achievementRefresh;
|
| | | public event Action taskRedpackRefresh;
|
| | |
|
| | | RedEnvelopeModel envelopeModel { get { return ModelCenter.Instance.GetModel<RedEnvelopeModel>(); } }
|
| | | AchievementModel achievementModel { get { return ModelCenter.Instance.GetModel<AchievementModel>(); } }
|
| | |
| | | OperationTimeHepler.Instance.dayResetEvent += DayResetEvent;
|
| | | envelopeModel.EnvelopeUpdateEvent += EnvelopeUpdateEvent;
|
| | | envelopeModel.EnvelopeDelEvent += EnvelopeDelEvent;
|
| | | envelopeModel.EnvelopeGetEvent += EnvelopeGetEvent;
|
| | | achievementModel.achievementCompletedEvent += AchievementCompletedEvent;
|
| | | achievementModel.achievementProgressUpdateEvent += AchievementProgressUpdateEvent;
|
| | | ParseConfig();
|
| | |
| | | OperationTimeHepler.Instance.dayResetEvent -= DayResetEvent;
|
| | | envelopeModel.EnvelopeUpdateEvent -= EnvelopeUpdateEvent;
|
| | | envelopeModel.EnvelopeDelEvent -= EnvelopeDelEvent;
|
| | | envelopeModel.EnvelopeGetEvent -= EnvelopeGetEvent;
|
| | | achievementModel.achievementCompletedEvent -= AchievementCompletedEvent;
|
| | | achievementModel.achievementProgressUpdateEvent -= AchievementProgressUpdateEvent;
|
| | | }
|
| | |
| | | });
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | {
|
| | | var config = Config.Instance.Get<FuncConfigConfig>("FeastRedPacket");
|
| | | grabRedpackLimitTimes = int.Parse(config.Numerical1);
|
| | |
|
| | | config = Config.Instance.Get<FuncConfigConfig>("RedEnvelopeVoiceCd");
|
| | | redpackVoiceInterval = float.Parse(config.Numerical1) / 1000;
|
| | | }
|
| | | }
|
| | |
|
| | |
| | | return festivalRedpacks.TryGetValue(id, out redpack);
|
| | | }
|
| | |
|
| | | public bool TryGetAchievements(out List<FestivalRedpackAchievement> list)
|
| | | public bool TryGetAchievements(int index, out List<FestivalRedpackAchievement> list)
|
| | | {
|
| | | return achievements.TryGetValue(festivalDay + 1, out list);
|
| | | }
|
| | |
| | | }
|
| | | }
|
| | | return lhs.id.CompareTo(rhs.id);
|
| | | }
|
| | |
|
| | | public int CompareEnvelope(int x, int y)
|
| | | {
|
| | | RedEnvelopeModel.RedEnvelope xEnvelope;
|
| | | RedEnvelopeModel.RedEnvelope yEnvelope;
|
| | | if (envelopeModel.TryGetEnvelope(x, out xEnvelope)
|
| | | && envelopeModel.TryGetEnvelope(y, out yEnvelope))
|
| | | {
|
| | | if (xEnvelope.state.CompareTo(yEnvelope.state) != 0)
|
| | | {
|
| | | return xEnvelope.state.CompareTo(yEnvelope.state);
|
| | | }
|
| | | return -xEnvelope.time.CompareTo(yEnvelope.time);
|
| | | }
|
| | | return -x.CompareTo(y);
|
| | | }
|
| | |
|
| | | public void OnReceivePackage(HAB25_tagMCFeastRedPackInfo package)
|
| | |
| | |
|
| | | private void EnvelopeUpdateEvent()
|
| | | {
|
| | | bool rewardable = receiveRedpoint.state == RedPointState.GetReward;
|
| | |
|
| | | UpdateRedpoint();
|
| | | if (taskRedpackRefresh != null)
|
| | | {
|
| | | taskRedpackRefresh();
|
| | | }
|
| | |
|
| | | if (!rewardable && receiveRedpoint.state == RedPointState.GetReward
|
| | | && serverInited && !ExistSelfTaskRedpack())
|
| | | {
|
| | | PlayRedpackVoice();
|
| | | }
|
| | | }
|
| | |
|
| | | public bool ExistSelfTaskRedpack()
|
| | | {
|
| | | List<int> list;
|
| | | if (envelopeModel.TryGetEnvelopes(FESTIVALTASKREDPACKTYPE, out list))
|
| | | {
|
| | | foreach (var id in list)
|
| | | {
|
| | | RedEnvelopeModel.RedEnvelope envelope;
|
| | | if (envelopeModel.TryGetEnvelope(id, out envelope))
|
| | | {
|
| | | if (envelope.player == PlayerDatas.Instance.PlayerId
|
| | | && envelope.state == 1)
|
| | | {
|
| | | return true;
|
| | | }
|
| | | }
|
| | | }
|
| | | }
|
| | | return false;
|
| | | }
|
| | |
|
| | | public void JudgePlayRedpackVoice(int type)
|
| | | {
|
| | | if (type == FESTIVALSYSTEMREDPACK1
|
| | | || type == FESTIVALSYSTEMREDPACK2)
|
| | | {
|
| | | PlayRedpackVoice();
|
| | | }
|
| | | }
|
| | |
|
| | | void PlayRedpackVoice()
|
| | | {
|
| | | if ((DateTime.Now - voicePlayTime).TotalSeconds < redpackVoiceInterval)
|
| | | {
|
| | | return;
|
| | | }
|
| | | SoundPlayer.Instance.PlayUIAudio(632);
|
| | | voicePlayTime = DateTime.Now;
|
| | | }
|
| | |
|
| | | private void EnvelopeDelEvent()
|
| | | {
|
| | | UpdateRedpoint();
|
| | | }
|
| | |
|
| | | private void EnvelopeGetEvent(int id)
|
| | | {
|
| | |
|
| | | if (taskRedpackRefresh != null)
|
| | | {
|
| | | taskRedpackRefresh();
|
| | | }
|
| | | }
|
| | |
|
| | | private void AchievementCompletedEvent(int _achieve)
|
| | | {
|
| | | List<FestivalRedpackAchievement> list;
|
| | | if (TryGetAchievements(out list) && IsContainsAchievement(list, _achieve))
|
| | | if (TryGetAchievements(festivalDay + 1, out list) && IsContainsAchievement(list, _achieve))
|
| | | {
|
| | | if (achievementRefresh != null)
|
| | | {
|
| | |
| | | private void AchievementProgressUpdateEvent(int _achieve)
|
| | | {
|
| | | List<FestivalRedpackAchievement> list;
|
| | | if (TryGetAchievements(out list) && IsContainsAchievement(list, _achieve))
|
| | | if (TryGetAchievements(festivalDay + 1, out list) && IsContainsAchievement(list, _achieve))
|
| | | {
|
| | | if (achievementRefresh != null)
|
| | | {
|
| | |
| | | }
|
| | |
|
| | | List<FestivalRedpackAchievement> list;
|
| | | if (TryGetAchievements(out list))
|
| | | if (TryGetAchievements(festivalDay + 1, out list))
|
| | | {
|
| | | foreach (var festivalRedpackAchievement in list)
|
| | | {
|
| | |
| | | }
|
| | | }
|
| | | }
|
| | | systemRedpoint.state = existSystemRedpack ? RedPointState.Simple : RedPointState.None;
|
| | | systemRedpoint.state = existSystemRedpack ? RedPointState.GetReward : RedPointState.None;
|
| | | taskRedpoint.state = existFinishTask ? RedPointState.Simple : RedPointState.None;
|
| | | receiveRedpoint.state = existUnGetRedpack ? RedPointState.Simple : RedPointState.None;
|
| | | receiveRedpoint.state = existUnGetRedpack ? RedPointState.GetReward : RedPointState.None;
|
| | | }
|
| | | }
|
| | |
|