Что я сдал

This commit is contained in:
ThomasCharester committed 2026-05-04 22:36:24 +03:00
1 parent 24b1157026
commit a5665f0101
2838 files changed
+129953 -1304

No files matched your search

@@ -0,0 +1,64 @@
using System.Threading;
using Cysharp.Threading.Tasks;
using UnityEngine;
namespace Code.GameplayServices
{
public class BonusService : MonoBehaviour
{
public static BonusService Instance { get; private set; }
private void Awake()
{
Instance = this;
}
public bool CoinBoost { get; private set; }
public bool Invincibility { get; private set; }
private CancellationTokenSource _coinBoostCancellationTokenSource;
public async UniTaskVoid GiveCoinBoost()
{
if (_coinBoostCancellationTokenSource != null && _coinBoostCancellationTokenSource.Token.CanBeCanceled)
_coinBoostCancellationTokenSource.Cancel();
_coinBoostCancellationTokenSource = new();
try
{
CoinBoost = true;
await UniTask.WaitForSeconds(5f)
.AttachExternalCancellation(_coinBoostCancellationTokenSource.Token);
CoinBoost = false;
}
catch
{
_coinBoostCancellationTokenSource.Dispose();
}
}
private CancellationTokenSource _invincibilityCancellationTokenSource;
public async UniTaskVoid GiveInvincibility()
{
if (_invincibilityCancellationTokenSource != null && _invincibilityCancellationTokenSource.Token.CanBeCanceled)
_invincibilityCancellationTokenSource.Cancel();
_invincibilityCancellationTokenSource = new();
try
{
Invincibility = true;
await UniTask.WaitForSeconds(5f)
.AttachExternalCancellation(_invincibilityCancellationTokenSource.Token);
Invincibility = false;
}
catch
{
_invincibilityCancellationTokenSource.Dispose();
}
}
}
}