From ed797143b3cb984b944d9d40d56ebf78e4c38e51 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sat, 22 Feb 2025 22:28:04 +0100 Subject: [PATCH] Update quest battle metadata --- .../MNK/558_The Spirit Is Willing.json | 3 ++- .../Class Quests/WAR/1054_How to Quit You.json | 3 ++- .../Class Quests/WHM/147_Trial by Wind.json | 3 ++- .../Class Quests/WHM/91_Trial by Wind.json | 3 ++- .../Class Quests/WHM/92_Trial by Water.json | 3 ++- .../MSQ-1/Gridania/129_Spirithold Broken.json | 3 ++- .../MSQ-1/Gridania/161_Leia's Legacy.json | 1 + .../MSQ-1/Gridania/445_Chasing Shadows.json | 1 + .../MSQ-1/Gridania/447_To Guard a Guardian.json | 1 + .../MSQ-1/Limsa/414_Victory in Peril.json | 1 + .../MSQ-1/Limsa/469_Just Deserts.json | 3 ++- .../MSQ-1/Limsa/543_Lurkers in the Grotto.json | 1 + .../MSQ-1/Limsa/544_Feint and Strike.json | 1 + .../MSQ-1/Shared/343_Lord of the Inferno.json | 3 ++- .../MSQ-1/Shared/660_Into a Copper Hell.json | 3 ++- .../680_The Company You Keep (Twin Adders).json | 3 ++- .../681_The Company You Keep (Maelstrom).json | 3 ++- ...2_The Company You Keep (Immortal Flames).json | 3 ++- .../MSQ-1/Ul'dah/320_Way Down in the Hole.json | 3 ++- .../MSQ-1/Ul'dah/336_Oh Captain, My Captain.json | 3 ++- .../Ul'dah/550_Underneath the Sultantree.json | 3 ++- .../MSQ-1/Ul'dah/551_Duty, Honor, Country.json | 1 + .../724_Brotherly Love.json | 3 ++- .../3862_Nouveau Riche.json | 1 + .../4521_Operation Archon.json | 6 +++++- .../4522_The Ultimate Weapon.json | 3 ++- .../E1-2.1/1190_You Have Selected Regicide.json | 9 +++++++++ .../MSQ-2/E3-2.3/1456_Guardian of Eorzea.json | 4 ++++ .../MSQ-2/E4-2.4/88_The Reason Roaille.json | 8 ++++++++ .../Class Quests/WAR/601_And My Axe.json | 3 ++- .../1595_A Series of Unfortunate Events.json | 3 ++- .../1597_Divine Intervention.json | 3 ++- .../A2-Raubahn/1601_Keeping the Flame Alive.json | 3 ++- .../1606_Sounding Out the Amphitheatre.json | 3 ++- .../MSQ/A4-Ishgard/1639_Fire and Blood.json | 3 ++- .../A5-Sea of Clouds/1644_Familiar Faces.json | 3 ++- .../1657_An Illuminati Incident.json | 3 ++- .../1667_Close Encounters of the VIth Kind.json | 3 ++- .../3682_Vows of Virtue, Deeds of Cruelty.json | 1 + .../MSQ/H-5.2/3765_A Sleep Disturbed.json | 1 + QuestPaths/quest-v1.json | 4 ++++ .../Validators/UniqueStartStopValidator.cs | 2 +- .../SinglePlayerDutyConfigComponent.cs | 16 +++++++++++++--- 43 files changed, 106 insertions(+), 31 deletions(-) diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/558_The Spirit Is Willing.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/558_The Spirit Is Willing.json index f45e4e63..ebee0eda 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/558_The Spirit Is Willing.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/MNK/558_The Spirit Is Willing.json @@ -141,7 +141,8 @@ "TerritoryId": 141, "InteractionType": "SinglePlayerDuty", "SinglePlayerDutyOptions": { - "Enabled": true + "Enabled": true, + "TestedBossModVersion": 292 }, "Fly": true } diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/WAR/1054_How to Quit You.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/WAR/1054_How to Quit You.json index 6abfe268..ce4bc552 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/WAR/1054_How to Quit You.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/WAR/1054_How to Quit You.json @@ -36,7 +36,8 @@ "TerritoryId": 137, "InteractionType": "SinglePlayerDuty", "SinglePlayerDutyOptions": { - "Enabled": true + "Enabled": true, + "TestedBossModVersion": 292 }, "AetheryteShortcut": "Eastern La Noscea - Wineport", "Fly": true diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/WHM/147_Trial by Wind.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/WHM/147_Trial by Wind.json index b54256d6..02e891b3 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/WHM/147_Trial by Wind.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/WHM/147_Trial by Wind.json @@ -117,7 +117,8 @@ "TerritoryId": 152, "InteractionType": "SinglePlayerDuty", "SinglePlayerDutyOptions": { - "Enabled": true + "Enabled": true, + "TestedBossModVersion": 292 }, "Fly": true } diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/WHM/91_Trial by Wind.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/WHM/91_Trial by Wind.json index c110a643..1348cd35 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/WHM/91_Trial by Wind.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/WHM/91_Trial by Wind.json @@ -119,7 +119,8 @@ "TerritoryId": 152, "InteractionType": "SinglePlayerDuty", "SinglePlayerDutyOptions": { - "Enabled": true + "Enabled": true, + "TestedBossModVersion": 292 } } ] diff --git a/QuestPaths/2.x - A Realm Reborn/Class Quests/WHM/92_Trial by Water.json b/QuestPaths/2.x - A Realm Reborn/Class Quests/WHM/92_Trial by Water.json index aebc9138..7a06c845 100644 --- a/QuestPaths/2.x - A Realm Reborn/Class Quests/WHM/92_Trial by Water.json +++ b/QuestPaths/2.x - A Realm Reborn/Class Quests/WHM/92_Trial by Water.json @@ -251,7 +251,8 @@ "TerritoryId": 152, "InteractionType": "SinglePlayerDuty", "SinglePlayerDutyOptions": { - "Enabled": true + "Enabled": true, + "TestedBossModVersion": 292 }, "Fly": true } diff --git a/QuestPaths/2.x - A Realm Reborn/MSQ-1/Gridania/129_Spirithold Broken.json b/QuestPaths/2.x - A Realm Reborn/MSQ-1/Gridania/129_Spirithold Broken.json index 3bc3081b..bbe04716 100644 --- a/QuestPaths/2.x - A Realm Reborn/MSQ-1/Gridania/129_Spirithold Broken.json +++ b/QuestPaths/2.x - A Realm Reborn/MSQ-1/Gridania/129_Spirithold Broken.json @@ -140,7 +140,8 @@ "TerritoryId": 148, "InteractionType": "SinglePlayerDuty", "SinglePlayerDutyOptions": { - "Enabled": true + "Enabled": true, + "TestedBossModVersion": 292 } } ] diff --git a/QuestPaths/2.x - A Realm Reborn/MSQ-1/Gridania/161_Leia's Legacy.json b/QuestPaths/2.x - A Realm Reborn/MSQ-1/Gridania/161_Leia's Legacy.json index 981c73c5..8706b50a 100644 --- a/QuestPaths/2.x - A Realm Reborn/MSQ-1/Gridania/161_Leia's Legacy.json +++ b/QuestPaths/2.x - A Realm Reborn/MSQ-1/Gridania/161_Leia's Legacy.json @@ -114,6 +114,7 @@ "InteractionType": "SinglePlayerDuty", "SinglePlayerDutyOptions": { "Enabled": true, + "TestedBossModVersion": 292, "Notes": [ "Healer NPC is only killed after the boss dies; all NPCs need to be killed for the duty to complete" ] diff --git a/QuestPaths/2.x - A Realm Reborn/MSQ-1/Gridania/445_Chasing Shadows.json b/QuestPaths/2.x - A Realm Reborn/MSQ-1/Gridania/445_Chasing Shadows.json index 769e2f5f..be848e39 100644 --- a/QuestPaths/2.x - A Realm Reborn/MSQ-1/Gridania/445_Chasing Shadows.json +++ b/QuestPaths/2.x - A Realm Reborn/MSQ-1/Gridania/445_Chasing Shadows.json @@ -31,6 +31,7 @@ "InteractionType": "SinglePlayerDuty", "SinglePlayerDutyOptions": { "Enabled": false, + "TestedBossModVersion": 292, "Notes": [ "AI doesn't automatically target newly spawning adds until after the boss died, and dies (tested on CNJ)" ] diff --git a/QuestPaths/2.x - A Realm Reborn/MSQ-1/Gridania/447_To Guard a Guardian.json b/QuestPaths/2.x - A Realm Reborn/MSQ-1/Gridania/447_To Guard a Guardian.json index d8b6848a..0c1c2e8f 100644 --- a/QuestPaths/2.x - A Realm Reborn/MSQ-1/Gridania/447_To Guard a Guardian.json +++ b/QuestPaths/2.x - A Realm Reborn/MSQ-1/Gridania/447_To Guard a Guardian.json @@ -79,6 +79,7 @@ "InteractionType": "SinglePlayerDuty", "SinglePlayerDutyOptions": { "Enabled": true, + "TestedBossModVersion": 292, "Notes": [ "(Phase 1) Healer NPCs are only killed after the boss dies - allied NPCs will kill them eventually; all NPCs need to be killed for the duty to complete" ] diff --git a/QuestPaths/2.x - A Realm Reborn/MSQ-1/Limsa/414_Victory in Peril.json b/QuestPaths/2.x - A Realm Reborn/MSQ-1/Limsa/414_Victory in Peril.json index 236b0f94..be519bb9 100644 --- a/QuestPaths/2.x - A Realm Reborn/MSQ-1/Limsa/414_Victory in Peril.json +++ b/QuestPaths/2.x - A Realm Reborn/MSQ-1/Limsa/414_Victory in Peril.json @@ -71,6 +71,7 @@ "InteractionType": "SinglePlayerDuty", "SinglePlayerDutyOptions": { "Enabled": false, + "TestedBossModVersion": 292, "Notes": [ "(Phase 1, second enemy group) Stuck with enemy being out of sight -- but still able to attack you (tested on ACN)" ] diff --git a/QuestPaths/2.x - A Realm Reborn/MSQ-1/Limsa/469_Just Deserts.json b/QuestPaths/2.x - A Realm Reborn/MSQ-1/Limsa/469_Just Deserts.json index 54199db0..ffd07a9d 100644 --- a/QuestPaths/2.x - A Realm Reborn/MSQ-1/Limsa/469_Just Deserts.json +++ b/QuestPaths/2.x - A Realm Reborn/MSQ-1/Limsa/469_Just Deserts.json @@ -75,7 +75,8 @@ "TerritoryId": 134, "InteractionType": "SinglePlayerDuty", "SinglePlayerDutyOptions": { - "Enabled": true + "Enabled": true, + "TestedBossModVersion": 292 } } ] diff --git a/QuestPaths/2.x - A Realm Reborn/MSQ-1/Limsa/543_Lurkers in the Grotto.json b/QuestPaths/2.x - A Realm Reborn/MSQ-1/Limsa/543_Lurkers in the Grotto.json index 901d4078..bb1e80d8 100644 --- a/QuestPaths/2.x - A Realm Reborn/MSQ-1/Limsa/543_Lurkers in the Grotto.json +++ b/QuestPaths/2.x - A Realm Reborn/MSQ-1/Limsa/543_Lurkers in the Grotto.json @@ -31,6 +31,7 @@ "InteractionType": "SinglePlayerDuty", "SinglePlayerDutyOptions": { "Enabled": false, + "TestedBossModVersion": 292, "Notes": [ "AI doesn't automatically target newly spawning adds until after the boss died (requires healing luck on ACN)" ] diff --git a/QuestPaths/2.x - A Realm Reborn/MSQ-1/Limsa/544_Feint and Strike.json b/QuestPaths/2.x - A Realm Reborn/MSQ-1/Limsa/544_Feint and Strike.json index 6ffa3d58..527a1610 100644 --- a/QuestPaths/2.x - A Realm Reborn/MSQ-1/Limsa/544_Feint and Strike.json +++ b/QuestPaths/2.x - A Realm Reborn/MSQ-1/Limsa/544_Feint and Strike.json @@ -60,6 +60,7 @@ "InteractionType": "SinglePlayerDuty", "SinglePlayerDutyOptions": { "Enabled": true, + "TestedBossModVersion": 292, "Notes": [ "(Phase 1) Kills PGL NPCs and then the boss - allied NPCs will kill most other NPCs eventually; all NPCs need to be killed for the duty to complete" ] diff --git a/QuestPaths/2.x - A Realm Reborn/MSQ-1/Shared/343_Lord of the Inferno.json b/QuestPaths/2.x - A Realm Reborn/MSQ-1/Shared/343_Lord of the Inferno.json index c236b60b..ea9fd4ba 100644 --- a/QuestPaths/2.x - A Realm Reborn/MSQ-1/Shared/343_Lord of the Inferno.json +++ b/QuestPaths/2.x - A Realm Reborn/MSQ-1/Shared/343_Lord of the Inferno.json @@ -46,7 +46,8 @@ "TerritoryId": 145, "InteractionType": "SinglePlayerDuty", "SinglePlayerDutyOptions": { - "Enabled": true + "Enabled": true, + "TestedBossModVersion": 292 } } ] diff --git a/QuestPaths/2.x - A Realm Reborn/MSQ-1/Shared/660_Into a Copper Hell.json b/QuestPaths/2.x - A Realm Reborn/MSQ-1/Shared/660_Into a Copper Hell.json index 4141d320..ba1604a4 100644 --- a/QuestPaths/2.x - A Realm Reborn/MSQ-1/Shared/660_Into a Copper Hell.json +++ b/QuestPaths/2.x - A Realm Reborn/MSQ-1/Shared/660_Into a Copper Hell.json @@ -80,7 +80,8 @@ "TerritoryId": 130, "InteractionType": "SinglePlayerDuty", "SinglePlayerDutyOptions": { - "Enabled": true + "Enabled": true, + "TestedBossModVersion": 292 }, "AetheryteShortcut": "Ul'dah", "AethernetShortcut": [ diff --git a/QuestPaths/2.x - A Realm Reborn/MSQ-1/Shared/680_The Company You Keep (Twin Adders).json b/QuestPaths/2.x - A Realm Reborn/MSQ-1/Shared/680_The Company You Keep (Twin Adders).json index 310b20cc..7afc73a3 100644 --- a/QuestPaths/2.x - A Realm Reborn/MSQ-1/Shared/680_The Company You Keep (Twin Adders).json +++ b/QuestPaths/2.x - A Realm Reborn/MSQ-1/Shared/680_The Company You Keep (Twin Adders).json @@ -90,7 +90,8 @@ "TerritoryId": 152, "InteractionType": "SinglePlayerDuty", "SinglePlayerDutyOptions": { - "Enabled": true + "Enabled": true, + "TestedBossModVersion": 292 }, "AetheryteShortcut": "East Shroud - Hawthorne Hut", "SkipConditions": { diff --git a/QuestPaths/2.x - A Realm Reborn/MSQ-1/Shared/681_The Company You Keep (Maelstrom).json b/QuestPaths/2.x - A Realm Reborn/MSQ-1/Shared/681_The Company You Keep (Maelstrom).json index dae94b36..87ab602c 100644 --- a/QuestPaths/2.x - A Realm Reborn/MSQ-1/Shared/681_The Company You Keep (Maelstrom).json +++ b/QuestPaths/2.x - A Realm Reborn/MSQ-1/Shared/681_The Company You Keep (Maelstrom).json @@ -65,7 +65,8 @@ "TerritoryId": 135, "InteractionType": "SinglePlayerDuty", "SinglePlayerDutyOptions": { - "Enabled": true + "Enabled": true, + "TestedBossModVersion": 292 }, "AethernetShortcut": [ "[Limsa Lominsa] The Aftcastle", diff --git a/QuestPaths/2.x - A Realm Reborn/MSQ-1/Shared/682_The Company You Keep (Immortal Flames).json b/QuestPaths/2.x - A Realm Reborn/MSQ-1/Shared/682_The Company You Keep (Immortal Flames).json index 9bcf3680..2696f1a7 100644 --- a/QuestPaths/2.x - A Realm Reborn/MSQ-1/Shared/682_The Company You Keep (Immortal Flames).json +++ b/QuestPaths/2.x - A Realm Reborn/MSQ-1/Shared/682_The Company You Keep (Immortal Flames).json @@ -60,7 +60,8 @@ "TerritoryId": 140, "InteractionType": "SinglePlayerDuty", "SinglePlayerDutyOptions": { - "Enabled": true + "Enabled": true, + "TestedBossModVersion": 292 }, "AetheryteShortcut": "Western Thanalan - Horizon" } diff --git a/QuestPaths/2.x - A Realm Reborn/MSQ-1/Ul'dah/320_Way Down in the Hole.json b/QuestPaths/2.x - A Realm Reborn/MSQ-1/Ul'dah/320_Way Down in the Hole.json index a61bf978..29b7f66c 100644 --- a/QuestPaths/2.x - A Realm Reborn/MSQ-1/Ul'dah/320_Way Down in the Hole.json +++ b/QuestPaths/2.x - A Realm Reborn/MSQ-1/Ul'dah/320_Way Down in the Hole.json @@ -160,7 +160,8 @@ "TerritoryId": 141, "InteractionType": "SinglePlayerDuty", "SinglePlayerDutyOptions": { - "Enabled": true + "Enabled": true, + "TestedBossModVersion": 292 } } ] diff --git a/QuestPaths/2.x - A Realm Reborn/MSQ-1/Ul'dah/336_Oh Captain, My Captain.json b/QuestPaths/2.x - A Realm Reborn/MSQ-1/Ul'dah/336_Oh Captain, My Captain.json index 0b89ddcc..d69bd0e1 100644 --- a/QuestPaths/2.x - A Realm Reborn/MSQ-1/Ul'dah/336_Oh Captain, My Captain.json +++ b/QuestPaths/2.x - A Realm Reborn/MSQ-1/Ul'dah/336_Oh Captain, My Captain.json @@ -39,7 +39,8 @@ "TerritoryId": 140, "InteractionType": "SinglePlayerDuty", "SinglePlayerDutyOptions": { - "Enabled": true + "Enabled": true, + "TestedBossModVersion": 292 } } ] diff --git a/QuestPaths/2.x - A Realm Reborn/MSQ-1/Ul'dah/550_Underneath the Sultantree.json b/QuestPaths/2.x - A Realm Reborn/MSQ-1/Ul'dah/550_Underneath the Sultantree.json index c211fef2..91ccee4d 100644 --- a/QuestPaths/2.x - A Realm Reborn/MSQ-1/Ul'dah/550_Underneath the Sultantree.json +++ b/QuestPaths/2.x - A Realm Reborn/MSQ-1/Ul'dah/550_Underneath the Sultantree.json @@ -30,7 +30,8 @@ "TerritoryId": 141, "InteractionType": "SinglePlayerDuty", "SinglePlayerDutyOptions": { - "Enabled": true + "Enabled": true, + "TestedBossModVersion": 292 } } ] diff --git a/QuestPaths/2.x - A Realm Reborn/MSQ-1/Ul'dah/551_Duty, Honor, Country.json b/QuestPaths/2.x - A Realm Reborn/MSQ-1/Ul'dah/551_Duty, Honor, Country.json index 841ded18..3622d62c 100644 --- a/QuestPaths/2.x - A Realm Reborn/MSQ-1/Ul'dah/551_Duty, Honor, Country.json +++ b/QuestPaths/2.x - A Realm Reborn/MSQ-1/Ul'dah/551_Duty, Honor, Country.json @@ -67,6 +67,7 @@ "InteractionType": "SinglePlayerDuty", "SinglePlayerDutyOptions": { "Enabled": true, + "TestedBossModVersion": 292, "Notes": [ "(Phase 1) Healer NPCs are only killed after the boss dies - allied NPCs will kill them eventually; all NPCs need to be killed for the duty to complete" ] diff --git a/QuestPaths/2.x - A Realm Reborn/MSQ-2/A2-East Shroud to South Shroud/724_Brotherly Love.json b/QuestPaths/2.x - A Realm Reborn/MSQ-2/A2-East Shroud to South Shroud/724_Brotherly Love.json index 0a54ca73..0f856627 100644 --- a/QuestPaths/2.x - A Realm Reborn/MSQ-2/A2-East Shroud to South Shroud/724_Brotherly Love.json +++ b/QuestPaths/2.x - A Realm Reborn/MSQ-2/A2-East Shroud to South Shroud/724_Brotherly Love.json @@ -66,7 +66,8 @@ "TerritoryId": 152, "InteractionType": "SinglePlayerDuty", "SinglePlayerDutyOptions": { - "Enabled": true + "Enabled": true, + "TestedBossModVersion": 292 } } ] diff --git a/QuestPaths/2.x - A Realm Reborn/MSQ-2/A3-South Shroud, Buscarron’s Druthers/3862_Nouveau Riche.json b/QuestPaths/2.x - A Realm Reborn/MSQ-2/A3-South Shroud, Buscarron’s Druthers/3862_Nouveau Riche.json index 3b413785..88e38d61 100644 --- a/QuestPaths/2.x - A Realm Reborn/MSQ-2/A3-South Shroud, Buscarron’s Druthers/3862_Nouveau Riche.json +++ b/QuestPaths/2.x - A Realm Reborn/MSQ-2/A3-South Shroud, Buscarron’s Druthers/3862_Nouveau Riche.json @@ -86,6 +86,7 @@ "InteractionType": "SinglePlayerDuty", "SinglePlayerDutyOptions": { "Enabled": true, + "TestedBossModVersion": 292, "Notes": [ "AI will kill initial adds before the boss, but not switch target whenever new enemies spawn; all NPCs need to be killed for the duty to complete" ] diff --git a/QuestPaths/2.x - A Realm Reborn/MSQ-2/C9-Ultimate Weapon/4521_Operation Archon.json b/QuestPaths/2.x - A Realm Reborn/MSQ-2/C9-Ultimate Weapon/4521_Operation Archon.json index 2f33376f..3af001c0 100644 --- a/QuestPaths/2.x - A Realm Reborn/MSQ-2/C9-Ultimate Weapon/4521_Operation Archon.json +++ b/QuestPaths/2.x - A Realm Reborn/MSQ-2/C9-Ultimate Weapon/4521_Operation Archon.json @@ -159,7 +159,11 @@ "Z": -805.478 }, "TerritoryId": 140, - "InteractionType": "SinglePlayerDuty" + "InteractionType": "SinglePlayerDuty", + "SinglePlayerDutyOptions": { + "Enabled": true, + "TestedBossModVersion": 292 + } } ] }, diff --git a/QuestPaths/2.x - A Realm Reborn/MSQ-2/C9-Ultimate Weapon/4522_The Ultimate Weapon.json b/QuestPaths/2.x - A Realm Reborn/MSQ-2/C9-Ultimate Weapon/4522_The Ultimate Weapon.json index ffa07f49..e9c62067 100644 --- a/QuestPaths/2.x - A Realm Reborn/MSQ-2/C9-Ultimate Weapon/4522_The Ultimate Weapon.json +++ b/QuestPaths/2.x - A Realm Reborn/MSQ-2/C9-Ultimate Weapon/4522_The Ultimate Weapon.json @@ -105,7 +105,8 @@ "TerritoryId": 1053, "InteractionType": "SinglePlayerDuty", "SinglePlayerDutyOptions": { - "Enabled": true + "Enabled": true, + "TestedBossModVersion": 292 } } ] diff --git a/QuestPaths/2.x - A Realm Reborn/MSQ-2/E1-2.1/1190_You Have Selected Regicide.json b/QuestPaths/2.x - A Realm Reborn/MSQ-2/E1-2.1/1190_You Have Selected Regicide.json index bf6395ce..18ccd2d0 100644 --- a/QuestPaths/2.x - A Realm Reborn/MSQ-2/E1-2.1/1190_You Have Selected Regicide.json +++ b/QuestPaths/2.x - A Realm Reborn/MSQ-2/E1-2.1/1190_You Have Selected Regicide.json @@ -68,6 +68,15 @@ { "Sequence": 3, "Steps": [ + { + "Position": { + "X": -561.9863, + "Y": 9.919454, + "Z": 66.29564 + }, + "TerritoryId": 152, + "InteractionType": "WalkTo" + }, { "DataId": 1008276, "Position": { diff --git a/QuestPaths/2.x - A Realm Reborn/MSQ-2/E3-2.3/1456_Guardian of Eorzea.json b/QuestPaths/2.x - A Realm Reborn/MSQ-2/E3-2.3/1456_Guardian of Eorzea.json index 4f6424b0..977457fe 100644 --- a/QuestPaths/2.x - A Realm Reborn/MSQ-2/E3-2.3/1456_Guardian of Eorzea.json +++ b/QuestPaths/2.x - A Realm Reborn/MSQ-2/E3-2.3/1456_Guardian of Eorzea.json @@ -78,6 +78,10 @@ "StopDistance": 1, "TerritoryId": 156, "InteractionType": "SinglePlayerDuty", + "SinglePlayerDutyOptions": { + "Enabled": true, + "TestedBossModVersion": 292 + }, "Fly": true } ] diff --git a/QuestPaths/2.x - A Realm Reborn/MSQ-2/E4-2.4/88_The Reason Roaille.json b/QuestPaths/2.x - A Realm Reborn/MSQ-2/E4-2.4/88_The Reason Roaille.json index 49bf11b4..ef6c3541 100644 --- a/QuestPaths/2.x - A Realm Reborn/MSQ-2/E4-2.4/88_The Reason Roaille.json +++ b/QuestPaths/2.x - A Realm Reborn/MSQ-2/E4-2.4/88_The Reason Roaille.json @@ -71,6 +71,14 @@ }, "TerritoryId": 147, "InteractionType": "SinglePlayerDuty", + "SinglePlayerDutyOptions": { + "Enabled": true, + "TestedBossModVersion": 292, + "Notes": [ + "Will target Eline first (other NPCs later), and move to some -other- group of NPCs; only re-targets once they're at 1 HP (for Eline) or die", + "If the target isn't in melee range but other NPCs are, whether any AOEs are used for nearby enemies seems random" + ] + }, "Fly": true, "AetheryteShortcut": "Northern Thanalan - Ceruleum Processing Plant" } diff --git a/QuestPaths/3.x - Heavensward/Class Quests/WAR/601_And My Axe.json b/QuestPaths/3.x - Heavensward/Class Quests/WAR/601_And My Axe.json index b4f80942..14cf5ecd 100644 --- a/QuestPaths/3.x - Heavensward/Class Quests/WAR/601_And My Axe.json +++ b/QuestPaths/3.x - Heavensward/Class Quests/WAR/601_And My Axe.json @@ -97,7 +97,8 @@ "InteractionType": "SinglePlayerDuty", "Fly": true, "SinglePlayerDutyOptions": { - "Enabled": true + "Enabled": true, + "TestedBossModVersion": 292 } } ] diff --git a/QuestPaths/3.x - Heavensward/MSQ/A1-Coerthas Western Highlands 1, Sea of Clouds 1/1595_A Series of Unfortunate Events.json b/QuestPaths/3.x - Heavensward/MSQ/A1-Coerthas Western Highlands 1, Sea of Clouds 1/1595_A Series of Unfortunate Events.json index a72b2334..39e74a09 100644 --- a/QuestPaths/3.x - Heavensward/MSQ/A1-Coerthas Western Highlands 1, Sea of Clouds 1/1595_A Series of Unfortunate Events.json +++ b/QuestPaths/3.x - Heavensward/MSQ/A1-Coerthas Western Highlands 1, Sea of Clouds 1/1595_A Series of Unfortunate Events.json @@ -60,7 +60,8 @@ "TerritoryId": 401, "InteractionType": "SinglePlayerDuty", "SinglePlayerDutyOptions": { - "Enabled": true + "Enabled": true, + "TestedBossModVersion": 292 } } ] diff --git a/QuestPaths/3.x - Heavensward/MSQ/A1-Coerthas Western Highlands 1, Sea of Clouds 1/1597_Divine Intervention.json b/QuestPaths/3.x - Heavensward/MSQ/A1-Coerthas Western Highlands 1, Sea of Clouds 1/1597_Divine Intervention.json index d1e8cd47..e03080cc 100644 --- a/QuestPaths/3.x - Heavensward/MSQ/A1-Coerthas Western Highlands 1, Sea of Clouds 1/1597_Divine Intervention.json +++ b/QuestPaths/3.x - Heavensward/MSQ/A1-Coerthas Western Highlands 1, Sea of Clouds 1/1597_Divine Intervention.json @@ -80,7 +80,8 @@ "[Ishgard] The Tribunal" ], "SinglePlayerDutyOptions": { - "Enabled": true + "Enabled": true, + "TestedBossModVersion": 292 } } ] diff --git a/QuestPaths/3.x - Heavensward/MSQ/A2-Raubahn/1601_Keeping the Flame Alive.json b/QuestPaths/3.x - Heavensward/MSQ/A2-Raubahn/1601_Keeping the Flame Alive.json index 92b63e22..2ab1b1a9 100644 --- a/QuestPaths/3.x - Heavensward/MSQ/A2-Raubahn/1601_Keeping the Flame Alive.json +++ b/QuestPaths/3.x - Heavensward/MSQ/A2-Raubahn/1601_Keeping the Flame Alive.json @@ -30,7 +30,8 @@ "TerritoryId": 145, "InteractionType": "SinglePlayerDuty", "SinglePlayerDutyOptions": { - "Enabled": true + "Enabled": true, + "TestedBossModVersion": 292 } } ] diff --git a/QuestPaths/3.x - Heavensward/MSQ/A3.1-Coerthas Western Highlands 2/1606_Sounding Out the Amphitheatre.json b/QuestPaths/3.x - Heavensward/MSQ/A3.1-Coerthas Western Highlands 2/1606_Sounding Out the Amphitheatre.json index c7fd5ede..8cec31a7 100644 --- a/QuestPaths/3.x - Heavensward/MSQ/A3.1-Coerthas Western Highlands 2/1606_Sounding Out the Amphitheatre.json +++ b/QuestPaths/3.x - Heavensward/MSQ/A3.1-Coerthas Western Highlands 2/1606_Sounding Out the Amphitheatre.json @@ -80,7 +80,8 @@ "InteractionType": "SinglePlayerDuty", "DisableNavmesh": true, "SinglePlayerDutyOptions": { - "Enabled": true + "Enabled": true, + "TestedBossModVersion": 292 } } ] diff --git a/QuestPaths/3.x - Heavensward/MSQ/A4-Ishgard/1639_Fire and Blood.json b/QuestPaths/3.x - Heavensward/MSQ/A4-Ishgard/1639_Fire and Blood.json index 15f79ef8..66c6232c 100644 --- a/QuestPaths/3.x - Heavensward/MSQ/A4-Ishgard/1639_Fire and Blood.json +++ b/QuestPaths/3.x - Heavensward/MSQ/A4-Ishgard/1639_Fire and Blood.json @@ -76,7 +76,8 @@ "TerritoryId": 418, "InteractionType": "SinglePlayerDuty", "SinglePlayerDutyOptions": { - "Enabled": true + "Enabled": true, + "TestedBossModVersion": 292 } } ] diff --git a/QuestPaths/3.x - Heavensward/MSQ/A5-Sea of Clouds/1644_Familiar Faces.json b/QuestPaths/3.x - Heavensward/MSQ/A5-Sea of Clouds/1644_Familiar Faces.json index 30809e01..d47363bf 100644 --- a/QuestPaths/3.x - Heavensward/MSQ/A5-Sea of Clouds/1644_Familiar Faces.json +++ b/QuestPaths/3.x - Heavensward/MSQ/A5-Sea of Clouds/1644_Familiar Faces.json @@ -58,7 +58,8 @@ "Emote": "lookout", "StopDistance": 0.25, "SinglePlayerDutyOptions": { - "Enabled": true + "Enabled": true, + "TestedBossModVersion": 292 } } ] diff --git a/QuestPaths/3.x - Heavensward/MSQ/A6-The Dravanian Hinterlands/1657_An Illuminati Incident.json b/QuestPaths/3.x - Heavensward/MSQ/A6-The Dravanian Hinterlands/1657_An Illuminati Incident.json index 0b5e5d49..799f242f 100644 --- a/QuestPaths/3.x - Heavensward/MSQ/A6-The Dravanian Hinterlands/1657_An Illuminati Incident.json +++ b/QuestPaths/3.x - Heavensward/MSQ/A6-The Dravanian Hinterlands/1657_An Illuminati Incident.json @@ -49,7 +49,8 @@ "[Idyllshire] Epilogue Gate (Eastern Hinterlands)" ], "SinglePlayerDutyOptions": { - "Enabled": true + "Enabled": true, + "TestedBossModVersion": 292 } } ] diff --git a/QuestPaths/3.x - Heavensward/MSQ/A7-Azys Lla/1667_Close Encounters of the VIth Kind.json b/QuestPaths/3.x - Heavensward/MSQ/A7-Azys Lla/1667_Close Encounters of the VIth Kind.json index 18809a5e..56776f28 100644 --- a/QuestPaths/3.x - Heavensward/MSQ/A7-Azys Lla/1667_Close Encounters of the VIth Kind.json +++ b/QuestPaths/3.x - Heavensward/MSQ/A7-Azys Lla/1667_Close Encounters of the VIth Kind.json @@ -70,7 +70,8 @@ "TerritoryId": 402, "InteractionType": "SinglePlayerDuty", "SinglePlayerDutyOptions": { - "Enabled": true + "Enabled": true, + "TestedBossModVersion": 292 } } ] diff --git a/QuestPaths/5.x - Shadowbringers/MSQ/G-5.1/3682_Vows of Virtue, Deeds of Cruelty.json b/QuestPaths/5.x - Shadowbringers/MSQ/G-5.1/3682_Vows of Virtue, Deeds of Cruelty.json index 2465f30c..cf937a67 100644 --- a/QuestPaths/5.x - Shadowbringers/MSQ/G-5.1/3682_Vows of Virtue, Deeds of Cruelty.json +++ b/QuestPaths/5.x - Shadowbringers/MSQ/G-5.1/3682_Vows of Virtue, Deeds of Cruelty.json @@ -87,6 +87,7 @@ "Comment": "Estinien vs. Arch Ultima", "SinglePlayerDutyOptions": { "Enabled": false, + "TestedBossModVersion": 292, "Notes": [ "AI doesn't move automatically for the first boss", "AI doesn't move automatically for the dialogue with gaius on the bridge", diff --git a/QuestPaths/5.x - Shadowbringers/MSQ/H-5.2/3765_A Sleep Disturbed.json b/QuestPaths/5.x - Shadowbringers/MSQ/H-5.2/3765_A Sleep Disturbed.json index 4fab7756..0255c322 100644 --- a/QuestPaths/5.x - Shadowbringers/MSQ/H-5.2/3765_A Sleep Disturbed.json +++ b/QuestPaths/5.x - Shadowbringers/MSQ/H-5.2/3765_A Sleep Disturbed.json @@ -48,6 +48,7 @@ "InteractionType": "SinglePlayerDuty", "SinglePlayerDutyOptions": { "Enabled": false, + "TestedBossModVersion": 292, "Notes": [ "Doesn't walk to the teleporter to finish the duty" ] diff --git a/QuestPaths/quest-v1.json b/QuestPaths/quest-v1.json index 40204b39..ede8e6c6 100644 --- a/QuestPaths/quest-v1.json +++ b/QuestPaths/quest-v1.json @@ -1285,6 +1285,10 @@ "maximum": 1, "description": "If a quest has multiple solo instances (which affects 5 quests total), indicates which one this is" }, + "TestedBossModVersion": { + "type": "number", + "minimum": 292 + }, "$": { "type": "string" } diff --git a/Questionable/Validation/Validators/UniqueStartStopValidator.cs b/Questionable/Validation/Validators/UniqueStartStopValidator.cs index b7e08813..3c9651f6 100644 --- a/Questionable/Validation/Validators/UniqueStartStopValidator.cs +++ b/Questionable/Validation/Validators/UniqueStartStopValidator.cs @@ -9,7 +9,7 @@ internal sealed class UniqueStartStopValidator : IQuestValidator { public IEnumerable Validate(Quest quest) { - if (quest.Id is SatisfactionSupplyNpcId) + if (quest.Id is SatisfactionSupplyNpcId or AlliedSocietyDailyId) yield break; var questAccepts = diff --git a/Questionable/Windows/ConfigComponents/SinglePlayerDutyConfigComponent.cs b/Questionable/Windows/ConfigComponents/SinglePlayerDutyConfigComponent.cs index c49a2c81..18f7012c 100644 --- a/Questionable/Windows/ConfigComponents/SinglePlayerDutyConfigComponent.cs +++ b/Questionable/Windows/ConfigComponents/SinglePlayerDutyConfigComponent.cs @@ -34,7 +34,9 @@ internal sealed class SinglePlayerDutyConfigComponent : ConfigComponent (EClassJob.BlackMage, "Magical Ranged Role Quests"), ]; +#if false private readonly string[] _retryDifficulties = ["Normal", "Easy", "Very Easy"]; +#endif private readonly TerritoryData _territoryData; private readonly QuestRegistry _questRegistry; @@ -263,12 +265,19 @@ internal sealed class SinglePlayerDutyConfigComponent : ConfigComponent using (ImRaii.PushIndent(ImGui.GetFrameHeight() + ImGui.GetStyle().ItemInnerSpacing.X)) { - ImGui.AlignTextToFramePadding(); - ImGui.TextColored(ImGuiColors.DalamudRed, - "Work in Progress: For now, this will always use BossMod for combat."); + using (_ = ImRaii.PushColor(ImGuiCol.Text, ImGuiColors.DalamudRed)) + { + ImGui.TextUnformatted("Work in Progress:"); + ImGui.BulletText("Will always use BossMod for combat (ignoring the configured combat module)."); + ImGui.BulletText("Only a small subset of quest battles have been tested - most of which are in the MSQ."); + ImGui.BulletText("When retrying a failed battle, it will always start at 'Normal' difficulty."); + ImGui.BulletText("Please don't enable this option when using a BossMod fork (such as Reborn);\nwith the combat changes, it is unlikely to be compatible."); + } +#if false using (ImRaii.Disabled(!runSoloInstancesWithBossMod)) { + ImGui.Spacing(); int retryDifficulty = Configuration.SinglePlayerDuties.RetryDifficulty; if (ImGui.Combo("Difficulty when retrying a quest battle", ref retryDifficulty, _retryDifficulties, _retryDifficulties.Length)) @@ -277,6 +286,7 @@ internal sealed class SinglePlayerDutyConfigComponent : ConfigComponent Save(); } } +#endif } ImGui.Separator();