Updated Rando v3 and v4 checklist (markdown)

Malkierian 2024-08-18 11:30:00 -07:00
commit 4ee3c7c4c3

@ -1,3 +1,5 @@
This is what's expected to be part of v3. Things blocking upstream merging are listed at the bottom. Anything expected to be post-v3 is [here](https://github.com/HarbourMasters/Shipwright/wiki/Randomizer-post%E2%80%90v3)
## 1. Source Interaction ## 1. Source Interaction
- [x] Different approach for giving items, one that can be used for all (most?) checks - rando changes branch is the proof of concept for this - [x] Different approach for giving items, one that can be used for all (most?) checks - rando changes branch is the proof of concept for this
@ -6,7 +8,7 @@
## 2. Data Optimization/Unification ## 2. Data Optimization/Unification
- [ ] Unify all randomizer data structures under one umbrella (ala CheckTrackerData to CheckData) ***(partially complete, tracker data is all that's left)*** - [ ] Unify all randomizer data structures under one umbrella (ala CheckTrackerData to CheckData) ***(mostly complete, tracker data is all that's left)***
- [x] De-duplication - Creating a new option, check, item, etc should be as seamless as possible, I should only need to define things in one centralized place, one time - [x] De-duplication - Creating a new option, check, item, etc should be as seamless as possible, I should only need to define things in one centralized place, one time
- [ ] Investigate removal of extendedVanillaItemTable (move to randomizerItemTable) - [ ] Investigate removal of extendedVanillaItemTable (move to randomizerItemTable)
- [x] Internals of randomizer playthrough utilize gSaveContext to simulate game playthrough (this will have benefits post-generation, and simplify some of our code, i think) - [x] Internals of randomizer playthrough utilize gSaveContext to simulate game playthrough (this will have benefits post-generation, and simplify some of our code, i think)
@ -16,31 +18,16 @@
- [x] Also, we should be able to make it so that the hints and such can be created on file create, or even on the fly, instead of relying on hint text in the spoiler, that way people who share spoilers across primary languages can still get the rando texts in their language. - [x] Also, we should be able to make it so that the hints and such can be created on file create, or even on the fly, instead of relying on hint text in the spoiler, that way people who share spoilers across primary languages can still get the rando texts in their language.
- [x] Spoiler file generation becomes optional - [x] Spoiler file generation becomes optional
- [x] Spoiler file settings section 1:1 with randomizer setting cvars - [x] Spoiler file settings section 1:1 with randomizer setting cvars
- [ ] Change spoiler logs to have both human friendly data, and computer friendly data, so we don't have to worry about doing parsing. Or at least have the "strings" be defined once so that typos aren't possible between parsing and spoiler log generation. - [ ] Change spoiler logs to have both human friendly data, and computer friendly data, so we don't have to worry about doing parsing. Or at least have the "strings" be defined once so that typos aren't possible between parsing and spoiler log generation. ***(partially complete)***
- [ ] Name parity with Archipelago (for spoiler file loading)
## Logic ## Logic
- [ ] Rewrite logic to work based on a "room by room" basis with clear indications as to what is needed to beat the room. E.g. rooms which need certain enemies defeated to progress will have Can\_Defeat(ENEMY\_STALFOS, numEnemies). - [ ] Rewrite logic to work based on a "room by room" basis with clear indications as to what is needed to beat the room. E.g. rooms which need certain enemies defeated to progress will have Can\_Defeat(ENEMY\_STALFOS, numEnemies).
- [ ] Tie enemy rando to logic
## General Rework: ## General Rework:
- [x] Swap item checks to CanUse to allow for glitch manipulation of conditions (timeless equipment or equip swap situations) - [x] Swap item checks to CanUse to allow for glitch manipulation of conditions (timeless equipment or equip swap situations)
- [ ] Ice traps -\> traps - [ ] Ice traps -\> traps
- [ ] Support latest DJ formats for sequences (i think they allow custom samples now?)
## Playthrough Rework
- [ ] Refactor rando code to align with n64 code patterns/structures (not features) ***(partially complete)***
- One example is playthrough calculation/multiworld considerations so that things like Archipelago or multi-world are easier/free thanks to n64 kicking things off
- [ ] Built-in multi-playthrough logic support (multi world)
## **Eventual Glitch Logic:**
- [ ] V1 - Include all major glitches as individual toggles
- ^ excluding wrong warping/void warping/text transfer glitch/item manipulation/srm etc
- [ ] V2 would aim to have closed/challenge option where woth items are delayed in the playthrough
## General Gameplay ## General Gameplay
@ -51,11 +38,10 @@
- [ ] Hint distribution/options parity with zootr (I'm not super familiar with this, but people always complain "our hints arent like zootrs") - [ ] Hint distribution/options parity with zootr (I'm not super familiar with this, but people always complain "our hints arent like zootrs")
- [ ] Move gossip stone hints out of RandomizerCheck structures - [ ] Move gossip stone hints out of RandomizerCheck structures
- [ ] Dynamic hint - dynamically finds a woth item within reach
## Developer Experience ## Developer Experience
- json junk hints (possibly loaded from soh.otr during seed gen?) - [ ] json junk hints (possibly loaded from soh.otr during seed gen?)
- [ ] Text box custom syntax ([GH discussion](https://github.com/HarbourMasters/Shipwright/discussions/3691)) - [ ] Text box custom syntax ([GH discussion](https://github.com/HarbourMasters/Shipwright/discussions/3691))
- [ ] Logic testing framework? (n64 does snapshot testing for example) - [ ] Logic testing framework? (n64 does snapshot testing for example)
- Improvements to custom message system: - Improvements to custom message system:
@ -78,6 +64,6 @@
- [ ] Fix interior entrance shuffle; failing on Impa's House placement with cows on, requiring same region for second entrance - [ ] Fix interior entrance shuffle; failing on Impa's House placement with cows on, requiring same region for second entrance
- [ ] GetAccessibleLocations refactor (Pepper0ni) - [ ] GetAccessibleLocations refactor (Pepper0ni)
- [ ] Known breaking bugs - [ ] Known breaking bugs
- ^ deku tree entrance as adult (Archez) - [ ] - deku tree entrance as adult (Archez)
- ^ Mido broken; breaks closed forest? (Archez) - [ ] - Mido broken; breaks closed forest? (Archez)
- ^ fishing double gives (Pepper0ni) - [ ] - fishing double gives (Pepper0ni)