105 lines
2.3 KiB
C#
Executable File
105 lines
2.3 KiB
C#
Executable File
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
|
|
public class Timer : MonoBehaviour
|
|
{
|
|
public TextMesh currentTotTimeDisp;
|
|
public TextMesh penaltiesDisp;
|
|
public bool enabled_timer = false;
|
|
public string racerName;
|
|
public float penalties = 0.0f; //seconds
|
|
public float currentStart = 0.0f; //seconds
|
|
bool freezed = false;
|
|
|
|
void Awake()
|
|
{
|
|
if(enabled_timer)
|
|
{
|
|
StartTimer();
|
|
}
|
|
else
|
|
{
|
|
DisableTimer();
|
|
}
|
|
}
|
|
|
|
public void StartTimer()
|
|
{
|
|
currentTotTimeDisp.gameObject.SetActive(true);
|
|
penaltiesDisp.gameObject.SetActive(true);
|
|
penalties = 0.0f;
|
|
currentStart = GetTime();
|
|
enabled_timer = true;
|
|
}
|
|
|
|
public void DisableTimer()
|
|
{
|
|
currentTotTimeDisp.gameObject.SetActive(false);
|
|
penaltiesDisp.gameObject.SetActive(false);
|
|
penalties = 0.0f;
|
|
currentStart = 0.0f;
|
|
enabled_timer = false;
|
|
freezed = false;
|
|
}
|
|
|
|
public void ResetTimer()
|
|
{
|
|
penalties = 0.0f;
|
|
currentStart = GetTime();
|
|
enabled_timer = true;
|
|
}
|
|
public void SplitTime()
|
|
{
|
|
freezed = true;
|
|
}
|
|
public void ContinueTime()
|
|
{
|
|
freezed = false;
|
|
}
|
|
|
|
|
|
float GetTime()
|
|
{
|
|
return Time.time;
|
|
}
|
|
float GetPenalties()
|
|
{
|
|
return penalties;
|
|
}
|
|
float GetCurrentTime()
|
|
{
|
|
return (GetTime() - currentStart) + GetPenalties();
|
|
}
|
|
|
|
public void OnCollideChallenge(float penalty)
|
|
{
|
|
if(enabled_timer == false)
|
|
return;
|
|
|
|
penalties += penalty;
|
|
if(penaltiesDisp.gameObject.activeSelf){
|
|
float penalties = GetPenalties();
|
|
penaltiesDisp.text = penalties.ToString("00.00");
|
|
Debug.Log("Added penalty");
|
|
}
|
|
}
|
|
|
|
// Update is called once per frame
|
|
void Update()
|
|
{
|
|
if(enabled_timer == false)
|
|
return;
|
|
|
|
if(currentTotTimeDisp.gameObject.activeSelf & !freezed)
|
|
{
|
|
float currentTime = GetCurrentTime();
|
|
currentTotTimeDisp.text = currentTime.ToString("00.00");
|
|
}
|
|
if(penaltiesDisp.text != penalties.ToString("00.00") & !freezed)
|
|
{
|
|
penaltiesDisp.text = penalties.ToString("00.00");
|
|
}
|
|
}
|
|
}
|