Medals
Medials should be implemented in the encyclopedia.
In the original game, medals were a way to show off having cleared particular content with a certain unit. For instance, a medal to clear an Agito Uprising quest on Legend would be earned when you cleared it with character X, and then when you viewed character X's medals in the encyclopedia it would be there. The implicit encouragement here is to clear content with a wide range of units.
The wiki article contains a full list of the available medals: https://dragalialost.wiki/w/Medals
The proposed DB schema would be
- DbMedalClear table [DeviceAccountId, QuestId, CharaId, ClearCount]
At a precursory glance and guessing at the right property name, this data appears to be sent in album/index via chara_honor_list
{
"data_headers": {
"result_code": 1
},
"data": {
"chara_honor_list": [
{
"chara_id": 10140302,
"honor_list": [
{
"honor_id": 100101
}
]
}
]
}
}
Here honor_id is an ID from the HonorData asset in the masterasset. A JSON dump of this is below which can be included as a MasterAsset instance in the code:
Outstanding questions:
- How do we go from a quest ID to an
honor_id? Does not seem to be a way to link this using the data in the asset alone. A manual map may be required. - In light of this, should the DB schema actually use
honor_idinstead of a quest ID? - When viewing medals you see a quantity against each one, but the
AtgenHonorListtype only contains anhonor_idand noquantityfield or similar. Do we send the samehonor_idmultiple times to reflect quantity?
Things to be careful of:
- Medals are not awarded when using skip tickets. Skip tickets are currently implemented as simulating a dungeon clear such that the exact same methods are called. I don't think there is any current way from within the
DungeonRecordServiceto know if a skip ticket is being used -- which we will need to check when awarding a medal. - Medals are not awarded to units who died and used up all of their revives.
Hey @SapiensAnatis can you please add a bit more detail for this just while I get my head around the code base to begin with :)
@Antimeify Sure, I've fleshed out the description a bit describing the core mechanic and some initial investigation into what the client is expecting here.
Also, here are the localisation strings and honor IDs from the above JSON next to their English translation:
| HonorId | HonorName | English Text |
|---|---|---|
| 100101 | HONOR_NAME_100101 | Dragon Conqueror Medal (Master Class) |
| 100201 | HONOR_NAME_100201 | Astral Conqueror Medal (Master Class) |
| 100301 | HONOR_NAME_100301 | Void Dragon Conqueror Medal (Standard Class) |
| 100302 | HONOR_NAME_100302 | Void Dragon Conqueror Medal (Expert Class) |
| 100401 | HONOR_NAME_100401 | Void Chimera Conqueror Medal (Standard Class) |
| 100402 | HONOR_NAME_100402 | Void Chimera Conqueror Medal (Expert Class) |
| 100501 | HONOR_NAME_100501 | High Dragon Conqueror Medal (Standard Class) |
| 100502 | HONOR_NAME_100502 | High Dragon Conqueror Medal (Expert Class) |
| 100503 | HONOR_NAME_100503 | High Dragon Conqueror Medal (Master Class) |
| 100601 | HONOR_NAME_100601 | Agito Conqueror Medal (Standard Class) |
| 100602 | HONOR_NAME_100602 | Agito Conqueror Medal (Expert Class) |
| 100603 | HONOR_NAME_100603 | Agito Conqueror Medal (Master Class) |
| 100701 | HONOR_NAME_100701 | Agito Conqueror Medal (Legend Class) |
| 100801 | HONOR_NAME_100801 | Archdemon Conqueror Medal (Standard Class) |
| 100802 | HONOR_NAME_100802 | Archdemon Conqueror Medal (Expert Class) |
| 100803 | HONOR_NAME_100803 | Archdemon Conqueror Medal (Master Class) |
| 100901 | HONOR_NAME_100901 | Morsayati Conqueror Medal |
| 101001 | HONOR_NAME_101001 | Conqueror of the Mighty Medal (Standard Class) |
| 101002 | HONOR_NAME_101002 | Conqueror of the Mighty Medal (Expert Class) |
| 101003 | HONOR_NAME_101003 | Conqueror of the Mighty Medal (Master Class) |
| 101101 | HONOR_NAME_101101 | Archdemon Conqueror Medal (Legend Class) |
| 101201 | HONOR_NAME_101201 | Kaleidoscape Conqueror Medal (Expert Class) |
| 101202 | HONOR_NAME_101202 | Kaleidoscape Conqueror Medal (Master Class) |
| 101301 | HONOR_NAME_101301 | Primal Dragon Conqueror Medal (Standard Class) |
| 101302 | HONOR_NAME_101302 | Primal Dragon Conqueror Medal (Expert Class) |
| 101303 | HONOR_NAME_101303 | Primal Dragon Conqueror Medal (Master Class) |