Initial Commit

This commit is contained in:
Luminiferous committed 2026-10-10 17:05:45 +02:00
commit fa38469735
30 files changed
+6902

No files matched your search

+70
View File
@@ -0,0 +1,70 @@
from BaseClasses import Tutorial
from enum import Enum
from worlds.AutoWorld import World, WebWorld
from .Data import game_table, meta_table
from .Helpers import convert_to_long_string
##############
# Meta Classes
##############
class ManualWeb(WebWorld):
tutorials = [Tutorial(
"Multiworld Setup Guide",
"A guide to setting up manual game integration for Archipelago multiworld games.",
"English",
"setup_en.md",
"setup/en",
["Fuzzy"]
)]
######################################
# Convert meta.json data to properties
######################################
def set_world_description(base_doc: str) -> str:
if meta_table.get("docs", {}).get("apworld_description"):
return convert_to_long_string(meta_table["docs"]["apworld_description"])
return base_doc
def set_world_webworld(web: WebWorld) -> WebWorld:
from .Options import make_options_group
if meta_table.get("docs", {}).get("web", {}):
Web_Config = meta_table["docs"]["web"]
web.theme = Web_Config.get("theme", web.theme)
web.game_info_languages = Web_Config.get("game_info_languages", web.game_info_languages)
web.options_presets = Web_Config.get("options_presets", web.options_presets)
web.options_page = Web_Config.get("options_page", web.options_page)
web.option_groups = make_options_group()
if hasattr(web, 'bug_report_page'):
web.bug_report_page = Web_Config.get("bug_report_page", web.bug_report_page)
else:
web.bug_report_page = Web_Config.get("bug_report_page", None)
if Web_Config.get("tutorials", []):
tutorials = []
for tutorial in Web_Config.get("tutorials", []):
# Converting json to Tutorials
tutorials.append(Tutorial(
tutorial.get("name", "Multiworld Setup Guide"),
tutorial.get("description", "A guide to setting up manual game integration for Archipelago multiworld games."),
tutorial.get("language", "English"),
tutorial.get("file_name", "setup_en.md"),
tutorial.get("link", "setup/en"),
tutorial.get("authors", [game_table.get("creator")])
))
web.tutorials = tutorials
return web
#################
# Meta Properties
#################
world_description: str = set_world_description("""
Manual games allow you to set custom check locations and custom item names that will be rolled into a multiworld.
This allows any variety of game -- PC, console, board games, Microsoft Word memes... really anything -- to be part of a multiworld randomizer.
The key component to including these games is some level of manual restriction. Since the items are not actually withheld from the player,
the player must manually refrain from using these gathered items until the tracker shows that they have been acquired or sent.
""")
world_webworld: ManualWeb = set_world_webworld(ManualWeb())