// *********************************************************************** // Assembly : Game // Author : Kimch // Created : 2021-11-08 // Description : // Last Modified By : // Last Modified On : // *********************************************************************** // // // *********************************************************************** using System.Collections; using System.Collections.Generic; using UnityEngine; namespace G { /// /// 七日签到活动 /// public class SevenSignActivity : Activity { #region Field ItemSevenSign _item; private int _activityId = 0; private int _totalSignDay = 0; #endregion #region Property /// /// /// public ActivityInfo activityInfo { get { var result = ActivityProxy.Instance.GetActivity(_activityId); if (!senvenSignInToday && result.curValue >= result.maxValue) { _activityId = _item.loopActivity[0]; ActivityProxy.Instance.ResetActivity(_activityId); Save(); result = ActivityProxy.Instance.GetActivity(_activityId); } return result; } } /// /// /// public bool isFirstSign { get { return _activityId == _item.firstActivity; } } /// /// /// public bool senvenSignInToday { get { return !TimeProxy.Instance.GetTimeKey(_item.signTime); } set { TimeProxy.Instance.TryTimeKey(_item.signTime); } } /// /// /// public int senvenSignInCount { get { return activityInfo.curValue; } } /// /// /// public bool isValid { get { return true; } } #endregion #region Method public SevenSignActivity() { } public void SenvenSignin(bool doubleAward, Callback2 callback) { if (senvenSignInToday) { GlobalNotifier.PostNotification(GlobalDefine.EVENT_SHOW_TOAST, "今日已签到"); callback?.Invoke(1, "今日已签到"); return; } senvenSignInToday = true; var signActivity = this.activityInfo; int signDay = signActivity.curValue + 1; signActivity.curValue = signDay; var subInfos = signActivity.subInfos; if (signDay <= subInfos.Length) { var subInfo = subInfos[signDay - 1]; subInfo.status = 2; var reward = subInfo.rewardInfos[0]; if (doubleAward) { reward.Apply(3); } if (reward.id > 0) { var prop = ItemProxy.Instance.GetStaticItem(reward.id); if (prop.type == 5) { KUIWindow.OpenWindow(prop); GlobalNotifier.PostNotification(GlobalDefine.EVENT_SENVEN_SIGNIN); } else { RewardProxy.Instance.GetRewardWithUI(reward, (error, message) => { GlobalNotifier.PostNotification(GlobalDefine.EVENT_MONEY_CHANGED); GlobalNotifier.PostNotification(GlobalDefine.EVENT_SENVEN_SIGNIN); }); } } } if (signDay >= subInfos.Length) { signActivity.status = 1; } _totalSignDay += 1; Save(); ActivityProxy.Instance.SaveActivity(signActivity); MissionProxy.Instance.OnEvent2(MissionProxy.每日签到次数, _totalSignDay); callback?.Invoke(ErrorCode.SUCCESS, ErrorMessage.SUCCESS); } public int GetRedPoint() { return (activityInfo.status != 0 || senvenSignInToday) ? 0 : 1; } public void Reset() { } public void Init() { _item = ItemProxy.Instance.GetStaticItem(1); _activityId = _item.firstActivity; } const string ARCHIVE_KEY_V1 = "at_seven_sign_v1"; public void Load() { var dataList = ArchiveProxy.Instance.GetIntList(ARCHIVE_KEY_V1); if (dataList != null && dataList.Count > 0) { _activityId = dataList[0]; _totalSignDay = dataList[1]; } else { var result = ActivityProxy.Instance.GetActivity(_item.firstActivity); _totalSignDay = result.curValue; MissionProxy.Instance.OnEvent2(MissionProxy.每日签到次数, _totalSignDay); } } void Save() { var dataList = ArchiveProxy.Instance.GetIntList(ARCHIVE_KEY_V1); if (dataList != null) { dataList.Clear(); dataList.Add(_activityId); dataList.Add(_totalSignDay); ArchiveProxy.Instance.SetIntList(ARCHIVE_KEY_V1, dataList); } } #endregion } }