Archipelago
Archipelago copied to clipboard
WebHost, Core: Move item and location descriptions to `WebWorld` responsibilities.
What is this fixing or adding?
Moving these changes from World
to WebWorld
to remove responsibility of these from core to WebHost.
~~Also includes some optimizations.~~
How was this tested?
Migrated tests and ran tests. Also ensured functionality remained the same.
If this makes graphical changes, please attach screenshots.
The implementation is flawed, it tries to control what should be a ClassVar
using @property
getters and setters (which affect an instance attribute).
Debugging reveals that
-
DarkSouls3World.web.item_descriptions
contains only "Cinders" -
DarkSouls3World.web._item_descriptions
contains only "Everything"
That is because the initial assignment goes directly to the type and creates item_descriptions
there (overwriting the property
with a plain dict
), while the property setter ended up never being called and therefore _item_descriptions
was never modified.
You'll have to rethink that whole design. (Using @classmethod @property
isn't a viable alternative because that was only supported in a narrow interval of Python versions and has since been forbidden again.)
Updated PR and fixed merge conflicts.