209 lines
5.7 KiB
C#
Raw Normal View History

2025-05-18 01:04:31 +08:00
// ***********************************************************************
// Assembly : Game
// Author : Kimch
// Created : 2021-11-08
// Description :
// Last Modified By :
// Last Modified On :
// ***********************************************************************
// <copyright file= "SevenSignActivity" company="Kunpo"></copyright>
// <summary></summary>
// ***********************************************************************
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
namespace G
{
/// <summary>
/// 七日签到活动
/// </summary>
public class SevenSignActivity : Activity
{
#region Field
ItemSevenSign _item;
private int _activityId = 0;
private int _totalSignDay = 0;
#endregion
#region Property
/// <summary>
///
/// </summary>
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;
}
}
/// <summary>
///
/// </summary>
public bool isFirstSign
{
get { return _activityId == _item.firstActivity; }
}
/// <summary>
///
/// </summary>
public bool senvenSignInToday
{
get { return !TimeProxy.Instance.GetTimeKey(_item.signTime); }
set
{
TimeProxy.Instance.TryTimeKey(_item.signTime);
}
}
/// <summary>
///
/// </summary>
public int senvenSignInCount
{
get { return activityInfo.curValue; }
}
/// <summary>
///
/// </summary>
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<ItemProp>(reward.id);
if (prop.type == 5)
{
KUIWindow.OpenWindow<UI.GetKungfuBox>(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<ItemSevenSign>(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
}
}