Skip to content

Commit

Permalink
Add website changes (ArchipelagoMW#6)
Browse files Browse the repository at this point in the history
* Add completion requirements for islands

* Add website information

* Change to data_version 1

* Quick generation fixup
  • Loading branch information
SunnyBat authored Dec 30, 2021
1 parent 8cb5c08 commit 4543a48
Show file tree
Hide file tree
Showing 5 changed files with 122 additions and 6 deletions.
25 changes: 25 additions & 0 deletions WebHostLib/static/assets/gameInfo/en_Raft.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# Raft

## Where is the settings page?
The player settings page for this game is located <a href="../player-settings">here</a>. It contains all the options
you need to configure and export a config file.

## What does randomization do to this game?
All of the items from the Research Table, as well as all the note/blueprint pickups from story islands, are changed to location checks. Blueprint items themselves are never given. The Research Table recipes will *remove* the researched items for that recipe once learned, meaning many more resources must be put into the Research Table to get all the unlocks from it.

## What is the goal of Raft when randomized?
The goal remains the same: To pick up the note that has the frequency for the next unreleased story island from Tangaroa.

## Which items can be in another player's world?
All of the craftable items from the Research Table and Blueprints, as well as frequencies. Since there are more locations in Raft than there are items to receive, Resource Packs with basic earlygame materials and/or duplicate items may be added to the item pool (configurable).

## Which notable unlocks are not randomized?
Most of the story island quests (actions that unlock new areas on the island) remain unchanged. There are three exceptions: The Balboa Island Relay Station quest, the Caravan Island zipline parts quest, and the Caravan Island battery charger quest have all been changed to an Archipelago unlock, as the rewards from these are craftable items or frequencies.
Craftable items like the Machete are mixed into the Archipelago item pool, however quest items like Tape or Berries will function the same.
Decoration Packages are unchanged.

## What does another world's item look like in Raft?
Researches and pickups remain visually unchanged, regardless of what the unlock is.

## When the player receives an item, what happens?
A Raft notification will appear with the item information. The unlock will also appear in the chat. Unlocks that would normally give you the item (eg Machete) will NOT give it to you, but must instead be crafted.
71 changes: 71 additions & 0 deletions WebHostLib/static/assets/tutorial/raft/setup_en.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
# Raft Randomizer Setup Guide

## Required Software

- [Raft](https://store.steampowered.com/app/648800/Raft/)
- [Raft Mod Loader](https://www.raftmodding.com/loader) ("*RML*")
- [Raftipelago mod](https://www.raftmodding.com/raftipelago)

## Installation Procedures

1. Install Raft. The currently-supported Raft version is Update 13: The Renovation Update. If you plan on playing Raft mainly with Archipelago, it's recommended to disable Raft auto-updating through Steam, as there is no beta channel to get old builds.

2. Install RML. If you've already installed it, the shortcut in the Start Menu is called "RMLLauncher.exe".

3. Install the Raftipelago mod from the Raft Modding website. This requires that you open the link on the webpage through RML. Alternatively, you can download the .rmod file and place it in the Mods folder manually.

4. Start Raft through Steam. Wait for it to load into the main menu.

5. Once the Raft main menu loads, open RML and click Play. Wait a few seconds after it says "Successfully injected" for RML to appear in Raft.

6. Open the RML menu. After RML injects, this should open automatically. If it does not, and you see RML information in the top center of the Raft main menu, press F9 to open it.

7. Navigate to the "Mod manager" tab in the left-hand menu.

8. Click on the plug icon for Raftipelago to load the mod.

## Installation Troubleshooting

You can press F10 to open the console to view any errors when loading the mod.

### DLL/Reflection/Image errors

Restart Raft and try again. Although RML may be able to start Raft instead of you starting it through Steam, try specifically opening Raft through Steam (not RML), then clicking Play in RML once you're on the Raft main menu.

### RML can't find Raft

Restart Raft and try again. Try running RML as administrator by right-clicking the shortcut and clicking "Run as administrator".

## Joining a MultiWorld Game

1. Ensure you're on the Main Menu with Raftipelago loaded.

2. Open the Debug Console by pressing F10.

3. Type */connect {serverAddress} {username} {password}* into the console and hit Enter.
- Example: */connect archipelago.gg:12345 SunnyBat*
- serverAddress must not contain spaces.
- If your username or password contains spaces, surround that value with quotation marks ("). Adding quotation marks even when not necessary (eg "SunnyBat") is fine.
- If your username or password starts with a quotation mark, surround the value with an additional set of quotation marks (eg the value *"myP@s$w0rD* would be entered as *""myP@s$w0rD"*).

4. Start a new game or load an existing one.
- Raftipelago save games are marked as *incompatible* with
- Do not use an existing game that was not created with Raftipelago. It will work, but if anything is unlocked, it will be automatically registered with Archipelago once the world is loaded. This is irreversible.

5. You can disconnect by typing */disconnect confirmDisconnect* into the console and hitting Enter.

## Game Troubleshooting

### The "Load game" button is disabled for my world / my world is corrupt

Be sure that you click the "Load game" button **after** you load Raftipelago. You can click the Load Game button again to reload all of the saves in your folder (there is no need to restart Raft if the mod loaded successfully).

### I'm certain I'm doing things correctly, but the world is still not loadable

You can bypass Raftipelago world verification checks by loading a backup of the world. If the backup is not loadable, the world is corrupted.

In the future, be sure that when you save the game, the Raftipelago mod is loaded.

### I disconnected from the server! What do I do to reconnect?

Open the console with F10 and type the */connect* command with your server/username/password in again. You do not need to save+quit to the main menu beforehand.
20 changes: 20 additions & 0 deletions WebHostLib/static/assets/tutorial/tutorials.json
Original file line number Diff line number Diff line change
Expand Up @@ -247,6 +247,26 @@
]
}
]
},,
{
"gameTitle": "Raft",
"tutorials": [
{
"name": "Multiworld Setup Guide",
"description": "A guide to setting up Raft integration for Archipelago multiworld games.",
"files": [
{
"language": "English",
"filename": "raft/setup_en.md",
"link": "raft/setup/en",
"authors": [
"SunnyBat",
"Awareqwx"
]
}
]
}
]
},
{
"gameTitle": "Timespinner",
Expand Down
8 changes: 4 additions & 4 deletions worlds/raft/Rules.py
Original file line number Diff line number Diff line change
Expand Up @@ -115,10 +115,10 @@ def set_rules(world, player):
"Raft": lambda state: True,
"ResearchTable": lambda state: True,
"RadioTower": lambda state: state.can_access_radio_tower(player), # All can_access functions have state as implicit parameter for function
"Vasagatan": lambda state: state.can_access_vasagatan(player),
"BalboaIsland": lambda state: state.can_access_balboa_island(player),
"CaravanIsland": lambda state: state.can_access_caravan_island(player),
"Tangaroa": lambda state: state.can_access_tangaroa(player)
"Vasagatan": lambda state: state.can_complete_radio_tower(player) and state.can_access_vasagatan(player),
"BalboaIsland": lambda state: state.can_complete_vasagatan(player) and state.can_access_balboa_island(player),
"CaravanIsland": lambda state: state.can_complete_balboa_island(player) and state.can_access_caravan_island(player),
"Tangaroa": lambda state: state.can_complete_caravan_island(player) and state.can_access_tangaroa(player)
}
itemChecks = {
"Plank": lambda state: True,
Expand Down
4 changes: 2 additions & 2 deletions worlds/raft/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ class RaftWorld(World):
location_name_to_id = locations_lookup_name_to_id
options = raft_options

data_version = 12
data_version = 1

def generate_basic(self):
minRPSpecified = self.world.minimum_resource_pack_amount[self.player].value
Expand All @@ -40,7 +40,7 @@ def generate_basic(self):
pool.append(raft_item)

extraItemNamePool = []
extras = max(len(location_table) - len(item_table), 0)
extras = max(len(location_table) - len(item_table) - 1, 0) # Victory takes up 1 unaccounted-for slot
if extras > 0:
if (self.world.use_resource_packs[self.player].value):
for packItem in resourcePackItems:
Expand Down

0 comments on commit 4543a48

Please sign in to comment.