Files
SlipItIn/SlipItIn.Server/Services/IGameService.cs
Tim Krampitz 010e844976
All checks were successful
Build / build (push) Successful in 2m19s
Slip- und Beschuldigungslogik überarbeitet
Slips werden jetzt 30 Sekunden vorgehalten und anschließend automatisch abgeschlossen; direkte Spieler-Beschuldigungen, Win-Status, SignalR-Events, MAUI-UI, EF-Mapping/Migrationen sowie Tests wurden an die neue Spiellogik angepasst.
2026-10-04 19:14:16 +02:00

21 lines
966 B
C#

using SlipItIn.Shared.DTOs;
using SlipItIn.Shared.Models;
namespace SlipItIn.Server.Services;
public interface IGameService
{
Task<Game> CreateGameAsync(int hostUserId, string? connectionId = null);
Task<Game> JoinGameAsync(string lobbyCode, int userId, string? connectionId = null);
Task<Game> StartGameAsync(int gameId);
Task<Game> SetPlayerReadyAsync(int gameId, int playerId);
Task<List<PlayerCard>> DealCardsAsync(int gameId);
Task<bool> SubmitSlipAsync(int gameId, int playerId, int cardId);
Task<bool> CompleteSlipAsync(int gameId, int cardId, bool force = false);
Task<SlipChallenge> CreateChallengeAsync(int gameId, int challengingPlayerId, int targetPlayerId);
Task<SlipChallenge> ResolveChallengeAsync(int challengeId, bool approved, int? discardCardId = null);
Task<GameStateDto> GetGameStateAsync(int gameId);
Task<PlayerHandDto> GetPlayerHandAsync(int playerId);
Task<Game> GetGameAsync(int gameId);
}