net.dreditor.minigames 0.1.6 → 0.1.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (167) hide show
  1. package/.attestation.p7m +0 -0
  2. package/BulletDifficulty.cs +36 -36
  3. package/BulletDifficulty.cs.meta +11 -11
  4. package/BulletDifficultyEditor.cs +380 -380
  5. package/BulletDifficultyEditor.cs.meta +11 -11
  6. package/DREditor.Minigames.asmdef +36 -36
  7. package/DREditor.Minigames.asmdef.meta +7 -7
  8. package/DifficultyEditorBase.cs +60 -60
  9. package/DifficultyEditorBase.cs.meta +11 -11
  10. package/IShatterGraphic.cs +32 -32
  11. package/IShatterGraphic.cs.meta +11 -11
  12. package/IShatterText.cs +33 -33
  13. package/IShatterText.cs.meta +11 -11
  14. package/InitializeTrialOffsets.cs +51 -51
  15. package/InitializeTrialOffsets.cs.meta +11 -11
  16. package/MinigameBuilderBase.cs +28 -28
  17. package/MinigameBuilderBase.cs.meta +11 -11
  18. package/MinigameControlsUIHandler.cs +94 -94
  19. package/MinigameControlsUIHandler.cs.meta +11 -11
  20. package/MinigameManagerBase.cs +197 -197
  21. package/MinigameManagerBase.cs.meta +11 -11
  22. package/QuestionToggle.cs +154 -154
  23. package/QuestionToggle.cs.meta +11 -11
  24. package/RestoreControlsUIPostDialogue.cs +100 -100
  25. package/RestoreControlsUIPostDialogue.cs.meta +1 -1
  26. package/{Samples → Samples~}/Bullet Shatter Mesh Generator.asset +23 -23
  27. package/{Samples → Samples~}/Bullet Shatter Mesh Generator.asset.meta +8 -8
  28. package/{Samples → Samples~}/HasStamina.asset +21 -21
  29. package/{Samples → Samples~}/HasStamina.asset.meta +8 -8
  30. package/{Samples → Samples~}/IsDrainingStamina.asset +21 -21
  31. package/{Samples → Samples~}/IsDrainingStamina.asset.meta +8 -8
  32. package/{Samples → Samples~}/MinigameInputAllowed.asset +21 -21
  33. package/{Samples → Samples~}/MinigameInputAllowed.asset.meta +8 -8
  34. package/{Samples → Samples~}/Minigame_Controls_UI_Handler.prefab +53 -53
  35. package/{Samples → Samples~}/Minigame_Controls_UI_Handler.prefab.meta +7 -7
  36. package/{Samples → Samples~}/Quad Shatter.asset +31 -31
  37. package/{Samples → Samples~}/Quad Shatter.asset.meta +8 -8
  38. package/{Samples → Samples~}/ShatterCameraEnabled.asset +21 -21
  39. package/{Samples → Samples~}/ShatterCameraEnabled.asset.meta +8 -8
  40. package/{Samples → Samples~}/Shatter_Graphic.prefab +98 -98
  41. package/{Samples → Samples~}/Shatter_Graphic.prefab.meta +7 -7
  42. package/{Samples → Samples~}/Stamina_Handler.prefab +59 -59
  43. package/{Samples → Samples~}/Stamina_Handler.prefab.meta +7 -7
  44. package/{Samples → Samples~}/TBS_Manager_Shell.prefab +60 -60
  45. package/{Samples → Samples~}/TBS_Manager_Shell.prefab.meta +7 -7
  46. package/{Samples → Samples~}/TBS_Manager_Template.prefab +504 -504
  47. package/{Samples → Samples~}/TBS_Manager_Template.prefab.meta +7 -7
  48. package/{Samples → Samples~}/Trial_UI_Shatter_Canvas_Shell.prefab +289 -289
  49. package/{Samples → Samples~}/Trial_UI_Shatter_Canvas_Shell.prefab.meta +7 -7
  50. package/{Samples → Samples~}/Trial_UI_Shatter_Canvas_Template.prefab +449 -449
  51. package/{Samples → Samples~}/Trial_UI_Shatter_Canvas_Template.prefab.meta +7 -7
  52. package/{Samples → Samples~}/Triangle Shatter.asset +31 -31
  53. package/{Samples → Samples~}/Triangle Shatter.asset.meta +8 -8
  54. package/{Samples → Samples~}/Truth_Bullet_Menu_Canvas_Shell.prefab +221 -221
  55. package/{Samples → Samples~}/Truth_Bullet_Menu_Canvas_Shell.prefab.meta +7 -7
  56. package/{Samples → Samples~}/Truth_Bullet_Menu_Canvas_Template.prefab +525 -525
  57. package/{Samples → Samples~}/Truth_Bullet_Menu_Canvas_Template.prefab.meta +7 -7
  58. package/{Samples → Samples~}/Truth_Bullet_Menu_Holder_Shell.prefab +38 -38
  59. package/{Samples → Samples~}/Truth_Bullet_Menu_Holder_Shell.prefab.meta +7 -7
  60. package/{Samples → Samples~}/Truth_Bullet_Menu_Holder_Template.prefab +1159 -1159
  61. package/{Samples → Samples~}/Truth_Bullet_Menu_Holder_Template.prefab.meta +7 -7
  62. package/{Samples → Samples~}/Truth_Bullet_Minigame_Canvas_Template.prefab +494 -494
  63. package/{Samples → Samples~}/Truth_Bullet_Minigame_Canvas_Template.prefab.meta +7 -7
  64. package/{Samples → Samples~}/Truth_Bullet_Option_ETemplate.prefab +294 -294
  65. package/{Samples → Samples~}/Truth_Bullet_Option_ETemplate.prefab.meta +7 -7
  66. package/Shattering/BreakTex.renderTexture +39 -39
  67. package/Shattering/BreakTex.renderTexture.meta +8 -8
  68. package/Shattering/BulletShatter.cs +176 -176
  69. package/Shattering/BulletShatter.cs.meta +11 -11
  70. package/Shattering/IShatterableCanvas.cs +20 -20
  71. package/Shattering/IShatterableCanvas.cs.meta +11 -11
  72. package/Shattering/MeshGenerator.cs +178 -178
  73. package/Shattering/MeshGenerator.cs.meta +11 -11
  74. package/Shattering/RenderCanvasOnShatter.cs +47 -47
  75. package/Shattering/RenderCanvasOnShatter.cs.meta +11 -11
  76. package/Shattering/ShatterCameraRender.cs +79 -79
  77. package/Shattering/ShatterCameraRender.cs.meta +11 -11
  78. package/Shattering/ShatterGraphic.cs +135 -135
  79. package/Shattering/ShatterGraphic.cs.meta +11 -11
  80. package/Shattering/ShatterMeshGraphic.cs +304 -304
  81. package/Shattering/ShatterMeshGraphic.cs.meta +11 -11
  82. package/Shattering/ShatterProcess.cs +282 -282
  83. package/Shattering/ShatterProcess.cs.meta +11 -11
  84. package/Shattering/ShatterProcessBase.cs +51 -51
  85. package/Shattering/ShatterProcessBase.cs.meta +11 -11
  86. package/Shattering/ShatterQuad.cs +56 -56
  87. package/Shattering/ShatterQuad.cs.meta +11 -11
  88. package/Shattering/ShatterQuadProcess.cs +65 -65
  89. package/Shattering/ShatterQuadProcess.cs.meta +11 -11
  90. package/Shattering/ShatterShape.cs +84 -84
  91. package/Shattering/ShatterShape.cs.meta +11 -11
  92. package/Shattering/ShatterTri.cs +27 -27
  93. package/Shattering/ShatterTri.cs.meta +11 -11
  94. package/Shattering/ShatterTriProcess.cs +179 -179
  95. package/Shattering/ShatterTriProcess.cs.meta +11 -11
  96. package/Shattering/ShatterWithUI.cs +68 -68
  97. package/Shattering/ShatterWithUI.cs.meta +11 -11
  98. package/Shattering/SplitShatter.cs +114 -114
  99. package/Shattering/SplitShatter.cs.meta +11 -11
  100. package/Shattering/TMPTextShatter.cs +243 -243
  101. package/Shattering/TMPTextShatter.cs.meta +11 -11
  102. package/Shattering/UIBreakVisibility.cs +172 -172
  103. package/Shattering/UIBreakVisibility.cs.meta +11 -11
  104. package/Shattering.meta +8 -8
  105. package/ShuffleUtility.cs +32 -32
  106. package/ShuffleUtility.cs.meta +11 -11
  107. package/SimpleRandom.cs +32 -32
  108. package/SimpleRandom.cs.meta +11 -11
  109. package/Stats/ColorHealthBar.cs +56 -56
  110. package/Stats/ColorHealthBar.cs.meta +11 -11
  111. package/Stats/ColorHealthModifier.cs +138 -138
  112. package/Stats/ColorHealthModifier.cs.meta +11 -11
  113. package/Stats/GaugeHandler.cs +72 -72
  114. package/Stats/GaugeHandler.cs.meta +1 -1
  115. package/Stats/HealthBarModifier.cs +89 -89
  116. package/Stats/HealthBarModifier.cs.meta +11 -11
  117. package/Stats/HealthStat.cs +77 -77
  118. package/Stats/HealthStat.cs.meta +11 -11
  119. package/Stats/HealthStatBase.cs +26 -26
  120. package/Stats/HealthStatBase.cs.meta +11 -11
  121. package/Stats/IGauge.cs +36 -36
  122. package/Stats/IGauge.cs.meta +1 -1
  123. package/Stats/InfluenceGauge.cs +107 -107
  124. package/Stats/InfluenceGauge.cs.meta +11 -11
  125. package/Stats/InfluenceGaugeBase.cs +42 -42
  126. package/Stats/InfluenceGaugeBase.cs.meta +11 -11
  127. package/Stats/SimpleGauge.cs +46 -46
  128. package/Stats/SimpleGauge.cs.meta +1 -1
  129. package/Stats/StaminaHandler.cs +153 -153
  130. package/Stats/StaminaHandler.cs.meta +11 -11
  131. package/Stats/TrialStats.cs +140 -140
  132. package/Stats/TrialStats.cs.meta +11 -11
  133. package/Stats/TrialStatsBase.cs +36 -36
  134. package/Stats/TrialStatsBase.cs.meta +11 -11
  135. package/Stats.meta +8 -8
  136. package/TBS/TBSelectBuilder.cs +59 -59
  137. package/TBS/TBSelectBuilder.cs.meta +11 -11
  138. package/TBS/TBSelectBuilderEditor.cs +166 -166
  139. package/TBS/TBSelectBuilderEditor.cs.meta +11 -11
  140. package/TBS/TBSelectManager.cs +315 -315
  141. package/TBS/TBSelectManager.cs.meta +11 -11
  142. package/TBS/TBSelection.cs +46 -46
  143. package/TBS/TBSelection.cs.meta +11 -11
  144. package/TBS/TrialTruthBulletMenu.cs +24 -24
  145. package/TBS/TrialTruthBulletMenu.cs.meta +11 -11
  146. package/TBS.meta +8 -8
  147. package/ThreadSafeSimpleRandom.cs +29 -29
  148. package/ThreadSafeSimpleRandom.cs.meta +11 -11
  149. package/TimedDifficultyEditor.cs +56 -56
  150. package/TimedDifficultyEditor.cs.meta +11 -11
  151. package/TimedMinigameEditor.cs +31 -31
  152. package/TimedMinigameEditor.cs.meta +11 -11
  153. package/TimerBase.cs +189 -189
  154. package/TimerBase.cs.meta +11 -11
  155. package/TimerDifficulty.cs +45 -45
  156. package/TimerDifficulty.cs.meta +11 -11
  157. package/TrialDialogueMinigame.cs +276 -276
  158. package/TrialDialogueMinigame.cs.meta +11 -11
  159. package/TrialDiscussion.cs +68 -68
  160. package/TrialDiscussion.cs.meta +11 -11
  161. package/TrialTimer.cs +113 -113
  162. package/TrialTimer.cs.meta +11 -11
  163. package/TrialTimerBase.cs +129 -129
  164. package/TrialTimerBase.cs.meta +11 -11
  165. package/package.json +56 -51
  166. package/package.json.meta +7 -7
  167. package/Samples.meta +0 -8
