Files
match3-unity/Assets/Scripts/Services/Interfaces/IBombService.cs
2025-12-17 06:34:57 +08:00

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);
}
}