r2mods/ilspy_dump/ror2_csproj/RoR2.UI/WeeklyRunScreenController.cs

62 lines
1.4 KiB
C#

using System;
using TMPro;
using UnityEngine;
namespace RoR2.UI;
public class WeeklyRunScreenController : MonoBehaviour
{
public LeaderboardController leaderboard;
public TextMeshProUGUI countdownLabel;
private uint currentCycle;
private TimeSpan lastCountdown;
private float labelFadeValue;
private bool leaderboardInitiated;
private void OnEnable()
{
currentCycle = WeeklyRun.GetCurrentSeedCycle();
UpdateLeaderboard();
}
private void UpdateLeaderboard()
{
leaderboardInitiated = true;
}
private void Update()
{
uint currentSeedCycle = WeeklyRun.GetCurrentSeedCycle();
if (currentSeedCycle != currentCycle)
{
currentCycle = currentSeedCycle;
UpdateLeaderboard();
}
if (!leaderboardInitiated)
{
UpdateLeaderboard();
}
TimeSpan timeSpan = WeeklyRun.GetSeedCycleStartDateTime(currentCycle + 1) - WeeklyRun.now;
string @string = Language.GetString("WEEKLY_RUN_NEXT_CYCLE_COUNTDOWN_FORMAT");
countdownLabel.text = string.Format(@string, timeSpan.Hours + timeSpan.Days * 24, timeSpan.Minutes, timeSpan.Seconds);
if (timeSpan != lastCountdown)
{
lastCountdown = timeSpan;
labelFadeValue = 0f;
}
labelFadeValue = Mathf.Max(labelFadeValue + Time.deltaTime * 1f, 0f);
Color white = Color.white;
if (timeSpan.Days == 0 && timeSpan.Hours == 0)
{
white.g = labelFadeValue;
white.b = labelFadeValue;
}
countdownLabel.color = white;
}
}