summaryrefslogtreecommitdiff
path: root/Thronefall_v1.0/Decompile/Quest.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Thronefall_v1.0/Decompile/Quest.cs')
-rw-r--r--Thronefall_v1.0/Decompile/Quest.cs114
1 files changed, 114 insertions, 0 deletions
diff --git a/Thronefall_v1.0/Decompile/Quest.cs b/Thronefall_v1.0/Decompile/Quest.cs
new file mode 100644
index 0000000..2532576
--- /dev/null
+++ b/Thronefall_v1.0/Decompile/Quest.cs
@@ -0,0 +1,114 @@
+using System;
+using System.Collections.Generic;
+using I2.Loc;
+
+[Serializable]
+public class Quest
+{
+ public enum EType
+ {
+ BeatTheLevel = 0,
+ AchieveScoreOf = 2,
+ BeatTheLevelWith = 1,
+ BeatTheLevelWithout = 3
+ }
+
+ public EType questType;
+
+ public List<Equippable> beatTheLevelWith = new List<Equippable>();
+
+ public int achieveScoreOf;
+
+ public List<Equippable> beatTheLevelWithout = new List<Equippable>();
+
+ private bool IsBeatLevelWith => questType == EType.BeatTheLevelWith;
+
+ private bool IsAchieveScoreOf => questType == EType.AchieveScoreOf;
+
+ private bool IsBeatLevelWithout => questType == EType.BeatTheLevelWithout;
+
+ public bool CheckBeaten(LevelData _myLevelData)
+ {
+ switch (questType)
+ {
+ case EType.BeatTheLevel:
+ return _myLevelData.beatenBest;
+ case EType.AchieveScoreOf:
+ return _myLevelData.highscoreBest >= achieveScoreOf;
+ case EType.BeatTheLevelWith:
+ {
+ for (int k = 0; k < _myLevelData.levelHasBeenBeatenWith.Count; k++)
+ {
+ List<Equippable> list2 = _myLevelData.levelHasBeenBeatenWith[k];
+ int num = beatTheLevelWith.Count;
+ for (int l = 0; l < list2.Count; l++)
+ {
+ if (beatTheLevelWith.Contains(list2[l]))
+ {
+ num--;
+ }
+ if (num <= 0)
+ {
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+ case EType.BeatTheLevelWithout:
+ {
+ for (int i = 0; i < _myLevelData.levelHasBeenBeatenWith.Count; i++)
+ {
+ List<Equippable> list = _myLevelData.levelHasBeenBeatenWith[i];
+ bool flag = true;
+ for (int j = 0; j < list.Count; j++)
+ {
+ if (beatTheLevelWithout.Contains(list[j]))
+ {
+ flag = false;
+ break;
+ }
+ }
+ if (flag)
+ {
+ return true;
+ }
+ }
+ return false;
+ }
+ default:
+ return false;
+ }
+ }
+
+ public string GetMissionStatement()
+ {
+ string result = "";
+ switch (questType)
+ {
+ case EType.AchieveScoreOf:
+ result = LocalizationManager.GetTranslation("Achieve Score") + " " + achieveScoreOf;
+ break;
+ case EType.BeatTheLevel:
+ result = LocalizationManager.GetTranslation("Achieve Victory");
+ break;
+ case EType.BeatTheLevelWith:
+ result = LocalizationManager.GetTranslation("Achieve Victory With");
+ foreach (Equippable item in beatTheLevelWith)
+ {
+ result = result + " " + item.displayName + " +";
+ }
+ result = result.Remove(result.Length - 1, 1);
+ break;
+ case EType.BeatTheLevelWithout:
+ result = LocalizationManager.GetTranslation("Achieve Victory Without");
+ foreach (Equippable item2 in beatTheLevelWithout)
+ {
+ result = result + " " + item2.displayName + " +";
+ }
+ result = result.Remove(result.Length - 1, 1);
+ break;
+ }
+ return result;
+ }
+}