net.dreditor.progressing.handling 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/ChapterTitleDisplayer.cs +41 -41
- package/ChapterTitleDisplayer.cs.meta +11 -11
- package/DREditor.Progressing.Handling.asmdef +16 -16
- package/DREditor.Progressing.Handling.asmdef.meta +7 -7
- package/FlagTriggerExtensions.cs +78 -78
- package/FlagTriggerExtensions.cs.meta +11 -11
- package/FlagTriggerHandler.cs +236 -236
- package/FlagTriggerHandler.cs.meta +11 -11
- package/FlagTriggerHandlerBase.cs +65 -65
- package/FlagTriggerHandlerBase.cs.meta +11 -11
- package/HistoricalManagerBase.cs +158 -158
- package/HistoricalManagerBase.cs.meta +1 -1
- package/IHistory.cs +100 -100
- package/IHistory.cs.meta +1 -1
- package/ProgressionData.cs +180 -180
- package/ProgressionData.cs.meta +11 -11
- package/ProgressionDebugger.cs +185 -185
- package/ProgressionDebugger.cs.meta +11 -11
- package/ProgressionFlagHandler.cs +166 -166
- package/ProgressionFlagHandler.cs.meta +11 -11
- package/ProgressionHistoryManager.cs +33 -33
- package/ProgressionHistoryManager.cs.meta +11 -11
- package/ProgressionInfo.cs +53 -53
- package/ProgressionInfo.cs.meta +11 -11
- package/ProgressionLoader.cs +128 -128
- package/ProgressionLoader.cs.meta +11 -11
- package/ProgressionManager.cs +285 -285
- package/ProgressionManager.cs.meta +11 -11
- package/ProgressionManagerBase.cs +131 -131
- package/ProgressionManagerBase.cs.meta +11 -11
- package/ProgressionSaver.cs +48 -48
- package/ProgressionSaver.cs.meta +11 -11
- package/{Samples → Samples~}/CurrentChapterIndex.asset +21 -21
- package/{Samples → Samples~}/CurrentChapterIndex.asset.meta +8 -8
- package/{Samples → Samples~}/CurrentObjectiveIndex.asset +19 -19
- package/{Samples → Samples~}/CurrentObjectiveIndex.asset.meta +8 -8
- package/{Samples → Samples~}/CurrentObjectiveName.asset +19 -19
- package/{Samples → Samples~}/CurrentObjectiveName.asset.meta +8 -8
- package/{Samples → Samples~}/FlagTriggered.asset +19 -19
- package/{Samples → Samples~}/FlagTriggered.asset.meta +8 -8
- package/{Samples → Samples~}/Flag_Trigger_Handler.prefab +194 -194
- package/{Samples → Samples~}/Flag_Trigger_Handler.prefab.meta +7 -7
- package/{Samples → Samples~}/LoadProgressionData.asset +14 -14
- package/{Samples → Samples~}/LoadProgressionData.asset.meta +8 -8
- package/{Samples → Samples~}/MoveToNextNaturalObjective.asset +14 -14
- package/{Samples → Samples~}/MoveToNextNaturalObjective.asset.meta +8 -8
- package/{Samples → Samples~}/MoveToObjective.asset +19 -19
- package/{Samples → Samples~}/MoveToObjective.asset.meta +8 -8
- package/{Samples → Samples~}/ObjectiveKeepsInstanceData.asset +19 -19
- package/{Samples → Samples~}/ObjectiveKeepsInstanceData.asset.meta +8 -8
- package/{Samples → Samples~}/OnGeneratePastData.asset +14 -14
- package/{Samples → Samples~}/OnGeneratePastData.asset.meta +8 -8
- package/{Samples → Samples~}/OnLastObjective.asset +19 -19
- package/{Samples → Samples~}/OnLastObjective.asset.meta +8 -8
- package/{Samples → Samples~}/Progression_Debugger.prefab +73 -73
- package/{Samples → Samples~}/Progression_Debugger.prefab.meta +7 -7
- package/{Samples → Samples~}/Progression_Flag_Handler.prefab +47 -47
- package/{Samples → Samples~}/Progression_Flag_Handler.prefab.meta +7 -7
- package/{Samples → Samples~}/Progression_History_Manager.prefab +107 -107
- package/{Samples → Samples~}/Progression_History_Manager.prefab.meta +7 -7
- package/{Samples → Samples~}/Progression_Loader.prefab +76 -76
- package/{Samples → Samples~}/Progression_Loader.prefab.meta +7 -7
- package/{Samples → Samples~}/Progression_Manager_ETemplate.prefab +603 -603
- package/{Samples → Samples~}/Progression_Manager_ETemplate.prefab.meta +7 -7
- package/{Samples → Samples~}/Progression_Saver.prefab +51 -51
- package/{Samples → Samples~}/Progression_Saver.prefab.meta +7 -7
- package/{Samples → Samples~}/RequiredFlagsTriggered.asset +19 -19
- package/{Samples → Samples~}/RequiredFlagsTriggered.asset.meta +8 -8
- package/{Samples → Samples~}/TriggerAllRequiredFlags.asset +14 -14
- package/{Samples → Samples~}/TriggerAllRequiredFlags.asset.meta +8 -8
- package/package.json +40 -35
- package/package.json.meta +7 -7
- package/Samples.meta +0 -8
package/FlagTriggerHandler.cs
CHANGED
|
@@ -1,237 +1,237 @@
|
|
|
1
|
-
//Author: Benjamin "Sweden" Jillson : Discord: sweden_gaming For Project Eden's Garden
|
|
2
|
-
using DREditor.EventObjects;
|
|
3
|
-
using DREditor.Services;
|
|
4
|
-
using System;
|
|
5
|
-
using System.Collections;
|
|
6
|
-
using System.Collections.Generic;
|
|
7
|
-
using UnityEngine;
|
|
8
|
-
using UnityEngine.Scripting.APIUpdating;
|
|
9
|
-
using UnityEngine.Serialization;
|
|
10
|
-
|
|
11
|
-
namespace DREditor.Progressing.Handling
|
|
12
|
-
{
|
|
13
|
-
/// <summary>
|
|
14
|
-
///
|
|
15
|
-
/// </summary>
|
|
16
|
-
[ClassHeader(nameof(FlagTriggerHandlerBase) +
|
|
17
|
-
"\n\n")]
|
|
18
|
-
[MovedFrom(true, "DREditor.Progression.Handling", "DREditor.Progression.Handling")]
|
|
19
|
-
public class FlagTriggerHandler : FlagTriggerHandlerBase
|
|
20
|
-
{
|
|
21
|
-
/// <summary>
|
|
22
|
-
///
|
|
23
|
-
/// </summary>
|
|
24
|
-
[Tooltip("")]
|
|
25
|
-
[FormerlySerializedAs("database")]
|
|
26
|
-
[SerializeField] protected ProgressionDatabase progressionDatabase = null;
|
|
27
|
-
|
|
28
|
-
/// <summary>
|
|
29
|
-
///
|
|
30
|
-
/// </summary>
|
|
31
|
-
[Tooltip("")]
|
|
32
|
-
[SerializeField] protected ProgressionFlagHandler flagHandler = null;
|
|
33
|
-
|
|
34
|
-
/// <summary>
|
|
35
|
-
///
|
|
36
|
-
/// </summary>
|
|
37
|
-
[Tooltip("")]
|
|
38
|
-
[SerializeField] protected IntWithEvent currentChapterIndex = null;
|
|
39
|
-
|
|
40
|
-
/// <summary>
|
|
41
|
-
///
|
|
42
|
-
/// </summary>
|
|
43
|
-
[Tooltip("")]
|
|
44
|
-
[SerializeField] protected StringWithEvent flagTriggered = null;
|
|
45
|
-
|
|
46
|
-
/// <summary>
|
|
47
|
-
///
|
|
48
|
-
/// </summary>
|
|
49
|
-
[Tooltip("")]
|
|
50
|
-
[SerializeField] protected BoolWithEvent requiredFlagsTriggered = null;
|
|
51
|
-
|
|
52
|
-
/// <summary>
|
|
53
|
-
///
|
|
54
|
-
/// </summary>
|
|
55
|
-
[Tooltip("")]
|
|
56
|
-
[SerializeField] protected SceneEventListener loadProgressionData = null;
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
/// <summary>
|
|
60
|
-
///
|
|
61
|
-
/// </summary>
|
|
62
|
-
protected ProgressionManagerBase manager = null;
|
|
63
|
-
|
|
64
|
-
protected virtual void OnEnable() => loadProgressionData.Response.AddListener(Load);
|
|
65
|
-
|
|
66
|
-
protected virtual void OnDisable() => loadProgressionData.Response.RemoveListener(Load);
|
|
67
|
-
|
|
68
|
-
/// <summary>
|
|
69
|
-
///
|
|
70
|
-
/// </summary>
|
|
71
|
-
protected virtual void Load() => StartCoroutine(DelayLoad());
|
|
72
|
-
|
|
73
|
-
/// <summary>
|
|
74
|
-
///
|
|
75
|
-
/// </summary>
|
|
76
|
-
/// <remarks>
|
|
77
|
-
///
|
|
78
|
-
/// </remarks>
|
|
79
|
-
protected virtual IEnumerator DelayLoad()
|
|
80
|
-
{
|
|
81
|
-
yield return null;
|
|
82
|
-
|
|
83
|
-
requiredFlagsTriggered.SetValue(CompletedRequiredFlags());
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
protected virtual void Start() => manager = ServiceLocator.GetService<ProgressionManagerBase>();
|
|
88
|
-
|
|
89
|
-
/// <inheritdoc/>
|
|
90
|
-
public override void TriggerFlag(int chapterIndex, int objectiveIndex, List<int> flagIndexes)
|
|
91
|
-
{
|
|
92
|
-
try
|
|
93
|
-
{
|
|
94
|
-
bool onCurrentChapter = chapterIndex == currentChapterIndex.Value;
|
|
95
|
-
|
|
96
|
-
Objective targetObjective = progressionDatabase.Chapters[chapterIndex].Objectives[objectiveIndex];
|
|
97
|
-
|
|
98
|
-
bool targetIsCurrentObjective = targetObjective.Description == manager.currentObjective.Description;
|
|
99
|
-
|
|
100
|
-
if (onCurrentChapter && targetIsCurrentObjective)
|
|
101
|
-
TriggerFlagsInCurrentObjective(flagIndexes);
|
|
102
|
-
else
|
|
103
|
-
TriggerFlagsInHistory(chapterIndex, objectiveIndex, flagIndexes);
|
|
104
|
-
}
|
|
105
|
-
catch (Exception exception)
|
|
106
|
-
{
|
|
107
|
-
UnityEngine.Debug.LogWarning("ALERT: A CRITICAL ERROR HAS OCCURED TRIGGERING A PROGRESSION FLAG " +
|
|
108
|
-
"\n PLEASE CHECK THE DIALOGUE ASSET TO FIX OR FIND THE ISSUE.");
|
|
109
|
-
|
|
110
|
-
UnityEngine.Debug.LogWarning(exception);
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
public override void TriggerFlag(List<int> flagIndexes)
|
|
115
|
-
{
|
|
116
|
-
var activeObjective = progressionDatabase.Chapters[currentChapterIndex.Value].GetObjective(manager.currentObjective.Description);
|
|
117
|
-
|
|
118
|
-
int objectiveIndex = progressionDatabase.Chapters[currentChapterIndex.Value].Objectives.IndexOf(activeObjective);
|
|
119
|
-
|
|
120
|
-
TriggerFlag(currentChapterIndex.Value, objectiveIndex, flagIndexes);
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
/// <summary>
|
|
124
|
-
///
|
|
125
|
-
/// </summary>
|
|
126
|
-
/// <param name="flagIndexes"></param>
|
|
127
|
-
protected virtual void TriggerFlagsInCurrentObjective(List<int> flagIndexes)
|
|
128
|
-
{
|
|
129
|
-
Objective objective = manager.currentObjective;
|
|
130
|
-
|
|
131
|
-
for (int i = 0; i < flagIndexes.Count; i++)
|
|
132
|
-
{
|
|
133
|
-
if (flagIndexes[i] > objective.Flags.Count)
|
|
134
|
-
{
|
|
135
|
-
flagHandler.RepairObjective(ref manager.currentObjective);
|
|
136
|
-
|
|
137
|
-
objective = manager.currentObjective;
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
objective.Flags[flagIndexes[i]].SetTriggered(true);
|
|
141
|
-
|
|
142
|
-
flagTriggered.SetValue(objective.Flags[flagIndexes[i]].name);
|
|
143
|
-
|
|
144
|
-
requiredFlagsTriggered.SetValue(CompletedRequiredFlags());
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
/// <summary>
|
|
149
|
-
///
|
|
150
|
-
/// </summary>
|
|
151
|
-
/// <param name="chapterIndex"></param>
|
|
152
|
-
/// <param name="objectiveIndex"></param>
|
|
153
|
-
/// <param name="flagIndexes"></param>
|
|
154
|
-
protected virtual void TriggerFlagsInHistory(int chapterIndex, int objectiveIndex, List<int> flagIndexes)
|
|
155
|
-
{
|
|
156
|
-
Objective targetObjective = progressionDatabase.Chapters[chapterIndex].Objectives[objectiveIndex];
|
|
157
|
-
|
|
158
|
-
for (int i = 0; i < flagIndexes.Count; i++)
|
|
159
|
-
flagHandler.GetFlag(targetObjective.Flags[flagIndexes[i]].name, targetObjective).SetTriggered(true);
|
|
160
|
-
}
|
|
161
|
-
|
|
162
|
-
/// <inheritdoc/>
|
|
163
|
-
public override bool IsFlagTriggered(string flagName) => flagHandler.GetFlag(flagName, manager.currentObjective).triggered;
|
|
164
|
-
|
|
165
|
-
/// <inheritdoc/>
|
|
166
|
-
public override bool EvaluateVariable(int chapter, int objective, List<int> flags, List<int> falseFlags = null)
|
|
167
|
-
{
|
|
168
|
-
bool checkingCurrentObjective =
|
|
169
|
-
progressionDatabase.Chapters[chapter].Objectives[objective].Description == manager.currentObjective.Description;
|
|
170
|
-
|
|
171
|
-
Objective evaluateObjective = checkingCurrentObjective ?
|
|
172
|
-
manager.currentObjective : ServiceLocator.GetService<IHistory>().GetHistoryObjective(chapter, objective);
|
|
173
|
-
|
|
174
|
-
return EvaluateVariableFlags(evaluateObjective, flags, falseFlags);
|
|
175
|
-
}
|
|
176
|
-
|
|
177
|
-
/// <summary>
|
|
178
|
-
///
|
|
179
|
-
/// </summary>
|
|
180
|
-
/// <param name="objective"></param>
|
|
181
|
-
/// <param name="flags"></param>
|
|
182
|
-
/// <param name="falseFlags"></param>
|
|
183
|
-
/// <returns></returns>
|
|
184
|
-
protected virtual bool EvaluateVariableFlags(Objective objective, List<int> flags, List<int> falseFlags = null)
|
|
185
|
-
{
|
|
186
|
-
for (int i = 0; i < flags.Count; i++)
|
|
187
|
-
if (!objective.Flags[flags[i]].triggered)
|
|
188
|
-
return false;
|
|
189
|
-
|
|
190
|
-
if (falseFlags != null)
|
|
191
|
-
for (int i = 0; i < falseFlags.Count; i++)
|
|
192
|
-
if (objective.Flags[falseFlags[i]].triggered)
|
|
193
|
-
return false;
|
|
194
|
-
|
|
195
|
-
return true;
|
|
196
|
-
}
|
|
197
|
-
|
|
198
|
-
/// <inheritdoc/>
|
|
199
|
-
public override void TriggerAllRequiredFlags()
|
|
200
|
-
{
|
|
201
|
-
List<int> flagIndexes = new();
|
|
202
|
-
|
|
203
|
-
for (int i = 0; i < manager.currentObjective.Flags.Count; i++)
|
|
204
|
-
if (!manager.currentObjective.Flags[i].optional && !manager.currentObjective.Flags[i].triggered)
|
|
205
|
-
flagIndexes.Add(i);
|
|
206
|
-
|
|
207
|
-
TriggerFlag(flagIndexes);
|
|
208
|
-
}
|
|
209
|
-
|
|
210
|
-
/// <inheritdoc/>
|
|
211
|
-
protected override bool CompletedRequiredFlags()
|
|
212
|
-
{
|
|
213
|
-
int check = 0;
|
|
214
|
-
|
|
215
|
-
foreach (ProgressionFlag flag in manager.currentObjective.Flags)
|
|
216
|
-
if (flag.triggered && !flag.optional)
|
|
217
|
-
check++;
|
|
218
|
-
|
|
219
|
-
return check == manager.currentObjective.GetRequiredFlagCount();
|
|
220
|
-
}
|
|
221
|
-
|
|
222
|
-
/// <inheritdoc/>
|
|
223
|
-
public override ProgressionFlag GetFlagFromIndexes(int chapter, int objective, int flag)
|
|
224
|
-
{
|
|
225
|
-
bool onCurrentChapter = chapter == currentChapterIndex.Value;
|
|
226
|
-
|
|
227
|
-
string sentObjectiveName = progressionDatabase.Chapters[currentChapterIndex.Value].Objectives[objective].Description;
|
|
228
|
-
|
|
229
|
-
bool onCurrentObjective = sentObjectiveName == manager.currentObjective.Description;
|
|
230
|
-
|
|
231
|
-
if (onCurrentChapter && onCurrentObjective)
|
|
232
|
-
return manager.currentObjective.Flags[flag];
|
|
233
|
-
else
|
|
234
|
-
return ServiceLocator.GetService<IHistory>().GetFlagFromIndexes(chapter, objective, flag);
|
|
235
|
-
}
|
|
236
|
-
}
|
|
1
|
+
//Author: Benjamin "Sweden" Jillson : Discord: sweden_gaming For Project Eden's Garden
|
|
2
|
+
using DREditor.EventObjects;
|
|
3
|
+
using DREditor.Services;
|
|
4
|
+
using System;
|
|
5
|
+
using System.Collections;
|
|
6
|
+
using System.Collections.Generic;
|
|
7
|
+
using UnityEngine;
|
|
8
|
+
using UnityEngine.Scripting.APIUpdating;
|
|
9
|
+
using UnityEngine.Serialization;
|
|
10
|
+
|
|
11
|
+
namespace DREditor.Progressing.Handling
|
|
12
|
+
{
|
|
13
|
+
/// <summary>
|
|
14
|
+
///
|
|
15
|
+
/// </summary>
|
|
16
|
+
[ClassHeader(nameof(FlagTriggerHandlerBase) +
|
|
17
|
+
"\n\n")]
|
|
18
|
+
[MovedFrom(true, "DREditor.Progression.Handling", "DREditor.Progression.Handling")]
|
|
19
|
+
public class FlagTriggerHandler : FlagTriggerHandlerBase
|
|
20
|
+
{
|
|
21
|
+
/// <summary>
|
|
22
|
+
///
|
|
23
|
+
/// </summary>
|
|
24
|
+
[Tooltip("")]
|
|
25
|
+
[FormerlySerializedAs("database")]
|
|
26
|
+
[SerializeField] protected ProgressionDatabase progressionDatabase = null;
|
|
27
|
+
|
|
28
|
+
/// <summary>
|
|
29
|
+
///
|
|
30
|
+
/// </summary>
|
|
31
|
+
[Tooltip("")]
|
|
32
|
+
[SerializeField] protected ProgressionFlagHandler flagHandler = null;
|
|
33
|
+
|
|
34
|
+
/// <summary>
|
|
35
|
+
///
|
|
36
|
+
/// </summary>
|
|
37
|
+
[Tooltip("")]
|
|
38
|
+
[SerializeField] protected IntWithEvent currentChapterIndex = null;
|
|
39
|
+
|
|
40
|
+
/// <summary>
|
|
41
|
+
///
|
|
42
|
+
/// </summary>
|
|
43
|
+
[Tooltip("")]
|
|
44
|
+
[SerializeField] protected StringWithEvent flagTriggered = null;
|
|
45
|
+
|
|
46
|
+
/// <summary>
|
|
47
|
+
///
|
|
48
|
+
/// </summary>
|
|
49
|
+
[Tooltip("")]
|
|
50
|
+
[SerializeField] protected BoolWithEvent requiredFlagsTriggered = null;
|
|
51
|
+
|
|
52
|
+
/// <summary>
|
|
53
|
+
///
|
|
54
|
+
/// </summary>
|
|
55
|
+
[Tooltip("")]
|
|
56
|
+
[SerializeField] protected SceneEventListener loadProgressionData = null;
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
/// <summary>
|
|
60
|
+
///
|
|
61
|
+
/// </summary>
|
|
62
|
+
protected ProgressionManagerBase manager = null;
|
|
63
|
+
|
|
64
|
+
protected virtual void OnEnable() => loadProgressionData.Response.AddListener(Load);
|
|
65
|
+
|
|
66
|
+
protected virtual void OnDisable() => loadProgressionData.Response.RemoveListener(Load);
|
|
67
|
+
|
|
68
|
+
/// <summary>
|
|
69
|
+
///
|
|
70
|
+
/// </summary>
|
|
71
|
+
protected virtual void Load() => StartCoroutine(DelayLoad());
|
|
72
|
+
|
|
73
|
+
/// <summary>
|
|
74
|
+
///
|
|
75
|
+
/// </summary>
|
|
76
|
+
/// <remarks>
|
|
77
|
+
///
|
|
78
|
+
/// </remarks>
|
|
79
|
+
protected virtual IEnumerator DelayLoad()
|
|
80
|
+
{
|
|
81
|
+
yield return null;
|
|
82
|
+
|
|
83
|
+
requiredFlagsTriggered.SetValue(CompletedRequiredFlags());
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
protected virtual void Start() => manager = ServiceLocator.GetService<ProgressionManagerBase>();
|
|
88
|
+
|
|
89
|
+
/// <inheritdoc/>
|
|
90
|
+
public override void TriggerFlag(int chapterIndex, int objectiveIndex, List<int> flagIndexes)
|
|
91
|
+
{
|
|
92
|
+
try
|
|
93
|
+
{
|
|
94
|
+
bool onCurrentChapter = chapterIndex == currentChapterIndex.Value;
|
|
95
|
+
|
|
96
|
+
Objective targetObjective = progressionDatabase.Chapters[chapterIndex].Objectives[objectiveIndex];
|
|
97
|
+
|
|
98
|
+
bool targetIsCurrentObjective = targetObjective.Description == manager.currentObjective.Description;
|
|
99
|
+
|
|
100
|
+
if (onCurrentChapter && targetIsCurrentObjective)
|
|
101
|
+
TriggerFlagsInCurrentObjective(flagIndexes);
|
|
102
|
+
else
|
|
103
|
+
TriggerFlagsInHistory(chapterIndex, objectiveIndex, flagIndexes);
|
|
104
|
+
}
|
|
105
|
+
catch (Exception exception)
|
|
106
|
+
{
|
|
107
|
+
UnityEngine.Debug.LogWarning("ALERT: A CRITICAL ERROR HAS OCCURED TRIGGERING A PROGRESSION FLAG " +
|
|
108
|
+
"\n PLEASE CHECK THE DIALOGUE ASSET TO FIX OR FIND THE ISSUE.");
|
|
109
|
+
|
|
110
|
+
UnityEngine.Debug.LogWarning(exception);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
public override void TriggerFlag(List<int> flagIndexes)
|
|
115
|
+
{
|
|
116
|
+
var activeObjective = progressionDatabase.Chapters[currentChapterIndex.Value].GetObjective(manager.currentObjective.Description);
|
|
117
|
+
|
|
118
|
+
int objectiveIndex = progressionDatabase.Chapters[currentChapterIndex.Value].Objectives.IndexOf(activeObjective);
|
|
119
|
+
|
|
120
|
+
TriggerFlag(currentChapterIndex.Value, objectiveIndex, flagIndexes);
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
/// <summary>
|
|
124
|
+
///
|
|
125
|
+
/// </summary>
|
|
126
|
+
/// <param name="flagIndexes"></param>
|
|
127
|
+
protected virtual void TriggerFlagsInCurrentObjective(List<int> flagIndexes)
|
|
128
|
+
{
|
|
129
|
+
Objective objective = manager.currentObjective;
|
|
130
|
+
|
|
131
|
+
for (int i = 0; i < flagIndexes.Count; i++)
|
|
132
|
+
{
|
|
133
|
+
if (flagIndexes[i] > objective.Flags.Count)
|
|
134
|
+
{
|
|
135
|
+
flagHandler.RepairObjective(ref manager.currentObjective);
|
|
136
|
+
|
|
137
|
+
objective = manager.currentObjective;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
objective.Flags[flagIndexes[i]].SetTriggered(true);
|
|
141
|
+
|
|
142
|
+
flagTriggered.SetValue(objective.Flags[flagIndexes[i]].name);
|
|
143
|
+
|
|
144
|
+
requiredFlagsTriggered.SetValue(CompletedRequiredFlags());
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
/// <summary>
|
|
149
|
+
///
|
|
150
|
+
/// </summary>
|
|
151
|
+
/// <param name="chapterIndex"></param>
|
|
152
|
+
/// <param name="objectiveIndex"></param>
|
|
153
|
+
/// <param name="flagIndexes"></param>
|
|
154
|
+
protected virtual void TriggerFlagsInHistory(int chapterIndex, int objectiveIndex, List<int> flagIndexes)
|
|
155
|
+
{
|
|
156
|
+
Objective targetObjective = progressionDatabase.Chapters[chapterIndex].Objectives[objectiveIndex];
|
|
157
|
+
|
|
158
|
+
for (int i = 0; i < flagIndexes.Count; i++)
|
|
159
|
+
flagHandler.GetFlag(targetObjective.Flags[flagIndexes[i]].name, targetObjective).SetTriggered(true);
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
/// <inheritdoc/>
|
|
163
|
+
public override bool IsFlagTriggered(string flagName) => flagHandler.GetFlag(flagName, manager.currentObjective).triggered;
|
|
164
|
+
|
|
165
|
+
/// <inheritdoc/>
|
|
166
|
+
public override bool EvaluateVariable(int chapter, int objective, List<int> flags, List<int> falseFlags = null)
|
|
167
|
+
{
|
|
168
|
+
bool checkingCurrentObjective =
|
|
169
|
+
progressionDatabase.Chapters[chapter].Objectives[objective].Description == manager.currentObjective.Description;
|
|
170
|
+
|
|
171
|
+
Objective evaluateObjective = checkingCurrentObjective ?
|
|
172
|
+
manager.currentObjective : ServiceLocator.GetService<IHistory>().GetHistoryObjective(chapter, objective);
|
|
173
|
+
|
|
174
|
+
return EvaluateVariableFlags(evaluateObjective, flags, falseFlags);
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
/// <summary>
|
|
178
|
+
///
|
|
179
|
+
/// </summary>
|
|
180
|
+
/// <param name="objective"></param>
|
|
181
|
+
/// <param name="flags"></param>
|
|
182
|
+
/// <param name="falseFlags"></param>
|
|
183
|
+
/// <returns></returns>
|
|
184
|
+
protected virtual bool EvaluateVariableFlags(Objective objective, List<int> flags, List<int> falseFlags = null)
|
|
185
|
+
{
|
|
186
|
+
for (int i = 0; i < flags.Count; i++)
|
|
187
|
+
if (!objective.Flags[flags[i]].triggered)
|
|
188
|
+
return false;
|
|
189
|
+
|
|
190
|
+
if (falseFlags != null)
|
|
191
|
+
for (int i = 0; i < falseFlags.Count; i++)
|
|
192
|
+
if (objective.Flags[falseFlags[i]].triggered)
|
|
193
|
+
return false;
|
|
194
|
+
|
|
195
|
+
return true;
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
/// <inheritdoc/>
|
|
199
|
+
public override void TriggerAllRequiredFlags()
|
|
200
|
+
{
|
|
201
|
+
List<int> flagIndexes = new();
|
|
202
|
+
|
|
203
|
+
for (int i = 0; i < manager.currentObjective.Flags.Count; i++)
|
|
204
|
+
if (!manager.currentObjective.Flags[i].optional && !manager.currentObjective.Flags[i].triggered)
|
|
205
|
+
flagIndexes.Add(i);
|
|
206
|
+
|
|
207
|
+
TriggerFlag(flagIndexes);
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
/// <inheritdoc/>
|
|
211
|
+
protected override bool CompletedRequiredFlags()
|
|
212
|
+
{
|
|
213
|
+
int check = 0;
|
|
214
|
+
|
|
215
|
+
foreach (ProgressionFlag flag in manager.currentObjective.Flags)
|
|
216
|
+
if (flag.triggered && !flag.optional)
|
|
217
|
+
check++;
|
|
218
|
+
|
|
219
|
+
return check == manager.currentObjective.GetRequiredFlagCount();
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
/// <inheritdoc/>
|
|
223
|
+
public override ProgressionFlag GetFlagFromIndexes(int chapter, int objective, int flag)
|
|
224
|
+
{
|
|
225
|
+
bool onCurrentChapter = chapter == currentChapterIndex.Value;
|
|
226
|
+
|
|
227
|
+
string sentObjectiveName = progressionDatabase.Chapters[currentChapterIndex.Value].Objectives[objective].Description;
|
|
228
|
+
|
|
229
|
+
bool onCurrentObjective = sentObjectiveName == manager.currentObjective.Description;
|
|
230
|
+
|
|
231
|
+
if (onCurrentChapter && onCurrentObjective)
|
|
232
|
+
return manager.currentObjective.Flags[flag];
|
|
233
|
+
else
|
|
234
|
+
return ServiceLocator.GetService<IHistory>().GetFlagFromIndexes(chapter, objective, flag);
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
237
|
}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
fileFormatVersion: 2
|
|
2
|
-
guid: 06bf5abf1420c094487f9bde160bca49
|
|
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: 06bf5abf1420c094487f9bde160bca49
|
|
3
|
+
MonoImporter:
|
|
4
|
+
externalObjects: {}
|
|
5
|
+
serializedVersion: 2
|
|
6
|
+
defaultReferences: []
|
|
7
|
+
executionOrder: 0
|
|
8
|
+
icon: {instanceID: 0}
|
|
9
|
+
userData:
|
|
10
|
+
assetBundleName:
|
|
11
|
+
assetBundleVariant:
|
|
@@ -1,66 +1,66 @@
|
|
|
1
|
-
//Author: Benjamin "Sweden" Jillson : Discord: sweden_gaming For Project Eden's Garden
|
|
2
|
-
using DREditor.Services;
|
|
3
|
-
using System.Collections.Generic;
|
|
4
|
-
using UnityEngine.Scripting.APIUpdating;
|
|
5
|
-
|
|
6
|
-
namespace DREditor.Progressing.Handling
|
|
7
|
-
{
|
|
8
|
-
/// <summary>
|
|
9
|
-
///
|
|
10
|
-
/// </summary>
|
|
11
|
-
[MovedFrom(true, "DREditor.Progression.Handling", "DREditor.Progression.Handling")]
|
|
12
|
-
public abstract class FlagTriggerHandlerBase : ServiceHolder<FlagTriggerHandlerBase>
|
|
13
|
-
{
|
|
14
|
-
/// <summary>
|
|
15
|
-
///
|
|
16
|
-
/// </summary>
|
|
17
|
-
/// <param name="chapterIndex"></param>
|
|
18
|
-
/// <param name="objectiveIndex"></param>
|
|
19
|
-
/// <param name="flagIndexes"></param>
|
|
20
|
-
public abstract void TriggerFlag(int chapterIndex, int objectiveIndex, List<int> flagIndexes);
|
|
21
|
-
|
|
22
|
-
/// <summary>
|
|
23
|
-
///
|
|
24
|
-
/// </summary>
|
|
25
|
-
/// <param name="flagIndexes"></param>
|
|
26
|
-
public abstract void TriggerFlag(List<int> flagIndexes);
|
|
27
|
-
|
|
28
|
-
/// <summary>
|
|
29
|
-
///
|
|
30
|
-
/// </summary>
|
|
31
|
-
/// <param name="flagName"></param>
|
|
32
|
-
/// <returns></returns>
|
|
33
|
-
public abstract bool IsFlagTriggered(string flagName);
|
|
34
|
-
|
|
35
|
-
/// <summary>
|
|
36
|
-
///
|
|
37
|
-
/// </summary>
|
|
38
|
-
/// <param name="chapter"></param>
|
|
39
|
-
/// <param name="objective"></param>
|
|
40
|
-
/// <param name="flags"></param>
|
|
41
|
-
/// <param name="falseFlags"></param>
|
|
42
|
-
/// <returns></returns>
|
|
43
|
-
public abstract bool EvaluateVariable(int chapter, int objective, List<int> flags, List<int> falseFlags = null);
|
|
44
|
-
|
|
45
|
-
/// <summary>
|
|
46
|
-
///
|
|
47
|
-
/// </summary>
|
|
48
|
-
/// <returns></returns>
|
|
49
|
-
protected abstract bool CompletedRequiredFlags();
|
|
50
|
-
|
|
51
|
-
/// <summary>
|
|
52
|
-
///
|
|
53
|
-
/// </summary>
|
|
54
|
-
/// <param name="chapter"></param>
|
|
55
|
-
/// <param name="objective"></param>
|
|
56
|
-
/// <param name="flag"></param>
|
|
57
|
-
/// <returns></returns>
|
|
58
|
-
public abstract ProgressionFlag GetFlagFromIndexes(int chapter, int objective, int flag);
|
|
59
|
-
|
|
60
|
-
/// <summary>
|
|
61
|
-
///
|
|
62
|
-
/// </summary>
|
|
63
|
-
/// <remarks></remarks>
|
|
64
|
-
public abstract void TriggerAllRequiredFlags();
|
|
65
|
-
}
|
|
1
|
+
//Author: Benjamin "Sweden" Jillson : Discord: sweden_gaming For Project Eden's Garden
|
|
2
|
+
using DREditor.Services;
|
|
3
|
+
using System.Collections.Generic;
|
|
4
|
+
using UnityEngine.Scripting.APIUpdating;
|
|
5
|
+
|
|
6
|
+
namespace DREditor.Progressing.Handling
|
|
7
|
+
{
|
|
8
|
+
/// <summary>
|
|
9
|
+
///
|
|
10
|
+
/// </summary>
|
|
11
|
+
[MovedFrom(true, "DREditor.Progression.Handling", "DREditor.Progression.Handling")]
|
|
12
|
+
public abstract class FlagTriggerHandlerBase : ServiceHolder<FlagTriggerHandlerBase>
|
|
13
|
+
{
|
|
14
|
+
/// <summary>
|
|
15
|
+
///
|
|
16
|
+
/// </summary>
|
|
17
|
+
/// <param name="chapterIndex"></param>
|
|
18
|
+
/// <param name="objectiveIndex"></param>
|
|
19
|
+
/// <param name="flagIndexes"></param>
|
|
20
|
+
public abstract void TriggerFlag(int chapterIndex, int objectiveIndex, List<int> flagIndexes);
|
|
21
|
+
|
|
22
|
+
/// <summary>
|
|
23
|
+
///
|
|
24
|
+
/// </summary>
|
|
25
|
+
/// <param name="flagIndexes"></param>
|
|
26
|
+
public abstract void TriggerFlag(List<int> flagIndexes);
|
|
27
|
+
|
|
28
|
+
/// <summary>
|
|
29
|
+
///
|
|
30
|
+
/// </summary>
|
|
31
|
+
/// <param name="flagName"></param>
|
|
32
|
+
/// <returns></returns>
|
|
33
|
+
public abstract bool IsFlagTriggered(string flagName);
|
|
34
|
+
|
|
35
|
+
/// <summary>
|
|
36
|
+
///
|
|
37
|
+
/// </summary>
|
|
38
|
+
/// <param name="chapter"></param>
|
|
39
|
+
/// <param name="objective"></param>
|
|
40
|
+
/// <param name="flags"></param>
|
|
41
|
+
/// <param name="falseFlags"></param>
|
|
42
|
+
/// <returns></returns>
|
|
43
|
+
public abstract bool EvaluateVariable(int chapter, int objective, List<int> flags, List<int> falseFlags = null);
|
|
44
|
+
|
|
45
|
+
/// <summary>
|
|
46
|
+
///
|
|
47
|
+
/// </summary>
|
|
48
|
+
/// <returns></returns>
|
|
49
|
+
protected abstract bool CompletedRequiredFlags();
|
|
50
|
+
|
|
51
|
+
/// <summary>
|
|
52
|
+
///
|
|
53
|
+
/// </summary>
|
|
54
|
+
/// <param name="chapter"></param>
|
|
55
|
+
/// <param name="objective"></param>
|
|
56
|
+
/// <param name="flag"></param>
|
|
57
|
+
/// <returns></returns>
|
|
58
|
+
public abstract ProgressionFlag GetFlagFromIndexes(int chapter, int objective, int flag);
|
|
59
|
+
|
|
60
|
+
/// <summary>
|
|
61
|
+
///
|
|
62
|
+
/// </summary>
|
|
63
|
+
/// <remarks></remarks>
|
|
64
|
+
public abstract void TriggerAllRequiredFlags();
|
|
65
|
+
}
|
|
66
66
|
}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
fileFormatVersion: 2
|
|
2
|
-
guid: 9a1e2d255b9f44b45b88dd255e4f62ca
|
|
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: 9a1e2d255b9f44b45b88dd255e4f62ca
|
|
3
|
+
MonoImporter:
|
|
4
|
+
externalObjects: {}
|
|
5
|
+
serializedVersion: 2
|
|
6
|
+
defaultReferences: []
|
|
7
|
+
executionOrder: 0
|
|
8
|
+
icon: {instanceID: 0}
|
|
9
|
+
userData:
|
|
10
|
+
assetBundleName:
|
|
11
|
+
assetBundleVariant:
|