%global _empty_manifest_terminate_build 0 Name: python-randovania Version: 5.7.0 Release: 1 Summary: A randomizer platform for a multitude of games. License: GNU General Public License v3 or later (GPLv3+) URL: https://github.com/randovania/randovania Source0: https://mirrors.nju.edu.cn/pypi/web/packages/5e/dc/ab9352dc69c644ec30df45a6caa4ddc37c2091829e06cf03154b3f72bc64/randovania-5.7.0.tar.gz BuildArch: noarch Requires: python3-networkx Requires: python3-bitstruct Requires: python3-construct Requires: python3-tenacity Requires: python3-slugify Requires: python3-socketio[asyncio_client] Requires: python3-aiohttp Requires: python3-aiofiles Requires: python3-attrs Requires: python3-frozendict Requires: python3-dulwich Requires: python3-py-randomprime Requires: python3-mp2hudcolor Requires: python3-retro-data-structures Requires: python3-SuperDuperMetroid Requires: python3-open-dread-rando Requires: python3-open-prime-rando Requires: python3-cave-story-randomizer Requires: python3-tsc-utils Requires: python3-random-enemy-attributes Requires: python3-sentry-sdk Requires: python3-PySide6-Essentials Requires: python3-appdirs Requires: python3-qasync Requires: python3-async-wiiload Requires: python3-dolphin-memory-engine Requires: python3-markdown Requires: python3-matplotlib Requires: python3-nod Requires: python3-pid Requires: python3-pypresence Requires: python3-pyqtdarktheme Requires: python3-cryptography Requires: python3-py-cord Requires: python3-eventlet Requires: python3-flask-discord Requires: python3-flask-socketio Requires: python3-prometheus-flask-exporter Requires: python3-peewee Requires: python3-requests-oauthlib Requires: python3-Pillow Requires: python3-graphviz Requires: python3-sentry-sdk[flask] Requires: python3-cachetools Requires: python3-pytest Requires: python3-pytest-cov Requires: python3-pytest-qt Requires: python3-pytest-asyncio Requires: python3-pytest-mock Requires: python3-pytest-localftpserver Requires: python3-pytest-xdist[psutil] Requires: python3-mock %description # Randovania Welcome to Randovania, a randomizer platform for a multitude of games. New here or looking to install? Check [our website](https://randovania.github.io/). ### Supported Games - Cave Story - Metroid Dread - Metroid Prime - Metroid Prime 2: Echoes ### Experimental Games - Metroid Prime 3: Corruption - Metroid: Samus Returns - Super Metroid Here you will be able to randomize many aspects of either game, while still being ensured it's possible to finish without any trick or glitch! What can be randomized? * Randomize what can be found in each pickup location, including major upgrades, expansions, keys and artifacts. * Play with multiple people, via multiworld sessions. Your pickups will be shuffled among the games of everyone involved, no matter what game they're playing! * Randomize where each teleporter goes, or what you need to unlock a translator gate. In either case, there's advanced options for how they're shuffled. * The location you start the game in as well as the items you start with. If you're feeling brave, you can even shuffle items you normally start with, like the Power Beam and Scan Visor. So have fun and start randomizing. # Installation ## Windows In the [releases page](https://github.com/randovania/randovania/releases), we have zip files with everything ready to use. Just extract and run! ## Linux ### Running (in-source) 1. Clone this repository (downloading the source zip is not supported and will not work) 2. Open a terminal in the repository root 3. Fetch the tags from the repo: `$ git fetch --tags` 4. Checkout the latest tag (replace v4.0.1 with the latest release version): `$ git checkout v4.0.1` 5. Prepare the virtual environment and install dependencies: `$ tools/prepare_virtual_env.sh` 6. Run the program from source: `$ tools/start_client.sh` ### Running Natively and Multiworld 1. Activate the virtual environment and generate the necessary configuration.json, as well as build a native application: ```console $ . venv/bin/activate (venv) $ export PRODUCTION=true (venv) $ python tools/create_release.py ``` 2. Navigate into the build/randovania directory 3. Install the generated randovania.pkg or run the generated executable # Community Join the Randovania Discord: Invite links for specific games' servers can be found in the `#game-communities` channel in our server. # Credits GUI and logic written by [Henrique Gemignani](https://github.com/henriquegemignani/), with contributions by [SpaghettiToastBook](https://www.twitch.tv/spaghettitoastbook), [gollop](https://github.com/gollop) and [many others](https://github.com/randovania/randovania/graphs/contributors). [BashPrime](https://www.twitch.tv/bashprime), [Pwootage](https://github.com/Pwootage), and [April Wade](https://github.com/aprilwade) made , from which the GUI was based. Website created by [Hugoshido](https://twitch.tv/hugoshido). Installer is powered by [Advanced Installer](https://www.advancedinstaller.com/), which has graciously provided us with an open source license. Linux Flatpak build contributed by [Ethan Lee](https://flibitijibibo.com/). ## Games ### Metroid Prime 1 * Game patching via [randomprime](https://github.com/aprilwade/randomprime) from April Wade, with contributions from [UltiNaruto](https://github.com/UltiNaruto), BashPrime and toasterparty. * Room data collected by UltiNaruto, [EthanArmbrust](https://github.com/EthanArmbrust) and [SolventMercury](https://github.com/SolventMercury). * Converting Metroid Prime 2 models by [Migs](https://www.twitch.tv/migslive). ### Metroid Prime 2: Echoes * Game patching written by [Claris](https://www.twitch.tv/claris). * Room data initially collected by Claris, revamped by [Dyceron](https://www.twitch.tv/dyceron). * [Menu Mod](https://www.dropbox.com/s/yhqqafaxfo3l4vn/Echoes%20Menu.7z) created by Claris. For more information, see the [Menu Mod README](https://www.dropbox.com/s/yhqqafaxfo3l4vn/Echoes%20Menu.7z?file_subpath=%2FEchoes+Menu%2Freadme.txt). * Converting Metroid Prime models by [Migs](https://www.twitch.tv/migslive). ### Metroid Prime 3: Corruption * Game patching written by [gollop](https://github.com/gollop). * Room data collected by [Dyceron](https://www.twitch.tv/dyceron) and [KirbymastaH](https://www.twitch.tv/kirbymastah). ### Super Metroid * Game Patching and Logic Database by [SolventMercury](https://github.com/SolventMercury). * Custom Item PLMs patch by [Kazuto](https://github.com/Kazuto88). * Skip Intro Saves patch by [PHOSPHOTiDYL](https://metroidconstruction.com/resource.php?id=265). * Other individual patches by [Total](https://github.com/tewtal), Foosda, Leodox, and others. ### Cave Story * Patcher and logic written by [duncathan_salt](https://twitter.com/duncathan_salt). * Based on the [original randomizer](https://shru.itch.io/cave-story-randomizer) by shru. * Features contributions from [many others](https://github.com/cave-story-randomizer/cave-story-randomizer/graphs/contributors). ### Metroid Dread * Game Patching by: * [Henrique "Darkszero" Gemignani](https://github.com/henriquegemignani/) * [duncathan_salt](https://twitter.com/duncathan_salt) * [ScorelessPine](https://github.com/ScorelessPine) * [Arcanox](https://twitter.com/ArcanoxDragon) * [Migs](https://www.twitch.tv/migslive) * [hyperbola0](https://github.com/steven11sjf) * Logic Database by: * [KirbymastaH](https://www.twitch.tv/kirbymastah) * [Dyceron](https://www.twitch.tv/dyceron) * [XenoWars](https://www.twitch.tv/xenowars1) * [Izzychu](https://github.com/Isachu) * [Hugoshido](https://twitch.tv/hugoshido) * Assets by: * Morph Ball and Speed Booster pickup textures created by [BigSharkZ](https://www.youtube.com/BigSharkZ). * Spider Magnet pickup texture by duncathan_salt with help from BigSharkZ. * New map icons by [SkyTheLucario](https://github.com/TheSkyknight100). ## Auto Tracker * Game theme assets were provided by [MaskedTAS](https://twitter.com/MaskedTAS). * Pixel theme assets were provided by [Uncle Reggie](https://www.twitch.tv/unclereggie). ## Multiworld Server and logic written by Henrique, including Dolphin and Nintendont integrations. These were based on [Dolphin Memory Engine](https://github.com/aldelaro5/Dolphin-memory-engine) and Pwootage's Nintendont fork, respectively. In-game message alert initially written by [encounter](https://github.com/encounter). # Developer Help ## Dependencies * [Python 3.11 64-bit](https://www.python.org/ftp/python/3.11.0/python-3.11.0rc1-amd64.exe) * [Git](https://git-scm.com/downloads) ## Setup Getting started: 1. Clone this repository (downloading the zip is *not* supported and will not work) 2. Open a terminal in the repository root 3. Run the following file: 1. Windows: `tools/prepare_virtual_env.bat` 2. Linux/macOS: `tools/prepare_virtual_env.sh` 4. You should see "Setup finished successfully." visible when the command finishes. In order to start Randovania, open: 1. Windows: `tools/start_client.bat` 2. Linux/macOS: `tools/start_client.sh` In order to update your repository: 1. Update the git repository. (With `git pull` or anything else) 2. Make sure that Randovania is closed. 3. Re-run the steps from "Getting Started", starting at step 2. 1. In case of unexpected errors, delete the `venv` in the root of the repository and start again. 4. Open Randovania normally. In order to run the tests: 1. Run both "Getting started" and "Start Randovania" steps. 2. Activate the virtual env. Check start_client.bat/sh for details. 3. Run `python -m pip install -r requirements.txt`. 4. Run `python -m pytest test`. In order to run the server: 1. Run both "Getting started" and "Start Randovania" steps. 2. Activate the virtual env. Check start_client.bat/sh for details. 3. Run `python -m pip install -r requirements.txt`. 4. Run `python tools/prepare_dev_server_config.py` once. 5. If you wish to use any Discord functionality, you'll need to create an app in Discord and fill both ids in `tools/dev-server-configuration.json`. 6. Run the server with `tools/start_dev_server.bat` and the client with `tools/start_debug_client.bat`. Suggested IDE: [PyCharm Community](https://www.jetbrains.com/pycharm/download/) # Documentation - Unfamiliar with a term? Check the [glossary](docs/Glossary.md). - Adding a new game? Check the [dedicated guide](docs/New%20Game.md). - Changing a data format? Check the [migrations documentation](docs/Migrations.md). - Working with the logic database? - [Read how the database is organized](docs/Database%20Format.md). - Read the [unfinished script for a video](docs/Database%20Editor.md) on how to use the data editor. %package -n python3-randovania Summary: A randomizer platform for a multitude of games. Provides: python-randovania BuildRequires: python3-devel BuildRequires: python3-setuptools BuildRequires: python3-pip %description -n python3-randovania # Randovania Welcome to Randovania, a randomizer platform for a multitude of games. New here or looking to install? Check [our website](https://randovania.github.io/). ### Supported Games - Cave Story - Metroid Dread - Metroid Prime - Metroid Prime 2: Echoes ### Experimental Games - Metroid Prime 3: Corruption - Metroid: Samus Returns - Super Metroid Here you will be able to randomize many aspects of either game, while still being ensured it's possible to finish without any trick or glitch! What can be randomized? * Randomize what can be found in each pickup location, including major upgrades, expansions, keys and artifacts. * Play with multiple people, via multiworld sessions. Your pickups will be shuffled among the games of everyone involved, no matter what game they're playing! * Randomize where each teleporter goes, or what you need to unlock a translator gate. In either case, there's advanced options for how they're shuffled. * The location you start the game in as well as the items you start with. If you're feeling brave, you can even shuffle items you normally start with, like the Power Beam and Scan Visor. So have fun and start randomizing. # Installation ## Windows In the [releases page](https://github.com/randovania/randovania/releases), we have zip files with everything ready to use. Just extract and run! ## Linux ### Running (in-source) 1. Clone this repository (downloading the source zip is not supported and will not work) 2. Open a terminal in the repository root 3. Fetch the tags from the repo: `$ git fetch --tags` 4. Checkout the latest tag (replace v4.0.1 with the latest release version): `$ git checkout v4.0.1` 5. Prepare the virtual environment and install dependencies: `$ tools/prepare_virtual_env.sh` 6. Run the program from source: `$ tools/start_client.sh` ### Running Natively and Multiworld 1. Activate the virtual environment and generate the necessary configuration.json, as well as build a native application: ```console $ . venv/bin/activate (venv) $ export PRODUCTION=true (venv) $ python tools/create_release.py ``` 2. Navigate into the build/randovania directory 3. Install the generated randovania.pkg or run the generated executable # Community Join the Randovania Discord: Invite links for specific games' servers can be found in the `#game-communities` channel in our server. # Credits GUI and logic written by [Henrique Gemignani](https://github.com/henriquegemignani/), with contributions by [SpaghettiToastBook](https://www.twitch.tv/spaghettitoastbook), [gollop](https://github.com/gollop) and [many others](https://github.com/randovania/randovania/graphs/contributors). [BashPrime](https://www.twitch.tv/bashprime), [Pwootage](https://github.com/Pwootage), and [April Wade](https://github.com/aprilwade) made , from which the GUI was based. Website created by [Hugoshido](https://twitch.tv/hugoshido). Installer is powered by [Advanced Installer](https://www.advancedinstaller.com/), which has graciously provided us with an open source license. Linux Flatpak build contributed by [Ethan Lee](https://flibitijibibo.com/). ## Games ### Metroid Prime 1 * Game patching via [randomprime](https://github.com/aprilwade/randomprime) from April Wade, with contributions from [UltiNaruto](https://github.com/UltiNaruto), BashPrime and toasterparty. * Room data collected by UltiNaruto, [EthanArmbrust](https://github.com/EthanArmbrust) and [SolventMercury](https://github.com/SolventMercury). * Converting Metroid Prime 2 models by [Migs](https://www.twitch.tv/migslive). ### Metroid Prime 2: Echoes * Game patching written by [Claris](https://www.twitch.tv/claris). * Room data initially collected by Claris, revamped by [Dyceron](https://www.twitch.tv/dyceron). * [Menu Mod](https://www.dropbox.com/s/yhqqafaxfo3l4vn/Echoes%20Menu.7z) created by Claris. For more information, see the [Menu Mod README](https://www.dropbox.com/s/yhqqafaxfo3l4vn/Echoes%20Menu.7z?file_subpath=%2FEchoes+Menu%2Freadme.txt). * Converting Metroid Prime models by [Migs](https://www.twitch.tv/migslive). ### Metroid Prime 3: Corruption * Game patching written by [gollop](https://github.com/gollop). * Room data collected by [Dyceron](https://www.twitch.tv/dyceron) and [KirbymastaH](https://www.twitch.tv/kirbymastah). ### Super Metroid * Game Patching and Logic Database by [SolventMercury](https://github.com/SolventMercury). * Custom Item PLMs patch by [Kazuto](https://github.com/Kazuto88). * Skip Intro Saves patch by [PHOSPHOTiDYL](https://metroidconstruction.com/resource.php?id=265). * Other individual patches by [Total](https://github.com/tewtal), Foosda, Leodox, and others. ### Cave Story * Patcher and logic written by [duncathan_salt](https://twitter.com/duncathan_salt). * Based on the [original randomizer](https://shru.itch.io/cave-story-randomizer) by shru. * Features contributions from [many others](https://github.com/cave-story-randomizer/cave-story-randomizer/graphs/contributors). ### Metroid Dread * Game Patching by: * [Henrique "Darkszero" Gemignani](https://github.com/henriquegemignani/) * [duncathan_salt](https://twitter.com/duncathan_salt) * [ScorelessPine](https://github.com/ScorelessPine) * [Arcanox](https://twitter.com/ArcanoxDragon) * [Migs](https://www.twitch.tv/migslive) * [hyperbola0](https://github.com/steven11sjf) * Logic Database by: * [KirbymastaH](https://www.twitch.tv/kirbymastah) * [Dyceron](https://www.twitch.tv/dyceron) * [XenoWars](https://www.twitch.tv/xenowars1) * [Izzychu](https://github.com/Isachu) * [Hugoshido](https://twitch.tv/hugoshido) * Assets by: * Morph Ball and Speed Booster pickup textures created by [BigSharkZ](https://www.youtube.com/BigSharkZ). * Spider Magnet pickup texture by duncathan_salt with help from BigSharkZ. * New map icons by [SkyTheLucario](https://github.com/TheSkyknight100). ## Auto Tracker * Game theme assets were provided by [MaskedTAS](https://twitter.com/MaskedTAS). * Pixel theme assets were provided by [Uncle Reggie](https://www.twitch.tv/unclereggie). ## Multiworld Server and logic written by Henrique, including Dolphin and Nintendont integrations. These were based on [Dolphin Memory Engine](https://github.com/aldelaro5/Dolphin-memory-engine) and Pwootage's Nintendont fork, respectively. In-game message alert initially written by [encounter](https://github.com/encounter). # Developer Help ## Dependencies * [Python 3.11 64-bit](https://www.python.org/ftp/python/3.11.0/python-3.11.0rc1-amd64.exe) * [Git](https://git-scm.com/downloads) ## Setup Getting started: 1. Clone this repository (downloading the zip is *not* supported and will not work) 2. Open a terminal in the repository root 3. Run the following file: 1. Windows: `tools/prepare_virtual_env.bat` 2. Linux/macOS: `tools/prepare_virtual_env.sh` 4. You should see "Setup finished successfully." visible when the command finishes. In order to start Randovania, open: 1. Windows: `tools/start_client.bat` 2. Linux/macOS: `tools/start_client.sh` In order to update your repository: 1. Update the git repository. (With `git pull` or anything else) 2. Make sure that Randovania is closed. 3. Re-run the steps from "Getting Started", starting at step 2. 1. In case of unexpected errors, delete the `venv` in the root of the repository and start again. 4. Open Randovania normally. In order to run the tests: 1. Run both "Getting started" and "Start Randovania" steps. 2. Activate the virtual env. Check start_client.bat/sh for details. 3. Run `python -m pip install -r requirements.txt`. 4. Run `python -m pytest test`. In order to run the server: 1. Run both "Getting started" and "Start Randovania" steps. 2. Activate the virtual env. Check start_client.bat/sh for details. 3. Run `python -m pip install -r requirements.txt`. 4. Run `python tools/prepare_dev_server_config.py` once. 5. If you wish to use any Discord functionality, you'll need to create an app in Discord and fill both ids in `tools/dev-server-configuration.json`. 6. Run the server with `tools/start_dev_server.bat` and the client with `tools/start_debug_client.bat`. Suggested IDE: [PyCharm Community](https://www.jetbrains.com/pycharm/download/) # Documentation - Unfamiliar with a term? Check the [glossary](docs/Glossary.md). - Adding a new game? Check the [dedicated guide](docs/New%20Game.md). - Changing a data format? Check the [migrations documentation](docs/Migrations.md). - Working with the logic database? - [Read how the database is organized](docs/Database%20Format.md). - Read the [unfinished script for a video](docs/Database%20Editor.md) on how to use the data editor. %package help Summary: Development documents and examples for randovania Provides: python3-randovania-doc %description help # Randovania Welcome to Randovania, a randomizer platform for a multitude of games. New here or looking to install? Check [our website](https://randovania.github.io/). ### Supported Games - Cave Story - Metroid Dread - Metroid Prime - Metroid Prime 2: Echoes ### Experimental Games - Metroid Prime 3: Corruption - Metroid: Samus Returns - Super Metroid Here you will be able to randomize many aspects of either game, while still being ensured it's possible to finish without any trick or glitch! What can be randomized? * Randomize what can be found in each pickup location, including major upgrades, expansions, keys and artifacts. * Play with multiple people, via multiworld sessions. Your pickups will be shuffled among the games of everyone involved, no matter what game they're playing! * Randomize where each teleporter goes, or what you need to unlock a translator gate. In either case, there's advanced options for how they're shuffled. * The location you start the game in as well as the items you start with. If you're feeling brave, you can even shuffle items you normally start with, like the Power Beam and Scan Visor. So have fun and start randomizing. # Installation ## Windows In the [releases page](https://github.com/randovania/randovania/releases), we have zip files with everything ready to use. Just extract and run! ## Linux ### Running (in-source) 1. Clone this repository (downloading the source zip is not supported and will not work) 2. Open a terminal in the repository root 3. Fetch the tags from the repo: `$ git fetch --tags` 4. Checkout the latest tag (replace v4.0.1 with the latest release version): `$ git checkout v4.0.1` 5. Prepare the virtual environment and install dependencies: `$ tools/prepare_virtual_env.sh` 6. Run the program from source: `$ tools/start_client.sh` ### Running Natively and Multiworld 1. Activate the virtual environment and generate the necessary configuration.json, as well as build a native application: ```console $ . venv/bin/activate (venv) $ export PRODUCTION=true (venv) $ python tools/create_release.py ``` 2. Navigate into the build/randovania directory 3. Install the generated randovania.pkg or run the generated executable # Community Join the Randovania Discord: Invite links for specific games' servers can be found in the `#game-communities` channel in our server. # Credits GUI and logic written by [Henrique Gemignani](https://github.com/henriquegemignani/), with contributions by [SpaghettiToastBook](https://www.twitch.tv/spaghettitoastbook), [gollop](https://github.com/gollop) and [many others](https://github.com/randovania/randovania/graphs/contributors). [BashPrime](https://www.twitch.tv/bashprime), [Pwootage](https://github.com/Pwootage), and [April Wade](https://github.com/aprilwade) made , from which the GUI was based. Website created by [Hugoshido](https://twitch.tv/hugoshido). Installer is powered by [Advanced Installer](https://www.advancedinstaller.com/), which has graciously provided us with an open source license. Linux Flatpak build contributed by [Ethan Lee](https://flibitijibibo.com/). ## Games ### Metroid Prime 1 * Game patching via [randomprime](https://github.com/aprilwade/randomprime) from April Wade, with contributions from [UltiNaruto](https://github.com/UltiNaruto), BashPrime and toasterparty. * Room data collected by UltiNaruto, [EthanArmbrust](https://github.com/EthanArmbrust) and [SolventMercury](https://github.com/SolventMercury). * Converting Metroid Prime 2 models by [Migs](https://www.twitch.tv/migslive). ### Metroid Prime 2: Echoes * Game patching written by [Claris](https://www.twitch.tv/claris). * Room data initially collected by Claris, revamped by [Dyceron](https://www.twitch.tv/dyceron). * [Menu Mod](https://www.dropbox.com/s/yhqqafaxfo3l4vn/Echoes%20Menu.7z) created by Claris. For more information, see the [Menu Mod README](https://www.dropbox.com/s/yhqqafaxfo3l4vn/Echoes%20Menu.7z?file_subpath=%2FEchoes+Menu%2Freadme.txt). * Converting Metroid Prime models by [Migs](https://www.twitch.tv/migslive). ### Metroid Prime 3: Corruption * Game patching written by [gollop](https://github.com/gollop). * Room data collected by [Dyceron](https://www.twitch.tv/dyceron) and [KirbymastaH](https://www.twitch.tv/kirbymastah). ### Super Metroid * Game Patching and Logic Database by [SolventMercury](https://github.com/SolventMercury). * Custom Item PLMs patch by [Kazuto](https://github.com/Kazuto88). * Skip Intro Saves patch by [PHOSPHOTiDYL](https://metroidconstruction.com/resource.php?id=265). * Other individual patches by [Total](https://github.com/tewtal), Foosda, Leodox, and others. ### Cave Story * Patcher and logic written by [duncathan_salt](https://twitter.com/duncathan_salt). * Based on the [original randomizer](https://shru.itch.io/cave-story-randomizer) by shru. * Features contributions from [many others](https://github.com/cave-story-randomizer/cave-story-randomizer/graphs/contributors). ### Metroid Dread * Game Patching by: * [Henrique "Darkszero" Gemignani](https://github.com/henriquegemignani/) * [duncathan_salt](https://twitter.com/duncathan_salt) * [ScorelessPine](https://github.com/ScorelessPine) * [Arcanox](https://twitter.com/ArcanoxDragon) * [Migs](https://www.twitch.tv/migslive) * [hyperbola0](https://github.com/steven11sjf) * Logic Database by: * [KirbymastaH](https://www.twitch.tv/kirbymastah) * [Dyceron](https://www.twitch.tv/dyceron) * [XenoWars](https://www.twitch.tv/xenowars1) * [Izzychu](https://github.com/Isachu) * [Hugoshido](https://twitch.tv/hugoshido) * Assets by: * Morph Ball and Speed Booster pickup textures created by [BigSharkZ](https://www.youtube.com/BigSharkZ). * Spider Magnet pickup texture by duncathan_salt with help from BigSharkZ. * New map icons by [SkyTheLucario](https://github.com/TheSkyknight100). ## Auto Tracker * Game theme assets were provided by [MaskedTAS](https://twitter.com/MaskedTAS). * Pixel theme assets were provided by [Uncle Reggie](https://www.twitch.tv/unclereggie). ## Multiworld Server and logic written by Henrique, including Dolphin and Nintendont integrations. These were based on [Dolphin Memory Engine](https://github.com/aldelaro5/Dolphin-memory-engine) and Pwootage's Nintendont fork, respectively. In-game message alert initially written by [encounter](https://github.com/encounter). # Developer Help ## Dependencies * [Python 3.11 64-bit](https://www.python.org/ftp/python/3.11.0/python-3.11.0rc1-amd64.exe) * [Git](https://git-scm.com/downloads) ## Setup Getting started: 1. Clone this repository (downloading the zip is *not* supported and will not work) 2. Open a terminal in the repository root 3. Run the following file: 1. Windows: `tools/prepare_virtual_env.bat` 2. Linux/macOS: `tools/prepare_virtual_env.sh` 4. You should see "Setup finished successfully." visible when the command finishes. In order to start Randovania, open: 1. Windows: `tools/start_client.bat` 2. Linux/macOS: `tools/start_client.sh` In order to update your repository: 1. Update the git repository. (With `git pull` or anything else) 2. Make sure that Randovania is closed. 3. Re-run the steps from "Getting Started", starting at step 2. 1. In case of unexpected errors, delete the `venv` in the root of the repository and start again. 4. Open Randovania normally. In order to run the tests: 1. Run both "Getting started" and "Start Randovania" steps. 2. Activate the virtual env. Check start_client.bat/sh for details. 3. Run `python -m pip install -r requirements.txt`. 4. Run `python -m pytest test`. In order to run the server: 1. Run both "Getting started" and "Start Randovania" steps. 2. Activate the virtual env. Check start_client.bat/sh for details. 3. Run `python -m pip install -r requirements.txt`. 4. Run `python tools/prepare_dev_server_config.py` once. 5. If you wish to use any Discord functionality, you'll need to create an app in Discord and fill both ids in `tools/dev-server-configuration.json`. 6. Run the server with `tools/start_dev_server.bat` and the client with `tools/start_debug_client.bat`. Suggested IDE: [PyCharm Community](https://www.jetbrains.com/pycharm/download/) # Documentation - Unfamiliar with a term? Check the [glossary](docs/Glossary.md). - Adding a new game? Check the [dedicated guide](docs/New%20Game.md). - Changing a data format? Check the [migrations documentation](docs/Migrations.md). - Working with the logic database? - [Read how the database is organized](docs/Database%20Format.md). - Read the [unfinished script for a video](docs/Database%20Editor.md) on how to use the data editor. %prep %autosetup -n randovania-5.7.0 %build %py3_build %install %py3_install install -d -m755 %{buildroot}/%{_pkgdocdir} if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi pushd %{buildroot} if [ -d usr/lib ]; then find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/lib64 ]; then find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/bin ]; then find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/sbin ]; then find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst fi touch doclist.lst if [ -d usr/share/man ]; then find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst fi popd mv %{buildroot}/filelist.lst . mv %{buildroot}/doclist.lst . %files -n python3-randovania -f filelist.lst %dir %{python3_sitelib}/* %files help -f doclist.lst %{_docdir}/* %changelog * Mon May 15 2023 Python_Bot - 5.7.0-1 - Package Spec generated