using System; using System.Collections; using TMPro; using UnityEngine; using UnityEngine.EventSystems; using UnityEngine.UI; using UnityEngine.Video; // Token: 0x020000A2 RID: 162 public class DeathScreen : MonoBehaviour { // Token: 0x06000F36 RID: 3894 RVA: 0x001281FC File Offset: 0x001263FC public void Setup() { if (Links.x.sensory) { Records.x.SetTypingState(true); Links.x.gameplay.TogglePause(true); Records.x.RemoveControls(true); } this.startVideo.enabled = false; if (this.rt != null) { this.rt.Release(); } RenderTextureFormat renderTextureFormat = RenderTextureFormat.Default; this.rt = new RenderTexture(1920, 1080, 24, renderTextureFormat); this.startVideo.targetTexture = this.rt; this.videoImg.texture = this.rt; this.done = false; this.skipText.enabled = false; RenderTexture active = RenderTexture.active; RenderTexture.active = this.rt; GL.Clear(true, true, Color.black); RenderTexture.active = active; if (!this.forDemo) { this.animator.Play("DeathScreenVideo"); } Time.timeScale = 1f; if (this.forDemo) { this.WatchTrailer(); return; } this.coroutineStart = this.VideoStart(); base.StartCoroutine(this.coroutineStart); } // Token: 0x06000F37 RID: 3895 RVA: 0x0012831F File Offset: 0x0012651F private IEnumerator VideoStart() { Links.x.gaia.PlayFade("Out", "Unscaled"); yield return new WaitForSecondsRealtime(0.5f); RenderTexture active = RenderTexture.active; RenderTexture.active = this.startVideo.targetTexture; GL.Clear(true, true, Color.black); RenderTexture.active = active; Links.x.gaia.PlayFade("In", "Unscaled"); if (Records.x.linux) { this.startVideo.clip = this.mmVideoStartLinux; } else if (!Records.x.linux && (Records.x.windows7 || Records.x.alwaysPlayTranscodedVideo)) { this.startVideo.clip = this.mmVideoStartWindows7; } else { this.startVideo.clip = this.mmVideoStart; } if (this.forDemo) { this.startVideo.isLooping = true; } this.startVideo.targetTexture = this.rt; this.videoImg.texture = this.rt; this.startVideo.SetDirectAudioVolume(0, Links.x.options.musicVolume); RenderTexture active2 = RenderTexture.active; RenderTexture.active = this.startVideo.targetTexture; GL.Clear(true, true, Color.black); RenderTexture.active = active2; this.startVideo.enabled = true; this.startVideo.started += this.VideoStarted; this.startVideo.loopPointReached += this.EndReached; this.videoImg.enabled = true; yield break; } // Token: 0x06000F38 RID: 3896 RVA: 0x00128330 File Offset: 0x00126530 private void Update() { float num = this.rectTransformBlack.sizeDelta.x; float num2 = this.rectTransformBlack.sizeDelta.y; float num3 = (float)Screen.width / (float)Screen.height; float num4 = 1.7777778f; if (num3 != num4) { if (num3 > num4) { num = num2 * num4; } else { num2 = num / num4; } } this.rectTransform.sizeDelta = new Vector2(num, num2); } // Token: 0x06000F39 RID: 3897 RVA: 0x00128397 File Offset: 0x00126597 public void VideoStarted(VideoPlayer vp) { base.StartCoroutine(this.VideoStarting()); } // Token: 0x06000F3A RID: 3898 RVA: 0x001283A6 File Offset: 0x001265A6 private IEnumerator VideoStarting() { if (Time.timeScale > 0.5f) { Time.timeScale = 1f; } this.skipText.enabled = false; this.skipText.spriteAsset = Links.x.GetSpriteSheetAsset(Links.x.gameplay.currentSpriteSheetAsset); this.str.Clear(); this.str.Append("Skip "); this.str.Append(" "); } else { int controllerSprite = Links.x.gameplay.GetControllerSprite("Cancel", Links.x.gameplay.controllerName); this.str.Append(controllerSprite); this.str.Append(">"); } this.skipText.text = this.str.ToString(); float timeToLerp = 1f; float percentage = 0f; float startTime = Time.time; while (percentage < 1f) { if (Time.timeScale > 0.5f) { Time.timeScale = 1f; } percentage = (Time.time - startTime) / timeToLerp; yield return null; } this.skipText.enabled = true; timeToLerp = 6f; percentage = 0f; startTime = Time.time; while (percentage < 1f && !this.Clicked()) { if (Time.timeScale > 0.5f) { Time.timeScale = 1f; } percentage = (Time.time - startTime) / timeToLerp; yield return null; } if (!this.done && !this.forDemo) { this.animator.Play("DeathScreenIn"); this.SetFirstObject(); } yield break; } // Token: 0x06000F3B RID: 3899 RVA: 0x001283B5 File Offset: 0x001265B5 public void SetFirstObject() { this.skipText.enabled = false; if (Links.x.joy) { base.StartCoroutine(this.WaitToSetFirstObject()); } } // Token: 0x06000F3C RID: 3900 RVA: 0x001283DC File Offset: 0x001265DC private void OnDestroy() { if (this.rt != null) { this.rt.Release(); } } // Token: 0x06000F3D RID: 3901 RVA: 0x001283F7 File Offset: 0x001265F7 private IEnumerator WaitToSetFirstObject() { yield return new WaitForSeconds(0.1f); while (!this.loadBtn.activeSelf || !this.loadBtn.activeInHierarchy) { yield return null; } EventSystem.current.SetSelectedGameObject(this.loadBtn); this.loadBtn.GetComponent().SetSelected(true); yield break; } // Token: 0x06000F3E RID: 3902 RVA: 0x00128406 File Offset: 0x00126606 public void EndReached(VideoPlayer vp) { if (!this.forDemo) { vp.enabled = false; this.videoImg.enabled = false; } this.done = true; } // Token: 0x06000F3F RID: 3903 RVA: 0x0012842A File Offset: 0x0012662A public void DeathScreenOut() { Links.x.hudControl.JoyBox(false); this.startVideo.enabled = false; this.videoImg.enabled = false; this.animator.Play("DeathScreenOut"); } // Token: 0x06000F40 RID: 3904 RVA: 0x00128464 File Offset: 0x00126664 public void DeathScreenOut2() { Links.x.hudControl.JoyBox(false); this.startVideo.enabled = false; this.videoImg.enabled = false; this.animator.Play("DeathScreenOut2"); } // Token: 0x06000F41 RID: 3905 RVA: 0x0012849E File Offset: 0x0012669E public void TurnOffScreen() { base.gameObject.SetActive(false); if (this.rt != null) { this.rt.Release(); } } // Token: 0x06000F42 RID: 3906 RVA: 0x001284C8 File Offset: 0x001266C8 private bool Clicked() { if (Links.x.joy) { if (Links.x.gameplay.cancelStart || Links.x.gameplay.actionStart || Links.x.gameplay.interactStart) { return true; } } else if (Input.GetMouseButtonUp(0) || Input.GetMouseButtonUp(1) || Input.GetKeyDown(KeyCode.Space) || Input.GetKeyDown(KeyCode.Return)) { return true; } return false; } // Token: 0x06000F43 RID: 3907 RVA: 0x0012853B File Offset: 0x0012673B public void ReturnToGame() { Records.x.RemoveControls(false); Links.x.gameplay.TogglePause(false); Records.x.SetTypingState(false); base.gameObject.SetActive(false); } // Token: 0x06000F44 RID: 3908 RVA: 0x0012856F File Offset: 0x0012676F public void BuyGame() { if (Links.x.main) { EventSystem.current.SetSelectedGameObject(null); } Application.OpenURL("https://banquetforfools.com/"); } // Token: 0x06000F45 RID: 3909 RVA: 0x00128597 File Offset: 0x00126797 public void WatchTrailer() { this.animator.Play("DemoScreenTrailer"); if (Links.x.mk) { EventSystem.current.SetSelectedGameObject(null); } base.StartCoroutine(this.TrailerStart()); } // Token: 0x06000F46 RID: 3910 RVA: 0x001285CD File Offset: 0x001267CD private IEnumerator TrailerStart() { RenderTextureFormat renderTextureFormat = RenderTextureFormat.ARGB32; this.rt = new RenderTexture(1920, 1080, 24, renderTextureFormat); this.startVideo.targetTexture = this.rt; this.videoImg.texture = this.rt; this.startVideo.isLooping = false; this.startVideo.SetDirectAudioVolume(0, Links.x.options.musicVolume); yield return new WaitForSecondsRealtime(0.25f); this.startVideo.enabled = true; this.startVideo.loopPointReached += this.TrailerEndReached; this.videoImg.enabled = true; yield break; } // Token: 0x06000F47 RID: 3911 RVA: 0x001285DC File Offset: 0x001267DC public void TrailerEndReached(VideoPlayer vp) { this.coroutineStart = this.VideoStart(); base.StartCoroutine(this.coroutineStart); this.animator.Play("DemoScreenIn", 0, 0f); this.startVideo.loopPointReached -= this.TrailerEndReached; this.startVideo.isLooping = true; } // Token: 0x040018FE RID: 6398 public VideoPlayer startVideo; // Token: 0x040018FF RID: 6399 public VideoPlayer loopVideo; // Token: 0x04001900 RID: 6400 public VideoClip mmVideoStart; // Token: 0x04001901 RID: 6401 public VideoClip mmVideoStartLinux; // Token: 0x04001902 RID: 6402 public VideoClip mmVideoStartWindows7; // Token: 0x04001903 RID: 6403 public VideoClip trailerVideo; // Token: 0x04001904 RID: 6404 public VideoClip trailerVideoLinux; // Token: 0x04001905 RID: 6405 public RawImage videoImg; // Token: 0x04001906 RID: 6406 private RenderTexture rt; // Token: 0x04001907 RID: 6407 private IEnumerator coroutineStart; // Token: 0x04001908 RID: 6408 public Animator animator; // Token: 0x04001909 RID: 6409 private int clickCount; // Token: 0x0400190A RID: 6410 private float clickTime; // Token: 0x0400190B RID: 6411 private bool done; // Token: 0x0400190C RID: 6412 public bool forDemo; // Token: 0x0400190D RID: 6413 public RectTransform rectTransform; // Token: 0x0400190E RID: 6414 public RectTransform rectTransformBlack; // Token: 0x0400190F RID: 6415 public GameObject loadBtn; // Token: 0x04001910 RID: 6416 public TextMeshProUGUI skipText; // Token: 0x04001911 RID: 6417 private StringFast str = new StringFast(32); }