implement solo quest progression flags

This commit is contained in:
Martin Michelsen
2023-12-08 17:01:11 -08:00
parent 009a0fc93d
commit b7bc148e09
187 changed files with 663 additions and 108 deletions
+2 -1
View File
@@ -501,7 +501,8 @@
[0x02, "battle", "Battle", "$E$C6Battle mode rule\nsets"],
[0x04, "challenge-ep1", "Challenge (Episode 1)", "$E$C6Challenge mode\nquests in Episode 1"],
[0x84, "challenge-ep2", "Challenge (Episode 2)", "$E$C6Challenge mode\nquests in Episode 2"],
[0x08, "solo", "Solo", "$E$C6Quests that require\na single player"],
[0x08, "solo-story", "Story", "$E$C6Quests that follow\nthe Episode 1 story"],
[0x08, "solo-extra", "Solo", "$E$C6Quests that require\na single player"],
[0x10, "government-ep1", "Hero in Red", "$E$CG-Red Ring Rico-\n$C6Quests that follow\nthe Episode 1\nstoryline"],
[0x10, "government-ep2", "The Military's Hero", "$E$CG-Heathcliff Flowen-\n$C6Quests that follow\nthe Episode 2\nstoryline"],
[0x10, "government-ep4", "The Meteor Impact Incident", "$E$C6Quests that follow\nthe Episode 4\nstoryline"],
+11 -9
View File
@@ -35,14 +35,16 @@
// "ChallengeTemplateIndex": 0,
// Quests may be set to be unavailable until a preceding quest has been
// cleared. To enable this feature, set a value for RequireFlag in the quest's
// JSON file. This field is ignored if the player has the
// DISABLE_QUEST_REQUIREMENTS flag in their license.
// "RequireFlag": 0x01F5,
// cleared or a team reward has been purchased. To enable this feature, set a
// value for AvailableIf in the quest's JSON file. This field's value should
// be a boolean expression that tests one or more flags or team rewards. An
// example with random values is shown below. This field is ignored if the
// player has the DISABLE_QUEST_REQUIREMENTS flag in their license.
// "AvailableIf": "(F_016D || F_0171 || T_EpicCustomQuest) && !F_0173",
// Quests on BB may be set to be available only through a team reward. To
// enable this feature, set a value for RequireTeamRewardKey in the quest's
// JSON file. This field is ignored if the player has the
// DISABLE_QUEST_REQUIREMENTS flag in their license.
// "RequireTeamRewardKey": "PointOfDisasterQuest",
// On BB, quests may be disabled but still visible to the player. This
// expression controls when that should be the case. If AvailableIf evaluates
// to false, this is ignored. This field is also ignored if the player has
// the DISABLE_QUEST_REQUIREMENTS flag in their license.
// "EnabledIf": "!F_0169",
}
+1 -1
View File
@@ -1,3 +1,3 @@
{
"RequireFlag": 0x01F5,
"AvailableIf": "F_01F5",
}
+1 -1
View File
@@ -1,3 +1,3 @@
{
"RequireFlag": 0x01F7,
"AvailableIf": "F_01F7",
}
+1 -1
View File
@@ -1,3 +1,3 @@
{
"RequireFlag": 0x01F9,
"AvailableIf": "F_01F9",
}
+1 -1
View File
@@ -1,3 +1,3 @@
{
"RequireFlag": 0x01FB,
"AvailableIf": "F_01FB",
}
+1 -1
View File
@@ -1,3 +1,3 @@
{
"RequireFlag": 0x01FD,
"AvailableIf": "F_01FD",
}
+1 -1
View File
@@ -1,3 +1,3 @@
{
"RequireFlag": 0x01FF,
"AvailableIf": "F_01FF",
}
+1 -1
View File
@@ -1,3 +1,3 @@
{
"RequireFlag": 0x0201,
"AvailableIf": "F_0201",
}
+1 -1
View File
@@ -1,3 +1,3 @@
{
"RequireFlag": 0x0203,
"AvailableIf": "F_0203",
}
+1 -1
View File
@@ -1,3 +1,3 @@
{
"RequireFlag": 0x0205,
"AvailableIf": "F_0205",
}
+1 -1
View File
@@ -1,3 +1,3 @@
{
"RequireFlag": 0x0207,
"AvailableIf": "F_0207",
}
+1 -1
View File
@@ -1,3 +1,3 @@
{
"RequireFlag": 0x0209,
"AvailableIf": "F_0209",
}
+1 -1
View File
@@ -1,3 +1,3 @@
{
"RequireFlag": 0x020B,
"AvailableIf": "F_020B",
}
+1 -1
View File
@@ -1,3 +1,3 @@
{
"RequireFlag": 0x020D,
"AvailableIf": "F_020D",
}
+1 -1
View File
@@ -1,3 +1,3 @@
{
"RequireFlag": 0x020F,
"AvailableIf": "F_020F",
}
+1 -1
View File
@@ -1,3 +1,3 @@
{
"RequireFlag": 0x0213,
"AvailableIf": "F_0213",
}
+1 -1
View File
@@ -1,3 +1,3 @@
{
"RequireFlag": 0x0215,
"AvailableIf": "F_0215",
}
+1 -1
View File
@@ -1,3 +1,3 @@
{
"RequireFlag": 0x0217,
"AvailableIf": "F_0217",
}
+1 -1
View File
@@ -1,3 +1,3 @@
{
"RequireFlag": 0x0219,
"AvailableIf": "F_0219",
}
+1 -1
View File
@@ -1,3 +1,3 @@
{
"RequireFlag": 0x021B,
"AvailableIf": "F_021B",
}
+1 -1
View File
@@ -1,3 +1,3 @@
{
"RequireFlag": 0x021D,
"AvailableIf": "F_021D",
}
+1 -1
View File
@@ -1,3 +1,3 @@
{
"RequireFlag": 0x021F,
"AvailableIf": "F_021F",
}
+1 -1
View File
@@ -1,3 +1,3 @@
{
"RequireFlag": 0x0221,
"AvailableIf": "F_0221",
}
+1 -1
View File
@@ -1,3 +1,3 @@
{
"RequireFlag": 0x0223,
"AvailableIf": "F_0223",
}
+1 -1
View File
@@ -1,3 +1,3 @@
{
"RequireFlag": 0x0225,
"AvailableIf": "F_0225",
}
+1 -1
View File
@@ -1,3 +1,3 @@
{
"RequireFlag": 0x0227,
"AvailableIf": "F_0227",
}
+1 -1
View File
@@ -1,3 +1,3 @@
{
"RequireFlag": 0x0229,
"AvailableIf": "F_0229",
}
+1 -1
View File
@@ -1,3 +1,3 @@
{
"RequireFlag": 0x022B,
"AvailableIf": "F_022B",
}
+1 -1
View File
@@ -1,3 +1,3 @@
{
"RequireFlag": 0x022D,
"AvailableIf": "F_022D",
}
+1 -1
View File
@@ -1,3 +1,3 @@
{
"RequireFlag": 0x022F,
"AvailableIf": "F_022F",
}
+1 -1
View File
@@ -1,3 +1,3 @@
{
"RequireFlag": 0x0231,
"AvailableIf": "F_0231",
}
+1 -1
View File
@@ -1,3 +1,3 @@
{
"RequireFlag": 0x0233,
"AvailableIf": "F_0233",
}
+1 -1
View File
@@ -1,3 +1,3 @@
{
"RequireFlag": 0x02BD,
"AvailableIf": "F_02BD",
}
+1 -1
View File
@@ -1,3 +1,3 @@
{
"RequireFlag": 0x02BE,
"AvailableIf": "F_02BE",
}
+1 -1
View File
@@ -1,3 +1,3 @@
{
"RequireFlag": 0x02BF,
"AvailableIf": "F_02BF",
}
+1 -1
View File
@@ -1,3 +1,3 @@
{
"RequireFlag": 0x02C0,
"AvailableIf": "F_02C0",
}
+1 -1
View File
@@ -1,3 +1,3 @@
{
"RequireFlag": 0x02C1,
"AvailableIf": "F_02C1",
}
+1 -1
View File
@@ -1,3 +1,3 @@
{
"RequireFlag": 0x02C2,
"AvailableIf": "F_02C2",
}
+1 -1
View File
@@ -1,3 +1,3 @@
{
"RequireFlag": 0x02C3,
"AvailableIf": "F_02C3",
}
+3
View File
@@ -0,0 +1,3 @@
{
"EnabledIf": "!F_0065 || (F_0065 && F_0067 && F_0069 && F_006B && F_006D && F_006F && F_0071 && F_0073 && F_0075 && F_0077 && F_0079 && F_007B && F_007D && F_007F && F_0081 && F_0083 && F_0085 && F_0087 && F_0089 && F_008B && F_008D && F_008F && F_0091 && F_0093 && F_0095)",
}
+3
View File
@@ -0,0 +1,3 @@
{
"EnabledIf": "!F_0067 || (F_0065 && F_0067 && F_0069 && F_006B && F_006D && F_006F && F_0071 && F_0073 && F_0075 && F_0077 && F_0079 && F_007B && F_007D && F_007F && F_0081 && F_0083 && F_0085 && F_0087 && F_0089 && F_008B && F_008D && F_008F && F_0091 && F_0093 && F_0095)",
}
+4
View File
@@ -0,0 +1,4 @@
{
"AvailableIf": "F_0065 && F_0067 && F_006B && F_01F9",
"EnabledIf": "!F_0069 || (F_0065 && F_0067 && F_0069 && F_006B && F_006D && F_006F && F_0071 && F_0073 && F_0075 && F_0077 && F_0079 && F_007B && F_007D && F_007F && F_0081 && F_0083 && F_0085 && F_0087 && F_0089 && F_008B && F_008D && F_008F && F_0091 && F_0093 && F_0095)",
}
+3
View File
@@ -0,0 +1,3 @@
{
"EnabledIf": "!F_006B || (F_0065 && F_0067 && F_0069 && F_006B && F_006D && F_006F && F_0071 && F_0073 && F_0075 && F_0077 && F_0079 && F_007B && F_007D && F_007F && F_0081 && F_0083 && F_0085 && F_0087 && F_0089 && F_008B && F_008D && F_008F && F_0091 && F_0093 && F_0095)",
}
+4
View File
@@ -0,0 +1,4 @@
{
"AvailableIf": "F_0065 && F_0067 && F_006B",
"EnabledIf": "!F_006D || (F_0065 && F_0067 && F_0069 && F_006B && F_006D && F_006F && F_0071 && F_0073 && F_0075 && F_0077 && F_0079 && F_007B && F_007D && F_007F && F_0081 && F_0083 && F_0085 && F_0087 && F_0089 && F_008B && F_008D && F_008F && F_0091 && F_0093 && F_0095)",
}
+4
View File
@@ -0,0 +1,4 @@
{
"AvailableIf": "F_0065 && F_0067 && F_006B",
"EnabledIf": "!F_006F || (F_0065 && F_0067 && F_0069 && F_006B && F_006D && F_006F && F_0071 && F_0073 && F_0075 && F_0077 && F_0079 && F_007B && F_007D && F_007F && F_0081 && F_0083 && F_0085 && F_0087 && F_0089 && F_008B && F_008D && F_008F && F_0091 && F_0093 && F_0095)",
}
+4
View File
@@ -0,0 +1,4 @@
{
"AvailableIf": "F_0065 && F_0067 && F_006B",
"EnabledIf": "!F_0071 || (F_0065 && F_0067 && F_0069 && F_006B && F_006D && F_006F && F_0071 && F_0073 && F_0075 && F_0077 && F_0079 && F_007B && F_007D && F_007F && F_0081 && F_0083 && F_0085 && F_0087 && F_0089 && F_008B && F_008D && F_008F && F_0091 && F_0093 && F_0095)",
}
+4
View File
@@ -0,0 +1,4 @@
{
"AvailableIf": "F_0071",
"EnabledIf": "!F_0073 || (F_0065 && F_0067 && F_0069 && F_006B && F_006D && F_006F && F_0071 && F_0073 && F_0075 && F_0077 && F_0079 && F_007B && F_007D && F_007F && F_0081 && F_0083 && F_0085 && F_0087 && F_0089 && F_008B && F_008D && F_008F && F_0091 && F_0093 && F_0095)",
}
+4
View File
@@ -0,0 +1,4 @@
{
"AvailableIf": "F_0065 && F_0067 && F_006B",
"EnabledIf": "!F_0075 || (F_0065 && F_0067 && F_0069 && F_006B && F_006D && F_006F && F_0071 && F_0073 && F_0075 && F_0077 && F_0079 && F_007B && F_007D && F_007F && F_0081 && F_0083 && F_0085 && F_0087 && F_0089 && F_008B && F_008D && F_008F && F_0091 && F_0093 && F_0095)",
}
+4
View File
@@ -0,0 +1,4 @@
{
"AvailableIf": "F_0065 && F_0067 && F_006B && F_01F9",
"EnabledIf": "!F_0077 || (F_0065 && F_0067 && F_0069 && F_006B && F_006D && F_006F && F_0071 && F_0073 && F_0075 && F_0077 && F_0079 && F_007B && F_007D && F_007F && F_0081 && F_0083 && F_0085 && F_0087 && F_0089 && F_008B && F_008D && F_008F && F_0091 && F_0093 && F_0095)",
}
+4
View File
@@ -0,0 +1,4 @@
{
"AvailableIf": "F_0065 && F_0067 && F_006B && F_01F9",
"EnabledIf": "!F_0079 || (F_0065 && F_0067 && F_0069 && F_006B && F_006D && F_006F && F_0071 && F_0073 && F_0075 && F_0077 && F_0079 && F_007B && F_007D && F_007F && F_0081 && F_0083 && F_0085 && F_0087 && F_0089 && F_008B && F_008D && F_008F && F_0091 && F_0093 && F_0095)",
}
+4
View File
@@ -0,0 +1,4 @@
{
"AvailableIf": "F_0065 && F_0067 && F_006B && F_0077 && F_0079 && F_007F && F_0085 && F_01F9",
"EnabledIf": "!F_007B || (F_0065 && F_0067 && F_0069 && F_006B && F_006D && F_006F && F_0071 && F_0073 && F_0075 && F_0077 && F_0079 && F_007B && F_007D && F_007F && F_0081 && F_0083 && F_0085 && F_0087 && F_0089 && F_008B && F_008D && F_008F && F_0091 && F_0093 && F_0095)",
}

Some files were not shown because too many files have changed in this diff Show More