SapiensAnatis / Dawnshard

Server emulator for Dragalia Lost
https://dawnshard.co.uk
MIT License
102 stars 33 forks source link

Upgrade dragons and adventurers endeavours complete early #1037

Open SapiensAnatis opened 2 months ago

SapiensAnatis commented 2 months ago

Describe the bug

Both "Raise a water attunned adventurer to level 30" and "Upgrade a water attuned dragon to level 5" endeavors completed without having actually done them.

With an inventory of level 1 dragons and a few adventurers at level 8, the endeavours were completed.

Expected behavior They should complete according to the description

SapiensAnatis commented 2 weeks ago

This is probably a mismatch between the _CompleteValue and how we calculate initial progress.

For example, royal regimen mission 104400 "Upgrade a Light-Attuned Dragon to Lv. 30" is insta-completed on a fresh account that has not met the requirements. This looks to be because in GetInitialMissionProgress we call GetDragonMaxLevel and get a value of 1, but the _CompleteValue is 1 (signifying 1 dragon at level 30?), so we view the mission as completed.

SapiensAnatis commented 2 weeks ago

Offending missions:

Text _CompleteValue
Raise a Water-Attuned Adventurer to Lv. 30 1
Upgrade a Water-Attuned Dragon to Lv. 5 1
Upgrade a Flame-Attuned Dragon to Lv. 10 1
Raise a Shadow-Attuned Adventurer to Lv. 40 1
Raise a Light-Attuned Adventurer to Lv. 50 1
Upgrade a Light-Attuned Dragon to Lv. 30 1
Upgrade a Shadow-Attuned Dragon to Lv. 30 1
Raise a Flame-Attuned Adventurer to Lv. 70 1
Raise a Shadow-Attuned Adventurer to Lv. 70 1
Raise a Wind-Attuned Adventurer to Lv. 70 1
Raise a Water-Attuned Adventurer to Lv. 70 1
Raise a Light-Attuned Adventurer to Lv. 70 1
Upgrade a Dragon to Lv. 50 50
Raise an Adventurer to Lv. 80 80
Upgrade a Dragon to Lv. 80 80

Frustratingly our current calculation is correct for the last three so we can't just change GetDragonMaxLevel to return the number satisfying the threshold. We will probably have to introduce a new MissionCompleteType.