StoryE14P1.cs 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  1. using System;
  2. using System.Collections;
  3. using I2.Loc;
  4. using UnityEngine;
  5. public class StoryE14P1 : BaseBehaviour
  6. {
  7. private bool IsFirstTime
  8. {
  9. get
  10. {
  11. return RoundStorage.Get("E14_p1IsFirstTime", true);
  12. }
  13. set
  14. {
  15. RoundStorage.Set("E14_p1IsFirstTime", value);
  16. }
  17. }
  18. private void Start()
  19. {
  20. if (this.IsFirstTime)
  21. {
  22. R.Audio.StopBGM(true);
  23. base.StartCoroutine(this.P1Coroutine());
  24. }
  25. else
  26. {
  27. this.musicPlayer.gameObject.SetActive(false);
  28. }
  29. }
  30. private IEnumerator P1Coroutine()
  31. {
  32. this.gate.openType = SceneGate.OpenType.None;
  33. yield return R.Audio.PlayVoiceOver("e14t1", null, false);
  34. this.musicPlayer.SetLimited(25);
  35. while (this.musicPlayer.currentHP > 25)
  36. {
  37. yield return null;
  38. }
  39. this.musicPlayer.ChangeState(MusicPlayerAction.State.ChangeMusic);
  40. R.Audio.PlayBGM(280, true);
  41. yield return R.Audio.PlayVoiceOver("e14t2", null, false);
  42. this.musicPlayer.SetLimited(20);
  43. while (this.musicPlayer.currentHP > 20)
  44. {
  45. yield return null;
  46. }
  47. this.musicPlayer.ChangeState(MusicPlayerAction.State.ChangeMusic);
  48. R.Audio.PlayBGM(289, true);
  49. yield return R.Audio.PlayVoiceOver("e14t3", null, false);
  50. this.musicPlayer.SetLimited(15);
  51. while (this.musicPlayer.currentHP > 15)
  52. {
  53. yield return null;
  54. }
  55. R.Audio.PlayBGM(472, true);
  56. for (int i = 0; i < this._timeSpans.Length; i++)
  57. {
  58. yield return new WaitForSeconds(this._timeSpans[i]);
  59. if (R.Settings.SubtitleVisiable)
  60. {
  61. string subtitle = ScriptLocalization.Get("Story/e14s2." + i);
  62. R.Ui.UISubtitle.FadeIn(subtitle);
  63. }
  64. }
  65. if (R.Settings.SubtitleVisiable)
  66. {
  67. R.Ui.UISubtitle.FadeOut();
  68. }
  69. SingletonMono<WorldTime>.Instance.TimeFrozen(1f, WorldTime.FrozenArgs.FrozenType.Player, false);
  70. R.Audio.StopBGM(true);
  71. CameraFilterUtils.Create<CameraFilterPack_VHS_Tracking>(null);
  72. yield return R.Audio.PlayVoiceOver("e14t4", null, false);
  73. SingletonMono<WorldTime>.Instance.FrozenResume();
  74. CameraFilterUtils.Remove<CameraFilterPack_VHS_Tracking>(null);
  75. yield return R.Audio.PlayVoiceOver("e14t5", null, false);
  76. this.musicPlayer.SetLimited(10);
  77. while (this.musicPlayer.currentHP > 10)
  78. {
  79. yield return null;
  80. }
  81. this.thunder.SetActive(true);
  82. AudioSource audio476 = R.Audio.PlayEffect(476, new Vector3?(this.musicPlayer.transform.position));
  83. audio476.loop = true;
  84. yield return R.Audio.PlayVoiceOver("e14t6", null, false);
  85. this.musicPlayer.SetLimited(5);
  86. while (this.musicPlayer.currentHP > 5)
  87. {
  88. yield return null;
  89. }
  90. UnityEngine.Object.Destroy(audio476.gameObject);
  91. this.thunder.GetComponent<ParticleSystem>().emissionRate = 10f;
  92. AudioSource audio477 = R.Audio.PlayEffect(477, new Vector3?(this.musicPlayer.transform.position));
  93. audio477.loop = true;
  94. this.musicPlayer.StartShake();
  95. R.Audio.PlayVoiceOver("e14t7", null, false);
  96. yield return new WaitForSeconds(1.2f);
  97. this.musicPlayer.SetLimited(0);
  98. this.musicPlayer.currentHP = 0;
  99. UnityEngine.Object.Destroy(audio477.gameObject);
  100. RoundStorage.Set("E14_P1", true);
  101. yield return R.Ui.Volume.Show(0f);
  102. yield return R.Ui.Volume.Hide();
  103. yield return R.Audio.PlayVoiceOver("e14t8", null, false);
  104. this.gate.openType = SceneGate.OpenType.Right;
  105. this.IsFirstTime = false;
  106. yield break;
  107. }
  108. [SerializeField]
  109. private MusicPlayerAction musicPlayer;
  110. [SerializeField]
  111. private SceneGate gate;
  112. [SerializeField]
  113. private GameObject thunder;
  114. private readonly float[] _timeSpans = new float[]
  115. {
  116. 19.655f,
  117. 4.745f,
  118. 1.118f,
  119. 3.918f,
  120. 3.181f,
  121. 3.263f,
  122. 3.92f,
  123. 5.321f,
  124. 3.879f,
  125. 4.243f,
  126. 5.882f,
  127. 3.358f,
  128. 6.717f,
  129. 7.166f,
  130. 3.53f,
  131. 4.846f,
  132. 5.1f,
  133. 6.399f,
  134. 3.967f,
  135. 6.184f
  136. };
  137. }