From 89f354b647d1f2fcefa8db82828318d76af3b28c Mon Sep 17 00:00:00 2001 From: "NGnius (Graham)" Date: Thu, 13 Aug 2020 10:12:36 -0400 Subject: [PATCH] Fix Game Over detection --- GamecraftModdingAPI/Players/PlayerEngine.cs | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/GamecraftModdingAPI/Players/PlayerEngine.cs b/GamecraftModdingAPI/Players/PlayerEngine.cs index 805ae21..f0aa31d 100644 --- a/GamecraftModdingAPI/Players/PlayerEngine.cs +++ b/GamecraftModdingAPI/Players/PlayerEngine.cs @@ -1,4 +1,6 @@ using System; +using System.Collections.Generic; +using System.Reflection; using System.Runtime.CompilerServices; using RobocraftX.Character; @@ -12,12 +14,16 @@ using RobocraftX.Character.Camera; using RobocraftX.Character.Factories; using Gamecraft.CharacterVulnerability; using Gamecraft.CharacterVulnerability.Entities; +using Gamecraft.GUI.HUDFeedbackBlocks; using Svelto.ECS; using Unity.Mathematics; using Unity.Physics; using UnityEngine; using GamecraftModdingAPI.Engines; +using HarmonyLib; +using RobocraftX.Common; +using Svelto.ECS.DataStructures; namespace GamecraftModdingAPI.Players { @@ -365,15 +371,12 @@ namespace GamecraftModdingAPI.Players public bool GetGameOverScreen(uint playerId) { if (entitiesDB == null) return false; - ref var c = ref GetCharacterStruct(playerId, out bool exists); - if (exists) - { - return c.gameOverScreen; - } - return false; + ref HudActivatedBlocksEntityStruct habes = ref entitiesDB.QueryEntity(HUDFeedbackBlocksGUIExclusiveGroups.GameOverHudEgid); + NativeDynamicArrayCast nativeDynamicArrayCast = new NativeDynamicArrayCast(habes.activatedBlocksOrdered); + return nativeDynamicArrayCast.count > 0; } - public bool IsDead(uint playerId) + public bool IsDead(uint playerId) { if (entitiesDB == null) return true; return entitiesDB.Exists(playerId, CharacterExclusiveGroups.DeadCharacters);