Closed eldri7ch closed 1 year ago
The tracker makes no assumptions other than reading locks, so this must be a bug. Will look into it.
Since at this point this is a straight up romhack not just a randomizer I can't dynamically generate out of logic locks or it will break something like Force of Echo. I will have to turn off ool display for non-native presets. Unless you encode that into the preset with another array. I guess I can support both options. Native presets will use Speedrun as a base for ool checks, non native presets will clear ool and accept an optional array with the key "lockLocationAllowed".
Are we talking about something like this?
{ "location": "Ghost Card", "comment": "Requires flight", "locks": [ "Soul of Bat", "Gravity Boots + Leap Stone", "Form of Mist + Power of Mist" ], "lockLocationAllowed": [ "Leap Stone" ] }
Where the "out of logic" possibility is provided outright? If so, I can definitely provide that. The only assurance we need is that something like this demonstrate that layer zero be accepted as something similar to this:
, { "location": "Mormegil", "comment": "Require's at least Leap Stone", "locks": [ "Leap Stone", "Gravity Boots", "Soul of Bat", "Form of Mist + Power of Mist" ], "escapeRequires": [ "Soul of Bat", "Leap Stone", "Gravity Boots", "Form of Mist + Power of Mist" ], "lockLocationAllowed": [
]
}
No no no, exact same thing as the existing lockLocation array, except those locks would be the allowed out-of-logic checks and ignored by the randomizer.
OK, so a separate array that is ignored by the randomizer and identifies what the out of logic for each check would be. That's a great idea.
Yes. The way I do allowed checks is by simply parsing the speedrun preset, which works for all non-romhacky presets. In fact that's why speedrun contains all locations even though it uses guarded.
Let me throw something together and I'll attach the new file.
If the minimum requirement for the check means that there is no out-of-logic, do I just leave the logic the same as in the "lockLocation" list?
I would leave it blank, but it would have the same effect.
This has the "lockLocationAllowed" section at the bottom. It should be noted that Granfaloon is out of logic with 0 relics in this preset. I left the requirements that were HARD required for each new check where they are in the normal list in case that helps.
Can you send over a ppf so that I can do some testing.
Why did you add Holy Glasses to all the allowed checks in 1st castle? Other than that it seems to work as intended.
By the way this branch was meant to be used with open, in my testing it worked fine. https://github.com/TalicZealot/SotN-Randomizer/tree/randomize-starting-location
Added in 1.6.3
Why did you add Holy Glasses to all the allowed checks in 1st castle? Other than that it seems to work as intended.
I might have been hungry and not paid attention. Do I need to send an updated file?
It's live so you can test it locally.
I just loaded a seed and it's pulling the incorrect logic for Demon Card, Leap Stone, Form of Mist, and Merman Statue. They should be in logic at layer 0. Mormegil is out of Logic at Layer 0 and that is correct.
Would it help if I outright removed new layer 0 checks in the Allowed section?
I would have to see the preset file.
Oh they are missing completely, yes add them to "lockLocation" with an empty lock. Like we discssed here https://github.com/TalicZealot/SotnRandoTools/pull/32#issuecomment-1741826890
They're already added there.
I see what's going on, gonna patch it.
Ok this should be it this time.
Thanks! Works great!
I am attaching the JSON for Aperture, which significantly changes the logic of the castle. There are some issues where the tracker, because it assumes no changes to the tile maps of the castle are happening, says that certain checks are our of logic when, in fact, they are not even accessible at all.
Example: There is a Jewel of Open door at Skill of Wolf. The tracker reads the file and sees that Jewel of Open is required in logic but "knows" that Skill of Wolf can be accessed with only Gravity Boots. If a player has Gravity Boots, the tracker marks the check as an 'out of logic' check because the logic of the JSON doesn't 100% match the vanilla layout of the castle.
I don't expect the tracker to be able to read tile and entity edits directly from the JSON, so if asking for the Out of Logic issue to be resolved is beyond reason, I don't mind. I would settle for just having the JSON distributed with the tracker, in the Presets folder.
aperture.json