From 3c564d7b96608c904b7ee0df158b226cc59766d3 Mon Sep 17 00:00:00 2001 From: Fabian Dill Date: Tue, 2 Apr 2024 16:45:07 +0200 Subject: [PATCH 01/10] WebHost: allow deleting Rooms and Seeds, as well as their associated data (#3071) --- WebHostLib/autolauncher.py | 13 ++++++++++++- WebHostLib/templates/userContent.html | 4 ++++ WebHostLib/upload.py | 28 ++++++++++++++++++++++++++- 3 files changed, 43 insertions(+), 2 deletions(-) diff --git a/WebHostLib/autolauncher.py b/WebHostLib/autolauncher.py index 9083867120..7254dd46e1 100644 --- a/WebHostLib/autolauncher.py +++ b/WebHostLib/autolauncher.py @@ -6,6 +6,7 @@ import multiprocessing import threading import time import typing +from uuid import UUID from datetime import timedelta, datetime from pony.orm import db_session, select, commit @@ -62,6 +63,16 @@ def autohost(config: dict): def keep_running(): try: with Locker("autohost"): + # delete unowned user-content + with db_session: + # >>> bool(uuid.UUID(int=0)) + # True + rooms = Room.select(lambda room: room.owner == UUID(int=0)).delete(bulk=True) + seeds = Seed.select(lambda seed: seed.owner == UUID(int=0) and not seed.rooms).delete(bulk=True) + slots = Slot.select(lambda slot: not slot.seed).delete(bulk=True) + # Command gets deleted by ponyorm Cascade Delete, as Room is Required + if rooms or seeds or slots: + logging.info(f"{rooms} Rooms, {seeds} Seeds and {slots} Slots have been deleted.") run_guardian() while 1: time.sleep(0.1) @@ -191,6 +202,6 @@ def run_guardian(): guardian = threading.Thread(name="Guardian", target=guard) -from .models import Room, Generation, STATE_QUEUED, STATE_STARTED, STATE_ERROR, db, Seed +from .models import Room, Generation, STATE_QUEUED, STATE_STARTED, STATE_ERROR, db, Seed, Slot from .customserver import run_server_process, get_static_server_data from .generate import gen_game diff --git a/WebHostLib/templates/userContent.html b/WebHostLib/templates/userContent.html index c20d39f46d..3603d4112d 100644 --- a/WebHostLib/templates/userContent.html +++ b/WebHostLib/templates/userContent.html @@ -25,6 +25,7 @@ Players Created (UTC) Last Activity (UTC) + Mark for deletion @@ -35,6 +36,7 @@ {{ room.seed.slots|length }} {{ room.creation_time.strftime("%Y-%m-%d %H:%M") }} {{ room.last_activity.strftime("%Y-%m-%d %H:%M") }} + Delete next maintenance. {% endfor %} @@ -51,6 +53,7 @@ Seed Players Created (UTC) + Mark for deletion @@ -60,6 +63,7 @@ {% if seed.multidata %}{{ seed.slots|length }}{% else %}1{% endif %} {{ seed.creation_time.strftime("%Y-%m-%d %H:%M") }} + Delete next maintenance. {% endfor %} diff --git a/WebHostLib/upload.py b/WebHostLib/upload.py index af4ed264aa..884c1913f8 100644 --- a/WebHostLib/upload.py +++ b/WebHostLib/upload.py @@ -7,7 +7,7 @@ import zipfile import zlib from io import BytesIO -from flask import request, flash, redirect, url_for, session, render_template +from flask import request, flash, redirect, url_for, session, render_template, abort from markupsafe import Markup from pony.orm import commit, flush, select, rollback from pony.orm.core import TransactionIntegrityError @@ -219,3 +219,29 @@ def user_content(): rooms = select(room for room in Room if room.owner == session["_id"]) seeds = select(seed for seed in Seed if seed.owner == session["_id"]) return render_template("userContent.html", rooms=rooms, seeds=seeds) + + +@app.route("/disown_seed/", methods=["GET"]) +def disown_seed(seed): + seed = Seed.get(id=seed) + if not seed: + return abort(404) + if seed.owner != session["_id"]: + return abort(403) + + seed.owner = 0 + + return redirect(url_for("user_content")) + + +@app.route("/disown_room/", methods=["GET"]) +def disown_room(room): + room = Room.get(id=room) + if not room: + return abort(404) + if room.owner != session["_id"]: + return abort(403) + + room.owner = 0 + + return redirect(url_for("user_content")) From 885fb4aabee301ba02b415baeebf5fb3daa9a485 Mon Sep 17 00:00:00 2001 From: Fabian Dill Date: Wed, 3 Apr 2024 19:49:39 +0200 Subject: [PATCH 02/10] LttP: fix fix fake world always applying --- worlds/alttp/__init__.py | 47 ++++++++++++++++++++-------------------- 1 file changed, 24 insertions(+), 23 deletions(-) diff --git a/worlds/alttp/__init__.py b/worlds/alttp/__init__.py index a3b1dfa658..8baeeb6dc2 100644 --- a/worlds/alttp/__init__.py +++ b/worlds/alttp/__init__.py @@ -345,42 +345,43 @@ class ALTTPWorld(World): def create_regions(self): player = self.player - world = self.multiworld + multiworld = self.multiworld - if world.mode[player] != 'inverted': - create_regions(world, player) + if multiworld.mode[player] != 'inverted': + create_regions(multiworld, player) else: - create_inverted_regions(world, player) - create_shops(world, player) + create_inverted_regions(multiworld, player) + create_shops(multiworld, player) self.create_dungeons() - if world.glitches_required[player] not in ["no_glitches", "minor_glitches"] and world.entrance_shuffle[player] in \ - {"vanilla", "dungeons_simple", "dungeons_full", "simple", "restricted", "full"}: - world.fix_fake_world[player] = False + if (multiworld.glitches_required[player] not in ["no_glitches", "minor_glitches"] and + multiworld.entrance_shuffle[player] in [ + "vanilla", "dungeons_simple", "dungeons_full", "simple", "restricted", "full"]): + multiworld.fix_fake_world[player] = False # seeded entrance shuffle - old_random = world.random - world.random = random.Random(self.er_seed) + old_random = multiworld.random + multiworld.random = random.Random(self.er_seed) - if world.mode[player] != 'inverted': - link_entrances(world, player) - mark_light_world_regions(world, player) + if multiworld.mode[player] != 'inverted': + link_entrances(multiworld, player) + mark_light_world_regions(multiworld, player) for region_name, entrance_name in indirect_connections_not_inverted.items(): - world.register_indirect_condition(world.get_region(region_name, player), - world.get_entrance(entrance_name, player)) + multiworld.register_indirect_condition(multiworld.get_region(region_name, player), + multiworld.get_entrance(entrance_name, player)) else: - link_inverted_entrances(world, player) - mark_dark_world_regions(world, player) + link_inverted_entrances(multiworld, player) + mark_dark_world_regions(multiworld, player) for region_name, entrance_name in indirect_connections_inverted.items(): - world.register_indirect_condition(world.get_region(region_name, player), - world.get_entrance(entrance_name, player)) + multiworld.register_indirect_condition(multiworld.get_region(region_name, player), + multiworld.get_entrance(entrance_name, player)) - world.random = old_random - plando_connect(world, player) + multiworld.random = old_random + plando_connect(multiworld, player) for region_name, entrance_name in indirect_connections.items(): - world.register_indirect_condition(world.get_region(region_name, player), - world.get_entrance(entrance_name, player)) + multiworld.register_indirect_condition(multiworld.get_region(region_name, player), + multiworld.get_entrance(entrance_name, player)) def collect_item(self, state: CollectionState, item: Item, remove=False): item_name = item.name From 8d9bd0135eb254ffd51254031c9058734e10a565 Mon Sep 17 00:00:00 2001 From: Alchav <59858495+Alchav@users.noreply.github.com> Date: Sat, 6 Apr 2024 12:53:20 -0500 Subject: [PATCH 03/10] LTTP: Fix Bug With Custom Resource Spending (#3105) --- data/basepatch.bsdiff4 | Bin 114116 -> 114119 bytes worlds/alttp/Rom.py | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/data/basepatch.bsdiff4 b/data/basepatch.bsdiff4 index aa8f1375c522b724ae1944ebb6de113a7e592a35..379eee80c6c083b1f933fb2a4c346d28cb16f711 100644 GIT binary patch delta 109064 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�k97hnimh-=*_FR;C;{$fwKe8c%>&m4md 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 z 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%0AD)bh% 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⁣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 Date: Sun, 7 Apr 2024 00:17:48 +0100 Subject: [PATCH 04/10] fixing minor typos on options (#3080) --- worlds/smz3/Options.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/worlds/smz3/Options.py b/worlds/smz3/Options.py index e3d8b8dd10..ada463fa36 100644 --- a/worlds/smz3/Options.py +++ b/worlds/smz3/Options.py @@ -25,7 +25,7 @@ class SwordLocation(Choice): Randomized - The sword can be placed anywhere. Early - The sword will be placed in a location accessible from the start of the game. - Unce assured - The sword will always be placed on Link's Uncle.""" + Uncle - The sword will always be placed on Link's Uncle.""" display_name = "Sword Location" option_Randomized = 0 option_Early = 1 @@ -48,7 +48,7 @@ class MorphLocation(Choice): class Goal(Choice): """This option decides what goal is required to finish the randomizer. - Defeat Ganon and Mother Brain - Find the required crystals and boss tokens kill both bosses. + Defeat Ganon and Mother Brain - Find the required crystals and boss tokens to kill both bosses. Fast Ganon and Defeat Mother Brain - The hole to ganon is open without having to defeat Agahnim in Ganon's Tower and Ganon can be defeat as soon you have the required crystals to make Ganon vulnerable. For keysanity, this mode also removes From 569c37cb8ed14fcd47fcfcfc2f077df1cb168bb0 Mon Sep 17 00:00:00 2001 From: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com> Date: Sat, 6 Apr 2024 19:25:26 -0400 Subject: [PATCH 05/10] Core, Webhost, Docs: Replace all usages of player settings (#3067) * Replace all usages of player settings * Fixed line break error * Attempt to fix line break again * Finally figure out what Pycharm did to this file * Pycharm search failed me * Remove duplicate s * Update ArchipIdle * Revert random newline changes from Pycharm * Remove player settings from fstrings and rename --samesettings to --sameoptions * Finally get PyCharm to not auto-format my commits, randomly inserting the newlines * Removing player-settings * Missed one * Remove final line break error Co-authored-by: Exempt-Medic <60412657+exempt-medic@users.noreply.github.com> --------- Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> Co-authored-by: Exempt-Medic --- Generate.py | 10 ++++---- WebHostLib/misc.py | 6 ----- docs/settings api.md | 2 +- settings.py | 2 +- worlds/adventure/docs/setup_en.md | 2 +- worlds/adventure/docs/setup_fr.md | 4 +-- worlds/alttp/docs/multiworld_de.md | 4 +-- worlds/alttp/docs/multiworld_es.md | 4 +-- worlds/alttp/docs/multiworld_fr.md | 6 ++--- worlds/archipidle/docs/guide_en.md | 2 +- worlds/archipidle/docs/guide_fr.md | 7 +++--- worlds/dark_souls_3/docs/setup_fr.md | 2 +- worlds/dlcquest/docs/fr_DLCQuest.md | 4 +-- worlds/dlcquest/docs/setup_fr.md | 4 +-- worlds/generic/docs/advanced_settings_en.md | 25 ++++++++++--------- worlds/generic/docs/triggers_en.md | 4 +-- worlds/minecraft/docs/minecraft_fr.md | 4 +-- worlds/minecraft/docs/minecraft_sv.md | 2 -- worlds/musedash/docs/setup_es.md | 4 +-- worlds/oot/docs/setup_fr.md | 4 +-- worlds/pokemon_rb/docs/setup_es.md | 2 +- worlds/timespinner/docs/setup_de.md | 2 +- worlds/witness/docs/setup_en.md | 2 +- worlds/yoshisisland/docs/en_Yoshi's Island.md | 2 +- worlds/yoshisisland/docs/setup_en.md | 2 +- 25 files changed, 52 insertions(+), 60 deletions(-) diff --git a/Generate.py b/Generate.py index f646e994dc..91fe72221d 100644 --- a/Generate.py +++ b/Generate.py @@ -35,8 +35,8 @@ def mystery_argparse(): parser = argparse.ArgumentParser(description="CMD Generation Interface, defaults come from host.yaml.") parser.add_argument('--weights_file_path', default=defaults.weights_file_path, - help='Path to the weights file to use for rolling game settings, urls are also valid') - parser.add_argument('--samesettings', help='Rolls settings per weights file rather than per player', + help='Path to the weights file to use for rolling game options, urls are also valid') + parser.add_argument('--sameoptions', help='Rolls options per weights file rather than per player', action='store_true') parser.add_argument('--player_files_path', default=defaults.player_files_path, help="Input directory for player files.") @@ -104,8 +104,8 @@ def main(args=None, callback=ERmain): del(meta_weights["meta_description"]) except Exception as e: raise ValueError("No meta description found for meta.yaml. Unable to verify.") from e - if args.samesettings: - raise Exception("Cannot mix --samesettings with --meta") + if args.sameoptions: + raise Exception("Cannot mix --sameoptions with --meta") else: meta_weights = None player_id = 1 @@ -157,7 +157,7 @@ def main(args=None, callback=ERmain): erargs.skip_output = args.skip_output settings_cache: Dict[str, Tuple[argparse.Namespace, ...]] = \ - {fname: (tuple(roll_settings(yaml, args.plando) for yaml in yamls) if args.samesettings else None) + {fname: (tuple(roll_settings(yaml, args.plando) for yaml in yamls) if args.sameoptions else None) for fname, yamls in weights_cache.items()} if meta_weights: diff --git a/WebHostLib/misc.py b/WebHostLib/misc.py index ee04e56fd7..ec461e7d47 100644 --- a/WebHostLib/misc.py +++ b/WebHostLib/misc.py @@ -49,12 +49,6 @@ def weighted_options(): return render_template("weighted-options.html") -# TODO for back compat. remove around 0.4.5 -@app.route("/games//player-settings") -def player_settings(game: str): - return redirect(url_for("player_options", game=game), 301) - - # Player options pages @app.route("/games//player-options") @cache.cached() diff --git a/docs/settings api.md b/docs/settings api.md index 41023879ad..bfc642d4b5 100644 --- a/docs/settings api.md +++ b/docs/settings api.md @@ -1,7 +1,7 @@ # Archipelago Settings API The settings API describes how to use installation-wide config and let the user configure them, like paths, etc. using -host.yaml. For the player settings / player yamls see [options api.md](options api.md). +host.yaml. For the player options / player yamls see [options api.md](options api.md). The settings API replaces `Utils.get_options()` and `Utils.get_default_options()` as well as the predefined `host.yaml` in the repository. diff --git a/settings.py b/settings.py index c58eadf155..390920433c 100644 --- a/settings.py +++ b/settings.py @@ -1,6 +1,6 @@ """ Application settings / host.yaml interface using type hints. -This is different from player settings. +This is different from player options. """ import os.path diff --git a/worlds/adventure/docs/setup_en.md b/worlds/adventure/docs/setup_en.md index 94a735bb74..060225e397 100644 --- a/worlds/adventure/docs/setup_en.md +++ b/worlds/adventure/docs/setup_en.md @@ -43,7 +43,7 @@ an experience customized for their taste, and different players in the same mult You can generate a yaml or download a template by visiting the [Adventure Options Page](/games/Adventure/player-options) -### What are recommended settings to tweak for beginners to the rando? +### What are recommended options to tweak for beginners to the rando? Setting difficulty_switch_a and lowering the dragons' speeds makes the dragons easier to avoid. Adding Chalice to local_items guarantees you'll visit at least one of the interesting castles, as it can only be placed in a castle or the credits room. diff --git a/worlds/adventure/docs/setup_fr.md b/worlds/adventure/docs/setup_fr.md index 07881ce94d..e8346fe6f0 100644 --- a/worlds/adventure/docs/setup_fr.md +++ b/worlds/adventure/docs/setup_fr.md @@ -42,7 +42,7 @@ une expérience personnalisée à leur goût, et différents joueurs dans le mê ### Où puis-je obtenir un fichier YAML ? -Vous pouvez générer un yaml ou télécharger un modèle en visitant la [page des paramètres d'aventure](/games/Adventure/player-settings) +Vous pouvez générer un yaml ou télécharger un modèle en visitant la [page des paramètres d'aventure](/games/Adventure/player-options) ### Quels sont les paramètres recommandés pour s'initier à la rando ? Régler la difficulty_switch_a et réduire la vitesse des dragons rend les dragons plus faciles à éviter. Ajouter Calice à @@ -72,4 +72,4 @@ configuré pour le faire automatiquement. Pour connecter le client au multiserveur, mettez simplement `:` dans le champ de texte en haut et appuyez sur Entrée (si le le serveur utilise un mot de passe, saisissez dans le champ de texte inférieur `/connect  : [mot de passe]`) -Appuyez sur Réinitialiser et commencez à jouer \ No newline at end of file +Appuyez sur Réinitialiser et commencez à jouer diff --git a/worlds/alttp/docs/multiworld_de.md b/worlds/alttp/docs/multiworld_de.md index 8ccd1a87a6..c8c802d750 100644 --- a/worlds/alttp/docs/multiworld_de.md +++ b/worlds/alttp/docs/multiworld_de.md @@ -47,12 +47,12 @@ wählen können! ### Wo bekomme ich so eine YAML-Datei her? -Die [Player Settings](/games/A Link to the Past/player-settings) Seite auf der Website ermöglicht das einfache Erstellen +Die [Player Options](/games/A Link to the Past/player-options) Seite auf der Website ermöglicht das einfache Erstellen und Herunterladen deiner eigenen `yaml` Datei. Drei verschiedene Voreinstellungen können dort gespeichert werden. ### Deine YAML-Datei ist gewichtet! -Die **Player Settings** Seite hat eine Menge Optionen, die man per Schieber einstellen kann. Das ermöglicht es, +Die **Player Options** Seite hat eine Menge Optionen, die man per Schieber einstellen kann. Das ermöglicht es, verschiedene Optionen mit unterschiedlichen Wahrscheinlichkeiten in einer Kategorie ausgewürfelt zu werden Als Beispiel kann man sich die Option "Map Shuffle" als einen Eimer mit Zetteln zur Abstimmung Vorstellen. So kann man diff --git a/worlds/alttp/docs/multiworld_es.md b/worlds/alttp/docs/multiworld_es.md index 37aeda2a63..0c907b1f7a 100644 --- a/worlds/alttp/docs/multiworld_es.md +++ b/worlds/alttp/docs/multiworld_es.md @@ -59,7 +59,7 @@ de multiworld puede tener diferentes opciones. ### Donde puedo obtener un fichero YAML? -La página "[Generate Game](/games/A%20Link%20to%20the%20Past/player-settings)" en el sitio web te permite configurar tu +La página "[Generate Game](/games/A%20Link%20to%20the%20Past/player-options)" en el sitio web te permite configurar tu configuración personal y descargar un fichero "YAML". ### Configuración YAML avanzada @@ -86,7 +86,7 @@ Si quieres validar que tu fichero YAML para asegurarte que funciona correctament ## Generar una partida para un jugador -1. Navega a [la pagina Generate game](/games/A%20Link%20to%20the%20Past/player-settings), configura tus opciones, haz +1. Navega a [la pagina Generate game](/games/A%20Link%20to%20the%20Past/player-options), configura tus opciones, haz click en el boton "Generate game". 2. Se te redigirá a una pagina "Seed Info", donde puedes descargar tu archivo de parche. 3. Haz doble click en tu fichero de parche, y el emulador debería ejecutar tu juego automáticamente. Como el Cliente no diff --git a/worlds/alttp/docs/multiworld_fr.md b/worlds/alttp/docs/multiworld_fr.md index 078a270f08..f2d55787f7 100644 --- a/worlds/alttp/docs/multiworld_fr.md +++ b/worlds/alttp/docs/multiworld_fr.md @@ -60,7 +60,7 @@ peuvent avoir différentes options. ### Où est-ce que j'obtiens un fichier YAML ? -La page [Génération de partie](/games/A%20Link%20to%20the%20Past/player-settings) vous permet de configurer vos +La page [Génération de partie](/games/A%20Link%20to%20the%20Past/player-options) vous permet de configurer vos paramètres personnels et de les exporter vers un fichier YAML. ### Configuration avancée du fichier YAML @@ -87,7 +87,7 @@ Si vous voulez valider votre fichier YAML pour être sûr qu'il fonctionne, vous ## Générer une partie pour un joueur -1. Aller sur la page [Génération de partie](/games/A%20Link%20to%20the%20Past/player-settings), configurez vos options, +1. Aller sur la page [Génération de partie](/games/A%20Link%20to%20the%20Past/player-options), configurez vos options, et cliquez sur le bouton "Generate Game". 2. Il vous sera alors présenté une page d'informations sur la seed, où vous pourrez télécharger votre patch. 3. Double-cliquez sur le patch et l'émulateur devrait se lancer automatiquement avec la seed. Etant donné que le client @@ -207,4 +207,4 @@ Le logiciel recommandé pour l'auto-tracking actuellement est 3. Sélectionnez votre appareil SNES dans la liste déroulante. 4. Si vous voulez tracquer les petites clés ainsi que les objets des donjons, cochez la case **Race Illegal Tracking** 5. Cliquez sur le bouton **Start Autotracking** -6. Fermez la fenêtre "AutoTracker" maintenant, elle n'est plus nécessaire \ No newline at end of file +6. Fermez la fenêtre "AutoTracker" maintenant, elle n'est plus nécessaire diff --git a/worlds/archipidle/docs/guide_en.md b/worlds/archipidle/docs/guide_en.md index f9d7f08aab..c450ec421d 100644 --- a/worlds/archipidle/docs/guide_en.md +++ b/worlds/archipidle/docs/guide_en.md @@ -8,5 +8,5 @@ [ArchipIDLE GitHub Releases Page](https://github.com/ArchipelagoMW/archipidle/releases) 3. Enter the server address in the `Server Address` field and press enter 4. Enter your slot name when prompted. This should be the same as the `name` you entered on the - setting page above, or the `name` field in your yaml file. + options page above, or the `name` field in your yaml file. 5. Click the "Begin!" button. diff --git a/worlds/archipidle/docs/guide_fr.md b/worlds/archipidle/docs/guide_fr.md index c3842ed7db..dc0c8af321 100644 --- a/worlds/archipidle/docs/guide_fr.md +++ b/worlds/archipidle/docs/guide_fr.md @@ -1,11 +1,10 @@ # Guide de configuration d'ArchipIdle ## Rejoindre une partie MultiWorld -1. Générez un fichier `.yaml` à partir de la [page des paramètres du lecteur ArchipIDLE](/games/ArchipIDLE/player-settings) +1. Générez un fichier `.yaml` à partir de la [page des paramètres du lecteur ArchipIDLE](/games/ArchipIDLE/player-options) 2. Ouvrez le client ArchipIDLE dans votre navigateur Web en : - - Accédez au [Client ArchipIDLE](http://idle.multiworld.link) - - Téléchargez le client et exécutez-le localement à partir du - [Page des versions d'ArchipIDLE GitHub](https://github.com/ArchipelagoMW/archipidle/releases) + - Accédez au [Client ArchipIDLE](http://idle.multiworld.link) + - Téléchargez le client et exécutez-le localement à partir du [Page des versions d'ArchipIDLE GitHub](https://github.com/ArchipelagoMW/archipidle/releases) 3. Entrez l'adresse du serveur dans le champ `Server Address` et appuyez sur Entrée 4. Entrez votre nom d'emplacement lorsque vous y êtes invité. Il doit être le même que le `name` que vous avez saisi sur le page de configuration ci-dessus, ou le champ `name` dans votre fichier yaml. diff --git a/worlds/dark_souls_3/docs/setup_fr.md b/worlds/dark_souls_3/docs/setup_fr.md index 769d331bb9..ea4d8f8186 100644 --- a/worlds/dark_souls_3/docs/setup_fr.md +++ b/worlds/dark_souls_3/docs/setup_fr.md @@ -29,5 +29,5 @@ placez-le à la racine du jeu (ex: "SteamLibrary\steamapps\common\DARK SOULS III ## Où trouver le fichier de configuration ? -La [Page de configuration](/games/Dark%20Souls%20III/player-settings) sur le site vous permez de configurer vos +La [Page de configuration](/games/Dark%20Souls%20III/player-options) sur le site vous permez de configurer vos paramètres et de les exporter sous la forme d'un fichier. diff --git a/worlds/dlcquest/docs/fr_DLCQuest.md b/worlds/dlcquest/docs/fr_DLCQuest.md index 95a8048dfe..25f2d72816 100644 --- a/worlds/dlcquest/docs/fr_DLCQuest.md +++ b/worlds/dlcquest/docs/fr_DLCQuest.md @@ -2,7 +2,7 @@ ## Où se trouve la page des paramètres ? -La [page des paramètres du joueur pour ce jeu](../player-settings) contient tous les paramètres dont vous avez besoin pour configurer et exporter le fichier. +La [page des paramètres du joueur pour ce jeu](../player-options) contient tous les paramètres dont vous avez besoin pour configurer et exporter le fichier. ## Quel est l'effet de la randomisation sur ce jeu ? @@ -46,4 +46,4 @@ Il y a aussi de nouveaux objets pièges, utilisés comme substituts, basés sur Chaque fois qu'un objet est reçu en ligne, une notification apparaît à l'écran pour en informer le joueur. Certains objets sont accompagnés d'une animation ou d'une scène qui se déroule immédiatement après leur réception. -Les objets reçus hors ligne ne sont pas accompagnés d'une animation ou d'une scène, et sont simplement activés lors de la connexion. \ No newline at end of file +Les objets reçus hors ligne ne sont pas accompagnés d'une animation ou d'une scène, et sont simplement activés lors de la connexion. diff --git a/worlds/dlcquest/docs/setup_fr.md b/worlds/dlcquest/docs/setup_fr.md index 78c69eb5a7..e4b431215d 100644 --- a/worlds/dlcquest/docs/setup_fr.md +++ b/worlds/dlcquest/docs/setup_fr.md @@ -18,7 +18,7 @@ Voir le guide d'Archipelago sur la mise en place d'un YAML de base : [Basic Mult ### Où puis-je obtenir un fichier YAML ? -Vous pouvez personnaliser vos paramètres en visitant la [page des paramètres du joueur DLC Quest] (/games/DLCQuest/player-settings). +Vous pouvez personnaliser vos paramètres en visitant la [page des paramètres du joueur DLC Quest](/games/DLCQuest/player-options). ## Rejoindre une partie multi-monde @@ -52,4 +52,4 @@ Vous pouvez personnaliser vos paramètres en visitant la [page des paramètres d Vous ne pouvez pas envoyer de commandes au serveur ou discuter avec les autres joueurs depuis DLC Quest, car le jeu ne dispose pas d'un moyen approprié pour saisir du texte. Vous pouvez suivre l'activité du serveur dans votre console BepInEx, car les messages de chat d'Archipelago y seront affichés. -Vous devrez utiliser [Archipelago Text Client] (https://github.com/ArchipelagoMW/Archipelago/releases) si vous voulez envoyer des commandes. \ No newline at end of file +Vous devrez utiliser [Archipelago Text Client] (https://github.com/ArchipelagoMW/Archipelago/releases) si vous voulez envoyer des commandes. diff --git a/worlds/generic/docs/advanced_settings_en.md b/worlds/generic/docs/advanced_settings_en.md index 6d5e20462f..8e1b1cdb46 100644 --- a/worlds/generic/docs/advanced_settings_en.md +++ b/worlds/generic/docs/advanced_settings_en.md @@ -2,27 +2,28 @@ This guide covers more the more advanced options available in YAML files. This guide is intended for the user who plans to edit their YAML file manually. This guide should take about 10 minutes to read. -If you would like to generate a basic, fully playable YAML without editing a file, then visit the settings page for the +If you would like to generate a basic, fully playable YAML without editing a file, then visit the options page for the game you intend to play. The weighted settings page can also handle most of the advanced settings discussed here. -The settings page can be found on the supported games page, just click the "Settings Page" link under the name of the -game you would like. +The options page can be found on the supported games page, just click the "Options Page" link under the name of the +game you would like. + * Supported games page: [Archipelago Games List](/games) * Weighted settings page: [Archipelago Weighted Settings](/weighted-settings) -Clicking on the "Export Settings" button at the bottom-left will provide you with a pre-filled YAML with your options. -The player settings page also has a link to download a full template file for that game which will have every option +Clicking on the "Export Options" button at the bottom-left will provide you with a pre-filled YAML with your options. +The player options page also has a link to download a full template file for that game which will have every option possible for the game including some that don't display correctly on the site. ## YAML Overview The Archipelago system generates games using player configuration files as input. These are going to be YAML files and -each world will have one of these containing their custom settings for the game that world will play. +each world will have one of these containing their custom options for the game that world will play. ## YAML Formatting YAML files are a format of human-readable config files. The basic syntax of a yaml file will have a `root` node and then -different levels of `nested` nodes that the generator reads in order to determine your settings. +different levels of `nested` nodes that the generator reads in order to determine your options. To nest text, the correct syntax is to indent **two spaces over** from its root option. A YAML file can be edited with whatever text editor you choose to use though I personally recommend that you use Sublime Text. Sublime text @@ -53,13 +54,13 @@ so `option_one_setting_one` is guaranteed to occur. For `nested_option_two`, `option_two_setting_one` will be rolled 14 times and `option_two_setting_two` will be rolled 43 times against each other. This means `option_two_setting_two` will be more likely to occur, but it isn't guaranteed, -adding more randomness and "mystery" to your settings. Every configurable setting supports weights. +adding more randomness and "mystery" to your options. Every configurable setting supports weights. ## Root Options Currently, there are only a few options that are root options. Everything else should be nested within one of these root options or in some cases nested within other nested options. The only options that should exist in root -are `description`, `name`, `game`, `requires`, and the name of the games you want settings for. +are `description`, `name`, `game`, `requires`, and the name of the games you want options for. * `description` is ignored by the generator and is simply a good way for you to organize if you have multiple files using this to detail the intention of the file. @@ -79,15 +80,15 @@ are `description`, `name`, `game`, `requires`, and the name of the games you wan * `requires` details different requirements from the generator for the YAML to work as you expect it to. Generally this is good for detailing the version of Archipelago this YAML was prepared for as, if it is rolled on an older version, - settings may be missing and as such it will not work as expected. If any plando is used in the file then requiring it + options may be missing and as such it will not work as expected. If any plando is used in the file then requiring it here to ensure it will be used is good practice. ## Game Options -One of your root settings will be the name of the game you would like to populate with settings. Since it is possible to +One of your root options will be the name of the game you would like to populate with options. Since it is possible to give a weight to any option, it is possible to have one file that can generate a seed for you where you don't know which game you'll play. For these cases you'll want to fill the game options for every game that can be rolled by these -settings. If a game can be rolled it **must** have a settings section even if it is empty. +settings. If a game can be rolled it **must** have an options section even if it is empty. ### Universal Game Options diff --git a/worlds/generic/docs/triggers_en.md b/worlds/generic/docs/triggers_en.md index dc5cf5c51e..73cca66543 100644 --- a/worlds/generic/docs/triggers_en.md +++ b/worlds/generic/docs/triggers_en.md @@ -6,7 +6,7 @@ about 5 minutes to read. ## What are triggers? -Triggers allow you to customize your game settings by allowing you to define one or many options which only occur under +Triggers allow you to customize your game options by allowing you to define one or many options which only occur under specific conditions. These are essentially "if, then" statements for options in your game. A good example of what you can do with triggers is the [custom mercenary mode YAML ](https://github.com/alwaysintreble/Archipelago-yaml-dump/blob/main/Snippets/Mercenary%20Mode%20Snippet.yaml) that was @@ -148,4 +148,4 @@ In this example, if the `start_location` option rolls `landing_site`, only a sta If `aqueduct` is rolled, a starting hint for Gravity Suit will also be created alongside the hint for Morph Ball. Note that for lists, items can only be added, not removed or replaced. For dicts, defining a value for a present key will -replace that value within the dict. \ No newline at end of file +replace that value within the dict. diff --git a/worlds/minecraft/docs/minecraft_fr.md b/worlds/minecraft/docs/minecraft_fr.md index e25febba42..31c48151f4 100644 --- a/worlds/minecraft/docs/minecraft_fr.md +++ b/worlds/minecraft/docs/minecraft_fr.md @@ -16,7 +16,7 @@ guide : [Guide de configuration de base de Multiworld](/tutorial/Archipelago/se ### Où puis-je obtenir un fichier YAML ? -Vous pouvez personnaliser vos paramètres Minecraft en allant sur la [page des paramètres de joueur](/games/Minecraft/player-settings) +Vous pouvez personnaliser vos paramètres Minecraft en allant sur la [page des paramètres de joueur](/games/Minecraft/player-options) ## Rejoindre une partie MultiWorld @@ -71,4 +71,4 @@ les liens suivants sont les versions des logiciels que nous utilisons. - [Page des versions du mod Minecraft Archipelago Randomizer] (https://github.com/KonoTyran/Minecraft_AP_Randomizer/releases) - **NE PAS INSTALLER CECI SUR VOTRE CLIENT** - [Amazon Corretto](https://docs.aws.amazon.com/corretto/) - - choisissez la version correspondante et sélectionnez "Téléchargements" sur la gauche \ No newline at end of file + - choisissez la version correspondante et sélectionnez "Téléchargements" sur la gauche diff --git a/worlds/minecraft/docs/minecraft_sv.md b/worlds/minecraft/docs/minecraft_sv.md index e86d293939..fd89d681ee 100644 --- a/worlds/minecraft/docs/minecraft_sv.md +++ b/worlds/minecraft/docs/minecraft_sv.md @@ -103,8 +103,6 @@ shuffle_structures: off: 0 ``` -För mer detaljer om vad varje inställning gör, kolla standardinställningen `PlayerSettings.yaml` som kommer med -Archipelago-installationen. ## Gå med i ett Multivärld-spel diff --git a/worlds/musedash/docs/setup_es.md b/worlds/musedash/docs/setup_es.md index 0d737c26d7..1b16c7af3f 100644 --- a/worlds/musedash/docs/setup_es.md +++ b/worlds/musedash/docs/setup_es.md @@ -2,7 +2,7 @@ ## Enlaces rápidos - [Página Principal](../../../../games/Muse%20Dash/info/en) -- [Página de Configuraciones](../../../../games/Muse%20Dash/player-settings) +- [Página de Configuraciones](../../../../games/Muse%20Dash/player-options) ## Software Requerido @@ -27,7 +27,7 @@ Si todo fue instalado correctamente, un botón aparecerá en la parte inferior derecha del juego una vez abierto, que te permitirá conectarte al servidor de Archipelago. ## Generar un juego MultiWorld -1. Entra a la página de [configuraciones de jugador](/games/Muse%20Dash/player-settings) y configura las opciones del juego a tu gusto. +1. Entra a la página de [configuraciones de jugador](/games/Muse%20Dash/player-options) y configura las opciones del juego a tu gusto. 2. Genera tu archivo YAML y úsalo para generar un juego nuevo en el radomizer - (Instrucciones sobre como generar un juego en Archipelago disponibles en la [guía web de Archipelago en Inglés](/tutorial/Archipelago/setup/en)) diff --git a/worlds/oot/docs/setup_fr.md b/worlds/oot/docs/setup_fr.md index f5915e1878..40b0e8f571 100644 --- a/worlds/oot/docs/setup_fr.md +++ b/worlds/oot/docs/setup_fr.md @@ -46,7 +46,7 @@ guide : [Guide de configuration de base de Multiworld](/tutorial/Archipelago/set ### Où puis-je obtenir un fichier de configuration (.yaml) ? -La page Paramètres du lecteur sur le site Web vous permet de configurer vos paramètres personnels et d'exporter un fichier de configuration depuis eux. Page des paramètres du joueur : [Page des paramètres du joueur d'Ocarina of Time](/games/Ocarina%20of%20Time/player-settings) +La page Paramètres du lecteur sur le site Web vous permet de configurer vos paramètres personnels et d'exporter un fichier de configuration depuis eux. Page des paramètres du joueur : [Page des paramètres du joueur d'Ocarina of Time](/games/Ocarina%20of%20Time/player-options) ### Vérification de votre fichier de configuration @@ -67,4 +67,4 @@ Une fois le client et l'émulateur démarrés, vous devez les connecter. Accéde Pour connecter le client au multiserveur, mettez simplement `:` dans le champ de texte en haut et appuyez sur Entrée (si le serveur utilise un mot de passe, tapez dans le champ de texte inférieur `/connect : [mot de passe]`) -Vous êtes maintenant prêt à commencer votre aventure dans Hyrule. \ No newline at end of file +Vous êtes maintenant prêt à commencer votre aventure dans Hyrule. diff --git a/worlds/pokemon_rb/docs/setup_es.md b/worlds/pokemon_rb/docs/setup_es.md index a6a6aa6ce7..9d87db224b 100644 --- a/worlds/pokemon_rb/docs/setup_es.md +++ b/worlds/pokemon_rb/docs/setup_es.md @@ -51,7 +51,7 @@ opciones. ### ¿Dónde puedo obtener un archivo YAML? -Puedes generar un archivo YAML or descargar su plantilla en la [página de configuración de jugador de Pokémon Red and Blue](/games/Pokemon%20Red%20and%20Blue/player-settings) +Puedes generar un archivo YAML or descargar su plantilla en la [página de configuración de jugador de Pokémon Red and Blue](/games/Pokemon%20Red%20and%20Blue/player-options) Es importante tener en cuenta que la opción `game_version` determina el ROM que será parcheado. Tanto el jugador como la persona que genera (si está generando localmente) necesitarán el archivo del ROM diff --git a/worlds/timespinner/docs/setup_de.md b/worlds/timespinner/docs/setup_de.md index 463568ecbd..e864747446 100644 --- a/worlds/timespinner/docs/setup_de.md +++ b/worlds/timespinner/docs/setup_de.md @@ -42,7 +42,7 @@ Weitere Informationen zum Randomizer findest du hier: [ReadMe](https://github.co ## Woher bekomme ich eine Konfigurationsdatei? -Die [Player Settings](https://archipelago.gg/games/Timespinner/player-settings) Seite auf der Website erlaubt dir, +Die [Player Options](https://archipelago.gg/games/Timespinner/player-options) Seite auf der Website erlaubt dir, persönliche Einstellungen zu definieren und diese in eine Konfigurationsdatei zu exportieren * Die Timespinner Randomizer Option "StinkyMaw" ist in Archipelago Seeds aktuell immer an diff --git a/worlds/witness/docs/setup_en.md b/worlds/witness/docs/setup_en.md index daa9b8b9b5..7b6d631198 100644 --- a/worlds/witness/docs/setup_en.md +++ b/worlds/witness/docs/setup_en.md @@ -43,4 +43,4 @@ The Witness has a fully functional map tracker that supports auto-tracking. 3. Click on the "AP" symbol at the top. 4. Enter the AP address, slot name and password. -The rest should take care of itself! Items and checks will be marked automatically, and it even knows your settings - It will hide checks & adjust logic accordingly. +The rest should take care of itself! Items and checks will be marked automatically, and it even knows your options - It will hide checks & adjust logic accordingly. diff --git a/worlds/yoshisisland/docs/en_Yoshi's Island.md b/worlds/yoshisisland/docs/en_Yoshi's Island.md index 8cd825cc7f..d6770c070b 100644 --- a/worlds/yoshisisland/docs/en_Yoshi's Island.md +++ b/worlds/yoshisisland/docs/en_Yoshi's Island.md @@ -1,6 +1,6 @@ # Yoshi's Island -## Where is the settings page? +## Where is the options page? The [player options page for this game](../player-options) contains all the options you need to configure and export a config file. diff --git a/worlds/yoshisisland/docs/setup_en.md b/worlds/yoshisisland/docs/setup_en.md index 30aadbfa60..4c8ffad704 100644 --- a/worlds/yoshisisland/docs/setup_en.md +++ b/worlds/yoshisisland/docs/setup_en.md @@ -39,7 +39,7 @@ guide: [Basic Multiworld Setup Guide](/tutorial/Archipelago/setup/en) ### Where do I get a config file? -The Player Options page on the website allows you to configure your personal settings and export a config file from +The Player Options page on the website allows you to configure your personal options and export a config file from them. ### Verifying your config file From 1021df8b1bfac76aefec9cd26cd1ff6149b0f457 Mon Sep 17 00:00:00 2001 From: Fabian Dill Date: Tue, 9 Apr 2024 00:24:38 +0200 Subject: [PATCH 06/10] Core: remove now unused stuff in Generate.py (#3035) --- Generate.py | 8 -------- 1 file changed, 8 deletions(-) diff --git a/Generate.py b/Generate.py index 91fe72221d..a04e913d6e 100644 --- a/Generate.py +++ b/Generate.py @@ -21,7 +21,6 @@ from BaseClasses import seeddigits, get_seed, PlandoOptions from Main import main as ERmain from settings import get_settings from Utils import parse_yamls, version_tuple, __version__, tuplize_version -from worlds.alttp import Options as LttPOptions from worlds.alttp.EntranceRandomizer import parse_arguments from worlds.alttp.Text import TextTable from worlds.AutoWorld import AutoWorldRegister @@ -311,13 +310,6 @@ def handle_name(name: str, player: int, name_counter: Counter): return new_name -def prefer_int(input_data: str) -> Union[str, int]: - try: - return int(input_data) - except: - return input_data - - def roll_percentage(percentage: Union[int, float]) -> bool: """Roll a percentage chance. percentage is expected to be in range [0, 100]""" From 14437d653f9f90f8bbc6b9398aca6426bdca3293 Mon Sep 17 00:00:00 2001 From: el-u <109771707+el-u@users.noreply.github.com> Date: Tue, 9 Apr 2024 00:33:34 +0200 Subject: [PATCH 07/10] lufia2ac: ability to swap party members mid-run and option to gain EXP while inactive (#2800) --- worlds/lufia2ac/Options.py | 17 +++- worlds/lufia2ac/__init__.py | 1 + worlds/lufia2ac/basepatch/basepatch.asm | 85 +++++++++++++++++- worlds/lufia2ac/basepatch/basepatch.bsdiff4 | Bin 8652 -> 8836 bytes .../lufia2ac/docs/en_Lufia II Ancient Cave.md | 5 +- 5 files changed, 101 insertions(+), 7 deletions(-) diff --git a/worlds/lufia2ac/Options.py b/worlds/lufia2ac/Options.py index 5f33d0bd5d..1b3a39ddeb 100644 --- a/worlds/lufia2ac/Options.py +++ b/worlds/lufia2ac/Options.py @@ -593,6 +593,20 @@ class HealingFloorChance(Range): default = 16 +class InactiveExpGain(Choice): + """The rate at which characters not currently in the active party gain EXP. + + Supported values: disabled, half, full + Default value: disabled (same as in an unmodified game) + """ + + display_name = "Inactive character EXP gain" + option_disabled = 0 + option_half = 50 + option_full = 100 + default = option_disabled + + class InitialFloor(Range): """The initial floor, where you begin your journey. @@ -805,7 +819,7 @@ class ShufflePartyMembers(Toggle): false — all 6 optional party members are present in the cafe and can be recruited right away true — only Maxim is available from the start; 6 new "items" are added to your pool and shuffled into the multiworld; when one of these items is found, the corresponding party member is unlocked for you to use. - While cave diving, you can add newly unlocked ones to your party by using the character items from the inventory + While cave diving, you can add or remove unlocked party members by using the character items from the inventory Default value: false (same as in an unmodified game) """ @@ -838,6 +852,7 @@ class L2ACOptions(PerGameCommonOptions): goal: Goal gold_modifier: GoldModifier healing_floor_chance: HealingFloorChance + inactive_exp_gain: InactiveExpGain initial_floor: InitialFloor iris_floor_chance: IrisFloorChance iris_treasures_required: IrisTreasuresRequired diff --git a/worlds/lufia2ac/__init__.py b/worlds/lufia2ac/__init__.py index 9bd436fa0d..561429c825 100644 --- a/worlds/lufia2ac/__init__.py +++ b/worlds/lufia2ac/__init__.py @@ -232,6 +232,7 @@ class L2ACWorld(World): rom_bytearray[0x280018:0x280018 + 1] = self.o.shuffle_party_members.unlock.to_bytes(1, "little") rom_bytearray[0x280019:0x280019 + 1] = self.o.shuffle_capsule_monsters.unlock.to_bytes(1, "little") rom_bytearray[0x28001A:0x28001A + 1] = self.o.shop_interval.value.to_bytes(1, "little") + rom_bytearray[0x28001B:0x28001B + 1] = self.o.inactive_exp_gain.value.to_bytes(1, "little") rom_bytearray[0x280030:0x280030 + 1] = self.o.goal.value.to_bytes(1, "little") rom_bytearray[0x28003D:0x28003D + 1] = self.o.death_link.value.to_bytes(1, "little") rom_bytearray[0x281200:0x281200 + 470] = self.get_capsule_cravings_table() diff --git a/worlds/lufia2ac/basepatch/basepatch.asm b/worlds/lufia2ac/basepatch/basepatch.asm index f9c48a5fec..f25d4deada 100644 --- a/worlds/lufia2ac/basepatch/basepatch.asm +++ b/worlds/lufia2ac/basepatch/basepatch.asm @@ -309,6 +309,12 @@ org $8EFD2E ; unused region at the end of bank $8E DB $1E,$0B,$01,$2B,$05,$1A,$05,$00 ; add dekar DB $1E,$0B,$01,$2B,$04,$1A,$06,$00 ; add tia DB $1E,$0B,$01,$2B,$06,$1A,$07,$00 ; add lexis + DB $1F,$0B,$01,$2C,$01,$1B,$02,$00 ; remove selan + DB $1F,$0B,$01,$2C,$02,$1B,$03,$00 ; remove guy + DB $1F,$0B,$01,$2C,$03,$1B,$04,$00 ; remove arty + DB $1F,$0B,$01,$2C,$05,$1B,$05,$00 ; remove dekar + DB $1F,$0B,$01,$2C,$04,$1B,$06,$00 ; remove tia + DB $1F,$0B,$01,$2C,$06,$1B,$07,$00 ; remove lexis pullpc SpecialItemUse: @@ -328,11 +334,15 @@ SpecialItemUse: SEP #$20 LDA $8ED8C7,X ; load predefined bitmask with a single bit set BIT $077E ; check against EV flags $02 to $07 (party member flags) - BNE + ; abort if character already present - LDA $07A9 ; load EV register $11 (party counter) + BEQ ++ + LDA.b #$30 ; character already present; modify pointer to point to L2SASM leave script + ADC $09B7 + STA $09B7 + BRA +++ +++: LDA $07A9 ; character not present; load EV register $0B (party counter) CMP.b #$03 BPL + ; abort if party full - LDA.b #$8E ++++ LDA.b #$8E STA $09B9 PHK PEA ++ @@ -340,7 +350,6 @@ SpecialItemUse: JML $83BB76 ; initialize parser variables ++: NOP JSL $809CB8 ; call L2SASM parser - JSL $81F034 ; consume the item TSX INX #13 TXS @@ -490,6 +499,73 @@ pullpc +; allow inactive characters to gain exp +pushpc +org $81DADD + ; DB=$81, x=0, m=1 + NOP ; overwrites BNE $81DAE2 : JMP $DBED + JML HandleActiveExp +AwardExp: + ; isolate exp distribution into a subroutine, to be reused for both active party members and inactive characters +org $81DAE9 + NOP #2 ; overwrites JMP $DBBD + RTL +org $81DB42 + NOP #2 ; overwrites JMP $DBBD + RTL +org $81DD11 + ; DB=$81, x=0, m=1 + JSL HandleInactiveExp ; overwrites LDA $0A8A : CLC +pullpc + +HandleActiveExp: + BNE + ; (overwritten instruction; modified) check if statblock not empty + JML $81DBED ; (overwritten instruction; modified) abort ++: JSL AwardExp ; award exp (X=statblock pointer, Y=position in battle order, $00=position in menu order) + JML $81DBBD ; (overwritten instruction; modified) continue to next level text + +HandleInactiveExp: + LDA $F0201B ; load inactive exp gain rate + BEQ + ; zero gain; skip everything + CMP.b #$64 + BCS ++ ; full gain + LSR $1607 + ROR $1606 ; half gain + ROR $1605 +++: LDY.w #$0000 ; start looping through all characters +-: TDC + TYA + LDX.w #$0003 ; start looping through active party +--: CMP $0A7B,X + BEQ ++ ; skip if character in active party + DEX + BPL -- ; continue looping through active party + STA $153D ; inactive character detected; overwrite character index of 1st slot in party battle order + ASL + TAX + REP #$20 + LDA $859EBA,X ; convert character index to statblock pointer + SEP #$20 + TAX + PHY ; stash character loop index + LDY $0A80 + PHY ; stash 1st (in menu order) party member statblock pointer + STX $0A80 ; overwrite 1st (in menu order) party member statblock pointer + LDY.w #$0000 ; set to use 1st position (in battle order) + STY $00 ; set to use 1st position (in menu order) + JSL AwardExp ; award exp (X=statblock pointer, Y=position in battle order, $00=position in menu order) + PLY ; restore 1st (in menu order) party member statblock pointer + STY $0A80 + PLY ; restore character loop index +++: INY + CPY.w #$0007 + BCC - ; continue looping through all characters ++: LDA $0A8A ; (overwritten instruction) load current gold + CLC ; (overwritten instruction) + RTL + + + ; receive death link pushpc org $83BC91 @@ -1226,6 +1302,7 @@ pullpc ; $F02018 1 party members available ; $F02019 1 capsule monsters available ; $F0201A 1 shop interval +; $F0201B 1 inactive exp gain rate ; $F02030 1 selected goal ; $F02031 1 goal completion: boss ; $F02032 1 goal completion: iris_treasure_hunt diff --git a/worlds/lufia2ac/basepatch/basepatch.bsdiff4 b/worlds/lufia2ac/basepatch/basepatch.bsdiff4 index 664e197c4a1929f6958c1245b11750716b7a9d7e..1dfade445e14a4e01e4f5fc1c598f1ffbab67f2d 100644 GIT binary patch literal 8836 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 UE4fl8%Fh4KJCBge7@z(B05Kt5NB{r; literal 8652 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 diff --git a/worlds/lufia2ac/docs/en_Lufia II Ancient Cave.md b/worlds/lufia2ac/docs/en_Lufia II Ancient Cave.md index 1080a77d54..4b5bf3f318 100644 --- a/worlds/lufia2ac/docs/en_Lufia II Ancient Cave.md +++ b/worlds/lufia2ac/docs/en_Lufia II Ancient Cave.md @@ -53,8 +53,9 @@ Your Party Leader will hold up the item they received when not in a fight or in - Randomize enemy movement patterns, enemy sprites, and which enemy types can appear at which floor numbers - Option to make shops appear in the cave so that you have a way to spend your hard-earned gold - Option to shuffle your party members and/or capsule monsters into the multiworld, meaning that someone will have to - find them in order to unlock them for you to use. While cave diving, you can add newly unlocked members to your party - by using the character items from your inventory + find them in order to unlock them for you to use. While cave diving, you can add or remove unlocked party members by + using the character items from your inventory. There's also an option to allow inactive characters to gain some EXP, + so that new party members added during a run don't have to start off at a low level ###### Quality of life: From 32c92e03e7ceb301486a648da95b88fbe05ef00a Mon Sep 17 00:00:00 2001 From: qwint Date: Tue, 9 Apr 2024 14:12:50 -0500 Subject: [PATCH 08/10] Hollow Knight: Adding Godhome Goal Logic (#2952) --- worlds/hk/GodhomeData.py | 55 ++++++++++++++++++++++++++++++++++++++++ worlds/hk/Items.py | 4 +++ worlds/hk/Options.py | 4 +-- worlds/hk/Rules.py | 2 ++ worlds/hk/__init__.py | 10 ++++++++ 5 files changed, 73 insertions(+), 2 deletions(-) create mode 100644 worlds/hk/GodhomeData.py diff --git a/worlds/hk/GodhomeData.py b/worlds/hk/GodhomeData.py new file mode 100644 index 0000000000..6e9d77f4dc --- /dev/null +++ b/worlds/hk/GodhomeData.py @@ -0,0 +1,55 @@ +from functools import partial + + +godhome_event_names = ["Godhome_Flower_Quest", "Defeated_Pantheon_5", "GG_Atrium_Roof", "Defeated_Pantheon_1", "Defeated_Pantheon_2", "Defeated_Pantheon_3", "Opened_Pantheon_4", "Defeated_Pantheon_4", "GG_Atrium", "Hit_Pantheon_5_Unlock_Orb", "GG_Workshop", "Can_Damage_Crystal_Guardian", 'Defeated_Any_Soul_Warrior', "Defeated_Colosseum_3", "COMBAT[Radiance]", "COMBAT[Pantheon_1]", "COMBAT[Pantheon_2]", "COMBAT[Pantheon_3]", "COMBAT[Pantheon_4]", "COMBAT[Pantheon_5]", "COMBAT[Colosseum_3]", 'Warp-Junk_Pit_to_Godhome', 'Bench-Godhome_Atrium', 'Bench-Hall_of_Gods', "GODTUNERUNLOCK", "GG_Waterways", "Warp-Godhome_to_Junk_Pit", "NAILCOMBAT", "BOSS", "AERIALMINIBOSS"] + + +def set_godhome_rules(hk_world, hk_set_rule): + player = hk_world.player + fn = partial(hk_set_rule, hk_world) + + required_events = { + "Godhome_Flower_Quest": lambda state: state.count('Defeated_Pantheon_5', player) and state.count('Room_Mansion[left1]', player) and state.count('Fungus3_49[right1]', player), + + "Defeated_Pantheon_5": lambda state: state.has('GG_Atrium_Roof', player) and state.has('WINGS', player) and (state.has('LEFTCLAW', player) or state.has('RIGHTCLAW', player)) and ((state.has('Defeated_Pantheon_1', player) and state.has('Defeated_Pantheon_2', player) and state.has('Defeated_Pantheon_3', player) and state.has('Defeated_Pantheon_4', player) and state.has('COMBAT[Radiance]', player))), + "GG_Atrium_Roof": lambda state: state.has('GG_Atrium', player) and state.has('Hit_Pantheon_5_Unlock_Orb', player) and state.has('LEFTCLAW', player), + + "Defeated_Pantheon_1": lambda state: state.has('GG_Atrium', player) and ((state.has('Defeated_Gruz_Mother', player) and state.has('Defeated_False_Knight', player) and (state.has('Fungus1_29[left1]', player) or state.has('Fungus1_29[right1]', player)) and state.has('Defeated_Hornet_1', player) and state.has('Defeated_Gorb', player) and state.has('Defeated_Dung_Defender', player) and state.has('Defeated_Any_Soul_Warrior', player) and state.has('Defeated_Brooding_Mawlek', player))), + "Defeated_Pantheon_2": lambda state: state.has('GG_Atrium', player) and ((state.has('Defeated_Xero', player) and state.has('Defeated_Crystal_Guardian', player) and state.has('Defeated_Soul_Master', player) and state.has('Defeated_Colosseum_2', player) and state.has('Defeated_Mantis_Lords', player) and state.has('Defeated_Marmu', player) and state.has('Defeated_Nosk', player) and state.has('Defeated_Flukemarm', player) and state.has('Defeated_Broken_Vessel', player))), + "Defeated_Pantheon_3": lambda state: state.has('GG_Atrium', player) and ((state.has('Defeated_Hive_Knight', player) and state.has('Defeated_Elder_Hu', player) and state.has('Defeated_Collector', player) and state.has('Defeated_Colosseum_2', player) and state.has('Defeated_Grimm', player) and state.has('Defeated_Galien', player) and state.has('Defeated_Uumuu', player) and state.has('Defeated_Hornet_2', player))), + "Opened_Pantheon_4": lambda state: state.has('GG_Atrium', player) and (state.has('Defeated_Pantheon_1', player) and state.has('Defeated_Pantheon_2', player) and state.has('Defeated_Pantheon_3', player)), + "Defeated_Pantheon_4": lambda state: state.has('GG_Atrium', player) and state.has('Opened_Pantheon_4', player) and ((state.has('Defeated_Enraged_Guardian', player) and state.has('Defeated_Broken_Vessel', player) and state.has('Defeated_No_Eyes', player) and state.has('Defeated_Traitor_Lord', player) and state.has('Defeated_Dung_Defender', player) and state.has('Defeated_False_Knight', player) and state.has('Defeated_Markoth', player) and state.has('Defeated_Watcher_Knights', player) and state.has('Defeated_Soul_Master', player))), + "GG_Atrium": lambda state: state.has('Warp-Junk_Pit_to_Godhome', player) and (state.has('RIGHTCLAW', player) or state.has('WINGS', player) or state.has('LEFTCLAW', player) and state.has('RIGHTSUPERDASH', player)) or state.has('GG_Workshop', player) and (state.has('LEFTCLAW', player) or state.has('RIGHTCLAW', player) and state.has('WINGS', player)) or state.has('Bench-Godhome_Atrium', player), + "Hit_Pantheon_5_Unlock_Orb": lambda state: state.has('GG_Atrium', player) and state.has('WINGS', player) and (state.has('LEFTCLAW', player) or state.has('RIGHTCLAW', player)) and (((state.has('Queen_Fragment', player) and state.has('King_Fragment', player) and state.has('Void_Heart', player)) and state.has('Defeated_Pantheon_1', player) and state.has('Defeated_Pantheon_2', player) and state.has('Defeated_Pantheon_3', player) and state.has('Defeated_Pantheon_4', player))), + "GG_Workshop": lambda state: state.has('GG_Atrium', player) or state.has('Bench-Hall_of_Gods', player), + "Can_Damage_Crystal_Guardian": lambda state: state.has('UPSLASH', player) or state.has('LEFTSLASH', player) or state.has('RIGHTSLASH', player) or state._hk_option(player, 'ProficientCombat') and (state.has('CYCLONE', player) or state.has('Great_Slash', player)) or (state._hk_option(player, 'DifficultSkips') and state._hk_option(player, 'ProficientCombat')) and (state.has('CYCLONE', player) or state.has('Great_Slash', player)) and (state.has('DREAMNAIL', player) and (state.has('SPELLS', player) or state.has('FOCUS', player) and state.has('Spore_Shroom', player) or state.has('Glowing_Womb', player)) or state.has('Weaversong', player)), + 'Defeated_Any_Soul_Warrior': lambda state: state.has('Defeated_Sanctum_Warrior', player) or state.has('Defeated_Elegant_Warrior', player) or state.has('Room_Colosseum_01[left1]', player) and state.has('Defeated_Colosseum_3', player), + "Defeated_Colosseum_3": lambda state: state.has('Room_Colosseum_01[left1]', player) and state.has('Can_Replenish_Geo', player) and ((state.has('LEFTCLAW', player) or state.has('RIGHTCLAW', player)) or ((state._hk_option(player, 'DifficultSkips') and state._hk_option(player, 'ProficientCombat')) and state.has('WINGS', player))) and state.has('COMBAT[Colosseum_3]', player), + + # MACROS + "COMBAT[Radiance]": lambda state: (state.has('LEFTDASH', player) and state.has('RIGHTDASH', player)) and ((((state.count('LEFTDASH', player) > 1 or state.count('RIGHTDASH', player) > 1) and state.has('LEFTDASH', player)) and ((state.count('LEFTDASH', player) > 1 or state.count('RIGHTDASH', player) > 1) and state.has('RIGHTDASH', player))) or state.has('QUAKE', player)) and (state.count('FIREBALL', player) > 1 and state.has('UPSLASH', player) or state.count('SCREAM', player) > 1 and state.has('UPSLASH', player) or state._hk_option(player, 'RemoveSpellUpgrades') and (state.has('FIREBALL', player) or state.has('SCREAM', player)) and state.has('UPSLASH', player) or state._hk_option(player, 'ProficientCombat') and (state.has('FIREBALL', player) or state.has('SCREAM', player)) and (state.has('UPSLASH', player) or (state.has('LEFTSLASH', player) or state.has('RIGHTSLASH', player)) or state.has('Great_Slash', player)) or (state._hk_option(player, 'DifficultSkips') and state._hk_option(player, 'ProficientCombat'))), + "COMBAT[Pantheon_1]": lambda state: state.has('AERIALMINIBOSS', player) and state.count('SPELLS', player) > 1 and (state.has('FOCUS', player) or (state._hk_option(player, 'DifficultSkips') and state._hk_option(player, 'ProficientCombat'))), + "COMBAT[Pantheon_2]": lambda state: state.has('AERIALMINIBOSS', player) and state.count('SPELLS', player) > 1 and (state.has('FOCUS', player) or (state._hk_option(player, 'DifficultSkips') and state._hk_option(player, 'ProficientCombat'))) and state.has('Can_Damage_Crystal_Guardian', player), + "COMBAT[Pantheon_3]": lambda state: state.has('AERIALMINIBOSS', player) and state.count('SPELLS', player) > 1 and (state.has('FOCUS', player) or (state._hk_option(player, 'DifficultSkips') and state._hk_option(player, 'ProficientCombat'))), + "COMBAT[Pantheon_4]": lambda state: state.has('AERIALMINIBOSS', player) and (state.has('FOCUS', player) or (state._hk_option(player, 'DifficultSkips') and state._hk_option(player, 'ProficientCombat'))) and state.has('Can_Damage_Crystal_Guardian', player) and (state.has('LEFTDASH', player) and state.has('RIGHTDASH', player)) and ((((state.count('LEFTDASH', player) > 1 or state.count('RIGHTDASH', player) > 1) and state.has('LEFTDASH', player)) and ((state.count('LEFTDASH', player) > 1 or state.count('RIGHTDASH', player) > 1) and state.has('RIGHTDASH', player))) or state.has('QUAKE', player)) and (state.count('FIREBALL', player) > 1 and state.has('UPSLASH', player) or state.count('SCREAM', player) > 1 and state.has('UPSLASH', player) or state._hk_option(player, 'RemoveSpellUpgrades') and (state.has('FIREBALL', player) or state.has('SCREAM', player)) and state.has('UPSLASH', player) or state._hk_option(player, 'ProficientCombat') and (state.has('FIREBALL', player) or state.has('SCREAM', player)) and (state.has('UPSLASH', player) or (state.has('LEFTSLASH', player) or state.has('RIGHTSLASH', player)) or state.has('Great_Slash', player)) or (state._hk_option(player, 'DifficultSkips') and state._hk_option(player, 'ProficientCombat'))), + "COMBAT[Pantheon_5]": lambda state: state.has('AERIALMINIBOSS', player) and state.has('FOCUS', player) and state.has('Can_Damage_Crystal_Guardian', player) and (state.has('LEFTDASH', player) and state.has('RIGHTDASH', player)) and ((((state.count('LEFTDASH', player) > 1 or state.count('RIGHTDASH', player) > 1) and state.has('LEFTDASH', player)) and ((state.count('LEFTDASH', player) > 1 or state.count('RIGHTDASH', player) > 1) and state.has('RIGHTDASH', player))) or state.has('QUAKE', player)) and (state.count('FIREBALL', player) > 1 and state.has('UPSLASH', player) or state.count('SCREAM', player) > 1 and state.has('UPSLASH', player) or state._hk_option(player, 'RemoveSpellUpgrades') and (state.has('FIREBALL', player) or state.has('SCREAM', player)) and state.has('UPSLASH', player) or state._hk_option(player, 'ProficientCombat') and (state.has('FIREBALL', player) or state.has('SCREAM', player)) and (state.has('UPSLASH', player) or (state.has('LEFTSLASH', player) or state.has('RIGHTSLASH', player)) or state.has('Great_Slash', player)) or (state._hk_option(player, 'DifficultSkips') and state._hk_option(player, 'ProficientCombat'))), + "COMBAT[Colosseum_3]": lambda state: state.has('BOSS', player) and (state.has('FOCUS', player) or (state._hk_option(player, 'DifficultSkips') and state._hk_option(player, 'ProficientCombat'))), + + # MISC + 'Warp-Junk_Pit_to_Godhome': lambda state: state.has('GG_Waterways', player) and state.has('GODTUNERUNLOCK', player) and state.has('DREAMNAIL', player), + 'Bench-Godhome_Atrium': lambda state: state.has('GG_Atrium', player) and (state.has('RIGHTCLAW', player) and (state.has('RIGHTDASH', player) or state.has('LEFTCLAW', player) and state.has('RIGHTSUPERDASH', player) or state.has('WINGS', player)) or state.has('LEFTCLAW', player) and state.has('WINGS', player)), + 'Bench-Hall_of_Gods': lambda state: state.has('GG_Workshop', player) and ((state.has('LEFTCLAW', player) or state.has('RIGHTCLAW', player))), + + "GODTUNERUNLOCK": lambda state: state.count('SIMPLE', player) > 3, + "GG_Waterways": lambda state: state.has('GG_Waterways[door1]', player) or state.has('GG_Waterways[right1]', player) and (state.has('LEFTSUPERDASH', player) or state.has('SWIM', player)) or state.has('Warp-Godhome_to_Junk_Pit', player), + "Warp-Godhome_to_Junk_Pit": lambda state: state.has('Warp-Junk_Pit_to_Godhome', player) or state.has('GG_Atrium', player), + + # COMBAT MACROS + "NAILCOMBAT": lambda state: (state.has('LEFTSLASH', player) or state.has('RIGHTSLASH', player)) or state.has('UPSLASH', player) or state._hk_option(player, 'ProficientCombat') and (state.has('CYCLONE', player) or state.has('Great_Slash', player)) or (state._hk_option(player, 'DifficultSkips') and state._hk_option(player, 'ProficientCombat')), + "BOSS": lambda state: state.count('SPELLS', player) > 1 and ((state.has('LEFTDASH', player) or state.has('RIGHTDASH', player)) and ((state.has('LEFTSLASH', player) or state.has('RIGHTSLASH', player)) or state.has('UPSLASH', player)) or state._hk_option(player, 'ProficientCombat') and state.has('NAILCOMBAT', player)), + "AERIALMINIBOSS": lambda state: (state.has('FIREBALL', player) or state.has('SCREAM', player)) and (state.has('LEFTDASH', player) or state.has('RIGHTDASH', player)) and ((state.has('LEFTSLASH', player) or state.has('RIGHTSLASH', player)) or state.has('UPSLASH', player)) or state._hk_option(player, 'ProficientCombat') and (state.has('FIREBALL', player) or state.has('SCREAM', player)) and ((state.has('LEFTSLASH', player) or state.has('RIGHTSLASH', player)) or state.has('UPSLASH', player)) or (state._hk_option(player, 'DifficultSkips') and state._hk_option(player, 'ProficientCombat')) and ((state.has('LEFTSLASH', player) or state.has('RIGHTSLASH', player)) or state.has('UPSLASH', player) or state.has('CYCLONE', player) or state.has('Great_Slash', player)), + + } + + for item, rule in required_events.items(): + fn(item, rule) diff --git a/worlds/hk/Items.py b/worlds/hk/Items.py index 72878dfc71..0d4ab3d55f 100644 --- a/worlds/hk/Items.py +++ b/worlds/hk/Items.py @@ -1,5 +1,6 @@ from typing import Dict, Set, NamedTuple from .ExtractedData import items, logic_items, item_effects +from .GodhomeData import godhome_event_names item_table = {} @@ -14,6 +15,9 @@ for i, (item_name, item_type) in enumerate(items.items(), start=0x1000000): item_table[item_name] = HKItemData(advancement=item_name in logic_items or item_name in item_effects, id=i, type=item_type) +for item_name in godhome_event_names: + item_table[item_name] = HKItemData(advancement=True, id=None, type=None) + lookup_id_to_name: Dict[int, str] = {data.id: item_name for item_name, data in item_table.items()} lookup_type_to_names: Dict[str, Set[str]] = {} for item, item_data in item_table.items(): diff --git a/worlds/hk/Options.py b/worlds/hk/Options.py index 70c7c16896..f7b4420c74 100644 --- a/worlds/hk/Options.py +++ b/worlds/hk/Options.py @@ -397,8 +397,8 @@ class Goal(Choice): option_hollowknight = 1 option_siblings = 2 option_radiance = 3 - # Client support exists for this, but logic is a nightmare - # option_godhome = 4 + option_godhome = 4 + option_godhome_flower = 5 default = 0 diff --git a/worlds/hk/Rules.py b/worlds/hk/Rules.py index 2dc512eca7..a3c7e13cf0 100644 --- a/worlds/hk/Rules.py +++ b/worlds/hk/Rules.py @@ -1,6 +1,7 @@ from ..generic.Rules import set_rule, add_rule from ..AutoWorld import World from .GeneratedRules import set_generated_rules +from .GodhomeData import set_godhome_rules from typing import NamedTuple @@ -39,6 +40,7 @@ def hk_set_rule(hk_world: World, location: str, rule): def set_rules(hk_world: World): player = hk_world.player set_generated_rules(hk_world, hk_set_rule) + set_godhome_rules(hk_world, hk_set_rule) # Shop costs for location in hk_world.multiworld.get_locations(player): diff --git a/worlds/hk/__init__.py b/worlds/hk/__init__.py index 25337598ec..4057cded9a 100644 --- a/worlds/hk/__init__.py +++ b/worlds/hk/__init__.py @@ -307,6 +307,12 @@ class HKWorld(World): randomized = True _add("Elevator_Pass", "Elevator_Pass", randomized) + # check for any goal that godhome events are relevant to + if self.multiworld.Goal[self.player] in [Goal.option_godhome, Goal.option_godhome_flower]: + from .GodhomeData import godhome_event_names + for item_name in godhome_event_names: + _add(item_name, item_name, False) + for shop, locations in self.created_multi_locations.items(): for _ in range(len(locations), getattr(self.multiworld, shop_to_option[shop])[self.player].value): loc = self.create_location(shop) @@ -431,6 +437,10 @@ class HKWorld(World): world.completion_condition[player] = lambda state: state._hk_siblings_ending(player) elif goal == Goal.option_radiance: world.completion_condition[player] = lambda state: state._hk_can_beat_radiance(player) + elif goal == Goal.option_godhome: + world.completion_condition[player] = lambda state: state.count("Defeated_Pantheon_5", player) + elif goal == Goal.option_godhome_flower: + world.completion_condition[player] = lambda state: state.count("Godhome_Flower_Quest", player) else: # Any goal world.completion_condition[player] = lambda state: state._hk_can_beat_thk(player) or state._hk_can_beat_radiance(player) From b007a42487f35ddf464ba63e0d4bf1850c9116ff Mon Sep 17 00:00:00 2001 From: Rjosephson Date: Tue, 9 Apr 2024 13:14:18 -0600 Subject: [PATCH 09/10] Ror2: Add progressive stages option (#2813) --- worlds/ror2/__init__.py | 27 +++++++++++++++++++++------ worlds/ror2/docs/en_Risk of Rain 2.md | 1 - worlds/ror2/items.py | 2 +- worlds/ror2/options.py | 13 +++++++++++++ worlds/ror2/rules.py | 23 ++++++++++------------- worlds/ror2/test/test_mithrix_goal.py | 4 +++- 6 files changed, 48 insertions(+), 22 deletions(-) diff --git a/worlds/ror2/__init__.py b/worlds/ror2/__init__.py index 6574a176dc..5afdb797e7 100644 --- a/worlds/ror2/__init__.py +++ b/worlds/ror2/__init__.py @@ -44,8 +44,8 @@ class RiskOfRainWorld(World): } location_name_to_id = item_pickups - data_version = 8 - required_client_version = (0, 4, 4) + data_version = 9 + required_client_version = (0, 4, 5) web = RiskOfWeb() total_revivals: int @@ -91,6 +91,17 @@ class RiskOfRainWorld(World): # only mess with the environments if they are set as items if self.options.goal == "explore": + # check to see if the user doesn't want to use stages, and to figure out what type of stages are being used. + if not self.options.require_stages: + if not self.options.progressive_stages: + self.multiworld.push_precollected(self.multiworld.create_item("Stage 1", self.player)) + self.multiworld.push_precollected(self.multiworld.create_item("Stage 2", self.player)) + self.multiworld.push_precollected(self.multiworld.create_item("Stage 3", self.player)) + self.multiworld.push_precollected(self.multiworld.create_item("Stage 4", self.player)) + else: + for _ in range(4): + self.multiworld.push_precollected(self.multiworld.create_item("Progressive Stage", self.player)) + # figure out all available ordered stages for each tier environment_available_orderedstages_table = environment_vanilla_orderedstages_table if self.options.dlc_sotv: @@ -121,8 +132,12 @@ class RiskOfRainWorld(World): total_locations = self.options.total_locations.value else: # explore mode - # Add Stage items for logic gates - itempool += ["Stage 1", "Stage 2", "Stage 3", "Stage 4"] + + # Add Stage items to the pool + if self.options.require_stages: + itempool += ["Stage 1", "Stage 2", "Stage 3", "Stage 4"] if not self.options.progressive_stages else \ + ["Progressive Stage"] * 4 + total_locations = len( get_locations( chests=self.options.chests_per_stage.value, @@ -206,8 +221,8 @@ class RiskOfRainWorld(World): options_dict = self.options.as_dict("item_pickup_step", "shrine_use_step", "goal", "victory", "total_locations", "chests_per_stage", "shrines_per_stage", "scavengers_per_stage", "scanner_per_stage", "altars_per_stage", "total_revivals", - "start_with_revive", "final_stage_death", "death_link", - casing="camel") + "start_with_revive", "final_stage_death", "death_link", "require_stages", + "progressive_stages", casing="camel") return { **options_dict, "seed": "".join(self.random.choice(string.digits) for _ in range(16)), diff --git a/worlds/ror2/docs/en_Risk of Rain 2.md b/worlds/ror2/docs/en_Risk of Rain 2.md index b2210e348d..651c89a339 100644 --- a/worlds/ror2/docs/en_Risk of Rain 2.md +++ b/worlds/ror2/docs/en_Risk of Rain 2.md @@ -57,7 +57,6 @@ options apply, so each Risk of Rain 2 player slot in the multiworld needs to be for example, have two players trade off hosting and making progress on each other's player slot, but a single co-op instance can't make progress towards multiple player slots in the multiworld. -Explore mode is untested in multiplayer and will likely not work until a later release. ## What Risk of Rain items can appear in other players' worlds? diff --git a/worlds/ror2/items.py b/worlds/ror2/items.py index 449686d04b..3586030816 100644 --- a/worlds/ror2/items.py +++ b/worlds/ror2/items.py @@ -59,7 +59,7 @@ stage_table: Dict[str, RiskOfRainItemData] = { "Stage 2": RiskOfRainItemData("Stage", 2 + stage_offset, ItemClassification.progression), "Stage 3": RiskOfRainItemData("Stage", 3 + stage_offset, ItemClassification.progression), "Stage 4": RiskOfRainItemData("Stage", 4 + stage_offset, ItemClassification.progression), - + "Progressive Stage": RiskOfRainItemData("Stage", 5 + stage_offset, ItemClassification.progression), } item_table = {**upgrade_table, **other_table, **filler_table, **trap_table, **stage_table} diff --git a/worlds/ror2/options.py b/worlds/ror2/options.py index abb8e91da2..066c8c8545 100644 --- a/worlds/ror2/options.py +++ b/worlds/ror2/options.py @@ -151,6 +151,17 @@ class DLC_SOTV(Toggle): display_name = "Enable DLC - SOTV" +class RequireStages(DefaultOnToggle): + """Add Stage items to the pool to block access to the next set of environments.""" + display_name = "Require Stages" + + +class ProgressiveStages(DefaultOnToggle): + """This will convert Stage items to be a progressive item. For example instead of "Stage 2" it would be + "Progressive Stage" """ + display_name = "Progressive Stages" + + class GreenScrap(Range): """Weight of Green Scraps in the item pool. @@ -378,6 +389,8 @@ class ROR2Options(PerGameCommonOptions): start_with_revive: StartWithRevive final_stage_death: FinalStageDeath dlc_sotv: DLC_SOTV + require_stages: RequireStages + progressive_stages: ProgressiveStages death_link: DeathLink item_pickup_step: ItemPickupStep shrine_use_step: ShrineUseStep diff --git a/worlds/ror2/rules.py b/worlds/ror2/rules.py index b4d5fe68b8..2e6b018f42 100644 --- a/worlds/ror2/rules.py +++ b/worlds/ror2/rules.py @@ -15,6 +15,13 @@ def has_entrance_access_rule(multiworld: MultiWorld, stage: str, region: str, pl entrance.access_rule = rule +def has_stage_access_rule(multiworld: MultiWorld, stage: str, amount: int, region: str, player: int) -> None: + rule = lambda state: state.has(region, player) and \ + (state.has(stage, player) or state.count("Progressive Stage", player) >= amount) + for entrance in multiworld.get_region(region, player).entrances: + entrance.access_rule = rule + + def has_all_items(multiworld: MultiWorld, items: Set[str], region: str, player: int) -> None: rule = lambda state: state.has_all(items, player) and state.has(region, player) for entrance in multiworld.get_region(region, player).entrances: @@ -43,15 +50,6 @@ def check_location(state, environment: str, player: int, item_number: int, item_ return state.can_reach(f"{environment}: {item_name} {item_number - 1}", "Location", player) -# unlock event to next set of stages -def get_stage_event(multiworld: MultiWorld, player: int, stage_number: int) -> None: - if stage_number == 4: - return - rule = lambda state: state.has(f"Stage {stage_number + 1}", player) - for entrance in multiworld.get_region(f"OrderedStage_{stage_number + 1}", player).entrances: - entrance.access_rule = rule - - def set_rules(ror2_world: "RiskOfRainWorld") -> None: player = ror2_world.player multiworld = ror2_world.multiworld @@ -124,8 +122,7 @@ def set_rules(ror2_world: "RiskOfRainWorld") -> None: for newt in range(1, newts + 1): has_location_access_rule(multiworld, environment_name, player, newt, "Newt Altar") if i > 0: - has_entrance_access_rule(multiworld, f"Stage {i}", environment_name, player) - get_stage_event(multiworld, player, i) + has_stage_access_rule(multiworld, f"Stage {i}", i, environment_name, player) if ror2_options.dlc_sotv: for i in range(len(environment_sotv_orderedstages_table)): @@ -143,10 +140,10 @@ def set_rules(ror2_world: "RiskOfRainWorld") -> None: for newt in range(1, newts + 1): has_location_access_rule(multiworld, environment_name, player, newt, "Newt Altar") if i > 0: - has_entrance_access_rule(multiworld, f"Stage {i}", environment_name, player) + has_stage_access_rule(multiworld, f"Stage {i}", i, environment_name, player) has_entrance_access_rule(multiworld, "Hidden Realm: A Moment, Fractured", "Hidden Realm: A Moment, Whole", player) - has_entrance_access_rule(multiworld, "Stage 1", "Hidden Realm: Bazaar Between Time", player) + has_stage_access_rule(multiworld, "Stage 1", 1, "Hidden Realm: Bazaar Between Time", player) has_entrance_access_rule(multiworld, "Hidden Realm: Bazaar Between Time", "Void Fields", player) has_entrance_access_rule(multiworld, "Stage 5", "Commencement", player) has_entrance_access_rule(multiworld, "Stage 5", "Hidden Realm: A Moment, Fractured", player) diff --git a/worlds/ror2/test/test_mithrix_goal.py b/worlds/ror2/test/test_mithrix_goal.py index 03b8231178..a52301bef5 100644 --- a/worlds/ror2/test/test_mithrix_goal.py +++ b/worlds/ror2/test/test_mithrix_goal.py @@ -3,7 +3,9 @@ from . import RoR2TestBase class MithrixGoalTest(RoR2TestBase): options = { - "victory": "mithrix" + "victory": "mithrix", + "require_stages": "true", + "progressive_stages": "false" } def test_mithrix(self) -> None: From 0ba6d90bb8d392e4529521aedc69888409c90537 Mon Sep 17 00:00:00 2001 From: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> Date: Wed, 10 Apr 2024 00:05:02 -0400 Subject: [PATCH 10/10] Fix typo (#3094) --- worlds/yoshisisland/__init__.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/worlds/yoshisisland/__init__.py b/worlds/yoshisisland/__init__.py index b5d7e137b5..f1aba3018b 100644 --- a/worlds/yoshisisland/__init__.py +++ b/worlds/yoshisisland/__init__.py @@ -32,8 +32,7 @@ class YoshisIslandWeb(WebWorld): setup_en = Tutorial( "Multiworld Setup Guide", - "A guide to setting up the Yoshi's Island randomizer" - "and connecting to an Archipelago server.", + "A guide to setting up the Yoshi's Island randomizer and connecting to an Archipelago server.", "English", "setup_en.md", "setup/en",