Fork of Archipelago Multi-Game Randomizer and Server that runs on https://ap.hollymcfarland.com
Go to file
Doug Hoskisson aeb78eaa10
Zillion: map tracker in client (#1136)
* Option RangeWithSpecialMax

* amendment to typing in web options

* compare string with number

* lots of work on zillion

* fix zillion fill logic

* fix a few more issues in zillion fill logic

* can make zillion patch and use it

* put multi items in zillion rom

* work on ZillionClient

* logging and auth in client

* work on sending and receiving items

* implement item_handling flag

* fix locations ids to NuktiServer package

* use rewrite of zri

* cache logic rule data for performance

* use new id maps

* fix some problems with the big recent merge

* ZillionClient: use new context manager for Memory class

* fix ItemClassification for Zillion items
and some debug statements for asserts,
documentation on running scripts for manual testing
type correction in CommonContext

* fix some issues in client, start on docs, put rescue and item ram addresses in slot data

* use new location name system
fix item locations getting out of sync in progression balancing

* zillion client can read slot name from game

* zillion: new item names

* remove extra unneeded import

* newer options (room gen and starting cards)

* update comment in zillion patch

* zillion non static regions

* change some logging, update some comments

* allow ZillionClient to exit in certain situations

* todo note to fix options doc strings

* don't force auto forfeit

* rework validation of floppy requirement and item counts
and fix race condition in generate_output

* reorganize Zillion component structure
with System class

* documentation updates for Zillion

* attempt inno_setup.iss

* remove todo comment for something done

* update comment

* rework item count zillion options
and some small cleanups

* fix location check count

* data package version 1

* Zillion can pass unit tests without rom

* fix freeze if closing ZillionClient while it's waiting for server login

* specify commit hash for zilliandomizer package

* some changes to options validation

* Zillion doors saved on multiworld server

* add missing function in inno_setup
and name of vanilla continues in options

* rework zillion sync task and context

* Apply documentation suggestions from SoldierofOrder

Co-authored-by: SoldierofOrder <107806872+SoldierofOrder@users.noreply.github.com>

* update zillion package

* workaround for asyncio udp bug

There is a bug in Python in Windows
https://github.com/python/cpython/issues/91227
that makes it so if I look for RetroArch before it's ready, it breaks the asyncio udp transport system.

As a workaround, we don't look for RetroArch until the user asks for it with /sms

* a few of the smaller suggestions from review

* logic only looks at my locations
instead of all the multiworld locations

* some adjustments from pull request discussion
and some unit tests

* patch webhost changes from pull request discussion

* zillion logic tests

* better vblr test

* test interaction of character rescue items with logic

* move unit tests to new worlds folder

* comment improvements

* fix minor logic issue
and add memory read timeout

* capitalization in option display names
Opa-Opa is a proper noun

* client toggle side panel with /map

* displays map

* fix map transparency

* fix broken launcher

* better way to specify grid container

* start kivy typing

* have a map that updates with item checks

but it breaks other parts of the UI

* fix layout bug

* aspect ratio of image
and some type checking details

* Fix loading of map for compiled builds

Co-authored-by: SoldierofOrder <107806872+SoldierofOrder@users.noreply.github.com>
Co-authored-by: Doug Hoskisson <doughoskisson@novuslabs.com>
Co-authored-by: CaitSith2 <d_good@caitsith2.com>
2022-10-27 02:30:22 -07:00
.github CI: fix automated builds, update SNI and Enemizer 2022-09-05 09:23:08 +02:00
WebHostLib WebHost: Fix weighted-settings to not save full set of range options to localStorage (#1100) 2022-10-20 20:10:38 -05:00
data [Pokemon Red and Blue] Initial implementation (#1016) 2022-10-13 07:45:52 +02:00
docs Docs: information on Retrieved packet (#1101) 2022-10-15 13:44:39 +02:00
test Zillion: fix unit tests 2022-10-24 01:28:06 +02:00
typings/kivy Zillion: map tracker in client (#1136) 2022-10-27 02:30:22 -07:00
worlds Zillion: map tracker in client (#1136) 2022-10-27 02:30:22 -07:00
.gitignore New Game: Zillion (#1081) 2022-10-20 19:41:11 +02:00
BaseClasses.py Early Items option (#1086) 2022-10-27 09:00:24 +02:00
ChecksFinderClient.py ChecksFinder: Linux support via wine (#795) 2022-07-19 07:44:04 +02:00
CommonClient.py Core: SNI Client Refactor (#1083) 2022-10-25 19:54:43 +02:00
FF1Client.py FF1: fix FF1Client messaging and scoped lua messaging with printjson 2022-09-12 01:19:51 +02:00
FactorioClient.py Factorio: Prevent pipes from breaking on invalid UTF-8 in client (#1078) 2022-10-09 04:10:22 +02:00
Fill.py Early Items option (#1086) 2022-10-27 09:00:24 +02:00
Generate.py Generate: don't try to include meta or filler weights file as player 2022-10-21 23:25:26 +02:00
LICENSE update Copyright 2022-02-17 19:03:11 -08:00
Launcher.py New Game: Zillion (#1081) 2022-10-20 19:41:11 +02:00
LttPAdjuster.py Core: SNI Client Refactor (#1083) 2022-10-25 19:54:43 +02:00
Main.py Logging: more digits for IDs and counts (#1141) 2022-10-27 09:18:25 +02:00
MinecraftClient.py MinecraftClient: Linux fixes (#668) 2022-06-19 04:54:10 -07:00
ModuleUpdate.py SoE: update to v042 and balancing changes (#1125) 2022-10-21 23:26:40 +02:00
MultiServer.py Core: SNI Client Refactor (#1083) 2022-10-25 19:54:43 +02:00
NetUtils.py Core: some typing and docs in various parts of the interface (#1060) 2022-09-28 23:54:10 +02:00
OoTAdjuster.py Options: change displayname to display_name 2022-02-02 16:29:29 +01:00
OoTClient.py Core remove legacy patch (#1047) 2022-09-30 00:36:30 +02:00
Options.py Early Items option (#1086) 2022-10-27 09:00:24 +02:00
Patch.py Core: SNI Client Refactor (#1083) 2022-10-25 19:54:43 +02:00
PokemonClient.py [Pokemon Red and Blue] Initial implementation (#1016) 2022-10-13 07:45:52 +02:00
README.md New Game: Zillion (#1081) 2022-10-20 19:41:11 +02:00
SNIClient.py Core: SNI Client Refactor (#1083) 2022-10-25 19:54:43 +02:00
Starcraft2Client.py SC2: New Settings, Logic improvements (#1110) 2022-10-26 12:24:54 +02:00
Utils.py Core: SNI Client Refactor (#1083) 2022-10-25 19:54:43 +02:00
WebHost.py WebHost: optimize imports 2022-10-17 01:24:02 +02:00
ZillionClient.py Zillion: map tracker in client (#1136) 2022-10-27 02:30:22 -07:00
host.yaml Core: SNI Client Refactor (#1083) 2022-10-25 19:54:43 +02:00
inno_setup.iss New Game: Zillion (#1081) 2022-10-20 19:41:11 +02:00
kvui.py Zillion: map tracker in client (#1136) 2022-10-27 02:30:22 -07:00
meta.yaml Generate: return of the meta mystery 2021-11-21 18:09:06 +01:00
playerSettings.yaml LTTP: Yaml Update (#765) 2022-07-16 12:56:23 -05:00
pytest.ini use pytest for github unittests 2020-04-29 18:44:03 +02:00
requirements.txt Core: update modules 2022-09-03 09:55:47 +02:00
setup.py AppImage: provide LD_LIBRARY_PATH 2022-10-07 22:24:14 +02:00

README.md

Archipelago Discord Shield | Install

Archipelago provides a generic framework for developing multiworld capability for game randomizers. In all cases, presently, Archipelago is also the randomizer itself.

Currently, the following games are supported:

  • The Legend of Zelda: A Link to the Past
  • Factorio
  • Minecraft
  • Subnautica
  • Slay the Spire
  • Risk of Rain 2
  • The Legend of Zelda: Ocarina of Time
  • Timespinner
  • Super Metroid
  • Secret of Evermore
  • Final Fantasy
  • Rogue Legacy
  • VVVVVV
  • Raft
  • Super Mario 64
  • Meritous
  • Super Metroid/Link to the Past combo randomizer (SMZ3)
  • ChecksFinder
  • ArchipIDLE
  • Hollow Knight
  • The Witness
  • Sonic Adventure 2: Battle
  • Starcraft 2: Wings of Liberty
  • Donkey Kong Country 3
  • Dark Souls 3
  • Super Mario World
  • Pokémon Red and Blue
  • Hylics 2
  • Overcooked! 2
  • Zillion

For setup and instructions check out our tutorials page. Downloads can be found at Releases, including compiled windows binaries.

History

Archipelago is built upon a strong legacy of brilliant hobbyists. We want to honor that legacy by showing it here. The repositories which Archipelago is built upon, inspired by, or otherwise owes its gratitude to are:

We recognize that there is a strong community of incredibly smart people that have come before us and helped pave the path. Just because one person's name may be in a repository title does not mean that only one person made that project happen. We can't hope to perfectly cover every single contribution that lead up to Archipelago but we hope to honor them fairly.

Path to the Archipelago

Archipelago was directly forked from bonta0's multiworld_31 branch of ALttPEntranceRandomizer (this project has a long legacy of its own, please check it out linked above) on January 12, 2020. The repository was then named to MultiWorld-Utilities to better encompass its intended function. As Archipelago matured, then known as "Berserker's MultiWorld" by some, we found it necessary to transform our repository into a root level repository (as opposed to a 'forked repo') and change the name (which came later) to better reflect our project.

Running Archipelago

For most people all you need to do is head over to the releases page then download and run the appropriate installer. The installers function on Windows only.

If you are running Archipelago from a non-Windows system then the likely scenario is that you are comfortable running source code directly. Please see our doc on running Archipelago from source.

This project makes use of multiple other projects. We wouldn't be here without these other repositories and the contributions of their developers, past and present.

Contributing

For contribution guidelines, please see our Contributing doc.

FAQ

For Frequently asked questions, please see the website's FAQ Page.

Code of Conduct

Please refer to our code of conduct.