ArchipelagoMW / Archipelago

Archipelago Multi-Game Randomizer and Server
https://archipelago.gg
Other
431 stars 565 forks source link

Core: Allows Meta.yaml to add triggers to individual yaml's categories. #3556

Open Vertraic opened 1 month ago

Vertraic commented 1 month ago

What is this fixing or adding?

Currently, the only game category option that meta cannot interact with is triggers. This change allows triggers in a game category inside a meta.yaml to be appended to the player yaml's game trigger options. Should "triggers:" not be present in the player yaml, it will be added.

Since this is appending to the triggers option in the game's local options, the meta.yaml triggers will always make the final changes to the player settings, as opposed to the meta.yaml's direct changes which can be overwritten by local triggers.

This will allow hosts to force/disallow specific setting without the chance to miss an individual yaml's options. For example: adding triggers to DLCQuest: to force coinbundlesize to 5, if it is less than 5 (requires 4 triggers for size 1, 2, 3, and 4 currently. If my trigger changes are approved, this will be compatible and will allow "if coinbundlesize < 5")

How was this tested?

Triggers were placed in the "A Link to the Past" category of 10 yamls, as well as the same category in meta.yaml. All triggers from both activated as expected based off the values selected. When the triggers for the player yamls were placed in root, both they, and the meta.yaml triggers still worked as expected.

If this makes graphical changes, please attach screenshots.

No graphical changes