对战初步完成

This commit is contained in:
lishuo committed 2022-05-10 19:24:07 +08:00
1 parent b0c0890ca3
commit 509c309252
55 files changed
+7079 -6748

No files matched your search

@@ -105,7 +105,7 @@ namespace Assets.Scenes.Ride.Scripts.Model.CyclingModels
MapUDPService.Send(route.RouteInstance.Id, recorderData.BelongUserId,
new double[] { lastData._Lat, lastData._Lon },
recorderData.IsCompleted, false, recorderData.EndDistance,
true, 1, lastData._Speed, false, preDistance, weightKg, competitionId: recorderData.Competitionid, recorderData.Saved, 0, lastData._Power, lastData._Cadence, lastData.Ticks, (lastData._FrameRate??0));
true, 1, lastData._Speed, false, preDistance, weightKg, competitionId: recorderData.Competitionid, recorderData.Saved, 0, lastData._Power, lastData._Cadence, lastData.Ticks, (lastData._FrameRate??0),roomId: (recorderData.RoomId??0));
}
else if (recorderData.EndDistance > 0)//没有骑,但是有初始位置的情况
{
@@ -0,0 +1,79 @@
using Assets.Scenes.Ride.Scripts.Model.RiderModels;
using Assets.Scripts.Apis.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Assets.Scenes.Ride.Scripts.Model.CyclingModels
{
public class GameModel : BaseCycling
{
public GameModel(Route route,RouteResultParam param)
: base(route, CyclingModel.Single)
{
this.IsRecord = true;
recorderData = new RecorderDataModel()
{
CurrentUser = App.CurrentUser,
Competitionid = 0,
ContinueIndex = 0,
ContinueMark = Guid.NewGuid().ToString(),
EndDistance = 0,
IsCompleted = false,
IsNeedRanking = true,
CyclingState = CyclingStateEnum.Prepare,
CurrentRoute = route,
CurrentRouteStartDistance = 0,
StartTime = DateTime.Now,//UIManager.Now.GetDateTime(),//DateTime.Now
selectParam = param,
RoomId = App.gameRoomDetail.RoomId,
};
if (param != null)
{
recorderData.EndDistance = param.EndDistance;
recorderData.CurrentRouteStartDistance = param.EndDistance;
if (!string.IsNullOrWhiteSpace(param.ContinueMark))
{
recorderData.ContinueMark = param.ContinueMark;
}
else
{
param.ContinueMark = recorderData.ContinueMark;
}
recorderData.ContinueIndex = param.ContinueIndex.GetValueOrDefault(0);
}
recorderData.PreDistance = recorderData.EndDistance;
riders = new List<BaseRider>();
}
public override void Run(TargetData targetData)
{
#region 获取当前路线在线用户
riders.RemoveAll(r => r.IsSelf == false);
var onlineUsers = MapUDPService.GetOnlineUsers(recorderData.CurrentRoute.RouteInstance.Id,App.gameRoomDetail.RoomId).Where(d => d.IsSelf == false)
.ToList();
foreach (var item in onlineUsers)
{
riders.Add(new OnlineRiderModel()
{
NickName = item.Name,
UserId = item.Id,
WxHeadImg = item.HeadImage,
Point = new GeoJSON.Net.Geometry.GeographicPosition(item.Point[0], item.Point[1]),
EndDistance = item.EndDistance,
PreDistance = item.PreDistance,
WeightKg = item.WeightKg,
FrameRate = item.FrameRate,
});
}
#endregion
base.Run(targetData);
}
}
}
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 15c731fec2d5df74c8881a2cefe75fb6
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
+5 -1
View File
@@ -30,7 +30,11 @@ namespace Assets.Scenes.Ride.Scripts.Model
/// <summary>
/// 环球骑行
/// </summary>
GlobalCycling = 4
GlobalCycling = 4,
/// <summary>
/// 对战模式
/// </summary>
GameRoom = 5
}
/// <summary>
+77 -7
View File
@@ -1,4 +1,5 @@
using GeoJSON.Net.Geometry;
using Assets.Scripts.Apis.Models;
using GeoJSON.Net.Geometry;
using System;
using System.Collections.Generic;
using System.Globalization;
@@ -41,6 +42,23 @@ namespace Assets.Scenes.Ride.Scripts.Model
return detail;
}
}
public class ExtendInfo
{
public int RoomId { get; set; }
public int UserId { get; set; }
public static ExtendInfo Parse(string s)
{
if (string.IsNullOrEmpty(s))
return null;
var info = s.Split(',');
var ex = new ExtendInfo()
{
UserId = Convert.ToInt32(info[0]),
RoomId = Convert.ToInt32(info[1]),
};
return ex;
}
}
public class RoomDetailModel
{
public int RoomId { get; set; }
@@ -70,6 +88,57 @@ namespace Assets.Scenes.Ride.Scripts.Model
return detail;
}
}
public class QueryGameRoomListCommand
{
public byte CommandType { get; set; }
public byte SubType { get; set; }
public int V { get; set; }
public int UserId { get; set; }
public int PageIndex { get; set; }
public int PageSize { get; set; }
public string Name { get; set; }
}
public class QueryGameRoomDetailCommand
{
public byte CommandType { get; set; }
public byte SubType { get; set; }
public int V { get; set; }
public int RoomId { get; set; }
}
public class CreateGameRoomCommand
{
public byte CommandType { get; set; }
public byte SubType { get; set; }
public int V { get; set; }
public int Id { get; set; }
public string Name { get; set; }
public int RouteId { get; set; }
public int UserId { get; set; }
public int CloseTime { get; set; }
public int MaxMembers { get; set; }
public string Password { get; set; }
public DateTime CreateTime { get; set; }
public string MapRouteName { get; set; }
public double Distance { get; set; }
public double TotalClimb { get; set; }
public double AverageGrade { get; set; }
public bool Enable3D { get; set; }
public bool EnableAR { get; set; }
public bool IsLock { get; set; }
public string FileName { get; set; }
public string FileUrl { get; set; }
public string AltitudeGraph { get; set; }
}
public class JoinGameRoomCommand
{
public byte CommandType { get; set; }
@@ -444,7 +513,9 @@ namespace Assets.Scenes.Ride.Scripts.Model
public int FrameRate { get; set; }
public int RoomId { get; set; }
public string Model { get; set; }
public DateTime? StartTime { get; set; }
public string Request { get; set; }
}
public class GzipMsgModel
@@ -507,9 +578,8 @@ namespace Assets.Scenes.Ride.Scripts.Model
public int? FrameRate { get; set; }
public int? RoomId { get; set; }
public RoomModel Room{ get; set; }
public RoomDetailModel RoomDetail { get; set; }
public DateTime? StartTime { get; set; }
public List<GameRoomModel> RoomList { get; set; }
public GameRoomModel RoomDetail { get; set; }
public static ReceiveMsgModel Parse(string str)
{
@@ -543,9 +613,6 @@ namespace Assets.Scenes.Ride.Scripts.Model
HeartRate = Convert.ToDouble(list[11], CultureInfo.InvariantCulture),
Cadence = Convert.ToDouble(list[12], CultureInfo.InvariantCulture),
TotoalTicks = Convert.ToInt32(list[13], CultureInfo.InvariantCulture),
FrameRate = Convert.ToInt32(list[14], CultureInfo.InvariantCulture),
//RoomId = Convert.ToInt32(list[15], CultureInfo.InvariantCulture),
//StartTime = startTime,
};
}
catch(Exception e)
@@ -580,6 +647,7 @@ namespace Assets.Scenes.Ride.Scripts.Model
return "Online-" + this.Id;
}
}
public int Sex { get; set; }
public bool IsVirtual { get; set; }
/// <summary>
@@ -680,6 +748,8 @@ namespace Assets.Scenes.Ride.Scripts.Model
public int? FrameRate { get; set; }
public int RoomId { get; set; }
public RoomModel Room { get; set; }
public RoomDetailModel RoomDetail { get; set; }
@@ -106,6 +106,8 @@ namespace Assets.Scenes.Ride.Scripts.Model
public DateTime EndTime { get; set; }
public int? LastFrame { get; set; }
public int? RoomId { get; set; }
/// <summary>
/// 是否已经保存成功
/// </summary>
@@ -180,7 +182,8 @@ namespace Assets.Scenes.Ride.Scripts.Model
Param = Newtonsoft.Json.JsonConvert.SerializeObject(selectParam),
GlobalCyclingId = 0,
Source = "",
LastFrame = LastFrame
LastFrame = LastFrame,
RoomId = RoomId
};
//var range = new MapSpeedRange().GetSpeedRange(RiderDatas, CurrentRoute.RouteInstance.Distance);
interruptRecord.SpeedRange = null; //JsonConvert.SerializeObject(range);