SavePoint.cs 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. using System;
  2. using Core;
  3. using UnityEngine;
  4. public class SavePoint : BaseBehaviour
  5. {
  6. private bool _hasRecovered
  7. {
  8. get
  9. {
  10. return RoundStorage.Get(LevelManager.SceneName + "HasRecovered", false);
  11. }
  12. set
  13. {
  14. RoundStorage.Set(LevelManager.SceneName + "HasRecovered", value);
  15. }
  16. }
  17. private bool HasConquer
  18. {
  19. get
  20. {
  21. return SaveStorage.Get(LevelManager.SceneName + "HasConquer", false);
  22. }
  23. set
  24. {
  25. SaveStorage.Set(LevelManager.SceneName + "HasConquer", value);
  26. }
  27. }
  28. private void Start()
  29. {
  30. this.HasConquer = true;
  31. R.Ui.Enhancement.OnFinish += this.OnEnhancementFinish;
  32. }
  33. private void OnDestroy()
  34. {
  35. if (!SingletonMono<UIController>.ApplicationIsQuitting)
  36. {
  37. R.Ui.Enhancement.OnFinish -= this.OnEnhancementFinish;
  38. R.Ui.SaveProgressCircle.Disappear();
  39. }
  40. }
  41. private void OnTriggerEnter2D(Collider2D collision)
  42. {
  43. if (!collision.CompareTag("Player") || this._hasSaved)
  44. {
  45. return;
  46. }
  47. this._hasSaved = true;
  48. if (!this._hasRecovered)
  49. {
  50. R.Player.Attribute.AllAttributeRecovery();
  51. this._hasRecovered = true;
  52. }
  53. this.Save();
  54. }
  55. private void OnTriggerStay2D(Collider2D collision)
  56. {
  57. if (!collision.CompareTag("Player"))
  58. {
  59. return;
  60. }
  61. if (Core.Input.Game.Search.OnClick)
  62. {
  63. this._prompt.FadeOut();
  64. this._animator.SetBool("IsShopping", true);
  65. }
  66. }
  67. private void Save()
  68. {
  69. R.GameData.Save(false);
  70. this._animator.SetTrigger("Save");
  71. }
  72. private void OnEnhancementFinish(object sender, EventArgs e)
  73. {
  74. this._animator.SetBool("IsShopping", false);
  75. }
  76. private bool _hasSaved;
  77. [SerializeField]
  78. private Animator _animator;
  79. [SerializeField]
  80. private GateEnterPrompt _prompt;
  81. }