209 lines
5.7 KiB
C#
209 lines
5.7 KiB
C#
// ***********************************************************************
|
|
// 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
|
|
}
|
|
}
|