ball 项目提交

This commit is contained in:
2026-04-20 12:06:34 +08:00
parent 4331ebba60
commit 99145facbd
6052 changed files with 576445 additions and 0 deletions
+226
View File
@@ -0,0 +1,226 @@
using System;
using System.Collections.Generic;
namespace BallKingdomCrush
{
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 <= DataMgr.Coin.Value)
{
consumeSuccessCount++;
}
else
{
GameHelper.ShowTips("No enough", true);
}
break;
case 102:
if (itemValue <= DataMgr.Ticket.Value)
{
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 <= DataMgr.Coin.Value)
{
DataMgr.Coin.Value -= (int)itemValue;
}
break;
case 102:
if (itemValue <= DataMgr.Ticket.Value)
{
DataMgr.Ticket.Value -= 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,277 @@
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;
}
}
}
}
}
@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: b33f1a409b61479e9b014ab951bbff47
timeCreated: 1692256149
+206
View File
@@ -0,0 +1,206 @@
using DG.Tweening;
using BallKingdomCrush;
using UnityEngine;
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)
{
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.CoinFly
};
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:
DataMgr.IsShowRewardFly101.Value = isShow;
break;
case 102:
DataMgr.IsShowRewardFly102.Value = isShow;
break;
case 111:
DataMgr.IsShowRewardFly111.Value = 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 BallKingdomCrush
{
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 == DataMgr.GameOfCount.Value;
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