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.
- package/.attestation.p7m +0 -0
- package/BulletDifficulty.cs +36 -36
- package/BulletDifficulty.cs.meta +11 -11
- package/BulletDifficultyEditor.cs +380 -380
- package/BulletDifficultyEditor.cs.meta +11 -11
- package/DREditor.Minigames.asmdef +36 -36
- package/DREditor.Minigames.asmdef.meta +7 -7
- package/DifficultyEditorBase.cs +60 -60
- package/DifficultyEditorBase.cs.meta +11 -11
- package/IShatterGraphic.cs +32 -32
- package/IShatterGraphic.cs.meta +11 -11
- package/IShatterText.cs +33 -33
- package/IShatterText.cs.meta +11 -11
- package/InitializeTrialOffsets.cs +51 -51
- package/InitializeTrialOffsets.cs.meta +11 -11
- package/MinigameBuilderBase.cs +28 -28
- package/MinigameBuilderBase.cs.meta +11 -11
- package/MinigameControlsUIHandler.cs +94 -94
- package/MinigameControlsUIHandler.cs.meta +11 -11
- package/MinigameManagerBase.cs +197 -197
- package/MinigameManagerBase.cs.meta +11 -11
- package/QuestionToggle.cs +154 -154
- package/QuestionToggle.cs.meta +11 -11
- package/RestoreControlsUIPostDialogue.cs +100 -100
- package/RestoreControlsUIPostDialogue.cs.meta +1 -1
- package/{Samples → Samples~}/Bullet Shatter Mesh Generator.asset +23 -23
- package/{Samples → Samples~}/Bullet Shatter Mesh Generator.asset.meta +8 -8
- package/{Samples → Samples~}/HasStamina.asset +21 -21
- package/{Samples → Samples~}/HasStamina.asset.meta +8 -8
- package/{Samples → Samples~}/IsDrainingStamina.asset +21 -21
- package/{Samples → Samples~}/IsDrainingStamina.asset.meta +8 -8
- package/{Samples → Samples~}/MinigameInputAllowed.asset +21 -21
- package/{Samples → Samples~}/MinigameInputAllowed.asset.meta +8 -8
- package/{Samples → Samples~}/Minigame_Controls_UI_Handler.prefab +53 -53
- package/{Samples → Samples~}/Minigame_Controls_UI_Handler.prefab.meta +7 -7
- package/{Samples → Samples~}/Quad Shatter.asset +31 -31
- package/{Samples → Samples~}/Quad Shatter.asset.meta +8 -8
- package/{Samples → Samples~}/ShatterCameraEnabled.asset +21 -21
- package/{Samples → Samples~}/ShatterCameraEnabled.asset.meta +8 -8
- package/{Samples → Samples~}/Shatter_Graphic.prefab +98 -98
- package/{Samples → Samples~}/Shatter_Graphic.prefab.meta +7 -7
- package/{Samples → Samples~}/Stamina_Handler.prefab +59 -59
- package/{Samples → Samples~}/Stamina_Handler.prefab.meta +7 -7
- package/{Samples → Samples~}/TBS_Manager_Shell.prefab +60 -60
- package/{Samples → Samples~}/TBS_Manager_Shell.prefab.meta +7 -7
- package/{Samples → Samples~}/TBS_Manager_Template.prefab +504 -504
- package/{Samples → Samples~}/TBS_Manager_Template.prefab.meta +7 -7
- package/{Samples → Samples~}/Trial_UI_Shatter_Canvas_Shell.prefab +289 -289
- package/{Samples → Samples~}/Trial_UI_Shatter_Canvas_Shell.prefab.meta +7 -7
- package/{Samples → Samples~}/Trial_UI_Shatter_Canvas_Template.prefab +449 -449
- package/{Samples → Samples~}/Trial_UI_Shatter_Canvas_Template.prefab.meta +7 -7
- package/{Samples → Samples~}/Triangle Shatter.asset +31 -31
- package/{Samples → Samples~}/Triangle Shatter.asset.meta +8 -8
- package/{Samples → Samples~}/Truth_Bullet_Menu_Canvas_Shell.prefab +221 -221
- package/{Samples → Samples~}/Truth_Bullet_Menu_Canvas_Shell.prefab.meta +7 -7
- package/{Samples → Samples~}/Truth_Bullet_Menu_Canvas_Template.prefab +525 -525
- package/{Samples → Samples~}/Truth_Bullet_Menu_Canvas_Template.prefab.meta +7 -7
- package/{Samples → Samples~}/Truth_Bullet_Menu_Holder_Shell.prefab +38 -38
- package/{Samples → Samples~}/Truth_Bullet_Menu_Holder_Shell.prefab.meta +7 -7
- package/{Samples → Samples~}/Truth_Bullet_Menu_Holder_Template.prefab +1159 -1159
- package/{Samples → Samples~}/Truth_Bullet_Menu_Holder_Template.prefab.meta +7 -7
- package/{Samples → Samples~}/Truth_Bullet_Minigame_Canvas_Template.prefab +494 -494
- package/{Samples → Samples~}/Truth_Bullet_Minigame_Canvas_Template.prefab.meta +7 -7
- package/{Samples → Samples~}/Truth_Bullet_Option_ETemplate.prefab +294 -294
- package/{Samples → Samples~}/Truth_Bullet_Option_ETemplate.prefab.meta +7 -7
- package/Shattering/BreakTex.renderTexture +39 -39
- package/Shattering/BreakTex.renderTexture.meta +8 -8
- package/Shattering/BulletShatter.cs +176 -176
- package/Shattering/BulletShatter.cs.meta +11 -11
- package/Shattering/IShatterableCanvas.cs +20 -20
- package/Shattering/IShatterableCanvas.cs.meta +11 -11
- package/Shattering/MeshGenerator.cs +178 -178
- package/Shattering/MeshGenerator.cs.meta +11 -11
- package/Shattering/RenderCanvasOnShatter.cs +47 -47
- package/Shattering/RenderCanvasOnShatter.cs.meta +11 -11
- package/Shattering/ShatterCameraRender.cs +79 -79
- package/Shattering/ShatterCameraRender.cs.meta +11 -11
- package/Shattering/ShatterGraphic.cs +135 -135
- package/Shattering/ShatterGraphic.cs.meta +11 -11
- package/Shattering/ShatterMeshGraphic.cs +304 -304
- package/Shattering/ShatterMeshGraphic.cs.meta +11 -11
- package/Shattering/ShatterProcess.cs +282 -282
- package/Shattering/ShatterProcess.cs.meta +11 -11
- package/Shattering/ShatterProcessBase.cs +51 -51
- package/Shattering/ShatterProcessBase.cs.meta +11 -11
- package/Shattering/ShatterQuad.cs +56 -56
- package/Shattering/ShatterQuad.cs.meta +11 -11
- package/Shattering/ShatterQuadProcess.cs +65 -65
- package/Shattering/ShatterQuadProcess.cs.meta +11 -11
- package/Shattering/ShatterShape.cs +84 -84
- package/Shattering/ShatterShape.cs.meta +11 -11
- package/Shattering/ShatterTri.cs +27 -27
- package/Shattering/ShatterTri.cs.meta +11 -11
- package/Shattering/ShatterTriProcess.cs +179 -179
- package/Shattering/ShatterTriProcess.cs.meta +11 -11
- package/Shattering/ShatterWithUI.cs +68 -68
- package/Shattering/ShatterWithUI.cs.meta +11 -11
- package/Shattering/SplitShatter.cs +114 -114
- package/Shattering/SplitShatter.cs.meta +11 -11
- package/Shattering/TMPTextShatter.cs +243 -243
- package/Shattering/TMPTextShatter.cs.meta +11 -11
- package/Shattering/UIBreakVisibility.cs +172 -172
- package/Shattering/UIBreakVisibility.cs.meta +11 -11
- package/Shattering.meta +8 -8
- package/ShuffleUtility.cs +32 -32
- package/ShuffleUtility.cs.meta +11 -11
- package/SimpleRandom.cs +32 -32
- package/SimpleRandom.cs.meta +11 -11
- package/Stats/ColorHealthBar.cs +56 -56
- package/Stats/ColorHealthBar.cs.meta +11 -11
- package/Stats/ColorHealthModifier.cs +138 -138
- package/Stats/ColorHealthModifier.cs.meta +11 -11
- package/Stats/GaugeHandler.cs +72 -72
- package/Stats/GaugeHandler.cs.meta +1 -1
- package/Stats/HealthBarModifier.cs +89 -89
- package/Stats/HealthBarModifier.cs.meta +11 -11
- package/Stats/HealthStat.cs +77 -77
- package/Stats/HealthStat.cs.meta +11 -11
- package/Stats/HealthStatBase.cs +26 -26
- package/Stats/HealthStatBase.cs.meta +11 -11
- package/Stats/IGauge.cs +36 -36
- package/Stats/IGauge.cs.meta +1 -1
- package/Stats/InfluenceGauge.cs +107 -107
- package/Stats/InfluenceGauge.cs.meta +11 -11
- package/Stats/InfluenceGaugeBase.cs +42 -42
- package/Stats/InfluenceGaugeBase.cs.meta +11 -11
- package/Stats/SimpleGauge.cs +46 -46
- package/Stats/SimpleGauge.cs.meta +1 -1
- package/Stats/StaminaHandler.cs +153 -153
- package/Stats/StaminaHandler.cs.meta +11 -11
- package/Stats/TrialStats.cs +140 -140
- package/Stats/TrialStats.cs.meta +11 -11
- package/Stats/TrialStatsBase.cs +36 -36
- package/Stats/TrialStatsBase.cs.meta +11 -11
- package/Stats.meta +8 -8
- package/TBS/TBSelectBuilder.cs +59 -59
- package/TBS/TBSelectBuilder.cs.meta +11 -11
- package/TBS/TBSelectBuilderEditor.cs +166 -166
- package/TBS/TBSelectBuilderEditor.cs.meta +11 -11
- package/TBS/TBSelectManager.cs +315 -315
- package/TBS/TBSelectManager.cs.meta +11 -11
- package/TBS/TBSelection.cs +46 -46
- package/TBS/TBSelection.cs.meta +11 -11
- package/TBS/TrialTruthBulletMenu.cs +24 -24
- package/TBS/TrialTruthBulletMenu.cs.meta +11 -11
- package/TBS.meta +8 -8
- package/ThreadSafeSimpleRandom.cs +29 -29
- package/ThreadSafeSimpleRandom.cs.meta +11 -11
- package/TimedDifficultyEditor.cs +56 -56
- package/TimedDifficultyEditor.cs.meta +11 -11
- package/TimedMinigameEditor.cs +31 -31
- package/TimedMinigameEditor.cs.meta +11 -11
- package/TimerBase.cs +189 -189
- package/TimerBase.cs.meta +11 -11
- package/TimerDifficulty.cs +45 -45
- package/TimerDifficulty.cs.meta +11 -11
- package/TrialDialogueMinigame.cs +276 -276
- package/TrialDialogueMinigame.cs.meta +11 -11
- package/TrialDiscussion.cs +68 -68
- package/TrialDiscussion.cs.meta +11 -11
- package/TrialTimer.cs +113 -113
- package/TrialTimer.cs.meta +11 -11
- package/TrialTimerBase.cs +129 -129
- package/TrialTimerBase.cs.meta +11 -11
- package/package.json +56 -51
- package/package.json.meta +7 -7
- package/Samples.meta +0 -8
package/TrialDialogueMinigame.cs
CHANGED
|
@@ -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:
|