From 54f0dadb41815cabcf4db231664e56720274f672 Mon Sep 17 00:00:00 2001 From: gsy1519 <614054460@qq.com> Date: Fri, 3 Mar 2023 23:57:34 +0800 Subject: [PATCH] feat: :rocket: update server --- logic/ClientTest/Program.cs | 16 ++++---- logic/Gaming/Game.cs | 1 + logic/Server/CopyInfo.cs | 52 +++++++++++++------------- logic/Server/GameServer.cs | 74 ++++++++++++------------------------- 4 files changed, 58 insertions(+), 85 deletions(-) diff --git a/logic/ClientTest/Program.cs b/logic/ClientTest/Program.cs index ed5751a..3d4cf80 100644 --- a/logic/ClientTest/Program.cs +++ b/logic/ClientTest/Program.cs @@ -12,24 +12,24 @@ namespace ClientTest var client = new AvailableService.AvailableServiceClient(channel); PlayerMsg playerInfo = new(); playerInfo.PlayerId = 0; - playerInfo.PlayerType = PlayerType.HumanPlayer; - playerInfo.HumanType = HumanType.NullHumanType; + playerInfo.PlayerType = PlayerType.StudentPlayer; + playerInfo.StudentType = StudentType.NullStudentType; var call = client.AddPlayer(playerInfo); while (await call.ResponseStream.MoveNext()) { var currentGameInfo = call.ResponseStream.Current; - if (playerInfo.PlayerType == PlayerType.HumanPlayer) + if (playerInfo.PlayerType == PlayerType.StudentPlayer) { - for (int i = 0; i < currentGameInfo.HumanMessage.Count; i++) + for (int i = 0; i < currentGameInfo.StudentMessage.Count; i++) { - Console.WriteLine($"Human is at ({currentGameInfo.HumanMessage[i].X}, {currentGameInfo.HumanMessage[i].Y})"); + Console.WriteLine($"Human is at ({currentGameInfo.StudentMessage[i].X}, {currentGameInfo.StudentMessage[i].Y})"); } } - if (playerInfo.PlayerType == PlayerType.ButcherPlayer) + if (playerInfo.PlayerType == PlayerType.TrickerPlayer) { - for (int i = 0; i < currentGameInfo.ButcherMessage.Count; i++) + for (int i = 0; i < currentGameInfo.TrickerMessage.Count; i++) { - Console.WriteLine($"Butcher is at ({currentGameInfo.ButcherMessage[i].X}, {currentGameInfo.ButcherMessage[i].Y})"); + Console.WriteLine($"Butcher is at ({currentGameInfo.TrickerMessage[i].X}, {currentGameInfo.TrickerMessage[i].Y})"); } } } diff --git a/logic/Gaming/Game.cs b/logic/Gaming/Game.cs index cf905e7..827cd90 100644 --- a/logic/Gaming/Game.cs +++ b/logic/Gaming/Game.cs @@ -39,6 +39,7 @@ namespace Gaming XY pos = gameMap.BirthPointList[playerInitInfo.birthPointIndex]; // Console.WriteLine($"x,y: {pos.x},{pos.y}"); + Character newPlayer = (GameData.IsGhost(playerInitInfo.characterType)) ? new Ghost(pos, GameData.characterRadius, gameMap.GetPlaceType(pos), playerInitInfo.characterType) : new Student(pos, GameData.characterRadius, gameMap.GetPlaceType(pos), playerInitInfo.characterType); gameMap.GameObjLockDict[GameObjType.Character].EnterWriteLock(); try diff --git a/logic/Server/CopyInfo.cs b/logic/Server/CopyInfo.cs index 32516bc..cf82840 100644 --- a/logic/Server/CopyInfo.cs +++ b/logic/Server/CopyInfo.cs @@ -8,28 +8,28 @@ namespace Server public static class CopyInfo { // 下面赋值为0的大概率是还没写完 2023-03-03 - private static MessageOfHuman Human(Character player) + private static MessageOfStudent Human(Character player) { - MessageOfHuman msg = new MessageOfHuman(); + MessageOfStudent msg = new MessageOfStudent(); if (player.IsGhost()) return null; msg.X = player.Position.x; msg.Y = player.Position.y; msg.Speed = player.MoveSpeed; - msg.Life = player.HP; - msg.HangedTime = 0; + msg.Determination = player.HP; + msg.FailNum = 0; msg.TimeUntilSkillAvailable = 0; //msg.Place = 0; 下面写了 msg.Prop = PropType.NullPropType; // 下面写 - msg.HumanType = HumanType.NullHumanType; // 下面写 + msg.StudentType = StudentType.NullStudentType; // 下面写 msg.Guid = 0; - msg.State = HumanState.NullStatus; - msg.ChairTime = 0; - msg.GroundTime = 0; + msg.State = StudentState.NullStatus; + msg.FailTime = 0; + msg.EmoTime = 0; msg.PlayerId = 0; msg.ViewRange = 0; msg.Radius = 0; - //msg.Buff[0] = HumanBuffType.NullHbuffType; 下面写了 + //msg.Buff[0] = StudentBuffType.NullSbuffType; 下面写了 /* THUAI5中的内容 msg.BulletNum = player.BulletNum; @@ -60,26 +60,26 @@ namespace Server { if (kvp.Value) { - switch (kvp.Key) // HumanBuffType具体内容待定 + switch (kvp.Key) // StudentBuffType具体内容待定 { case Preparation.Utility.BuffType.Spear: - msg.Buff.Add(HumanBuffType.NullHbuffType); + msg.Buff.Add(StudentBuffType.NullSbuffType); break; case Preparation.Utility.BuffType.AddLIFE: - msg.Buff.Add(HumanBuffType.NullHbuffType); + msg.Buff.Add(StudentBuffType.NullSbuffType); break; case Preparation.Utility.BuffType.Shield: - msg.Buff.Add(HumanBuffType.NullHbuffType); + msg.Buff.Add(StudentBuffType.NullSbuffType); break; case Preparation.Utility.BuffType.AddSpeed: - msg.Buff.Add(HumanBuffType.NullHbuffType); + msg.Buff.Add(StudentBuffType.NullSbuffType); break; default: break; } } } - switch (player.Place) + /*switch (player.Place) { case Preparation.Utility.PlaceType.Land: msg.Place = PlaceType.Land; @@ -99,7 +99,7 @@ namespace Server default: msg.Place = PlaceType.NullPlaceType; break; - } + }*/ //Character的储存方式可能得改,用enum type存道具和子弹,不应该用对象 //现在懒得改了,有时间再重整一波 @@ -186,9 +186,9 @@ namespace Server return msg; } - private static MessageOfButcher Butcher(Character player) + private static MessageOfTricker Butcher(Character player) { - MessageOfButcher msg = new MessageOfButcher(); + MessageOfTricker msg = new MessageOfTricker(); if (!player.IsGhost()) return null; msg.X = player.Position.x; @@ -198,13 +198,13 @@ namespace Server msg.TimeUntilSkillAvailable = 0; //msg.Place = 0; 下面写了 msg.Prop = PropType.NullPropType; // 下面写 - msg.ButcherType = ButcherType.NullButcherType; // 下面写 + msg.TrickerType = TrickerType.NullTrickerType; // 下面写 msg.Guid = 0; msg.Movable = false; msg.PlayerId = 0; msg.ViewRange = 0; msg.Radius = 0; - //msg.Buff[0] = ButcherBuffType.NullHbuffType; 下面写了 + //msg.Buff[0] = ButcherBuffType.NullSbuffType; 下面写了 /* THUAI5中的内容 msg.BulletNum = player.BulletNum; @@ -238,23 +238,23 @@ namespace Server switch (kvp.Key) // ButcherBuffType具体内容待定 { case Preparation.Utility.BuffType.Spear: - msg.Buff.Add(ButcherBuffType.NullBbuffType); + msg.Buff.Add(TrickerBuffType.NullTbuffType); break; case Preparation.Utility.BuffType.AddLIFE: - msg.Buff.Add(ButcherBuffType.NullBbuffType); + msg.Buff.Add(TrickerBuffType.NullTbuffType); break; case Preparation.Utility.BuffType.Shield: - msg.Buff.Add(ButcherBuffType.NullBbuffType); + msg.Buff.Add(TrickerBuffType.NullTbuffType); break; case Preparation.Utility.BuffType.AddSpeed: - msg.Buff.Add(ButcherBuffType.NullBbuffType); + msg.Buff.Add(TrickerBuffType.NullTbuffType); break; default: break; } } } - switch (player.Place) + /*switch (player.Place) { case Preparation.Utility.PlaceType.Land: msg.Place = PlaceType.Land; @@ -274,7 +274,7 @@ namespace Server default: msg.Place = PlaceType.NullPlaceType; break; - } + }*/ //Character的储存方式可能得改,用enum type存道具和子弹,不应该用对象 //现在懒得改了,有时间再重整一波 diff --git a/logic/Server/GameServer.cs b/logic/Server/GameServer.cs index c48e082..a46966f 100644 --- a/logic/Server/GameServer.cs +++ b/logic/Server/GameServer.cs @@ -128,8 +128,8 @@ namespace Server private int PlayerTypeToTeamID(PlayerType playerType) { - if (playerType == PlayerType.HumanPlayer) return 0; - if (playerType == PlayerType.ButcherPlayer) return 1; + if (playerType == PlayerType.StudentPlayer) return 0; + if (playerType == PlayerType.TrickerPlayer) return 1; return -1; } private uint GetBirthPointIdx(PlayerType playerType, long playerID) // 获取出生点位置 @@ -138,9 +138,9 @@ namespace Server } private bool ValidPlayerTypeAndPlayerID(PlayerType playerType, long playerID) { - if (playerType == PlayerType.HumanPlayer && 0 <= playerID && playerID < options.PlayerCountPerTeam) + if (playerType == PlayerType.StudentPlayer && 0 <= playerID && playerID < options.PlayerCountPerTeam) return true; // 人数待修改 - if (playerType == PlayerType.ButcherPlayer && 0 <= playerID && playerID < options.PlayerCountPerTeam) + if (playerType == PlayerType.TrickerPlayer && 0 <= playerID && playerID < options.PlayerCountPerTeam) return true; return false; } @@ -185,7 +185,7 @@ namespace Server //if (communicationToGameID[PlayerTypeToTeamID(request.PlayerType), request.PlayerId] != GameObj.invalidID) //是否已经添加了该玩家 //return; - Preparation.Utility.CharacterType characterType = Preparation.Utility.CharacterType.Null; // 待修改 + Preparation.Utility.CharacterType characterType = Preparation.Utility.CharacterType.Athlete; // 待修改 lock (addPlayerLock) { @@ -222,7 +222,7 @@ namespace Server } while (game.GameMap.Timer.IsGaming); } - public override Task Attack(AttackMsg request, ServerCallContext context) + public override Task Trick(TrickMsg request, ServerCallContext context) { game.Attack(request.PlayerId, request.Angle); BoolRes boolRes = new(); @@ -230,36 +230,11 @@ namespace Server return Task.FromResult(boolRes); } - public override Task CarryHuman(IDMsg request, ServerCallContext context) - { - return base.CarryHuman(request, context); - } - - public override Task EndFixMachine(IDMsg request, ServerCallContext context) - { - return base.EndFixMachine(request, context); - } - - public override Task EndSaveHuman(IDMsg request, ServerCallContext context) - { - return base.EndSaveHuman(request, context); - } - - public override Task Escape(IDMsg request, ServerCallContext context) - { - return base.Escape(request, context); - } - public override Task GetMessage(IDMsg request, IServerStreamWriter responseStream, ServerCallContext context) { return base.GetMessage(request, responseStream, context); } - public override Task HangHuman(IDMsg request, ServerCallContext context) - { - return base.HangHuman(request, context); - } - public override Task Move(MoveMsg request, ServerCallContext context) { Console.WriteLine($"Move ID: {request.PlayerId}, TimeInMilliseconds: {request.TimeInMilliseconds}"); @@ -278,34 +253,36 @@ namespace Server return Task.FromResult(boolRes); } - public override Task ReleaseHuman(IDMsg request, ServerCallContext context) - { - return base.ReleaseHuman(request, context); - } - public override Task SendMessage(SendMsg request, ServerCallContext context) { return base.SendMessage(request, context); - } + } - public override Task StartFixMachine(IDMsg request, ServerCallContext context) + public override Task UseProp(IDMsg request, ServerCallContext context) { - return base.StartFixMachine(request, context); + return base.UseProp(request, context); } - public override Task StartSaveHuman(IDMsg request, ServerCallContext context) + public override Task UseSkill(IDMsg request, ServerCallContext context) { - return base.StartSaveHuman(request, context); + return base.UseSkill(request, context); } - public override Task UseProp(IDMsg request, ServerCallContext context) + public override Task Graduate(IDMsg request, ServerCallContext context) { - return base.UseProp(request, context); + return base.Graduate(request, context); } - - public override Task UseSkill(IDMsg request, ServerCallContext context) + public override Task StartHealMate(IDMsg request, ServerCallContext context) { - return base.UseSkill(request, context); + return base.StartHealMate(request, context); + } + public override Task StartHelpMate(IDMsg request, ServerCallContext context) + { + return base.StartHelpMate(request, context); + } + public override Task StartLearning(IDMsg request, ServerCallContext context) + { + return base.StartLearning(request, context); } public GameServer(ArgumentOptions options) @@ -353,11 +330,6 @@ namespace Server catch { map = MapInfo.defaultMap; - map[0, 0] = 1; - map[2, 2] = 2; - map[4, 2] = 3; - map[6, 2] = 4; - map[8, 2] = 5; } finally { this.game = new Game(map, options.TeamCount); } }