Untitled diff

Created Diff never expires
0 removals
Lines
Total
Removed
Words
Total
Removed
To continue using this feature, upgrade to
Diffchecker logo
Diffchecker Pro
302 lines
55 additions
Lines
Total
Added
Words
Total
Added
To continue using this feature, upgrade to
Diffchecker logo
Diffchecker Pro
357 lines
using System;
using System;
using System.Collections.Generic;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine;
using UnityEngine.Events;
using UnityEngine.Events;
using UnityEngine.UI;
using UnityEngine.UI;


public class SessionHUD : UIScreen
public class SessionHUD : UIScreen
{
{
public override void OnStart()
public override void OnStart()
{
{
base.OnStart();
base.OnStart();
this.commentaryWidget.OnStart();
this.commentaryWidget.OnStart();
this.driverInfoHUD.OnStart();
this.driverInfoHUD.OnStart();
this.sessionTeamRadionWidget.OnStart();
this.sessionTeamRadionWidget.OnStart();
this.sabotageDriversButton.onClick.AddListener(new UnityAction(this.OnSabotageDriverButton));
this.sabotageDriversButton.onClick.AddListener(new UnityAction(this.OnSabotageDriverButton));
this.playBackWidget.OnStart();
this.playBackWidget.OnStart();
}
}


private void OnSabotageDriverButton()
private void OnSabotageDriverButton()
{
{
scSoundManager.Instance.PlaySound(SoundID.Button_Select, 0f);
scSoundManager.Instance.PlaySound(SoundID.Button_Select, 0f);
this.outOfRaceDriverSelectMenu.Show();
this.outOfRaceDriverSelectMenu.Show();
}
}


public override void OnUnload()
public override void OnUnload()
{
{
base.OnUnload();
base.OnUnload();
this.driverInfoHUD.OnUnload();
this.driverInfoHUD.OnUnload();
this.simulation2D.ClearSingletonInstance();
this.simulation2D.ClearSingletonInstance();
}
}


public override void OnEnter()
public override void OnEnter()
{
{
base.OnEnter();
base.OnEnter();
base.showNavigationBars = true;
base.showNavigationBars = true;
base.SetTopBarMode(UITopBar.Mode.Session);
base.SetTopBarMode(UITopBar.Mode.Session);
base.SetBottomBarMode(UIBottomBar.Mode.Session);
base.SetBottomBarMode(UIBottomBar.Mode.Session);
App.instance.cameraManager.ActivateMode(CameraManager.CameraMode.FreeRoam);
App.instance.cameraManager.ActivateMode(CameraManager.CameraMode.FreeRoam);
App.instance.cameraManager.gameCamera.SetBlurActive(false);
App.instance.cameraManager.gameCamera.SetBlurActive(false);
App.instance.cameraManager.SetRunningMode(false);
App.instance.cameraManager.SetRunningMode(false);
Game.instance.sessionManager.SetCircuitActive(true);
Game.instance.sessionManager.SetCircuitActive(true);
UITutorial componentInChildren = base.GetComponentInChildren<UITutorial>();
UITutorial componentInChildren = base.GetComponentInChildren<UITutorial>();
if (Game.instance.vehicleManager.vehicleCount > 1)
if (Game.instance.vehicleManager.vehicleCount > 1)
{
{
RacingVehicle[] playerVehicles = Game.instance.vehicleManager.GetPlayerVehicles();
RacingVehicle[] playerVehicles = Game.instance.vehicleManager.GetPlayerVehicles();
for (int i = 0; i < 2; i++)
for (int i = 0; i < 2; i++)
{
{
RacingVehicle racingVehicle = playerVehicles[i];
RacingVehicle racingVehicle = playerVehicles[i];
this.actionButtons[i].SetVehicle(racingVehicle, componentInChildren);
this.actionButtons[i].SetVehicle(racingVehicle, componentInChildren);
this.standingsWidget[i].SetVehicle(racingVehicle);
this.standingsWidget[i].SetVehicle(racingVehicle);
}
}
}
}
this.gridLights.SetActive(false);
this.gridLights.SetActive(false);
this.sessionTeamRadionWidget.OnEnter();
this.sessionTeamRadionWidget.OnEnter();
this.sessionFlagsWidget.OnEnter();
this.sessionFlagsWidget.OnEnter();
this.fastestLapWidget.OnEnter();
this.fastestLapWidget.OnEnter();
this.sprinklersWidget.OnEnter();
this.sprinklersWidget.OnEnter();
this.remainingLapsWidget.OnEnter();
this.remainingLapsWidget.OnEnter();
this.sponsorStatusChangeWidget.OnEnter();
this.sponsorStatusChangeWidget.OnEnter();
if (this.minimapWidget != null)
if (this.minimapWidget != null)
{
{
this.minimapWidget.Setup();
this.minimapWidget.Setup();
}
}
if (App.instance.gameStateManager.currentState is RaceGridState)
if (App.instance.gameStateManager.currentState is RaceGridState)
{
{
if (Game.instance.tutorialSystem.isTutorialActive)
if (Game.instance.tutorialSystem.isTutorialActive)
{
{
if (componentInChildren == null || !componentInChildren.IsTutorialOnRaceGrid())
if (componentInChildren == null || !componentInChildren.IsTutorialOnRaceGrid())
{
{
this.StartGridLightAnimation();
this.StartGridLightAnimation();
Game.instance.time.SetSpeed(GameTimer.Speed.Slow);
Game.instance.time.SetSpeed(GameTimer.Speed.Slow);
}
}
}
}
else if (Game.instance.sessionManager.championship.rules.raceStart == ChampionshipRules.RaceStart.StandingStart || !Game.instance.sessionManager.isRollingOut)
else if (Game.instance.sessionManager.championship.rules.raceStart == ChampionshipRules.RaceStart.StandingStart || !Game.instance.sessionManager.isRollingOut)
{
{
this.StartGridLightAnimation();
this.StartGridLightAnimation();
}
}
}
}
this.mSimulationTutorialIDS = new List<string>(new string[]
this.mSimulationTutorialIDS = new List<string>(new string[]
{
{
"PSG_10003404",
"PSG_10003404",
"PSG_10003404",
"PSG_10003404",
"PSG_10003397",
"PSG_10003397",
"PSG_10003389",
"PSG_10003389",
"PSG_10003402"
"PSG_10003402"
});
});
this.SetupNavigationBarsCanvases();
this.SetupNavigationBarsCanvases();
this.RegisterPracticeKnowledgeEvents();
this.RegisterPracticeKnowledgeEvents();
if (!Game.instance.tutorialSystem.isTutorialActive)
if (!Game.instance.tutorialSystem.isTutorialActive)
{
{
scSoundManager.Instance.PlaySound(SoundID.Sfx_TransitionScreen, 0f);
scSoundManager.Instance.PlaySound(SoundID.Sfx_TransitionScreen, 0f);
scMusicController.Race();
scMusicController.Race();
}
}
else if (!Game.instance.tutorialSystem.isTutorialFirstRaceActive)
else if (!Game.instance.tutorialSystem.isTutorialFirstRaceActive)
{
{
scMusicController.Stop();
scMusicController.Stop();
}
}
bool flag = !App.instance.preferencesManager.videoPreferences.isSimulationRunning2DMode;
bool flag = !App.instance.preferencesManager.videoPreferences.isSimulationRunning2DMode;
if (flag)
if (flag)
{
{
this.simulation2D.Hide();
this.simulation2D.Hide();
}
}
else
else
{
{
this.simulation2D.Show();
this.simulation2D.Show();
}
}
this.outOfRaceDriverSelectMenu.UpdateLabelsRemaining();
this.outOfRaceDriverSelectMenu.UpdateLabelsRemaining();
ChampionshipRules.RaceStart raceStart = Game.instance.sessionManager.championship.rules.raceStart;
ChampionshipRules.RaceStart raceStart = Game.instance.sessionManager.championship.rules.raceStart;
if (raceStart == ChampionshipRules.RaceStart.RollingStart)
if (raceStart == ChampionshipRules.RaceStart.RollingStart)
{
{
this.gridLightsAnimator.SetTrigger("RollingStart");
this.gridLightsAnimator.SetTrigger("RollingStart");
}
}
this.sessionHudStandingsWidget.OnModeChanged(UISessionStandingsModeWidget.StandingsModes.StandingsMini);
this.sessionHudStandingsWidget.OnModeChanged(UISessionStandingsModeWidget.StandingsModes.StandingsMini);
this.playBackWidget.OnEnter();
this.playBackWidget.OnEnter();
GameUtility.SetActive(this.sessionHudStandingsWidget, true);
GameUtility.SetActive(this.sessionHudStandingsWidget, true);
}
}


public void SetupNavigationBarsCanvases()
public void SetupNavigationBarsCanvases()
{
{
if (UIManager.instance.navigationBars.topBar.canvas.worldCamera != this.sessionHUDCamera)
if (UIManager.instance.navigationBars.topBar.canvas.worldCamera != this.sessionHUDCamera)
{
{
UIManager.instance.navigationBars.topBar.canvas.worldCamera = this.sessionHUDCamera;
UIManager.instance.navigationBars.topBar.canvas.worldCamera = this.sessionHUDCamera;
UIManager.instance.navigationBars.tutorialCanvas.worldCamera = this.sessionHUDCamera;
UIManager.instance.navigationBars.tutorialCanvas.worldCamera = this.sessionHUDCamera;
UIManager.instance.dialogBoxManager.canvas.worldCamera = this.sessionHUDCamera;
UIManager.instance.dialogBoxManager.canvas.worldCamera = this.sessionHUDCamera;
}
}
}
}


public void StartGridLightAnimation()
public void StartGridLightAnimation()
{
{
this.mSoundContainer = scSoundManager.Instance.PlaySound(SoundID.Sfx_RaceStartLights, 0f);
this.mSoundContainer = scSoundManager.Instance.PlaySound(SoundID.Sfx_RaceStartLights, 0f);
this.gridLights.SetActive(true);
this.gridLights.SetActive(true);
}
}


public override void OnExit()
public override void OnExit()
{
{
this.toggleStyleInilized = false;
base.OnExit();
base.OnExit();
this.ExitWidgets();
this.ExitWidgets();
UIManager.instance.SetupCanvasCamera(UIManager.instance.navigationBars.topBar.canvas);
UIManager.instance.SetupCanvasCamera(UIManager.instance.navigationBars.topBar.canvas);
UIManager.instance.SetupCanvasCamera(UIManager.instance.navigationBars.tutorialCanvas);
UIManager.instance.SetupCanvasCamera(UIManager.instance.navigationBars.tutorialCanvas);
UIManager.instance.SetupCanvasCamera(UIManager.instance.dialogBoxManager.canvas);
UIManager.instance.SetupCanvasCamera(UIManager.instance.dialogBoxManager.canvas);
App.instance.cameraManager.SetRunningMode(true);
App.instance.cameraManager.SetRunningMode(true);
this.simulation2D.Hide();
this.simulation2D.Hide();
}
}


public void ExitWidgets()
public void ExitWidgets()
{
{
this.sessionTeamRadionWidget.OnExit();
this.sessionTeamRadionWidget.OnExit();
this.fastestLapWidget.OnExit();
this.fastestLapWidget.OnExit();
this.remainingLapsWidget.OnExit();
this.remainingLapsWidget.OnExit();
this.sponsorStatusChangeWidget.OnExit();
this.sponsorStatusChangeWidget.OnExit();
this.sessionWaitLeaderWidget.OnExit();
this.sessionWaitLeaderWidget.OnExit();
for (int i = 0; i < 2; i++)
for (int i = 0; i < 2; i++)
{
{
this.actionButtons[i].OnExit();
this.actionButtons[i].OnExit();
}
}
}
}


public override void OnFocus()
public override void OnFocus()
{
{
base.OnFocus();
base.OnFocus();
this.SetupNavigationBarsCanvases();
this.SetupNavigationBarsCanvases();
}
}


private void Update()
private void Update()
{
{
this.SetupNavigationBarsCanvases();
this.SetupNavigationBarsCanvases();
GameUtility.SetActive(this.rollingStartWidget, Game.instance.sessionManager.isRollingOut);
GameUtility.SetActive(this.rollingStartWidget, Game.instance.sessionManager.isRollingOut);
this.sessionWaitLeaderWidget.CheckDisplay();
this.sessionWaitLeaderWidget.CheckDisplay();
if (this.mSimulationTutorialIDS.Count > 0)
if (this.mSimulationTutorialIDS.Count > 0)
{
{
this.mTimer -= GameTimer.deltaTime;
this.mTimer -= GameTimer.deltaTime;
if (this.mTimer <= 0f)
if (this.mTimer <= 0f)
{
{
DialogRule ruleByID = App.instance.dialogRulesManager.GetRuleByID(this.mSimulationTutorialIDS[0]);
DialogRule ruleByID = App.instance.dialogRulesManager.GetRuleByID(this.mSimulationTutorialIDS[0]);
App.instance.tutorialSimulation.AddTutorial(ruleByID);
App.instance.tutorialSimulation.AddTutorial(ruleByID);
this.mSimulationTutorialIDS.RemoveAt(0);
this.mSimulationTutorialIDS.RemoveAt(0);
this.mTimer = UnityEngine.Random.Range(20f, 30f);
this.mTimer = UnityEngine.Random.Range(20f, 30f);
}
}
}
}
if (!this.gridLights.activeSelf)
if (!this.gridLights.activeSelf)
{
{
this.sponsorStatusChangeWidget.CheckForStatusChange();
this.sponsorStatusChangeWidget.CheckForStatusChange();
}
}
if (Game.instance.sessionManager.flag == SessionManager.Flag.None)
if (Game.instance.sessionManager.flag == SessionManager.Flag.None)
{
{
if (Game.instance.time.isPaused)
if (Game.instance.time.isPaused)
{
{
if (this.mSoundContainer != null)
if (this.mSoundContainer != null)
{
{
this.mSoundContainer.Pause();
this.mSoundContainer.Pause();
}
}
this.gridLightsAnimator.speed = 0f;
this.gridLightsAnimator.speed = 0f;
}
}
else
else
{
{
if (this.mSoundContainer != null)
if (this.mSoundContainer != null)
{
{
this.mSoundContainer.UnPause();
this.mSoundContainer.UnPause();
}
}
this.gridLightsAnimator.speed = 1f;
this.gridLightsAnimator.speed = 1f;
}
}
}
}
GameUtility.SetActive(this.sabotageDriverContainer, Game.instance.sessionManager.sessionType == SessionDetails.SessionType.Race && Game.instance.challengeManager.challengeGameData.isSabotageDriverOptionActive && Game.instance.challengeManager.challengeGameData.sabotageDriverCount > 0);
GameUtility.SetActive(this.sabotageDriverContainer, Game.instance.sessionManager.sessionType == SessionDetails.SessionType.Race && Game.instance.challengeManager.challengeGameData.isSabotageDriverOptionActive && Game.instance.challengeManager.challengeGameData.sabotageDriverCount > 0);
this.sprinklersWidget.UpdateForActivation();
this.sprinklersWidget.UpdateForActivation();
SessionSimSpeedDirector.State state = Game.instance.sessionManager.raceDirector.sessionSimSpeedDirector.state;
SessionSimSpeedDirector.State state = Game.instance.sessionManager.raceDirector.sessionSimSpeedDirector.state;
bool activeSelf = this.miniCameraViewContainer.activeSelf;
bool activeSelf = this.miniCameraViewContainer.activeSelf;
bool flag = !App.instance.preferencesManager.videoPreferences.isRunning2DMode && SceneManager.instance.hasLoaded3DGeometry;
bool flag = !App.instance.preferencesManager.videoPreferences.isRunning2DMode && SceneManager.instance.hasLoaded3DGeometry;
GameUtility.SetActive(this.miniCameraViewContainer, flag && Simulation2D.instance.isActive && state != SessionSimSpeedDirector.State.Inactive && state != SessionSimSpeedDirector.State.Active);
GameUtility.SetActive(this.miniCameraViewContainer, flag && Simulation2D.instance.isActive && state != SessionSimSpeedDirector.State.Inactive && state != SessionSimSpeedDirector.State.Active);
if (activeSelf != this.miniCameraViewContainer.activeSelf)
if (activeSelf != this.miniCameraViewContainer.activeSelf)
{
{
this.miniCameraViewWidget.SetupText();
this.miniCameraViewWidget.SetupText();
}
}
}
}


private void RegisterPracticeKnowledgeEvents()
private void RegisterPracticeKnowledgeEvents()
{
{
SessionDetails.SessionType sessionType = Game.instance.sessionManager.sessionType;
SessionDetails.SessionType sessionType = Game.instance.sessionManager.sessionType;
PracticeReportSessionData playerPracticeReportData = Game.instance.persistentEventData.GetPlayerPracticeReportData();
PracticeReportSessionData playerPracticeReportData = Game.instance.persistentEventData.GetPlayerPracticeReportData();
PracticeReportKnowledgeData[] knowledgeData = playerPracticeReportData.GetKnowledgeData();
PracticeReportKnowledgeData[] knowledgeData = playerPracticeReportData.GetKnowledgeData();
if (sessionType == SessionDetails.SessionType.Practice)
if (sessionType == SessionDetails.SessionType.Practice)
{
{
for (int i = 0; i < knowledgeData.Length; i++)
for (int i = 0; i < knowledgeData.Length; i++)
{
{
knowledgeData[i].onLevelUnlocked.RemoveAllListeners();
knowledgeData[i].onLevelUnlocked.RemoveAllListeners();
knowledgeData[i].onLevelUnlocked.AddListener(new UnityAction<PracticeReportKnowledgeData>(this.OnKnowledgeLevelUnlocked));
knowledgeData[i].onLevelUnlocked.AddListener(new UnityAction<PracticeReportKnowledgeData>(this.OnKnowledgeLevelUnlocked));
}
}
}
}
else
else
{
{
for (int j = 0; j < knowledgeData.Length; j++)
for (int j = 0; j < knowledgeData.Length; j++)
{
{
knowledgeData[j].onLevelUnlocked.RemoveAllListeners();
knowledgeData[j].onLevelUnlocked.RemoveAllListeners();
}
}
GameUtility.SetActive(this.mPracticeKnowledgeUnlocked.gameObject, false);
GameUtility.SetActive(this.mPracticeKnowledgeUnlocked.gameObject, false);
}
}
}
}


private void OnKnowledgeLevelUnlocked(PracticeReportKnowledgeData inPracticeKnowledge)
private void OnKnowledgeLevelUnlocked(PracticeReportKnowledgeData inPracticeKnowledge)
{
{
this.mPracticeKnowledgeUnlocked.Show(inPracticeKnowledge);
this.mPracticeKnowledgeUnlocked.Show(inPracticeKnowledge);
}
}


private void OnGUI()
{
this.toggleStyle = GUI.skin.toggle;
this.InitializeToggle();
if (GUI.Toggle(this.firstRect, this.autoPit, "Auto Pit", this.toggleStyle) != this.autoPit)
{
this.autoPit = !this.autoPit;
if (this.autoPit)
{
ConsoleCommands.useAIForPitting = true;
return;
}
ConsoleCommands.useAIForPitting = false;
}
if (GUI.Toggle(this.secondRect, this.autoRace, "Auto Strategy", this.toggleStyle) != this.autoRace)
{
this.autoRace = !this.autoRace;
if (this.autoRace)
{
ConsoleCommands.useAIForDrivers = true;
return;
}
ConsoleCommands.useAIForDrivers = false;
}
}

public void InitializeToggle()
{
if (this.toggleStyleInilized)
{
return;
}
this.firstRect = new Rect((float)Screen.width * 0.30781f, (float)Screen.height * 0.86203f, (float)Screen.width * 0.07552f, (float)Screen.height * 0.049074f);
this.secondRect = new Rect((float)Screen.width * 0.61614f, (float)Screen.height * 0.86203f, (float)Screen.width * 0.07552f, (float)Screen.height * 0.049074f);
this.toggleStyle.border = new RectOffset(5, 5, 5, 5);
this.toggleStyle.imagePosition = ImagePosition.TextOnly;
this.toggleStyle.alignment = TextAnchor.MiddleCenter;
this.toggleStyle.margin = new RectOffset(0, 0, 0, 0);
this.toggleStyle.fontSize = Mathf.FloorToInt((float)Screen.height * 0.013f);
this.toggleStyleInilized = true;
}

public Camera sessionHUDCamera;
public Camera sessionHUDCamera;


public SprinklersWidget sprinklersWidget;
public SprinklersWidget sprinklersWidget;


public DriverActionButtons[] actionButtons;
public DriverActionButtons[] actionButtons;


public StandingsWidget[] standingsWidget;
public StandingsWidget[] standingsWidget;


public FastestLapWidget fastestLapWidget;
public FastestLapWidget fastestLapWidget;


public UISessionCommentaryWidget commentaryWidget;
public UISessionCommentaryWidget commentaryWidget;


public MinimapWidget minimapWidget;
public MinimapWidget minimapWidget;


public UIDriverInfoHUD driverInfoHUD;
public UIDriverInfoHUD driverInfoHUD;


public UISessionTeamRadioWidget sessionTeamRadionWidget;
public UISessionTeamRadioWidget sessionTeamRadionWidget;


public SessionFlagsWidget sessionFlagsWidget;
public SessionFlagsWidget sessionFlagsWidget;


public GameObject gridLights;
public GameObject gridLights;


public Animator gridLightsAnimator;
public Animator gridLightsAnimator;


public RemainingLapsWidget remainingLapsWidget;
public RemainingLapsWidget remainingLapsWidget;


public SponsorStatusChangeWidget sponsorStatusChangeWidget;
public SponsorStatusChangeWidget sponsorStatusChangeWidget;


public OutOfRaceDriverSelectionMenu outOfRaceDriverSelectMenu;
public OutOfRaceDriverSelectionMenu outOfRaceDriverSelectMenu;


public Button sabotageDriversButton;
public Button sabotageDriversButton;


public GameObject sabotageDriverContainer;
public GameObject sabotageDriverContainer;


public SessionHudStandingsWidget sessionHudStandingsWidget;
public SessionHudStandingsWidget sessionHudStandingsWidget;


public PlaybackWidget playBackWidget;
public PlaybackWidget playBackWidget;


public RollingStartWidget rollingStartWidget;
public RollingStartWidget rollingStartWidget;


public SessionWaitLeaderWidget sessionWaitLeaderWidget;
public SessionWaitLeaderWidget sessionWaitLeaderWidget;


public DriverSessionFormRollover driverSessionFormRollover;
public DriverSessionFormRollover driverSessionFormRollover;


public GameObject miniCameraViewContainer;
public GameObject miniCameraViewContainer;


public SuperSpeedSlowDownWidget miniCameraViewWidget;
public SuperSpeedSlowDownWidget miniCameraViewWidget;


public Simulation2D simulation2D;
public Simulation2D simulation2D;


[SerializeField]
[SerializeField]
private UISessionPracticeKnowledgeUnlockedWidget mPracticeKnowledgeUnlocked;
private UISessionPracticeKnowledgeUnlockedWidget mPracticeKnowledgeUnlocked;


private scSoundContainer mSoundContainer;
private scSoundContainer mSoundContainer;


private float mTimer;
private float mTimer;


private List<string> mSimulationTutorialIDS = new List<string>();
private List<string> mSimulationTutorialIDS = new List<string>();

private bool autoRace = ConsoleCommands.useAIForDrivers;

private GUIStyle toggleStyle;

public bool toggleStyleInilized;

private Rect firstRect;

private Rect secondRect;

private bool autoPit;
}
}