@@ -1,277 +1,277 @@
1
- //Author: Benjamin "Sweden" Jillson : Discord: sweden_gaming For Project Eden's Garden
2
- using DREditor.Dialogues;
3
- using DREditor.Dialogues.Events;
4
- using DREditor.EventObjects;
5
- using DREditor.Services;
6
- using System.Collections;
7
- using UnityEngine;
8
-
9
- namespace DREditor.Minigames
10
- {
11
- /// <summary>
12
- ///
13
- /// </summary>
14
- [ClassHeader(nameof(MinigameManagerBase) + ", " + nameof(IToTitleScreen) +
15
- "\n\n")]
16
- public class TrialDialogueMinigame : MinigameManagerBase, IToTitleScreen
17
- {
18
- /// <summary>
19
- ///
20
- /// </summary>
21
- [Tooltip("")]
22
- [SerializeField] protected BoolWithEvent inputAllowed = null;
23
-
24
- /// <summary>
25
- ///
26
- /// </summary>
27
- [Tooltip("")]
28
- [SerializeField] protected BoolWithEvent trialContinued = null;
29
-
30
- /// <summary>
31
- ///
32
- /// </summary>
33
- [Tooltip("")]
34
- [SerializeField] protected TrialDialogue continueConfirm = null;
35
-
36
- /// <summary>
37
- ///
38
- /// </summary>
39
- [Tooltip("")]
40
- [SerializeField] protected TrialDialogue timeUpDialogue = null;
41
-
42
- /// <summary>
43
- ///
44
- /// </summary>
45
- [Tooltip("")]
46
- [SerializeField] protected int setActiveBufferFrames = 0;
47
-
48
- /// <summary>
49
- ///
50
- /// </summary>
51
- [Tooltip("")]
52
- [SerializeField] protected string onTrialResolving = "ResolveTrial";
53
-
54
-
55
- /// <summary>
56
- ///
57
- /// </summary>
58
- protected IDialogueManager manager = null;
59
-
60
- /// <summary>
61
- ///
62
- /// </summary>
63
- protected IDialogueManager originalManager = null;
64
-
65
- /// <summary>
66
- ///
67
- /// </summary>
68
- protected bool originalManagerRestored = false;
69
-
70
-
71
- protected virtual void Awake()
72
- {
73
- manager = GetComponentInChildren<IDialogueManager>();
74
-
75
- StartCoroutine(BufferSetActiveManager());
76
- }
77
-
78
- /// <summary>
79
- ///
80
- /// </summary>
81
- protected virtual IEnumerator BufferSetActiveManager()
82
- {
83
- yield return new WaitForSeconds(Time.deltaTime * setActiveBufferFrames);
84
-
85
- SetActiveManager();
86
- }
87
-
88
- /// <inheritdoc/>
89
- protected override void OnEnable()
90
- {
91
- manager ??= GetComponentInChildren<IDialogueManager>();
92
-
93
- manager.GetFinisher().SubscribeToOnFinishOfDialogue(EvaluateFinishedDialogue);
94
-
95
- trialContinued.AddListener(OnTrialContinue);
96
-
97
- trialTimeUp.AddListener(OnTrialTimeUp);
98
-
99
- DialogueEventSystem.StartListening(onTrialResolving, EvalutateRestoreOriginalManager);
100
- }
101
-
102
- /// <inheritdoc/>
103
- protected override void OnDisable()
104
- {
105
- manager?.GetFinisher().UnsubscribeToOnFinishOfDialogue(EvaluateFinishedDialogue);
106
-
107
- ToTitleScreen();
108
-
109
- trialContinued.RemoveListener(OnTrialContinue);
110
-
111
- trialTimeUp.RemoveListener(OnTrialTimeUp);
112
-
113
- DialogueEventSystem.StopListening(onTrialResolving, EvalutateRestoreOriginalManager);
114
-
115
- trialMistake.SetValue(false);
116
-
117
- inputAllowed.SetValue(false);
118
-
119
- playerHasDied.SetValue(false);
120
- }
121
-
122
- /// <summary>
123
- ///
124
- /// </summary>
125
- /// <param name="o"></param>
126
- public void StartMinigame(ScriptableObject o) => FindAnyObjectByType<TrialDialogueMinigame>().StartDialogueMinigame(o);
127
-
128
- /// <summary>
129
- ///
130
- /// </summary>
131
- /// <param name="o"></param>
132
- public virtual void StartDialogueMinigame(ScriptableObject o)
133
- {
134
- UnityEngine.Debug.Log("REPORT: Started Trial Discussion.");
135
-
136
- manager.StartDialogue(null, ((TrialDiscussion)o).trialDialogues);
137
-
138
- SetActiveManager();
139
-
140
- inTrialMinigame.SetValue(false);
141
- }
142
-
143
- /// <summary>
144
- ///
145
- /// </summary>
146
- protected virtual void SetActiveManager()
147
- {
148
- if (!ServiceLocator.HasService(out IDialogueManager currentManager))
149
- {
150
- manager.GetManagerComponent<DialogueDataClearer>().ClearSaveData();
151
-
152
- ServiceLocator.Register(manager);
153
- }
154
- else if (currentManager != manager)
155
- {
156
- originalManager = currentManager;
157
-
158
- originalManager.GetManagerComponent<DialogueDataClearer>().ClearSaveData();
159
-
160
- ServiceLocator.Unregister(originalManager);
161
-
162
- ServiceLocator.Register(manager);
163
-
164
- UnityEngine.Debug.Log($"REPORT: {gameObject.name} found Original Dialogue Manager: " + (originalManager as Component).name);
165
- }
166
- }
167
-
168
- /// <summary>
169
- ///
170
- /// </summary>
171
- /// <param name="o"></param>
172
- protected virtual void EvalutateRestoreOriginalManager(object o = null) => ToTitleScreen();
173
-
174
- /// <summary>
175
- ///
176
- /// </summary>
177
- protected virtual IEnumerator QueueRestoringManagerRoutine()
178
- {
179
- UnityEngine.Debug.LogWarning($"{ToString()} The current manager is not the one currently assigned or the original." +
180
- $" Waiting for assigned manager to be restored.");
181
-
182
- yield return new WaitUntil(() => ServiceLocator.GetService<IDialogueManager>() == manager);
183
-
184
- RestoreOriginalManager();
185
- }
186
-
187
- /// <summary>
188
- ///
189
- /// </summary>
190
- protected virtual void RestoreOriginalManager()
191
- {
192
- ServiceLocator.Unregister(manager);
193
-
194
- ServiceLocator.Register(originalManager);
195
-
196
- UnityEngine.Debug.Log("REPORT: Original Dialogue Manager restored to: " + (originalManager as Component).name);
197
- }
198
-
199
- /// <summary>
200
- ///
201
- /// </summary>
202
- protected virtual void EvaluateFinishedDialogue()
203
- {
204
- trialTimeUp.SetValue(false);
205
-
206
- if (trialMistake.Value && !playerHasDied.Value)
207
- FinishedTrialMistake();
208
- else if (playerHasDied.Value)
209
- OnPlayerDied();
210
- else if (inTrialMinigame != null && inTrialMinigame.Value)
211
- FinishedTrialMistake();
212
- else
213
- EndMinigame();
214
- }
215
-
216
- /// <summary>
217
- ///
218
- /// </summary>
219
- /// <param name="playerIsContinuing"></param>
220
- protected virtual void OnTrialContinue(bool playerIsContinuing)
221
- {
222
- if (playerIsContinuing && ServiceLocator.GetService<IDialogueManager>() == manager)
223
- manager.StartDialogue(null, continueConfirm);
224
- }
225
-
226
- /// <summary>
227
- ///
228
- /// </summary>
229
- /// <param name="minigameTimeUp"></param>
230
- protected virtual void OnTrialTimeUp(bool minigameTimeUp)
231
- {
232
- if (minigameTimeUp && ServiceLocator.GetService<IDialogueManager>() == manager)
233
- manager.StartDialogue(null, timeUpDialogue);
234
- }
235
-
236
- /// <summary>
237
- ///
238
- /// </summary>
239
- protected virtual void OnPlayerDied()
240
- {
241
- if (trialContinued.Value)
242
- {
243
- trialContinued.SetValue(false);
244
-
245
- playerHasDied.SetValue(false);
246
-
247
- FinishedTrialMistake();
248
- }
249
- }
250
-
251
- /// <inheritdoc/>
252
- protected override void Restart() { }
253
-
254
-
255
- /// <inheritdoc/>
256
- public virtual void ToTitleScreen()
257
- {
258
- if (originalManagerRestored)
259
- return;
260
- else
261
- originalManagerRestored = true;
262
-
263
- DialogueEventSystem.StopListening(onTrialResolving, EvalutateRestoreOriginalManager);
264
-
265
- if ((originalManager as Component) == null)
266
- UnityEngine.Debug.Log($"{gameObject.name} " +
267
- "REPORT: There was no original service.");
268
- else if (!ServiceLocator.HasService<IDialogueManager>(out var currentManager) || currentManager == manager)
269
- RestoreOriginalManager();
270
- else if (!ReferenceEquals(currentManager, originalManager))
271
- StartCoroutine(QueueRestoringManagerRoutine());
272
- else
273
- UnityEngine.Debug.Log($"{gameObject.name} " +
274
- $"REPORT: Current Dialogue Manager is original: " + (currentManager as Component).name);
275
- }
276
- }
1
+ //Author: Benjamin "Sweden" Jillson : Discord: sweden_gaming For Project Eden's Garden
2
+ using DREditor.Dialogues;
3
+ using DREditor.Dialogues.Events;
4
+ using DREditor.EventObjects;
5
+ using DREditor.Services;
6
+ using System.Collections;
7
+ using UnityEngine;
8
+
9
+ namespace DREditor.Minigames
10
+ {
11
+ /// <summary>
12
+ ///
13
+ /// </summary>
14
+ [ClassHeader(nameof(MinigameManagerBase) + ", " + nameof(IToTitleScreen) +
15
+ "\n\n")]
16
+ public class TrialDialogueMinigame : MinigameManagerBase, IToTitleScreen
17
+ {
18
+ /// <summary>
19
+ ///
20
+ /// </summary>
21
+ [Tooltip("")]
22
+ [SerializeField] protected BoolWithEvent inputAllowed = null;
23
+
24
+ /// <summary>
25
+ ///
26
+ /// </summary>
27
+ [Tooltip("")]
28
+ [SerializeField] protected BoolWithEvent trialContinued = null;
29
+
30
+ /// <summary>
31
+ ///
32
+ /// </summary>
33
+ [Tooltip("")]
34
+ [SerializeField] protected TrialDialogue continueConfirm = null;
35
+
36
+ /// <summary>
37
+ ///
38
+ /// </summary>
39
+ [Tooltip("")]
40
+ [SerializeField] protected TrialDialogue timeUpDialogue = null;
41
+
42
+ /// <summary>
43
+ ///
44
+ /// </summary>
45
+ [Tooltip("")]
46
+ [SerializeField] protected int setActiveBufferFrames = 0;
47
+
48
+ /// <summary>
49
+ ///
50
+ /// </summary>
51
+ [Tooltip("")]
52
+ [SerializeField] protected string onTrialResolving = "ResolveTrial";
53
+
54
+
55
+ /// <summary>
56
+ ///
57
+ /// </summary>
58
+ protected IDialogueManager manager = null;
59
+
60
+ /// <summary>
61
+ ///
62
+ /// </summary>
63
+ protected IDialogueManager originalManager = null;
64
+
65
+ /// <summary>
66
+ ///
67
+ /// </summary>
68
+ protected bool originalManagerRestored = false;
69
+
70
+
71
+ protected virtual void Awake()
72
+ {
73
+ manager = GetComponentInChildren<IDialogueManager>();
74
+
75
+ StartCoroutine(BufferSetActiveManager());
76
+ }
77
+
78
+ /// <summary>
79
+ ///
80
+ /// </summary>
81
+ protected virtual IEnumerator BufferSetActiveManager()
82
+ {
83
+ yield return new WaitForSeconds(Time.deltaTime * setActiveBufferFrames);
84
+
85
+ SetActiveManager();
86
+ }
87
+
88
+ /// <inheritdoc/>
89
+ protected override void OnEnable()
90
+ {
91
+ manager ??= GetComponentInChildren<IDialogueManager>();
92
+
93
+ manager.GetFinisher().SubscribeToOnFinishOfDialogue(EvaluateFinishedDialogue);
94
+
95
+ trialContinued.AddListener(OnTrialContinue);
96
+
97
+ trialTimeUp.AddListener(OnTrialTimeUp);
98
+
99
+ DialogueEventSystem.StartListening(onTrialResolving, EvalutateRestoreOriginalManager);
100
+ }
101
+
102
+ /// <inheritdoc/>
103
+ protected override void OnDisable()
104
+ {
105
+ manager?.GetFinisher().UnsubscribeToOnFinishOfDialogue(EvaluateFinishedDialogue);
106
+
107
+ ToTitleScreen();
108
+
109
+ trialContinued.RemoveListener(OnTrialContinue);
110
+
111
+ trialTimeUp.RemoveListener(OnTrialTimeUp);
112
+
113
+ DialogueEventSystem.StopListening(onTrialResolving, EvalutateRestoreOriginalManager);
114
+
115
+ trialMistake.SetValue(false);
116
+
117
+ inputAllowed.SetValue(false);
118
+
119
+ playerHasDied.SetValue(false);
120
+ }
121
+
122
+ /// <summary>
123
+ ///
124
+ /// </summary>
125
+ /// <param name="o"></param>
126
+ public void StartMinigame(ScriptableObject o) => FindAnyObjectByType<TrialDialogueMinigame>().StartDialogueMinigame(o);
127
+
128
+ /// <summary>
129
+ ///
130
+ /// </summary>
131
+ /// <param name="o"></param>
132
+ public virtual void StartDialogueMinigame(ScriptableObject o)
133
+ {
134
+ UnityEngine.Debug.Log("REPORT: Started Trial Discussion.");
135
+
136
+ manager.StartDialogue(null, ((TrialDiscussion)o).trialDialogues);
137
+
138
+ SetActiveManager();
139
+
140
+ inTrialMinigame.SetValue(false);
141
+ }
142
+
143
+ /// <summary>
144
+ ///
145
+ /// </summary>
146
+ protected virtual void SetActiveManager()
147
+ {
148
+ if (!ServiceLocator.HasService(out IDialogueManager currentManager))
149
+ {
150
+ manager.GetManagerComponent<DialogueDataClearer>().ClearSaveData();
151
+
152
+ ServiceLocator.Register(manager);
153
+ }
154
+ else if (currentManager != manager)
155
+ {
156
+ originalManager = currentManager;
157
+
158
+ originalManager.GetManagerComponent<DialogueDataClearer>().ClearSaveData();
159
+
160
+ ServiceLocator.Unregister(originalManager);
161
+
162
+ ServiceLocator.Register(manager);
163
+
164
+ UnityEngine.Debug.Log($"REPORT: {gameObject.name} found Original Dialogue Manager: " + (originalManager as Component).name);
165
+ }
166
+ }
167
+
168
+ /// <summary>
169
+ ///
170
+ /// </summary>
171
+ /// <param name="o"></param>
172
+ protected virtual void EvalutateRestoreOriginalManager(object o = null) => ToTitleScreen();
173
+
174
+ /// <summary>
175
+ ///
176
+ /// </summary>
177
+ protected virtual IEnumerator QueueRestoringManagerRoutine()
178
+ {
179
+ UnityEngine.Debug.LogWarning($"{ToString()} The current manager is not the one currently assigned or the original." +
180
+ $" Waiting for assigned manager to be restored.");
181
+
182
+ yield return new WaitUntil(() => ServiceLocator.GetService<IDialogueManager>() == manager);
183
+
184
+ RestoreOriginalManager();
185
+ }
186
+
187
+ /// <summary>
188
+ ///
189
+ /// </summary>
190
+ protected virtual void RestoreOriginalManager()
191
+ {
192
+ ServiceLocator.Unregister(manager);
193
+
194
+ ServiceLocator.Register(originalManager);
195
+
196
+ UnityEngine.Debug.Log("REPORT: Original Dialogue Manager restored to: " + (originalManager as Component).name);
197
+ }
198
+
199
+ /// <summary>
200
+ ///
201
+ /// </summary>
202
+ protected virtual void EvaluateFinishedDialogue()
203
+ {
204
+ trialTimeUp.SetValue(false);
205
+
206
+ if (trialMistake.Value && !playerHasDied.Value)
207
+ FinishedTrialMistake();
208
+ else if (playerHasDied.Value)
209
+ OnPlayerDied();
210
+ else if (inTrialMinigame != null && inTrialMinigame.Value)
211
+ FinishedTrialMistake();
212
+ else
213
+ EndMinigame();
214
+ }
215
+
216
+ /// <summary>
217
+ ///
218
+ /// </summary>
219
+ /// <param name="playerIsContinuing"></param>
220
+ protected virtual void OnTrialContinue(bool playerIsContinuing)
221
+ {
222
+ if (playerIsContinuing && ServiceLocator.GetService<IDialogueManager>() == manager)
223
+ manager.StartDialogue(null, continueConfirm);
224
+ }
225
+
226
+ /// <summary>
227
+ ///
228
+ /// </summary>
229
+ /// <param name="minigameTimeUp"></param>
230
+ protected virtual void OnTrialTimeUp(bool minigameTimeUp)
231
+ {
232
+ if (minigameTimeUp && ServiceLocator.GetService<IDialogueManager>() == manager)
233
+ manager.StartDialogue(null, timeUpDialogue);
234
+ }
235
+
236
+ /// <summary>
237
+ ///
238
+ /// </summary>
239
+ protected virtual void OnPlayerDied()
240
+ {
241
+ if (trialContinued.Value)
242
+ {
243
+ trialContinued.SetValue(false);
244
+
245
+ playerHasDied.SetValue(false);
246
+
247
+ FinishedTrialMistake();
248
+ }
249
+ }
250
+
251
+ /// <inheritdoc/>
252
+ protected override void Restart() { }
253
+
254
+
255
+ /// <inheritdoc/>
256
+ public virtual void ToTitleScreen()
257
+ {
258
+ if (originalManagerRestored)
259
+ return;
260
+ else
261
+ originalManagerRestored = true;
262
+
263
+ DialogueEventSystem.StopListening(onTrialResolving, EvalutateRestoreOriginalManager);
264
+
265
+ if ((originalManager as Component) == null)
266
+ UnityEngine.Debug.Log($"{gameObject.name} " +
267
+ "REPORT: There was no original service.");
268
+ else if (!ServiceLocator.HasService<IDialogueManager>(out var currentManager) || currentManager == manager)
269
+ RestoreOriginalManager();
270
+ else if (!ReferenceEquals(currentManager, originalManager))
271
+ StartCoroutine(QueueRestoringManagerRoutine());
272
+ else
273
+ UnityEngine.Debug.Log($"{gameObject.name} " +
274
+ $"REPORT: Current Dialogue Manager is original: " + (currentManager as Component).name);
275
+ }
276
+ }
277
277
  }
@@ -1,11 +1,11 @@
1
- fileFormatVersion: 2
2
- guid: d2f5d05c84cb2fd4a9f42218af6a0a05
3
- MonoImporter:
4
- externalObjects: {}
5
- serializedVersion: 2
6
- defaultReferences: []
7
- executionOrder: 0
8
- icon: {instanceID: 0}
9
- userData:
10
- assetBundleName:
11
- assetBundleVariant:
1
+ fileFormatVersion: 2
2
+ guid: d2f5d05c84cb2fd4a9f42218af6a0a05
3
+ MonoImporter:
4
+ externalObjects: {}
5
+ serializedVersion: 2
6
+ defaultReferences: []
7
+ executionOrder: 0
8
+ icon: {instanceID: 0}
9
+ userData:
10
+ assetBundleName:
11
+ assetBundleVariant: