private Transform Stage_GetPlayerSpawnTransform(On.RoR2.Stage.orig_GetPlayerSpawnTransform orig, Stage self) { if (respawnCharacterMaster.Count == 0) { return(orig(self)); } var body = respawnCharacterMaster.Dequeue(); Transform spawnTransform; switch (RespawnType) { case RespawnType.Teleporter: spawnTransform = new GameObject().transform; spawnTransform.position = RespawnPosition.GetSpawnPositionAroundTeleporter(body, 0.5f, 3); if (spawnTransform.position != Vector3.zero) { return(spawnTransform); } Debug.Log($"UsersRespawnController::Stage_GetPlayerSpawnTransform hook: Failed to find better respawn position for '{RespawnType}' respawn type"); break; case RespawnType.Mithrix: spawnTransform = new GameObject().transform; spawnTransform.position = RespawnPosition.GetSpawnPositionAroundMoonBoss(body, 100, 105); if (spawnTransform.position != Vector3.zero) { return(spawnTransform); } Debug.Log($"UsersRespawnController::Stage_GetPlayerSpawnTransform hook: Failed to find better respawn position for '{RespawnType}' respawn type"); break; } return(orig(self)); }
private Transform StageOnGetPlayerSpawnTransform(On.RoR2.Stage.orig_GetPlayerSpawnTransform orig, Stage self) { return(new GameObject { transform = { position = new Vector3(-40, 3, 0) } }.transform); }