From b17b2a806701fa243837c01ab7eafc47ef5c3052 Mon Sep 17 00:00:00 2001 From: glax Date: Wed, 17 Jan 2024 03:22:12 +0100 Subject: [PATCH] Fix duplicate round win/loss events --- CS2GSI/CS2EventGenerator.cs | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/CS2GSI/CS2EventGenerator.cs b/CS2GSI/CS2EventGenerator.cs index 61ab831..22c8862 100644 --- a/CS2GSI/CS2EventGenerator.cs +++ b/CS2GSI/CS2EventGenerator.cs @@ -32,12 +32,15 @@ internal static class CS2EventGenerator if(newGameState.Round?.Phase == Round.RoundPhase.Over && lastGameState.Round?.Phase == Round.RoundPhase.Live) events.Add(new ValueTuple(CS2Event.OnRoundOver, new CS2EventArgs())); + + if (newGameState.Map?.Round is not null && newGameState.Map?.Round != previousPlayerState.Map?.Round) + { + if(newGameState.Round?.WinnerTeam is not null && newGameState.Round?.WinnerTeam == previousPlayerState.Player?.Team) + events.Add(new ValueTuple(CS2Event.OnRoundWin, new CS2EventArgs())); - if(newGameState.Round?.WinnerTeam is not null && newGameState.Round?.WinnerTeam == previousPlayerState.Player?.Team) - events.Add(new ValueTuple(CS2Event.OnRoundWin, new CS2EventArgs())); - - if(newGameState.Round?.WinnerTeam is not null && newGameState.Round?.WinnerTeam != previousPlayerState.Player?.Team) - events.Add(new ValueTuple(CS2Event.OnRoundLoss, new CS2EventArgs())); + if(newGameState.Round?.WinnerTeam is not null && newGameState.Round?.WinnerTeam != previousPlayerState.Player?.Team) + events.Add(new ValueTuple(CS2Event.OnRoundLoss, new CS2EventArgs())); + } } if(newGameState.Map?.Phase == Map.MapPhase.Live && lastGameState.Map?.Phase != Map.MapPhase.Live)