StoryE24P1.cs 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. using System;
  2. using System.Collections;
  3. using GameWorld;
  4. using I2.Loc;
  5. using UnityEngine;
  6. [RequireComponent(typeof(BoxCollider2D))]
  7. public class StoryE24P1 : BaseBehaviour
  8. {
  9. private void OnEnable()
  10. {
  11. EventManager.RegisterEvent<BattleEventArgs>("Battle", new EventManager.FBEventHandler<BattleEventArgs>(this.OnBattle), EventManager.ListenerQueue.Game);
  12. }
  13. private void OnDisable()
  14. {
  15. EventManager.UnregisterEvent<BattleEventArgs>("Battle", new EventManager.FBEventHandler<BattleEventArgs>(this.OnBattle), EventManager.ListenerQueue.Game);
  16. }
  17. public void OnTriggerEnter2D(Collider2D collision)
  18. {
  19. if (this._hasTrigger || !collision.CompareTag("Player"))
  20. {
  21. return;
  22. }
  23. this._hasTrigger = true;
  24. base.StartCoroutine(this.Sequence0());
  25. }
  26. private bool OnBattle(string eventName, object sender, BattleEventArgs battleEventArgs)
  27. {
  28. BattleEventArgs.BattleStatus status = battleEventArgs.Status;
  29. if (status != BattleEventArgs.BattleStatus.Begin)
  30. {
  31. if (status != BattleEventArgs.BattleStatus.End)
  32. {
  33. throw new ArgumentOutOfRangeException();
  34. }
  35. this._collider.enabled = true;
  36. this._guideBoard.SetActive(true);
  37. }
  38. else
  39. {
  40. this._gate1.openType = SceneGate.OpenType.None;
  41. }
  42. return true;
  43. }
  44. private IEnumerator Sequence0()
  45. {
  46. yield return R.Audio.PlayVoiceOverArray(new string[]
  47. {
  48. "e24t1",
  49. "e24t2"
  50. }, 0f, null, 0f);
  51. yield return new WaitForSeconds(2f);
  52. yield return R.Audio.PlayVoiceOver("e24t3", null, false);
  53. yield return R.Ui.Terminal.OpenWithAnim(null);
  54. yield return R.Ui.Terminal.Println(ScriptLocalization.Story.e24s1, 0.1f);
  55. yield return R.Ui.Terminal.ShowProgressBar(0f);
  56. yield return R.Ui.Terminal.SetProgressBarValueWithAnim(1f, 3f);
  57. yield return new WaitForSeconds(1f);
  58. yield return R.Ui.Terminal.HideProgressBar();
  59. yield return R.Ui.Terminal.CloseWithAnim();
  60. LevelManager.LoadLevelByGateId("C2L2S1", SceneGate.OpenType.Left);
  61. yield break;
  62. }
  63. private bool _hasTrigger;
  64. [SerializeField]
  65. private SceneGate _gate1;
  66. [SerializeField]
  67. private GameObject _guideBoard;
  68. [SerializeField]
  69. private Collider2D _collider;
  70. }