developmaunt -> mauster #1
@@ -27,24 +27,22 @@ public class RoomController : ControllerBase
|
|||||||
[HttpGet("{id}")]
|
[HttpGet("{id}")]
|
||||||
public async Task ConnectToRoom(string id)
|
public async Task ConnectToRoom(string id)
|
||||||
{
|
{
|
||||||
if (HttpContext.WebSockets.IsWebSocketRequest)
|
if (!HttpContext.WebSockets.IsWebSocketRequest)
|
||||||
{
|
{
|
||||||
if (_roomManager.RoomExists(id))
|
HttpContext.Response.StatusCode = 400;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!_roomManager.RoomExists(id))
|
||||||
{
|
{
|
||||||
|
HttpContext.Response.StatusCode = 404;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
using var webSocket = await HttpContext.WebSockets.AcceptWebSocketAsync();
|
using var webSocket = await HttpContext.WebSockets.AcceptWebSocketAsync();
|
||||||
var room = _roomManager.GetRoom(id);
|
var room = _roomManager.GetRoom(id);
|
||||||
await room.InstantiateConnection(webSocket);
|
await room.InstantiateConnection(webSocket);
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
HttpContext.Response.StatusCode = 404;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
HttpContext.Response.StatusCode = 400;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
[HttpPost]
|
[HttpPost]
|
||||||
public IActionResult Post()
|
public IActionResult Post()
|
||||||
|
|||||||
15
Mau/Game.cs
15
Mau/Game.cs
@@ -1,5 +1,4 @@
|
|||||||
using System.Net.WebSockets;
|
using System.Text.Json;
|
||||||
using System.Text.Json;
|
|
||||||
using MauMau_Server.Websockets;
|
using MauMau_Server.Websockets;
|
||||||
|
|
||||||
namespace MauMau_Server.Mau;
|
namespace MauMau_Server.Mau;
|
||||||
@@ -25,7 +24,9 @@ public class Game
|
|||||||
Hand = Deck.DrawCards(8)
|
Hand = Deck.DrawCards(8)
|
||||||
};
|
};
|
||||||
Players.Add(player);
|
Players.Add(player);
|
||||||
if (Players.Count == 1) CurrentPlayer = player;
|
if (Players.Count > 1) return;
|
||||||
|
CurrentPlayer = player;
|
||||||
|
CurrentPlayer.State = PlayerState.TURN;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void RemovePlayer(string playerId)
|
public void RemovePlayer(string playerId)
|
||||||
@@ -42,6 +43,10 @@ public class Game
|
|||||||
{
|
{
|
||||||
case "PLAYCARD":
|
case "PLAYCARD":
|
||||||
{
|
{
|
||||||
|
if (player.State != PlayerState.TURN)
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
var card = JsonSerializer.Deserialize<CardDTO>(action.Data).ToCard();
|
var card = JsonSerializer.Deserialize<CardDTO>(action.Data).ToCard();
|
||||||
PlayCard(player, card);
|
PlayCard(player, card);
|
||||||
break;
|
break;
|
||||||
@@ -58,6 +63,10 @@ public class Game
|
|||||||
CurrentPlayer.State = PlayerState.TURN;
|
CurrentPlayer.State = PlayerState.TURN;
|
||||||
break;
|
break;
|
||||||
case "DRAW":
|
case "DRAW":
|
||||||
|
if (player.State != PlayerState.TURN)
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
DrawCard(player);
|
DrawCard(player);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user