From e3fff97ba06f4477c3bc1f630fb8ea35c7ac6a26 Mon Sep 17 00:00:00 2001 From: Nick Date: Sat, 15 Jul 2023 16:54:24 -0400 Subject: [PATCH] Fully fix spawns --- NewHorizons/Handlers/PlayerSpawnHandler.cs | 22 +++++----------------- 1 file changed, 5 insertions(+), 17 deletions(-) diff --git a/NewHorizons/Handlers/PlayerSpawnHandler.cs b/NewHorizons/Handlers/PlayerSpawnHandler.cs index 72dde2a0..97cdb7ea 100644 --- a/NewHorizons/Handlers/PlayerSpawnHandler.cs +++ b/NewHorizons/Handlers/PlayerSpawnHandler.cs @@ -41,22 +41,18 @@ namespace NewHorizons.Handlers { InvulnerabilityHandler.MakeInvulnerable(true); - var player = SearchUtilities.Find("Player_Body").GetAttachedOWRigidbody(); - var spawn = GetDefaultSpawn(); - // Idk why but these just don't work? - var matchInitialMotion = player.GetComponent(); + var matchInitialMotion = SearchUtilities.Find("Player_Body").GetComponent(); if (matchInitialMotion != null) UnityEngine.Object.Destroy(matchInitialMotion); - Main.Instance.StartCoroutine(SpawnCoroutine(player, spawn, 5)); + Main.Instance.StartCoroutine(SpawnCoroutine(2)); } } - private static IEnumerator SpawnCoroutine(OWRigidbody playerBody, SpawnPoint spawn, int length) + private static IEnumerator SpawnCoroutine(int length) { for(int i = 0; i < length; i++) { - playerBody.WarpToPositionRotation(spawn.transform.position, spawn.transform.rotation); FixVelocity(); yield return new WaitForEndOfFrame(); } @@ -66,16 +62,12 @@ namespace NewHorizons.Handlers private static void FixVelocity() { - var player = SearchUtilities.Find("Player_Body"); - var playerBody = player.GetAttachedOWRigidbody(); + var playerBody = SearchUtilities.Find("Player_Body").GetAttachedOWRigidbody(); var spawn = GetDefaultSpawn(); + var resources = playerBody.GetComponent(); playerBody.WarpToPositionRotation(spawn.transform.position, spawn.transform.rotation); - // Player dies during the teleport sometimes so we prevent that - var resources = player.GetComponent(); - var deathManager = Locator.GetDeathManager(); - var spawnVelocity = spawn._attachedBody.GetVelocity(); var spawnAngularVelocity = spawn._attachedBody.GetPointTangentialVelocity(playerBody.transform.position); var velocity = spawnVelocity + spawnAngularVelocity; @@ -84,10 +76,6 @@ namespace NewHorizons.Handlers NHLogger.LogVerbose($"Player spawn velocity {velocity} Player velocity {playerBody.GetVelocity()} spawn body {spawnVelocity} spawn angular vel {spawnAngularVelocity}"); resources._currentHealth = 100f; - - resources._invincible = _wasInvincible; - deathManager._invincible = _wasDeathManagerInvincible; - deathManager._impactDeathSpeed = _impactDeathSpeed; } private static Vector3 CalculateMatchVelocity(OWRigidbody owRigidbody, OWRigidbody bodyToMatch, bool ignoreAngularVelocity)