277 lines
7.5 KiB
C#
277 lines
7.5 KiB
C#
using System;
|
|
using System.Linq;
|
|
using IgnoreOPS;
|
|
using SGModule.NetKit;
|
|
using UnityEngine;
|
|
|
|
namespace BallKingdomCrush
|
|
{
|
|
public class GameDataSystem : BaseSystem
|
|
{
|
|
public Action UpdateSecondEvent;
|
|
|
|
private Action onChangeDollar;
|
|
|
|
private Action onChangeGiftSwitch;
|
|
|
|
private long _uid;
|
|
|
|
public GameDataSystem(bool isAutoInit = true)
|
|
{
|
|
if (isAutoInit)
|
|
{
|
|
Init();
|
|
}
|
|
}
|
|
|
|
public sealed override void Init()
|
|
{
|
|
base.Init();
|
|
AddListener();
|
|
}
|
|
|
|
private void AddListener()
|
|
{
|
|
CtrlDispatcher.Instance.AddListener(CtrlMsg.Game_StartBefore, InitPreferences);
|
|
PreferencesDispatcher<decimal>.Instance.AddListener(DataMsg.currency101, OnChange101);
|
|
PreferencesDispatcher<float>.Instance.AddListener(DataMsg.playReawrd111, OnChange111);
|
|
CtrlDispatcher.Instance.AddListener(CtrlMsg.GameNewDays, NewDay);
|
|
CtrlDispatcher.Instance.AddListener(CtrlMsg.Module_GiftSwitchChange, OnChangeGiftSwitch);
|
|
GameDispatcher.Instance.AddListener(GameMsg.RefreshADTask, RefreshADTaskData);
|
|
CtrlDispatcher.Instance.AddListener(CtrlMsg.WatchVideoFinish, AddWatchVideo);
|
|
CtrlDispatcher.Instance.AddListener(CtrlMsg.WatchIntVideoFinish, AddIntWatchVideo);
|
|
|
|
PreferencesDispatcher<bool>.Instance.AddListener(DataMsg.isShowRewardFly101, OnChangeRewardFly101);
|
|
PreferencesDispatcher<bool>.Instance.AddListener(DataMsg.isShowRewardFly111, OnChangeRewardFly111);
|
|
GameDispatcher.Instance.AddListener(GameMsg.ProcessReward, OnGetReward);
|
|
GameDispatcher.Instance.AddListener(GameMsg.RefreshMakeupData, OnRefreshMakeupData);
|
|
|
|
}
|
|
|
|
private void OnChangeGiftSwitch(object obj)
|
|
{
|
|
onChangeGiftSwitch?.Invoke();
|
|
}
|
|
|
|
|
|
private void InitPreferences(object obj)
|
|
{
|
|
if (DataMgr.Coin.Value == -1)
|
|
{
|
|
DataMgr.Coin.Value = 0;
|
|
}
|
|
|
|
if (DataMgr.Ticket.Value == -1)
|
|
{
|
|
DataMgr.Ticket.Value = 0;
|
|
}
|
|
|
|
if (!GameHelper.IsContinuousSignIn())
|
|
{
|
|
DataMgr.SignState.Value.Clear();
|
|
}
|
|
|
|
if (DataMgr.PlayerName.Value.IsNullOrWhiteSpace())
|
|
{
|
|
if (GameHelper.GetLoginModel() != null)
|
|
{
|
|
DataMgr.PlayerName.Value = GameHelper.GetLoginModel().InviteCode;
|
|
}
|
|
}
|
|
|
|
DataMgr.IsShowRewardFly101.Value = false;
|
|
DataMgr.IsShowRewardFly102.Value = false;
|
|
|
|
|
|
CheckMakeupTaskData();
|
|
|
|
|
|
DataMgr.IsLastH5Tab.Value = true;
|
|
|
|
|
|
CommonHelper.CheckAdTimes();
|
|
|
|
|
|
_uid = LoginKit.Instance.LoginModel.Uid;
|
|
}
|
|
|
|
|
|
private void OnRefreshMakeupData(object obj)
|
|
{
|
|
AddMakeupTaskData();
|
|
}
|
|
|
|
|
|
private void CheckMakeupTaskData()
|
|
{
|
|
|
|
SaveData.SaveDataFunc();
|
|
}
|
|
|
|
private void CheckSpeedUpTaskData(int type = 1)
|
|
{
|
|
if (!GameHelper.IsGiftSwitch())
|
|
{
|
|
return;
|
|
}
|
|
|
|
|
|
}
|
|
public void AddMakeupTaskData()
|
|
{
|
|
|
|
}
|
|
|
|
private void OnChange101(ChangeValue<decimal> obj)
|
|
{
|
|
var val = obj.newValue - obj.oldValue;
|
|
if (val > 0)
|
|
{
|
|
DataMgr.MaxCurrency101.Value += (int)val;
|
|
}
|
|
|
|
if (!DataMgr.IsShowRewardFly101.Value)
|
|
{
|
|
GameDispatcher.Instance.Dispatch(GameMsg.Update101Completed);
|
|
}
|
|
|
|
onChangeDollar?.Invoke();
|
|
}
|
|
|
|
|
|
private void OnChange111(ChangeValue<float> obj)
|
|
{
|
|
if (!DataMgr.IsShowRewardFly111.Value)
|
|
{
|
|
GameDispatcher.Instance.Dispatch(GameMsg.Update111Completed);
|
|
}
|
|
}
|
|
|
|
private void NewDay(object obj)
|
|
{
|
|
DataMgr.IsShowOpenReward.Value = true;
|
|
}
|
|
|
|
private void RefreshADTaskData(object obj = null)
|
|
{
|
|
}
|
|
private void AddIntWatchVideo(object obj = null)
|
|
{
|
|
if (DataMgr.MakeupTaskHistory.Value.Count > 0)
|
|
{
|
|
CheckSpeedUpTaskData();
|
|
}
|
|
}
|
|
private void AddWatchVideo(object obj = null)
|
|
{
|
|
DataMgr.VideoWatchCount.Value++;
|
|
GameDispatcher.Instance.Dispatch(GameMsg.RefreshRedDot);
|
|
|
|
int adNums = AdExchangeManager.Instance.GetLookRewardADNum();
|
|
adNums++;
|
|
AdExchangeManager.Instance.SetLookRewardADNum(adNums);
|
|
|
|
|
|
|
|
}
|
|
|
|
private void OnChangeRewardFly101(ChangeValue<bool> obj)
|
|
{
|
|
var oldValue = obj.oldValue;
|
|
var newValue = obj.newValue;
|
|
|
|
InitChangeRewardFly(101, oldValue, newValue);
|
|
}
|
|
|
|
private void OnChangeRewardFly111(ChangeValue<bool> obj)
|
|
{
|
|
var oldValue = obj.oldValue;
|
|
var newValue = obj.newValue;
|
|
|
|
InitChangeRewardFly(111, oldValue, newValue);
|
|
}
|
|
|
|
private void InitChangeRewardFly(int id, bool oldValue, bool newValue)
|
|
{
|
|
if (oldValue)
|
|
{
|
|
if (newValue)
|
|
{
|
|
}
|
|
else
|
|
{
|
|
switch (id)
|
|
{
|
|
case 101:
|
|
GameDispatcher.Instance.Dispatch(GameMsg.Update101Completed);
|
|
break;
|
|
case 102:
|
|
GameDispatcher.Instance.Dispatch(GameMsg.Update102Completed);
|
|
break;
|
|
case 111:
|
|
GameDispatcher.Instance.Dispatch(GameMsg.Update111Completed);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (newValue)
|
|
{
|
|
}
|
|
else
|
|
{
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
private void OnGetReward(object obj)
|
|
{
|
|
if (obj is RewardData rewardModel)
|
|
{
|
|
foreach (var rewardData in rewardModel.GetRewardDataList())
|
|
{
|
|
ProcessData(rewardData);
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
private void ProcessData(RewardSingleData rewardSingleData)
|
|
{
|
|
if (rewardSingleData.origin == RewardOrigin.None)
|
|
{
|
|
return;
|
|
}
|
|
|
|
switch (rewardSingleData.id)
|
|
{
|
|
case 101:
|
|
{
|
|
var roomTicket = DataMgr.Coin.Value;
|
|
roomTicket += (int)rewardSingleData.GetTotalValue();
|
|
|
|
DataMgr.Coin.Value = roomTicket;
|
|
}
|
|
break;
|
|
case 102:
|
|
{
|
|
var dollar = DataMgr.Ticket.Value;
|
|
dollar += rewardSingleData.GetTotalValue();
|
|
|
|
DataMgr.Ticket.Value = dollar;
|
|
break;
|
|
}
|
|
case 111:
|
|
{
|
|
var dollar = DataMgr.PlayReawrd111.Value;
|
|
dollar += rewardSingleData.GetTotalValue();
|
|
|
|
DataMgr.PlayReawrd111.Value = dollar;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} |