ArchipelagoMW-HollowKnight / Archipelago.HollowKnight

Hollow Knight mod enabling Archipelago multiworld interoperability.
MIT License
5 stars 10 forks source link

Remote custom skills (and other items) are loaded in the local save #133

Closed BadMagic100 closed 1 year ago

BadMagic100 commented 1 year ago

Describe the bug When AP creates placements, items known to finder are created and placed as the usual item type to preserve preferred containers and UI defs. However, placed items are loaded, which means that any side effects of Load still take place. To give a concrete example, if a player did not randomize swim or elevator pass, but someone else's swim or elevator pass is placed in their world, they will get locked out of swimming or elevator-ing permanently.

To Reproduce Steps to reproduce the behavior:

  1. Rando elevator pass with one yaml and don't randomize it in another. Force ePass to be non-local.
  2. In the second player's game, observe that the elevators cannot be ridden.

Expected behavior The elevator pass (or other custom skills) should be not be placed, and the player without the ePass should be able to ride elevators.

Additional context There should probably be some special handling here for HK items in a different slot. Ideally, you just copy the UIDef/container onto a do-nothing item (I'd advise to consult with Shadu to see how he handles this same issue in native multiworld)

BadMagic100 commented 1 year ago

Fixed by #153 good job github