Marechal-L / Dark-Souls-III-Archipelago-client

This is the Dark Souls III client made for the multiworld randomizer Archipelago
MIT License
1 stars 11 forks source link

Version 3.0.0 #28

Open nex3 opened 5 months ago

nex3 commented 5 months ago

This PR fully implements the changes discussed in #17, integrating this client with a branch of @thefifthmatt's static randomizer so that all item locations can be randomized rather than just unique items.

Major functionality changes:

Major infrastructure changes:

Instructions for building this client are in the README. You can test it by taking the latest beta release and overwriting its archipelago.dll with the one you built locally.

Closes #17

Marechal-L commented 5 months ago

I don't encountered any major issues during my testings and the result looks amazing!

I still have two minor issues and I would be glad to investigate on my own to fix this but I would like your feedback first :

  1. Items injected by the SoulsRandomizers are displayed with the default label "?good's name?" when the game is played in French ( and probably any language but English ). I didn't dig into the SoulsRandomizers yet but if you have any idea to fix this it would be great.

  2. Local items purchased from the shop do not trigger a check to the server but world items do ? I'll probably need to do more testing to fully understand your logic behind it but if you already have an explanation for me I would be greateful

nex3 commented 5 months ago

Items injected by the SoulsRandomizers are displayed with the default label "?good's name?" when the game is played in French ( and probably any language but English ). I didn't dig into the SoulsRandomizers yet but if you have any idea to fix this it would be great.

This is currently a restriction intrinsic to the static randomizer—it only overwrites the messages for the engus localization. Hopefully we can talk to Matt about making that more flexible, but I think it may have to be a post-3.0.0 thing.

Local items purchased from the shop do not trigger a check to the server but world items do ? I'll probably need to do more testing to fully understand your logic behind it but if you already have an explanation for me I would be greateful

Yeah, this is definitely not ideal but it's extremely hard to fix. The core of the issue is, in order to make DS3-native shop items look right (show up in the right tabs, in the right order, with the right stats) we need them to be real items rather than the synthetic fakes we use for other drops. But since they're real items, we can't embed extra metadata to figure out which location they represent once you purchase them.

It's possible we could work around this at least to some degree if we could get a listing of all the items that exist in the shop and use that to determine which location was bought... although even then if you have, for example, six different Embers available in the Firelink shop from different locations it's not clear how you'd figure out which Ember came from which source.