Browse Source

feat: achieve all rpc services

tags/0.1.0
gsy1519 2 years ago
parent
commit
eb4098766c
2 changed files with 37 additions and 22 deletions
  1. +22
    -0
      logic/Server/CopyInfo.cs
  2. +15
    -22
      logic/Server/GameServer.cs

+ 22
- 0
logic/Server/CopyInfo.cs View File

@@ -175,6 +175,17 @@ namespace Server
return Protobuf.StudentType.NullStudentType;
}
}

public static Preparation.Utility.CharacterType ToStudentType(Protobuf.StudentType characterType)
{
switch (characterType)
{
case Protobuf.StudentType.Athlete:
return Preparation.Utility.CharacterType.Athlete;
default:
return Preparation.Utility.CharacterType.Null;
}
}
public static Protobuf.TrickerType ToTrickerType(Preparation.Utility.CharacterType characterType)
{
switch (characterType)
@@ -186,6 +197,17 @@ namespace Server
}
}

public static Preparation.Utility.CharacterType ToTrickerType(Protobuf.TrickerType characterType)
{
switch (characterType)
{
case Protobuf.TrickerType.Assassin:
return Preparation.Utility.CharacterType.Assassin;
default:
return Preparation.Utility.CharacterType.Null;
}
}

public static MessageOfObj? Auto(GameObj gameObj)
{
switch (gameObj.Type)


+ 15
- 22
logic/Server/GameServer.cs View File

@@ -142,7 +142,7 @@ namespace Server
currentNews.Clear();
}
currentGameInfo.GameState = gameState;
currentGameInfo.AllMessage = new(); // 还没写
currentGameInfo.AllMessage = GetMessageOfAll();
mwr?.WriteOne(currentGameInfo);
break;
case GameState.GameStart:
@@ -160,7 +160,7 @@ namespace Server
currentNews.Clear();
}
currentGameInfo.GameState = gameState;
currentGameInfo.AllMessage = new(); // 还没写
currentGameInfo.AllMessage = GetMessageOfAll(); // 还没写
mwr?.WriteOne(currentGameInfo);
break;
default:
@@ -189,6 +189,13 @@ namespace Server
if (playerID == 4) return 1;
return -1;
}

private int PlayerTypeToTeamID(Protobuf.PlayerType playerType)
{
if (playerType == PlayerType.StudentPlayer) return 0;
if (playerType == PlayerType.TrickerPlayer) return 1;
return -1;
}
private uint GetBirthPointIdx(long playerID) // 获取出生点位置
{
return (uint)playerID + 1; // ID从0-4,出生点从1-5
@@ -304,29 +311,15 @@ namespace Server
if (communicationToGameID[request.PlayerId] != GameObj.invalidID) //是否已经添加了该玩家
return;

Preparation.Utility.CharacterType characterType = Preparation.Utility.CharacterType.Null; // 待修改
Preparation.Utility.CharacterType characterType = Preparation.Utility.CharacterType.Null;
if (request.PlayerType == PlayerType.StudentPlayer)
{
switch (request.StudentType)
{
default:
characterType = Preparation.Utility.CharacterType.Athlete;
break;
}
}
characterType = CopyInfo.ToStudentType(request.StudentType);
else if (request.PlayerType == PlayerType.TrickerPlayer)
{
switch (request.TrickerType)
{
default:
characterType = Preparation.Utility.CharacterType.Assassin;
break;
}
}
characterType = CopyInfo.ToTrickerType(request.TrickerType);

lock (addPlayerLock)
{
Game.PlayerInitInfo playerInitInfo = new(GetBirthPointIdx(request.PlayerId), PlayerIDToTeamID(request.PlayerId), request.PlayerId, characterType);
Game.PlayerInitInfo playerInitInfo = new(GetBirthPointIdx(request.PlayerId), PlayerTypeToTeamID(request.PlayerType), request.PlayerId, characterType);
long newPlayerID = game.AddPlayer(playerInitInfo);
if (newPlayerID == GameObj.invalidID)
return;
@@ -381,7 +374,7 @@ namespace Server
if (!game.GameMap.Timer.IsGaming) moveRes.ActSuccess = false;
return Task.FromResult(moveRes);
}
public override Task<BoolRes> SendMessage(SendMsg request, ServerCallContext context)
{
var boolRes = new BoolRes();
@@ -551,7 +544,7 @@ namespace Server
boolRes.ActSuccess = game.Stop(gameID);
return Task.FromResult(boolRes);
}

public override Task<BoolRes> SkipWindow(IDMsg request, ServerCallContext context)
{


Loading…
Cancel
Save