All the code
This commit is contained in:
@@ -0,0 +1,21 @@
|
||||
using System;
|
||||
|
||||
namespace AspShogiSockets.ServiceModels.Api.Messages
|
||||
{
|
||||
public class GetGuestToken
|
||||
{
|
||||
public string ClientId { get; set; }
|
||||
}
|
||||
|
||||
public class GetGuestTokenResponse
|
||||
{
|
||||
public string ClientId { get; }
|
||||
public Guid OneTimeToken { get; }
|
||||
|
||||
public GetGuestTokenResponse(string clientId, Guid token)
|
||||
{
|
||||
ClientId = clientId;
|
||||
OneTimeToken = token;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
using System;
|
||||
|
||||
namespace Websockets.ServiceModels
|
||||
{
|
||||
public class GetTokenResponse
|
||||
{
|
||||
public Guid OneTimeToken { get; }
|
||||
|
||||
public GetTokenResponse(Guid token)
|
||||
{
|
||||
OneTimeToken = token;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
namespace AspShogiSockets.ServiceModels.Api.Messages
|
||||
{
|
||||
public class PostGameInvitation
|
||||
{
|
||||
public string SessionName { get; set; }
|
||||
}
|
||||
public class PostGameInvitationResponse
|
||||
{
|
||||
public string Code { get; }
|
||||
public PostGameInvitationResponse(string code)
|
||||
{
|
||||
Code = code;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>netcoreapp3.1</TargetFramework>
|
||||
</PropertyGroup>
|
||||
|
||||
</Project>
|
||||
@@ -0,0 +1,9 @@
|
||||
using Websockets.ServiceModels.Types;
|
||||
|
||||
namespace Websockets.ServiceModels.Interfaces
|
||||
{
|
||||
public interface IRequest
|
||||
{
|
||||
ClientAction Action { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
namespace Websockets.ServiceModels.Interfaces
|
||||
{
|
||||
public interface IResponse
|
||||
{
|
||||
string Action { get; }
|
||||
string Error { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
using Websockets.ServiceModels.Interfaces;
|
||||
using Websockets.ServiceModels.Types;
|
||||
|
||||
namespace Websockets.ServiceModels.Messages
|
||||
{
|
||||
public class CreateGameRequest : IRequest
|
||||
{
|
||||
public ClientAction Action { get; set; }
|
||||
public string GameName { get; set; }
|
||||
public bool IsPrivate { get; set; }
|
||||
}
|
||||
|
||||
public class CreateGameResponse : IResponse
|
||||
{
|
||||
public string Action { get; private set; }
|
||||
public string Error { get; set; }
|
||||
public Game Game { get; set; }
|
||||
public string PlayerName { get; set; }
|
||||
|
||||
public CreateGameResponse(ClientAction action)
|
||||
{
|
||||
Action = action.ToString();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
using Websockets.ServiceModels.Interfaces;
|
||||
using Websockets.ServiceModels.Types;
|
||||
|
||||
namespace Websockets.ServiceModels.Messages
|
||||
{
|
||||
public class ErrorResponse : IResponse
|
||||
{
|
||||
public string Action { get; private set; }
|
||||
public string Error { get; set; }
|
||||
|
||||
public ErrorResponse(ClientAction action)
|
||||
{
|
||||
Action = action.ToString();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
using Websockets.ServiceModels.Interfaces;
|
||||
using Websockets.ServiceModels.Types;
|
||||
|
||||
namespace Websockets.ServiceModels.Messages
|
||||
{
|
||||
public class JoinByCode : IRequest
|
||||
{
|
||||
public ClientAction Action { get; set; }
|
||||
public string JoinCode { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
using Websockets.ServiceModels.Interfaces;
|
||||
using Websockets.ServiceModels.Types;
|
||||
|
||||
namespace Websockets.ServiceModels.Messages
|
||||
{
|
||||
public class JoinGameRequest : IRequest
|
||||
{
|
||||
public ClientAction Action { get; set; }
|
||||
public string GameName { get; set; }
|
||||
}
|
||||
|
||||
public class JoinGameResponse : IResponse
|
||||
{
|
||||
public string Action { get; private set; }
|
||||
public string Error { get; set; }
|
||||
public string GameName { get; set; }
|
||||
public string PlayerName { get; set; }
|
||||
|
||||
public JoinGameResponse(ClientAction action)
|
||||
{
|
||||
Action = action.ToString();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
using System.Collections.Generic;
|
||||
|
||||
using Websockets.ServiceModels.Interfaces;
|
||||
using Websockets.ServiceModels.Types;
|
||||
|
||||
namespace Websockets.ServiceModels.Messages
|
||||
{
|
||||
public class ListGamesRequest : IRequest
|
||||
{
|
||||
public ClientAction Action { get; set; }
|
||||
}
|
||||
|
||||
public class ListGamesResponse : IResponse
|
||||
{
|
||||
public string Action { get; private set; }
|
||||
public string Error { get; set; }
|
||||
public IEnumerable<Game> Games { get; set; }
|
||||
|
||||
public ListGamesResponse(ClientAction action)
|
||||
{
|
||||
Action = action.ToString();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
using System.Collections.Generic;
|
||||
using Websockets.ServiceModels.Interfaces;
|
||||
using Websockets.ServiceModels.Types;
|
||||
|
||||
namespace Websockets.ServiceModels.Messages
|
||||
{
|
||||
public class LoadGameRequest : IRequest
|
||||
{
|
||||
public ClientAction Action { get; set; }
|
||||
public string GameName { get; set; }
|
||||
}
|
||||
|
||||
public class LoadGameResponse : IResponse
|
||||
{
|
||||
public string Action { get; private set; }
|
||||
public Game Game { get; set; }
|
||||
public IEnumerable<Move> Moves { get; set; }
|
||||
public string Error { get; set; }
|
||||
|
||||
public LoadGameResponse(ClientAction action)
|
||||
{
|
||||
Action = action.ToString();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
using Websockets.ServiceModels.Interfaces;
|
||||
using Websockets.ServiceModels.Types;
|
||||
|
||||
namespace Websockets.ServiceModels.Messages
|
||||
{
|
||||
public class MoveRequest : IRequest
|
||||
{
|
||||
public ClientAction Action { get; set; }
|
||||
public string GameName { get; set; }
|
||||
public Move Move { get; set; }
|
||||
}
|
||||
|
||||
public class MoveResponse : IResponse
|
||||
{
|
||||
public string Action { get; }
|
||||
public string Error { get; set; }
|
||||
public string GameName { get; set; }
|
||||
public Move Move { get; set; }
|
||||
public string PlayerName { get; set; }
|
||||
|
||||
public MoveResponse(ClientAction action)
|
||||
{
|
||||
Action = action.ToString();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
namespace Websockets.ServiceModels.Types
|
||||
{
|
||||
public enum ClientAction
|
||||
{
|
||||
ListGames,
|
||||
CreateGame,
|
||||
JoinGame,
|
||||
JoinByCode,
|
||||
LoadGame,
|
||||
Move,
|
||||
KeepAlive
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
namespace Websockets.ServiceModels.Types
|
||||
{
|
||||
public class Coords
|
||||
{
|
||||
public int X { get; set; }
|
||||
public int Y { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
namespace Websockets.ServiceModels.Types
|
||||
{
|
||||
public class Game
|
||||
{
|
||||
public string GameName { get; set; }
|
||||
public string[] Players { get; set; }
|
||||
}
|
||||
}
|
||||
33
Gameboard.ShogiUI.Sockets.ServiceModels/Socket/Types/Move.cs
Normal file
33
Gameboard.ShogiUI.Sockets.ServiceModels/Socket/Types/Move.cs
Normal file
@@ -0,0 +1,33 @@
|
||||
namespace Websockets.ServiceModels.Types
|
||||
{
|
||||
public class Move
|
||||
{
|
||||
public string PieceFromCaptured { get; set; }
|
||||
public Coords From { get; set; }
|
||||
public Coords To { get; set; }
|
||||
public bool IsPromotion { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Toggles perspective of this move. (ie from player 1 to player 2)
|
||||
/// </summary>
|
||||
public static Move ConvertPerspective(Move m)
|
||||
{
|
||||
var convertedMove = new Move
|
||||
{
|
||||
To = new Coords
|
||||
{
|
||||
X = 8 - m.To.X,
|
||||
Y = 8 - m.To.Y
|
||||
},
|
||||
From = new Coords
|
||||
{
|
||||
X = 8 - m.From.X,
|
||||
Y = 8 - m.From.Y
|
||||
},
|
||||
IsPromotion = m.IsPromotion,
|
||||
PieceFromCaptured = m.PieceFromCaptured
|
||||
};
|
||||
return convertedMove;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user