Что я сдал
This commit is contained in:
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();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user