Skip to content

roseasromeo/DDArchipelagoRandomizer

 
 

Repository files navigation

Death's Door Archipelago Randomizer Client

This is a work in progress Archipelago randomizer mod for Death's Door.

Important

This is in an early alpha stage! You may experience errors that disrupt play. Please report these errors in Issues here or in the Death's Door future-game-design thread on the Archipelago Discord (see Contributing below).

Installation

  1. Install BepInEx 5.4.22 or later 5.x versions
    • Do not use BepInEx 6.x, as it's in pre-release stage and may not work properly or be compatible.
    • Unzip the BepInEx folder into the root of your game's installation directory (i.e. there should be a BepInEx folder in the same folder as your DeathsDoor.exe)
  2. Run the game once to generate the BepInEx plugins folder, then quit before performing the next step
  3. Install these mods into your Death's Door BepInEx plugins folder (inside the BepInEx folder) by unzipping the folder from the release. Note that each mod should be in its own folder within the plugins folder.
  4. Run the game. You should see at least two additional options (Deathlink and Fast Items) in your options menu, which will confirm that the mods have loaded correctly.

Playing

  1. Install the mods as instructed above.
  2. Generate and host a world using the Death's Door apworld as instructed in the Death's Door apworld README.
  3. After selecting Start on the Title Screen and selecting a new save file, you'll be able to navigate left and right on the "Start" button to choose "Archipelago." Select "Archipelago".
  4. Enter in the connection details for your generated world and slot. If you generated a solo world with the default template, your Player Name is Player1.
  5. If you entered in your details correctly and your room is currently open, then you will load into game.
  6. As you play, you should see item notifications pop up in the bottom right of your screen as you send and receive items. Items you pick up for yourself will have slightly more delay because we wait to notify you until you have received it.
  7. If playing over multiple sessions, you can resume your save by clicking Start or Archipelago on your existing save, and updating your connection information if the port changes.

Mod Options

  • Deathlink (Title Screen Options Menu)
    • If Deathlink is on, you will send a Deathlink out when you die in game and die when you receive a deathlink from another game with Deathlink turned on.
  • Fast Items (Title Screen and In-Game Options Menus)
    • If Fast Items is on, then you will receive items as fast as the game will allow and notifications will be queued for viewing. If Fast Items is off, the items themselves will be queued for receipt.
  • Skip Cutscenes (Title Screen Options Menus)
    • If Skip Cutscenes is on when a file is started, most skippable cutscenes will be skipped. If Skip Cutscenes is off, then only a limited number of cutscenes that can block progress will be skipped.

Contributing

If you're interested in helping out, join the discussion in the Archipelago Discord server. We talk about the development of this in the Death's Door thread in the future-game-design forum!

Prerequisites

Building

  1. Clone this repository.
  2. Install these mods into your Death's Door plugins folder:
  3. Create a new file at the project's root named config.targets and add the following code:
    <?xml version="1.0" encoding="utf-8"?>
    <Project>
      <PropertyGroup>
        <PluginsPath>Path\To\Your\Death's\Door\Plugins\Directory</PluginsPath>
      </PropertyGroup>
    </Project>
    Replace Path\To\Your\Death's\Door\Plugins\Directory. This will usually be at Game directory]\BepInEx\plugins, unless you changed the default location.
  4. Navigate to the project's root directory in a terminal and run dotnet restore to install packages.
  5. Build the project.

Code Guidelines

  • Follow the C# coding conventions except for the following:
    • Use 4 space tabs for indentation.
      • This should be set up for you in the .editorconfig file.
    • Never use implicit typing (var) for variables.
      • This should be set up for you in the .editorconfig file.
  • If you add a new mod dependency, do the following:
    • Include it in Plugin's BepInDepndency attributes.
    • Edit the .csproj to add it as a reference, but use dynamic pathing for it using the PluginsPath custom MSBuild variable.
      • This ensures the mod is included in the project for anyone who builds it, regardless of difference in paths.
      • Example: <HintPath>$(PluginsPath)/ItemChanger/ItemChanger.dll</HintPath>

Acknowledgements

Thanks to dpinela for their work on the Multiworld Randomizer and for some of the dependencies this mod uses: Alternative Game Modes, Item Changer, and MagicUI!

Thanks to lunix33 for starting this project with their work on the first attempt at an APWorld side of things!

Thanks to BadMagic for their work on Hollow Knight's Archipelago client, which was used as a reference for the MSBuild properties of this project, and for the original version of MagicUI!

Thanks to Silent and Scipio Wright for their work on Tunic's Archipelago client, which was used as a reference for some of the Archipelago integration!

About

An Archipelago multiworld client for Death's Door

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C# 100.0%