diff options
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | python-randovania.spec | 790 | ||||
-rw-r--r-- | sources | 1 |
3 files changed, 792 insertions, 0 deletions
@@ -0,0 +1 @@ +/randovania-5.7.0.tar.gz diff --git a/python-randovania.spec b/python-randovania.spec new file mode 100644 index 0000000..44cb2e1 --- /dev/null +++ b/python-randovania.spec @@ -0,0 +1,790 @@ +%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 +<!-- The Begin and End comments throughout this document are used in order to pull specific sections of the readme into the main GUI window at runtime. --> + +# 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/). + +<!-- Begin SUPPORTED --> + +### Supported Games + - Cave Story + - Metroid Dread + - Metroid Prime + - Metroid Prime 2: Echoes + +<!-- End SUPPORTED --> + +<!-- Begin EXPERIMENTAL --> + +### Experimental Games + - Metroid Prime 3: Corruption + - Metroid: Samus Returns + - Super Metroid + +<!-- End EXPERIMENTAL --> + +<!-- Begin WELCOME --> + +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. + +<!-- End WELCOME --> + +# 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 + +<!-- Begin COMMUNITY --> + +# Community + +Join the Randovania Discord: <https://discord.gg/M23gCxj6fw> + +Invite links for specific games' servers can be found in the `#game-communities` channel in our server. + +<!-- End COMMUNITY --> + +<!-- Begin CREDITS --> + +# 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 <https://randomizer.metroidprime.run/>, 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). + +<!-- End CREDITS --> + +# 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 +<!-- The Begin and End comments throughout this document are used in order to pull specific sections of the readme into the main GUI window at runtime. --> + +# 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/). + +<!-- Begin SUPPORTED --> + +### Supported Games + - Cave Story + - Metroid Dread + - Metroid Prime + - Metroid Prime 2: Echoes + +<!-- End SUPPORTED --> + +<!-- Begin EXPERIMENTAL --> + +### Experimental Games + - Metroid Prime 3: Corruption + - Metroid: Samus Returns + - Super Metroid + +<!-- End EXPERIMENTAL --> + +<!-- Begin WELCOME --> + +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. + +<!-- End WELCOME --> + +# 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 + +<!-- Begin COMMUNITY --> + +# Community + +Join the Randovania Discord: <https://discord.gg/M23gCxj6fw> + +Invite links for specific games' servers can be found in the `#game-communities` channel in our server. + +<!-- End COMMUNITY --> + +<!-- Begin CREDITS --> + +# 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 <https://randomizer.metroidprime.run/>, 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). + +<!-- End CREDITS --> + +# 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 +<!-- The Begin and End comments throughout this document are used in order to pull specific sections of the readme into the main GUI window at runtime. --> + +# 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/). + +<!-- Begin SUPPORTED --> + +### Supported Games + - Cave Story + - Metroid Dread + - Metroid Prime + - Metroid Prime 2: Echoes + +<!-- End SUPPORTED --> + +<!-- Begin EXPERIMENTAL --> + +### Experimental Games + - Metroid Prime 3: Corruption + - Metroid: Samus Returns + - Super Metroid + +<!-- End EXPERIMENTAL --> + +<!-- Begin WELCOME --> + +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. + +<!-- End WELCOME --> + +# 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 + +<!-- Begin COMMUNITY --> + +# Community + +Join the Randovania Discord: <https://discord.gg/M23gCxj6fw> + +Invite links for specific games' servers can be found in the `#game-communities` channel in our server. + +<!-- End COMMUNITY --> + +<!-- Begin CREDITS --> + +# 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 <https://randomizer.metroidprime.run/>, 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). + +<!-- End CREDITS --> + +# 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 <Python_Bot@openeuler.org> - 5.7.0-1 +- Package Spec generated @@ -0,0 +1 @@ +e434f4d3f234fe4a05c9b48873af180f randovania-5.7.0.tar.gz |