implement quest unlock flags

This commit is contained in:
Martin Michelsen
2023-11-29 22:22:19 -08:00
parent 3d2d96eb7e
commit 3743d0a156
75 changed files with 564 additions and 306 deletions
+46 -21
View File
@@ -1,23 +1,48 @@
{
"battle_rules": {
"tech_disk_mode": "ALLOW",
"weapon_and_armor_mode": "ALLOW",
"mag_mode": "ALLOW",
"tool_mode": "ALLOW",
"trap_mode": "ALL_PLAYERS",
"respawn_mode": 0,
"replace_char": 0,
"drop_weapon": 1,
"is_teams": 1,
"hide_target_reticle": 1,
"death_level_up": 3,
"meseta_mode": "ALLOW",
"enable_sonar": 1,
"time_limit": 10,
"forbid_scape_dolls": 1,
"death_tech_level_up": 1,
"trap_counts": [5, 5, 5, 5],
"sonar_count": 5,
"box_drop_area": 10
}
// Each quest may have an optional JSON file (like this one) that defines
// server-side behaviors for the quest.
// For battle quests, the BattleRules field should be defined to match the
// rules that the quest defines internally. These are the rules for Battle 1.
"BattleRules": {
"TechDiskMode": "ALLOW",
"WeaponAndArmorMode": "ALLOW",
"MagMode": "ALLOW",
"ToolMode": "ALLOW",
"TrapMode": "ALL_PLAYERS",
"RespawnMode": 0,
"ReplaceChar": 0,
"DropWeapon": 1,
"IsTeams": 1,
"HideTargetReticle": 1,
"DeathLevelUp": 3,
"MesetaMode": "ALLOW",
"EnableSonar": 1,
"TimeLimit": 10,
"ForbidScapeDolls": 1,
"DeathTechLevelUp": 1,
"TrapCounts": [5, 5, 5, 5],
"SonarCount": 5,
"BoxDropArea": 10,
// These rules are used by other battles, but not by Battle 1:
// "Lives": 10,
// "MaxTechLevel": 15,
// "CharLevel": 1,
},
// Challenge quests should specify the ChallengeTemplateIndex field, which
// should match the template that the quest uses to replace player characters.
// "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,
// 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",
}
+22 -22
View File
@@ -1,25 +1,25 @@
{
"battle_rules": {
"tech_disk_mode": "LIMIT_LEVEL",
"weapon_and_armor_mode": "CLEAR_AND_ALLOW",
"mag_mode": "FORBID_ALL",
"tool_mode": "CLEAR_AND_ALLOW",
"trap_mode": "ALL_PLAYERS",
"respawn_mode": 0,
"replace_char": 1,
"drop_weapon": 1,
"is_teams": 0,
"hide_target_reticle": 1,
"death_level_up": 5,
"meseta_mode": "CLEAR_AND_ALLOW",
"enable_sonar": 1,
"max_tech_level": 0,
"char_level": 0,
"time_limit": 10,
"forbid_scape_dolls": 1,
"death_tech_level_up": 1,
"trap_counts": [0, 5, 5, 5],
"sonar_count": 5,
"box_drop_area": 1
"BattleRules": {
"TechDiskMode": "LIMIT_LEVEL",
"WeaponAndArmorMode": "CLEAR_AND_ALLOW",
"MagMode": "FORBID_ALL",
"ToolMode": "CLEAR_AND_ALLOW",
"TrapMode": "ALL_PLAYERS",
"RespawnMode": 0,
"ReplaceChar": 1,
"DropWeapon": 1,
"IsTeams": 0,
"HideTargetReticle": 1,
"DeathLevelUp": 5,
"MesetaMode": "CLEAR_AND_ALLOW",
"EnableSonar": 1,
"MaxTechLevel": 0,
"CharLevel": 0,
"TimeLimit": 10,
"ForbidScapeDolls": 1,
"DeathTechLevelUp": 1,
"TrapCounts": [0, 5, 5, 5],
"SonarCount": 5,
"BoxDropArea": 1
}
}
+22 -22
View File
@@ -1,25 +1,25 @@
{
"battle_rules": {
"tech_disk_mode": "LIMIT_LEVEL",
"weapon_and_armor_mode": "CLEAR_AND_ALLOW",
"mag_mode": "FORBID_ALL",
"tool_mode": "CLEAR_AND_ALLOW",
"trap_mode": "ALL_PLAYERS",
"respawn_mode": 2,
"replace_char": 1,
"drop_weapon": 0,
"is_teams": 0,
"hide_target_reticle": 1,
"death_level_up": 3,
"meseta_mode": "FORBID_ALL",
"enable_sonar": 0,
"lives": 10,
"max_tech_level": 0,
"char_level": 4,
"time_limit": 10,
"forbid_scape_dolls": 1,
"death_tech_level_up": 1,
"trap_counts": [0, 10, 10, 10],
"box_drop_area": 3
"BattleRules": {
"TechDiskMode": "LIMIT_LEVEL",
"WeaponAndArmorMode": "CLEAR_AND_ALLOW",
"MagMode": "FORBID_ALL",
"ToolMode": "CLEAR_AND_ALLOW",
"TrapMode": "ALL_PLAYERS",
"RespawnMode": 2,
"ReplaceChar": 1,
"DropWeapon": 0,
"IsTeams": 0,
"HideTargetReticle": 1,
"DeathLevelUp": 3,
"MesetaMode": "FORBID_ALL",
"EnableSonar": 0,
"Lives": 10,
"MaxTechLevel": 0,
"CharLevel": 4,
"TimeLimit": 10,
"ForbidScapeDolls": 1,
"DeathTechLevelUp": 1,
"TrapCounts": [0, 10, 10, 10],
"BoxDropArea": 3
}
}
+23 -23
View File
@@ -1,26 +1,26 @@
{
"battle_rules": {
"tech_disk_mode": "LIMIT_LEVEL",
"weapon_and_armor_mode": "CLEAR_AND_ALLOW",
"mag_mode": "FORBID_ALL",
"tool_mode": "CLEAR_AND_ALLOW",
"trap_mode": "ALL_PLAYERS",
"respawn_mode": 2,
"replace_char": 1,
"drop_weapon": 1,
"is_teams": 0,
"hide_target_reticle": 1,
"death_level_up": 5,
"meseta_mode": "CLEAR_AND_ALLOW",
"enable_sonar": 1,
"lives": 10,
"max_tech_level": 1,
"char_level": 1,
"time_limit": 10,
"forbid_scape_dolls": 1,
"death_tech_level_up": 1,
"trap_counts": [5, 5, 5, 5],
"sonar_count": 5,
"box_drop_area": 1
"BattleRules": {
"TechDiskMode": "LIMIT_LEVEL",
"WeaponAndArmorMode": "CLEAR_AND_ALLOW",
"MagMode": "FORBID_ALL",
"ToolMode": "CLEAR_AND_ALLOW",
"TrapMode": "ALL_PLAYERS",
"RespawnMode": 2,
"ReplaceChar": 1,
"DropWeapon": 1,
"IsTeams": 0,
"HideTargetReticle": 1,
"DeathLevelUp": 5,
"MesetaMode": "CLEAR_AND_ALLOW",
"EnableSonar": 1,
"Lives": 10,
"MaxTechLevel": 1,
"CharLevel": 1,
"TimeLimit": 10,
"ForbidScapeDolls": 1,
"DeathTechLevelUp": 1,
"TrapCounts": [5, 5, 5, 5],
"SonarCount": 5,
"BoxDropArea": 1
}
}
+20 -20
View File
@@ -1,23 +1,23 @@
{
"battle_rules": {
"tech_disk_mode": "ALLOW",
"weapon_and_armor_mode": "ALLOW",
"mag_mode": "FORBID_ALL",
"tool_mode": "ALLOW",
"trap_mode": "ALL_PLAYERS",
"respawn_mode": 1,
"replace_char": 0,
"drop_weapon": 1,
"is_teams": 1,
"hide_target_reticle": 1,
"death_level_up": 5,
"meseta_mode": "CLEAR_AND_ALLOW",
"enable_sonar": 1,
"time_limit": 10,
"forbid_scape_dolls": 1,
"death_tech_level_up": 1,
"trap_counts": [5, 5, 5, 5],
"sonar_count": 5,
"box_drop_area": 10
"BattleRules": {
"TechDiskMode": "ALLOW",
"WeaponAndArmorMode": "ALLOW",
"MagMode": "FORBID_ALL",
"ToolMode": "ALLOW",
"TrapMode": "ALL_PLAYERS",
"RespawnMode": 1,
"ReplaceChar": 0,
"DropWeapon": 1,
"IsTeams": 1,
"HideTargetReticle": 1,
"DeathLevelUp": 5,
"MesetaMode": "CLEAR_AND_ALLOW",
"EnableSonar": 1,
"TimeLimit": 10,
"ForbidScapeDolls": 1,
"DeathTechLevelUp": 1,
"TrapCounts": [5, 5, 5, 5],
"SonarCount": 5,
"BoxDropArea": 10
}
}
+22 -22
View File
@@ -1,25 +1,25 @@
{
"battle_rules": {
"tech_disk_mode": "LIMIT_LEVEL",
"weapon_and_armor_mode": "CLEAR_AND_ALLOW",
"mag_mode": "FORBID_ALL",
"tool_mode": "CLEAR_AND_ALLOW",
"trap_mode": "ALL_PLAYERS",
"respawn_mode": 2,
"replace_char": 1,
"drop_weapon": 1,
"is_teams": 1,
"hide_target_reticle": 1,
"death_level_up": 3,
"meseta_mode": "CLEAR_AND_ALLOW",
"enable_sonar": 0,
"lives": 10,
"max_tech_level": 4,
"char_level": 19,
"time_limit": 10,
"forbid_scape_dolls": 1,
"death_tech_level_up": 1,
"trap_counts": [5, 5, 0, 0],
"box_drop_area": 6
"BattleRules": {
"TechDiskMode": "LIMIT_LEVEL",
"WeaponAndArmorMode": "CLEAR_AND_ALLOW",
"MagMode": "FORBID_ALL",
"ToolMode": "CLEAR_AND_ALLOW",
"TrapMode": "ALL_PLAYERS",
"RespawnMode": 2,
"ReplaceChar": 1,
"DropWeapon": 1,
"IsTeams": 1,
"HideTargetReticle": 1,
"DeathLevelUp": 3,
"MesetaMode": "CLEAR_AND_ALLOW",
"EnableSonar": 0,
"Lives": 10,
"MaxTechLevel": 4,
"CharLevel": 19,
"TimeLimit": 10,
"ForbidScapeDolls": 1,
"DeathTechLevelUp": 1,
"TrapCounts": [5, 5, 0, 0],
"BoxDropArea": 6
}
}
+23 -23
View File
@@ -1,26 +1,26 @@
{
"battle_rules": {
"tech_disk_mode": "LIMIT_LEVEL",
"weapon_and_armor_mode": "CLEAR_AND_ALLOW",
"mag_mode": "FORBID_ALL",
"tool_mode": "CLEAR_AND_ALLOW",
"trap_mode": "ALL_PLAYERS",
"respawn_mode": 2,
"replace_char": 1,
"drop_weapon": 1,
"is_teams": 0,
"hide_target_reticle": 1,
"death_level_up": 1,
"meseta_mode": "CLEAR_AND_ALLOW",
"enable_sonar": 1,
"lives": 15,
"max_tech_level": 0,
"char_level": 0,
"time_limit": 10,
"forbid_scape_dolls": 0,
"death_tech_level_up": 0,
"trap_counts": [0, 0, 1, 0],
"sonar_count": 10,
"box_drop_area": 2
"BattleRules": {
"TechDiskMode": "LIMIT_LEVEL",
"WeaponAndArmorMode": "CLEAR_AND_ALLOW",
"MagMode": "FORBID_ALL",
"ToolMode": "CLEAR_AND_ALLOW",
"TrapMode": "ALL_PLAYERS",
"RespawnMode": 2,
"ReplaceChar": 1,
"DropWeapon": 1,
"IsTeams": 0,
"HideTargetReticle": 1,
"DeathLevelUp": 1,
"MesetaMode": "CLEAR_AND_ALLOW",
"EnableSonar": 1,
"Lives": 15,
"MaxTechLevel": 0,
"CharLevel": 0,
"TimeLimit": 10,
"ForbidScapeDolls": 0,
"DeathTechLevelUp": 0,
"TrapCounts": [0, 0, 1, 0],
"SonarCount": 10,
"BoxDropArea": 2
}
}
+23 -23
View File
@@ -1,26 +1,26 @@
{
"battle_rules": {
"tech_disk_mode": "LIMIT_LEVEL",
"weapon_and_armor_mode": "CLEAR_AND_ALLOW",
"mag_mode": "FORBID_ALL",
"tool_mode": "CLEAR_AND_ALLOW",
"trap_mode": "ALL_PLAYERS",
"respawn_mode": 2,
"replace_char": 1,
"drop_weapon": 0,
"is_teams": 0,
"hide_target_reticle": 1,
"death_level_up": 5,
"meseta_mode": "FORBID_ALL",
"enable_sonar": 1,
"lives": 10,
"max_tech_level": 0,
"char_level": 19,
"time_limit": 10,
"forbid_scape_dolls": 1,
"death_tech_level_up": 0,
"trap_counts": [0, 10, 10, 10],
"sonar_count": 10,
"box_drop_area": 1
"BattleRules": {
"TechDiskMode": "LIMIT_LEVEL",
"WeaponAndArmorMode": "CLEAR_AND_ALLOW",
"MagMode": "FORBID_ALL",
"ToolMode": "CLEAR_AND_ALLOW",
"TrapMode": "ALL_PLAYERS",
"RespawnMode": 2,
"ReplaceChar": 1,
"DropWeapon": 0,
"IsTeams": 0,
"HideTargetReticle": 1,
"DeathLevelUp": 5,
"MesetaMode": "FORBID_ALL",
"EnableSonar": 1,
"Lives": 10,
"MaxTechLevel": 0,
"CharLevel": 19,
"TimeLimit": 10,
"ForbidScapeDolls": 1,
"DeathTechLevelUp": 0,
"TrapCounts": [0, 10, 10, 10],
"SonarCount": 10,
"BoxDropArea": 1
}
}
+1 -1
View File
@@ -1,3 +1,3 @@
{
"challenge_template_index": 0
"ChallengeTemplateIndex": 0
}
+1 -1
View File
@@ -1,3 +1,3 @@
{
"challenge_template_index": 1
"ChallengeTemplateIndex": 1
}
+1 -1
View File
@@ -1,3 +1,3 @@
{
"challenge_template_index": 2
"ChallengeTemplateIndex": 2
}
+1 -1
View File
@@ -1,3 +1,3 @@
{
"challenge_template_index": 3
"ChallengeTemplateIndex": 3
}
+1 -1
View File
@@ -1,3 +1,3 @@
{
"challenge_template_index": 4
"ChallengeTemplateIndex": 4
}
+1 -1
View File
@@ -1,3 +1,3 @@
{
"challenge_template_index": 5
"ChallengeTemplateIndex": 5
}
+1 -1
View File
@@ -1,3 +1,3 @@
{
"challenge_template_index": 6
"ChallengeTemplateIndex": 6
}
+1 -1
View File
@@ -1,3 +1,3 @@
{
"challenge_template_index": 7
"ChallengeTemplateIndex": 7
}
+1 -1
View File
@@ -1,3 +1,3 @@
{
"challenge_template_index": 8
"ChallengeTemplateIndex": 8
}
+1 -1
View File
@@ -1,3 +1,3 @@
{
"challenge_template_index": 1
"ChallengeTemplateIndex": 1
}
+1 -1
View File
@@ -1,3 +1,3 @@
{
"challenge_template_index": 4
"ChallengeTemplateIndex": 4
}
+1 -1
View File
@@ -1,3 +1,3 @@
{
"challenge_template_index": 5
"ChallengeTemplateIndex": 5
}
+1 -1
View File
@@ -1,3 +1,3 @@
{
"challenge_template_index": 8
"ChallengeTemplateIndex": 8
}
+1 -1
View File
@@ -1,3 +1,3 @@
{
"challenge_template_index": 8
"ChallengeTemplateIndex": 8
}
@@ -0,0 +1,3 @@
{
"RequireFlag": 0x01F5,
}
@@ -0,0 +1,3 @@
{
"RequireFlag": 0x01F7,
}
@@ -0,0 +1,3 @@
{
"RequireFlag": 0x01F9,
}
@@ -0,0 +1,3 @@
{
"RequireFlag": 0x01FB,
}
@@ -0,0 +1,3 @@
{
"RequireFlag": 0x01FD,
}
@@ -0,0 +1,3 @@
{
"RequireFlag": 0x01FF,
}
@@ -0,0 +1,3 @@
{
"RequireFlag": 0x0201,
}
@@ -0,0 +1,3 @@
{
"RequireFlag": 0x0203,
}
@@ -0,0 +1,3 @@
{
"RequireFlag": 0x0205,
}
@@ -0,0 +1,3 @@
{
"RequireFlag": 0x0207,
}
@@ -0,0 +1,3 @@
{
"RequireFlag": 0x0209,
}
@@ -0,0 +1,3 @@
{
"RequireFlag": 0x020B,
}
@@ -0,0 +1,3 @@
{
"RequireFlag": 0x020D,
}
@@ -0,0 +1,3 @@
{
"RequireFlag": 0x020F,
}
@@ -0,0 +1,3 @@
{
"RequireFlag": 0x0213,
}
@@ -0,0 +1,3 @@
{
"RequireFlag": 0x0215,
}
@@ -0,0 +1,3 @@
{
"RequireFlag": 0x0217,
}
@@ -0,0 +1,3 @@
{
"RequireFlag": 0x0219,
}
@@ -0,0 +1,3 @@
{
"RequireFlag": 0x021B,
}
@@ -0,0 +1,3 @@
{
"RequireFlag": 0x021D,
}
@@ -0,0 +1,3 @@
{
"RequireFlag": 0x021F,
}
@@ -0,0 +1,3 @@
{
"RequireFlag": 0x0221,
}
@@ -0,0 +1,3 @@
{
"RequireFlag": 0x0223,
}
@@ -0,0 +1,3 @@
{
"RequireFlag": 0x0225,
}
@@ -0,0 +1,3 @@
{
"RequireFlag": 0x0227,
}
@@ -0,0 +1,3 @@
{
"RequireFlag": 0x0229,
}
@@ -0,0 +1,3 @@
{
"RequireFlag": 0x022B,
}
@@ -0,0 +1,3 @@
{
"RequireFlag": 0x022D,
}
@@ -0,0 +1,3 @@
{
"RequireFlag": 0x022F,
}
@@ -0,0 +1,3 @@
{
"RequireFlag": 0x0231,
}
@@ -0,0 +1,3 @@
{
"RequireFlag": 0x0233,
}
@@ -0,0 +1,3 @@
{
"RequireFlag": 0x02BD,
}
@@ -0,0 +1,3 @@
{
"RequireFlag": 0x02BE,
}
@@ -0,0 +1,3 @@
{
"RequireFlag": 0x02BF,
}
@@ -0,0 +1,3 @@
{
"RequireFlag": 0x02C0,
}
@@ -0,0 +1,3 @@
{
"RequireFlag": 0x02C1,
}
@@ -0,0 +1,3 @@
{
"RequireFlag": 0x02C2,
}
@@ -0,0 +1,3 @@
{
"RequireFlag": 0x02C3,
}
+3
View File
@@ -0,0 +1,3 @@
{
"RequireTeamRewardKey": "PointOfDisasterQuest",
}
+3
View File
@@ -0,0 +1,3 @@
{
"RequireTeamRewardKey": "TheRobotsReckoningQuest",
}