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

88 lines
2.3 KiB
C#

using UnityEngine;
namespace RoR2.UI;
[RequireComponent(typeof(MPEventSystemLocator))]
public class EclipseRunScreenController : MonoBehaviour
{
[Header("Required references")]
public LanguageTextMeshController survivorName;
public LanguageTextMeshController eclipseDifficultyName;
public LanguageTextMeshController eclipseDifficultyDescription;
private LocalUser localUser;
private MPEventSystemLocator eventSystemLocator;
private void Awake()
{
eventSystemLocator = GetComponent<MPEventSystemLocator>();
}
private void OnEnable()
{
UserProfile.onSurvivorPreferenceChangedGlobal += OnSurvivorPreferenceChangedGlobal;
eventSystemLocator.onEventSystemDiscovered += OnEventSystemDiscovered;
if ((bool)eventSystemLocator.eventSystem)
{
OnEventSystemDiscovered(eventSystemLocator.eventSystem);
}
}
private void OnDisable()
{
eventSystemLocator.onEventSystemDiscovered -= OnEventSystemDiscovered;
UserProfile.onSurvivorPreferenceChangedGlobal -= OnSurvivorPreferenceChangedGlobal;
localUser = null;
}
private void OnSurvivorPreferenceChangedGlobal(UserProfile userProfile)
{
UpdateDisplayedSurvivor();
}
public void BeginGamemode()
{
Console.instance.SubmitCmd(null, "transition_command \"gamemode EclipseRun; host 0;\"");
}
public void SetDisplayedSurvivor(SurvivorDef newSurvivorDef)
{
_ = (bool)newSurvivorDef;
}
private void OnEventSystemDiscovered(MPEventSystem eventSystem)
{
localUser = eventSystem.localUser;
UpdateDisplayedSurvivor();
}
private void UpdateDisplayedSurvivor()
{
_ = string.Empty;
string token = string.Empty;
string token2 = string.Empty;
SurvivorDef survivorDef = eventSystemLocator.eventSystem?.localUser?.userProfile.GetSurvivorPreference();
if ((bool)survivorDef)
{
DifficultyDef difficultyDef = DifficultyCatalog.GetDifficultyDef(EclipseRun.GetEclipseDifficultyIndex(Mathf.Clamp(EclipseRun.GetLocalUserSurvivorCompletedEclipseLevel(localUser, survivorDef) + 1, EclipseRun.minEclipseLevel, EclipseRun.maxEclipseLevel)));
token = difficultyDef.nameToken;
token2 = difficultyDef.descriptionToken;
}
if ((bool)survivorName)
{
survivorName.token = survivorDef.displayNameToken;
}
if ((bool)eclipseDifficultyName)
{
eclipseDifficultyName.token = token;
}
if ((bool)eclipseDifficultyDescription)
{
eclipseDifficultyDescription.token = token2;
}
}
}