diff --git a/AUCapture-WPF/Controls/PlayerControl.xaml b/AUCapture-WPF/Controls/PlayerControl.xaml
index 0f9bbf57..d68ca171 100644
--- a/AUCapture-WPF/Controls/PlayerControl.xaml
+++ b/AUCapture-WPF/Controls/PlayerControl.xaml
@@ -10,6 +10,7 @@
+
@@ -29,7 +30,10 @@
-
+
+
+
+
{
this.BeginInvoke((w) =>
@@ -181,15 +183,24 @@ public MainWindow()
//ApplyDarkMode();
}
+ private void PlayersOnCollectionChanged(object? sender, NotifyCollectionChangedEventArgs e)
+ {
+ AmongUsCapture.Settings.conInterface.WriteModuleTextColored("Players", Color.Aqua, JsonConvert.SerializeObject(e, Formatting.None,new StringEnumConverter()));
+ }
+
private void OnPlayerCosmeticChanged(object? sender, PlayerCosmeticChangedEventArgs e)
{
- var player = context.Players.First(x => x.Name == e.Name);
- Console.WriteLine("Cosmetic change");
- Dispatcher.Invoke((Action) (() =>
+ if (context.Players.Any(x => x.Name == e.Name))
{
- player.HatID = e.HatId;
- player.PantsID = e.SkinId;
- }));
+ var player = context.Players.First(x => x.Name == e.Name);
+ Console.WriteLine("Cosmetic change");
+ Dispatcher.Invoke((Action) (() =>
+ {
+ player.HatID = e.HatId;
+ player.PantsID = e.SkinId;
+ }));
+ }
+
}
private void SocketOnOnDisconnected(object? sender, EventArgs e)
@@ -354,7 +365,10 @@ private void OnGameOver(object? sender, GameOverEventArgs e)
{
Dispatcher.Invoke((Action) (() =>
{
- context.Players.Clear(); //Clear players because game is over
+ foreach (var player in context.Players)
+ {
+ player.Alive = true;
+ }
}));
}
@@ -370,9 +384,9 @@ private void UserForm_PlayerChanged(object sender, PlayerChangedEventArgs e)
}
else
{
- if (e.Action != PlayerAction.Joined && context.Players.Any(x => x.Name == e.Name))
+ if (e.Action != PlayerAction.Joined && context.Players.Any(x => x.Name == e.Name || x.Color==e.Color))
{
- var player = context.Players.First(x => x.Name == e.Name);
+ var player = context.Players.First(x => x.Name == e.Name || x.Color == e.Color);
Dispatcher.Invoke((Action) (() =>
{
switch (e.Action)
@@ -395,14 +409,19 @@ private void UserForm_PlayerChanged(object sender, PlayerChangedEventArgs e)
}
else
{
- Dispatcher.Invoke((Action) (() =>
+ if (e.Action == PlayerAction.Joined)
{
- context.Players.Add(new Player(e.Name, e.Color, !e.IsDead, 0, 0));
- }));
+ Dispatcher.Invoke((Action) (() =>
+ {
+ context.Players.Add(new Player(e.Name, e.Color, !e.IsDead, 0, 0));
+
+ }));
+ }
+
}
}
- //Program.conInterface.WriteModuleTextColored("GameMemReader", Color.Green, e.Name + ": " + e.Action);
+ AmongUsCapture.Settings.conInterface.WriteModuleTextColored("GameMemReader", Color.Green, e.Name + ": " + e.Action);
}
private void OnChatMessageAdded(object sender, ChatMessageEventArgs e)
@@ -565,7 +584,13 @@ private void GameStateChangedHandler(object sender, GameStateChangedEventArgs e)
Dispatcher.Invoke((Action) (() =>
{
context.GameState = e.NewState;
- context.Players.Clear(); //Clear players because game is over
+ }));
+ }
+ else if (e.NewState == GameState.LOBBY)
+ {
+ Dispatcher.Invoke((Action) (() =>
+ {
+ context.GameState = e.NewState;
}));
}
//Program.conInterface.WriteModuleTextColored("GameMemReader", Color.Green, "State changed to " + e.NewState);