26 lines
876 B
C#
26 lines
876 B
C#
// Assets/Scripts/Services/Interfaces/IBombService.cs
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using Cysharp.Threading.Tasks;
|
|
using Enums;
|
|
using Models.Interfaces;
|
|
using Structs;
|
|
using UnityEngine;
|
|
|
|
namespace Services.Interfaces
|
|
{
|
|
public interface IBombService {
|
|
public BombSpawnRequest? PendingBombSpawn { get; }
|
|
|
|
void SetLastSwap(Vector2Int from, Vector2Int to);
|
|
|
|
void DetectBombSpawnFromLastSwap(List<Gem> currentMatches);
|
|
List<Vector2Int> ApplyPendingBombSpawns(Action<Vector2Int, GemType, bool> spawnGem);
|
|
UniTask<List<Vector2Int>> GetInitialBombs(List<Vector2Int> protectedPositions, List<Vector2Int> bombCandidates);
|
|
|
|
UniTask DetonateChainAsync(
|
|
IReadOnlyList<Vector2Int> initialBombs,
|
|
Func<Vector2Int, UniTask> destroyAtAsync,
|
|
IGameBoard gameBoard);
|
|
}
|
|
} |