fix:1、添加项目

This commit is contained in:
2026-04-22 09:52:55 +08:00
commit 173cfb2dc9
5871 changed files with 600870 additions and 0 deletions
+3
View File
@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 77c9a25febe54dffbb6afade123b3a42
timeCreated: 1692267362
+226
View File
@@ -0,0 +1,226 @@
using System;
using System.Collections.Generic;
namespace FlowerPower
{
public class ConsumeSystem : BaseSystem
{
public ConsumeSystem(bool isAutoInit = true)
{
if (isAutoInit)
{
Init();
}
}
public sealed override void Init()
{
base.Init();
AddListener();
}
private void AddListener()
{
CtrlDispatcher.Instance.AddListener(CtrlMsg.ConsumeResources, OnConsumeResources);
}
private void OnConsumeResources(object obj)
{
ConsumeVal consumeVal = (ConsumeVal)obj;
int consumeSuccessCount = 0;
for (var index = 0; index < consumeVal.ItemId.Count; index++)
{
var item = consumeVal.ItemId[index];
var itemValue = consumeVal.ItemVal[index];
switch (item)
{
case 101:
if (itemValue <= PreferencesMgr.Instance.Currency101)
{
consumeSuccessCount++;
}
else
{
GameHelper.ShowTips("No enough", true);
}
break;
case 102:
if (itemValue <= PreferencesMgr.Instance.Currency102)
{
consumeSuccessCount++;
}
else
{
GameHelper.ShowTips("No enough", true);
}
break;
}
}
if (consumeVal.isConsume)
{
if (consumeSuccessCount == consumeVal.ItemId.Count)
{
for (var index = 0; index < consumeVal.ItemId.Count; index++)
{
var item = consumeVal.ItemId[index];
var itemValue = consumeVal.ItemVal[index];
switch (item)
{
case 101:
if (itemValue <= PreferencesMgr.Instance.Currency101)
{
PreferencesMgr.Instance.Currency101 -= itemValue;
}
break;
case 102:
if (itemValue <= PreferencesMgr.Instance.Currency102)
{
PreferencesMgr.Instance.Currency102 -= itemValue;
}
break;
}
}
consumeVal.onfinish?.Invoke(true);
}
else
{
consumeVal.onfinish?.Invoke(false);
}
}
else
{
consumeVal.onfinish?.Invoke(consumeSuccessCount == consumeVal.ItemId.Count);
}
consumeVal.Release();
}
#region
public static void Consume(int itemId, int itemNum, Action<bool> onCompleted = null, bool isConsume = true)
{
ConsumeVal consumeVal = ConsumeVal.Get(itemId, itemNum, onCompleted);
consumeVal.isConsume = isConsume;
CtrlDispatcher.Instance.Dispatch(CtrlMsg.ConsumeResources, consumeVal);
}
public static void Consume(int itemId, decimal itemNum, Action<bool> onCompleted = null, bool isConsume = true)
{
ConsumeVal consumeVal = ConsumeVal.Get(itemId, itemNum, onCompleted);
consumeVal.isConsume = isConsume;
CtrlDispatcher.Instance.Dispatch(CtrlMsg.ConsumeResources, consumeVal);
}
public static void Consume(int[] itemIds, int[] itemNums, Action<bool> onCompleted = null,
bool isConsume = true)
{
ConsumeVal consumeVal = ConsumeVal.Get();
consumeVal.onfinish = onCompleted;
for (int i = 0; i < itemIds.Length; i++)
{
consumeVal.AddConsume(itemIds[i], itemNums[i]);
}
consumeVal.isConsume = isConsume;
CtrlDispatcher.Instance.Dispatch(CtrlMsg.ConsumeResources, consumeVal);
}
public static void Consume(int[] itemIds, decimal[] itemNums, Action<bool> onCompleted = null,
bool isConsume = true)
{
ConsumeVal consumeVal = ConsumeVal.Get();
consumeVal.onfinish = onCompleted;
for (int i = 0; i < itemIds.Length; i++)
{
consumeVal.AddConsume(itemIds[i], itemNums[i]);
}
consumeVal.isConsume = isConsume;
CtrlDispatcher.Instance.Dispatch(CtrlMsg.ConsumeResources, consumeVal);
}
#endregion
public static void CheckItem(int itemId, int itemNum, Action<bool> onCompleted = null)
{
Consume(itemId, itemNum, onCompleted, false);
}
public static void CheckItem(int itemId, decimal itemNum, Action<bool> onCompleted = null)
{
Consume(itemId, itemNum, onCompleted, false);
}
public static void CheckItem(int[] itemId, int[] itemNum, Action<bool> onCompleted = null)
{
Consume(itemId, itemNum, onCompleted, false);
}
public static void CheckItem(int[] itemId, decimal[] itemNum, Action<bool> onCompleted = null)
{
Consume(itemId, itemNum, onCompleted, false);
}
}
public class ConsumeVal
{
private static ObjectPool<ConsumeVal> _pool = new ObjectPool<ConsumeVal>();
public static ConsumeVal Get()
{
ConsumeVal val = _pool.Get();
return val;
}
public static ConsumeVal Get(int id, decimal sum)
{
return Get(id, sum);
}
public static ConsumeVal Get(int id, decimal sum, Action<bool> finish = null)
{
ConsumeVal val = _pool.Get();
val.AddConsume(id, sum);
val.onfinish = finish;
return val;
}
public void Release()
{
ItemId.Clear();
ItemVal.Clear();
isConsume = true;
onfinish = null;
_pool.Release(this);
}
public ConsumeVal()
{
}
public Action<bool> onfinish;
public List<int> ItemId = new List<int>();
public List<decimal> ItemVal = new List<decimal>();
public bool isConsume = true;
public void AddConsume(int id, decimal sum)
{
ItemId.Add(id);
ItemVal.Add(sum);
}
}
}
@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: fcd01defe47f4c65b155e8edb148d1cc
timeCreated: 1692785015
@@ -0,0 +1,558 @@
using System;
using System.Linq;
using UnityEngine;
namespace FlowerPower
{
public class GameDataSystem : BaseSystem
{
public Action UpdateSecondEvent;
private Action onChangeDollar;
private Action onChangeGiftSwitch;
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(PreferencesMsg.currency101, OnChange101);
PreferencesDispatcher<float>.Instance.AddListener(PreferencesMsg.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(PreferencesMsg.isShowRewardFly101, OnChangeRewardFly101);
PreferencesDispatcher<bool>.Instance.AddListener(PreferencesMsg.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 (PreferencesMgr.Instance.Currency101 == -1)
{
PreferencesMgr.Instance.Currency101 = 0;
}
if (PreferencesMgr.Instance.Currency102 == -1)
{
PreferencesMgr.Instance.Currency102 = 0;
}
if (!GameHelper.IsContinuousSignIn())
{
PreferencesMgr.Instance.SignState.Clear();
PreferencesMgr.Instance.SaveSignState();
}
if (PreferencesMgr.Instance.PlayerName.IsNullOrWhiteSpace())
{
if (ModuleManager.Instance.GetModel(ModelConst.LoginModel) is LoginModel loginModel)
{
PreferencesMgr.Instance.PlayerName = loginModel.invite_code;
}
}
PreferencesMgr.Instance.IsShowRewardFly101 = false;
PreferencesMgr.Instance.IsShowRewardFly102 = false;
CheckMakeupTaskData();
PreferencesMgr.Instance.IsLastH5Tab = true;
CommonHelper.CheckAdTimes();
}
private void OnRefreshMakeupData(object obj)
{
AddMakeupTaskData();
}
private void CheckMakeupTaskData()
{
if (!GameHelper.IsGiftSwitch())
{
return;
}
if (PreferencesMgr.Instance.MakeupTaskHistory.Count == 0)
{
AddMakeupTaskData();
}
else
{
var common = ConfigSystem.GetConfig<CommonModel>();
foreach (var makeuptaskData in PreferencesMgr.Instance.MakeupTaskHistory)
{
if (makeuptaskData.status == MakeupTaskStatus.Inline
&& makeuptaskData.inlineNum > common.inlineMin)
{
var rdVOModel = ConfigSystem.GetConfig<MakeupModel>().dataList
.FirstOrDefault(rd => rd.id == makeuptaskData.tableId);
var days = PlayerPrefs.GetInt($"days_{NetworkKit.userId}_{makeuptaskData.tableId}", 0);
if (days == DateTime.Today.Day)
{
continue;
}
PlayerPrefs.SetInt($"days_{NetworkKit.userId}_{makeuptaskData.tableId}", DateTime.Today.Day);
var loginNum = CommonHelper.RandomRange(common.inlineLoginDown[0],
common.inlineLoginDown[1]);
makeuptaskData.loginSpeedNum += loginNum;
//如果登录减少人数大于配置的阈值,则不能减少排名了
// Debug.Log($"登录累计增加的排名为:{makeuptaskData.loginSpeedNum} 阈值为:{rdVOModel.Login_Limit_times}");
if (makeuptaskData.loginSpeedNum > rdVOModel.Login_Limit_times)
{
makeuptaskData.loginSpeedNum = rdVOModel.Login_Limit_times;
continue;
}
//Debug.Log($"订单为: {makeuptaskData.tableId} 通过登录减少的排名为:{loginNum}");
makeuptaskData.inlineNum -= loginNum;
if (makeuptaskData.inlineNum < common.inlineMin)
{
makeuptaskData.inlineNum = common.inlineMin;
}
}
}
PreferencesMgr.Instance.SaveMakeupTaskHistory();
}
if (SaveData.GetSaveobject().saveingpot_history.Count == 0)
{
// Debug.Log("tianjialishiiiiiiiiiiiiii");
// AddMakeupTaskData();
}
else
{
var common = ConfigSystem.GetConfig<CommonModel>();
foreach (var makeuptaskData in SaveData.GetSaveobject().saveingpot_history)
{
if (makeuptaskData.status == SaveingPotTaskStatus.Inline
&& makeuptaskData.inlineNum > common.inlineMin)
{
var rdVOModel = ConfigSystem.GetConfig<MakeupModel_2>().dataList
.FirstOrDefault(rd => rd.id == makeuptaskData.tableId);
var days = PlayerPrefs.GetInt($"days_{NetworkKit.userId}_{makeuptaskData.tableId}_pot", 0);
if (days == DateTime.Today.Day)
{
continue;
}
PlayerPrefs.SetInt($"days_{NetworkKit.userId}_{makeuptaskData.tableId}_pot", DateTime.Today.Day);
var loginNum = CommonHelper.RandomRange(common.inlineLoginDown[0],
common.inlineLoginDown[1]);
makeuptaskData.loginSpeedNum += loginNum;
//如果登录减少人数大于配置的阈值,则不能减少排名了
// Debug.Log($"登录累计增加的排名为:{makeuptaskData.loginSpeedNum} 阈值为:{rdVOModel.Login_Limit_times}");
if (makeuptaskData.loginSpeedNum > rdVOModel.Login_Limit_times)
{
makeuptaskData.loginSpeedNum = rdVOModel.Login_Limit_times;
continue;
}
//Debug.Log($"订单为: {makeuptaskData.tableId} 通过登录减少的排名为:{loginNum}");
makeuptaskData.inlineNum -= loginNum;
if (makeuptaskData.inlineNum < common.inlineMin)
{
makeuptaskData.inlineNum = common.inlineMin;
}
}
}
}
SaveData.saveDataFunc();
}
private void CheckSpeedUpTaskData(int type = 1)
{
if (!GameHelper.IsGiftSwitch())
{
return;
}
var common = ConfigSystem.GetConfig<CommonModel>();
if (type == 1 && PreferencesMgr.Instance.MakeupTaskHistory.Count > 0)
{
foreach (var makeuptaskData in PreferencesMgr.Instance.MakeupTaskHistory)
{
if (makeuptaskData.status == MakeupTaskStatus.Inline
&& makeuptaskData.inlineNum > common.inlineMin)
{
var rdVOModel = ConfigSystem.GetConfig<MakeupModel>().dataList
.FirstOrDefault(rd => rd.id == makeuptaskData.tableId);
var dowmNum = rdVOModel.AD_Down;
// Debug.Log($"CheckSpeedUpTaskData dowmNum=== {dowmNum} makeuptaskData.WatchVideoSpeedNum ==== {makeuptaskData.WatchVideoSpeedNum}");
makeuptaskData.WatchVideoSpeedNum += dowmNum;
//如果看广告的减少人数大于配置的阈值,则不能减少排名了
if (makeuptaskData.WatchVideoSpeedNum > rdVOModel.AD_Limit_times)
{
makeuptaskData.WatchVideoSpeedNum = rdVOModel.AD_Limit_times;
continue;
}
//Debug.Log($"订单为: {makeuptaskData.tableId} 通过看广告减少的排名为:{dowmNum}");
makeuptaskData.inlineNum -= dowmNum;
//Debug.Log($"订单为: {makeuptaskData.tableId} 减少后的排名:{makeuptaskData.inlineNum}");
if (makeuptaskData.inlineNum < common.inlineMin)
{
makeuptaskData.inlineNum = common.inlineMin;
}
}
}
}
if (type == 2 && SaveData.GetSaveobject().saveingpot_history.Count > 0)
{
foreach (var makeuptaskData in SaveData.GetSaveobject().saveingpot_history)
{
if (makeuptaskData.status == SaveingPotTaskStatus.Inline
&& makeuptaskData.inlineNum > common.inlineMin)
{
var rdVOModel = ConfigSystem.GetConfig<MakeupModel_2>().dataList
.FirstOrDefault(rd => rd.id == makeuptaskData.tableId);
var dowmNum = rdVOModel.AD_Down;
// Debug.Log($"CheckSpeedUpTaskData dowmNum=== {dowmNum} makeuptaskData.WatchVideoSpeedNum ==== {makeuptaskData.WatchVideoSpeedNum}");
makeuptaskData.WatchVideoSpeedNum += dowmNum;
//如果看广告的减少人数大于配置的阈值,则不能减少排名了
if (makeuptaskData.WatchVideoSpeedNum > rdVOModel.AD_Limit_times)
{
makeuptaskData.WatchVideoSpeedNum = rdVOModel.AD_Limit_times;
continue;
}
//Debug.Log($"订单为: {makeuptaskData.tableId} 通过看广告减少的排名为:{dowmNum}");
makeuptaskData.inlineNum -= dowmNum;
//Debug.Log($"订单为: {makeuptaskData.tableId} 减少后的排名:{makeuptaskData.inlineNum}");
if (makeuptaskData.inlineNum < common.inlineMin)
{
makeuptaskData.inlineNum = common.inlineMin;
}
}
}
}
}
public void AddMakeupTaskData()
{
var makeupVOModel = ConfigSystem.GetConfig<MakeupModel>();
if (makeupVOModel == null || makeupVOModel.dataList == null || makeupVOModel.dataList.Count <= 0)
{
return;
}
var lastId = -1;
var isRepeat = PreferencesMgr.Instance.MakeupTaskHistory.Count >= makeupVOModel.dataList.Count;
if (PreferencesMgr.Instance.MakeupTaskHistory.Count > 0)
{
var makeupTaskData = PreferencesMgr.Instance.MakeupTaskHistory.Last();
if (makeupTaskData.status != MakeupTaskStatus.Inline)
{
return;
}
lastId = makeupTaskData.tableId;
}
// if (lastId == makeupVOModel.dataList.Last().id)
// {
// lastId = -1;
// }
foreach (var makeupVo in makeupVOModel.dataList)
{
if (makeupVo.id > lastId)
{
if ((isRepeat && !makeupVo.is_onetime) || !isRepeat)
{
var makeupTaskData = new MakeupTaskData();
makeupTaskData.tableId = makeupVo.id;
makeupTaskData.id = PreferencesMgr.Instance.MakeupTaskHistory.Count + 1;
makeupTaskData.amountStr = $"{GameHelper.Get101Str(makeupVo.item_need)}";
makeupTaskData.amount = makeupVo.item_need;
makeupTaskData.orderID = GameHelper.GetRandomNum(8);
PreferencesMgr.Instance.MakeupTaskHistory.Add(makeupTaskData);
Debug.Log("uuuuuuuuuuuuuuuuuuuu");
makeupTaskData.SetStatus(MakeupTaskStatus.None);
PreferencesMgr.Instance.SaveMakeupTaskHistory();
PreferencesMgr.Instance.MakeupTaskH5Time = 0;
break;
}
}
}
}
private void OnChange101(ChangeValue<decimal> obj)
{
var val = obj.newValue - obj.oldValue;
if (val > 0)
{
PreferencesMgr.Instance.MaxCurrency101 += val;
}
if (!PreferencesMgr.Instance.IsShowRewardFly101)
{
GameDispatcher.Instance.Dispatch(GameMsg.Update101Completed);
}
onChangeDollar?.Invoke();
}
private void OnChange111(ChangeValue<float> obj)
{
if (!PreferencesMgr.Instance.IsShowRewardFly111)
{
GameDispatcher.Instance.Dispatch(GameMsg.Update111Completed);
}
}
private void NewDay(object obj)
{
PreferencesMgr.Instance.IsShowOpenReward = true;
}
private void RefreshADTaskData(object obj = null)
{
}
private void AddIntWatchVideo(object obj = null)
{
if (PreferencesMgr.Instance.MakeupTaskHistory.Count > 0)
{
CheckSpeedUpTaskData();
}
}
private void AddWatchVideo(object obj = null)
{
PreferencesMgr.Instance.VideoWatchCount++;
RankSystemMgr.Instance.addGameExp(addPointType.ads);
GameDispatcher.Instance.Dispatch(GameMsg.RefreshRedDot);
int adNums = AdRdManager.Instance.GetLookRewardADNum();
adNums++;
AdRdManager.Instance.SetLookRewardADNum(adNums);
if (PreferencesMgr.Instance.MakeupTaskHistory.Count > 0)
{
CheckSpeedUpTaskData();
var taskData = PreferencesMgr.Instance.MakeupTaskHistory.Last();
if (taskData.status == MakeupTaskStatus.Task)
{
var makeupVo = ConfigSystem.GetConfig<MakeupModel>().GetData(taskData.tableId);
if (makeupVo != null && taskData.videoCount < makeupVo.ad_need)
{
taskData.videoCount++;
PreferencesMgr.Instance.SaveMakeupTaskHistory();
PlayerPrefs.SetInt("fin_ad_num", 0);
}
else
{
if (PlayerPrefs.GetInt("fin_ad_num", 0) == 0)
{
PlayerPrefs.SetInt("fin_ad_num", 1);
}
}
}
else if (taskData.status == MakeupTaskStatus.Level)
{
var ExpiryUnlock = ConfigSystem.GetConfig<CommonModel>().ExpiryUnlock;
taskData.LvVideoCount++;
if (taskData.LvVideoCount >= ExpiryUnlock)
{
taskData.LvVideoCount = 0;
taskData.ch_time = GameHelper.GetNowTime() + ConfigSystem.GetConfig<CommonModel>().BalanceExpired * 3600;
}
PreferencesMgr.Instance.SaveMakeupTaskHistory();
}
}
if (SaveData.GetSaveobject().saveingpot_history.Count > 0)
{
SaveingPotHelper.TestingClearTime();
CheckSpeedUpTaskData(2);
SaveingPotClass taskData = SaveData.GetSaveobject().saveingpot_history.Last();
Makeup_2 makeupVo = ConfigSystem.GetConfig<MakeupModel_2>().GetData(taskData.tableId);
SaveData.GetSaveobject().saveingpot_ch += makeupVo.ADIncrease;
GameDispatcher.Instance.Dispatch(GameMsg.RefreshSaveingPot);
if (ConfigSystem.GetConfig<CommonModel>().PiggyBankSwitch == 1 && GameHelper.IsGiftSwitch())
{
if ((SaveData.GetSaveobject().saveingpot_ch > taskData.amount) && (!taskData.auto_show) && !UIManager.Instance.IsExistUI(UIConst.H5UI))
{
UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.SaveingPotUI_Open);
taskData.auto_show = true;
}
}
if (taskData.status == SaveingPotTaskStatus.Task)
{
;
if (makeupVo != null && taskData.videoCount < makeupVo.ad_need)
{
taskData.videoCount++;
//NetworkKit.BuriedPoint(BuriedPointEvent.ad_task, BuriedPointEvent.watch_ad_number, 1);
PlayerPrefs.SetInt("fin_ad_num_saveingpot", 0);
}
else
{
if (PlayerPrefs.GetInt("fin_ad_num_saveingpot", 0) == 0)
{
//NetworkKit.BuriedPoint(BuriedPointEvent.ad_task, BuriedPointEvent.finish_ad_number, 1);
PlayerPrefs.SetInt("fin_ad_num_saveingpot", 1);
}
}
}
}
}
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 = PreferencesMgr.Instance.Currency101;
roomTicket += (int)rewardSingleData.GetTotalValue();
PreferencesMgr.Instance.Currency101 = roomTicket;
}
break;
case 102:
{
var dollar = PreferencesMgr.Instance.Currency102;
dollar += rewardSingleData.GetTotalValue();
PreferencesMgr.Instance.Currency102 = dollar;
break;
}
case 111:
{
var dollar = PreferencesMgr.Instance.PlayReawrd111;
dollar += rewardSingleData.GetTotalValue();
PreferencesMgr.Instance.PlayReawrd111 = dollar;
break;
}
}
}
}
}
@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: b33f1a409b61479e9b014ab951bbff47
timeCreated: 1692256149
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: a41a924c96049594e8c2d206b71a4487
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
+207
View File
@@ -0,0 +1,207 @@
using DG.Tweening;
using UnityEngine;
using FlowerPower;
public class RewardSystem : BaseSystem
{
public RewardSystem(bool isAutoInit = true)
{
if (isAutoInit)
{
Init();
}
}
public sealed override void Init()
{
base.Init();
AddListener();
}
private void AddListener()
{
GameDispatcher.Instance.AddListener(GameMsg.GetReward, OnGetReward);
}
private void OnGetReward(object obj)
{
if (!(obj is RewardData rewardData))
{
return;
}
if (IsRewardDialog(rewardData))
{
UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.RewardUI_Open, rewardData);
}
else
{
if (IsRewardNumber(rewardData))
{
rewardData.OnCompleted(true);
GameDispatcher.Instance.Dispatch(GameMsg.ProcessReward, rewardData);
}
else
{
GetReward(rewardData);
}
}
}
public static bool IsRewardFly(RewardData rewardData)
{
return (RewardDisplayType.RewardFly & rewardData.displayType) == RewardDisplayType.RewardFly;
}
public static bool IsRewardValueChange(RewardData rewardData)
{
return (RewardDisplayType.ValueChange & rewardData.displayType) == RewardDisplayType.ValueChange;
}
public static bool IsRewardNumber(RewardData rewardData)
{
return (RewardDisplayType.Number & rewardData.displayType) == RewardDisplayType.Number;
}
public static bool IsRewardDialog(RewardData rewardData)
{
return (RewardDisplayType.Dialog & rewardData.displayType) == RewardDisplayType.Dialog;
}
public static void GetReward(RewardData rewardData)
{
PlayReward(rewardData);
GameDispatcher.Instance.Dispatch(GameMsg.ProcessReward, rewardData);
}
private static Tween _tween;
private static void PlayReward(RewardData rewardData)
{
if (rewardData == null) return;
var completed = 0;
foreach (var rewardSingleData in rewardData.GetRewardDataList())
{
var id = rewardSingleData.id;
var sum = rewardSingleData.value;
if (sum <= 0)
{
continue;
}
var isValueChange = IsRewardValueChange(rewardData);
if (isValueChange)
{
if (rewardSingleData.endPosition == Vector2.zero && id is 101 or 102)
{
// if (!UIManager.Instance.IsExistUI(UIConst.H5UI))
// {
if (_tween is { active: true })
{
_tween?.Kill();
}
GameHelper.OnRiseUI(id);
// }
}
else if (id == 111 || id == 112)
{
if (_tween is { active: true })
{
_tween?.Kill();
}
}
SetRewardValueChangeState(id, true);
}
if (!rewardSingleData.IsCanFly())
{
continue;
}
var isNeedFly = IsRewardFly(rewardData);
var rewardDisplayModel = new RewardDisplayData(rewardSingleData)
{
isSingle = rewardData.isSingle,
isPlayAudio = true,
isNeedFly = isNeedFly,
isNeedValueChange = isValueChange,
audioName = AudioConst.Coinfly04
};
rewardDisplayModel.SetUpdate(changeValue => { OnChangeValue(id, changeValue); });
rewardDisplayModel.SetUpdateComplete(() =>
{
completed++;
if (isValueChange)
{
SetRewardValueChangeState(id, false);
if (id == 101)
{
// if (!UIManager.Instance.IsExistUI(UIConst.H5UI))
// {
_tween = DOVirtual.DelayedCall(0.5f,
() => { GameHelper.OnRiseUIRecover(id, UILayerType.Normal); });
// }
}
}
if (completed >= rewardData.GetRewardFlyCount())
{
rewardData.OnCompleted(true);
}
});
rewardSingleData.InitFlyPosition();
UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.RewardAniUI_Open, rewardDisplayModel);
}
}
private static void SetRewardValueChangeState(int id, bool isShow)
{
switch (id)
{
case 101:
PreferencesMgr.Instance.IsShowRewardFly101 = isShow;
break;
case 102:
PreferencesMgr.Instance.IsShowRewardFly102 = isShow;
break;
case 111:
PreferencesMgr.Instance.IsShowRewardFly111 = isShow;
break;
}
}
private static void OnChangeValue(int id, decimal changeValue)
{
switch (id)
{
case 101:
GameDispatcher.Instance.Dispatch(GameMsg.Update101, changeValue);
break;
case 102:
GameDispatcher.Instance.Dispatch(GameMsg.Update102, changeValue);
break;
case 111:
GameDispatcher.Instance.Dispatch(GameMsg.Update111, changeValue);
break;
}
}
}
@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: b41a4be29284494880840871bb69070a
timeCreated: 1692696618
@@ -0,0 +1,76 @@
namespace FlowerPower
{
public class WindowSystem : BaseSystem
{
public WindowSystem(bool isAutoInit = true)
{
if (isAutoInit)
{
Init();
}
}
TaskSequence startGameSequence = new TaskSequence();
TaskSequence backMainSequence = new TaskSequence();
public sealed override void Init()
{
base.Init();
AddListener();
}
private void AddListener()
{
CtrlDispatcher.Instance.AddOnceListener(CtrlMsg.Game_Start, StartGame);
GameDispatcher.Instance.AddListener(GameMsg.BackMainScene, BackMain);
}
private void StartGame(object obj)
{
startGameSequence.Clear();
if (startGameSequence.Count == 0)
{
End();
}
else
{
startGameSequence.Run();
}
}
private void End()
{
}
private bool haveBackMain = false;
private void BackMain(object obj)
{
if (!true)
{
return;
}
backMainSequence.Clear();
haveBackMain = true;
backMainSequence.Run();
}
private void AddRateUs(TaskSequence backMainSequence)
{
bool isAdd = 5 == PreferencesMgr.Instance.GameOfCount;
backMainSequence.Add(isAdd, (procedure) =>
{
UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.RateUsDialogUI_Open);
UICtrlDispatcher.Instance.AddOnceListener(UICtrlMsg.RateUsDialogUI_Close,
(e) => { procedure.InvokeComplete(); });
});
}
}
}
@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 1b4c0d23d2744f868b80f5ea89b2bddf
timeCreated: 1692848262
+3
View File
@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 9b8a1ab8e5a64e3f88ab5bca879f13d6
timeCreated: 1692267374
@@ -0,0 +1,473 @@
using System;
using System.IO;
using UnityEngine;
using System.Collections.Generic;
using System.Linq;
using Unity.VisualScripting;
namespace FlowerPower
{
public class ConfigSystem : BaseSystem
{
private static Dictionary<Type, object> configData = new Dictionary<Type, object>();
public static List<GameUrls> light_weblist = new List<GameUrls>();
public static List<GameUrls> dark_weblist = new List<GameUrls>();
public static string web_through_str;
public static int requestConfigType = 0;
public ConfigSystem(bool isAutoInit = true)
{
if (isAutoInit)
{
Init();
}
}
public sealed override void Init()
{
base.Init();
AddListener();
}
private void AddListener()
{
NetworkDispatcher.Instance.AddListener(NetworkMsg.GetConfig, OnRequestGetConfig);
}
private void RemoveListener()
{
NetworkDispatcher.Instance.RemoveListener(NetworkMsg.GetConfig, OnRequestGetConfig);
}
private void OnRequestGetConfig(object obj)
{
var reqData = new RespLoginFunnelData
{
type = "loadBegin",
payload = ""
};
NetworkKit.PostFunnelLogin(reqData);
if (obj != null) requestConfigType = (int)obj;
var loginData = GameHelper.GetLoginModel();
var configFileName = "JarvisConfigFile";
var configFileSavePath = $"{GemCrushFileKit.GetSavePath()}/Config/";
var assetHotFixFilePath = $"{configFileSavePath}{configFileName}.txt";
var configFileNameKey = "configFileName";
var CDNConfigFileName = loginData.setting;
string savedCfgName = PlayerPrefs.GetString(configFileNameKey);
bool needDownloadConfigFile = false;
if (!string.IsNullOrEmpty(CDNConfigFileName))
{
//如果本地Player Prefs里没有保存配置文件名
if (string.IsNullOrEmpty(savedCfgName))
{
// Debug.Log("[UNITY] No config file name saved.");
needDownloadConfigFile = true;
}
else
{
Debug.Log($"[UNITY] Saved config name: {savedCfgName}, CDN config name: {CDNConfigFileName}");
//与CDN上的对比名称
if (!savedCfgName.Equals(CDNConfigFileName))
{
needDownloadConfigFile = true;
}
}
}
Debug.Log($"[UNITY] needDownloadConfigFile: {needDownloadConfigFile}");
//默默地拉去新配置
if (needDownloadConfigFile)
{
CrazyAsyKit.StartCoroutine(DownloadKit.GetTextFromUrl($"{NetworkKit.CDNUrl}config/{CDNConfigFileName}",
configFileName, (content) =>
{
if (content == null)
{
Debug.Log("down config error");
loadLocalConfig(assetHotFixFilePath, configFileName, configFileSavePath);
}
else
{
Debug.Log("down config success");
PlayerPrefs.SetString(configFileNameKey, CDNConfigFileName);
ParseConfig(content);
UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.NetLoadingUI_Close);
var reqData = new RespLoginFunnelData
{
type = "loadFinish",
payload = ""
};
NetworkKit.PostFunnelLogin(reqData);
AppDispatcher.Instance.Dispatch(AppMsg.LoginInit);
}
SaveingPotHelper.ResetHistory();
}, configFileSavePath));
}
else
{
loadLocalConfig(assetHotFixFilePath, configFileName, configFileSavePath);
}
}
private void loadLocalConfig(string assetHotFixFilePath, string configFileName, string configFileSavePath)
{
if (File.Exists(assetHotFixFilePath))
{
ParseConfig(File.ReadAllText(assetHotFixFilePath));
UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.NetLoadingUI_Close);
var reqData = new RespLoginFunnelData
{
type = "loadFinish",
payload = ""
};
NetworkKit.PostFunnelLogin(reqData);
AppDispatcher.Instance.Dispatch(AppMsg.LoginInit);
}
else
{
var path = $"{Application.streamingAssetsPath}/Config/{configFileName}.txt";
#if UNITY_IOS
path = "file://" + path;
#endif
// Debug.Log($"[UNITY] Load config from streaming asset: {path}");
CrazyAsyKit.StartCoroutine(DownloadKit.GetTextFromUrl(path, configFileName, content =>
{
ParseConfig(content);
UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.NetLoadingUI_Close);
var reqData = new RespLoginFunnelData
{
type = "loadFinish",
payload = ""
};
NetworkKit.PostFunnelLogin(reqData);
AppDispatcher.Instance.Dispatch(AppMsg.LoginInit);
}, configFileSavePath));
}
}
private void ParseConfig(string json)
{
if (json == null)
{
return;
}
if (!json.StartsWith("{"))
{
json = Base64Kit.Decode(json, NetworkManager.identifier);
}
var dictionary = SerializeUtil.ToObject<Dictionary<string, object>>(json);
ParseGameConfig(dictionary);
CtrlDispatcher.Instance.Dispatch(CtrlMsg.Game_StartBefore);
if (requestConfigType == 0)
{
// Debug.Log("NeedShowOpenAd----0-");
if (GameHelper.NeedShowOpenAd())
{
Debug.Log("NeedShowOpenAd----0-");
GameHelper.ShowOpenAd();
}
else
{
GameDispatcher.Instance.Dispatch(GameMsg.CloseMask);
}
}
var reqData1 = new RespLoginFunnelData
{
type = "loadFinish",
payload = ""
};
NetworkKit.PostFunnelLogin(reqData1);
}
#region
private void ParseGameConfig(IReadOnlyDictionary<string, object> dictionary)
{
if (dictionary.TryGetValue("Common", out var common))
{
var commonModel = SerializeUtil.ToObject<CommonModel>(common.ToString());
configData[typeof(CommonModel)] = commonModel;
}
var GameConfigModel = new GameConfigModel();
foreach (var item in dictionary)
{
if (item.Key.StartsWith("GameBoard"))
{
string[] parts = item.Key.Split('_');
int boardIndex;
if (parts.Length > 1 && int.TryParse(parts[1], out boardIndex))
{
// 成功解析出数字
// Debug.Log($"boardIndex==== {boardIndex}");
}
else
{
boardIndex = 1;
}
if (dictionary.TryGetValue(item.Key, out var gameboard))
{
if (!GameConfigModel.game_conf.ContainsKey(boardIndex))
{
GameConfigModel.game_conf.Add(boardIndex, null);
}
GameConfigModel.game_conf[boardIndex] = SerializeUtil.ToObject<List<GameBoard>>(gameboard.ToString());
}
}
}
configData[typeof(GameConfigModel)] = GameConfigModel;
if (dictionary.TryGetValue("SignDailyReward", out var signDailyReward))
{
var signDailyRewardModel = new SignDailyRewardModel();
signDailyRewardModel.dataList = SerializeUtil.ToObject<List<SignDailyReward>>(signDailyReward.ToString());
configData[typeof(SignDailyRewardModel)] = signDailyRewardModel;
}
if (dictionary.TryGetValue("turntable", out var turntable))
{
var turntableModel = new TurntableModel();
turntableModel.dataList = SerializeUtil.ToObject<List<Turntable>>(turntable.ToString());
configData[typeof(TurntableModel)] = turntableModel;
}
if (dictionary.TryGetValue("rewardNum", out var rewardNum))
{
var rewardNumModel = new RewardNumModel();
rewardNumModel.dataList = SerializeUtil.ToObject<List<RewardNum>>(rewardNum.ToString());
configData[typeof(RewardNumModel)] = rewardNumModel;
}
if (dictionary.TryGetValue("Durationtasks", out var durationtasks))
{
var DurationtasksModel = new DurationtasksModel();
DurationtasksModel.dataList = SerializeUtil.ToObject<List<Durationtasks>>(durationtasks.ToString());
configData[typeof(DurationtasksModel)] = DurationtasksModel;
}
if (dictionary.TryGetValue("PassingTasks", out var passingtask))
{
var PassingTaskModel = new PassingTaskModel();
PassingTaskModel.dataList = SerializeUtil.ToObject<List<PassingTask>>(passingtask.ToString());
configData[typeof(PassingTaskModel)] = PassingTaskModel;
}
if (dictionary.TryGetValue("ADTasks", out var adtask))
{
var ADTaskModel = new ADTaskModel();
ADTaskModel.dataList = SerializeUtil.ToObject<List<ADTask>>(adtask.ToString());
configData[typeof(ADTaskModel)] = ADTaskModel;
}
if (dictionary.TryGetValue("Passportrewards", out var Passportrewards))
{
var PassportrewardsModel = new PassportrewardsModel();
PassportrewardsModel.dataList = SerializeUtil.ToObject<List<Passportrewards>>(Passportrewards.ToString());
configData[typeof(PassportrewardsModel)] = PassportrewardsModel;
}
if (dictionary.TryGetValue("SmallrewardNum", out var SmallrewardNum))
{
var SmallrewardNumModel = new SmallrewardNumModel();
SmallrewardNumModel.dataList = SerializeUtil.ToObject<List<SmallrewardNum>>(SmallrewardNum.ToString());
configData[typeof(SmallrewardNumModel)] = SmallrewardNumModel;
// Debug.Log(SmallrewardNum.ToString());
}
if (dictionary.TryGetValue("LargerewardNum", out var LargerewardNum))
{
var LargerewardNumModel = new LargerewardNumModel();
LargerewardNumModel.dataList = SerializeUtil.ToObject<List<LargerewardNum>>(LargerewardNum.ToString());
configData[typeof(LargerewardNumModel)] = LargerewardNumModel;
// Debug.Log(LargerewardNum.ToString());
}
if (dictionary.TryGetValue("exBrPool", out var exBrPool))
{
var exBrPoolModel = new exBrPoolModel();
exBrPoolModel.dataList = SerializeUtil.ToObject<List<exBrPool>>(exBrPool.ToString());
configData[typeof(exBrPoolModel)] = exBrPoolModel;
ConfigSystem.GetConfig<exBrPoolModel>().config_name_list = ConfigSystem.GetConfig<exBrPoolModel>().dataList[0].user_name.Split(",").ToList();
ConfigSystem.GetConfig<exBrPoolModel>().config_money_list = ConfigSystem.GetConfig<exBrPoolModel>().dataList[0].amount.Split(",").ToList();
}
if (dictionary.TryGetValue("exBrPool_2", out var exBrPool_2))
{
var exBrPoolModel_2 = new exBrPoolModel_2
{ dataList = SerializeUtil.ToObject<List<exBrPool_2>>(exBrPool_2.ToString()) };
configData[typeof(exBrPoolModel_2)] = exBrPoolModel_2;
ConfigSystem.GetConfig<exBrPoolModel_2>().config_name_list = ConfigSystem.GetConfig<exBrPoolModel_2>().dataList[0].user_name.Split(",").ToList();
ConfigSystem.GetConfig<exBrPoolModel_2>().config_money_list = ConfigSystem.GetConfig<exBrPoolModel_2>().dataList[0].amount.Split(",").ToList();
}
if (dictionary.TryGetValue("makeup", out var makeup))
{
var makeupModel = new MakeupModel
{ dataList = SerializeUtil.ToObject<List<Makeup>>(makeup.ToString()) };
configData[typeof(MakeupModel)] = makeupModel;
}
if (dictionary.TryGetValue("makeup_2", out var makeup_2))
{
var makeupModel_2 = new MakeupModel_2
{ dataList = SerializeUtil.ToObject<List<Makeup_2>>(makeup_2.ToString()) };
Debug.Log("---------------" + makeup_2.ToString());
configData[typeof(MakeupModel_2)] = makeupModel_2;
}
if (dictionary.TryGetValue("GameUrls", out var GameUrls))
{
light_weblist.Clear();
dark_weblist.Clear();
web_through_str = "";
List<GameUrls> alllist = new List<GameUrls>();
alllist = SerializeUtil.ToObject<List<GameUrls>>(GameUrls.ToString());
List<int> type_list = new List<int>();
for (int i = 0; i < alllist.Count; i++)
{
if (alllist[i].webType == 2)
{
if (GameHelper.IsGiftSwitch() && (alllist[i].isMagic == 1)) light_weblist.Add(alllist[i]);
else if (!GameHelper.IsGiftSwitch() && (alllist[i].isMagic == 0)) light_weblist.Add(alllist[i]);
}
else
{
dark_weblist.Add(alllist[i]);
if (!type_list.Contains(alllist[i].wvType))
{
web_through_str += alllist[i].wvthrough;
web_through_str += "|";
type_list.Add(alllist[i].wvType);
}
}
}
web_through_str.Remove(web_through_str.Length - 1);
var gameUrlsModel = new GameUrlsModel
{
dataList = light_weblist
};
configData[typeof(GameUrlsModel)] = gameUrlsModel;
}
if (dictionary.TryGetValue("Paidcoins", out var Paidcoins))
{
var PaidcoinsModel = new PaidcoinsModel
{ dataList = SerializeUtil.ToObject<List<Paidcoins>>(Paidcoins.ToString()) };
configData[typeof(PaidcoinsModel)] = PaidcoinsModel;
// Debug.Log(Paidcoins.ToString());
}
if (dictionary.TryGetValue("Paidgift", out var Paidgift))
{
var PaidgiftModel = new PaidgiftModel
{ dataList = SerializeUtil.ToObject<List<Paidgift>>(Paidgift.ToString()) };
configData[typeof(PaidgiftModel)] = PaidgiftModel;
}
if (dictionary.TryGetValue("Multigift", out var Multigift))
{
var MultigiftModel = new MultigiftModel
{ dataList = SerializeUtil.ToObject<List<Multigift>>(Multigift.ToString()) };
configData[typeof(MultigiftModel)] = MultigiftModel;
}
if (dictionary.TryGetValue("FAQRule", out var FAQRule))
{
var FaqModel = new FAQRuleModel
{ dataList = SerializeUtil.ToObject<List<FAQRule>>(FAQRule.ToString()) };
configData[typeof(FAQRuleModel)] = FaqModel;
}
if (dictionary.TryGetValue("FAQRule_1", out var FAQRule_1))
{
var FaqModel = new FAQRuleModel_1
{ dataList = SerializeUtil.ToObject<List<FAQRule>>(FAQRule_1.ToString()) };
configData[typeof(FAQRuleModel_1)] = FaqModel;
}
if (dictionary.TryGetValue("MessageBoard", out var MessageBoard))
{
var messageModel = new MessageBoardModel
{ dataList = SerializeUtil.ToObject<List<MessageBoard>>(MessageBoard.ToString()) };
configData[typeof(MessageBoardModel)] = messageModel;
}
if (dictionary.TryGetValue("MessageBoard_1", out var MessageBoard_1))
{
var messageModel = new MessageBoardModel_1
{ dataList = SerializeUtil.ToObject<List<MessageBoard>>(MessageBoard_1.ToString()) };
configData[typeof(MessageBoardModel_1)] = messageModel;
}
if (dictionary.TryGetValue("RankHourRewards", out var RankHourRewards))
{
var RankHourRewardsModel = new RankHourRewardsModel();
RankHourRewardsModel.dataList = SerializeUtil.ToObject<List<RankRewards>>(RankHourRewards.ToString());
configData[typeof(RankHourRewardsModel)] = RankHourRewardsModel;
}
if (dictionary.TryGetValue("RankDayRewards", out var RankDayRewards))
{
var RankDayRewardsModel = new RankDayRewardsModel();
RankDayRewardsModel.dataList = SerializeUtil.ToObject<List<RankRewards>>(RankDayRewards.ToString());
configData[typeof(RankDayRewardsModel)] = RankDayRewardsModel;
}
if (dictionary.TryGetValue("RankWeekRewards", out var RankWeekRewards))
{
var RankWeekRewardsModel = new RankWeekRewardsModel();
RankWeekRewardsModel.dataList = SerializeUtil.ToObject<List<RankRewards>>(RankWeekRewards.ToString());
configData[typeof(RankWeekRewardsModel)] = RankWeekRewardsModel;
}
if (dictionary.TryGetValue("TurnOffRewards", out var TurnOffRewards))
{
var TurnOffRewardsModel = new TurnOffRewardsModel();
TurnOffRewardsModel.dataList = SerializeUtil.ToObject<List<TurnOffRewards>>(TurnOffRewards.ToString());
configData[typeof(TurnOffRewardsModel)] = TurnOffRewardsModel;
}
if (dictionary.TryGetValue("LevelAttempts", out var LevelAttempts))
{
var LevelAttemptsModel = new LevelAttemptsModel();
LevelAttemptsModel.dataList = SerializeUtil.ToObject<List<LevelAttempts>>(LevelAttempts.ToString());
configData[typeof(LevelAttemptsModel)] = LevelAttemptsModel;
ConfigSystem.GetConfig<LevelAttemptsModel>().config_name_list = ConfigSystem.GetConfig<LevelAttemptsModel>().dataList[0].user_name.Split(",").ToList();
ConfigSystem.GetConfig<LevelAttemptsModel>().config_money_list = ConfigSystem.GetConfig<LevelAttemptsModel>().dataList[0].amount.Split(",").ToList();
}
if (dictionary.TryGetValue("ExchangeDescriptors", out var ExchangeDescriptors))
{
var ExchangeDesModel = new ExchangeDesModel();
ExchangeDesModel.dataList = SerializeUtil.ToObject<List<ExchangeDes>>(ExchangeDescriptors.ToString());
configData[typeof(ExchangeDesModel)] = ExchangeDesModel;
}
if (dictionary.TryGetValue("SplashAD", out var SplashAD))
{
var AppOpenAdModel = new AppOpenAdModel();
AppOpenAdModel.dataList = SerializeUtil.ToObject<List<SplashAD>>(SplashAD.ToString());
configData[typeof(AppOpenAdModel)] = AppOpenAdModel;
}
}
#endregion
public static T GetConfig<T>()
{
return configData.TryGetValue(typeof(T), out var value) ? (T)value : default;
}
public override void Dispose()
{
base.Dispose();
RemoveListener();
}
}
}
@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 3a3bd721f95842948573aea8599cd364
timeCreated: 1692603665
@@ -0,0 +1,168 @@
namespace FlowerPower
{
using System;
using DG.Tweening;
using UnityEngine;
public class LoginSystem : BaseSystem
{
private int loginCount = 0;
public LoginSystem(bool isAutoInit = true)
{
if (isAutoInit)
{
Init();
}
}
public sealed override void Init()
{
base.Init();
InitData();
AddListener();
}
private void InitData()
{
}
private void AddListener()
{
NetworkDispatcher.Instance.AddListener(NetworkMsg.Login, RequestLogin);
}
private void RemoveListener()
{
NetworkDispatcher.Instance.RemoveListener(NetworkMsg.Login, RequestLogin);
}
private TimerTask timerTask = null;
private void RequestLogin(object obj = null)
{
var requestLoginData = new RequestLoginData
{
device_id = SystemInfo.deviceUniqueIdentifier,
pack_name = NetworkManager.identifier,
app_version = Application.version,
//is debug test--------
channel = SuperApplication.Instance.attribution,
sim = NetworkManager.haveSimCard
};
var reqData = new RespLoginFunnelData
{
type = "loginSend",
payload = ""
};
NetworkKit.PostFunnelLogin(reqData);
Debug.Log("haveSimCard-----login-" + requestLoginData.sim );
UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.LoginloadingUI_Open);
NetworkKit.Post<LoginModel>("login", requestLoginData, (isSuccess, loginData) =>
{
if (isSuccess)
{
var loginModel = GameHelper.GetLoginModel();
loginModel.cdn_url = loginData.cdn_url;
loginModel.setting = loginData.setting;
loginModel.play_data = loginData.play_data;
loginModel.token = loginData.token;
loginModel.uid = loginData.uid;
loginModel.country = loginData.country;
loginModel.expires_at = loginData.expires_at;
loginModel.invite_code = loginData.invite_code;
loginModel.invite_url = loginData.invite_url;
loginModel.is_magic = loginData.is_magic;
loginModel.last_login_time = loginData.last_login_time;
loginModel.login_time = loginData.login_time;
loginModel.reg_time = loginData.reg_time;
loginModel.new_player = loginData.new_player;
loginModel.play_data_ver = loginData.play_data_ver;
loginModel.enwp = loginData.enwp;
loginModel.debug_log = loginData.debug_log;
loginModel.preferences = new Preferences();
NetworkKit.CDNUrl = $"{loginData.cdn_url}/";
NetworkKit.userId = loginData.uid;
NetworkKit.SetCacheToken(loginData.token);
DateTimeManager.Instance.SetServerCurrTimestamp(loginData.login_time);
RequestHeart();
Debug.Log("haveSimCard-----is_magic-" + loginModel.is_magic);
if (timerTask == null)
{
// Debug.Log("$ timer task fuzhi---------");
timerTask = TimerHelper.UnscaleGeneral.AddLoopTimer(60, (timer) => { RequestHeart(); });
}
GameDispatcher.Instance.Dispatch(GameMsg.netLoading_close);
NetworkDispatcher.Instance.Dispatch(NetworkMsg.GetPlayData);
var reqData = new RespLoginFunnelData
{
type = "loginRecv",
payload = "success"
};
NetworkKit.PostFunnelLogin(reqData);
}
else
{
// if (!GameHelper.IsConnect())
// {
// loginCount = 0;
// Action _OnFail = () =>
// {
// NetworkDispatcher.Instance.Dispatch(NetworkMsg.Login);
// };
// UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.TipsViewUI_Open, _OnFail);
// return;
// }
var reqData = new RespLoginFunnelData
{
type = "loginRecv",
payload = "fail"
};
NetworkKit.PostFunnelLogin(reqData);
float times = loginCount == 0 ? 0.1f : 5f;
Debug.Log("dddddd");
DOVirtual.DelayedCall(times, () =>
{
Debug.Log("ssssss");
if (loginCount < 5)
{
loginCount++;
RequestLogin();
}
else
{
loginCount = 0;
Action _OnFail = () =>
{
NetworkDispatcher.Instance.Dispatch(NetworkMsg.Login);
};
UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.TipsViewUI_Open, _OnFail);
GameDispatcher.Instance.Dispatch(GameMsg.netLoading_close);
}
});
}
});
}
private void RequestHeart()
{
NetworkKit.PostWithHeader("user/health");
// Debug.Log($"barry 心跳: ---------");
}
public override void Dispose()
{
base.Dispose();
RemoveListener();
}
}
}
@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 0e448e373b1b484b8918ec80a7f28448
timeCreated: 1692267393
@@ -0,0 +1,84 @@
using System.Collections.Generic;
namespace FlowerPower
{
public class PlayDataSystem : BaseSystem
{
public PlayDataSystem(bool isAutoInit = true)
{
if (isAutoInit)
{
Init();
}
}
public sealed override void Init()
{
base.Init();
// do net
AddListener();
}
private void AddListener()
{
NetworkDispatcher.Instance.AddListener(NetworkMsg.GetPlayData, OnRequestPlayData);
NetworkDispatcher.Instance.AddListener(NetworkMsg.SavePlayData, OnRequestSavePlayData);
}
private void RemoveListener()
{
NetworkDispatcher.Instance.RemoveListener(NetworkMsg.GetPlayData, OnRequestPlayData);
NetworkDispatcher.Instance.RemoveListener(NetworkMsg.SavePlayData, OnRequestSavePlayData);
}
private void OnRequestPlayData(object args)
{
NetworkKit.PostWithHeader<Preferences>("user/userData", (isSuccess, obj) =>
{
var loginModel = GameHelper.GetLoginModel();
loginModel.preferences = obj;
PreferencesMgr.Instance.InitPreferences();
NetworkDispatcher.Instance.Dispatch(NetworkMsg.GetConfig);
});
}
private void OnRequestSavePlayData(object obj)
{
if (obj != null)
{
var msg = obj as Dictionary<string, object>;
if (msg == null)
{
return;
}
var version = 1L;
if (msg.TryGetValue("data_ver", out var ver))
{
if (version != default)
{
version = (long)ver;
}
}
var data = SerializeUtil.ToJson<Dictionary<string, object>>(msg);
var requestData = new RequestSavePlayData
{
version = version,
data = data
};
NetworkKit.PostWithHeader("user/updateData", requestData);
}
}
public override void Dispose()
{
base.Dispose();
RemoveListener();
}
}
}
@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 7b2141f8f0f64581b0f291d0ca27ece2
timeCreated: 1692343794