public ExplosionEvent?GenerateExplosionPreview(SpawnExplosionEuiMsg.PreviewRequest request) { var stopwatch = new Stopwatch(); stopwatch.Start(); var results = GetExplosionTiles( request.Epicenter, request.TypeId, request.TotalIntensity, request.IntensitySlope, request.MaxIntensity); if (results == null) { return(null); } var(area, iterationIntensity, spaceData, gridData, spaceMatrix) = results.Value; Logger.Info($"Generated explosion preview with {area} tiles in {stopwatch.Elapsed.TotalMilliseconds}ms"); // the explosion event that **would** be sent to all clients, if it were a real explosion. return(GetExplosionEvent(request.Epicenter, request.TypeId, spaceMatrix, spaceData, gridData.Values, iterationIntensity)); }
public void RequestPreviewData(MapCoordinates epicenter, string typeId, float totalIntensity, float intensitySlope, float maxIntensity) { var msg = new SpawnExplosionEuiMsg.PreviewRequest(epicenter, typeId, totalIntensity, intensitySlope, maxIntensity); SendMessage(msg); }