mirror of
https://github.com/MarioSpore/Grinch-AP.git
synced 2025-10-21 20:21:32 -06:00
b982e9ebb4eb3a370efb36860b8e51a80881d24a
2646 Commits
Author | SHA1 | Message | Date | |
---|---|---|---|---|
![]() |
d52827ebd2 |
Stardew Valley: Fix Crimsonfish region (#3687)
* - Add Unit test for all the fish that require a specific region to be reachable * - Move the crimsonfish to the tide pools region * - Improved the unit test to be more thorough, add extended family fish to the test * - Moved the son of crimsonfish to the correct region as well * FFMQ: Fix reset protection (#3710) * Revert reset protection * Fix reset protection --------- Co-authored-by: alchav <alchav@jalchavware.com> * - Take shipsanity moss out of shipsanity crops (#3709) * sc2: Removing unused dependency in requirements.txt (#3697) * sc2: Removing unused dependency in requirements.txt * sc2: Add missing newline in requirements.txt Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> --------- Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> * WebHost: Fix NamedRange values clamping to the range (#3613) If a NamedRange has a `special_range_names` entry outside the `range_start` and `range_end`, the HTML5 range input will clamp the submitted value to the closest value in the range. These means that, for example, Pokemon RB's "HM Compatibility" option's "Vanilla (-1)" option would instead get posted as "0" rather than "-1". This change updates NamedRange to behave like TextChoice, where the select element has a `name` attribute matching the option, and there is an additional element to be able to provide an option other than the select element's choices. This uses a different suffix of `-range` rather than `-custom` that TextChoice uses. The reason is we need some way to decide whether to use the custom value or the select value, and that method needs to work without JavaScript. For TextChoice this is easy, if the custom field is empty use the select element. For NamedRange this is more difficult as the browser will always submit *something*. My choice was to only use the value from the range if the select box is set to "custom". Since this only happens with JS as "custom' is hidden, I made the range hidden under no-JS. If it's preferred, I could make the select box hidden instead. Let me know. This PR also makes the `js-required` class set `display: none` with `!important` as otherwise the class wouldn't work on any rule that had `display: flex` with more specificity than a single class. * Timespinner: migrate to new options api and correct random (#2485) * Implemented new options system into Timespinner * Fixed typo * Fixed typo * Fixed slotdata maybe * Fixes * more fixes * Fixed failing unit tests * Implemented options backwards comnpatibility * Fixed option fallbacks * Implemented review results * Fixed logic bug * Fixed python 3.8/3.9 compatibility * Replaced one more multiworld option usage * Update worlds/timespinner/Options.py Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> * Updated logging of options replacement to include player name and also write it to spoiler Fixed generation bug Implemented review results --------- Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> * Core: migrate item links out of main (#2914) * Core: move item linking out of main * add a test that item link option correctly validates * remove unused fluff --------- Co-authored-by: NewSoupVi <57900059+NewSoupVi@users.noreply.github.com> * Core: Rework accessibility (#1481) * rename locations accessibility to "full" and make old locations accessibility debug only * fix a bug in oot * reorder lttp tests to not override its overrides * changed the wrong word in the dict * :forehead: * update the manual lttp yaml * use __debug__ * update pokemon and messenger * fix conflicts from 993 * fix stardew presets * add that locations may be inaccessible to description * use reST format and make the items description one line so that it renders correctly on webhost * forgot i renamed that * add aliases for back compat * some cleanup * fix imports * fix test failure * only check "items" players when the item is progression * Revert "only check "items" players when the item is progression" This reverts commit ecbf986145e6194aa99a39c481d8ecd0736d5a4c. * remove some unnecessary diffs * CV64: Add ItemsAccessibility * put items description at the bottom of the docstring since that's it's visual order * : * rename accessibility reference in pokemon rb dexsanity * make the rendered tooltips look nicer * Shivers: New features and removes two missed options using the old options API (#3287) * Adds an option to have pot pieces placed local/non-local/anywhere Shivers nearly always finishes last in multiworld games due to the fact you need all 20 pot pieces to win and the pot pieces open very few location checks. This option allows the pieces to be placed locally. This should allow Shivers to be finished earlier. * New option: Choose how many ixupi captures are needed for goal completion New option: Choose how many ixupi captures are needed for goal completion * Fixes rule logic for location 'puzzle solved three floor elevator' Fixes rule logic for location 'puzzle solved three floor elevator'. Missing a parenthesis caused only the key requirement to be checked for the blue maze region. * Merge branch 'main' of https://github.com/GodlFire/Shivers * Revert "Merge branch 'main' of https://github.com/GodlFire/Shivers" This reverts commit bb08c3f0c2ef148fd24d7c7820cdfe936f7196e2. * Fixes issue with office elevator rule logic. * Bug fix, missing logic requirement for location 'Final Riddle: Guillotine Dropped' Bug fix, missing logic requirement for location 'Final Riddle: Guillotine Dropped' * Moves plaque location to front for better tracker referencing. * Tiki should be Shaman. * Hanging should be Gallows. * Merrick spelling. * Clarity change. * Changes new option to use new option API Changes new option to use new option API * Added sub regions for Ixupi -Added sub regions for Ixupi and moved ixupi capture checks into the sub region. -Added missing wax capture possible spot in Shaman room * Adds option for ixupi captures to be priority locations Adds option for ixupi captures to be priority locations * Consistency Consistency * Changes ixupi captures priority to default on toggle Changes ixupi captures priority to default on toggle * Docs update -Updated link to randomizer -Update some text to reflect the latest functionality -Replaced 'setting' with 'option' * New features/bug fixes -Adds an option to have completed pots in the item pool -Moved subterranean world information plaque to maze staircase * Cleanup Cleanup * Fixed name for moved location When moving a location and renaming it I forgot to fix the name in a second spot. * Squashed commit of the following: commit 630a3bdfb9414d8c57154f29253fce0cf67b6436 Merge: 8477d3c8 |
||
![]() |
0e55ddc7cf |
LADX: Filter braces out of player names for hint text (#3831)
* Filter braces out of player names for hint text * Filter out another spot |
||
![]() |
ab5b986716 | Pokemon Emerald: Move magma grunt (#3836) | ||
![]() |
97c313c1c4 |
APSudoku: Update setup guide, remove extraneous options page link (#3849)
* APSudoku: Update setup guide, remove extraneous options page link * Apply suggestions from code review Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> * Apply suggestions from code review Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> * clean up instructions * IP -> address --------- Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> |
||
![]() |
701a7faa71 |
AHIT: Fix Time Rift - Alpine Skyline entrance logic (#3851)
The `Time Rift - Alpine Skyline` region was incorrectly accessible from Alpine Free Roam without Hookshot Badge or Umbrella. One of the two regions that connects to the `Time Rift - Alpine Skyline` region is `Alpine Free Roam`. The problem here is that `Alpine Free Roam` corresponds to the intro section of Alpine Free Roam, but the Time Rift is actually found in-game in what equates to the `Alpine Skyline Area` region. The entrance connecting `Alpine Free Roam` to `Alpine Skyline Area` (`AFR -> Alpine Skyline Area`) requires the Hookshot Badge (and Umbrella if umbrella logic is enabled), but because the entrance to `Time Rift - Alpine Skyline` is placed in `Alpine Free Roam` instead, it was missing the hookshot/umbrella requirements. The missing Hookshot Badge and Umbrella requirements have been added to `Rules.set_rift_rules()` and `Rules.set_default_rift_rules()`. The entrances to the `Time Rift - Curly Tail Trail` and `Time Rift - The Twilight Bell` regions are also in the `Alpine Free Roam` region, but the logic for both of those entrances require event items that are only accessible from the `Alpine Skyline Area` region. |
||
![]() |
9a4e84efdc |
AHIT: Fix moderate logic rules using add_rule instead of set_rule (#3850)
The moderate logic for the Mafia Town Clock Tower Chest and Top of Ruined Tower with nothing, and for clearing Rock the Boat without Ice Hat were mistakenly using `add_rule` instead of `set_rule`, which was adding the condition of `and True` which had no effect. This patch corrects these moderate logic rules to use `set_rule` instead. |
||
![]() |
906b23088c |
The Witness: Rules Optimisation (#3617)
* Attempt at optimizing rules * docstrings * Python 3.8 * Lasers optimisation * Simplify conversion code and make it even faster * mypy * ruff * Neat * Add redirect to the other two modes * Update WitnessLogic.txt * Update WitnessLogicExpert.txt * Update WitnessLogicVanilla.txt * Use NamedTuple * Ruff * mypy thing * Mypy stuff * Move Redirect Event to Desert Region so it has a better name |
||
![]() |
0fb69dce33 | Pokemon Emerald: Fix map update sending to all trackers (#3846) | ||
![]() |
e99f027b42 |
Muse Dash: Update to 4.7.0 - Let's Rhythm Jam! (#3837)
* Update to Muse Dash 4.7.0 Muse Dash - Let's Rhythm Jam! * Add the replaced song to the removed list. * Oops add the other secret song to this list. * Add trailing comma Co-authored-by: Doug Hoskisson <beauxq@users.noreply.github.com> --------- Co-authored-by: Doug Hoskisson <beauxq@users.noreply.github.com> |
||
![]() |
dddffa1660 | LTTP: fix own_dungeon setting from not being placed in the player's own world (#3816) | ||
![]() |
83367c6946 | ALttP: Fix accessibility (locations -> full) (#3801) | ||
![]() |
d1a7fd7da1 | Pokemon Emerald: Send current map to trackers (#3726) | ||
![]() |
6f617e302d | Launcher: Update message that displays when installing a custom apworld for a game in main (#3607) | ||
![]() |
35c9061c9c |
The Witness: Switch to world.player_name (#3693)
* lint * player_name * oops lmao * shorten |
||
![]() |
e61d521ba8 |
The Witness: Shuffle Dog (#3425)
* Town Pet the Dog * Add shuffle dog to options presets * I cri evritim * I guess it's as good a time as any * :( * fix the soft conflict * add all the shuffle dog options to some of the unit tests bc why not * Laser Panels are just 'General' now, I'm pretty sure * Could I really call it allsanity? |
||
![]() |
6efa065867 | Kingdom Hearts: Make Ceiling Division Human-Readable #3839 | ||
![]() |
56dbba6a31 |
Celeste 64: Typo #3840
oops |
||
![]() |
64b654d42e |
Core, some worlds: Rename sweep_for_events to sweep_for_advancements (#3571)
* Rename sweep_for_events to sweep_for_advancements * more event->advancement renames * oops accidentally deleted the deprecation thing in the force push * Update TestDungeon.py * Update BaseClasses.py * Update BaseClasses.py * oops * utils.deprecate * treble, you had no idea how right you were * Update test_panel_hunt.py * Update BaseClasses.py Co-authored-by: Fabian Dill <Berserker66@users.noreply.github.com> --------- Co-authored-by: Fabian Dill <Berserker66@users.noreply.github.com> |
||
![]() |
74aab81f79 | Purge the world: multiworld evil from osrs (#3751) | ||
![]() |
f390b33c17 |
The Witness: Ban Excluded Panels from Panel Hunt (#3818)
* excluded panels should not be picked by panel hunt * ban excluded panels from panel hunt * Get rid of an unused variable |
||
![]() |
31852801c9 |
LTTP: Fix a bug in Triforce Pieces Mode: Extra (#3784)
When triforce_pieces_mode is set to "extra", the number of Triforce pieces in the pool should be equal to the number required plus the number extra. The number available was being used in this calculation, instead of the number required. |
||
![]() |
3cdcb8c455 |
Yacht Dice: setup: change release-link to latest (#3827)
On the installation page, link to the latest release, instead of the page with all releases |
||
![]() |
48c6a6fb4c |
YachtDice: implement new game (#3482)
* Add the yacht dice (from other git) world to the yacht dice fork * Update .gitignore * Removed zillion because it doesn't work * Update .gitignore * added zillion again... * Now you can have 0 extra fragments * Added alt categories, also options * Added item categories * Extra categories are now working! 🐶 * changed options and added exceptions * Testing if I change the generate.py * Revert "Testing if I change the generate.py" This reverts commit 7c2b3df6170dcf8d8f36a1de9fcbc9dccdec81f8. * ignore gitignore * Delete .gitignore * Update .gitignore * Update .gitignore * Update logic, added multiplicative categories * Changed difficulties * Update offline mode so that it works again * Adjusted difficulty * New version of the apworld, with 1000 as final score, always Will still need to check difficulty and weights of adding items. Website is not ready yet, so this version is not usable yet :) * Changed yaml and small bug fixes Fix when goal and max are same Options: changed chance to weight * no changes, just whitespaces * changed how logic works Now you put an array of mults and the cpu gets a couple of tries * Changed logic, tweaked a bit too * Preparation for 2.0 * logic tweak * Logic for alt categories properly now * Update setup_en.md * Update en_YachtDice.md * Improve performance of add_distributions * Formatting style * restore gitignore to APMW * Tweaked generation parameters and methods * Version 2.0.3 manual input option max score in logic always 2.0.3 faster gen * Comments and editing * Renamed setup guide * Improved create_items code * init of locations: remove self.event line * Moved setting early items to generate_early * Add my name to CODEOWNERS * Added Yacht Dice to the readme in list of games * Improve performance of Yacht Dice * newline * Improve typing * This is actually just slower lol * Update worlds/yachtdice/Items.py Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> * Apply suggestions from code review Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> * Update Options.py * Styling * finished text whichstory option * removed roll and rollfragments; not used * import; worlds not world :) * Option groups! * ruff styling, fix * ruff format styling! * styling and capitalization of options * small comment * Cleaned up the "state_is_a_list" a little bit * RUFF 🐶 * Changed filling the itempool for efficiency Now, we start with 17 extra items in the item pool, it's quite likely you need at least 17 items (~80%?). And then afterwards, we delete items if we overshoot the target of 1000, and add items if we haven't reached an achievable score of 1000 yet. Also, no need to recompute the entire logic when adding points. * 🐶 * Removed plando "fix" * Changed indent of score multiplier * faster location function * Comments to docstrings * fixed making location closest to goal_score be goal_score * options format * iterate keys and values of a dict together * small optimization ListState * faster collection of categories * return arguments instead of making a list (will 🐶 later) * Instead of turning it into a tuple, you can just make a tuple literal * remove .keys() * change .random and used enumerate * some readability improvements * Remove location "0", we don't use that one * Remove lookup_id_to_name entirely I for sure don't use it, and as far as I know it's not one of the mandatory functions for AP, these are item_name_to_id and location_name_to_id. * .append instead of += for single items, percentile function changed Also an extra comment for location ids. * remove ) too many * Removed sorted from category list * Hash categories (which makes it slower :( ) Maybe I messed up or misunderstood... I'll revert this right away since it is 2x slower, probably because of sorted instead of sort? * Revert "Hash categories (which makes it slower :( )" This reverts commit 34f2c1aed8c8813b2d9c58896650b82a810d3578. * temporary push: 40% faster generation test Small changes in logic make the generation 40% faster. I'll have to think about how big the changes are. I suspect they are rather limited. If this is the way to go, I'll remove the temp file and redo the YachtWeights file, I'll remove the functions there and just put the new weights here. * Add Points item category * Reverse changes of bad idea :) * ruff 🐶 * Use numpy and pmf function to speed up gen Numpy has a built-in way to sum probability mass functions (pmf). This shaves of 60% of the generation time :D * Revert "Use numpy and pmf function to speed up gen" This reverts commit 9290191cb323ae92321d6c2cfcfe8c27370f439b. * Step inbetween to change the weights * Changed the weights to make it faster 135 -> 81 seconds on 100 random yamls * Adjusted max_dist, split dice_simulation function * Removed nonlocal and pass arguments instead * Change "weight-lists" to Dict[str, float] * Removed the return from ini_locations. Also added explanations to cat_weights * Choice options; dont'use .value (will ruff later) * Only put important options in slotdata * 🐶 * Add Dict import * Split the cache per player, limit size to 400. * 🐶 * added , because of style * Update apworld version to 2.0.6 2.0.5 is the apworld I released on github to be tested I never separately released 2.0.4. * Multiple smaller code improvements - changed names in YachtWeights so we don't need to translate them in Rules anymore - we now remember which categories are present in the game, and also put this in slotdata. This we do because only one of two categories is present in a game. If for some reason both are present (plando/getitem/startinventory), we now know which category to ignore - * 🐶 ruff * Mostly minimize_extra_items improvements - Change logic, generation is now even faster (0.6s per default yaml). - Made the option 'minimize_extra_items' do a lot more, hopefully this makes the impact of Yacht Dice a little bit less, if you want that. Here's what is also does now: - you start with 2 dice and 2 rolls - there will be less locations/items at the start of you game * ruff 🐶 * Removed printing options * Reworded some option descriptions --------- Co-authored-by: NewSoupVi <57900059+NewSoupVi@users.noreply.github.com> Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> |
||
![]() |
eaa8156061 |
MM2: fix Wily 5 Time Stopper rule (#3824)
* fix time stopper rule * that was the entirely wrong rule actually |
||
![]() |
54a7bb5664 |
Blasphemous: Total overhaul (#3355)
* Blasphemous: WIP overhaul * Entrance rule mistake * stuff * Getting closer * Real?? Maybe?? * Don't fail me now 🙏 * Add starting location tests * More tests (it still doesn't work actually 😔) * REAL * Add unreachable regions to test_reachability.py * PR ready - Remove unused functions from init - Use group exclusive functions in rules - Style changes * Bump required client version * Clean up unused imports * Change slot data * Review fixes - Prevent strength calculations from including excess items - Add new lines to ends of files - Fix missed deprecated option and random usage in init * Update option docstrings, add groups * Add preprocessor files * Update option docstrings again actually * Update player strength calculation * Rename group methods * Fix missing logic for RESCUED_CHERUB_06 * Register indirect conditions * Register indirect conditions (part 2) * Update extracted logic, change slot data key * Add region to excluded list * A capital letter * Use camelCase keys in preprocessor * Write some of new setup guide * Remove indents before list points * Change locationinfo to list of dictonaries * Finish docs, update extractor config and data * Mark region_data.py as generated * Suggested changes * More suggested changes * Suggested changes again - Use OptionError - Create list of disabled locations before looping - Check if options are equal to str instead of int - Clean up start location override - Reword some of setup guide - Organize location list - Remove unnecessary escaped quotes from option docstrings - Add world type to test base * C# moment * Requested changes * Update .gitattributes --------- Co-authored-by: NewSoupVi <57900059+NewSoupVi@users.noreply.github.com> |
||
![]() |
0e6e359747 |
Mega Man 2: Implement New Game (#3256)
* initial (broken) commit * small work on init * Update Items.py * beginning work, some rom patches * commit progress from bh branch * deathlink, fix soft-reset kill, e-tank loss * begin work on targeting new bhclient * write font * definitely didn't forget to add the other two hashes no * update to modern options, begin colors * fix 6th letter bug * palette shuffle + logic rewrite * fix a bunch of pointers * fix color changes, deathlink, and add wily 5 req * adjust weapon weakness generation * Update Rules.py * attempt wily 5 softlock fix * add explicit test for rbm weaknesses * fix difficulty and hard reset * fix connect deathlink and off by one item color * fix atomic fire again * de-jank deathlink * rewrite wily5 rule * fix rare solo-gen fill issue, hopefully * Update Client.py * fix wily 5 requirements * undo fill hook * fix picopico-kun rules * for real this time * update minimum damage requirement * begin move to procedure patch * finish move to APPP, allow rando boobeam, color updates * fix color bug, UT support? * what do you mean I forgot the procedure * fix UT? * plando weakness and fixes * sfx when item received, more time stopper edge cases * Update test_weakness.py * fix rules and color bug * fix color bug, support reduced flashing * major world overhaul * Update Locations.py * fix first found bugs * mypy cleanup * headerless roms * Update Rom.py * further cleanup * work on energylink * el fixes * update to energylink 2.0 packet * energylink balancing * potentially break other clients, more balancing * Update Items.py * remove startup change from basepatch we write that in patch, since we also need to clean the area before applying * el balancing and feedback * hopefully less test failures? * implement world version check * add weapon/health option * Update Rom.py * x/x2 * specials * Update Color.py * Update Options.py * finally apply location groups * bump minor version number instead * fix duplicate stage sends * validate wily 5, tests * see if renaming fixes * add shuffled weakness * remove passwords * refresh rbm select, fix wily 5 validation * forgot we can't check 0 * oops I broke the basepatch (remove failing test later) * fix solo gen fill error? * fix webhost patch recognition * fix imports, basepatch * move to flexibility metric for boss validation * special case boobeam trap * block strobe on stage select init * more energylink balancing * bump world version * wily HP inaccurate in validation * fix validation edge case * save last completed wily to data storage * mypy and pep8 cleanup * fix file browse validation * fix test failure, add enemy weakness * remove test seed * update enemy damage * inno setup * Update en_Mega Man 2.md * setup guide * Update en_Mega Man 2.md * finish plando weakness section * starting rbm edge case * remove * imports * properly wrap later weakness additions in regen playthrough * fix import * forgot readme * remove time stopper special casing since we moved to proper wily 5 validation, this special casing is no longer important * properly type added locations * Update CODEOWNERS * add animation reduction * deprioritize Time Stopper in rush checks * special case wily phase 1 * fix key error * forgot the test * music and general cleanup * the great rename * fix import * thanks pycharm * reorder palette shuffle * account for alien on shuffled weakness * apply suggestions * fix seedbleed * fix invalid buster passthrough * fix weakness landing beneath required amount * fix failsafe * finish music * fix Time Stopper on Flash/Alien * asar pls * Apply suggestions from code review Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> * world helpers * init cleanup * apostrophes * clearer wording * mypy and cleanup * options doc cleanup * Update rom.py * rules cleanup * Update __init__.py * Update __init__.py * move to defaultdict * cleanup world helpers * Update __init__.py * remove unnecessary line from fill hook * forgot the other one * apply code review * remove collect * Update rules.py * forgot another --------- Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> |
||
![]() |
c4e7b6ca82 |
The Witness: Add "vague" hints making use of other games' region names and location groups (#2921)
* Vague hints work! But, the client will probably reveal some of the info through scouts atm * Fall back on Everywhere if necessary * Some of these failsafes are not necessary now * Limit region size to 100 as well * Actually... like this. * Nutmeg * Lol * -1 for own player but don't scout * Still make always/priority ITEM hints * fix * uwu notices your bug * The hints should, like, actually work, you know? * Make it a Toggle * Update worlds/witness/hints.py Co-authored-by: Bryce Wilson <gyroscope15@gmail.com> * Update worlds/witness/hints.py Co-authored-by: Bryce Wilson <gyroscope15@gmail.com> * Make some suggested changes * Make that ungodly equation a bit clearer in terms of formatting * make that not sorted * Add a warning about the feature in the option tooltip * Make using region names experimental * reword option tooltip * Note about singleplayer * Slight rewording again * Reorder the order of priority a bit * this condition is unnecessary now * comment * No wait the order has to be like this * Okay now I think it's correct * Another comment * Align option tooltip with new behavior * slight rewording again * reword reword reword reword * - * ethics * Update worlds/witness/options.py Co-authored-by: Bryce Wilson <gyroscope15@gmail.com> * Rename and slight behavior change for local hints * I think I overengineered this system before. Make it more consistent and clear now * oops I used checks by accident * oops * OMEGA OOPS * Accidentally commited a print statemetn * Vi don't commit nonsense challenge difficulty impossible * This isn't always true but it's good enough * Update options.py * Update worlds/witness/options.py Co-authored-by: Scipio Wright <scipiowright@gmail.com> * Scipio :3 * switch to is_event instead of checking against location.address * oop * Update test_roll_other_options.py * Fix that unit test problem lol * Oh is this not fixed in the apworld? --------- Co-authored-by: Bryce Wilson <gyroscope15@gmail.com> Co-authored-by: Scipio Wright <scipiowright@gmail.com> |
||
![]() |
f253dffc07 |
The Witness: Panel Hunt Mode (#3265)
* Add panel hunt options * Make sure all panels are either solvable or disabled in panel hunt * Pick huntable panels * Discards in disable non randomized * Set up panel hunt requirement * Panel hunt functional * Make it so an event can have multiple names * Panel hunt with events * Add hunt entities to slot data * ruff * add to hint data, no client sneding yet * encode panel hunt amount in compact hint data * Remove print statement * my b * consistent * meh * additions for lcient * Nah * Victory panels ineligible for panel hunt * Panel Hunt Postgame option * cleanup * Add data generation file * pull out set * always disable gate ep in panel hunt * Disallow certain challenge panels from being panel hunt panels * Make panelhuntpostgame its own function, so it can be called even if normal postgame is enabled * disallow PP resets from panel hunt * Disable challenge timer and elevetor start respectively in disable hunt postgame * Fix panelhunt postgame * lol * When you test that the bug is fixed but not that the non-bug is not unfixed * Prevent Obelisks from being panel hunt panels * Make picking panels for panel hunt a bit more sophisticated, if less random * Better function maybe ig * Ok maybe that was a bit too much * Give advanced players some control over panel hunt * lint * correct the logic for amount to pick * decided the jingle thing was dumb, I'll figure sth out client side. Same area discouragement is now a configurable factor, and the logic has been significantly rewritten * comment * Make the option visible * Safety * Change assert slightly * We do a little logging * number tweak & we do a lil logging * we do a little more logging * Ruff * Panel Hunt Option Group * Idk how that got here * Update worlds/witness/options.py Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> * Update worlds/witness/__init__.py Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> * remove merge error * Update worlds/witness/player_logic.py Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> * True * Don't have underwater sliding bridge when you have above water sliding bridge * These are not actually connected lol * get rid of unnecessary variable * Refactor compact hint function again * lint * Pull out Entity Hunt Picking into its own class, split it into many functions. Kept a lot of the comments tho * forgot to actually add the new file * some more refactoring & docstrings * consistent naming * flip elif change * Comment about naming * Make static eligible panels a constant I can refer back to * slight formatting change * pull out options-based eligibility into its own function * better text and stuff * lint * this is not necessary * capitalisation * Fix same area discouragement 0 * Simplify data file generation * Simplify data file generation * prevent div 0 * Add Vault Boxes -> Vault Panels to replacements * Update options.py * Update worlds/witness/entity_hunt.py Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> * Update entity_hunt.py * Fix some events not working * assert * remove now unused function * lint * Lasers Activate, Lasers don't Solve * lint * oops * mypy * lint * Add simple panel hunt unit test * Add Panel Hunt Tests * Add more Panel Hunt Tests * Disallow Box Short for normal panel hunt --------- Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> |
||
![]() |
c010c8c938 |
Minecraft: Update to new options system. (#3765)
* Move to new options system. switch to using self.random reformat rules file. * further reformats * fix tests to use new options system. * fix slot data to not use self.multiworld * I hate python * new starting_items docstring to prepare for 1.20.5+ item components. fix invalid json being output to starting_items * more typing fixes. * stupid quotes around type declarations * removed unused variable in ItemPool.py change null check in Structures.py * update rules "self" variable to a "world: MinecraftWorld" variable * get key, and not value for required bosses. |
||
![]() |
182f7e24e5 |
The Witness: Fix Tunnels Theater Flower EP Access Logic + Add Unit Test for it (and Expert PP2) (#3807)
* Tunnels Theater Flowers fix + Flowers&PP2 Unit Tests * copypaste * Can just do it like this * This is even better probably * Also do some cleanup :3 * God damnit |
||
![]() |
28a9709516 |
Kingdom Hearts: Implement New Game (#3201)
* Added Final Ansem Goal * Update __init__.py * Update Rules.py * New EotW logic * Update __init__.py * Update __init__.py * Update Items.py * Update Rules.py * Rename Location to be more meaningful, logic fixes * Removed Aerith locations * Change to allow randomized keyblade stats * Fixed incorrect option description. Fixed victory locations for alternative win condition settings * Commit * Lots of changes * Fixes * Fixes * Update Rules.py * Update Rules.py * Update Rules.py * Update Rules.py * Fixes * Update Rules.py * Update Rules.py * Update Options.py * Old Book is not required * Added Jungle Slider * Add Cid Check * Add Wonderland Book Check * Add OC Green Trinity * Add Inferno Band Event * Add Kurt Zisa Zantetsuken and Unknown EXP Necklace checks * Update Locations.py * Fix Final Ansem Goal * Update __init__.py * Update __init__.py * Add options to exclude super bosses and 100 acre wood * Fix puppies trp, remove cid check * Fix 100 Acre Wood Option * Material to Empty Bottle * Fixed rules, location names, etc * Fix super bosses * Add item + location groups, level sanity * Fix location and item group names * Add Bad Starting Weapons Option * Logic Error for 100 Acre Wood * Update Rules.py * Update __init__.py * Fixes related to randomized keyblade stats and super bosses * Credits and Fixes * Logic fixes, location name group changes * Update Options.py * Update worlds/kh1/__init__.py Co-authored-by: Scipio Wright <scipiowright@gmail.com> * Update worlds/kh1/__init__.py Co-authored-by: Scipio Wright <scipiowright@gmail.com> * Update worlds/kh1/docs/kh1_en.md Co-authored-by: Scipio Wright <scipiowright@gmail.com> * Update worlds/kh1/docs/en_Kingdom Hearts.md Co-authored-by: Scipio Wright <scipiowright@gmail.com> * Update .gitignore * Update CODEOWNERS * Update docs/CODEOWNERS Co-authored-by: Scipio Wright <scipiowright@gmail.com> * Fixed Atlantica item group name * Update CODEOWNERS * Update Client.py * Update Items.py * Update __init__.py Co-authored-by: Scipio Wright <scipiowright@gmail.com> * Update Rules.py Co-authored-by: Scipio Wright <scipiowright@gmail.com> * Update Rules.py Co-authored-by: Scipio Wright <scipiowright@gmail.com> * Update Rules.py Co-authored-by: Scipio Wright <scipiowright@gmail.com> * Update worlds/kh1/Rules.py Co-authored-by: Scipio Wright <scipiowright@gmail.com> * Update worlds/kh1/Rules.py Co-authored-by: Scipio Wright <scipiowright@gmail.com> * Update worlds/kh1/Rules.py Co-authored-by: Scipio Wright <scipiowright@gmail.com> * Fixed report group name * Fixes for PR * Update Options.py * Push changes for making the Final Rest Door appear, few option fixes * Update Rules.py * Website formatting, 0 min for reports, option description typo * Create KH1Client.py * Update worlds/kh1/docs/kh1_en.md Co-authored-by: Scipio Wright <scipiowright@gmail.com> * Update Options.py * Update Options.py * Update Rules.py * Update Rules.py * Update Rules.py * Add Donald and Goofy Death Link * Add fight logic for optional bosses * Update __init__.py * Update Options.py * Update worlds/kh1/Options.py Co-authored-by: Scipio Wright <scipiowright@gmail.com> * Update Client.py * Update kh1_en.md * Update __init__.py * Cleaning up for PR * Update Client.py * Added event locations for vanilla items * Add proper location groups and auto hint synth shop items when entering * so many changes * Update Rules.py * fixed oathkeeper and crabclaw logic * Update Rules.py * Update Rules.py * Update Rules.py * Update Rules.py * Update en_Kingdom Hearts.md * Update en_Kingdom Hearts.md * fixing text * Update kh1_en.md * Addition of new key items * Update Regions.py * Push for start item from pool test * Update worlds/kh1/Options.py Co-authored-by: Scipio Wright <scipiowright@gmail.com> * Document update * Update Rules.py * Added starting world range and final rest goal option * Update kh1_en.md * Update en_Kingdom Hearts.md * Update __init__.py * Update __init__.py * Clean up options descriptions * Update worlds/kh1/__init__.py Co-authored-by: Scipio Wright <scipiowright@gmail.com> * Update worlds/kh1/Options.py Co-authored-by: Scipio Wright <scipiowright@gmail.com> * Update worlds/kh1/__init__.py Co-authored-by: Scipio Wright <scipiowright@gmail.com> * Update worlds/kh1/__init__.py Co-authored-by: Scipio Wright <scipiowright@gmail.com> * Update worlds/kh1/__init__.py Co-authored-by: Scipio Wright <scipiowright@gmail.com> * Update worlds/kh1/Rules.py Co-authored-by: Scipio Wright <scipiowright@gmail.com> * Update worlds/kh1/Rules.py Co-authored-by: Scipio Wright <scipiowright@gmail.com> * Update worlds/kh1/Client.py Co-authored-by: Scipio Wright <scipiowright@gmail.com> * Fix grammar in document * Update __init__.py * Update worlds/kh1/__init__.py Co-authored-by: Scipio Wright <scipiowright@gmail.com> * Removed return type * Update __init__.py * Update __init__.py * Update worlds/kh1/__init__.py Co-authored-by: Scipio Wright <scipiowright@gmail.com> * Update worlds/kh1/__init__.py Co-authored-by: Scipio Wright <scipiowright@gmail.com> * Update __init__.py * Fix missing i replacement, rework set rules to use "self" instead of a million arguments * Update KH1Client.py Co-authored-by: Doug Hoskisson <beauxq@users.noreply.github.com> * Reformat rules, fix bug with exp mult, add to readme * Clean up regions, fix client * Fix item send prompt * Update worlds/kh1/docs/en_Kingdom Hearts.md Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> * Update worlds/kh1/docs/en_Kingdom Hearts.md Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> * Update worlds/kh1/__init__.py Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> * Update worlds/kh1/__init__.py Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> * Update worlds/kh1/__init__.py Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> * Update worlds/kh1/docs/en_Kingdom Hearts.md Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> * Update worlds/kh1/docs/en_Kingdom Hearts.md Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> * Update worlds/kh1/docs/en_Kingdom Hearts.md Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> * Update worlds/kh1/docs/en_Kingdom Hearts.md Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> * Update worlds/kh1/docs/en_Kingdom Hearts.md Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> * Update worlds/kh1/docs/kh1_en.md Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> * Update worlds/kh1/docs/kh1_en.md Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> * Update worlds/kh1/docs/kh1_en.md Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> * Update worlds/kh1/docs/kh1_en.md Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> * Update worlds/kh1/test/test_goal.py Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> * Update worlds/kh1/Options.py Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> * Update worlds/kh1/Options.py Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> * Update worlds/kh1/Options.py Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> * Update worlds/kh1/Options.py Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> * Update worlds/kh1/Options.py Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> * Update worlds/kh1/Options.py Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> * Update worlds/kh1/Options.py Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> * Update worlds/kh1/Items.py Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> * Update worlds/kh1/Locations.py Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> * Update worlds/kh1/Regions.py Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> * Update worlds/kh1/Locations.py Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> * Update worlds/kh1/Locations.py Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> * Update worlds/kh1/Items.py Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> * Update worlds/kh1/Regions.py Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> * Update worlds/kh1/Regions.py Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> * Update worlds/kh1/Rules.py Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> * Update worlds/kh1/Rules.py Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> * Update worlds/kh1/Rules.py Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> * Update worlds/kh1/Rules.py Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> * Update worlds/kh1/Rules.py Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> * Update worlds/kh1/Rules.py Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> * Update worlds/kh1/Rules.py Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> * Update worlds/kh1/Rules.py Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> * Update worlds/kh1/Rules.py Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> * Update worlds/kh1/Rules.py Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> * Update worlds/kh1/__init__.py Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> * Update worlds/kh1/__init__.py Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> * Update worlds/kh1/__init__.py Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> * Update worlds/kh1/__init__.py Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> * Update worlds/kh1/__init__.py Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> * Update worlds/kh1/__init__.py Co-authored-by: Doug Hoskisson <beauxq@users.noreply.github.com> * Fix so many suggestions * removed junk in missable locations option * Update __init__.py * Change credits order * Update en_Kingdom Hearts.md * Standardize punctuation * Update en_Kingdom Hearts.md * Update en_Kingdom Hearts.md * Update Regions.py * Removed "disclude" options in generation fillers * Update Rules.py * Update __init__.py * Fix cemetery typo * Update worlds/kh1/Options.py Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> * Add option groups and option presets * Update worlds/kh1/__init__.py That's a good idea! Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> * Update worlds/kh1/Options.py Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> * Update worlds/kh1/Options.py Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> * Update worlds/kh1/Options.py Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> * Update worlds/kh1/Presets.py Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> * fixed HB rule and formatting on a line in Items.py * Fix logic bug with Geppetto's House postcard * Update Rules.py * Update Options.py * Update __init__.py * Update __init__.py * Huge under-the-hood update for PR * More updates for PR * Update worlds/kh1/__init__.py Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> * Update worlds/kh1/Rules.py Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> * Update __init__.py --------- Co-authored-by: Scipio Wright <scipiowright@gmail.com> Co-authored-by: Doug Hoskisson <beauxq@users.noreply.github.com> Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> |
||
![]() |
49a5b52774 |
VVVVVV: Make unnecessary Trinkets filler (#3806)
* Make unnecessary trinkets filler * Proper syntax Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> --------- Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> |
||
![]() |
f5218faea7 |
Pokemon Emerald: Ensure dig tutor is always usable (#3660)
* Pokemon Emerald: Ensure dig tutor is always usable * Pokemon Emerald: Clarify comment Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> --------- Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> |
||
![]() |
c014c5a54a |
[OSRS] Fixes Incorrect filler item names causing failures on tests. (#3768)
* Updates filler item names to match the actual item names * Adds more descriptive error message in case this error comes back * Properly raises exception instead of just text * Replaces exception with assert |
||
![]() |
7eda4c47f8 |
TLOZ: Fix non-deterministic item pool generation (#3779)
* TLOZ: Fix non-deterministic item pool generation The way the item pool was constructed involved iterating unions of sets. Sets are unordered, so the order of iteration of these combined sets would be non-deterministic, resulting in the items in the item pool being generated in a different order with the same seed. Rather than creating unions of sets at all, the original code has been replaced with using Counter objects. As a dict subclass, Counter maintains insertion order, and its update() method makes it simple to combine the separate item dictionaries into a single dictionary with the total count of each item across each of the separate item dictionaries. Fixes #3664 - After investigating more deeply, the only differences I could find between generations of the same seed was the order of items created by TLOZ, so this patch appears to fix the non-deterministic generation issue. I did manage to reproduce the non-deterministic behaviour with just TLOZ in the end, but it was very rare. I'm not entirely sure why generating with SMZ3 specifically would cause the non-deterministic behaviour in TLOZ to be frequently present, whereas generating with other games or multiple TLOZ yamls would not. * Change import order --------- Co-authored-by: NewSoupVi <57900059+NewSoupVi@users.noreply.github.com> |
||
![]() |
474a3181c6 |
TUNIC: Give the fox a gun (in logic) (very small PR) (#3790)
* Add bomb wall logic * Remove option call from can_shop * Gun for the envoy blocking Quarry * has_sword -> can_shop on cube cave entrance region |
||
![]() |
4af6927e23 | Lingo: Fixed Initiated-side Eight Door not opening (#3793) | ||
![]() |
56aabe51b8 | Stardew Valley: Add Quality Bobber in the logic rules for fish quality gold and above #3792 | ||
![]() |
5e5f24cdd2 | TUNIC: Add off and on aliases for the Entrance Rando option #3794 | ||
![]() |
0af31c71e0 |
TUNIC: Swap from multiworld.get to world.get for applicable things (#3789)
* Swap from multiworld.get to world.get for applicable things * Why was this even here in the first place? |
||
![]() |
96d48a923a |
Core: recontextualize CollectionState.collect (#3723)
* Core: renamed `CollectionState.collect` arg from `event` to `prevent_sweep` and remove forced collection * Update TestDungeon.py --------- Co-authored-by: NewSoupVi <57900059+NewSoupVi@users.noreply.github.com> |
||
![]() |
a3e54a951f |
Undertale: Fix slot_data and options.as_dict() (#3774)
* Undertale: Fixing slot_data * Booleans were difficult |
||
![]() |
21bbf5fb95 | TUNIC: Add note to Universal Tracker stuff #3772 | ||
![]() |
09e052c750 | Timespinner: Fix eels check logic #3777 | ||
![]() |
68a92b0c6f | Clique: Update to new options API (#3759) | ||
![]() |
8e06ab4f68 |
Core: fix invalid __package__ of zipped worlds (#3686)
* fix invalid package fix * add comment describing fix |
||
![]() |
9dba39b606 |
SoE: fix determinism (#3745)
Fixes randomly placed ingredients not being deterministic (depending on settings) and in turn also fixes logic not being deterministic if they get replaced by fragments. |
||
![]() |
a6f376b02e | TLOZ: world: multiworld (#3752) | ||
![]() |
c66a8605da | DOOM, DOOM II: Update steam URLs (#3746) | ||
![]() |
ac7590e621 |
HK: fix iterating all worlds instead of only HK worlds in stage_pre_fill (#3750)
Would cause generation to fail when generating with HK and another game.
Mistake in
|