forked from mirror/Archipelago
Add World/Options documentation and remove some unused objets
This commit is contained in:
@@ -3,26 +3,31 @@ from Options import Toggle, Option
|
||||
|
||||
|
||||
class AutoEquipOption(Toggle):
|
||||
display_name = "Auto Equip"
|
||||
"""Automatically equips any received armor or left/right weapons."""
|
||||
display_name = "Auto-equip"
|
||||
|
||||
|
||||
class LockEquipOption(Toggle):
|
||||
display_name = "Lock Equip"
|
||||
"""Lock the equipment slots so you cannot change your armor or your left/right weapons. Works great with the
|
||||
Auto-equip option."""
|
||||
display_name = "Lock Equipement Slots"
|
||||
|
||||
|
||||
class NoWeaponRequirementsOption(Toggle):
|
||||
"""Disable the weapon requirements by removing any movement or damage penalties.
|
||||
Permitting you to use any weapon early"""
|
||||
display_name = "No Weapon Requirements"
|
||||
|
||||
|
||||
class RandomizeWeaponsLevelOption(Toggle):
|
||||
"""Enable this option to upgrade 33% ( based on the probability chance ) of the pool of weapons to a random value
|
||||
between +1 and +5/+10"""
|
||||
display_name = "Randomize weapons level"
|
||||
|
||||
|
||||
class PriorityLocationsPresetOption(Toggle):
|
||||
display_name = "Priority locations preset"
|
||||
|
||||
|
||||
class LateBasinOfVowsOption(Toggle):
|
||||
"""Force the Basin of Vows to be located as a reward of defeating Pontiff Sulyvahn. It permits to ease the
|
||||
progression by preventing having to kill the Dancer of the Boreal Valley as the first boss"""
|
||||
display_name = "Late Basin of Vows"
|
||||
|
||||
|
||||
@@ -31,7 +36,6 @@ dark_souls_options: typing.Dict[str, type(Option)] = {
|
||||
"lock_equip": LockEquipOption,
|
||||
"no_weapon_requirements": NoWeaponRequirementsOption,
|
||||
"randomize_weapons_level": RandomizeWeaponsLevelOption,
|
||||
"priority_locations_preset": PriorityLocationsPresetOption,
|
||||
"late_basin_of_vows": LateBasinOfVowsOption,
|
||||
}
|
||||
|
||||
|
||||
@@ -12,14 +12,29 @@ from .data.locations_data import dictionary_table, cemetery_of_ash_table, fire_l
|
||||
undead_settlement_table, road_of_sacrifice_table, consumed_king_garden_table, cathedral_of_the_deep_table, \
|
||||
farron_keep_table, catacombs_of_carthus_table, smouldering_lake_table, irithyll_of_the_boreal_valley_table, \
|
||||
irithyll_dungeon_table, profaned_capital_table, anor_londo_table, lothric_castle_table, grand_archives_table, \
|
||||
untended_graves_table, archdragon_peak_table, firelink_shrine_bell_tower_table, main_path_location_list
|
||||
from ..AutoWorld import World
|
||||
from BaseClasses import MultiWorld, Location, Region, Item, RegionType, Entrance
|
||||
untended_graves_table, archdragon_peak_table, firelink_shrine_bell_tower_table
|
||||
from ..AutoWorld import World, WebWorld
|
||||
from BaseClasses import MultiWorld, Location, Region, Item, RegionType, Entrance, Tutorial
|
||||
from ..generic.Rules import set_rule
|
||||
|
||||
|
||||
class DarkSouls3Web(WebWorld):
|
||||
tutorials = [Tutorial(
|
||||
"Multiworld Setup Tutorial",
|
||||
"A guide to setting up the Archipelago Dark Souls 3 randomizer on your computer.",
|
||||
"English",
|
||||
"setup_en.md",
|
||||
"setup/en",
|
||||
["Marech"]
|
||||
)]
|
||||
|
||||
|
||||
class DarkSouls3World(World):
|
||||
"""Insert description of the world/game here."""
|
||||
"""
|
||||
Dark souls 3 is an Action role-playing game and is part of the Souls series developed by FromSoftware.
|
||||
Played in a third-person perspective, players have access to various weapons, armour, magic, and consumables that
|
||||
they can use to fight their enemies.
|
||||
"""
|
||||
|
||||
def __init__(self, world: MultiWorld, player: int):
|
||||
super().__init__(world, player)
|
||||
@@ -35,7 +50,6 @@ class DarkSouls3World(World):
|
||||
menu_region = Region("Menu", RegionType.Generic, "Menu", self.player)
|
||||
self.world.regions.append(menu_region)
|
||||
|
||||
self.main_path_locations = main_path_location_list
|
||||
cemetery_of_ash_region = self.create_region("Cemetery Of Ash", cemetery_of_ash_table)
|
||||
firelink_shrine_region = self.create_region("Firelink Shrine", fire_link_shrine_table)
|
||||
firelink_shrine_bell_tower_region = self.create_region("Firelink Shrine Bell Tower", firelink_shrine_bell_tower_table)
|
||||
@@ -106,7 +120,7 @@ class DarkSouls3World(World):
|
||||
new_region = Region(name, RegionType.Generic, name, self.player)
|
||||
if location_table is not None:
|
||||
for name, address in self.location_name_to_id.items():
|
||||
if location_table.get(name): # and name in self.main_path_locations:
|
||||
if location_table.get(name):
|
||||
location = Location(self.player, name, address, new_region)
|
||||
new_region.locations.append(location)
|
||||
self.world.regions.append(new_region)
|
||||
@@ -118,8 +132,7 @@ class DarkSouls3World(World):
|
||||
self.world.itempool += [self.create_item(name)]
|
||||
|
||||
def generate_early(self):
|
||||
if self.world.priority_locations_preset[self.player]:
|
||||
self.world.priority_locations[self.player].value.update(main_path_location_list)
|
||||
pass
|
||||
|
||||
def set_rules(self) -> None:
|
||||
set_rule(self.world.get_entrance("Goto Bell Tower", self.player),
|
||||
|
||||
@@ -326,7 +326,7 @@ spells_table = {
|
||||
|
||||
}
|
||||
|
||||
key_items_table = {
|
||||
misc_items_table = {
|
||||
"Cell Key": 0x400007DA,
|
||||
"Small Lothric Banner": 0x40000836,
|
||||
"Mortician's Ashes": 0x4000083B,
|
||||
@@ -374,31 +374,6 @@ key_items_table = {
|
||||
"Wolf's Blood Swordgrass": 0x4000016E,
|
||||
}
|
||||
|
||||
heals_table = {
|
||||
"Ashen Estus Flask": 0x400000BF,
|
||||
"Estus Flask Shard #1": 0x4000085D,
|
||||
"Estus Flask Shard #2": 0x4000085D,
|
||||
"Estus Flask Shard #3": 0x4000085D,
|
||||
"Estus Flask Shard #4": 0x4000085D,
|
||||
"Estus Flask Shard #5": 0x4000085D,
|
||||
"Estus Flask Shard #6": 0x4000085D,
|
||||
"Estus Flask Shard #7": 0x4000085D,
|
||||
"Estus Flask Shard #8": 0x4000085D,
|
||||
"Estus Flask Shard #9": 0x4000085D,
|
||||
"Estus Flask Shard #10": 0x4000085D,
|
||||
"Estus Flask Shard #11": 0x4000085D,
|
||||
"Estus Flask Shard #12": 0x4000085D,
|
||||
"Undead Bone Shard #1": 0x4000085F,
|
||||
"Undead Bone Shard #2": 0x4000085F,
|
||||
"Undead Bone Shard #3": 0x4000085F,
|
||||
"Undead Bone Shard #4": 0x4000085F,
|
||||
"Undead Bone Shard #5": 0x4000085F,
|
||||
"Undead Bone Shard #6": 0x4000085F,
|
||||
"Undead Bone Shard #7": 0x4000085F,
|
||||
"Undead Bone Shard #8": 0x4000085F,
|
||||
"Undead Bone Shard #9": 0x4000085F,
|
||||
}
|
||||
|
||||
key_items_list = {
|
||||
"Small Lothric Banner",
|
||||
"Basin of Vows",
|
||||
@@ -413,4 +388,4 @@ key_items_list = {
|
||||
"Mortician's Ashes"
|
||||
}
|
||||
|
||||
item_dictionary_table = {**weapons_upgrade_5_table, **weapons_upgrade_10_table, **shields_table, **armor_table, **rings_table, **spells_table, **key_items_table, **goods_table}
|
||||
item_dictionary_table = {**weapons_upgrade_5_table, **weapons_upgrade_10_table, **shields_table, **armor_table, **rings_table, **spells_table, **misc_items_table, **goods_table}
|
||||
|
||||
@@ -413,56 +413,6 @@ archdragon_peak_table = {
|
||||
"AP: Soul of the Nameless King": 0x400002D2,
|
||||
}
|
||||
|
||||
main_path_location_list = {
|
||||
"FS: Broken Straight Sword",
|
||||
"HWL: Soul of Boreal Valley Vordt",
|
||||
"HWL: Basin of Vows",
|
||||
"HWL: Small Lothric Banner",
|
||||
"HWL: Soul of the Dancer",
|
||||
"US: Soul of the Rotted Greatwood",
|
||||
"CD: Small Doll",
|
||||
"CD: Soul of the Deacons of the Deep",
|
||||
"RS: Soul of a Crystal Sage",
|
||||
"CC: Soul of High Lord Wolnir",
|
||||
"IBV: Soul of Pontiff Sulyvahn",
|
||||
"PC: Cinders of a Lord - Yhorm the Giant",
|
||||
"PC: Soul of Yhorm the Giant",
|
||||
"AL: Cinders of a Lord - Aldrich",
|
||||
"AL: Soul of Aldrich",
|
||||
"LC: Grand Archives Key",
|
||||
"LC: Soul of Dragonslayer Armour",
|
||||
"CKG: Soul of Consumed Oceiros",
|
||||
"GA: Cinders of a Lord - Lothric Prince",
|
||||
"GA: Soul of the Twin Princes",
|
||||
"UG: Soul of Champion Gundyr",
|
||||
"AP: Soul of the Nameless King",
|
||||
}
|
||||
|
||||
heals_table = {
|
||||
"Ashen Estus Flask": 0x400000BF,
|
||||
"Estus Flask Shard #1": 0x4000085D,
|
||||
"Estus Flask Shard #2": 0x4000085D,
|
||||
"Estus Flask Shard #3": 0x4000085D,
|
||||
"Estus Flask Shard #4": 0x4000085D,
|
||||
"Estus Flask Shard #5": 0x4000085D,
|
||||
"Estus Flask Shard #6": 0x4000085D,
|
||||
"Estus Flask Shard #7": 0x4000085D,
|
||||
"Estus Flask Shard #8": 0x4000085D,
|
||||
"Estus Flask Shard #9": 0x4000085D,
|
||||
"Estus Flask Shard #10": 0x4000085D,
|
||||
"Estus Flask Shard #11": 0x4000085D,
|
||||
"Estus Flask Shard #12": 0x4000085D,
|
||||
"Undead Bone Shard #1": 0x4000085F,
|
||||
"Undead Bone Shard #2": 0x4000085F,
|
||||
"Undead Bone Shard #3": 0x4000085F,
|
||||
"Undead Bone Shard #4": 0x4000085F,
|
||||
"Undead Bone Shard #5": 0x4000085F,
|
||||
"Undead Bone Shard #6": 0x4000085F,
|
||||
"Undead Bone Shard #7": 0x4000085F,
|
||||
"Undead Bone Shard #8": 0x4000085F,
|
||||
"Undead Bone Shard #9": 0x4000085F,
|
||||
}
|
||||
|
||||
dictionary_table = {**cemetery_of_ash_table, **fire_link_shrine_table, **firelink_shrine_bell_tower_table, **high_wall_of_lothric, **undead_settlement_table, **road_of_sacrifice_table,
|
||||
**cathedral_of_the_deep_table, **farron_keep_table, **catacombs_of_carthus_table, **smouldering_lake_table, **irithyll_of_the_boreal_valley_table,
|
||||
**irithyll_dungeon_table, **profaned_capital_table, **anor_londo_table, **lothric_castle_table, **consumed_king_garden_table,
|
||||
|
||||
22
worlds/dark_souls_3/docs/en_Dark_Souls_3.md
Normal file
22
worlds/dark_souls_3/docs/en_Dark_Souls_3.md
Normal file
@@ -0,0 +1,22 @@
|
||||
# Dark Souls 3
|
||||
|
||||
## Where is the settings page?
|
||||
|
||||
The [player settings page for this game](../player-settings) contains all the options you need to configure and export a
|
||||
config file.
|
||||
|
||||
## What does randomization do to this game?
|
||||
|
||||
In Dark Souls 3, all unique items you can earn from a static corpse, a chest or the death of a Boss/NPC are randomized.
|
||||
This exclude the upgrade materials such as the titanite shards, the estus shards and the consumables which remain at
|
||||
the same location. I also added an option available from the settings page to randomize the level of the generated
|
||||
weapons( from +0 to +10/+5 )
|
||||
|
||||
## What Dark Souls 3 items can appear in other players' worlds?
|
||||
|
||||
Every unique items from Dark Souls 3 can appear in other player's worlds, such as a piece of armor, an upgraded weapon
|
||||
or a key item.
|
||||
|
||||
## What does another world's item look like in Dark Souls 3?
|
||||
|
||||
In Dark Souls 3, items which need to be sent to other worlds appear as a Prism Stone.
|
||||
35
worlds/dark_souls_3/docs/setup_en.md
Normal file
35
worlds/dark_souls_3/docs/setup_en.md
Normal file
@@ -0,0 +1,35 @@
|
||||
# Dark Souls 3 Randomizer Setup Guide
|
||||
|
||||
## Required Software
|
||||
|
||||
- [Dark Souls 3](https://store.steampowered.com/app/374320/DARK_SOULS_III/)
|
||||
- [Dark Souls 3 AP Client](https://github.com/Marechal-L/DarkSouls3-Archipelago-client)
|
||||
|
||||
## General Concept
|
||||
|
||||
The Dark Souls 3 AP Client is a dinput8.dll triggered when launching Dark Souls 3. This .dll file will launch a command
|
||||
prompt where you can read information about your run and write any command to interact with the Archipelago server.
|
||||
The randomization is performed by the AP.json file, an output file generated by the Archipelago server.
|
||||
|
||||
## Installation Procedures
|
||||
|
||||
**This client has only been tested with the Official Steam version of the game (v1.15/1.35) not matter which DLCs are installed**
|
||||
|
||||
Follow the installation directions at the
|
||||
[Dark Souls 3 AP Client](https://github.com/Marechal-L/DarkSouls3-Archipelago-client) page where you can find the
|
||||
dinput8.dll file.
|
||||
Basically, you just need to add those two files at the root folder of your game "SteamLibrary\steamapps\common\DARK SOULS III\Game" :
|
||||
- dinput8.dll
|
||||
- AP.json renamed from the generated file AP-{SEED}-{PLAYER_NUMBER}-{PLAYER_NAME}.json
|
||||
|
||||
## Joining a MultiWorld Game
|
||||
|
||||
1. Run DarkSoulsIII.exe or run the game through Steam
|
||||
2. Type in /connect [server ip]
|
||||
3. Once connected, create a new game, choose a class and wait for the others before starting
|
||||
4. You can quit and launch at anytime during a game
|
||||
|
||||
## Where do I get a config file?
|
||||
|
||||
The [Player Settings](../player-settings) page on the website allows you to
|
||||
configure your personal settings and export them into a config file
|
||||
Reference in New Issue
Block a user