From fb620d695c1d4f546d6977e4dd8794f7ec73d39e Mon Sep 17 00:00:00 2001 From: Paul Campbell Date: Sat, 21 Sep 2024 17:28:19 -0400 Subject: [PATCH 1/9] feat: Season 2.1 MSQ "A Fresh Incident" --- .../Files/Assets/quests/q00020070.json | 2 +- .../Files/Assets/quests/q00020080.json | 155 ++++++++++++++++++ docs/quests/events/st0201.md | 2 +- 3 files changed, 157 insertions(+), 2 deletions(-) create mode 100644 Arrowgene.Ddon.Shared/Files/Assets/quests/q00020080.json diff --git a/Arrowgene.Ddon.Shared/Files/Assets/quests/q00020070.json b/Arrowgene.Ddon.Shared/Files/Assets/quests/q00020070.json index 655f8411..dc754a86 100644 --- a/Arrowgene.Ddon.Shared/Files/Assets/quests/q00020070.json +++ b/Arrowgene.Ddon.Shared/Files/Assets/quests/q00020070.json @@ -3,7 +3,7 @@ "type": "Main", "comment": "The Fate of Lestania", "quest_id": 20070, - "next_quest": 0, + "next_quest": 20080, "base_level": 57, "minimum_item_rank": 0, "discoverable": true, diff --git a/Arrowgene.Ddon.Shared/Files/Assets/quests/q00020080.json b/Arrowgene.Ddon.Shared/Files/Assets/quests/q00020080.json new file mode 100644 index 00000000..57f4144c --- /dev/null +++ b/Arrowgene.Ddon.Shared/Files/Assets/quests/q00020080.json @@ -0,0 +1,155 @@ +{ + "state_machine": "GenericStateMachine", + "type": "Main", + "comment": "A Fresh Incident", + "quest_id": 20080, + "next_quest": 20090, + "base_level": 64, + "minimum_item_rank": 0, + "discoverable": true, + "order_conditions": [ + {"type": "MinimumLevel", "Param1": 64} + ], + "rewards": [ + { + "type": "exp", + "amount": 98000 + }, + { + "type": "wallet", + "wallet_type": "Gold", + "amount": 25000 + }, + { + "type": "wallet", + "wallet_type": "RiftPoints", + "amount": 2000 + }, + { + "type": "fixed", + "loot_pool": [ + { + "item_id": 14191, + "num": 1 + }, + { + "item_id": 11510, + "num": 5 + } + ] + } + ], + "enemy_groups": [ + { + "stage_id": { + "id": 335, + "group_id": 4 + }, + "enemies": [ + { + "comment": "Medusa", + "enemy_id": "0x015610", + "level": 64, + "exp": 156320, + "named_enemy_params_id": 934, + "is_boss": true + }, + { + "comment": "Eliminator", + "enemy_id": "0x010530", + "level": 64, + "exp": 15632, + "named_enemy_params_id": 934 + }, + { + "comment": "Eliminator", + "enemy_id": "0x010530", + "level": 64, + "exp": 15632, + "named_enemy_params_id": 934 + } + ] + } + ], + "processes": [ + { + "comment": "Process 0", + "blocks": [ + { + "type": "NpcTalkAndOrder", + "stage_id": { + "id": 3 + }, + "flags": [ + {"type": "WorldManageLayout", "action": "Clear", "value": 8630, "quest_id": 70034001, "comment": "Spawns Gurdolin, Lise and Elliot"} + ], + "npc_id": "Joseph", + "message_id": 0 + }, + { + "type": "PlayEvent", + "stage_id": { + "id": 3 + }, + "event_id": 140, + "flags": [ + {"type": "WorldManageLayout", "action": "Clear", "value": 7390, "quest_id": 70032001, "comment": "The White Dragon (Full)"} + ] + }, + { + "type": "TalkToNpc", + "announce_type": "Accept", + "stage_id": { + "id": 3 + }, + "npc_id": "Klaus0", + "message_id": 15308, + "flags": [ + {"type": "WorldManageLayout", "action": "Set", "value": 7390, "quest_id": 70032001, "comment": "The White Dragon (Full)"} + ] + }, + { + "type": "PartyGather", + "announce_type": "Update", + "checkpoint": true, + "stage_id": { + "id": 335 + }, + "location": { + "x": -2984, + "y": 1539, + "z": 2350 + } + }, + { + "type": "PlayEvent", + "stage_id": { + "id": 335 + }, + "event_id": 20 + }, + { + "type": "KillGroup", + "announce_type": "Update", + "groups": [ 0 ] + }, + { + "type": "PlayEvent", + "stage_id": { + "id": 335 + }, + "event_id": 25 + }, + { + "type": "TalkToNpc", + "announce_type": "Update", + "stage_id": { + "id": 3 + }, + "npc_id": "Joseph", + "message_id": 15325 + } + ] + } + ] +} diff --git a/docs/quests/events/st0201.md b/docs/quests/events/st0201.md index 4d5301cd..dfb49333 100644 --- a/docs/quests/events/st0201.md +++ b/docs/quests/events/st0201.md @@ -37,7 +37,7 @@ | 125 | The Fate of Lestania | 130 | The Fate of Lestania | 135 | The Fate of Lestania -| 140 | +| 140 | A Fresh Incident | 145 | | 150 | | 155 | From e04edccd9e804ac0b0cce0ab2ce7d4e3e26c7c9a Mon Sep 17 00:00:00 2001 From: Paul Campbell Date: Sat, 21 Sep 2024 18:13:17 -0400 Subject: [PATCH 2/9] feat: Season 2.1 MSQ "Negotiations" --- .../Files/Assets/EnemySpawn.json | 38 +---- .../Files/Assets/quests/q00020090.json | 140 ++++++++++++++++++ 2 files changed, 145 insertions(+), 33 deletions(-) create mode 100644 Arrowgene.Ddon.Shared/Files/Assets/quests/q00020090.json diff --git a/Arrowgene.Ddon.Shared/Files/Assets/EnemySpawn.json b/Arrowgene.Ddon.Shared/Files/Assets/EnemySpawn.json index cd5152ef..a4ef6552 100644 --- a/Arrowgene.Ddon.Shared/Files/Assets/EnemySpawn.json +++ b/Arrowgene.Ddon.Shared/Files/Assets/EnemySpawn.json @@ -145895,11 +145895,11 @@ 0, 4, 0, - "0x015104", + "0x015003", 2298, 0, 100, - 65, + 62, 0, 0, 0, @@ -145912,10 +145912,10 @@ true, false, false, + 62, 0, - 0, - 197000, - 162, + 155040, + -1, "00:00,23:59" ], [ @@ -218606,34 +218606,6 @@ 331, "00:00,23:59" ], - [ - 329, - 0, - 8, - 0, - "0x070920", - 2298, - 0, - 100, - 65, - 0, - 0, - 0, - 0, - 1, - 0, - 0, - 0, - true, - true, - false, - false, - 0, - 0, - 197000, - 422, - "00:00,23:59" - ], [ 329, 0, diff --git a/Arrowgene.Ddon.Shared/Files/Assets/quests/q00020090.json b/Arrowgene.Ddon.Shared/Files/Assets/quests/q00020090.json new file mode 100644 index 00000000..126b7669 --- /dev/null +++ b/Arrowgene.Ddon.Shared/Files/Assets/quests/q00020090.json @@ -0,0 +1,140 @@ +{ + "state_machine": "GenericStateMachine", + "type": "Main", + "comment": "Negotiations", + "quest_id": 20090, + "next_quest": 20100, + "base_level": 64, + "minimum_item_rank": 0, + "discoverable": true, + "order_conditions": [ + {"type": "MinimumLevel", "Param1": 64} + ], + "rewards": [ + { + "type": "exp", + "amount": 103000 + }, + { + "type": "wallet", + "wallet_type": "Gold", + "amount": 28000 + }, + { + "type": "wallet", + "wallet_type": "RiftPoints", + "amount": 2300 + }, + { + "type": "fixed", + "loot_pool": [ + { + "item_id": 13078, + "num": 1 + }, + { + "item_id": 11510, + "num": 5 + } + ] + } + ], + "enemy_groups": [ + { + "stage_id": { + "id": 342, + "group_id": 1 + }, + "enemies": [ + { + "comment": "Manticore", + "enemy_id": "0x015210", + "level": 59, + "exp": 151320, + "named_enemy_params_id": 934, + "is_boss": true + } + ] + } + ], + "processes": [ + { + "comment": "Process 0", + "blocks": [ + { + "type": "NpcTalkAndOrder", + "stage_id": { + "id": 3 + }, + "npc_id": "Joseph", + "message_id": 15326, + "flags": [ + {"type": "WorldManageLayout", "action": "Clear", "value": 8630, "quest_id": 70034001, "comment": "Spawns Gurdolin, Lise and Elliot"} + ] + }, + { + "type": "NewTalkToNpc", + "announce_type": "Accept", + "stage_id": { + "id": 1, + "group_id": 1, + "layer_no": 1 + }, + "npc_id": "Gurdolin3", + "message_id": 15327, + "flags": [ + {"type": "QstLayout", "action": "Set", "value": 2770, "comment": "Spawns Gurdolin, Lise and Elliot"} + ] + }, + { + "type": "PartyGather", + "announce_type": "Update", + "checkpoint": true, + "stage_id": { + "id": 342 + }, + "location": { + "x": 114, + "y": 0, + "z": -1275 + } + }, + { + "type": "PlayEvent", + "stage_id": { + "id": 342 + }, + "event_id": 0 + }, + { + "type": "KillGroup", + "announce_type": "Update", + "groups": [ 0 ] + }, + { + "type": "PlayEvent", + "stage_id": { + "id": 342 + }, + "event_id": 5, + "jump_stage_id": { + "id": 342 + }, + "start_pos_no": 2 + }, + { + "type": "TalkToNpc", + "announce_type": "Update", + "stage_id": { + "id": 3 + }, + "npc_id": "Joseph", + "message_id": 15353, + "flags": [ + {"type": "QstLayout", "action": "Set", "value": 2772, "comment": "Leo"} + ] + } + ] + } + ] +} From fb193aec5d52c99528b2472150c27ff8df4bd424 Mon Sep 17 00:00:00 2001 From: Paul Campbell Date: Sat, 21 Sep 2024 19:28:34 -0400 Subject: [PATCH 3/9] feat: Season 2.1 MSQ "Loeg's Illness" --- .../Files/Assets/quests/q00020100.json | 263 ++++++++++++++++++ 1 file changed, 263 insertions(+) create mode 100644 Arrowgene.Ddon.Shared/Files/Assets/quests/q00020100.json diff --git a/Arrowgene.Ddon.Shared/Files/Assets/quests/q00020100.json b/Arrowgene.Ddon.Shared/Files/Assets/quests/q00020100.json new file mode 100644 index 00000000..9b7cab18 --- /dev/null +++ b/Arrowgene.Ddon.Shared/Files/Assets/quests/q00020100.json @@ -0,0 +1,263 @@ +{ + "state_machine": "GenericStateMachine", + "type": "Main", + "comment": "Loeg's Illness", + "quest_id": 20100, + "next_quest": 20110, + "base_level": 64, + "minimum_item_rank": 0, + "discoverable": true, + "order_conditions": [ + {"type": "MinimumLevel", "Param1": 64} + ], + "rewards": [ + { + "type": "exp", + "amount": 108000 + }, + { + "type": "wallet", + "wallet_type": "Gold", + "amount": 25000 + }, + { + "type": "wallet", + "wallet_type": "RiftPoints", + "amount": 1500 + }, + { + "type": "fixed", + "loot_pool": [ + { + "item_id": 13118, + "num": 1 + }, + { + "item_id": 11510, + "num": 5 + } + ] + } + ], + "enemy_groups": [], + "processes": [ + { + "comment": "Process 0", + "blocks": [ + { + "type": "NewNpcTalkAndOrder", + "stage_id": { + "id": 3, + "group_id": 1, + "layer_no": 1 + }, + "npc_id": "Mayleaf0", + "message_id": 15354, + "flags": [ + {"type": "WorldManageLayout", "action": "Clear", "value": 8630, "quest_id": 70034001, "comment": "Spawns Gurdolin, Lise and Elliot"}, + {"type": "QstLayout", "action": "Set", "value": 2773, "comment": "Spawns Mayleaf"} + ] + }, + { + "type": "PartyGather", + "announce_type": "Accept", + "stage_id": { + "id": 350 + }, + "location": { + "x": -2143, + "y": 18, + "z": 9 + }, + "flags": [ + {"type": "QstLayout", "action": "Set", "value": 2774, "comment": "Spawns Lise, Cecily, Loeg"} + ] + }, + { + "type": "PlayEvent", + "stage_id": { + "id": 350 + }, + "event_id": 5 + }, + { + "type": "TalkToNpc", + "announce_type": "Update", + "checkpoint": true, + "stage_id": { + "id": 78 + }, + "npc_id": "Camus", + "message_id": 15365 + }, + { + "type": "TalkToNpc", + "announce_type": "Update", + "checkpoint": true, + "stage_id": { + "id": 78 + }, + "npc_id": "Alvar", + "message_id": 16737 + }, + { + "type": "MyQstFlags", + "announce_type": "Update", + "checkpoint": true, + "set_flags": [ 1 ], + "check_flags": [ 2, 3, 4, 5 ] + }, + { + "type": "TalkToNpc", + "announce_type": "Update", + "checkpoint": true, + "stage_id": { + "id": 78 + }, + "npc_id": "Camus", + "message_id": 15366 + }, + { + "type": "PartyGather", + "announce_type": "Update", + "checkpoint": true, + "stage_id": { + "id": 350 + }, + "location": { + "x": -2143, + "y": 18, + "z": 9 + } + }, + { + "type": "PlayEvent", + "stage_id": { + "id": 350 + }, + "event_id": 10 + }, + { + "type": "NewTalkToNpc", + "announce_type": "Update", + "checkpoint": true, + "stage_id": { + "id": 3, + "group_id": 1, + "layer_no": 1 + }, + "npc_id": "Mayleaf0", + "message_id": 15381 + } + ] + }, + { + "comment": "Process 1", + "blocks": [ + { + "type": "MyQstFlags", + "check_flags": [ 1 ] + }, + { + "type": "CollectItem", + "stage_id": { + "id": 1, + "group_id": 1, + "layer_no": 1 + }, + "flags": [ + {"type": "QstLayout", "action": "Set", "value": 2775} + ] + }, + { + "type": "MyQstFlags", + "flags": [ + {"type": "QstLayout", "action": "Clear", "value": 2775} + ], + "set_flags": [ 2 ] + } + ] + }, + { + "comment": "Process 2", + "blocks": [ + { + "type": "MyQstFlags", + "check_flags": [ 1 ] + }, + { + "type": "CollectItem", + "stage_id": { + "id": 1, + "group_id": 2, + "layer_no": 1 + }, + "flags": [ + {"type": "QstLayout", "action": "Set", "value": 2776} + ] + }, + { + "type": "MyQstFlags", + "flags": [ + {"type": "QstLayout", "action": "Clear", "value": 2776} + ], + "set_flags": [ 3 ] + } + ] + }, + { + "comment": "Process 3", + "blocks": [ + { + "type": "MyQstFlags", + "check_flags": [ 1 ] + }, + { + "type": "CollectItem", + "stage_id": { + "id": 1, + "group_id": 3, + "layer_no": 1 + }, + "flags": [ + {"type": "QstLayout", "action": "Set", "value": 2777} + ] + }, + { + "type": "MyQstFlags", + "flags": [ + {"type": "QstLayout", "action": "Clear", "value": 2777} + ], + "set_flags": [ 4 ] + } + ] + }, + { + "comment": "Process 4", + "blocks": [ + { + "type": "MyQstFlags", + "check_flags": [ 1 ] + }, + { + "type": "CollectItem", + "stage_id": { + "id": 1, + "group_id": 4, + "layer_no": 1 + }, + "flags": [ + {"type": "QstLayout", "action": "Set", "value": 2778} + ] + }, + { + "type": "MyQstFlags", + "flags": [ + {"type": "QstLayout", "action": "Clear", "value": 2778} + ], + "set_flags": [ 5 ] + } + ] + } + ] +} From 14f8ed3cc3be5c25a5a8b71ffbc90fa69e5ef739 Mon Sep 17 00:00:00 2001 From: Paul Campbell Date: Sat, 21 Sep 2024 20:32:17 -0400 Subject: [PATCH 4/9] feat: Season 2.1 MSQ "A Strange Land's Light" --- .../Files/Assets/quests/q00020110.json | 213 ++++++++++++++++++ docs/quests/events/st0201.md | 2 +- 2 files changed, 214 insertions(+), 1 deletion(-) create mode 100644 Arrowgene.Ddon.Shared/Files/Assets/quests/q00020110.json diff --git a/Arrowgene.Ddon.Shared/Files/Assets/quests/q00020110.json b/Arrowgene.Ddon.Shared/Files/Assets/quests/q00020110.json new file mode 100644 index 00000000..8f884b8e --- /dev/null +++ b/Arrowgene.Ddon.Shared/Files/Assets/quests/q00020110.json @@ -0,0 +1,213 @@ +{ + "state_machine": "GenericStateMachine", + "type": "Main", + "comment": "A Strange Land's Light", + "quest_id": 20110, + "next_quest": 20120, + "base_level": 65, + "minimum_item_rank": 0, + "discoverable": true, + "order_conditions": [ + {"type": "MinimumLevel", "Param1": 65} + ], + "rewards": [ + { + "type": "exp", + "amount": 113000 + }, + { + "type": "wallet", + "wallet_type": "Gold", + "amount": 35000 + }, + { + "type": "wallet", + "wallet_type": "RiftPoints", + "amount": 2600 + }, + { + "type": "fixed", + "loot_pool": [ + { + "item_id": 14190, + "num": 1 + }, + { + "item_id": 11407, + "num": 3 + } + ] + } + ], + "enemy_groups": [ + { + "stage_id": { + "id": 409, + "group_id": 1 + }, + "enemies": [ + { + "comment": "Frost Machina", + "enemy_id": "0x015851", + "level": 64, + "exp": 157620, + "named_enemy_params_id": 939, + "is_boss": true + } + ] + }, + { + "stage_id": { + "id": 337, + "group_id": 1 + }, + "enemies": [] + } + ], + "processes": [ + { + "comment": "Process 0", + "blocks": [ + { + "type": "NewNpcTalkAndOrder", + "stage_id": { + "id": 3, + "group_id": 1, + "layer_no": 1 + }, + "npc_id": "Cecily0", + "message_id": 0, + "flags": [ + {"type": "WorldManageLayout", "action": "Clear", "value": 8630, "quest_id": 70034001, "comment": "Spawns Gurdolin, Lise and Elliot"}, + {"type": "QstLayout", "action": "Set", "value": 2849, "comment": "Spawns Cecily"} + ] + }, + { + "type": "PlayEvent", + "stage_id": { + "id": 3 + }, + "event_id": 145, + "flags": [ + {"type": "WorldManageLayout", "action": "Clear", "value": 7390, "quest_id": 70032001, "comment": "The White Dragon (Full)"} + ] + }, + { + "type": "NewTalkToNpc", + "announce_type": "Accept", + "stage_id": { + "id": 3, + "group_id": 2, + "layer_no": 1 + }, + "npc_id": "Gurdolin3", + "message_id": 15395, + "flags": [ + {"type": "WorldManageLayout", "action": "Set", "value": 7390, "quest_id": 70032001, "comment": "The White Dragon (Full)"}, + {"type": "QstLayout", "action": "Set", "value": 3317, "comment": "Spawns Gurdolin, Elliot, Loeg and Lise"} + ] + }, + { + "type": "TalkToNpc", + "announce_type": "Update", + "checkpoint": true, + "stage_id": { + "id": 5 + }, + "npc_id": "Zerkin", + "message_id": 15396 + }, + { + "type": "IsStageNo", + "announce_type": "Update", + "checkpoint": true, + "stage_id": { + "id": 336 + } + }, + { + "type": "NewTalkToNpc", + "announce_type": "Update", + "checkpoint": true, + "stage_id": { + "id": 336, + "group_id": 1, + "layer_no": 3 + }, + "npc_id": "Cecily0", + "message_id": 15398, + "flags": [ + {"type": "QstLayout", "action": "Clear", "value": 3317, "comment": "Spawns Gurdolin, Elliot, Loeg and Lise"}, + {"type": "QstLayout", "action": "Set", "value": 3318, "comment": "Spawns Gurdolin, Loeg, Cecily, Lise and Elliot"} + ] + }, + { + "type": "IsStageNo", + "announce_type": "Update", + "checkpoint": true, + "stage_id": { + "id": 409 + } + }, + { + "type": "DiscoverEnemy", + "announce_type": "Update", + "checkpoint": true, + "groups": [ 0 ] + }, + { + "type": "KillGroup", + "announce_type": "Update", + "reset_group": false, + "groups": [ 0 ] + }, + { + "type": "PartyGather", + "announce_type": "Update", + "checkpoint": true, + "stage_id": { + "id": 337 + }, + "location": { + "x": 30855, + "y": 19538, + "z": -31490 + } + }, + { + "type": "PlayEvent", + "stage_id": { + "id": 337 + }, + "event_id": 0 + }, + { + "type": "NewTalkToNpc", + "announce_type": "Update", + "checkpoint": true, + "stage_id": { + "id": 337, + "group_id": 1, + "layer_no": 1 + }, + "npc_id": "Elliot0", + "message_id": 15420, + "flags": [ + {"type": "QstLayout", "action": "Clear", "value": 3318, "comment": "Spawns Gurdolin, Loeg, Cecily, Lise and Elliot"}, + {"type": "QstLayout", "action": "Set", "value": 2851, "comment": "Spawns Elliot"} + ] + }, + { + "type": "TalkToNpc", + "announce_type": "Update", + "checkpoint": true, + "stage_id": { + "id": 3 + }, + "npc_id": "Joseph", + "message_id": 15421 + } + ] + } + ] +} diff --git a/docs/quests/events/st0201.md b/docs/quests/events/st0201.md index dfb49333..72a0fe92 100644 --- a/docs/quests/events/st0201.md +++ b/docs/quests/events/st0201.md @@ -38,7 +38,7 @@ | 130 | The Fate of Lestania | 135 | The Fate of Lestania | 140 | A Fresh Incident -| 145 | +| 145 | A Strange Land's Light | 150 | | 155 | | 157 | From 47bbe5a52969b9b6303c2b7f42fcf5ea4af9fa35 Mon Sep 17 00:00:00 2001 From: Paul Campbell Date: Sat, 21 Sep 2024 23:03:31 -0400 Subject: [PATCH 5/9] feat: Season 2.1 MSQ "The Lone Arisen" - Implemented MSQ "The Lone Arisen". - Fixed bug in OM action parsing. --- .../AssetReader/QuestAssetDeserializer.cs | 4 +- .../Files/Assets/quests/q00020120.json | 299 ++++++++++++++++++ docs/quests/events/st0100.md | 2 +- 3 files changed, 302 insertions(+), 3 deletions(-) create mode 100644 Arrowgene.Ddon.Shared/Files/Assets/quests/q00020120.json diff --git a/Arrowgene.Ddon.Shared/AssetReader/QuestAssetDeserializer.cs b/Arrowgene.Ddon.Shared/AssetReader/QuestAssetDeserializer.cs index b612f6a1..cb8e675c 100644 --- a/Arrowgene.Ddon.Shared/AssetReader/QuestAssetDeserializer.cs +++ b/Arrowgene.Ddon.Shared/AssetReader/QuestAssetDeserializer.cs @@ -634,12 +634,14 @@ private bool ParseBlocks(QuestProcess questProcess, JsonElement jBlocks) Logger.Error($"Unable to parse the quest type in block @ index {blockIndex - 1}."); return false; } + questBlock.OmInteractEvent.QuestType = questType; if (!Enum.TryParse(jblock.GetProperty("interact_type").GetString(), true, out OmInteractType interactType)) { Logger.Error($"Unable to parse the quest type in block @ index {blockIndex - 1}."); return false; } + questBlock.OmInteractEvent.InteractType = interactType; questBlock.ShowMarker = true; if (jblock.TryGetProperty("show_marker", out JsonElement jShowMarker)) @@ -651,8 +653,6 @@ private bool ParseBlocks(QuestProcess questProcess, JsonElement jBlocks) { questBlock.OmInteractEvent.QuestId = (QuestId)jQuestId.GetUInt32(); } - - questBlock.OmInteractEvent.QuestType = questType; } break; case QuestBlockType.DeliverItems: diff --git a/Arrowgene.Ddon.Shared/Files/Assets/quests/q00020120.json b/Arrowgene.Ddon.Shared/Files/Assets/quests/q00020120.json new file mode 100644 index 00000000..2587d5a2 --- /dev/null +++ b/Arrowgene.Ddon.Shared/Files/Assets/quests/q00020120.json @@ -0,0 +1,299 @@ +{ + "state_machine": "GenericStateMachine", + "type": "Main", + "comment": "The Lone Arisen", + "quest_id": 20120, + "next_quest": 20130, + "base_level": 65, + "minimum_item_rank": 0, + "discoverable": true, + "order_conditions": [ + {"type": "MinimumLevel", "Param1": 65} + ], + "rewards": [ + { + "type": "exp", + "amount": 118000 + }, + { + "type": "wallet", + "wallet_type": "Gold", + "amount": 38000 + }, + { + "type": "wallet", + "wallet_type": "RiftPoints", + "amount": 2800 + }, + { + "type": "fixed", + "loot_pool": [ + { + "item_id": 13480, + "num": 1 + }, + { + "item_id": 11407, + "num": 3 + } + ] + } + ], + "enemy_groups": [ + { + "stage_id": { + "id": 405, + "group_id": 13 + }, + "enemies": [ + { + "comment": "Ghost Mail", + "enemy_id": "0x010311", + "level": 65, + "exp": 157620, + "is_boss": true + } + ] + }, + { + "stage_id": { + "id": 405, + "group_id": 15 + }, + "enemies": [ + { + "comment": "Ghost", + "enemy_id": "0x015620", + "level": 64, + "exp": 15762 + }, + { + "comment": "Ghost", + "enemy_id": "0x015620", + "level": 64, + "exp": 15762 + } + ] + }, + { + "stage_id": { + "id": 405, + "group_id": 16 + }, + "enemies": [ + { + "comment": "Gigant Machina", + "enemy_id": "0x015850", + "level": 65, + "exp": 157620, + "is_boss": true + }, + { + "comment": "Ghost", + "enemy_id": "0x015620", + "level": 64, + "exp": 15762 + }, + { + "comment": "Ghost", + "enemy_id": "0x015620", + "level": 64, + "exp": 15762 + } + ] + } + ], + "processes": [ + { + "comment": "Process 0", + "blocks": [ + { + "type": "NpcTalkAndOrder", + "stage_id": { + "id": 3 + }, + "npc_id": "Joseph", + "message_id": 15422, + "flags": [ + {"type": "WorldManageLayout", "action": "Clear", "value": 8630, "quest_id": 70034001, "comment": "Spawns Gurdolin, Lise and Elliot"}, + {"type": "QstLayout", "action": "Set", "value": 3851, "comment": "Spawns Gurdolin and Elliot"} + ] + }, + { + "type": "NewTalkToNpc", + "announce_type": "Accept", + "stage_id": { + "id": 350, + "group_id": 1, + "layer_no": 1 + }, + "npc_id": "Loeg", + "message_id": 15423, + "flags": [ + {"type": "QstLayout", "action": "Set", "value": 2457, "comment": "Spawns Loeg, Cecily and Lise"} + ] + }, + { + "type": "PartyGather", + "announce_type": "Update", + "checkpoint": true, + "stage_id": { + "id": 1 + }, + "location": { + "x": -34712, + "y": 15182, + "z": -176358 + }, + "flags": [ + {"type": "QstLayout", "action": "Set", "value": 2466, "comment": "Spawns Leo"}, + {"type": "QstLayout", "action": "Set", "value": 3378, "comment": "Spawns Loeg"} + ] + }, + { + "type": "PlayEvent", + "stage_id": { + "id": 1 + }, + "event_id": 145 + }, + { + "type": "NewTalkToNpc", + "announce_type": "Update", + "checkpoint": true, + "stage_id": { + "id": 1, + "group_id": 1, + "layer_no": 1 + }, + "npc_id": "Leo0", + "message_id": 15443 + }, + { + "type": "IsStageNo", + "announce_type": "Update", + "checkpoint": true, + "stage_id": { + "id": 405 + } + }, + { + "type": "OmInteractEvent", + "announce_type": "Update", + "checkpoint": true, + "flags": [ + {"type": "QstLayout", "action": "Set", "value": 2467, "comment": "Spawns Collection Point"} + ], + "quest_type": "MyQuest", + "interact_type": "Release", + "stage_id": { + "id": 405, + "group_id": 1, + "layer_no": 5 + } + }, + { + "type": "OmInteractEvent", + "announce_type": "Update", + "checkpoint": true, + "flags": [ + {"type": "QstLayout", "action": "Set", "value": 2469, "comment": "Spawns Collection Point"} + ], + "quest_type": "MyQuest", + "interact_type": "Release", + "stage_id": { + "id": 405, + "group_id": 2, + "layer_no": 1 + } + }, + { + "type": "OmInteractEvent", + "announce_type": "Update", + "checkpoint": true, + "flags": [ + {"type": "QstLayout", "action": "Set", "value": 2472, "comment": "Spawns Collection Point"} + ], + "quest_type": "MyQuest", + "interact_type": "Release", + "stage_id": { + "id": 405, + "group_id": 5, + "layer_no": 1 + } + }, + { + "type": "DiscoverEnemy", + "announce_type": "Update", + "groups": [ 0, 1 ] + }, + { + "type": "KillGroup", + "reset_group": false, + "groups": [ 0, 1 ] + }, + { + "type": "OmInteractEvent", + "announce_type": "Update", + "checkpoint": true, + "flags": [ + {"type": "QstLayout", "action": "Set", "value": 2471, "comment": "Spawns Collection Point"} + ], + "quest_type": "MyQuest", + "interact_type": "Release", + "stage_id": { + "id": 405, + "group_id": 4, + "layer_no": 1 + } + }, + { + "type": "DiscoverEnemy", + "announce_type": "Update", + "groups": [ 2 ] + }, + { + "type": "KillGroup", + "reset_group": false, + "groups": [ 2 ] + }, + { + "type": "OmInteractEvent", + "announce_type": "Update", + "checkpoint": true, + "flags": [ + {"type": "QstLayout", "action": "Set", "value": 2470, "comment": "Spawns Collection Point"} + ], + "quest_type": "MyQuest", + "interact_type": "Release", + "stage_id": { + "id": 405, + "group_id": 3, + "layer_no": 1 + } + }, + { + "type": "NewTalkToNpc", + "announce_type": "Update", + "checkpoint": true, + "stage_id": { + "id": 1, + "group_id": 1, + "layer_no": 1 + }, + "npc_id": "Leo0", + "message_id": 15444 + }, + { + "type": "TalkToNpc", + "stage_id": { + "id": 3 + }, + "announce_type": "Update", + "npc_id": "Joseph", + "message_id": 15446 + } + ] + } + ] +} diff --git a/docs/quests/events/st0100.md b/docs/quests/events/st0100.md index 915d567f..d72e6593 100644 --- a/docs/quests/events/st0100.md +++ b/docs/quests/events/st0100.md @@ -24,7 +24,7 @@ | 130 | The Corruption and the Knights | 135 | The Man From Another Land | 140 | The Man From Another Land -| 145 +| 145 | The Lone Arisen | 150 | 155 | 160 \ No newline at end of file From 171b2ae2833f6d2b4f2c851513a53c2d124aac1a Mon Sep 17 00:00:00 2001 From: Paul Campbell Date: Sun, 22 Sep 2024 00:12:47 -0400 Subject: [PATCH 6/9] feat: Season 2.1 MSQ "Straying Power" --- .../Files/Assets/quests/q00020130.json | 211 ++++++++++++++++++ 1 file changed, 211 insertions(+) create mode 100644 Arrowgene.Ddon.Shared/Files/Assets/quests/q00020130.json diff --git a/Arrowgene.Ddon.Shared/Files/Assets/quests/q00020130.json b/Arrowgene.Ddon.Shared/Files/Assets/quests/q00020130.json new file mode 100644 index 00000000..a2495d8e --- /dev/null +++ b/Arrowgene.Ddon.Shared/Files/Assets/quests/q00020130.json @@ -0,0 +1,211 @@ +{ + "state_machine": "GenericStateMachine", + "type": "Main", + "comment": "Straying Power", + "quest_id": 20130, + "next_quest": 20140, + "base_level": 65, + "minimum_item_rank": 0, + "discoverable": true, + "order_conditions": [ + {"type": "MinimumLevel", "Param1": 65} + ], + "rewards": [ + { + "type": "exp", + "amount": 123000 + }, + { + "type": "wallet", + "wallet_type": "Gold", + "amount": 40000 + }, + { + "type": "wallet", + "wallet_type": "RiftPoints", + "amount": 3000 + }, + { + "type": "fixed", + "loot_pool": [ + { + "item_id": 13481, + "num": 1 + }, + { + "item_id": 14189, + "num": 1 + } + ] + } + ], + "enemy_groups": [ + { + "comment": "Block monsters in room while quest is active", + "stage_id": { + "id": 74, + "group_id": 8 + }, + "enemies": [] + }, + { + "stage_id": { + "id": 361, + "group_id": 1 + }, + "enemies": [ + { + "comment": "Phantasmic Great Dragon", + "enemy_id": "0x021003", + "level": 65, + "exp": 197000, + "named_enemy_params_id": 942, + "is_boss": true + } + ] + } + ], + "processes": [ + { + "comment": "Process 0", + "blocks": [ + { + "type": "NpcTalkAndOrder", + "stage_id": { + "id": 3 + }, + "npc_id": "Joseph", + "message_id": 15447, + "flags": [ + {"type": "WorldManageLayout", "action": "Clear", "value": 8630, "quest_id": 70034001, "comment": "Spawns Gurdolin, Lise and Elliot"}, + {"type": "QstLayout", "action": "Set", "value": 2475, "comment": "Spawns Cecily, Elliot and Lise"} + ] + }, + { + "type": "IsStageNo", + "announce_type": "Accept", + "stage_id": { + "id": 74 + }, + "flags": [ + {"type": "QstLayout", "action": "Set", "value": 2473, "comment": "Spawns Leo"} + ] + }, + { + "type": "PartyGather", + "announce_type": "Update", + "checkpoint": true, + "stage_id": { + "id": 74 + }, + "location": { + "x": -230, + "y": -1649, + "z": -29680 + } + }, + { + "type": "PlayEvent", + "stage_id": { + "id": 74 + }, + "event_id": 15, + "jump_stage_id": { + "id": 361 + } + }, + { + "type": "IsStageNo", + "announce_type": "Update", + "stage_id": { + "id": 361 + }, + "flags": [ + {"type": "QstLayout", "action": "Clear", "value": 2473, "comment": "Spawns Leo"}, + {"type": "QstLayout", "action": "Set", "value": 2529, "comment": "Spawns Leo"} + ] + }, + { + "type": "PartyGather", + "stage_id": { + "id": 361 + }, + "location": { + "x": 59, + "y": 519, + "z": -7292 + } + }, + { + "type": "PlayEvent", + "stage_id": { + "id": 361 + }, + "event_id": 0, + "jump_stage_id": { + "id": 361 + }, + "start_pos_no": 1 + }, + { + "type": "KillGroup", + "announce_type": "Update", + "groups": [ 1 ], + "flags": [ + {"type": "QstLayout", "action": "Clear", "value": 2529, "comment": "Spawns Leo"}, + {"type": "QstLayout", "action": "Set", "value": 3654, "comment": "Spawns Leo for combat"}, + {"type": "QstLayout", "action": "Set", "value": 3446, "comment": "Spawns Gurdolin for combat"}, + {"type": "MyQst", "action": "Set", "value": 1081, "comment": "Starts Gurdolin combat FSM"} + ] + }, + { + "type": "PlayEvent", + "stage_id": { + "id": 361 + }, + "event_id": 5 + }, + { + "type": "PartyGather", + "checkpoint": true, + "announce_type": "Update", + "stage_id": { + "id": 350 + }, + "location": { + "x": -2143, + "y": 18, + "z": 52 + }, + "flags": [ + {"type": "QstLayout", "action": "Clear", "value": 3654, "comment": "Spawns Leo for combat"}, + {"type": "QstLayout", "action": "Clear", "value": 3446, "comment": "Spawns Gurdolin for combat"}, + {"type": "MyQst", "action": "Clear", "value": 1081, "comment": "Starts Gurdolin combat FSM"}, + {"type": "QstLayout", "action": "Set", "value": 3448, "comment": "Spawns Loeg, Cecily, Lise and Elliot"} + ] + }, + { + "type": "PlayEvent", + "stage_id": { + "id": 350 + }, + "event_id": 15 + }, + { + "type": "TalkToNpc", + "announce_type": "Update", + "checkpoint": true, + "stage_id": { + "id": 3 + }, + "npc_id": "Joseph", + "message_id": 15486, + "flags": [ + {"type": "QstLayout", "action": "Clear", "value": 3448, "comment": "Spawns Loeg, Cecily, Lise and Elliot"}, + {"type": "QstLayout", "action": "Set", "value": 3449, "comment": "Spawns Loeg, Cecily, Lise and Elliot"} + ] + } + ] + } + ] +} From a24334a771c90a2073d3149d09c617e290cf94ea Mon Sep 17 00:00:00 2001 From: Paul Campbell Date: Sun, 22 Sep 2024 10:00:13 -0400 Subject: [PATCH 7/9] feat: Season 2.1 MSQ "The Entrusted One" --- .../Files/Assets/quests/q00020140.json | 198 ++++++++++++++++++ Arrowgene.Ddon.Shared/Model/Quest/QuestId.cs | 95 +++++---- docs/quests/events/st0100.md | 6 +- docs/quests/events/st0201.md | 8 +- 4 files changed, 256 insertions(+), 51 deletions(-) create mode 100644 Arrowgene.Ddon.Shared/Files/Assets/quests/q00020140.json diff --git a/Arrowgene.Ddon.Shared/Files/Assets/quests/q00020140.json b/Arrowgene.Ddon.Shared/Files/Assets/quests/q00020140.json new file mode 100644 index 00000000..c2c2ee1b --- /dev/null +++ b/Arrowgene.Ddon.Shared/Files/Assets/quests/q00020140.json @@ -0,0 +1,198 @@ +{ + "state_machine": "GenericStateMachine", + "type": "Main", + "comment": "The Entrusted One", + "quest_id": 20140, + "next_quest": 0, + "base_level": 66, + "minimum_item_rank": 0, + "discoverable": true, + "order_conditions": [ + {"type": "MinimumLevel", "Param1": 66} + ], + "rewards": [ + { + "type": "exp", + "amount": 128000 + }, + { + "type": "wallet", + "wallet_type": "Gold", + "amount": 42000 + }, + { + "type": "wallet", + "wallet_type": "RiftPoints", + "amount": 3200 + }, + { + "type": "fixed", + "loot_pool": [ + { + "item_id": 13173, + "num": 1 + } + ] + } + ], + "enemy_groups": [ + { + "stage_id": { + "id": 337, + "group_id": 1 + }, + "enemies": [ + { + "comment": "Altered Zuhl", + "enemy_id": "0x020403", + "level": 66, + "exp": 217000, + "is_boss": true + } + ] + } + ], + "processes": [ + { + "comment": "Process 0", + "blocks": [ + { + "type": "NpcTalkAndOrder", + "stage_id": { + "id": 3 + }, + "npc_id": "TheWhiteDragon", + "message_id": 0, + "flags": [ + {"type": "WorldManageLayout", "action": "Clear", "value": 8630, "quest_id": 70034001, "comment": "Spawns Gurdolin, Lise and Elliot"} + ] + }, + { + "type": "PlayEvent", + "stage_id": { + "id": 3 + }, + "event_id": 150, + "flags": [ + {"type": "WorldManageLayout", "action": "Clear", "value": 7390, "quest_id": 70032001, "comment": "The White Dragon (Full)"} + ] + }, + { + "type": "NewTalkToNpc", + "stage_id": { + "id": 3, + "group_id": 1, + "layer_no": 1 + }, + "announce_type": "Accept", + "npc_id": "Cecily0", + "message_id": 15508, + "flags": [ + {"type": "WorldManageLayout", "action": "Set", "value": 7390, "quest_id": 70032001, "comment": "The White Dragon (Full)"}, + {"type": "QstLayout", "action": "Set", "value": 2852, "comment": "Spawns Cecily, Elliot, Gurdolin, Lise, and Loeg"} + ] + }, + { + "type": "TalkToNpc", + "stage_id": { + "id": 3 + }, + "announce_type": "Update", + "checkpoint": true, + "npc_id": "Joseph", + "message_id": 15509 + }, + { + "type": "PartyGather", + "announce_type": "Update", + "checkpoint": true, + "stage_id": { + "id": 337 + }, + "location": { + "x": 30707, + "y": 19540, + "z": -31453 + } + }, + { + "type": "PlayEvent", + "stage_id": { + "id": 337 + }, + "event_id": 5 + }, + { + "type": "KillGroup", + "announce_type": "Update", + "groups": [ 0 ], + "flags": [ + {"type": "QstLayout", "action": "Clear", "value": 2852, "comment": "Spawns Cecily, Elliot, Gurdolin, Lise, and Loeg"}, + {"type": "QstLayout", "action": "Set", "value": 2853, "comment": "Spawns Cecily, Elliot, Gurdolin and Lise"}, + {"type": "QstLayout", "action": "Set", "value": 3452, "comment": "Spawns Walls that blocks exit"} + ] + }, + { + "type": "PlayEvent", + "stage_id": { + "id": 337 + }, + "event_id": 10, + "flags": [ + {"type": "QstLayout", "action": "Clear", "value": 3452, "comment": "Spawns Walls that blocks exit"} + ] + }, + { + "type": "PartyGather", + "announce_type": "Update", + "checkpoint": true, + "stage_id": { + "id": 3 + }, + "location": { + "x":-730, + "y": 9163, + "z": -3 + }, + "flags": [ + {"type": "QstLayout", "action": "Clear", "value": 3451, "comment": "Spawns Loeg and Gerd"} + ] + }, + { + "type": "PlayEvent", + "stage_id": { + "id": 3 + }, + "event_id": 155, + "jump_stage_id": { + "id": 337 + }, + "start_pos_no": 2, + "flags": [ + {"type": "WorldManageLayout", "action": "Clear", "value": 7390, "quest_id": 70032001, "comment": "The White Dragon (Full)"} + ] + }, + { + "type": "PlayEvent", + "stage_id": { + "id": 337 + }, + "event_id": 15, + "jump_stage_id": { + "id": 3 + }, + "start_pos_no": 2 + }, + { + "type": "IsStageNo", + "stage_id": { + "id": 3 + }, + "flags": [ + {"type": "WorldManageLayout", "action": "Set", "value": 7390, "quest_id": 70032001, "comment": "The White Dragon (Full)"} + ] + } + ] + } + ] +} diff --git a/Arrowgene.Ddon.Shared/Model/Quest/QuestId.cs b/Arrowgene.Ddon.Shared/Model/Quest/QuestId.cs index 2dc4063c..e3fd03aa 100644 --- a/Arrowgene.Ddon.Shared/Model/Quest/QuestId.cs +++ b/Arrowgene.Ddon.Shared/Model/Quest/QuestId.cs @@ -16,77 +16,84 @@ public enum QuestId : uint // the respective directories for different quests. Seems it may be possible to use // this to create additional main story quests. + // Season 1.0 ResolutionsAndOmens = 1, TheSlumberingGod = 2, EnvoyOfReconcilliation = 3, SolidersOfTheRift = 4, + AServantsPledge = 26, + TheCrimsonCrystal = 25, TheDullGreyArk = 5, TheGirlInTheForest = 6, + TheGoblinKing = 27, TheHouseOfSteam = 7, TheAssailedFort = 9, TheCastleOfDusk = 10, TheGodsAwakening = 11, + // Season 1.1 TheGirlCladInDarkness = 12, TheStolenHeart = 13, TheRoarsOfAThousand = 14, ReturnToYore = 15, AFriendlyVisit = 16, TheCourseOfLife = 17, + // Season 1.2 + ABriefRespite = 28, TheArkOnceMore = 18, ThinkingOfAFriend = 19, + TheBeastsFinalMoments = 29, TheFutureEntrustedToUs = 20, TheQuandaryOfSoliders = 21, TheDwellersOfTheGoldenLand = 22, TheGoldenKey = 23, TheGreatAlchemist = 24, - TheCrimsonCrystal = 25, - AServantsPledge = 26, - TheGoblinKing = 27, - ABriefRespite = 28, - TheBeastsFinalMoments = 29, BeForevermoreWhiteDragon = 30, - - // Seems like quest names and IDs got out of sync when this list was made + // Season 2.0 TheStormThatBroughtATragedy = 20010, - TheStormThatBoughtATragedy = 20020, - TheGirlWhoLostHerMemories = 20030, - TheCorruptionAndTheKnights = 20040, - ExploringTheDenOfMonsters = 20050, - EliminateTheCorrosionInfestation = 20060, - TheManFromAnotherLand = 20070, - TheFateOfLestania = 20080, - AFreshIncident = 20090, - Negotiations = 20100, - LeogsIllness = 20110, - AStrangeLandsLight = 20120, - TheLoneArisen = 20130, - StrayingPower = 20140, - TheEntrustedOne = 20150, - ANewContinent = 20160, - TheLostHometown = 20170, - TheVillageOfSoliders = 20180, - Homecoming = 20190, - GallantFootsteps = 20200, - TheDarknessOfTheHeart = 20210, - TheSpiritLand = 20220, - WithinTheTree = 20230, - RestorationRequirements = 20240, - ReasonAndBonds = 20250, - - TheNewGeneration = 30010, - TheLandOfDespair = 30020, - InSearchOfHope = 30030, - MeirovaTheVeteranGeneral = 30040, - ThePrincesWhereabouts = 30050, - SurvivorsVillage = 30060, - TheOpposition = 30070, - PrinceNedo = 30080, - TheRoyalFamilySacrament = 30090, - TheApproachingDemonArmy = 30100, - PortentOfDespair = 30110, + TheGirlWhoLostHerMemories = 20020, + TheCorruptionAndTheKnights = 20030, + ExploringTheDenOfMonsters = 20040, + EliminateTheCorrosionInfestation = 20050, + TheManFromAnotherLand = 20060, + TheFateOfLestania = 20070, + // Season 2.1 + AFreshIncident = 20080, + Negotiations = 20090, + LeogsIllness = 20100, + AStrangeLandsLight = 20110, + TheLoneArisen = 20120, + StrayingPower = 20130, + TheEntrustedOne = 20140, + // Season 2.2 + ANewContinent = 20150, + TheLostHometown = 20160, + TheVillageOfSoliders = 20170, + Homecoming = 20180, + GallantFootsteps = 20190, + TheDarknessOfTheHeart = 20200, + // Season 2.3 + TheSpiritLand = 20210, + WithinTheTree = 20220, + RestorationRequirements = 20230, + ReasonAndBonds = 20240, + TheNewGeneration = 20250, + // Season 3.0 + TheLandOfDespair = 30010, + InSearchOfHope = 30020, + MeirovaTheVeteranGeneral = 30030, + ThePrincesWhereabouts = 30040, + SurvivorsVillage = 30050, + TheOpposition = 30060, + PrinceNedo = 30070, + // Season 3.1 + TheRoyalFamilySacrament = 30080, + TheApproachingDemonArmy = 30090, + PortentOfDespair = 30100, + DiversionaryTactics = 30110, TheSecretEntrance = 30120, ADesperateInfiltration = 30125, TheBattleOfLookoutCastle = 30130, + // Season 3.2 TheRoadToTheRoyalCapital = 30140, RallyTheTroops = 30150, AttackOnTheRoyalCapital = 30160, @@ -94,12 +101,14 @@ public enum QuestId : uint ABriefDragonForce = 30180, ThePlightOfLookoutCastle = 30190, TheFinalBattleOfTheRoyalCapital = 30200, + // Season 3.3 TheMissingPrince = 30210, NedosTrail = 30220, TheRoyalFamilyMausoleum = 30230, TheDreadfulPassage = 30240, TheRelicsOfTheFirstKing = 30250, HopesBitterEnd = 30260, + // Season 3.4? ThoseWhoFollowTheDragon = 30270, Unknown30410 = 30410, // Name is in Japanese Unknown30420 = 30420, // Name is in Japanese diff --git a/docs/quests/events/st0100.md b/docs/quests/events/st0100.md index d72e6593..510300a3 100644 --- a/docs/quests/events/st0100.md +++ b/docs/quests/events/st0100.md @@ -25,6 +25,6 @@ | 135 | The Man From Another Land | 140 | The Man From Another Land | 145 | The Lone Arisen -| 150 -| 155 -| 160 \ No newline at end of file +| 150 | +| 155 | +| 160 | \ No newline at end of file diff --git a/docs/quests/events/st0201.md b/docs/quests/events/st0201.md index 72a0fe92..53666c00 100644 --- a/docs/quests/events/st0201.md +++ b/docs/quests/events/st0201.md @@ -39,8 +39,8 @@ | 135 | The Fate of Lestania | 140 | A Fresh Incident | 145 | A Strange Land's Light -| 150 | -| 155 | +| 150 | The Entrusted One +| 155 | The Entrusted One | 157 | | 160 | | 165 | @@ -61,6 +61,4 @@ | 235 | | 240 | | 245 | -| 250 | - - +| 250 | \ No newline at end of file From db31bb72b7d1f05e069a660fe8abaf22b90ce3a9 Mon Sep 17 00:00:00 2001 From: Paul Campbell Date: Sun, 22 Sep 2024 10:11:40 -0400 Subject: [PATCH 8/9] Add migration strategy DB version increments from 16 to 17. --- .../Arrowgene.Ddon.Database.csproj | 4 ++++ .../DdonDatabaseBuilder.cs | 2 +- .../Database/Script/migration_msq_2.1.sql | 2 ++ .../Core/Migration/00000017_Msq21Migration.cs | 24 +++++++++++++++++++ 4 files changed, 31 insertions(+), 1 deletion(-) create mode 100644 Arrowgene.Ddon.Database/Files/Database/Script/migration_msq_2.1.sql create mode 100644 Arrowgene.Ddon.Database/Sql/Core/Migration/00000017_Msq21Migration.cs diff --git a/Arrowgene.Ddon.Database/Arrowgene.Ddon.Database.csproj b/Arrowgene.Ddon.Database/Arrowgene.Ddon.Database.csproj index 2b716238..bd4409fc 100644 --- a/Arrowgene.Ddon.Database/Arrowgene.Ddon.Database.csproj +++ b/Arrowgene.Ddon.Database/Arrowgene.Ddon.Database.csproj @@ -40,6 +40,7 @@ + @@ -76,6 +77,9 @@ PreserveNewest + + PreserveNewest + PreserveNewest diff --git a/Arrowgene.Ddon.Database/DdonDatabaseBuilder.cs b/Arrowgene.Ddon.Database/DdonDatabaseBuilder.cs index d6755acf..078396e6 100644 --- a/Arrowgene.Ddon.Database/DdonDatabaseBuilder.cs +++ b/Arrowgene.Ddon.Database/DdonDatabaseBuilder.cs @@ -14,7 +14,7 @@ public static class DdonDatabaseBuilder private static readonly ILogger Logger = LogProvider.Logger(typeof(DdonDatabaseBuilder)); private const string DefaultSchemaFile = "Script/schema_sqlite.sql"; - public const uint Version = 16; + public const uint Version = 17; public static IDatabase Build(DatabaseSetting settings) { diff --git a/Arrowgene.Ddon.Database/Files/Database/Script/migration_msq_2.1.sql b/Arrowgene.Ddon.Database/Files/Database/Script/migration_msq_2.1.sql new file mode 100644 index 00000000..fd52035c --- /dev/null +++ b/Arrowgene.Ddon.Database/Files/Database/Script/migration_msq_2.1.sql @@ -0,0 +1,2 @@ +INSERT INTO ddon_quest_progress(character_common_id, quest_type, quest_id, step, variant_quest_id) +VALUES ((SELECT character_common_id FROM ddon_completed_quests WHERE quest_id = 20070), 3, 20080, 0, 0); diff --git a/Arrowgene.Ddon.Database/Sql/Core/Migration/00000017_Msq21Migration.cs b/Arrowgene.Ddon.Database/Sql/Core/Migration/00000017_Msq21Migration.cs new file mode 100644 index 00000000..5df021b8 --- /dev/null +++ b/Arrowgene.Ddon.Database/Sql/Core/Migration/00000017_Msq21Migration.cs @@ -0,0 +1,24 @@ +using System.Data.Common; + +namespace Arrowgene.Ddon.Database.Sql.Core.Migration +{ + public class Msq21Migration : IMigrationStrategy + { + public uint From => 16; + public uint To => 17; + + private readonly DatabaseSetting DatabaseSetting; + + public Msq21Migration(DatabaseSetting databaseSetting) + { + DatabaseSetting = databaseSetting; + } + + public bool Migrate(IDatabase db, DbConnection conn) + { + string adaptedSchema = DdonDatabaseBuilder.GetAdaptedSchema(DatabaseSetting, "Script/migration_msq_2.1.sql"); + db.Execute(conn, adaptedSchema); + return true; + } + } +} From 987934f0f83c4f4698c049c6962b6dfbd999deb5 Mon Sep 17 00:00:00 2001 From: Paul Campbell Date: Sun, 22 Sep 2024 11:02:02 -0400 Subject: [PATCH 9/9] Small fixes while testing --- Arrowgene.Ddon.Shared/Files/Assets/quests/q00020120.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Arrowgene.Ddon.Shared/Files/Assets/quests/q00020120.json b/Arrowgene.Ddon.Shared/Files/Assets/quests/q00020120.json index 2587d5a2..ead70a24 100644 --- a/Arrowgene.Ddon.Shared/Files/Assets/quests/q00020120.json +++ b/Arrowgene.Ddon.Shared/Files/Assets/quests/q00020120.json @@ -229,12 +229,12 @@ }, { "type": "KillGroup", + "announce_type": "Update", "reset_group": false, "groups": [ 0, 1 ] }, { "type": "OmInteractEvent", - "announce_type": "Update", "checkpoint": true, "flags": [ {"type": "QstLayout", "action": "Set", "value": 2471, "comment": "Spawns Collection Point"} @@ -254,12 +254,12 @@ }, { "type": "KillGroup", + "announce_type": "Update", "reset_group": false, "groups": [ 2 ] }, { "type": "OmInteractEvent", - "announce_type": "Update", "checkpoint": true, "flags": [ {"type": "QstLayout", "action": "Set", "value": 2470, "comment": "Spawns Collection Point"}