refactor:房间对战逻辑优化以及timer间隔修改为500ms

This commit is contained in:
lishuo 2023-06-28 17:14:39 +08:00
parent b51bac2abe
commit b6ea5934c5
2 changed files with 8 additions and 7 deletions

1
.gitignore vendored
View File

@ -2,3 +2,4 @@
.vs .vs
obj obj
bin bin
.idea

View File

@ -112,7 +112,7 @@ namespace OnlineUserPool.ViewModels
Log.Information("服务启动成功"); Log.Information("服务启动成功");
timer = new System.Timers.Timer(1000); timer = new System.Timers.Timer(500);
timer.Elapsed += Timer_Elapsed; timer.Elapsed += Timer_Elapsed;
timer.AutoReset = true; timer.AutoReset = true;
timer.Start(); timer.Start();
@ -524,28 +524,28 @@ namespace OnlineUserPool.ViewModels
private void HandleGameRoomKick(ReceiveModel msg) private void HandleGameRoomKick(ReceiveModel msg)
{ {
var msg1 = msg as GameRoomKickCommand; var msg1 = msg as GameRoomKickCommand;
var room = RoomList.ToList().Where(c => c.RoomId == msg1.RoomId).FirstOrDefault(); var room = RoomList.ToList().FirstOrDefault(c => c.RoomId == msg1.RoomId);
if (room != null) if (room != null)
{ {
var list = room.List; var list = room.List;
var needRemove = list.Where(c => c.UserId == msg1.UserId).FirstOrDefault(); var needRemove = list.FirstOrDefault(c => c.UserId == msg1.UserId);
if (needRemove != null) if (needRemove != null)
{ {
list.Remove(needRemove); list.Remove(needRemove);
//如果当前是房主退出房间,房主替换成其他人, 房主客户端中断也算 //如果当前是房主退出房间,房主替换成其他人, 房主客户端中断也算
if (needRemove.IsOwner && list.Count() > 0) if (needRemove.IsOwner && list.Any())
{ {
var newOwner = list.FirstOrDefault(); var newOwner = list.FirstOrDefault();
newOwner.IsOwner = true; newOwner.IsOwner = true;
room.UserId = newOwner.UserId; room.UserId = newOwner.UserId;
} }
} }
//人数为0删除房间 //房间没有产生记录且人数为0删除房间
if (list.Count() == 0) if (!room.Saved && !list.Any())
{ {
RoomList.Remove(room); RoomList.Remove(room);
} }
var mine = Clients.Where(c => c.MemberId == msg1.UserId).FirstOrDefault(); var mine = Clients.FirstOrDefault(c => c.MemberId == msg1.UserId);
if (mine != null) if (mine != null)
{ {
mine.RoomId = 0; mine.RoomId = 0;