final (i hope)

This commit is contained in:
MrTorex committed 2026-01-27 20:12:25 +03:00
1 parent 3c6679ab04
commit db18247040
6 files changed
+816 -59

No files matched your search

+45 -3
View File
@@ -1,6 +1,7 @@
using Code.DI;
using Code.Input;
using Code.Records;
using Code.UI;
using DG.Tweening;
using TMPro;
using UnityEngine;
@@ -11,14 +12,15 @@ namespace Code.Gameplay
{
public class RaceManager : MonoBehaviour
{
[Header("UI")]
[SerializeField] private TMP_Text countdownText;
[SerializeField] private TMP_Text timerText;
[SerializeField] private GameObject resultsWrapper;
[SerializeField] private GameObject youLoseWrapper;
[Header("Settings")]
[SerializeField] private float countdownDuration = 3f;
[SerializeField] private float startDelayAfterGo = 0.5f;
[SerializeField] private AICarController aiCar;
private float _startTime;
private float _elapsedTime;
@@ -28,6 +30,9 @@ namespace Code.Gameplay
private TMP_InputField _nameField;
private Button _restartButton;
private Button _toMenuButton;
private Button _restartButtonLose;
private Button _toMenuButtonLose;
private void Awake()
{
@@ -36,9 +41,12 @@ namespace Code.Gameplay
_nameField = resultsWrapper.transform.Find("EnterNameField")?.GetComponent<TMP_InputField>();
_restartButton = resultsWrapper.transform.Find("RestartButton")?.GetComponent<Button>();
_restartButtonLose = youLoseWrapper.transform.Find("RestartButton")?.GetComponent<Button>();
_toMenuButton = resultsWrapper.transform.Find("ToMenuButton")?.GetComponent<Button>();
_toMenuButtonLose = youLoseWrapper.transform.Find("ToMenuButton")?.GetComponent<Button>();
resultsWrapper.SetActive(false);
youLoseWrapper.SetActive(false);
}
private void Start()
@@ -88,6 +96,10 @@ namespace Code.Gameplay
_isRaceActive = true;
_startTime = Time.time;
countdownText.gameObject.SetActive(false);
var trackData = FindFirstObjectByType<GameplayController>().currentTrack;
aiCar.transform.position = trackData.Waypoints[0] + Random.insideUnitSphere * 2f;
aiCar.GetComponent<AICarController>().SetRoute(trackData.Waypoints.ToArray());
}
private void UpdateTimer()
@@ -106,6 +118,8 @@ namespace Code.Gameplay
countdownText.gameObject.SetActive(false);
resultsWrapper.SetActive(true);
aiCar.speed = 0;
var rect = resultsWrapper.GetComponent<RectTransform>();
rect.localScale = Vector3.zero;
rect.DOScale(Vector3.one, 0.3f).SetEase(Ease.OutBack);
@@ -115,6 +129,24 @@ namespace Code.Gameplay
_restartButton.onClick.AddListener(RestartRace);
_toMenuButton.onClick.AddListener(LoadMainMenu);
}
public void OnLoose()
{
_isRaceActive = false;
countdownText.gameObject.SetActive(false);
youLoseWrapper.SetActive(true);
aiCar.speed = 0;
var rect = youLoseWrapper.GetComponent<RectTransform>();
rect.localScale = Vector3.zero;
rect.DOScale(Vector3.one, 0.3f).SetEase(Ease.OutBack);
_inputService.DisableMap(ActionMapping.Gameplay);
_restartButtonLose.onClick.AddListener(RestartRaceLose);
_toMenuButtonLose.onClick.AddListener(LoadMainMenuLose);
}
private void SaveResult()
{
@@ -130,10 +162,20 @@ namespace Code.Gameplay
SaveResult();
SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex);
}
private void RestartRaceLose()
{
SaveResult();
SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex);
}
private void LoadMainMenu()
{
SaveResult();
SceneManager.LoadScene("MainMenu");
}
private void LoadMainMenuLose()
{
SceneManager.LoadScene("MainMenu");
}
}