protected void HandleFlashNadeExploded(object sender, FlashEventArgs e) { if (!AnalyzePlayersPosition && !AnalyzeHeatmapPoint || !IsMatchStarted || e.ThrownBy == null) return; FlashbangExplodedEvent flashbangEvent = new FlashbangExplodedEvent(Parser.IngameTick) { Thrower = Demo.Players.FirstOrDefault(player => player.SteamId == e.ThrownBy.SteamID) }; if (e.FlashedPlayers != null) { foreach (Player player in e.FlashedPlayers) { PlayerExtended playerExtended = Demo.Players.FirstOrDefault(p => p.SteamId == player.SteamID); if (playerExtended != null) { flashbangEvent.FlashedPlayers.Add(playerExtended); } } } if (AnalyzeHeatmapPoint && flashbangEvent.Thrower != null) { flashbangEvent.Point = new HeatmapPoint { X = e.Position.X, Y = e.Position.Y, Player = flashbangEvent.Thrower, Team = e.ThrownBy.Team, Round = CurrentRound }; } CurrentRound.FlashbangsExploded.Add(flashbangEvent); if (AnalyzePlayersPosition && flashbangEvent.Thrower != null) { PositionPoint positionPoint = new PositionPoint { X = e.Position.X, Y = e.Position.Y, Player = flashbangEvent.Thrower, Team = e.ThrownBy.Team, Round = CurrentRound, Event = flashbangEvent }; Demo.PositionsPoint.Add(positionPoint); } }
protected void HandleFlashNadeExploded(object sender, FlashEventArgs e) { if(!IsMatchStarted || e.ThrownBy == null || !PlayersFlashQueue.Any()) return; if (PlayersFlashQueue.Any()) { LastPlayerExplodedFlashbang = PlayersFlashQueue.Dequeue(); // update flash intensity value for each player when the flash poped foreach (Player player in Parser.PlayingParticipants) { PlayerExtended pl = Demo.Players.FirstOrDefault(p => p.SteamId == player.SteamID); if (pl != null) pl.FlashDurationTemp = player.FlashDuration; } // set it to true to start analyzing flashbang status at each tick AnalyzeFlashbang = true; } if (!AnalyzePlayersPosition && !AnalyzeHeatmapPoint) return; PlayerExtended thrower = Demo.Players.FirstOrDefault(player => player.SteamId == e.ThrownBy.SteamID); FlashbangExplodedEvent flashbangEvent = new FlashbangExplodedEvent(Parser.IngameTick, Parser.CurrentTime) { ThrowerSteamId = thrower?.SteamId ?? 0, ThrowerName = thrower == null ? string.Empty : thrower.Name }; if (e.FlashedPlayers != null) { foreach (Player player in e.FlashedPlayers) { PlayerExtended playerExtended = Demo.Players.FirstOrDefault(p => p.SteamId == player.SteamID); if (playerExtended != null) { flashbangEvent.FlashedPlayerSteamIdList.Add(playerExtended.SteamId); } } } if (AnalyzeHeatmapPoint && thrower != null) { flashbangEvent.Point = new HeatmapPoint { X = e.Position.X, Y = e.Position.Y, Player = thrower, Team = e.ThrownBy.Team, Round = CurrentRound }; } CurrentRound.FlashbangsExploded.Add(flashbangEvent); if (AnalyzePlayersPosition && thrower != null) { PositionPoint positionPoint = new PositionPoint { X = e.Position.X, Y = e.Position.Y, PlayerSteamId = e.ThrownBy.SteamID, PlayerName = e.ThrownBy.Name, Team = e.ThrownBy.Team, RoundNumber = CurrentRound.Number, Event = flashbangEvent }; Demo.PositionsPoint.Add(positionPoint); } }