3120 lines
210 KiB
Python
3120 lines
210 KiB
Python
from typing import cast, ClassVar, Optional, Dict, List, Set
|
|
from dataclasses import dataclass
|
|
|
|
from BaseClasses import ItemClassification, Location, Region
|
|
from .Items import DS3ItemCategory, item_dictionary
|
|
|
|
# Regions in approximate order of reward, mostly measured by how high-quality the upgrade items are
|
|
# in each region.
|
|
region_order = [
|
|
"Cemetery of Ash",
|
|
"Firelink Shrine",
|
|
"High Wall of Lothric",
|
|
"Greirat's Shop",
|
|
"Undead Settlement",
|
|
"Road of Sacrifices",
|
|
"Farron Keep",
|
|
"Cathedral of the Deep",
|
|
"Catacombs of Carthus",
|
|
"Smouldering Lake",
|
|
"Irithyll of the Boreal Valley",
|
|
"Irithyll Dungeon",
|
|
"Karla's Shop",
|
|
# The first half of Painted World has one Titanite Slab but mostly Large Titanite Shards,
|
|
# much like Irithyll Dungeon.
|
|
"Painted World of Ariandel (Before Contraption)",
|
|
"Anor Londo",
|
|
"Profaned Capital",
|
|
# The second half of Painted World has two Titanite Chunks and two Titanite Slabs, which
|
|
# puts it on the low end of the post-Lothric Castle areas in terms of rewards.
|
|
"Painted World of Ariandel (After Contraption)",
|
|
"Lothric Castle",
|
|
"Consumed King's Garden",
|
|
"Untended Graves",
|
|
# List this late because it contains a Titanite Slab in the base game
|
|
"Firelink Shrine Bell Tower",
|
|
"Grand Archives",
|
|
"Archdragon Peak",
|
|
"Kiln of the First Flame",
|
|
# Both areas of DLC2 have premium rewards.
|
|
"Dreg Heap",
|
|
"Ringed City",
|
|
]
|
|
|
|
|
|
@dataclass
|
|
class DS3LocationData:
|
|
__location_id: ClassVar[int] = 100000
|
|
"""The next location ID to use when creating location data."""
|
|
|
|
name: str
|
|
"""The name of this location according to Archipelago.
|
|
|
|
This needs to be unique within this world."""
|
|
|
|
default_item_name: Optional[str]
|
|
"""The name of the item that appears by default in this location.
|
|
|
|
If this is None, that indicates that this location is an "event" that's
|
|
automatically considered accessed as soon as it's available. Events are used
|
|
to indicate major game transitions that aren't otherwise gated by items so
|
|
that progression balancing and item smoothing is more accurate for DS3.
|
|
"""
|
|
|
|
ap_code: Optional[int] = None
|
|
"""Archipelago's internal ID for this location (also known as its "address")."""
|
|
|
|
region_value: int = 0
|
|
"""The relative value of items in this location's region.
|
|
|
|
This is used to sort locations when placing items like the base game.
|
|
"""
|
|
|
|
static: Optional[str] = None
|
|
"""The key in the static randomizer's Slots table that corresponds to this location.
|
|
|
|
By default, the static randomizer chooses its location based on the region and the item name.
|
|
If the item name is unique across the whole game, it can also look it up based on that alone. If
|
|
there are multiple instances of the same item type in the same region, it will assume its order
|
|
(in annotations.txt) matches Archipelago's order.
|
|
|
|
In cases where this heuristic doesn't work, such as when Archipelago's region categorization or
|
|
item name disagrees with the static randomizer's, this field is used to provide an explicit
|
|
association instead.
|
|
"""
|
|
|
|
missable: bool = False
|
|
"""Whether this item is possible to permanently lose access to.
|
|
|
|
This is also used for items that are *technically* possible to get at any time, but are
|
|
prohibitively difficult without blocking off other checks (items dropped by NPCs on death
|
|
generally fall into this category).
|
|
|
|
Missable locations are always marked as excluded, so they will never contain
|
|
progression or useful items.
|
|
"""
|
|
|
|
dlc: bool = False
|
|
"""Whether this location is only accessible if the DLC is enabled."""
|
|
|
|
ngp: bool = False
|
|
"""Whether this location only contains an item in NG+ and later.
|
|
|
|
By default, these items aren't randomized or included in the randomization pool, but an option
|
|
can be set to enable them even for NG runs."""
|
|
|
|
npc: bool = False
|
|
"""Whether this item is contingent on killing an NPC or following their quest."""
|
|
|
|
prominent: bool = False
|
|
"""Whether this is one of few particularly prominent places for items to appear.
|
|
|
|
This is a small number of locations (boss drops and progression locations)
|
|
intended to be set as priority locations for players who don't want a lot of
|
|
mandatory checks.
|
|
|
|
For bosses with multiple drops, only one should be marked prominent.
|
|
"""
|
|
|
|
progression: bool = False
|
|
"""Whether this location normally contains an item that blocks forward progress."""
|
|
|
|
boss: bool = False
|
|
"""Whether this location is a reward for defeating a full boss."""
|
|
|
|
miniboss: bool = False
|
|
"""Whether this location is a reward for defeating a miniboss.
|
|
|
|
The classification of "miniboss" is a bit fuzzy, but we consider them to be enemies that are
|
|
visually distinctive in their locations, usually bigger than normal enemies, with a guaranteed
|
|
item drop. NPCs are never considered minibosses, and some normal-looking enemies with guaranteed
|
|
drops aren't either (these are instead classified as hidden locations)."""
|
|
|
|
drop: bool = False
|
|
"""Whether this is an item dropped by a (non-boss) enemy.
|
|
|
|
This is automatically set to True if miniboss, mimic, lizard, or hostile_npc is True.
|
|
"""
|
|
|
|
mimic: bool = False
|
|
"""Whether this location is dropped by a mimic."""
|
|
|
|
hostile_npc: bool = False
|
|
"""Whether this location is dropped by a hostile NPC.
|
|
|
|
An "NPC" is specifically a human (or rather, ash) is built like a player character rather than a
|
|
monster. This includes both scripted invaders and NPCs who are always on the overworld. It does
|
|
not include initially-friendly NPCs who become hostile as part of a quest or because you attack
|
|
them.
|
|
"""
|
|
|
|
lizard: bool = False
|
|
"""Whether this location is dropped by a (small) Crystal Lizard."""
|
|
|
|
shop: bool = False
|
|
"""Whether this location can appear in an NPC's shop.
|
|
|
|
Items like Lapp's Set which can appear both in the overworld and in a shop
|
|
should still be tagged as shop.
|
|
"""
|
|
|
|
conditional: bool = False
|
|
"""Whether this location is conditional on a progression item.
|
|
|
|
This is used to track locations that won't become available until an unknown amount of time into
|
|
the run, and as such shouldn't have "similar to the base game" items placed in them.
|
|
"""
|
|
|
|
hidden: bool = False
|
|
"""Whether this location is particularly tricky to find.
|
|
|
|
This is for players without an encyclopedic knowledge of DS3 who don't want to get stuck looking
|
|
for an illusory wall or one random mob with a guaranteed drop.
|
|
"""
|
|
|
|
@property
|
|
def is_event(self) -> bool:
|
|
"""Whether this location represents an event rather than a specific item pickup."""
|
|
return self.default_item_name is None
|
|
|
|
def __post_init__(self):
|
|
if not self.is_event:
|
|
self.ap_code = self.ap_code or DS3LocationData.__location_id
|
|
DS3LocationData.__location_id += 1
|
|
if self.miniboss or self.mimic or self.lizard or self.hostile_npc: self.drop = True
|
|
|
|
def location_groups(self) -> List[str]:
|
|
"""The names of location groups this location should appear in.
|
|
|
|
This is computed from the properties assigned to this location."""
|
|
names = []
|
|
if self.prominent: names.append("Prominent")
|
|
if self.progression: names.append("Progression")
|
|
if self.boss: names.append("Boss Rewards")
|
|
if self.miniboss: names.append("Miniboss Rewards")
|
|
if self.mimic: names.append("Mimic Rewards")
|
|
if self.hostile_npc: names.append("Hostile NPC Rewards")
|
|
if self.npc: names.append("Friendly NPC Rewards")
|
|
if self.lizard: names.append("Small Crystal Lizards")
|
|
if self.hidden: names.append("Hidden")
|
|
|
|
default_item = item_dictionary[cast(str, self.default_item_name)]
|
|
names.append({
|
|
DS3ItemCategory.WEAPON_UPGRADE_5: "Weapons",
|
|
DS3ItemCategory.WEAPON_UPGRADE_10: "Weapons",
|
|
DS3ItemCategory.WEAPON_UPGRADE_10_INFUSIBLE: "Weapons",
|
|
DS3ItemCategory.SHIELD: "Shields",
|
|
DS3ItemCategory.SHIELD_INFUSIBLE: "Shields",
|
|
DS3ItemCategory.ARMOR: "Armor",
|
|
DS3ItemCategory.RING: "Rings",
|
|
DS3ItemCategory.SPELL: "Spells",
|
|
DS3ItemCategory.MISC: "Miscellaneous",
|
|
DS3ItemCategory.UNIQUE: "Unique",
|
|
DS3ItemCategory.BOSS: "Boss Souls",
|
|
DS3ItemCategory.SOUL: "Small Souls",
|
|
DS3ItemCategory.UPGRADE: "Upgrade",
|
|
DS3ItemCategory.HEALING: "Healing",
|
|
}[default_item.category])
|
|
if default_item.classification == ItemClassification.progression:
|
|
names.append("Progression")
|
|
|
|
return names
|
|
|
|
|
|
class DarkSouls3Location(Location):
|
|
game: str = "Dark Souls III"
|
|
data: DS3LocationData
|
|
|
|
def __init__(
|
|
self,
|
|
player: int,
|
|
data: DS3LocationData,
|
|
parent: Optional[Region] = None,
|
|
event: bool = False):
|
|
super().__init__(player, data.name, None if event else data.ap_code, parent)
|
|
self.data = data
|
|
|
|
|
|
# Naming conventions:
|
|
#
|
|
# * The regions in item names should match the physical region where the item is
|
|
# acquired, even if its logical region is different. For example, Irina's
|
|
# inventory appears in the "Undead Settlement" region because she's not
|
|
# accessible until there, but it begins with "FS:" because that's where her
|
|
# items are purchased.
|
|
#
|
|
# * Avoid using vanilla enemy placements as landmarks, because these are
|
|
# randomized by the enemizer by default. Instead, use generic terms like
|
|
# "mob", "boss", and "miniboss".
|
|
#
|
|
# * Location descriptions don't need to direct the player to the precise spot.
|
|
# You can assume the player is broadly familiar with Dark Souls III or willing
|
|
# to look at a vanilla guide. Just give a general area to look in or an idea
|
|
# of what quest a check is connected to. Terseness is valuable: try to keep
|
|
# each location description short enough that the whole line doesn't exceed
|
|
# 100 characters.
|
|
#
|
|
# * Use "[name] drop" for items that require killing an NPC who becomes hostile
|
|
# as part of their normal quest, "kill [name]" for items that require killing
|
|
# them even when they aren't hostile, and just "[name]" for items that are
|
|
# naturally available as part of their quest.
|
|
location_tables: Dict[str, List[DS3LocationData]] = {
|
|
"Cemetery of Ash": [
|
|
DS3LocationData("CA: Soul of a Deserted Corpse - right of spawn",
|
|
"Soul of a Deserted Corpse"),
|
|
DS3LocationData("CA: Firebomb - down the cliff edge", "Firebomb x5"),
|
|
DS3LocationData("CA: Titanite Shard - jump to coffin", "Titanite Shard"),
|
|
DS3LocationData("CA: Soul of an Unknown Traveler - by miniboss",
|
|
"Soul of an Unknown Traveler"),
|
|
DS3LocationData("CA: Speckled Stoneplate Ring+1 - by miniboss",
|
|
"Speckled Stoneplate Ring+1", ngp=True),
|
|
DS3LocationData("CA: Titanite Scale - miniboss drop", "Titanite Scale", miniboss=True),
|
|
DS3LocationData("CA: Coiled Sword - boss drop", "Coiled Sword", prominent=True,
|
|
progression=True, boss=True),
|
|
],
|
|
"Firelink Shrine": [
|
|
# Ludleth drop, does not permanently die
|
|
DS3LocationData("FS: Skull Ring - kill Ludleth", "Skull Ring", hidden=True, drop=True,
|
|
npc=True),
|
|
|
|
# Sword Master drops
|
|
DS3LocationData("FS: Uchigatana - NPC drop", "Uchigatana", hostile_npc=True),
|
|
DS3LocationData("FS: Master's Attire - NPC drop", "Master's Attire", hostile_npc=True),
|
|
DS3LocationData("FS: Master's Gloves - NPC drop", "Master's Gloves", hostile_npc=True),
|
|
|
|
DS3LocationData("FS: Broken Straight Sword - gravestone after boss",
|
|
"Broken Straight Sword"),
|
|
DS3LocationData("FS: Homeward Bone - cliff edge after boss", "Homeward Bone"),
|
|
DS3LocationData("FS: Ember - path right of Firelink entrance", "Ember"),
|
|
DS3LocationData("FS: Soul of a Deserted Corpse - bell tower door",
|
|
"Soul of a Deserted Corpse"),
|
|
DS3LocationData("FS: East-West Shield - tree by shrine entrance", "East-West Shield"),
|
|
DS3LocationData("FS: Homeward Bone - path above shrine entrance", "Homeward Bone"),
|
|
DS3LocationData("FS: Ember - above shrine entrance", "Ember"),
|
|
DS3LocationData("FS: Wolf Ring+2 - left of boss room exit", "Wolf Ring+2", ngp=True),
|
|
# Leonhard (quest)
|
|
DS3LocationData("FS: Cracked Red Eye Orb - Leonhard", "Cracked Red Eye Orb x5",
|
|
missable=True, npc=True),
|
|
# Leonhard (kill or quest), missable because he can disappear sometimes
|
|
DS3LocationData("FS: Lift Chamber Key - Leonhard", "Lift Chamber Key", missable=True,
|
|
npc=True, drop=True),
|
|
|
|
# Shrine Handmaid shop
|
|
DS3LocationData("FS: White Sign Soapstone - shop", "White Sign Soapstone", shop=True),
|
|
DS3LocationData("FS: Dried Finger - shop", "Dried Finger", shop=True),
|
|
DS3LocationData("FS: Tower Key - shop", "Tower Key", progression=True, shop=True),
|
|
DS3LocationData("FS: Ember - shop", "Ember", static='99,0:-1:110000:', shop=True),
|
|
DS3LocationData("FS: Farron Dart - shop", "Farron Dart", static='99,0:-1:110000:',
|
|
shop=True),
|
|
DS3LocationData("FS: Soul Arrow - shop", "Soul Arrow", static='99,0:-1:110000:',
|
|
shop=True),
|
|
DS3LocationData("FS: Heal Aid - shop", "Heal Aid", shop=True),
|
|
DS3LocationData("FS: Alluring Skull - Mortician's Ashes", "Alluring Skull", shop=True,
|
|
conditional=True),
|
|
DS3LocationData("FS: Ember - Mortician's Ashes", "Ember",
|
|
static='99,0:-1:110000,70000100:', shop=True, conditional=True),
|
|
DS3LocationData("FS: Grave Key - Mortician's Ashes", "Grave Key", shop=True,
|
|
conditional=True),
|
|
DS3LocationData("FS: Life Ring - Dreamchaser's Ashes", "Life Ring", shop=True,
|
|
conditional=True),
|
|
# Only if you say where the ashes were found
|
|
DS3LocationData("FS: Hidden Blessing - Dreamchaser's Ashes", "Hidden Blessing",
|
|
missable=True, shop=True),
|
|
DS3LocationData("FS: Lloyd's Shield Ring - Paladin's Ashes", "Lloyd's Shield Ring",
|
|
shop=True, conditional=True),
|
|
DS3LocationData("FS: Ember - Grave Warden's Ashes", "Ember",
|
|
static='99,0:-1:110000,70000103:', shop=True, conditional=True),
|
|
# Prisoner Chief's Ashes
|
|
DS3LocationData("FS: Karla's Pointed Hat - Prisoner Chief's Ashes", "Karla's Pointed Hat",
|
|
static='99,0:-1:110000,70000105:', shop=True, conditional=True),
|
|
DS3LocationData("FS: Karla's Coat - Prisoner Chief's Ashes", "Karla's Coat",
|
|
static='99,0:-1:110000,70000105:', shop=True, conditional=True),
|
|
DS3LocationData("FS: Karla's Gloves - Prisoner Chief's Ashes", "Karla's Gloves",
|
|
static='99,0:-1:110000,70000105:', shop=True, conditional=True),
|
|
DS3LocationData("FS: Karla's Trousers - Prisoner Chief's Ashes", "Karla's Trousers",
|
|
static='99,0:-1:110000,70000105:', shop=True, conditional=True),
|
|
DS3LocationData("FS: Xanthous Overcoat - Xanthous Ashes", "Xanthous Overcoat", shop=True,
|
|
conditional=True),
|
|
DS3LocationData("FS: Xanthous Gloves - Xanthous Ashes", "Xanthous Gloves", shop=True,
|
|
conditional=True),
|
|
DS3LocationData("FS: Xanthous Trousers - Xanthous Ashes", "Xanthous Trousers", shop=True,
|
|
conditional=True),
|
|
DS3LocationData("FS: Ember - Dragon Chaser's Ashes", "Ember",
|
|
static='99,0:-1:110000,70000108:', shop=True, conditional=True),
|
|
DS3LocationData("FS: Washing Pole - Easterner's Ashes", "Washing Pole", shop=True,
|
|
conditional=True),
|
|
DS3LocationData("FS: Eastern Helm - Easterner's Ashes", "Eastern Helm", shop=True,
|
|
conditional=True),
|
|
DS3LocationData("FS: Eastern Armor - Easterner's Ashes", "Eastern Armor", shop=True,
|
|
conditional=True),
|
|
DS3LocationData("FS: Eastern Gauntlets - Easterner's Ashes", "Eastern Gauntlets",
|
|
shop=True, conditional=True),
|
|
DS3LocationData("FS: Eastern Leggings - Easterner's Ashes", "Eastern Leggings", shop=True,
|
|
conditional=True),
|
|
DS3LocationData("FS: Wood Grain Ring - Easterner's Ashes", "Wood Grain Ring", shop=True,
|
|
conditional=True),
|
|
DS3LocationData("FS: Millwood Knight Helm - Captain's Ashes", "Millwood Knight Helm",
|
|
dlc=True, shop=True, conditional=True),
|
|
DS3LocationData("FS: Millwood Knight Armor - Captain's Ashes", "Millwood Knight Armor",
|
|
dlc=True, shop=True, conditional=True),
|
|
DS3LocationData("FS: Millwood Knight Gauntlets - Captain's Ashes",
|
|
"Millwood Knight Gauntlets", dlc=True, shop=True, conditional=True),
|
|
DS3LocationData("FS: Millwood Knight Leggings - Captain's Ashes",
|
|
"Millwood Knight Leggings", dlc=True, shop=True, conditional=True),
|
|
DS3LocationData("FS: Refined Gem - Captain's Ashes", "Refined Gem", dlc=True, shop=True,
|
|
conditional=True),
|
|
|
|
# Ludleth Shop
|
|
DS3LocationData("FS: Vordt's Great Hammer - Ludleth for Vordt", "Vordt's Great Hammer",
|
|
missable=True, boss=True, shop=True),
|
|
DS3LocationData("FS: Pontiff's Left Eye - Ludleth for Vordt", "Pontiff's Left Eye",
|
|
missable=True, boss=True, shop=True),
|
|
DS3LocationData("FS: Bountiful Sunlight - Ludleth for Rosaria", "Bountiful Sunlight",
|
|
missable=True, boss=True, shop=True),
|
|
DS3LocationData("FS: Darkmoon Longbow - Ludleth for Aldrich", "Darkmoon Longbow",
|
|
missable=True, boss=True, shop=True),
|
|
DS3LocationData("FS: Lifehunt Scythe - Ludleth for Aldrich", "Lifehunt Scythe",
|
|
missable=True, boss=True, shop=True),
|
|
DS3LocationData("FS: Hollowslayer Greatsword - Ludleth for Greatwood",
|
|
"Hollowslayer Greatsword", missable=True, boss=True, shop=True),
|
|
DS3LocationData("FS: Arstor's Spear - Ludleth for Greatwood", "Arstor's Spear",
|
|
missable=True, boss=True, shop=True),
|
|
DS3LocationData("FS: Crystal Sage's Rapier - Ludleth for Sage", "Crystal Sage's Rapier",
|
|
missable=True, boss=True, shop=True),
|
|
DS3LocationData("FS: Crystal Hail - Ludleth for Sage", "Crystal Hail", missable=True,
|
|
boss=True, shop=True),
|
|
DS3LocationData("FS: Cleric's Candlestick - Ludleth for Deacons", "Cleric's Candlestick",
|
|
missable=True, boss=True, shop=True),
|
|
DS3LocationData("FS: Deep Soul - Ludleth for Deacons", "Deep Soul", missable=True,
|
|
boss=True, shop=True),
|
|
DS3LocationData("FS: Havel's Ring - Ludleth for Stray Demon", "Havel's Ring",
|
|
missable=True, boss=True, shop=True),
|
|
DS3LocationData("FS: Boulder Heave - Ludleth for Stray Demon", "Boulder Heave",
|
|
missable=True, boss=True, shop=True),
|
|
DS3LocationData("FS: Farron Greatsword - Ludleth for Abyss Watchers", "Farron Greatsword",
|
|
missable=True, boss=True, shop=True),
|
|
DS3LocationData("FS: Wolf Knight's Greatsword - Ludleth for Abyss Watchers",
|
|
"Wolf Knight's Greatsword", missable=True, boss=True, shop=True),
|
|
DS3LocationData("FS: Wolnir's Holy Sword - Ludleth for Wolnir", "Wolnir's Holy Sword",
|
|
missable=True, boss=True, shop=True),
|
|
DS3LocationData("FS: Black Serpent - Ludleth for Wolnir", "Black Serpent", missable=True,
|
|
boss=True, shop=True),
|
|
DS3LocationData("FS: Demon's Greataxe - Ludleth for Fire Demon", "Demon's Greataxe",
|
|
missable=True, boss=True, shop=True),
|
|
DS3LocationData("FS: Demon's Fist - Ludleth for Fire Demon", "Demon's Fist",
|
|
missable=True, boss=True, shop=True),
|
|
DS3LocationData("FS: Old King's Great Hammer - Ludleth for Old Demon King",
|
|
"Old King's Great Hammer", missable=True, boss=True, shop=True),
|
|
DS3LocationData("FS: Chaos Bed Vestiges - Ludleth for Old Demon King", "Chaos Bed Vestiges",
|
|
missable=True, boss=True, shop=True),
|
|
DS3LocationData("FS: Greatsword of Judgment - Ludleth for Pontiff",
|
|
"Greatsword of Judgment", missable=True, boss=True, shop=True),
|
|
DS3LocationData("FS: Profaned Greatsword - Ludleth for Pontiff", "Profaned Greatsword",
|
|
missable=True, boss=True, shop=True),
|
|
DS3LocationData("FS: Yhorm's Great Machete - Ludleth for Yhorm", "Yhorm's Great Machete",
|
|
missable=True, boss=True, shop=True),
|
|
DS3LocationData("FS: Yhorm's Greatshield - Ludleth for Yhorm", "Yhorm's Greatshield",
|
|
missable=True, boss=True, shop=True),
|
|
DS3LocationData("FS: Dancer's Enchanted Swords - Ludleth for Dancer",
|
|
"Dancer's Enchanted Swords", missable=True, boss=True, shop=True),
|
|
DS3LocationData("FS: Soothing Sunlight - Ludleth for Dancer", "Soothing Sunlight",
|
|
missable=True, boss=True, shop=True),
|
|
DS3LocationData("FS: Dragonslayer Greataxe - Ludleth for Dragonslayer",
|
|
"Dragonslayer Greataxe", missable=True, boss=True, shop=True),
|
|
DS3LocationData("FS: Dragonslayer Greatshield - Ludleth for Dragonslayer",
|
|
"Dragonslayer Greatshield", missable=True, boss=True, shop=True),
|
|
DS3LocationData("FS: Moonlight Greatsword - Ludleth for Oceiros", "Moonlight Greatsword",
|
|
missable=True, boss=True, shop=True),
|
|
DS3LocationData("FS: White Dragon Breath - Ludleth for Oceiros", "White Dragon Breath",
|
|
missable=True, boss=True, shop=True),
|
|
DS3LocationData("FS: Lorian's Greatsword - Ludleth for Princes", "Lorian's Greatsword",
|
|
missable=True, boss=True, shop=True),
|
|
DS3LocationData("FS: Lothric's Holy Sword - Ludleth for Princes", "Lothric's Holy Sword",
|
|
missable=True, boss=True, shop=True),
|
|
DS3LocationData("FS: Gundyr's Halberd - Ludleth for Champion", "Gundyr's Halberd",
|
|
missable=True, boss=True, shop=True),
|
|
DS3LocationData("FS: Prisoner's Chain - Ludleth for Champion", "Prisoner's Chain",
|
|
missable=True, boss=True, shop=True),
|
|
DS3LocationData("FS: Storm Curved Sword - Ludleth for Nameless", "Storm Curved Sword",
|
|
missable=True, boss=True, shop=True),
|
|
DS3LocationData("FS: Dragonslayer Swordspear - Ludleth for Nameless",
|
|
"Dragonslayer Swordspear", missable=True, boss=True, shop=True),
|
|
DS3LocationData("FS: Lightning Storm - Ludleth for Nameless", "Lightning Storm",
|
|
missable=True, boss=True, shop=True),
|
|
DS3LocationData("FS: Firelink Greatsword - Ludleth for Cinder", "Firelink Greatsword",
|
|
missable=True, boss=True, shop=True),
|
|
DS3LocationData("FS: Sunlight Spear - Ludleth for Cinder", "Sunlight Spear",
|
|
missable=True, boss=True, shop=True),
|
|
DS3LocationData("FS: Friede's Great Scythe - Ludleth for Friede", "Friede's Great Scythe",
|
|
missable=True, dlc=True, boss=True, shop=True),
|
|
DS3LocationData("FS: Rose of Ariandel - Ludleth for Friede", "Rose of Ariandel",
|
|
missable=True, dlc=True, boss=True, shop=True),
|
|
DS3LocationData("FS: Demon's Scar - Ludleth for Demon Prince", "Demon's Scar",
|
|
missable=True, dlc=True, boss=True, shop=True),
|
|
DS3LocationData("FS: Seething Chaos - Ludleth for Demon Prince", "Seething Chaos",
|
|
missable=True, dlc=True, boss=True, shop=True),
|
|
DS3LocationData("FS: Frayed Blade - Ludleth for Midir", "Frayed Blade", missable=True,
|
|
dlc=True, boss=True, shop=True),
|
|
DS3LocationData("FS: Old Moonlight - Ludleth for Midir", "Old Moonlight", missable=True,
|
|
dlc=True, boss=True, shop=True),
|
|
DS3LocationData("FS: Gael's Greatsword - Ludleth for Gael", "Gael's Greatsword",
|
|
missable=True, dlc=True, boss=True, shop=True),
|
|
DS3LocationData("FS: Repeating Crossbow - Ludleth for Gael", "Repeating Crossbow",
|
|
missable=True, dlc=True, boss=True, shop=True),
|
|
],
|
|
"Firelink Shrine Bell Tower": [
|
|
# Guarded by Tower Key
|
|
DS3LocationData("FSBT: Homeward Bone - roof", "Homeward Bone x3"),
|
|
DS3LocationData("FSBT: Estus Ring - tower base", "Estus Ring"),
|
|
DS3LocationData("FSBT: Estus Shard - rafters", "Estus Shard"),
|
|
DS3LocationData("FSBT: Fire Keeper Soul - tower top", "Fire Keeper Soul"),
|
|
DS3LocationData("FSBT: Fire Keeper Robe - partway down tower", "Fire Keeper Robe"),
|
|
DS3LocationData("FSBT: Fire Keeper Gloves - partway down tower", "Fire Keeper Gloves"),
|
|
DS3LocationData("FSBT: Fire Keeper Skirt - partway down tower", "Fire Keeper Skirt"),
|
|
DS3LocationData("FSBT: Covetous Silver Serpent Ring - illusory wall past rafters",
|
|
"Covetous Silver Serpent Ring", hidden=True),
|
|
DS3LocationData("FSBT: Twinkling Titanite - lizard behind Firelink",
|
|
"Twinkling Titanite", lizard=True),
|
|
|
|
# Mark all crow trades as missable since no one wants to have to try trading everything just
|
|
# in case it gives a progression item.
|
|
DS3LocationData("FSBT: Iron Bracelets - crow for Homeward Bone", "Iron Bracelets",
|
|
missable=True),
|
|
DS3LocationData("FSBT: Ring of Sacrifice - crow for Loretta's Bone", "Ring of Sacrifice",
|
|
missable=True),
|
|
DS3LocationData("FSBT: Porcine Shield - crow for Undead Bone Shard", "Porcine Shield",
|
|
missable=True),
|
|
DS3LocationData("FSBT: Lucatiel's Mask - crow for Vertebra Shackle", "Lucatiel's Mask",
|
|
missable=True),
|
|
DS3LocationData("FSBT: Very good! Carving - crow for Divine Blessing",
|
|
"Very good! Carving", missable=True),
|
|
DS3LocationData("FSBT: Thank you Carving - crow for Hidden Blessing", "Thank you Carving",
|
|
missable=True),
|
|
DS3LocationData("FSBT: I'm sorry Carving - crow for Shriving Stone", "I'm sorry Carving",
|
|
missable=True),
|
|
DS3LocationData("FSBT: Sunlight Shield - crow for Mendicant's Staff", "Sunlight Shield",
|
|
missable=True),
|
|
DS3LocationData("FSBT: Hollow Gem - crow for Eleonora", "Hollow Gem",
|
|
missable=True),
|
|
DS3LocationData("FSBT: Titanite Scale - crow for Blacksmith Hammer", "Titanite Scale x3",
|
|
static='99,0:50004330::', missable=True),
|
|
DS3LocationData("FSBT: Help me! Carving - crow for any sacred chime", "Help me! Carving",
|
|
missable=True),
|
|
DS3LocationData("FSBT: Titanite Slab - crow for Coiled Sword Fragment", "Titanite Slab",
|
|
missable=True),
|
|
DS3LocationData("FSBT: Hello Carving - crow for Alluring Skull", "Hello Carving",
|
|
missable=True),
|
|
DS3LocationData("FSBT: Armor of the Sun - crow for Siegbräu", "Armor of the Sun",
|
|
missable=True),
|
|
DS3LocationData("FSBT: Large Titanite Shard - crow for Firebomb", "Large Titanite Shard",
|
|
missable=True),
|
|
DS3LocationData("FSBT: Titanite Chunk - crow for Black Firebomb", "Titanite Chunk",
|
|
missable=True),
|
|
DS3LocationData("FSBT: Iron Helm - crow for Lightning Urn", "Iron Helm", missable=True),
|
|
DS3LocationData("FSBT: Twinkling Titanite - crow for Prism Stone", "Twinkling Titanite",
|
|
missable=True),
|
|
DS3LocationData("FSBT: Iron Leggings - crow for Seed of a Giant Tree", "Iron Leggings",
|
|
missable=True),
|
|
DS3LocationData("FSBT: Lightning Gem - crow for Xanthous Crown", "Lightning Gem",
|
|
missable=True),
|
|
DS3LocationData("FSBT: Twinkling Titanite - crow for Large Leather Shield",
|
|
"Twinkling Titanite", missable=True),
|
|
DS3LocationData("FSBT: Blessed Gem - crow for Moaning Shield", "Blessed Gem",
|
|
missable=True),
|
|
],
|
|
"High Wall of Lothric": [
|
|
DS3LocationData("HWL: Soul of Boreal Valley Vordt", "Soul of Boreal Valley Vordt",
|
|
prominent=True, boss=True),
|
|
DS3LocationData("HWL: Soul of the Dancer", "Soul of the Dancer", prominent=True,
|
|
boss=True),
|
|
DS3LocationData("HWL: Basin of Vows - Emma", "Basin of Vows", prominent=True,
|
|
progression=True, conditional=True),
|
|
DS3LocationData("HWL: Small Lothric Banner - Emma", "Small Lothric Banner",
|
|
prominent=True, progression=True),
|
|
DS3LocationData("HWL: Green Blossom - fort walkway, hall behind wheel", "Green Blossom x2",
|
|
hidden=True),
|
|
DS3LocationData("HWL: Gold Pine Resin - corpse tower, drop", "Gold Pine Resin x2",
|
|
hidden=True),
|
|
DS3LocationData("HWL: Large Soul of a Deserted Corpse - flame plaza",
|
|
"Large Soul of a Deserted Corpse"),
|
|
DS3LocationData("HWL: Soul of a Deserted Corpse - by wall tower door",
|
|
"Soul of a Deserted Corpse"),
|
|
DS3LocationData("HWL: Standard Arrow - back tower", "Standard Arrow x12"),
|
|
DS3LocationData("HWL: Longbow - back tower", "Longbow"),
|
|
DS3LocationData("HWL: Firebomb - wall tower, beam", "Firebomb x3"),
|
|
DS3LocationData("HWL: Throwing Knife - wall tower, path to Greirat", "Throwing Knife x8"),
|
|
DS3LocationData("HWL: Soul of a Deserted Corpse - corpse tower, bottom floor",
|
|
"Soul of a Deserted Corpse"),
|
|
DS3LocationData("HWL: Club - flame plaza", "Club"),
|
|
DS3LocationData("HWL: Claymore - flame plaza", "Claymore"),
|
|
DS3LocationData("HWL: Ember - flame plaza", "Ember"),
|
|
DS3LocationData("HWL: Firebomb - corpse tower, under table", "Firebomb x2"),
|
|
DS3LocationData("HWL: Titanite Shard - wall tower, corner by bonfire", "Titanite Shard",
|
|
hidden=True),
|
|
DS3LocationData("HWL: Undead Hunter Charm - fort, room off entry, in pot",
|
|
"Undead Hunter Charm x2", hidden=True),
|
|
DS3LocationData("HWL: Firebomb - top of ladder to fountain", "Firebomb x3"),
|
|
DS3LocationData("HWL: Cell Key - fort ground, down stairs", "Cell Key"),
|
|
DS3LocationData("HWL: Ember - fountain #1", "Ember"),
|
|
DS3LocationData("HWL: Soul of a Deserted Corpse - fort entry, corner",
|
|
"Soul of a Deserted Corpse"),
|
|
DS3LocationData("HWL: Lucerne - promenade, side path", "Lucerne"),
|
|
DS3LocationData("HWL: Mail Breaker - wall tower, path to Greirat", "Mail Breaker"),
|
|
DS3LocationData("HWL: Titanite Shard - fort ground behind crates", "Titanite Shard",
|
|
hidden=True),
|
|
DS3LocationData("HWL: Rapier - fountain, corner", "Rapier"),
|
|
DS3LocationData("HWL: Titanite Shard - fort, room off entry", "Titanite Shard"),
|
|
DS3LocationData("HWL: Large Soul of a Deserted Corpse - fort roof",
|
|
"Large Soul of a Deserted Corpse"),
|
|
DS3LocationData("HWL: Black Firebomb - small roof over fountain", "Black Firebomb x3"),
|
|
DS3LocationData("HWL: Soul of a Deserted Corpse - path to corpse tower",
|
|
"Soul of a Deserted Corpse"),
|
|
DS3LocationData("HWL: Ember - fountain #2", "Ember"),
|
|
DS3LocationData("HWL: Large Soul of a Deserted Corpse - platform by fountain",
|
|
"Large Soul of a Deserted Corpse", hidden=True), # Easily missed turnoff
|
|
DS3LocationData("HWL: Binoculars - corpse tower, upper platform", "Binoculars"),
|
|
DS3LocationData("HWL: Ring of Sacrifice - awning by fountain",
|
|
"Ring of Sacrifice", hidden=True), # Easily missed turnoff
|
|
DS3LocationData("HWL: Throwing Knife - shortcut, lift top", "Throwing Knife x6"),
|
|
DS3LocationData("HWL: Soul of a Deserted Corpse - path to back tower, by lift door",
|
|
"Soul of a Deserted Corpse"),
|
|
DS3LocationData("HWL: Green Blossom - shortcut, lower courtyard", "Green Blossom x3"),
|
|
DS3LocationData("HWL: Broadsword - fort, room off walkway", "Broadsword"),
|
|
DS3LocationData("HWL: Soul of a Deserted Corpse - fountain, path to promenade",
|
|
"Soul of a Deserted Corpse"),
|
|
DS3LocationData("HWL: Firebomb - fort roof", "Firebomb x3"),
|
|
DS3LocationData("HWL: Soul of a Deserted Corpse - wall tower, right of exit",
|
|
"Soul of a Deserted Corpse"),
|
|
DS3LocationData("HWL: Estus Shard - fort ground, on anvil", "Estus Shard"),
|
|
DS3LocationData("HWL: Fleshbite Ring+1 - fort roof, jump to other roof",
|
|
"Fleshbite Ring+1", ngp=True, hidden=True), # Hidden jump
|
|
DS3LocationData("HWL: Ring of the Evil Eye+2 - fort ground, far wall",
|
|
"Ring of the Evil Eye+2", ngp=True, hidden=True), # In barrels
|
|
DS3LocationData("HWL: Silver Eagle Kite Shield - fort mezzanine",
|
|
"Silver Eagle Kite Shield"),
|
|
DS3LocationData("HWL: Astora Straight Sword - fort walkway, drop down",
|
|
"Astora Straight Sword", hidden=True), # Hidden fall
|
|
DS3LocationData("HWL: Battle Axe - flame tower, mimic", "Battle Axe",
|
|
static='01,0:53000960::', mimic=True),
|
|
|
|
# Only dropped after transformation
|
|
DS3LocationData("HWL: Ember - fort roof, transforming hollow", "Ember", hidden=True),
|
|
DS3LocationData("HWL: Titanite Shard - fort roof, transforming hollow", "Titanite Shard",
|
|
hidden=True),
|
|
DS3LocationData("HWL: Ember - back tower, transforming hollow", "Ember", hidden=True),
|
|
DS3LocationData("HWL: Titanite Shard - back tower, transforming hollow", "Titanite Shard",
|
|
hidden=True),
|
|
|
|
DS3LocationData("HWL: Refined Gem - promenade miniboss", "Refined Gem", miniboss=True),
|
|
DS3LocationData("HWL: Way of Blue - Emma", "Way of Blue"),
|
|
# Categorize this as an NPC item so that it doesn't get randomized if the Lift Chamber Key
|
|
# isn't randomized, since in that case it's missable.
|
|
DS3LocationData("HWL: Red Eye Orb - wall tower, miniboss", "Red Eye Orb",
|
|
conditional=True, miniboss=True, npc=True),
|
|
DS3LocationData("HWL: Raw Gem - fort roof, lizard", "Raw Gem", lizard=True),
|
|
],
|
|
"Undead Settlement": [
|
|
DS3LocationData("US: Soul of the Rotted Greatwood", "Soul of the Rotted Greatwood",
|
|
prominent=True, boss=True),
|
|
DS3LocationData("US: Transposing Kiln - boss drop", "Transposing Kiln", boss=True),
|
|
# Missable because it's unavailable if you start as a Pyromancer
|
|
DS3LocationData("US: Pyromancy Flame - Cornyx", "Pyromancy Flame", missable=True,
|
|
npc=True),
|
|
DS3LocationData("US: Old Sage's Blindfold - kill Cornyx", "Old Sage's Blindfold",
|
|
npc=True),
|
|
DS3LocationData("US: Cornyx's Garb - kill Cornyx", "Cornyx's Garb",
|
|
static='02,0:50006141::', npc=True),
|
|
DS3LocationData("US: Cornyx's Wrap - kill Cornyx", "Cornyx's Wrap",
|
|
static='02,0:50006141::', npc=True),
|
|
DS3LocationData("US: Cornyx's Skirt - kill Cornyx", "Cornyx's Skirt",
|
|
static='02,0:50006141::', npc=True),
|
|
DS3LocationData("US: Tower Key - kill Irina", "Tower Key", missable=True, npc=True),
|
|
DS3LocationData("US: Flynn's Ring - tower village, rooftop", "Flynn's Ring"),
|
|
DS3LocationData("US: Undead Bone Shard - by white tree", "Undead Bone Shard"),
|
|
DS3LocationData("US: Alluring Skull - foot, behind carriage", "Alluring Skull x2"),
|
|
DS3LocationData("US: Mortician's Ashes - graveyard by white tree", "Mortician's Ashes",
|
|
progression=True),
|
|
DS3LocationData("US: Homeward Bone - tower village, jump from roof", "Homeward Bone x2",
|
|
static='02,0:53100040::', hidden=True), # Hidden fall
|
|
DS3LocationData("US: Caduceus Round Shield - right after stable exit",
|
|
"Caduceus Round Shield"),
|
|
DS3LocationData("US: Ember - tower basement, miniboss", "Ember"),
|
|
DS3LocationData("US: Soul of an Unknown Traveler - chasm crypt",
|
|
"Soul of an Unknown Traveler"),
|
|
DS3LocationData("US: Repair Powder - first building, balcony", "Repair Powder x2"),
|
|
DS3LocationData("US: Homeward Bone - stable roof", "Homeward Bone x2",
|
|
static='02,0:53100090::'),
|
|
DS3LocationData("US: Titanite Shard - back alley, side path", "Titanite Shard"),
|
|
DS3LocationData("US: Wargod Wooden Shield - Pit of Hollows", "Wargod Wooden Shield"),
|
|
DS3LocationData("US: Large Soul of a Deserted Corpse - on the way to tower, by well",
|
|
"Large Soul of a Deserted Corpse"),
|
|
DS3LocationData("US: Ember - bridge on the way to tower", "Ember"),
|
|
DS3LocationData("US: Large Soul of a Deserted Corpse - stable",
|
|
"Large Soul of a Deserted Corpse"),
|
|
DS3LocationData("US: Titanite Shard - porch after burning tree", "Titanite Shard"),
|
|
DS3LocationData("US: Alluring Skull - tower village building, upstairs",
|
|
"Alluring Skull x2"),
|
|
DS3LocationData("US: Charcoal Pine Bundle - first building, middle floor",
|
|
"Charcoal Pine Bundle x2"),
|
|
DS3LocationData("US: Blue Wooden Shield - graveyard by white tree", "Blue Wooden Shield"),
|
|
DS3LocationData("US: Cleric Hat - graveyard by white tree", "Cleric Hat"),
|
|
DS3LocationData("US: Cleric Blue Robe - graveyard by white tree", "Cleric Blue Robe"),
|
|
DS3LocationData("US: Cleric Gloves - graveyard by white tree", "Cleric Gloves"),
|
|
DS3LocationData("US: Cleric Trousers - graveyard by white tree", "Cleric Trousers"),
|
|
DS3LocationData("US: Soul of an Unknown Traveler - portcullis by burning tree",
|
|
"Soul of an Unknown Traveler"),
|
|
DS3LocationData("US: Charcoal Pine Resin - hanging corpse room", "Charcoal Pine Resin x2"),
|
|
DS3LocationData("US: Loincloth - by Velka statue", "Loincloth"),
|
|
DS3LocationData("US: Bloodbite Ring - miniboss in sewer", "Bloodbite Ring",
|
|
miniboss=True), # Giant Rat drop
|
|
DS3LocationData("US: Charcoal Pine Bundle - first building, bottom floor",
|
|
"Charcoal Pine Bundle x2"),
|
|
DS3LocationData("US: Soul of an Unknown Traveler - back alley, past crates",
|
|
"Soul of an Unknown Traveler", hidden=True),
|
|
DS3LocationData("US: Titanite Shard - back alley, up ladder", "Titanite Shard"),
|
|
DS3LocationData("US: Red Hilted Halberd - chasm crypt", "Red Hilted Halberd"),
|
|
DS3LocationData("US: Rusted Coin - awning above Dilapidated Bridge", "Rusted Coin x2"),
|
|
DS3LocationData("US: Caestus - sewer", "Caestus"),
|
|
DS3LocationData("US: Saint's Talisman - chasm, by ladder", "Saint's Talisman"),
|
|
DS3LocationData("US: Alluring Skull - on the way to tower, behind building",
|
|
"Alluring Skull x3"),
|
|
DS3LocationData("US: Large Club - tower village, by miniboss", "Large Club"),
|
|
DS3LocationData("US: Titanite Shard - chasm #1", "Titanite Shard"),
|
|
DS3LocationData("US: Titanite Shard - chasm #2", "Titanite Shard"),
|
|
DS3LocationData("US: Fading Soul - outside stable", "Fading Soul"),
|
|
DS3LocationData("US: Titanite Shard - lower path to Cliff Underside", "Titanite Shard",
|
|
hidden=True), # hidden fall
|
|
DS3LocationData("US: Hand Axe - by Cornyx", "Hand Axe"),
|
|
DS3LocationData("US: Soul of an Unknown Traveler - pillory past stable",
|
|
"Soul of an Unknown Traveler"),
|
|
DS3LocationData("US: Ember - by stairs to boss", "Ember"),
|
|
DS3LocationData("US: Mirrah Vest - tower village, jump from roof", "Mirrah Vest",
|
|
hidden=True), # Hidden fall
|
|
DS3LocationData("US: Mirrah Gloves - tower village, jump from roof", "Mirrah Gloves",
|
|
hidden=True), # Hidden fall
|
|
DS3LocationData("US: Mirrah Trousers - tower village, jump from roof", "Mirrah Trousers",
|
|
hidden=True), # Hidden fall
|
|
DS3LocationData("US: Plank Shield - outside stable, by NPC", "Plank Shield"),
|
|
DS3LocationData("US: Red Bug Pellet - tower village building, basement",
|
|
"Red Bug Pellet x2"),
|
|
DS3LocationData("US: Chloranthy Ring - tower village, jump from roof", "Chloranthy Ring",
|
|
hidden=True), # Hidden fall
|
|
DS3LocationData("US: Fire Clutch Ring - wooden walkway past stable", "Fire Clutch Ring"),
|
|
DS3LocationData("US: Estus Shard - under burning tree", "Estus Shard"),
|
|
DS3LocationData("US: Firebomb - stable roof", "Firebomb x6"),
|
|
# In enemy rando, the enemy may not burst through the wall and make this room obvious
|
|
DS3LocationData("US: Whip - back alley, behind wooden wall", "Whip", hidden=True),
|
|
DS3LocationData("US: Great Scythe - building by white tree, balcony", "Great Scythe"),
|
|
DS3LocationData("US: Homeward Bone - foot, drop overlook", "Homeward Bone",
|
|
static='02,0:53100540::'),
|
|
DS3LocationData("US: Large Soul of a Deserted Corpse - around corner by Cliff Underside",
|
|
"Large Soul of a Deserted Corpse", hidden=True), # Hidden corner
|
|
DS3LocationData("US: Ember - behind burning tree", "Ember"),
|
|
DS3LocationData("US: Large Soul of a Deserted Corpse - across from Foot of the High Wall",
|
|
"Large Soul of a Deserted Corpse"),
|
|
DS3LocationData("US: Fading Soul - by white tree", "Fading Soul"),
|
|
DS3LocationData("US: Young White Branch - by white tree #1", "Young White Branch"),
|
|
DS3LocationData("US: Ember - by white tree", "Ember"),
|
|
DS3LocationData("US: Large Soul of a Deserted Corpse - by white tree",
|
|
"Large Soul of a Deserted Corpse"),
|
|
DS3LocationData("US: Young White Branch - by white tree #2", "Young White Branch"),
|
|
DS3LocationData("US: Reinforced Club - by white tree", "Reinforced Club"),
|
|
DS3LocationData("US: Soul of a Nameless Soldier - top of tower",
|
|
"Soul of a Nameless Soldier"),
|
|
DS3LocationData("US: Loretta's Bone - first building, hanging corpse on balcony",
|
|
"Loretta's Bone"),
|
|
DS3LocationData("US: Northern Helm - tower village, hanging corpse", "Northern Helm"),
|
|
DS3LocationData("US: Northern Armor - tower village, hanging corpse", "Northern Armor"),
|
|
DS3LocationData("US: Northern Gloves - tower village, hanging corpse", "Northern Gloves"),
|
|
DS3LocationData("US: Northern Trousers - tower village, hanging corpse",
|
|
"Northern Trousers"),
|
|
DS3LocationData("US: Partizan - hanging corpse above Cliff Underside", "Partizan",
|
|
missable=True), # requires projectile
|
|
DS3LocationData("US: Flame Stoneplate Ring - hanging corpse by Mound-Maker transport",
|
|
"Flame Stoneplate Ring"),
|
|
DS3LocationData("US: Red and White Shield - chasm, hanging corpse", "Red and White Shield",
|
|
static="02,0:53100740::", missable=True), # requires projectile
|
|
DS3LocationData("US: Small Leather Shield - first building, hanging corpse by entrance",
|
|
"Small Leather Shield"),
|
|
DS3LocationData("US: Pale Tongue - tower village, hanging corpse", "Pale Tongue"),
|
|
DS3LocationData("US: Large Soul of a Deserted Corpse - hanging corpse room, over stairs",
|
|
"Large Soul of a Deserted Corpse"),
|
|
DS3LocationData("US: Kukri - hanging corpse above burning tree", "Kukri x9",
|
|
missable=True), # requires projectile
|
|
DS3LocationData("US: Life Ring+1 - tower on the way to village", "Life Ring+1", ngp=True),
|
|
DS3LocationData("US: Poisonbite Ring+1 - graveyard by white tree, near well",
|
|
"Poisonbite Ring+1", ngp=True),
|
|
DS3LocationData("US: Covetous Silver Serpent Ring+2 - tower village, drop down from roof",
|
|
"Covetous Silver Serpent Ring+2", ngp=True, hidden=True), # Hidden fall
|
|
DS3LocationData("US: Human Pine Resin - tower village building, chest upstairs",
|
|
"Human Pine Resin x4"),
|
|
DS3LocationData("US: Homeward Bone - tower village, right at start", "Homeward Bone",
|
|
static='02,0:53100540::'),
|
|
DS3LocationData("US: Irithyll Straight Sword - miniboss drop, by Road of Sacrifices",
|
|
"Irithyll Straight Sword", miniboss=True),
|
|
DS3LocationData("US: Fire Gem - tower village, miniboss drop", "Fire Gem", miniboss=True),
|
|
DS3LocationData("US: Warrior of Sunlight - hanging corpse room, drop through hole",
|
|
"Warrior of Sunlight", hidden=True), # hidden fall
|
|
DS3LocationData("US: Mound-makers - Hodrick", "Mound-makers", missable=True),
|
|
DS3LocationData("US: Sharp Gem - lizard by Dilapidated Bridge", "Sharp Gem", lizard=True),
|
|
DS3LocationData("US: Heavy Gem - chasm, lizard", "Heavy Gem", lizard=True),
|
|
DS3LocationData("US: Siegbräu - Siegward", "Siegbräu", missable=True, npc=True),
|
|
DS3LocationData("US: Heavy Gem - Hawkwood", "Heavy Gem", static='00,0:50006070::',
|
|
missable=True, npc=True), # Hawkwood (quest, after Greatwood or Sage)
|
|
DS3LocationData("US -> RS", None),
|
|
|
|
# Yoel/Yuria of Londor
|
|
DS3LocationData("FS: Soul Arrow - Yoel/Yuria shop", "Soul Arrow",
|
|
static='99,0:-1:50000,110000,70000116:', missable=True, npc=True,
|
|
shop=True),
|
|
DS3LocationData("FS: Heavy Soul Arrow - Yoel/Yuria shop", "Heavy Soul Arrow",
|
|
static='99,0:-1:50000,110000,70000116:',
|
|
missable=True, npc=True, shop=True),
|
|
DS3LocationData("FS: Magic Weapon - Yoel/Yuria shop", "Magic Weapon",
|
|
static='99,0:-1:50000,110000,70000116:', missable=True, npc=True,
|
|
shop=True),
|
|
DS3LocationData("FS: Magic Shield - Yoel/Yuria shop", "Magic Shield",
|
|
static='99,0:-1:50000,110000,70000116:', missable=True, npc=True,
|
|
shop=True),
|
|
DS3LocationData("FS: Soul Greatsword - Yoel/Yuria shop", "Soul Greatsword",
|
|
static='99,0:-1:50000,110000,70000450,70000475:', missable=True,
|
|
npc=True, shop=True),
|
|
DS3LocationData("FS: Dark Hand - Yuria shop", "Dark Hand", missable=True, npc=True),
|
|
DS3LocationData("FS: Untrue White Ring - Yuria shop", "Untrue White Ring", missable=True,
|
|
npc=True),
|
|
DS3LocationData("FS: Untrue Dark Ring - Yuria shop", "Untrue Dark Ring", missable=True,
|
|
npc=True),
|
|
DS3LocationData("FS: Londor Braille Divine Tome - Yuria shop", "Londor Braille Divine Tome",
|
|
static='99,0:-1:40000,110000,70000116:', missable=True, npc=True),
|
|
DS3LocationData("FS: Darkdrift - kill Yuria", "Darkdrift", missable=True, drop=True,
|
|
npc=True), # kill her or kill Soul of Cinder
|
|
|
|
# Cornyx of the Great Swamp
|
|
# These aren't missable because the Shrine Handmaid will carry them if you kill Cornyx.
|
|
DS3LocationData("FS: Fireball - Cornyx", "Fireball", npc=True, shop=True),
|
|
DS3LocationData("FS: Fire Surge - Cornyx", "Fire Surge", npc=True, shop=True),
|
|
DS3LocationData("FS: Great Combustion - Cornyx", "Great Combustion", npc=True,
|
|
shop=True),
|
|
DS3LocationData("FS: Flash Sweat - Cornyx", "Flash Sweat", npc=True, shop=True),
|
|
# These are missable if you kill Cornyx before giving him the right tomes.
|
|
DS3LocationData("FS: Poison Mist - Cornyx for Great Swamp Tome", "Poison Mist",
|
|
missable=True, npc=True, shop=True),
|
|
DS3LocationData("FS: Fire Orb - Cornyx for Great Swamp Tome", "Fire Orb", missable=True,
|
|
npc=True, shop=True),
|
|
DS3LocationData("FS: Profuse Sweat - Cornyx for Great Swamp Tome", "Profuse Sweat",
|
|
missable=True, npc=True, shop=True),
|
|
DS3LocationData("FS: Bursting Fireball - Cornyx for Great Swamp Tome", "Bursting Fireball",
|
|
missable=True, npc=True, shop=True),
|
|
DS3LocationData("FS: Acid Surge - Cornyx for Carthus Tome", "Acid Surge", missable=True,
|
|
npc=True, shop=True),
|
|
DS3LocationData("FS: Carthus Flame Arc - Cornyx for Carthus Tome", "Carthus Flame Arc",
|
|
missable=True, npc=True, shop=True),
|
|
DS3LocationData("FS: Carthus Beacon - Cornyx for Carthus Tome", "Carthus Beacon",
|
|
missable=True, npc=True, shop=True),
|
|
DS3LocationData("FS: Great Chaos Fire Orb - Cornyx for Izalith Tome",
|
|
"Great Chaos Fire Orb", missable=True, npc=True, shop=True),
|
|
DS3LocationData("FS: Chaos Storm - Cornyx for Izalith Tome", "Chaos Storm", missable=True,
|
|
npc=True, shop=True),
|
|
|
|
# Irina of Carim
|
|
# These aren't in their own location because you don't actually need the Grave Key to access
|
|
# Irena—you can just fall down the cliff near Eygon.
|
|
DS3LocationData("FS: Saint's Ring - Irina", "Saint's Ring", npc=True, shop=True),
|
|
DS3LocationData("FS: Heal - Irina", "Heal", npc=True, shop=True),
|
|
DS3LocationData("FS: Replenishment - Irina", "Replenishment", npc=True, shop=True),
|
|
DS3LocationData("FS: Caressing Tears - Irina", "Caressing Tears", npc=True, shop=True),
|
|
DS3LocationData("FS: Homeward - Irina", "Homeward", npc=True, shop=True),
|
|
DS3LocationData("FS: Med Heal - Irina for Tome of Carim", "Med Heal", missable=True,
|
|
npc=True, shop=True),
|
|
DS3LocationData("FS: Tears of Denial - Irina for Tome of Carim", "Tears of Denial",
|
|
missable=True, npc=True, shop=True),
|
|
DS3LocationData("FS: Force - Irina for Tome of Carim", "Force", missable=True, npc=True,
|
|
shop=True),
|
|
DS3LocationData("FS: Bountiful Light - Irina for Tome of Lothric", "Bountiful Light",
|
|
missable=True, npc=True, shop=True),
|
|
DS3LocationData("FS: Magic Barrier - Irina for Tome of Lothric", "Magic Barrier",
|
|
missable=True, npc=True, shop=True),
|
|
DS3LocationData("FS: Blessed Weapon - Irina for Tome of Lothric", "Blessed Weapon",
|
|
missable=True, npc=True, shop=True),
|
|
],
|
|
"Road of Sacrifices": [
|
|
DS3LocationData("RS: Soul of a Crystal Sage", "Soul of a Crystal Sage", prominent=True,
|
|
boss=True),
|
|
DS3LocationData("RS: Exile Greatsword - NPC drop by Farron Keep", "Exile Greatsword",
|
|
hostile_npc=True), # Exile Knight #2 drop
|
|
DS3LocationData("RS: Great Club - NPC drop by Farron Keep", "Great Club",
|
|
hostile_npc=True), # Exile Knight #1 drop
|
|
DS3LocationData("RS: Heysel Pick - Heysel drop", "Heysel Pick", missable=True,
|
|
hostile_npc=True),
|
|
DS3LocationData("RS: Xanthous Crown - Heysel drop", "Xanthous Crown", missable=True,
|
|
hostile_npc=True),
|
|
DS3LocationData("RS: Butcher Knife - NPC drop beneath road", "Butcher Knife",
|
|
hostile_npc=True), # Madwoman
|
|
DS3LocationData("RS: Titanite Shard - water by Halfway Fortress", "Titanite Shard"),
|
|
DS3LocationData("RS: Titanite Shard - woods, left of path from Halfway Fortress",
|
|
"Titanite Shard"),
|
|
DS3LocationData("RS: Green Blossom - by deep water", "Green Blossom x4"),
|
|
DS3LocationData("RS: Estus Shard - left of fire behind stronghold left room",
|
|
"Estus Shard"),
|
|
DS3LocationData("RS: Ring of Sacrifice - stronghold, drop from right room balcony",
|
|
"Ring of Sacrifice", hidden=True), # hidden fall
|
|
DS3LocationData("RS: Soul of an Unknown Traveler - drop along wall from Halfway Fortress",
|
|
"Soul of an Unknown Traveler"),
|
|
DS3LocationData("RS: Fallen Knight Helm - water's edge by Farron Keep",
|
|
"Fallen Knight Helm"),
|
|
DS3LocationData("RS: Fallen Knight Armor - water's edge by Farron Keep",
|
|
"Fallen Knight Armor"),
|
|
DS3LocationData("RS: Fallen Knight Gauntlets - water's edge by Farron Keep",
|
|
"Fallen Knight Gauntlets"),
|
|
DS3LocationData("RS: Fallen Knight Trousers - water's edge by Farron Keep",
|
|
"Fallen Knight Trousers"),
|
|
DS3LocationData("RS: Heretic's Staff - stronghold left room", "Heretic's Staff"),
|
|
DS3LocationData("RS: Large Soul of an Unknown Traveler - left of stairs to Farron Keep",
|
|
"Large Soul of an Unknown Traveler"),
|
|
DS3LocationData("RS: Conjurator Hood - deep water", "Conjurator Hood"),
|
|
DS3LocationData("RS: Conjurator Robe - deep water", "Conjurator Robe"),
|
|
DS3LocationData("RS: Conjurator Manchettes - deep water", "Conjurator Manchettes"),
|
|
DS3LocationData("RS: Conjurator Boots - deep water", "Conjurator Boots"),
|
|
DS3LocationData("RS: Soul of an Unknown Traveler - right of door to stronghold left",
|
|
"Soul of an Unknown Traveler"),
|
|
DS3LocationData("RS: Green Blossom - water beneath stronghold", "Green Blossom x2"),
|
|
DS3LocationData("RS: Great Swamp Pyromancy Tome - deep water",
|
|
"Great Swamp Pyromancy Tome"),
|
|
DS3LocationData("RS: Homeward Bone - balcony by Farron Keep", "Homeward Bone x2"),
|
|
DS3LocationData("RS: Titanite Shard - woods, surrounded by enemies", "Titanite Shard"),
|
|
DS3LocationData("RS: Twin Dragon Greatshield - woods by Crucifixion Woods bonfire",
|
|
"Twin Dragon Greatshield"),
|
|
DS3LocationData("RS: Sorcerer Hood - water beneath stronghold", "Sorcerer Hood",
|
|
hidden=True), # Hidden fall
|
|
DS3LocationData("RS: Sorcerer Robe - water beneath stronghold", "Sorcerer Robe",
|
|
hidden=True), # Hidden fall
|
|
DS3LocationData("RS: Sorcerer Gloves - water beneath stronghold", "Sorcerer Gloves",
|
|
hidden=True), # Hidden fall
|
|
DS3LocationData("RS: Sorcerer Trousers - water beneath stronghold", "Sorcerer Trousers",
|
|
hidden=True), # Hidden fall
|
|
DS3LocationData("RS: Sage Ring - water beneath stronghold", "Sage Ring",
|
|
hidden=True), # Hidden fall
|
|
DS3LocationData("RS: Grass Crest Shield - water by Crucifixion Woods bonfire",
|
|
"Grass Crest Shield"),
|
|
DS3LocationData("RS: Ember - right of fire behind stronghold left room", "Ember"),
|
|
DS3LocationData("RS: Blue Bug Pellet - broken stairs by Orbeck", "Blue Bug Pellet x2"),
|
|
DS3LocationData("RS: Soul of an Unknown Traveler - road, by wagon",
|
|
"Soul of an Unknown Traveler"),
|
|
DS3LocationData("RS: Shriving Stone - road, by start", "Shriving Stone"),
|
|
DS3LocationData("RS: Titanite Shard - road, on bridge after you go under",
|
|
"Titanite Shard"),
|
|
DS3LocationData("RS: Brigand Twindaggers - beneath road", "Brigand Twindaggers"),
|
|
DS3LocationData("RS: Braille Divine Tome of Carim - drop from bridge to Halfway Fortress",
|
|
"Braille Divine Tome of Carim", hidden=True), # Hidden fall
|
|
DS3LocationData("RS: Ember - right of Halfway Fortress entrance", "Ember"),
|
|
DS3LocationData("RS: Sellsword Twinblades - keep perimeter", "Sellsword Twinblades"),
|
|
DS3LocationData("RS: Golden Falcon Shield - path from stronghold right room to Farron Keep",
|
|
"Golden Falcon Shield"),
|
|
DS3LocationData("RS: Brigand Axe - beneath road", "Brigand Axe"),
|
|
DS3LocationData("RS: Brigand Hood - beneath road", "Brigand Hood"),
|
|
DS3LocationData("RS: Brigand Armor - beneath road", "Brigand Armor"),
|
|
DS3LocationData("RS: Brigand Gauntlets - beneath road", "Brigand Gauntlets"),
|
|
DS3LocationData("RS: Brigand Trousers - beneath road", "Brigand Trousers"),
|
|
DS3LocationData("RS: Morne's Ring - drop from bridge to Halfway Fortress", "Morne's Ring",
|
|
hidden=True), # Hidden fall
|
|
DS3LocationData("RS: Sellsword Helm - keep perimeter balcony", "Sellsword Helm"),
|
|
DS3LocationData("RS: Sellsword Armor - keep perimeter balcony", "Sellsword Armor"),
|
|
DS3LocationData("RS: Sellsword Gauntlet - keep perimeter balcony", "Sellsword Gauntlet"),
|
|
DS3LocationData("RS: Sellsword Trousers - keep perimeter balcony", "Sellsword Trousers"),
|
|
DS3LocationData("RS: Farron Coal - keep perimeter", "Farron Coal"),
|
|
DS3LocationData("RS: Chloranthy Ring+2 - road, drop across from carriage",
|
|
"Chloranthy Ring+2", hidden=True, ngp=True), # Hidden fall
|
|
DS3LocationData("RS: Lingering Dragoncrest Ring+1 - water", "Lingering Dragoncrest Ring+1",
|
|
ngp=True),
|
|
DS3LocationData("RS: Great Swamp Ring - miniboss drop, by Farron Keep",
|
|
"Great Swamp Ring", miniboss=True), # Giant Crab drop
|
|
DS3LocationData("RS: Blue Sentinels - Horace", "Blue Sentinels",
|
|
missable=True, npc=True), # Horace quest
|
|
DS3LocationData("RS: Crystal Gem - stronghold, lizard", "Crystal Gem"),
|
|
DS3LocationData("RS: Fading Soul - woods by Crucifixion Woods bonfire", "Fading Soul",
|
|
static='03,0:53300210::'),
|
|
|
|
# Orbeck shop, all missable because he'll disappear if you don't talk to him for too long or
|
|
# if you don't give him a scroll.
|
|
DS3LocationData("FS: Farron Dart - Orbeck", "Farron Dart",
|
|
static='99,0:-1:110000,130100,70000111:', missable=True, npc=True,
|
|
shop=True),
|
|
DS3LocationData("FS: Soul Arrow - Orbeck", "Soul Arrow",
|
|
static='99,0:-1:110000,130100,70000111:', missable=True, npc=True,
|
|
shop=True),
|
|
DS3LocationData("FS: Great Soul Arrow - Orbeck", "Great Soul Arrow", missable=True,
|
|
npc=True, shop=True),
|
|
DS3LocationData("FS: Heavy Soul Arrow - Orbeck", "Heavy Soul Arrow",
|
|
static='99,0:-1:110000,130100,70000111:', missable=True, npc=True,
|
|
shop=True),
|
|
DS3LocationData("FS: Great Heavy Soul Arrow - Orbeck", "Great Heavy Soul Arrow",
|
|
missable=True, npc=True, shop=True),
|
|
DS3LocationData("FS: Magic Weapon - Orbeck", "Magic Weapon",
|
|
static='99,0:-1:110000,130100,70000111:', missable=True, npc=True,
|
|
shop=True),
|
|
DS3LocationData("FS: Magic Shield - Orbeck", "Magic Shield",
|
|
static='99,0:-1:110000,130100,70000111:', missable=True, npc=True,
|
|
shop=True),
|
|
DS3LocationData("FS: Spook - Orbeck", "Spook", missable=True, npc=True, shop=True),
|
|
DS3LocationData("FS: Aural Decoy - Orbeck", "Aural Decoy", missable=True, npc=True,
|
|
shop=True),
|
|
DS3LocationData("FS: Soul Greatsword - Orbeck", "Soul Greatsword",
|
|
static='99,0:-1:110000,130100,70000111:', missable=True, npc=True),
|
|
DS3LocationData("FS: Farron Flashsword - Orbeck", "Farron Flashsword", missable=True,
|
|
npc=True, shop=True),
|
|
DS3LocationData("FS: Pestilent Mist - Orbeck for any scroll", "Pestilent Mist",
|
|
missable=True, npc=True, shop=True),
|
|
DS3LocationData("FS: Great Farron Dart - Orbeck for Sage's Scroll", "Great Farron Dart",
|
|
missable=True, npc=True, shop=True),
|
|
DS3LocationData("FS: Farron Hail - Orbeck for Sage's Scroll", "Farron Hail",
|
|
missable=True, npc=True, shop=True),
|
|
DS3LocationData("FS: Homing Soulmass - Orbeck for Logan's Scroll", "Homing Soulmass",
|
|
missable=True, npc=True, shop=True),
|
|
DS3LocationData("FS: Soul Spear - Orbeck for Logan's Scroll", "Soul Spear",
|
|
missable=True, npc=True, shop=True),
|
|
DS3LocationData("FS: Homing Crystal Soulmass - Orbeck for Crystal Scroll",
|
|
"Homing Crystal Soulmass", missable=True, npc=True, shop=True),
|
|
DS3LocationData("FS: Crystal Soul Spear - Orbeck for Crystal Scroll", "Crystal Soul Spear",
|
|
missable=True, npc=True, shop=True),
|
|
DS3LocationData("FS: Crystal Magic Weapon - Orbeck for Crystal Scroll",
|
|
"Crystal Magic Weapon", missable=True, npc=True, shop=True),
|
|
DS3LocationData("FS: Cast Light - Orbeck for Golden Scroll", "Cast Light", missable=True,
|
|
npc=True, shop=True),
|
|
DS3LocationData("FS: Twisted Wall of Light - Orbeck for Golden Scroll",
|
|
"Twisted Wall of Light", missable=True, npc=True, shop=True),
|
|
DS3LocationData("FS: Hidden Weapon - Orbeck for Golden Scroll", "Hidden Weapon",
|
|
missable=True, npc=True, shop=True),
|
|
DS3LocationData("FS: Hidden Body - Orbeck for Golden Scroll", "Hidden Body",
|
|
missable=True, npc=True, shop=True),
|
|
DS3LocationData("FS: Repair - Orbeck for Golden Scroll", "Repair", missable=True,
|
|
npc=True, shop=True),
|
|
DS3LocationData("FS: Clandestine Coat - shop with Orbeck's Ashes", "Clandestine Coat",
|
|
missable=True, npc=True,
|
|
shop=True), # Shrine Handmaid with Orbeck's Ashes + reload
|
|
DS3LocationData("FS: Young Dragon Ring - Orbeck for one scroll and buying three spells",
|
|
"Young Dragon Ring", missable=True, npc=True),
|
|
DS3LocationData("FS: Slumbering Dragoncrest Ring - Orbeck for buying four specific spells",
|
|
"Slumbering Dragoncrest Ring", missable=True, npc=True),
|
|
DS3LocationData("RS -> FK", None),
|
|
|
|
# Shrine Handmaid after killing exiles
|
|
DS3LocationData("FS: Exile Mask - shop after killing NPCs in RS", "Exile Mask",
|
|
hostile_npc=True, shop=True, hidden=True),
|
|
DS3LocationData("FS: Exile Armor - shop after killing NPCs in RS", "Exile Armor",
|
|
hostile_npc=True, shop=True, hidden=True),
|
|
DS3LocationData("FS: Exile Gauntlets - shop after killing NPCs in RS", "Exile Gauntlets",
|
|
hostile_npc=True, shop=True, hidden=True),
|
|
DS3LocationData("FS: Exile Leggings - shop after killing NPCs in RS", "Exile Leggings",
|
|
hostile_npc=True, shop=True, hidden=True),
|
|
|
|
# Shrine Handmaid after killing Crystal Sage
|
|
DS3LocationData("FS: Sage's Big Hat - shop after killing RS boss", "Sage's Big Hat",
|
|
boss=True, shop=True),
|
|
|
|
# Yuria of Londor for Orbeck's Ashes
|
|
DS3LocationData("FS: Morion Blade - Yuria for Orbeck's Ashes", "Morion Blade",
|
|
missable=True, npc=True),
|
|
],
|
|
"Cathedral of the Deep": [
|
|
DS3LocationData("CD: Herald Helm - path, by fire", "Herald Helm"),
|
|
DS3LocationData("CD: Herald Armor - path, by fire", "Herald Armor"),
|
|
DS3LocationData("CD: Herald Gloves - path, by fire", "Herald Gloves"),
|
|
DS3LocationData("CD: Herald Trousers - path, by fire", "Herald Trousers"),
|
|
DS3LocationData("CD: Twinkling Titanite - path, lizard #1", "Twinkling Titanite",
|
|
lizard=True),
|
|
DS3LocationData("CD: Twinkling Titanite - path, lizard #2", "Twinkling Titanite",
|
|
lizard=True),
|
|
DS3LocationData("CD: Small Doll - boss drop", "Small Doll", prominent=True,
|
|
progression=True, boss=True),
|
|
DS3LocationData("CD: Soul of the Deacons of the Deep", "Soul of the Deacons of the Deep",
|
|
boss=True),
|
|
DS3LocationData("CD: Black Eye Orb - Rosaria from Leonhard's quest", "Black Eye Orb",
|
|
missable=True, npc=True),
|
|
DS3LocationData("CD: Winged Spear - kill Patches", "Winged Spear", drop=True,
|
|
missable=True), # Patches (kill)
|
|
DS3LocationData("CD: Spider Shield - NPC drop on path", "Spider Shield",
|
|
hostile_npc=True), # Brigand
|
|
DS3LocationData("CD: Notched Whip - Cleansing Chapel", "Notched Whip"),
|
|
DS3LocationData("CD: Titanite Shard - Cleansing Chapel windowsill, by miniboss",
|
|
"Titanite Shard"),
|
|
DS3LocationData("CD: Astora Greatsword - graveyard, left of entrance", "Astora Greatsword"),
|
|
DS3LocationData("CD: Executioner's Greatsword - graveyard, far end",
|
|
"Executioner's Greatsword"),
|
|
DS3LocationData("CD: Undead Bone Shard - gravestone by white tree", "Undead Bone Shard"),
|
|
DS3LocationData("CD: Curse Ward Greatshield - by ladder from white tree to moat",
|
|
"Curse Ward Greatshield"),
|
|
DS3LocationData("CD: Titanite Shard - moat, far end", "Titanite Shard"),
|
|
DS3LocationData("CD: Large Soul of an Unknown Traveler - lower roofs, semicircle balcony",
|
|
"Large Soul of an Unknown Traveler"),
|
|
DS3LocationData("CD: Paladin's Ashes - path, guarded by lower NPC", "Paladin's Ashes",
|
|
progression=True),
|
|
DS3LocationData("CD: Arbalest - upper roofs, end of furthest buttress", "Arbalest"),
|
|
DS3LocationData("CD: Ember - by back door", "Ember"),
|
|
DS3LocationData("CD: Ember - side chapel upstairs, up ladder", "Ember"),
|
|
DS3LocationData("CD: Poisonbite Ring - moat, hall past miniboss", "Poisonbite Ring"),
|
|
DS3LocationData("CD: Drang Armor - main hall, east", "Drang Armor"),
|
|
DS3LocationData("CD: Ember - edge of platform before boss", "Ember"),
|
|
DS3LocationData("CD: Duel Charm - next to Patches in onion armor", "Duel Charm x3"),
|
|
DS3LocationData("CD: Seek Guidance - side chapel upstairs", "Seek Guidance"),
|
|
DS3LocationData("CD: Estus Shard - monument outside Cleansing Chapel", "Estus Shard"),
|
|
DS3LocationData("CD: Maiden Hood - main hall south", "Maiden Hood"),
|
|
DS3LocationData("CD: Maiden Robe - main hall south", "Maiden Robe"),
|
|
DS3LocationData("CD: Maiden Gloves - main hall south", "Maiden Gloves"),
|
|
DS3LocationData("CD: Maiden Skirt - main hall south", "Maiden Skirt"),
|
|
DS3LocationData("CD: Pale Tongue - upper roofs, outdoors far end", "Pale Tongue"),
|
|
DS3LocationData("CD: Fading Soul - graveyard, far end", "Fading Soul"),
|
|
DS3LocationData("CD: Blessed Gem - upper roofs, rafters", "Blessed Gem"),
|
|
DS3LocationData("CD: Red Bug Pellet - right of cathedral front doors", "Red Bug Pellet"),
|
|
DS3LocationData("CD: Soul of a Nameless Soldier - main hall south",
|
|
"Soul of a Nameless Soldier"),
|
|
DS3LocationData("CD: Duel Charm - by first elevator", "Duel Charm"),
|
|
DS3LocationData("CD: Large Soul of an Unknown Traveler - main hall south, side path",
|
|
"Large Soul of an Unknown Traveler"),
|
|
DS3LocationData("CD: Ember - side chapel, miniboss room", "Ember"),
|
|
DS3LocationData("CD: Repair Powder - by white tree", "Repair Powder x3"),
|
|
DS3LocationData("CD: Large Soul of an Unknown Traveler - by white tree #1",
|
|
"Large Soul of an Unknown Traveler"),
|
|
DS3LocationData("CD: Large Soul of an Unknown Traveler - by white tree #2",
|
|
"Large Soul of an Unknown Traveler"),
|
|
DS3LocationData("CD: Undead Hunter Charm - lower roofs, up stairs between buttresses",
|
|
"Undead Hunter Charm x3"),
|
|
DS3LocationData("CD: Red Bug Pellet - lower roofs, up stairs between buttresses",
|
|
"Red Bug Pellet x3"),
|
|
DS3LocationData("CD: Titanite Shard - outside building by white tree", "Titanite Shard",
|
|
hidden=True), # Easily missable side path
|
|
DS3LocationData("CD: Titanite Shard - moat, up a slope", "Titanite Shard"),
|
|
DS3LocationData("CD: Rusted Coin - left of cathedral front doors, behind crates",
|
|
"Rusted Coin x2", hidden=True),
|
|
DS3LocationData("CD: Drang Hammers - main hall east", "Drang Hammers"),
|
|
DS3LocationData("CD: Drang Shoes - main hall east", "Drang Shoes"),
|
|
DS3LocationData("CD: Large Soul of an Unknown Traveler - main hall east",
|
|
"Large Soul of an Unknown Traveler"),
|
|
DS3LocationData("CD: Pale Tongue - main hall east", "Pale Tongue"),
|
|
DS3LocationData("CD: Drang Gauntlets - main hall east", "Drang Gauntlets"),
|
|
DS3LocationData("CD: Soul of a Nameless Soldier - lower roofs, side room",
|
|
"Soul of a Nameless Soldier"),
|
|
DS3LocationData("CD: Exploding Bolt - ledge above main hall south", "Exploding Bolt x6"),
|
|
DS3LocationData("CD: Lloyd's Sword Ring - ledge above main hall south",
|
|
"Lloyd's Sword Ring"),
|
|
DS3LocationData("CD: Soul of a Nameless Soldier - ledge above main hall south",
|
|
"Soul of a Nameless Soldier"),
|
|
DS3LocationData("CD: Homeward Bone - outside main hall south door", "Homeward Bone x2"),
|
|
DS3LocationData("CD: Deep Gem - down stairs by first elevator", "Deep Gem"),
|
|
DS3LocationData("CD: Titanite Shard - path, side path by Cathedral of the Deep bonfire",
|
|
"Titanite Shard"),
|
|
DS3LocationData("CD: Large Soul of an Unknown Traveler - path, against outer wall",
|
|
"Large Soul of an Unknown Traveler"),
|
|
# Before the stairs leading down into the Deacons fight
|
|
DS3LocationData("CD: Ring of the Evil Eye+1 - by stairs to boss", "Ring of the Evil Eye+1",
|
|
ngp=True),
|
|
DS3LocationData("CD: Ring of Favor+2 - upper roofs, on buttress", "Ring of Favor+2",
|
|
hidden=True, ngp=True), # Hidden fall
|
|
DS3LocationData("CD: Crest Shield - path, drop down by Cathedral of the Deep bonfire",
|
|
"Crest Shield", hidden=True), # Hidden fall
|
|
DS3LocationData("CD: Young White Branch - by white tree #1", "Young White Branch"),
|
|
DS3LocationData("CD: Young White Branch - by white tree #2", "Young White Branch"),
|
|
DS3LocationData("CD: Saint-tree Bellvine - moat, by water", "Saint-tree Bellvine"),
|
|
DS3LocationData("CD: Saint Bident - outside main hall south door", "Saint Bident"),
|
|
# Archdeacon set is hidden because you have to return to a cleared area
|
|
DS3LocationData("CD: Archdeacon White Crown - boss room after killing boss",
|
|
"Archdeacon White Crown", boss=True, hidden=True),
|
|
DS3LocationData("CD: Archdeacon Holy Garb - boss room after killing boss",
|
|
"Archdeacon Holy Garb", boss=True, hidden=True),
|
|
DS3LocationData("CD: Archdeacon Skirt - boss room after killing boss", "Archdeacon Skirt",
|
|
boss=True, hidden=True),
|
|
# Heysel items may not be missable, but it's not clear what causes them to trigger
|
|
DS3LocationData("CD: Heysel Pick - Heysel Corpse-Grub in Rosaria's Bed Chamber",
|
|
"Heysel Pick", missable=True),
|
|
DS3LocationData("CD: Xanthous Crown - Heysel Corpse-Grub in Rosaria's Bed Chamber",
|
|
"Xanthous Crown", missable=True),
|
|
DS3LocationData("CD: Deep Ring - upper roofs, passive mob drop in first tower", "Deep Ring",
|
|
drop=True, hidden=True),
|
|
DS3LocationData("CD: Deep Braille Divine Tome - mimic by side chapel",
|
|
"Deep Braille Divine Tome", mimic=True),
|
|
DS3LocationData("CD: Red Sign Soapstone - passive mob drop by Rosaria's Bed Chamber",
|
|
"Red Sign Soapstone", drop=True, hidden=True),
|
|
DS3LocationData("CD: Aldrich's Sapphire - side chapel, miniboss drop", "Aldrich's Sapphire",
|
|
miniboss=True), # Deep Accursed Drop
|
|
DS3LocationData("CD: Titanite Scale - moat, miniboss drop", "Titanite Scale",
|
|
miniboss=True), # Ravenous Crystal Lizard drop
|
|
DS3LocationData("CD: Twinkling Titanite - moat, lizard #1", "Twinkling Titanite",
|
|
lizard=True),
|
|
DS3LocationData("CD: Twinkling Titanite - moat, lizard #2", "Twinkling Titanite",
|
|
lizard=True),
|
|
DS3LocationData("CD: Rosaria's Fingers - Rosaria", "Rosaria's Fingers",
|
|
hidden=True), # Hidden fall
|
|
DS3LocationData("CD -> PW1", None),
|
|
|
|
# Longfinger Kirk drops
|
|
DS3LocationData("CD: Barbed Straight Sword - Kirk drop", "Barbed Straight Sword",
|
|
missable=True, hostile_npc=True),
|
|
DS3LocationData("CD: Spiked Shield - Kirk drop", "Spiked Shield", missable=True,
|
|
hostile_npc=True),
|
|
# In Rosaria's Bed Chamber
|
|
DS3LocationData("CD: Helm of Thorns - Rosaria's Bed Chamber after killing Kirk",
|
|
"Helm of Thorns", missable=True, hostile_npc=True),
|
|
DS3LocationData("CD: Armor of Thorns - Rosaria's Bed Chamber after killing Kirk",
|
|
"Armor of Thorns", missable=True, hostile_npc=True),
|
|
DS3LocationData("CD: Gauntlets of Thorns - Rosaria's Bed Chamber after killing Kirk",
|
|
"Gauntlets of Thorns", missable=True, hostile_npc=True),
|
|
DS3LocationData("CD: Leggings of Thorns - Rosaria's Bed Chamber after killing Kirk",
|
|
"Leggings of Thorns", missable=True, hostile_npc=True),
|
|
|
|
# Unbreakable Patches
|
|
DS3LocationData("CD: Rusted Coin - don't forgive Patches", "Rusted Coin",
|
|
missable=True, npc=True),
|
|
DS3LocationData("FS: Rusted Gold Coin - don't forgive Patches", "Rusted Gold Coin",
|
|
static='99,0:50006201::', missable=True,
|
|
npc=True), # Don't forgive Patches
|
|
DS3LocationData("CD: Shotel - Patches", "Shotel", missable=True, npc=True, shop=True),
|
|
DS3LocationData("CD: Ember - Patches", "Ember", missable=True, npc=True, shop=True),
|
|
DS3LocationData("CD: Horsehoof Ring - Patches", "Horsehoof Ring", missable=True,
|
|
npc=True, drop=True, shop=True), # (kill or buy)
|
|
],
|
|
"Farron Keep": [
|
|
DS3LocationData("FK: Lightning Spear - upper keep, far side of the wall",
|
|
"Lightning Spear"),
|
|
DS3LocationData("FK: Dragon Crest Shield - upper keep, far side of the wall",
|
|
"Dragon Crest Shield"),
|
|
DS3LocationData("FK: Soul of the Blood of the Wolf", "Soul of the Blood of the Wolf",
|
|
boss=True),
|
|
DS3LocationData("FK: Cinders of a Lord - Abyss Watcher",
|
|
"Cinders of a Lord - Abyss Watcher",
|
|
static="03,0:50002100::", prominent=True, progression=True,
|
|
boss=True),
|
|
DS3LocationData("FK: Manikin Claws - Londor Pale Shade drop", "Manikin Claws",
|
|
missable=True, hostile_npc=True,
|
|
npc=True), # Londor Pale Shade (if Yoel/Yuria hostile)
|
|
DS3LocationData("FK: Purple Moss Clump - keep ruins, ritual island",
|
|
"Purple Moss Clump x2"),
|
|
DS3LocationData("FK: Purple Moss Clump - ramp directly in front of Farron Keep bonfire",
|
|
"Purple Moss Clump x4"),
|
|
DS3LocationData("FK: Greatsword - ramp by keep ruins ritual island", "Greatsword"),
|
|
DS3LocationData("FK: Hollow Gem - perimeter, drop down into swamp", "Hollow Gem",
|
|
hidden=True),
|
|
DS3LocationData("FK: Purple Moss Clump - Farron Keep bonfire, around right corner",
|
|
"Purple Moss Clump x3"),
|
|
DS3LocationData("FK: Undead Bone Shard - pavilion by keep ruins bonfire island",
|
|
"Undead Bone Shard"),
|
|
DS3LocationData("FK: Atonement - perimeter, drop down into swamp", "Atonement",
|
|
hidden=True),
|
|
DS3LocationData("FK: Titanite Shard - by ladder to keep proper", "Titanite Shard"),
|
|
DS3LocationData("FK: Iron Flesh - Farron Keep bonfire, right after exit", "Iron Flesh"),
|
|
DS3LocationData("FK: Stone Parma - near wall by left island", "Stone Parma"),
|
|
DS3LocationData("FK: Rotten Pine Resin - left island, behind fire", "Rotten Pine Resin x2"),
|
|
DS3LocationData("FK: Titanite Shard - between left island and keep ruins", "Titanite Shard"),
|
|
DS3LocationData("FK: Rusted Gold Coin - right island, behind wall", "Rusted Gold Coin",
|
|
hidden=True),
|
|
DS3LocationData("FK: Nameless Knight Helm - corner of keep and right island",
|
|
"Nameless Knight Helm"),
|
|
DS3LocationData("FK: Nameless Knight Armor - corner of keep and right island",
|
|
"Nameless Knight Armor"),
|
|
DS3LocationData("FK: Nameless Knight Gauntlets - corner of keep and right island",
|
|
"Nameless Knight Gauntlets"),
|
|
DS3LocationData("FK: Nameless Knight Leggings - corner of keep and right island",
|
|
"Nameless Knight Leggings"),
|
|
DS3LocationData("FK: Shriving Stone - perimeter, just past stone doors", "Shriving Stone"),
|
|
DS3LocationData("FK: Repair Powder - outside hidden cave", "Repair Powder x4",
|
|
hidden=True),
|
|
DS3LocationData("FK: Golden Scroll - hidden cave", "Golden Scroll", hidden=True),
|
|
DS3LocationData("FK: Sage's Scroll - near wall by keep ruins bonfire island",
|
|
"Sage's Scroll"),
|
|
DS3LocationData("FK: Dreamchaser's Ashes - keep proper, illusory wall",
|
|
"Dreamchaser's Ashes", progression=True, hidden=True),
|
|
DS3LocationData("FK: Titanite Shard - keep ruins bonfire island, under ramp",
|
|
"Titanite Shard"),
|
|
DS3LocationData("FK: Wolf's Blood Swordgrass - by ladder to keep proper",
|
|
"Wolf's Blood Swordgrass"),
|
|
DS3LocationData("FK: Great Magic Weapon - perimeter, by door to Road of Sacrifices",
|
|
"Great Magic Weapon"),
|
|
DS3LocationData("FK: Ember - perimeter, path to boss", "Ember"),
|
|
DS3LocationData("FK: Titanite Shard - swamp by right island", "Titanite Shard x2"),
|
|
DS3LocationData("FK: Titanite Shard - by left island stairs", "Titanite Shard"),
|
|
DS3LocationData("FK: Titanite Shard - by keep ruins ritual island stairs", "Titanite Shard"),
|
|
DS3LocationData("FK: Black Bug Pellet - perimeter, hill by boss door",
|
|
"Black Bug Pellet x3"),
|
|
DS3LocationData("FK: Rotten Pine Resin - outside pavilion by left island",
|
|
"Rotten Pine Resin x4"),
|
|
DS3LocationData("FK: Poison Gem - near wall by keep ruins bridge", "Poison Gem"),
|
|
DS3LocationData("FK: Ragged Mask - Farron Keep bonfire, around left corner", "Ragged Mask"),
|
|
DS3LocationData("FK: Estus Shard - between Farron Keep bonfire and left island",
|
|
"Estus Shard"),
|
|
DS3LocationData("FK: Homeward Bone - right island, behind fire", "Homeward Bone x2"),
|
|
DS3LocationData("FK: Titanite Shard - Farron Keep bonfire, left after exit",
|
|
"Titanite Shard"),
|
|
DS3LocationData("FK: Large Soul of a Nameless Soldier - corner of keep and right island",
|
|
"Large Soul of a Nameless Soldier", hidden=True), # Tricky corner to spot
|
|
DS3LocationData("FK: Prism Stone - by left island stairs", "Prism Stone x10"),
|
|
DS3LocationData("FK: Large Soul of a Nameless Soldier - near wall by right island",
|
|
"Large Soul of a Nameless Soldier"),
|
|
DS3LocationData("FK: Sage's Coal - pavilion by left island", "Sage's Coal"),
|
|
DS3LocationData("FK: Gold Pine Bundle - by white tree", "Gold Pine Bundle x6"),
|
|
DS3LocationData("FK: Ember - by white tree", "Ember"),
|
|
DS3LocationData("FK: Soul of a Nameless Soldier - by white tree", "Soul of a Nameless Soldier"),
|
|
DS3LocationData("FK: Large Soul of an Unknown Traveler - by white tree",
|
|
"Large Soul of an Unknown Traveler"),
|
|
DS3LocationData("FK: Greataxe - upper keep, by miniboss", "Greataxe"),
|
|
DS3LocationData("FK: Ember - upper keep, by miniboss #1", "Ember"),
|
|
DS3LocationData("FK: Ember - upper keep, by miniboss #2", "Ember"),
|
|
DS3LocationData("FK: Dark Stoneplate Ring+2 - keep ruins ritual island, behind wall",
|
|
"Dark Stoneplate Ring+2", ngp=True, hidden=True),
|
|
DS3LocationData("FK: Magic Stoneplate Ring+1 - between right island and wall",
|
|
"Magic Stoneplate Ring+1", ngp=True),
|
|
DS3LocationData("FK: Wolf Ring+1 - keep ruins bonfire island, outside building",
|
|
"Wolf Ring+1", ngp=True),
|
|
DS3LocationData("FK: Antiquated Dress - hidden cave", "Antiquated Dress", hidden=True),
|
|
DS3LocationData("FK: Antiquated Gloves - hidden cave", "Antiquated Gloves", hidden=True),
|
|
DS3LocationData("FK: Antiquated Skirt - hidden cave", "Antiquated Skirt", hidden=True),
|
|
DS3LocationData("FK: Sunlight Talisman - estus soup island, by ladder to keep proper",
|
|
"Sunlight Talisman"),
|
|
DS3LocationData("FK: Young White Branch - by white tree #1", "Young White Branch"),
|
|
DS3LocationData("FK: Young White Branch - by white tree #2", "Young White Branch"),
|
|
DS3LocationData("FK: Crown of Dusk - by white tree", "Crown of Dusk"),
|
|
DS3LocationData("FK: Lingering Dragoncrest Ring - by white tree, miniboss drop",
|
|
"Lingering Dragoncrest Ring", miniboss=True), # Great Crab drop
|
|
DS3LocationData("FK: Pharis's Hat - miniboss drop, by keep ruins near wall",
|
|
"Pharis's Hat", miniboss=True), # Elder Ghru drop
|
|
DS3LocationData("FK: Black Bow of Pharis - miniboss drop, by keep ruins near wall",
|
|
"Black Bow of Pharis", miniboss=True), # Elder Ghru drop
|
|
DS3LocationData("FK: Titanite Scale - perimeter, miniboss drop", "Titanite Scale x2",
|
|
miniboss=True), # Ravenous Crystal Lizard drop
|
|
DS3LocationData("FK: Large Titanite Shard - upper keep, lizard in open",
|
|
"Large Titanite Shard", lizard=True),
|
|
DS3LocationData("FK: Large Titanite Shard - upper keep, lizard by wyvern",
|
|
"Large Titanite Shard", lizard=True),
|
|
DS3LocationData("FK: Heavy Gem - upper keep, lizard on stairs", "Heavy Gem", lizard=True),
|
|
DS3LocationData("FK: Twinkling Titanite - keep proper, lizard", "Twinkling Titanite",
|
|
lizard=True),
|
|
DS3LocationData("FK: Soul of a Stray Demon - upper keep, miniboss drop",
|
|
"Soul of a Stray Demon", miniboss=True),
|
|
DS3LocationData("FK: Watchdogs of Farron - Old Wolf", "Watchdogs of Farron"),
|
|
DS3LocationData("FS: Hawkwood's Shield - gravestone after Hawkwood leaves",
|
|
"Hawkwood's Shield", missable=True,
|
|
npc=True), # Hawkwood (quest, after Greatwood, Sage, Watchers, and Deacons)
|
|
DS3LocationData("US: Hawk Ring - Giant Archer", "Hawk Ring", drop=True,
|
|
npc=True), # Giant archer (kill or quest), here because you need to
|
|
# collect all seven White Branch locations to get it peacefully
|
|
|
|
# Hawkwood after killing Abyss Watchers
|
|
DS3LocationData("FS: Farron Ring - Hawkwood", "Farron Ring",
|
|
missable=True, npc=True),
|
|
|
|
# Shrine Handmaid after killing Abyss Watchers
|
|
DS3LocationData("FS: Undead Legion Helm - shop after killing FK boss", "Undead Legion Helm",
|
|
boss=True, shop=True),
|
|
DS3LocationData("FS: Undead Legion Armor - shop after killing FK boss",
|
|
"Undead Legion Armor", boss=True, shop=True),
|
|
DS3LocationData("FS: Undead Legion Gauntlet - shop after killing FK boss",
|
|
"Undead Legion Gauntlet", boss=True, shop=True),
|
|
DS3LocationData("FS: Undead Legion Leggings - shop after killing FK boss",
|
|
"Undead Legion Leggings", boss=True, shop=True),
|
|
|
|
# Appears after killing Havel Knight in Archdragon Peak
|
|
DS3LocationData("FK: Havel's Helm - upper keep, after killing AP belfry roof NPC",
|
|
"Havel's Helm", hidden=True, hostile_npc=True),
|
|
DS3LocationData("FK: Havel's Armor - upper keep, after killing AP belfry roof NPC",
|
|
"Havel's Armor", hidden=True, hostile_npc=True),
|
|
DS3LocationData("FK: Havel's Gauntlets - upper keep, after killing AP belfry roof NPC",
|
|
"Havel's Gauntlets", hidden=True, hostile_npc=True),
|
|
DS3LocationData("FK: Havel's Leggings - upper keep, after killing AP belfry roof NPC",
|
|
"Havel's Leggings", hidden=True, hostile_npc=True),
|
|
],
|
|
"Catacombs of Carthus": [
|
|
DS3LocationData("CC: Soul of High Lord Wolnir", "Soul of High Lord Wolnir",
|
|
prominent=True, boss=True),
|
|
DS3LocationData("CC: Carthus Rouge - atrium upper, left after entrance",
|
|
"Carthus Rouge x2"),
|
|
DS3LocationData("CC: Sharp Gem - atrium lower, right before exit", "Sharp Gem"),
|
|
DS3LocationData("CC: Soul of a Nameless Soldier - atrium lower, down hall",
|
|
"Soul of a Nameless Soldier"),
|
|
DS3LocationData("CC: Titanite Shard - atrium lower, corner by stairs", "Titanite Shard x2"),
|
|
DS3LocationData("CC: Bloodred Moss Clump - atrium lower, down more stairs",
|
|
"Bloodred Moss Clump x3"),
|
|
DS3LocationData("CC: Carthus Milkring - crypt upper, among pots", "Carthus Milkring"),
|
|
DS3LocationData("CC: Ember - atrium, on long stairway", "Ember"),
|
|
DS3LocationData("CC: Carthus Rouge - crypt across, corner", "Carthus Rouge x3"),
|
|
DS3LocationData("CC: Ember - crypt upper, end of hall past hole", "Ember"),
|
|
DS3LocationData("CC: Carthus Bloodring - crypt lower, end of side hall", "Carthus Bloodring"),
|
|
DS3LocationData("CC: Titanite Shard - crypt lower, left of entrance", "Titanite Shard x2"),
|
|
DS3LocationData("CC: Titanite Shard - crypt lower, start of side hall", "Titanite Shard x2"),
|
|
DS3LocationData("CC: Ember - crypt lower, shortcut to cavern", "Ember"),
|
|
DS3LocationData("CC: Carthus Pyromancy Tome - atrium lower, jump from bridge",
|
|
"Carthus Pyromancy Tome",
|
|
hidden=True), # Behind illusory wall or hidden drop
|
|
DS3LocationData("CC: Large Titanite Shard - crypt upper, skeleton ball hall",
|
|
"Large Titanite Shard"),
|
|
DS3LocationData("CC: Large Titanite Shard - crypt across, middle hall",
|
|
"Large Titanite Shard"),
|
|
DS3LocationData("CC: Yellow Bug Pellet - cavern, on overlook", "Yellow Bug Pellet x3"),
|
|
DS3LocationData("CC: Large Soul of a Nameless Soldier - cavern, before bridge",
|
|
"Large Soul of a Nameless Soldier"),
|
|
DS3LocationData("CC: Black Bug Pellet - cavern, before bridge", "Black Bug Pellet x2"),
|
|
DS3LocationData("CC: Grave Warden's Ashes - crypt across, corner", "Grave Warden's Ashes",
|
|
progression=True),
|
|
DS3LocationData("CC: Large Titanite Shard - tomb lower", "Large Titanite Shard"),
|
|
DS3LocationData("CC: Large Soul of a Nameless Soldier - tomb lower",
|
|
"Large Soul of a Nameless Soldier"),
|
|
DS3LocationData("CC: Old Sage's Blindfold - tomb, hall before bonfire",
|
|
"Old Sage's Blindfold"),
|
|
DS3LocationData("CC: Witch's Ring - tomb, hall before bonfire", "Witch's Ring"),
|
|
DS3LocationData("CC: Soul of a Nameless Soldier - atrium upper, up more stairs",
|
|
"Soul of a Nameless Soldier"),
|
|
DS3LocationData("CC: Grave Warden Pyromancy Tome - boss arena",
|
|
"Grave Warden Pyromancy Tome"),
|
|
DS3LocationData("CC: Large Soul of an Unknown Traveler - crypt upper, hall middle",
|
|
"Large Soul of an Unknown Traveler"),
|
|
DS3LocationData("CC: Ring of Steel Protection+2 - atrium upper, drop onto pillar",
|
|
"Ring of Steel Protection+2", ngp=True),
|
|
DS3LocationData("CC: Thunder Stoneplate Ring+1 - crypt upper, among pots",
|
|
"Thunder Stoneplate Ring+1", ngp=True),
|
|
DS3LocationData("CC: Undead Bone Shard - crypt upper, skeleton ball drop",
|
|
"Undead Bone Shard", hidden=True), # Skeleton Ball puzzle
|
|
DS3LocationData("CC: Dark Gem - crypt lower, skeleton ball drop", "Dark Gem",
|
|
hidden=True), # Skeleton Ball puzzle
|
|
DS3LocationData("CC: Black Blade - tomb, mimic", "Black Blade", mimic=True),
|
|
DS3LocationData("CC: Soul of a Demon - tomb, miniboss drop", "Soul of a Demon",
|
|
miniboss=True),
|
|
DS3LocationData("CC: Twinkling Titanite - atrium lower, lizard down more stairs",
|
|
"Twinkling Titanite", lizard=True),
|
|
DS3LocationData("CC: Fire Gem - cavern, lizard", "Fire Gem", lizard=True),
|
|
DS3LocationData("CC: Homeward Bone - Irithyll bridge", "Homeward Bone"),
|
|
DS3LocationData("CC: Pontiff's Right Eye - Irithyll bridge, miniboss drop",
|
|
"Pontiff's Right Eye", miniboss=True), # Sulyvahn's Beast drop
|
|
|
|
# Shrine Handmaid after killing High Lord Wolnir
|
|
DS3LocationData("FS: Wolnir's Crown - shop after killing CC boss", "Wolnir's Crown",
|
|
boss=True, shop=True),
|
|
],
|
|
"Smouldering Lake": [
|
|
DS3LocationData("SL: Soul of the Old Demon King", "Soul of the Old Demon King",
|
|
prominent=True, boss=True),
|
|
DS3LocationData("SL: Fume Ultra Greatsword - ruins basement, NPC drop",
|
|
"Fume Ultra Greatsword", hostile_npc=True), # Knight Slayer Tsorig drop
|
|
DS3LocationData("SL: Black Iron Greatshield - ruins basement, NPC drop",
|
|
"Black Iron Greatshield", hostile_npc=True), # Knight Slayer Tsorig drop
|
|
DS3LocationData("SL: Large Titanite Shard - ledge by Demon Ruins bonfire",
|
|
"Large Titanite Shard"),
|
|
DS3LocationData("SL: Large Titanite Shard - lake, by entrance", "Large Titanite Shard"),
|
|
DS3LocationData("SL: Large Titanite Shard - lake, straight from entrance",
|
|
"Large Titanite Shard"),
|
|
DS3LocationData("SL: Large Titanite Shard - lake, by tree #1", "Large Titanite Shard"),
|
|
DS3LocationData("SL: Large Titanite Shard - lake, by miniboss", "Large Titanite Shard"),
|
|
DS3LocationData("SL: Yellow Bug Pellet - side lake", "Yellow Bug Pellet x2"),
|
|
DS3LocationData("SL: Large Titanite Shard - side lake #1", "Large Titanite Shard"),
|
|
DS3LocationData("SL: Large Titanite Shard - side lake #2", "Large Titanite Shard"),
|
|
DS3LocationData("SL: Large Titanite Shard - lake, by tree #2", "Large Titanite Shard"),
|
|
DS3LocationData("SL: Speckled Stoneplate Ring - lake, ballista breaks bricks",
|
|
"Speckled Stoneplate Ring", hidden=True), # Requires careful ballista shot
|
|
DS3LocationData("SL: Homeward Bone - path to ballista", "Homeward Bone x2"),
|
|
DS3LocationData("SL: Ember - ruins main upper, hall end by hole", "Ember"),
|
|
DS3LocationData("SL: Chaos Gem - lake, far end by mob", "Chaos Gem"),
|
|
DS3LocationData("SL: Ember - ruins main lower, path to antechamber", "Ember"),
|
|
DS3LocationData("SL: Izalith Pyromancy Tome - antechamber, room near bonfire",
|
|
"Izalith Pyromancy Tome"),
|
|
DS3LocationData("SL: Black Knight Sword - ruins main lower, illusory wall in far hall",
|
|
"Black Knight Sword", hidden=True),
|
|
DS3LocationData("SL: Ember - ruins main upper, just after entrance", "Ember"),
|
|
DS3LocationData("SL: Quelana Pyromancy Tome - ruins main lower, illusory wall in grey room",
|
|
"Quelana Pyromancy Tome", hidden=True),
|
|
DS3LocationData("SL: Izalith Staff - ruins basement, second illusory wall behind chest",
|
|
"Izalith Staff", hidden=True),
|
|
DS3LocationData("SL: White Hair Talisman - ruins main lower, in lava",
|
|
"White Hair Talisman",
|
|
missable=True), # This may not even be possible to get without enough fire
|
|
# protection gear which the player may not have
|
|
DS3LocationData("SL: Toxic Mist - ruins main lower, in lava", "Toxic Mist",
|
|
missable=True), # This is _probably_ reachable with normal gear, but it
|
|
# still sucks and will probably force a death.
|
|
DS3LocationData("SL: Undead Bone Shard - ruins main lower, left after stairs",
|
|
"Undead Bone Shard"),
|
|
DS3LocationData("SL: Titanite Scale - ruins basement, path to lava", "Titanite Scale"),
|
|
DS3LocationData("SL: Shield of Want - lake, by miniboss", "Shield of Want"),
|
|
DS3LocationData("SL: Soul of a Crestfallen Knight - ruins basement, above lava",
|
|
"Soul of a Crestfallen Knight"),
|
|
|
|
# Lava items are missable because they require a complex set of armor, rings, spells, and
|
|
# undead bone shards to reliably access without dying.
|
|
DS3LocationData("SL: Ember - ruins basement, in lava", "Ember", missable=True), # In lava
|
|
DS3LocationData("SL: Sacred Flame - ruins basement, in lava", "Sacred Flame",
|
|
missable=True), # In lava
|
|
|
|
DS3LocationData("SL: Dragonrider Bow - by ladder from ruins basement to ballista",
|
|
"Dragonrider Bow", hidden=True), # Hidden fall
|
|
DS3LocationData("SL: Estus Shard - antechamber, illusory wall", "Estus Shard",
|
|
hidden=True),
|
|
DS3LocationData("SL: Bloodbite Ring+1 - behind ballista", "Bloodbite Ring+1", ngp=True),
|
|
DS3LocationData("SL: Flame Stoneplate Ring+2 - ruins main lower, illusory wall in far hall",
|
|
"Flame Stoneplate Ring+2", ngp=True, hidden=True),
|
|
DS3LocationData("SL: Large Titanite Shard - ruins basement, illusory wall in upper hall",
|
|
"Large Titanite Shard x3", hidden=True),
|
|
DS3LocationData("SL: Undead Bone Shard - lake, miniboss drop", "Undead Bone Shard",
|
|
miniboss=True), # Sand Worm drop
|
|
DS3LocationData("SL: Lightning Stake - lake, miniboss drop", "Lightning Stake",
|
|
miniboss=True), # Sand Worm drop
|
|
DS3LocationData("SL: Twinkling Titanite - path to side lake, lizard", "Twinkling Titanite",
|
|
lizard=True),
|
|
DS3LocationData("SL: Titanite Chunk - path to side lake, lizard", "Titanite Chunk",
|
|
lizard=True),
|
|
DS3LocationData("SL: Chaos Gem - antechamber, lizard at end of long hall", "Chaos Gem",
|
|
lizard=True),
|
|
DS3LocationData("SL: Knight Slayer's Ring - ruins basement, NPC drop",
|
|
"Knight Slayer's Ring", hostile_npc=True), # Knight Slayer Tsorig drop
|
|
|
|
# Horace the Hushed
|
|
# These are listed here even though you can kill Horace in the Road of Sacrifices because
|
|
# the player may want to complete his and Anri's quest first.
|
|
DS3LocationData("SL: Llewellyn Shield - Horace drop", "Llewellyn Shield", npc=True,
|
|
hostile_npc=True),
|
|
DS3LocationData("FS: Executioner Helm - shop after killing Horace", "Executioner Helm",
|
|
npc=True, hostile_npc=True, shop=True, hidden=True),
|
|
DS3LocationData("FS: Executioner Armor - shop after killing Horace", "Executioner Armor",
|
|
npc=True, hostile_npc=True, shop=True, hidden=True),
|
|
DS3LocationData("FS: Executioner Gauntlets - shop after killing Horace",
|
|
"Executioner Gauntlets", hostile_npc=True, npc=True, shop=True,
|
|
hidden=True),
|
|
DS3LocationData("FS: Executioner Leggings - shop after killing Horace",
|
|
"Executioner Leggings", hostile_npc=True, npc=True, shop=True,
|
|
hidden=True),
|
|
|
|
# Shrine Handmaid after killing Knight Slayer Tsorig
|
|
DS3LocationData("FS: Black Iron Helm - shop after killing Tsorig", "Black Iron Helm",
|
|
hostile_npc=True, shop=True, hidden=True),
|
|
DS3LocationData("FS: Black Iron Armor - shop after killing Tsorig", "Black Iron Armor",
|
|
hostile_npc=True, shop=True, hidden=True),
|
|
DS3LocationData("FS: Black Iron Gauntlets - shop after killing Tsorig",
|
|
"Black Iron Gauntlets", hostile_npc=True, shop=True, hidden=True),
|
|
DS3LocationData("FS: Black Iron Leggings - shop after killing Tsorig",
|
|
"Black Iron Leggings", hostile_npc=True, shop=True, hidden=True),
|
|
|
|
# Near Cornyx's cage after killing Old Demon King with Cuculus
|
|
DS3LocationData("US: Spotted Whip - by Cornyx's cage after Cuculus quest", "Spotted Whip",
|
|
missable=True, boss=True, npc=True),
|
|
DS3LocationData("US: Cornyx's Garb - by Cornyx's cage after Cuculus quest",
|
|
"Cornyx's Garb", static='02,0:53100100::', missable=True, boss=True,
|
|
npc=True),
|
|
DS3LocationData("US: Cornyx's Wrap - by Cornyx's cage after Cuculus quest", "Cornyx's Wrap",
|
|
static='02,0:53100100::', missable=True, boss=True, npc=True),
|
|
DS3LocationData("US: Cornyx's Skirt - by Cornyx's cage after Cuculus quest",
|
|
"Cornyx's Skirt", static='02,0:53100100::', missable=True, boss=True,
|
|
npc=True),
|
|
],
|
|
"Irithyll of the Boreal Valley": [
|
|
DS3LocationData("IBV: Soul of Pontiff Sulyvahn", "Soul of Pontiff Sulyvahn",
|
|
prominent=True, boss=True),
|
|
DS3LocationData("IBV: Large Soul of a Nameless Soldier - central, by bonfire",
|
|
"Large Soul of a Nameless Soldier"),
|
|
DS3LocationData("IBV: Large Titanite Shard - ascent, down ladder in last building",
|
|
"Large Titanite Shard"),
|
|
DS3LocationData("IBV: Soul of a Weary Warrior - central, by first fountain",
|
|
"Soul of a Weary Warrior"),
|
|
DS3LocationData("IBV: Soul of a Weary Warrior - central, railing by first fountain",
|
|
"Soul of a Weary Warrior"),
|
|
DS3LocationData("IBV: Rime-blue Moss Clump - central, by bonfire", "Rime-blue Moss Clump"),
|
|
DS3LocationData("IBV: Witchtree Branch - by Dorhys", "Witchtree Branch",
|
|
hidden=True), # Behind illusory wall
|
|
DS3LocationData("IBV: Large Titanite Shard - central, side path after first fountain",
|
|
"Large Titanite Shard"),
|
|
DS3LocationData("IBV: Budding Green Blossom - central, by second fountain",
|
|
"Budding Green Blossom"),
|
|
DS3LocationData("IBV: Rime-blue Moss Clump - central, past second fountain",
|
|
"Rime-blue Moss Clump x2"),
|
|
DS3LocationData("IBV: Large Titanite Shard - central, balcony just before plaza",
|
|
"Large Titanite Shard"),
|
|
DS3LocationData("IBV: Large Titanite Shard - path to Dorhys", "Large Titanite Shard",
|
|
hidden=True), # Behind illusory wall
|
|
DS3LocationData("IBV: Ring of the Sun's First Born - fall from in front of cathedral",
|
|
"Ring of the Sun's First Born",
|
|
hidden=True), # Hidden fall
|
|
DS3LocationData("IBV: Large Soul of a Nameless Soldier - path to plaza",
|
|
"Large Soul of a Nameless Soldier"),
|
|
DS3LocationData("IBV: Large Titanite Shard - plaza, balcony overlooking ascent",
|
|
"Large Titanite Shard"),
|
|
DS3LocationData("IBV: Large Titanite Shard - plaza, by stairs to church",
|
|
"Large Titanite Shard"),
|
|
DS3LocationData("IBV: Soul of a Weary Warrior - plaza, side room lower",
|
|
"Soul of a Weary Warrior"),
|
|
DS3LocationData("IBV: Magic Clutch Ring - plaza, illusory wall", "Magic Clutch Ring",
|
|
hidden=True), # Behind illusory wall
|
|
DS3LocationData("IBV: Fading Soul - descent, cliff edge #1", "Fading Soul"),
|
|
DS3LocationData("IBV: Fading Soul - descent, cliff edge #2", "Fading Soul"),
|
|
DS3LocationData("IBV: Homeward Bone - descent, before gravestone", "Homeward Bone x3"),
|
|
DS3LocationData("IBV: Undead Bone Shard - descent, behind gravestone", "Undead Bone Shard",
|
|
hidden=True), # Hidden behind gravestone
|
|
DS3LocationData("IBV: Kukri - descent, side path", "Kukri x8"),
|
|
DS3LocationData("IBV: Rusted Gold Coin - descent, side path", "Rusted Gold Coin"),
|
|
DS3LocationData("IBV: Blue Bug Pellet - descent, dark room", "Blue Bug Pellet x2"),
|
|
DS3LocationData("IBV: Shriving Stone - descent, dark room rafters", "Shriving Stone"),
|
|
DS3LocationData("IBV: Blood Gem - descent, platform before lake", "Blood Gem"),
|
|
DS3LocationData("IBV: Green Blossom - lake, by stairs from descent", "Green Blossom x3"),
|
|
DS3LocationData("IBV: Ring of Sacrifice - lake, right of stairs from descent",
|
|
"Ring of Sacrifice"),
|
|
DS3LocationData("IBV: Great Heal - lake, dead Corpse-Grub", "Great Heal"),
|
|
DS3LocationData("IBV: Large Soul of a Nameless Soldier - lake island",
|
|
"Large Soul of a Nameless Soldier"),
|
|
DS3LocationData("IBV: Green Blossom - lake wall", "Green Blossom x3"),
|
|
DS3LocationData("IBV: Dung Pie - sewer #1", "Dung Pie x3"),
|
|
DS3LocationData("IBV: Dung Pie - sewer #2", "Dung Pie x3"),
|
|
# These don't actually guard any single item sales. Maybe we can inject one manually?
|
|
DS3LocationData("IBV: Excrement-covered Ashes - sewer, by stairs",
|
|
"Excrement-covered Ashes"),
|
|
DS3LocationData("IBV: Large Soul of a Nameless Soldier - ascent, after great hall",
|
|
"Large Soul of a Nameless Soldier"),
|
|
DS3LocationData("IBV: Soul of a Weary Warrior - ascent, by final staircase",
|
|
"Soul of a Weary Warrior"),
|
|
DS3LocationData("IBV: Large Titanite Shard - ascent, by elevator door",
|
|
"Large Titanite Shard"),
|
|
DS3LocationData("IBV: Blue Bug Pellet - ascent, in last building", "Blue Bug Pellet x2"),
|
|
DS3LocationData("IBV: Ember - shortcut from church to cathedral", "Ember"),
|
|
DS3LocationData("IBV: Green Blossom - lake, by Distant Manor", "Green Blossom"),
|
|
DS3LocationData("IBV: Lightning Gem - plaza center", "Lightning Gem"),
|
|
DS3LocationData("IBV: Large Soul of a Nameless Soldier - central, by second fountain",
|
|
"Large Soul of a Nameless Soldier"),
|
|
DS3LocationData("IBV: Soul of a Weary Warrior - plaza, side room upper",
|
|
"Soul of a Weary Warrior"),
|
|
DS3LocationData("IBV: Proof of a Concord Kept - Church of Yorshka altar",
|
|
"Proof of a Concord Kept"),
|
|
DS3LocationData("IBV: Rusted Gold Coin - Distant Manor, drop after stairs",
|
|
"Rusted Gold Coin"),
|
|
DS3LocationData("IBV: Chloranthy Ring+1 - plaza, behind altar", "Chloranthy Ring+1",
|
|
ngp=True),
|
|
DS3LocationData("IBV: Covetous Gold Serpent Ring+1 - descent, drop after dark room",
|
|
"Covetous Gold Serpent Ring+1", ngp=True, hidden=True), # Hidden fall
|
|
DS3LocationData("IBV: Wood Grain Ring+2 - ascent, right after great hall", "Wood Grain Ring+2",
|
|
ngp=True),
|
|
DS3LocationData("IBV: Divine Blessing - great hall, chest", "Divine Blessing"),
|
|
DS3LocationData("IBV: Smough's Great Hammer - great hall, chest",
|
|
"Smough's Great Hammer"),
|
|
DS3LocationData("IBV: Yorshka's Spear - descent, dark room rafters chest", "Yorshka's Spear"),
|
|
DS3LocationData("IBV: Leo Ring - great hall, chest", "Leo Ring"),
|
|
DS3LocationData("IBV: Dorhys' Gnawing - Dorhys drop", "Dorhys' Gnawing",
|
|
hidden=True), # Behind illusory wall
|
|
DS3LocationData("IBV: Divine Blessing - great hall, mob drop",
|
|
"Divine Blessing", drop=True,
|
|
hidden=True), # Guaranteed drop from normal-looking Silver Knight
|
|
DS3LocationData("IBV: Large Titanite Shard - great hall, main floor mob drop",
|
|
"Large Titanite Shard", drop=True,
|
|
hidden=True), # Guaranteed drop from normal-looking Silver Knight
|
|
DS3LocationData("IBV: Large Titanite Shard - great hall, upstairs mob drop #1",
|
|
"Large Titanite Shard x2", drop=True,
|
|
hidden=True), # Guaranteed drop from normal-looking Silver Knight
|
|
DS3LocationData("IBV: Large Titanite Shard - great hall, upstairs mob drop #2",
|
|
"Large Titanite Shard x2", drop=True,
|
|
hidden=True), # Guaranteed drop from normal-looking Silver Knight
|
|
DS3LocationData("IBV: Roster of Knights - descent, first landing", "Roster of Knights"),
|
|
DS3LocationData("IBV: Twinkling Titanite - descent, lizard behind illusory wall",
|
|
"Twinkling Titanite", lizard=True, hidden=True), # Behind illusory wall
|
|
DS3LocationData("IBV: Twinkling Titanite - central, lizard before plaza",
|
|
"Twinkling Titanite", lizard=True),
|
|
DS3LocationData("IBV: Large Titanite Shard - Distant Manor, under overhang",
|
|
"Large Titanite Shard"),
|
|
DS3LocationData("IBV: Siegbräu - Siegward", "Siegbräu", missable=True, npc=True),
|
|
DS3LocationData("IBV: Emit Force - Siegward", "Emit Force", missable=True, npc=True),
|
|
DS3LocationData("IBV -> ID", None),
|
|
|
|
# After winning both Londor Pale Shade invasions
|
|
DS3LocationData("FS: Sneering Mask - Yoel's room, kill Londor Pale Shade twice",
|
|
"Sneering Mask", missable=True, hostile_npc=True),
|
|
DS3LocationData("FS: Pale Shade Robe - Yoel's room, kill Londor Pale Shade twice",
|
|
"Pale Shade Robe", missable=True, hostile_npc=True),
|
|
DS3LocationData("FS: Pale Shade Gloves - Yoel's room, kill Londor Pale Shade twice",
|
|
"Pale Shade Gloves", missable=True, hostile_npc=True),
|
|
DS3LocationData("FS: Pale Shade Trousers - Yoel's room, kill Londor Pale Shade twice",
|
|
"Pale Shade Trousers", missable=True, hostile_npc=True),
|
|
|
|
# Anri of Astora
|
|
DS3LocationData("IBV: Ring of the Evil Eye - Anri", "Ring of the Evil Eye", missable=True,
|
|
npc=True),
|
|
|
|
# Sirris quest after killing Creighton
|
|
DS3LocationData("FS: Mail Breaker - Sirris for killing Creighton", "Mail Breaker",
|
|
static='99,0:50006080::', missable=True, hostile_npc=True,
|
|
npc=True),
|
|
DS3LocationData("FS: Silvercat Ring - Sirris for killing Creighton", "Silvercat Ring",
|
|
missable=True, hostile_npc=True, npc=True),
|
|
DS3LocationData("IBV: Dragonslayer's Axe - Creighton drop", "Dragonslayer's Axe",
|
|
missable=True, hostile_npc=True, npc=True),
|
|
DS3LocationData("IBV: Creighton's Steel Mask - bridge after killing Creighton",
|
|
"Creighton's Steel Mask", missable=True, hostile_npc=True, npc=True),
|
|
DS3LocationData("IBV: Mirrah Chain Mail - bridge after killing Creighton",
|
|
"Mirrah Chain Mail", missable=True, hostile_npc=True, npc=True),
|
|
DS3LocationData("IBV: Mirrah Chain Gloves - bridge after killing Creighton",
|
|
"Mirrah Chain Gloves", missable=True, hostile_npc=True, npc=True),
|
|
DS3LocationData("IBV: Mirrah Chain Leggings - bridge after killing Creighton",
|
|
"Mirrah Chain Leggings", missable=True, hostile_npc=True, npc=True),
|
|
],
|
|
"Irithyll Dungeon": [
|
|
DS3LocationData("ID: Titanite Slab - Siegward", "Titanite Slab", missable=True,
|
|
npc=True),
|
|
DS3LocationData("ID: Murakumo - Alva drop", "Murakumo", missable=True,
|
|
hostile_npc=True),
|
|
DS3LocationData("ID: Large Titanite Shard - after bonfire, second cell on left",
|
|
"Large Titanite Shard"),
|
|
DS3LocationData("ID: Fading Soul - B1 near, main hall", "Fading Soul"),
|
|
DS3LocationData("ID: Large Soul of a Nameless Soldier - B2, hall by stairs",
|
|
"Large Soul of a Nameless Soldier"),
|
|
DS3LocationData("ID: Jailbreaker's Key - B1 far, cell after gate", "Jailbreaker's Key"),
|
|
DS3LocationData("ID: Pale Pine Resin - B1 far, cell with broken wall",
|
|
"Pale Pine Resin x2"),
|
|
DS3LocationData("ID: Simple Gem - B2 far, cell by stairs", "Simple Gem"),
|
|
DS3LocationData("ID: Large Soul of a Nameless Soldier - B2 far, by lift",
|
|
"Large Soul of a Nameless Soldier"),
|
|
DS3LocationData("ID: Large Titanite Shard - B1 far, rightmost cell",
|
|
"Large Titanite Shard"),
|
|
DS3LocationData("ID: Homeward Bone - path from B2 to pit", "Homeward Bone x2"),
|
|
DS3LocationData("ID: Bellowing Dragoncrest Ring - drop from B1 towards pit",
|
|
"Bellowing Dragoncrest Ring", conditional=True),
|
|
DS3LocationData("ID: Soul of a Weary Warrior - by drop to pit", "Soul of a Weary Warrior"),
|
|
DS3LocationData("ID: Soul of a Crestfallen Knight - balcony above pit",
|
|
"Soul of a Crestfallen Knight"),
|
|
DS3LocationData("ID: Lightning Bolt - awning over pit", "Lightning Bolt x9"),
|
|
DS3LocationData("ID: Large Titanite Shard - pit #1", "Large Titanite Shard"),
|
|
DS3LocationData("ID: Profaned Flame - pit", "Profaned Flame"),
|
|
DS3LocationData("ID: Large Titanite Shard - pit #2", "Large Titanite Shard"),
|
|
DS3LocationData("ID: Soul of a Weary Warrior - stairs between pit and B3",
|
|
"Soul of a Weary Warrior"),
|
|
DS3LocationData("ID: Dung Pie - B3, by path from pit", "Dung Pie x4"),
|
|
DS3LocationData("ID: Ember - B3 center", "Ember"),
|
|
DS3LocationData("ID: Ember - B3 far right", "Ember"),
|
|
DS3LocationData("ID: Profaned Coal - B3 far, left cell", "Profaned Coal"),
|
|
DS3LocationData("ID: Large Titanite Shard - B3 near, right corner", "Large Titanite Shard"),
|
|
DS3LocationData("ID: Old Sorcerer Hat - B2 near, middle cell", "Old Sorcerer Hat"),
|
|
DS3LocationData("ID: Old Sorcerer Coat - B2 near, middle cell", "Old Sorcerer Coat"),
|
|
DS3LocationData("ID: Old Sorcerer Gauntlets - B2 near, middle cell",
|
|
"Old Sorcerer Gauntlets"),
|
|
DS3LocationData("ID: Old Sorcerer Boots - B2 near, middle cell", "Old Sorcerer Boots"),
|
|
DS3LocationData("ID: Large Soul of a Weary Warrior - just before Profaned Capital",
|
|
"Large Soul of a Weary Warrior"),
|
|
DS3LocationData("ID: Covetous Gold Serpent Ring - Siegward's cell",
|
|
"Covetous Gold Serpent Ring", conditional=True),
|
|
DS3LocationData("ID: Lightning Blade - B3 lift, middle platform", "Lightning Blade"),
|
|
DS3LocationData("ID: Rusted Coin - after bonfire, first cell on left", "Rusted Coin"),
|
|
DS3LocationData("ID: Dusk Crown Ring - B3 far, right cell", "Dusk Crown Ring"),
|
|
DS3LocationData("ID: Pickaxe - path from pit to B3", "Pickaxe"),
|
|
DS3LocationData("ID: Xanthous Ashes - B3 far, right cell", "Xanthous Ashes",
|
|
progression=True),
|
|
DS3LocationData("ID: Large Titanite Shard - B1 near, by door", "Large Titanite Shard"),
|
|
DS3LocationData("ID: Rusted Gold Coin - after bonfire, last cell on right",
|
|
"Rusted Gold Coin"),
|
|
DS3LocationData("ID: Old Cell Key - stairs between pit and B3", "Old Cell Key"),
|
|
DS3LocationData("ID: Covetous Silver Serpent Ring+1 - pit lift, middle platform",
|
|
"Covetous Silver Serpent Ring+1", ngp=True),
|
|
DS3LocationData("ID: Dragon Torso Stone - B3, outside lift", "Dragon Torso Stone"),
|
|
DS3LocationData("ID: Prisoner Chief's Ashes - B2 near, locked cell by stairs",
|
|
"Prisoner Chief's Ashes", progression=True),
|
|
DS3LocationData("ID: Great Magic Shield - B2 near, mob drop in far left cell",
|
|
"Great Magic Shield", drop=True,
|
|
hidden=True), # Guaranteed drop from a normal-looking Corpse-Grub
|
|
DS3LocationData("ID: Dragonslayer Lightning Arrow - pit, mimic in hall",
|
|
"Dragonslayer Lightning Arrow x10", mimic=True),
|
|
DS3LocationData("ID: Titanite Scale - B3 far, mimic in hall", "Titanite Scale x2",
|
|
mimic=True),
|
|
DS3LocationData("ID: Dark Clutch Ring - stairs between pit and B3, mimic",
|
|
"Dark Clutch Ring", mimic=True),
|
|
DS3LocationData("ID: Estus Shard - mimic on path from B2 to pit", "Estus Shard",
|
|
mimic=True),
|
|
DS3LocationData("ID: Titanite Chunk - balcony above pit, lizard", "Titanite Chunk",
|
|
lizard=True),
|
|
DS3LocationData("ID: Titanite Scale - B2 far, lizard", "Titanite Scale", lizard=True),
|
|
|
|
# These are missable because of a bug that causes them to be dropped wherever the giant is
|
|
# randomized to, instead of where the miniboss is in vanilla.
|
|
DS3LocationData("ID: Dung Pie - pit, miniboss drop", "Dung Pie x4",
|
|
miniboss=True, missable=True), # Giant slave drop
|
|
DS3LocationData("ID: Titanite Chunk - pit, miniboss drop", "Titanite Chunk",
|
|
miniboss=True, missable=True), # Giant Slave Drop
|
|
|
|
# Alva (requires ember)
|
|
DS3LocationData("ID: Alva Helm - B3 near, by Karla's cell, after killing Alva", "Alva Helm",
|
|
missable=True, npc=True),
|
|
DS3LocationData("ID: Alva Armor - B3 near, by Karla's cell, after killing Alva",
|
|
"Alva Armor", missable=True, npc=True),
|
|
DS3LocationData("ID: Alva Gauntlets - B3 near, by Karla's cell, after killing Alva",
|
|
"Alva Gauntlets", missable=True, npc=True),
|
|
DS3LocationData("ID: Alva Leggings - B3 near, by Karla's cell, after killing Alva",
|
|
"Alva Leggings", missable=True, npc=True),
|
|
],
|
|
"Profaned Capital": [
|
|
DS3LocationData("PC: Soul of Yhorm the Giant", "Soul of Yhorm the Giant", boss=True),
|
|
DS3LocationData("PC: Cinders of a Lord - Yhorm the Giant",
|
|
"Cinders of a Lord - Yhorm the Giant", static="07,0:50002170::",
|
|
prominent=True, progression=True, boss=True),
|
|
DS3LocationData("PC: Logan's Scroll - chapel roof, NPC drop", "Logan's Scroll",
|
|
hostile_npc=True), # Sorcerer
|
|
DS3LocationData("PC: Purging Stone - chapel ground floor", "Purging Stone x3"),
|
|
DS3LocationData("PC: Rusted Coin - tower exterior", "Rusted Coin x2"),
|
|
DS3LocationData("PC: Rusted Gold Coin - halls above swamp", "Rusted Gold Coin"),
|
|
DS3LocationData("PC: Purging Stone - swamp, by chapel ladder", "Purging Stone"),
|
|
DS3LocationData("PC: Cursebite Ring - swamp, below halls", "Cursebite Ring"),
|
|
DS3LocationData("PC: Poison Gem - swamp, below halls", "Poison Gem"),
|
|
DS3LocationData("PC: Shriving Stone - swamp, by chapel door", "Shriving Stone"),
|
|
DS3LocationData("PC: Poison Arrow - chapel roof", "Poison Arrow x18"),
|
|
DS3LocationData("PC: Rubbish - chapel, down stairs from second floor", "Rubbish"),
|
|
DS3LocationData("PC: Onislayer Greatarrow - bridge", "Onislayer Greatarrow x8"),
|
|
DS3LocationData("PC: Large Soul of a Weary Warrior - bridge, far end",
|
|
"Large Soul of a Weary Warrior"),
|
|
DS3LocationData("PC: Rusted Coin - below bridge #1", "Rusted Coin"),
|
|
DS3LocationData("PC: Rusted Coin - below bridge #2", "Rusted Coin"),
|
|
DS3LocationData("PC: Blooming Purple Moss Clump - walkway above swamp",
|
|
"Blooming Purple Moss Clump x3"),
|
|
DS3LocationData("PC: Wrath of the Gods - chapel, drop from roof", "Wrath of the Gods"),
|
|
DS3LocationData("PC: Onislayer Greatbow - drop from bridge", "Onislayer Greatbow",
|
|
hidden=True), # Hidden fall
|
|
DS3LocationData("PC: Jailer's Key Ring - hall past chapel", "Jailer's Key Ring",
|
|
progression=True),
|
|
DS3LocationData("PC: Ember - palace, far room", "Ember"),
|
|
DS3LocationData("PC: Flame Stoneplate Ring+1 - chapel, drop from roof towards entrance",
|
|
"Flame Stoneplate Ring+1", ngp=True, hidden=True), # Hidden fall
|
|
DS3LocationData("PC: Magic Stoneplate Ring+2 - tower base", "Magic Stoneplate Ring+2",
|
|
ngp=True),
|
|
DS3LocationData("PC: Court Sorcerer Hood - chapel, second floor", "Court Sorcerer Hood"),
|
|
DS3LocationData("PC: Court Sorcerer Robe - chapel, second floor", "Court Sorcerer Robe"),
|
|
DS3LocationData("PC: Court Sorcerer Gloves - chapel, second floor", "Court Sorcerer Gloves"),
|
|
DS3LocationData("PC: Court Sorcerer Trousers - chapel, second floor",
|
|
"Court Sorcerer Trousers"),
|
|
DS3LocationData("PC: Storm Ruler - boss room", "Storm Ruler"),
|
|
DS3LocationData("PC: Undead Bone Shard - by bonfire", "Undead Bone Shard"),
|
|
DS3LocationData("PC: Eleonora - chapel ground floor, kill mob", "Eleonora",
|
|
drop=True,
|
|
hidden=True), # Guaranteed drop from a normal-looking Monstrosity of Sin
|
|
DS3LocationData("PC: Rusted Gold Coin - palace, mimic in far room", "Rusted Gold Coin x2",
|
|
mimic=True),
|
|
DS3LocationData("PC: Court Sorcerer's Staff - chapel, mimic on second floor",
|
|
"Court Sorcerer's Staff", mimic=True),
|
|
DS3LocationData("PC: Greatshield of Glory - palace, mimic in far room",
|
|
"Greatshield of Glory", mimic=True),
|
|
DS3LocationData("PC: Twinkling Titanite - halls above swamp, lizard #1",
|
|
"Twinkling Titanite", lizard=True),
|
|
DS3LocationData("PC: Twinkling Titanite - halls above swamp, lizard #2",
|
|
"Twinkling Titanite", lizard=True),
|
|
DS3LocationData("PC: Siegbräu - Siegward after killing boss", "Siegbräu",
|
|
missable=True, npc=True),
|
|
|
|
# Siegward drops (kill or quest)
|
|
DS3LocationData("PC: Storm Ruler - Siegward", "Storm Ruler", static='02,0:50006218::',
|
|
missable=True, drop=True, npc=True),
|
|
DS3LocationData("PC: Pierce Shield - Siegward", "Pierce Shield", missable=True,
|
|
drop=True, npc=True),
|
|
],
|
|
# We consider "Anor Londo" to be everything accessible only after killing Pontiff. This doesn't
|
|
# match up one-to-one with where the game pops up the region name, but it balances items better
|
|
# and covers the region that's full of DS1 Anor Londo references.
|
|
"Anor Londo": [
|
|
DS3LocationData("AL: Soul of Aldrich", "Soul of Aldrich", boss=True),
|
|
DS3LocationData("AL: Cinders of a Lord - Aldrich", "Cinders of a Lord - Aldrich",
|
|
static='06,0:50002130::', prominent=True, progression=True,
|
|
boss=True),
|
|
DS3LocationData("AL: Yorshka's Chime - kill Yorshka", "Yorshka's Chime", missable=True,
|
|
drop=True,
|
|
npc=True), # Hidden walkway, missable because it will break Sirris's quest
|
|
DS3LocationData("AL: Drang Twinspears - plaza, NPC drop", "Drang Twinspears", drop=True,
|
|
hidden=True),
|
|
DS3LocationData("AL: Estus Shard - dark cathedral, by left stairs", "Estus Shard"),
|
|
DS3LocationData("AL: Painting Guardian's Curved Sword - prison tower rafters",
|
|
"Painting Guardian's Curved Sword", hidden=True), # Invisible walkway
|
|
DS3LocationData("AL: Brass Helm - tomb", "Brass Helm",
|
|
hidden=True), # Behind illusory wall
|
|
DS3LocationData("AL: Brass Armor - tomb", "Brass Armor",
|
|
hidden=True), # Behind illusory wall
|
|
DS3LocationData("AL: Brass Gauntlets - tomb", "Brass Gauntlets",
|
|
hidden=True), # Behind illusory wall
|
|
DS3LocationData("AL: Brass Leggings - tomb", "Brass Leggings",
|
|
hidden=True), # Behind illusory wall
|
|
DS3LocationData("AL: Human Dregs - water reserves", "Human Dregs",
|
|
hidden=True), # Behind illusory wall
|
|
DS3LocationData("AL: Ember - spiral staircase, bottom", "Ember"),
|
|
DS3LocationData("AL: Large Titanite Shard - bottom of the furthest buttress",
|
|
"Large Titanite Shard"),
|
|
DS3LocationData("AL: Large Titanite Shard - right after light cathedral",
|
|
"Large Titanite Shard"),
|
|
DS3LocationData("AL: Large Titanite Shard - walkway, side path by cathedral",
|
|
"Large Titanite Shard"),
|
|
DS3LocationData("AL: Soul of a Weary Warrior - plaza, nearer", "Soul of a Weary Warrior"),
|
|
DS3LocationData("AL: Ember - plaza, right side", "Ember"),
|
|
DS3LocationData("AL: Ember - plaza, further", "Ember"),
|
|
DS3LocationData("AL: Large Titanite Shard - balcony by dead giants",
|
|
"Large Titanite Shard"),
|
|
DS3LocationData("AL: Dark Stoneplate Ring - by dark stairs up from plaza",
|
|
"Dark Stoneplate Ring"),
|
|
DS3LocationData("AL: Large Titanite Shard - bottom of the nearest buttress",
|
|
"Large Titanite Shard"),
|
|
DS3LocationData("AL: Deep Gem - water reserves", "Deep Gem"),
|
|
DS3LocationData("AL: Titanite Scale - top of ladder up to buttresses", "Titanite Scale"),
|
|
DS3LocationData("AL: Dragonslayer Greatarrow - drop from nearest buttress",
|
|
"Dragonslayer Greatarrow x5", static='06,0:53700620::',
|
|
hidden=True), # Hidden fall
|
|
DS3LocationData("AL: Dragonslayer Greatbow - drop from nearest buttress",
|
|
"Dragonslayer Greatbow", static='06,0:53700620::',
|
|
hidden=True), # Hidden fall
|
|
DS3LocationData("AL: Easterner's Ashes - below top of furthest buttress",
|
|
"Easterner's Ashes", progression=True),
|
|
DS3LocationData("AL: Painting Guardian Hood - prison tower, rafters",
|
|
"Painting Guardian Hood", hidden=True), # Invisible walkway
|
|
DS3LocationData("AL: Painting Guardian Gown - prison tower, rafters",
|
|
"Painting Guardian Gown", hidden=True), # Invisible walkway
|
|
DS3LocationData("AL: Painting Guardian Gloves - prison tower, rafters",
|
|
"Painting Guardian Gloves", hidden=True), # Invisible walkway
|
|
DS3LocationData("AL: Painting Guardian Waistcloth - prison tower, rafters",
|
|
"Painting Guardian Waistcloth", hidden=True), # Invisible walkway
|
|
DS3LocationData("AL: Soul of a Crestfallen Knight - right of dark cathedral entrance",
|
|
"Soul of a Crestfallen Knight"),
|
|
DS3LocationData("AL: Moonlight Arrow - dark cathedral, up right stairs",
|
|
"Moonlight Arrow x6"),
|
|
DS3LocationData("AL: Proof of a Concord Kept - dark cathedral, up left stairs",
|
|
"Proof of a Concord Kept"),
|
|
DS3LocationData("AL: Large Soul of a Weary Warrior - left of dark cathedral entrance",
|
|
"Large Soul of a Weary Warrior"),
|
|
DS3LocationData("AL: Giant's Coal - by giant near dark cathedral", "Giant's Coal"),
|
|
DS3LocationData("AL: Havel's Ring+2 - prison tower, rafters", "Havel's Ring+2", ngp=True,
|
|
hidden=True), # Invisible walkway
|
|
DS3LocationData("AL: Ring of Favor+1 - light cathedral, upstairs", "Ring of Favor+1",
|
|
ngp=True),
|
|
DS3LocationData("AL: Sun Princess Ring - dark cathedral, after boss", "Sun Princess Ring"),
|
|
DS3LocationData("AL: Reversal Ring - tomb, chest in corner", "Reversal Ring",
|
|
hidden=True), # Behind illusory wall
|
|
DS3LocationData("AL: Golden Ritual Spear - light cathedral, mimic upstairs",
|
|
"Golden Ritual Spear", mimic=True),
|
|
DS3LocationData("AL: Ring of Favor - water reserves, both minibosses", "Ring of Favor",
|
|
miniboss=True,
|
|
hidden=True), # Sulyvahn's Beast Duo drop, behind illusory wall
|
|
DS3LocationData("AL: Blade of the Darkmoon - Yorshka with Darkmoon Loyalty",
|
|
"Blade of the Darkmoon", missable=True, drop=True,
|
|
npc=True), # Hidden walkway, missable because it will break Sirris's quest
|
|
DS3LocationData("AL: Simple Gem - light cathedral, lizard upstairs", "Simple Gem",
|
|
lizard=True),
|
|
DS3LocationData("AL: Twinkling Titanite - lizard after light cathedral #1",
|
|
"Twinkling Titanite", lizard=True),
|
|
DS3LocationData("AL: Twinkling Titanite - lizard after light cathedral #2",
|
|
"Twinkling Titanite", lizard=True),
|
|
DS3LocationData("AL: Aldrich's Ruby - dark cathedral, miniboss", "Aldrich's Ruby",
|
|
miniboss=True), # Deep Accursed drop
|
|
DS3LocationData("AL: Aldrich Faithful - water reserves, talk to McDonnel", "Aldrich Faithful",
|
|
hidden=True), # Behind illusory wall
|
|
|
|
DS3LocationData("FS: Budding Green Blossom - shop after killing Creighton and AL boss",
|
|
"Budding Green Blossom", static='99,0:-1:110000,70000118:',
|
|
missable=True, npc=True,
|
|
shop=True), # sold by Shrine Maiden after killing Aldrich and helping
|
|
# Sirris defeat Creighton
|
|
|
|
# Sirris (quest completion)
|
|
DS3LocationData("FS: Sunset Shield - by grave after killing Hodrick w/Sirris",
|
|
"Sunset Shield", missable=True, hostile_npc=True, npc=True),
|
|
# In Pit of Hollows after killing Hodrick
|
|
DS3LocationData("US: Sunset Helm - Pit of Hollows after killing Hodrick w/Sirris",
|
|
"Sunset Helm", missable=True, hostile_npc=True, npc=True),
|
|
DS3LocationData("US: Sunset Armor - pit of hollows after killing Hodrick w/Sirris",
|
|
"Sunset Armor", missable=True, hostile_npc=True, npc=True),
|
|
DS3LocationData("US: Sunset Gauntlets - pit of hollows after killing Hodrick w/Sirris",
|
|
"Sunset Gauntlets", missable=True, hostile_npc=True, npc=True),
|
|
DS3LocationData("US: Sunset Leggings - pit of hollows after killing Hodrick w/Sirris",
|
|
"Sunset Leggings", missable=True, hostile_npc=True, npc=True),
|
|
|
|
# Shrine Handmaid after killing Sulyvahn's Beast Duo
|
|
DS3LocationData("FS: Helm of Favor - shop after killing water reserve minibosses",
|
|
"Helm of Favor", hidden=True, miniboss=True, shop=True),
|
|
DS3LocationData("FS: Embraced Armor of Favor - shop after killing water reserve minibosses",
|
|
"Embraced Armor of Favor", hidden=True, miniboss=True, shop=True),
|
|
DS3LocationData("FS: Gauntlets of Favor - shop after killing water reserve minibosses",
|
|
"Gauntlets of Favor", hidden=True, miniboss=True, shop=True),
|
|
DS3LocationData("FS: Leggings of Favor - shop after killing water reserve minibosses",
|
|
"Leggings of Favor", hidden=True, miniboss=True, shop=True),
|
|
|
|
# Anri of Astora
|
|
DS3LocationData("AL: Chameleon - tomb after marrying Anri", "Chameleon", missable=True,
|
|
npc=True),
|
|
DS3LocationData("AL: Anri's Straight Sword - Anri quest", "Anri's Straight Sword",
|
|
missable=True, npc=True),
|
|
|
|
# Shrine Handmaid after killing Ringfinger Leonhard
|
|
# This is listed here even though you can kill Leonhard immediately because we want the
|
|
# logic to assume people will do his full quest. Missable because he can disappear forever
|
|
# if you use up all your Pale Tongues.
|
|
DS3LocationData("FS: Leonhard's Garb - shop after killing Leonhard",
|
|
"Leonhard's Garb", hidden=True, npc=True, shop=True, missable=True),
|
|
DS3LocationData("FS: Leonhard's Gauntlets - shop after killing Leonhard",
|
|
"Leonhard's Gauntlets", hidden=True, npc=True, shop=True,
|
|
missable=True),
|
|
DS3LocationData("FS: Leonhard's Trousers - shop after killing Leonhard",
|
|
"Leonhard's Trousers", hidden=True, npc=True, shop=True,
|
|
missable=True),
|
|
|
|
# Shrine Handmaid after killing Alrich, Devourer of Gods
|
|
DS3LocationData("FS: Smough's Helm - shop after killing AL boss", "Smough's Helm",
|
|
boss=True, shop=True),
|
|
DS3LocationData("FS: Smough's Armor - shop after killing AL boss", "Smough's Armor",
|
|
boss=True, shop=True),
|
|
DS3LocationData("FS: Smough's Gauntlets - shop after killing AL boss", "Smough's Gauntlets",
|
|
boss=True, shop=True),
|
|
DS3LocationData("FS: Smough's Leggings - shop after killing AL boss", "Smough's Leggings",
|
|
boss=True, shop=True),
|
|
|
|
# Ringfinger Leonhard (quest or kill)
|
|
DS3LocationData("AL: Crescent Moon Sword - Leonhard drop", "Crescent Moon Sword",
|
|
missable=True, npc=True),
|
|
DS3LocationData("AL: Silver Mask - Leonhard drop", "Silver Mask", missable=True,
|
|
npc=True),
|
|
DS3LocationData("AL: Soul of Rosaria - Leonhard drop", "Soul of Rosaria", missable=True,
|
|
npc=True),
|
|
|
|
# Shrine Handmaid after killing Anri or completing their quest
|
|
DS3LocationData("FS: Elite Knight Helm - shop after Anri quest", "Elite Knight Helm",
|
|
npc=True, shop=True),
|
|
DS3LocationData("FS: Elite Knight Armor - shop after Anri quest", "Elite Knight Armor",
|
|
npc=True, shop=True),
|
|
DS3LocationData("FS: Elite Knight Gauntlets - shop after Anri quest",
|
|
"Elite Knight Gauntlets", npc=True, shop=True),
|
|
DS3LocationData("FS: Elite Knight Leggings - shop after Anri quest",
|
|
"Elite Knight Leggings", npc=True, shop=True),
|
|
],
|
|
"Lothric Castle": [
|
|
DS3LocationData("LC: Soul of Dragonslayer Armour", "Soul of Dragonslayer Armour",
|
|
prominent=True, boss=True),
|
|
DS3LocationData("LC: Sniper Bolt - moat, right path end", "Sniper Bolt x11"),
|
|
DS3LocationData("LC: Sniper Crossbow - moat, right path end", "Sniper Crossbow"),
|
|
DS3LocationData("LC: Titanite Scale - dark room, upper balcony", "Titanite Scale"),
|
|
DS3LocationData("LC: Titanite Chunk - dark room mid, out door opposite wyvern",
|
|
"Titanite Chunk"),
|
|
DS3LocationData("LC: Greatlance - overlooking Dragon Barracks bonfire", "Greatlance"),
|
|
DS3LocationData("LC: Titanite Chunk - ascent, first balcony", "Titanite Chunk"),
|
|
DS3LocationData("LC: Titanite Chunk - ascent, turret before barricades", "Titanite Chunk"),
|
|
DS3LocationData("LC: Sacred Bloom Shield - ascent, behind illusory wall",
|
|
"Sacred Bloom Shield", hidden=True), # Behind illusory wall
|
|
DS3LocationData("LC: Titanite Chunk - ascent, final turret", "Titanite Chunk x2"),
|
|
DS3LocationData("LC: Refined Gem - plaza", "Refined Gem"),
|
|
DS3LocationData("LC: Soul of a Crestfallen Knight - by lift bottom",
|
|
"Soul of a Crestfallen Knight"),
|
|
DS3LocationData("LC: Undead Bone Shard - moat, far ledge", "Undead Bone Shard"),
|
|
DS3LocationData("LC: Lightning Urn - moat, right path, first room", "Lightning Urn x3"),
|
|
DS3LocationData("LC: Titanite Chunk - moat #1", "Titanite Chunk"),
|
|
DS3LocationData("LC: Titanite Chunk - moat #2", "Titanite Chunk"),
|
|
DS3LocationData("LC: Titanite Chunk - moat, near ledge", "Titanite Chunk"),
|
|
DS3LocationData("LC: Caitha's Chime - chapel, drop onto roof", "Caitha's Chime"),
|
|
DS3LocationData("LC: Lightning Urn - plaza", "Lightning Urn x6"),
|
|
DS3LocationData("LC: Ember - plaza, by gate", "Ember"),
|
|
DS3LocationData("LC: Raw Gem - plaza left", "Raw Gem"),
|
|
DS3LocationData("LC: Black Firebomb - dark room lower", "Black Firebomb x3"),
|
|
DS3LocationData("LC: Pale Pine Resin - dark room upper, by mimic", "Pale Pine Resin"),
|
|
DS3LocationData("LC: Large Soul of a Weary Warrior - main hall, by lever",
|
|
"Large Soul of a Weary Warrior"),
|
|
DS3LocationData("LC: Sunlight Medal - by lift top", "Sunlight Medal"),
|
|
DS3LocationData("LC: Soul of a Crestfallen Knight - wyvern room, balcony",
|
|
"Soul of a Crestfallen Knight", hidden=True), # Hidden fall
|
|
DS3LocationData("LC: Titanite Chunk - altar roof", "Titanite Chunk"),
|
|
DS3LocationData("LC: Titanite Scale - dark room mid, out door opposite wyvern",
|
|
"Titanite Scale"),
|
|
DS3LocationData("LC: Large Soul of a Nameless Soldier - moat, right path",
|
|
"Large Soul of a Nameless Soldier"),
|
|
DS3LocationData("LC: Knight's Ring - altar", "Knight's Ring"),
|
|
DS3LocationData("LC: Ember - main hall, left of stairs", "Ember"),
|
|
DS3LocationData("LC: Large Soul of a Weary Warrior - ascent, last turret",
|
|
"Large Soul of a Weary Warrior"),
|
|
DS3LocationData("LC: Ember - by Dragon Barracks bonfire", "Ember"),
|
|
DS3LocationData("LC: Twinkling Titanite - ascent, side room", "Twinkling Titanite"),
|
|
DS3LocationData("LC: Large Soul of a Nameless Soldier - dark room mid",
|
|
"Large Soul of a Nameless Soldier"),
|
|
DS3LocationData("LC: Ember - plaza center", "Ember"),
|
|
DS3LocationData("LC: Winged Knight Helm - ascent, behind illusory wall",
|
|
"Winged Knight Helm", hidden=True),
|
|
DS3LocationData("LC: Winged Knight Armor - ascent, behind illusory wall",
|
|
"Winged Knight Armor", hidden=True),
|
|
DS3LocationData("LC: Winged Knight Gauntlets - ascent, behind illusory wall",
|
|
"Winged Knight Gauntlets", hidden=True),
|
|
DS3LocationData("LC: Winged Knight Leggings - ascent, behind illusory wall",
|
|
"Winged Knight Leggings", hidden=True),
|
|
DS3LocationData("LC: Rusted Coin - chapel", "Rusted Coin x2"),
|
|
DS3LocationData("LC: Braille Divine Tome of Lothric - wyvern room",
|
|
"Braille Divine Tome of Lothric", hidden=True), # Hidden fall
|
|
DS3LocationData("LC: Red Tearstone Ring - chapel, drop onto roof", "Red Tearstone Ring"),
|
|
DS3LocationData("LC: Twinkling Titanite - moat, left side", "Twinkling Titanite x2"),
|
|
DS3LocationData("LC: Large Soul of a Nameless Soldier - plaza left, by pillar",
|
|
"Large Soul of a Nameless Soldier"),
|
|
DS3LocationData("LC: Titanite Scale - altar", "Titanite Scale x3"),
|
|
DS3LocationData("LC: Titanite Scale - chapel, chest", "Titanite Scale"),
|
|
DS3LocationData("LC: Hood of Prayer", "Hood of Prayer"),
|
|
DS3LocationData("LC: Robe of Prayer - ascent, chest at beginning", "Robe of Prayer"),
|
|
DS3LocationData("LC: Skirt of Prayer - ascent, chest at beginning", "Skirt of Prayer"),
|
|
DS3LocationData("LC: Spirit Tree Crest Shield - basement, chest",
|
|
"Spirit Tree Crest Shield"),
|
|
DS3LocationData("LC: Titanite Scale - basement, chest", "Titanite Scale"),
|
|
DS3LocationData("LC: Twinkling Titanite - basement, chest #1", "Twinkling Titanite"),
|
|
DS3LocationData("LC: Twinkling Titanite - basement, chest #2", "Twinkling Titanite x2"),
|
|
DS3LocationData("LC: Life Ring+2 - dark room mid, out door opposite wyvern, drop down",
|
|
"Life Ring+2", ngp=True, hidden=True), # Hidden fall
|
|
DS3LocationData("LC: Dark Stoneplate Ring+1 - wyvern room, balcony",
|
|
"Dark Stoneplate Ring+1", ngp=True, hidden=True), # Hidden fall
|
|
DS3LocationData("LC: Thunder Stoneplate Ring+2 - chapel, drop onto roof",
|
|
"Thunder Stoneplate Ring+2", ngp=True),
|
|
DS3LocationData("LC: Sunlight Straight Sword - wyvern room, mimic",
|
|
"Sunlight Straight Sword", mimic=True, hidden=True), # Hidden fall
|
|
DS3LocationData("LC: Titanite Scale - dark room, upper, mimic", "Titanite Scale x3",
|
|
mimic=True),
|
|
DS3LocationData("LC: Ember - wyvern room, wyvern foot mob drop", "Ember x2",
|
|
drop=True, hidden=True), # Hidden fall, Pus of Man Wyvern drop
|
|
DS3LocationData("LC: Titanite Chunk - wyvern room, wyvern foot mob drop", "Titanite Chunk x2",
|
|
drop=True, hidden=True), # Hidden fall, Pus of Man Wyvern drop
|
|
DS3LocationData("LC: Ember - dark room mid, pus of man mob drop", "Ember x2",
|
|
drop=True), # Pus of Man Wyvern drop
|
|
DS3LocationData("LC: Titanite Chunk - dark room mid, pus of man mob drop",
|
|
"Titanite Chunk x2"),
|
|
DS3LocationData("LC: Irithyll Rapier - basement, miniboss drop", "Irithyll Rapier",
|
|
miniboss=True), # Boreal Outrider drop
|
|
DS3LocationData("LC: Twinkling Titanite - dark room mid, out door opposite wyvern, lizard",
|
|
"Twinkling Titanite x2", lizard=True, missable=True),
|
|
DS3LocationData("LC: Twinkling Titanite - moat, right path, lizard",
|
|
"Twinkling Titanite x2", lizard=True, missable=True),
|
|
DS3LocationData("LC: Gotthard Twinswords - by Grand Archives door, after PC and AL bosses",
|
|
"Gotthard Twinswords", conditional=True),
|
|
DS3LocationData("LC: Grand Archives Key - by Grand Archives door, after PC and AL bosses",
|
|
"Grand Archives Key", prominent=True, progression=True,
|
|
conditional=True),
|
|
DS3LocationData("LC: Titanite Chunk - down stairs after boss", "Titanite Chunk"),
|
|
|
|
# Eygon of Carim (kill or quest)
|
|
DS3LocationData("FS: Morne's Great Hammer - Eygon", "Morne's Great Hammer", npc=True),
|
|
DS3LocationData("FS: Moaning Shield - Eygon", "Moaning Shield", npc=True),
|
|
|
|
# Shrine Handmaid after killing Dragonslayer Armour (or Eygon of Carim)
|
|
DS3LocationData("FS: Dancer's Crown - shop after killing LC entry boss", "Dancer's Crown",
|
|
boss=True, shop=True),
|
|
DS3LocationData("FS: Dancer's Armor - shop after killing LC entry boss", "Dancer's Armor",
|
|
boss=True, shop=True),
|
|
DS3LocationData("FS: Dancer's Gauntlets - shop after killing LC entry boss",
|
|
"Dancer's Gauntlets", boss=True, shop=True),
|
|
DS3LocationData("FS: Dancer's Leggings - shop after killing LC entry boss",
|
|
"Dancer's Leggings", boss=True, shop=True),
|
|
|
|
# Shrine Handmaid after killing Dragonslayer Armour (or Eygon of Carim)
|
|
DS3LocationData("FS: Morne's Helm - shop after killing Eygon or LC boss", "Morne's Helm",
|
|
boss=True, shop=True),
|
|
DS3LocationData("FS: Morne's Armor - shop after killing Eygon or LC boss", "Morne's Armor",
|
|
boss=True, shop=True),
|
|
DS3LocationData("FS: Morne's Gauntlets - shop after killing Eygon or LC boss",
|
|
"Morne's Gauntlets", boss=True, shop=True),
|
|
DS3LocationData("FS: Morne's Leggings - shop after killing Eygon or LC boss",
|
|
"Morne's Leggings", boss=True, shop=True),
|
|
],
|
|
"Consumed King's Garden": [
|
|
DS3LocationData("CKG: Soul of Consumed Oceiros", "Soul of Consumed Oceiros",
|
|
prominent=True, boss=True),
|
|
# Could classify this as "hidden" because it's midway down an elevator, but the elevator is
|
|
# so slow and the midway point is so obvious that it's not actually hard to find.
|
|
DS3LocationData("CKG: Estus Shard - balcony", "Estus Shard"),
|
|
DS3LocationData("CKG: Shadow Mask - under center platform", "Shadow Mask"),
|
|
DS3LocationData("CKG: Shadow Garb - under rotunda", "Shadow Garb"),
|
|
DS3LocationData("CKG: Shadow Gauntlets - under rotunda", "Shadow Gauntlets"),
|
|
DS3LocationData("CKG: Shadow Leggings - under rotunda", "Shadow Leggings"),
|
|
DS3LocationData("CKG: Black Firebomb - under rotunda", "Black Firebomb x2"),
|
|
DS3LocationData("CKG: Claw - under rotunda", "Claw"),
|
|
DS3LocationData("CKG: Titanite Chunk - up lone stairway", "Titanite Chunk"),
|
|
DS3LocationData("CKG: Dragonscale Ring - shortcut, leave halfway down lift",
|
|
"Dragonscale Ring"),
|
|
DS3LocationData("CKG: Human Pine Resin - toxic pool, past rotunda", "Human Pine Resin"),
|
|
DS3LocationData("CKG: Titanite Chunk - shortcut", "Titanite Chunk"),
|
|
DS3LocationData("CKG: Titanite Chunk - balcony, drop onto rubble", "Titanite Chunk"),
|
|
DS3LocationData("CKG: Soul of a Weary Warrior - before first lift",
|
|
"Soul of a Weary Warrior"),
|
|
DS3LocationData("CKG: Dark Gem - under lone stairway", "Dark Gem"),
|
|
DS3LocationData("CKG: Titanite Scale - shortcut", "Titanite Scale"),
|
|
DS3LocationData("CKG: Human Pine Resin - pool by lift", "Human Pine Resin x2"),
|
|
DS3LocationData("CKG: Titanite Chunk - right of shortcut lift bottom", "Titanite Chunk"),
|
|
DS3LocationData("CKG: Ring of Sacrifice - under balcony", "Ring of Sacrifice"),
|
|
DS3LocationData("CKG: Wood Grain Ring+1 - by first elevator bottom", "Wood Grain Ring+1",
|
|
ngp=True),
|
|
DS3LocationData("CKG: Sage Ring+2 - balcony, drop onto rubble, jump back", "Sage Ring+2",
|
|
ngp=True, hidden=True),
|
|
DS3LocationData("CKG: Titanite Scale - tomb, chest #1", "Titanite Scale"),
|
|
DS3LocationData("CKG: Titanite Scale - tomb, chest #2", "Titanite Scale"),
|
|
DS3LocationData("CKG: Magic Stoneplate Ring - mob drop before boss",
|
|
"Magic Stoneplate Ring", drop=True,
|
|
hidden=True), # Guaranteed drop from a normal-looking Cathedral Knight
|
|
|
|
# After Oceiros's boss room, only once the Drakeblood summon in AP has been killed
|
|
DS3LocationData("CKG: Drakeblood Helm - tomb, after killing AP mausoleum NPC",
|
|
"Drakeblood Helm", hostile_npc=True, hidden=True),
|
|
DS3LocationData("CKG: Drakeblood Armor - tomb, after killing AP mausoleum NPC",
|
|
"Drakeblood Armor", hostile_npc=True, hidden=True),
|
|
DS3LocationData("CKG: Drakeblood Gauntlets - tomb, after killing AP mausoleum NPC",
|
|
"Drakeblood Gauntlets", hostile_npc=True, hidden=True),
|
|
DS3LocationData("CKG: Drakeblood Leggings - tomb, after killing AP mausoleum NPC",
|
|
"Drakeblood Leggings", hostile_npc=True, hidden=True),
|
|
],
|
|
"Grand Archives": [
|
|
DS3LocationData("GA: Titanite Slab - final elevator secret", "Titanite Slab",
|
|
hidden=True),
|
|
DS3LocationData("GA: Soul of the Twin Princes", "Soul of the Twin Princes", boss=True),
|
|
DS3LocationData("GA: Cinders of a Lord - Lothric Prince",
|
|
"Cinders of a Lord - Lothric Prince",
|
|
static="09,0:50002040::", prominent=True, progression=True,
|
|
boss=True),
|
|
DS3LocationData("GA: Onikiri and Ubadachi - outside 5F, NPC drop", "Onikiri and Ubadachi",
|
|
hostile_npc=True, # Black Hand Kamui drop
|
|
missable=True), # This is placed at the location the NPC gets randomized
|
|
# to, which makes it hard to include in logic.
|
|
DS3LocationData("GA: Golden Wing Crest Shield - outside 5F, NPC drop",
|
|
"Golden Wing Crest Shield",
|
|
hostile_npc=True), # Lion Knight Albert drop
|
|
DS3LocationData("GA: Sage's Crystal Staff - outside 5F, NPC drop",
|
|
"Sage's Crystal Staff",
|
|
hostile_npc=True), # Daughter of Crystal Kriemhild drop
|
|
DS3LocationData("GA: Titanite Chunk - 1F, up right stairs", "Titanite Chunk"),
|
|
DS3LocationData("GA: Titanite Chunk - 1F, path from wax pool", "Titanite Chunk"),
|
|
DS3LocationData("GA: Soul of a Crestfallen Knight - 1F, loop left after drop",
|
|
"Soul of a Crestfallen Knight"),
|
|
DS3LocationData("GA: Titanite Chunk - 1F, balcony", "Titanite Chunk"),
|
|
DS3LocationData("GA: Fleshbite Ring - up stairs from 4F", "Fleshbite Ring"),
|
|
DS3LocationData("GA: Soul of a Crestfallen Knight - path to dome",
|
|
"Soul of a Crestfallen Knight"),
|
|
DS3LocationData("GA: Soul of a Nameless Soldier - dark room", "Soul of a Nameless Soldier"),
|
|
DS3LocationData("GA: Crystal Chime - 1F, path from wax pool", "Crystal Chime"),
|
|
DS3LocationData("GA: Titanite Scale - dark room, upstairs", "Titanite Scale"),
|
|
DS3LocationData("GA: Estus Shard - dome, far balcony", "Estus Shard"),
|
|
DS3LocationData("GA: Homeward Bone - 2F early balcony", "Homeward Bone x3"),
|
|
DS3LocationData("GA: Titanite Scale - 2F, titanite scale atop bookshelf", "Titanite Scale",
|
|
hidden=True), # Hidden fall
|
|
DS3LocationData("GA: Titanite Chunk - 2F, by wax pool", "Titanite Chunk"),
|
|
DS3LocationData("GA: Hollow Gem - rooftops lower, in hall", "Hollow Gem",
|
|
hidden=True), # Hidden fall
|
|
DS3LocationData("GA: Titanite Scale - 3F, corner up stairs", "Titanite Scale"),
|
|
DS3LocationData("GA: Titanite Scale - 1F, up stairs on bookshelf", "Titanite Scale"),
|
|
DS3LocationData("GA: Titanite Scale - 3F, by ladder to 2F late", "Titanite Scale",
|
|
hidden=True), # Hidden by a table
|
|
DS3LocationData("GA: Shriving Stone - 2F late, by ladder from 3F", "Shriving Stone"),
|
|
DS3LocationData("GA: Large Soul of a Crestfallen Knight - 4F, back",
|
|
"Large Soul of a Crestfallen Knight"),
|
|
DS3LocationData("GA: Titanite Chunk - rooftops, balcony", "Titanite Chunk"),
|
|
DS3LocationData("GA: Titanite Scale - rooftops lower, path to 2F", "Titanite Scale x3",
|
|
hidden=True), # Hidden fall
|
|
DS3LocationData("GA: Titanite Chunk - rooftops lower, ledge by buttress", "Titanite Chunk",
|
|
hidden=True), # Hidden fall
|
|
DS3LocationData("GA: Soul of a Weary Warrior - rooftops, by lizards",
|
|
"Soul of a Weary Warrior"),
|
|
DS3LocationData("GA: Titanite Chunk - rooftops, just before 5F", "Titanite Chunk"),
|
|
DS3LocationData("GA: Ember - 5F, by entrance", "Ember"),
|
|
DS3LocationData("GA: Blessed Gem - rafters", "Blessed Gem"),
|
|
DS3LocationData("GA: Titanite Chunk - 5F, far balcony", "Titanite Chunk x2"),
|
|
DS3LocationData("GA: Large Soul of a Crestfallen Knight - outside 5F",
|
|
"Large Soul of a Crestfallen Knight"),
|
|
DS3LocationData("GA: Avelyn - 1F, drop from 3F onto bookshelves", "Avelyn",
|
|
hidden=True), # Hidden fall
|
|
DS3LocationData("GA: Titanite Chunk - 2F, right after dark room", "Titanite Chunk"),
|
|
DS3LocationData("GA: Hunter's Ring - dome, very top", "Hunter's Ring"),
|
|
DS3LocationData("GA: Divine Pillars of Light - cage above rafters",
|
|
"Divine Pillars of Light"),
|
|
DS3LocationData("GA: Power Within - dark room, behind retractable bookshelf",
|
|
"Power Within", hidden=True), # Switch in darkened room
|
|
DS3LocationData("GA: Sage Ring+1 - rafters, second level down", "Sage Ring+1", ngp=True),
|
|
DS3LocationData("GA: Lingering Dragoncrest Ring+2 - dome, room behind spire",
|
|
"Lingering Dragoncrest Ring+2", ngp=True),
|
|
DS3LocationData("GA: Divine Blessing - rafters, down lower level ladder",
|
|
"Divine Blessing"),
|
|
DS3LocationData("GA: Twinkling Titanite - rafters, down lower level ladder",
|
|
"Twinkling Titanite x3"),
|
|
DS3LocationData("GA: Witch's Locks - dark room, behind retractable bookshelf",
|
|
"Witch's Locks", hidden=True), # Switch in darkened room
|
|
DS3LocationData("GA: Titanite Slab - 1F, after pulling 2F switch", "Titanite Slab",
|
|
hidden=True),
|
|
DS3LocationData("GA: Titanite Scale - 4F, chest by exit", "Titanite Scale x3"),
|
|
DS3LocationData("GA: Soul Stream - 3F, behind illusory wall", "Soul Stream",
|
|
hidden=True), # Behind illusory wall
|
|
DS3LocationData("GA: Scholar Ring - 2F, between late and early", "Scholar Ring"),
|
|
DS3LocationData("GA: Undead Bone Shard - 5F, by entrance", "Undead Bone Shard"),
|
|
DS3LocationData("GA: Titanite Slab - dome, kill all mobs", "Titanite Slab",
|
|
drop=True,
|
|
hidden=True), # Guaranteed drop from killing all Winged Knights
|
|
DS3LocationData("GA: Outrider Knight Helm - 3F, behind illusory wall, miniboss drop",
|
|
"Outrider Knight Helm", miniboss=True,
|
|
hidden=True), # Behind illusory wall, Outrider Knight drop
|
|
DS3LocationData("GA: Outrider Knight Armor - 3F, behind illusory wall, miniboss drop",
|
|
"Outrider Knight Armor", miniboss=True,
|
|
hidden=True), # Behind illusory wall, Outrider Knight drop
|
|
DS3LocationData("GA: Outrider Knight Gauntlets - 3F, behind illusory wall, miniboss drop",
|
|
"Outrider Knight Gauntlets", miniboss=True,
|
|
hidden=True), # Behind illusory wall, Outrider Knight drop
|
|
DS3LocationData("GA: Outrider Knight Leggings - 3F, behind illusory wall, miniboss drop",
|
|
"Outrider Knight Leggings", miniboss=True,
|
|
hidden=True), # Behind illusory wall, Outrider Knight drop
|
|
DS3LocationData("GA: Crystal Scroll - 2F late, miniboss drop", "Crystal Scroll",
|
|
miniboss=True), # Crystal Sage drop
|
|
DS3LocationData("GA: Twinkling Titanite - dark room, lizard #1", "Twinkling Titanite",
|
|
lizard=True),
|
|
DS3LocationData("GA: Chaos Gem - dark room, lizard", "Chaos Gem", lizard=True),
|
|
DS3LocationData("GA: Twinkling Titanite - 1F, lizard by drop", "Twinkling Titanite",
|
|
lizard=True),
|
|
DS3LocationData("GA: Crystal Gem - 1F, lizard by drop", "Crystal Gem", lizard=True),
|
|
DS3LocationData("GA: Twinkling Titanite - 2F, lizard by entrance", "Twinkling Titanite x2",
|
|
lizard=True),
|
|
DS3LocationData("GA: Titanite Scale - 1F, drop from 2F late onto bookshelves, lizard",
|
|
"Titanite Scale x2", lizard=True, hidden=True), # Hidden fall
|
|
DS3LocationData("GA: Twinkling Titanite - rooftops, lizard #1", "Twinkling Titanite",
|
|
lizard=True),
|
|
DS3LocationData("GA: Heavy Gem - rooftops, lizard", "Heavy Gem", lizard=True),
|
|
DS3LocationData("GA: Twinkling Titanite - rooftops, lizard #2", "Twinkling Titanite",
|
|
lizard=True),
|
|
DS3LocationData("GA: Sharp Gem - rooftops, lizard", "Sharp Gem", lizard=True),
|
|
DS3LocationData("GA: Twinkling Titanite - up stairs from 4F, lizard", "Twinkling Titanite",
|
|
lizard=True),
|
|
DS3LocationData("GA: Refined Gem - up stairs from 4F, lizard", "Refined Gem",
|
|
lizard=True),
|
|
DS3LocationData("GA: Twinkling Titanite - dark room, lizard #2", "Twinkling Titanite x2",
|
|
lizard=True),
|
|
|
|
# Shrine Handmaid after killing NPCs
|
|
DS3LocationData("FS: Faraam Helm - shop after killing GA NPC", "Faraam Helm",
|
|
hidden=True, hostile_npc=True, shop=True),
|
|
DS3LocationData("FS: Faraam Armor - shop after killing GA NPC", "Faraam Armor",
|
|
hidden=True, hostile_npc=True, shop=True),
|
|
DS3LocationData("FS: Faraam Gauntlets - shop after killing GA NPC", "Faraam Gauntlets",
|
|
hidden=True, hostile_npc=True, shop=True),
|
|
DS3LocationData("FS: Faraam Boots - shop after killing GA NPC", "Faraam Boots",
|
|
hidden=True, hostile_npc=True, shop=True),
|
|
DS3LocationData("FS: Black Hand Hat - shop after killing GA NPC", "Black Hand Hat",
|
|
hidden=True, hostile_npc=True, shop=True),
|
|
DS3LocationData("FS: Black Hand Armor - shop after killing GA NPC", "Black Hand Armor",
|
|
hidden=True, hostile_npc=True, shop=True),
|
|
|
|
# Shrine Handmaid after killing Lothric, Younger Prince
|
|
DS3LocationData("FS: Lorian's Helm - shop after killing GA boss", "Lorian's Helm",
|
|
boss=True, shop=True),
|
|
DS3LocationData("FS: Lorian's Armor - shop after killing GA boss", "Lorian's Armor",
|
|
boss=True, shop=True),
|
|
DS3LocationData("FS: Lorian's Gauntlets - shop after killing GA boss", "Lorian's Gauntlets",
|
|
boss=True, shop=True),
|
|
DS3LocationData("FS: Lorian's Leggings - shop after killing GA boss", "Lorian's Leggings",
|
|
boss=True, shop=True),
|
|
|
|
# Sirris quest completion + beat Twin Princes
|
|
DS3LocationData("FS: Sunless Talisman - Sirris, kill GA boss", "Sunless Talisman",
|
|
missable=True, npc=True),
|
|
DS3LocationData("FS: Sunless Veil - shop, Sirris quest, kill GA boss", "Sunless Veil",
|
|
missable=True, npc=True, shop=True),
|
|
DS3LocationData("FS: Sunless Armor - shop, Sirris quest, kill GA boss", "Sunless Armor",
|
|
missable=True, npc=True, shop=True),
|
|
DS3LocationData("FS: Sunless Gauntlets - shop, Sirris quest, kill GA boss",
|
|
"Sunless Gauntlets", missable=True, npc=True, shop=True),
|
|
DS3LocationData("FS: Sunless Leggings - shop, Sirris quest, kill GA boss",
|
|
"Sunless Leggings", missable=True, npc=True, shop=True),
|
|
|
|
# Unbreakable Patches
|
|
DS3LocationData("FS: Hidden Blessing - Patches after searching GA", "Hidden Blessing",
|
|
missable=True, npc=True, shop=True),
|
|
],
|
|
"Untended Graves": [
|
|
DS3LocationData("UG: Soul of Champion Gundyr", "Soul of Champion Gundyr", prominent=True,
|
|
boss=True),
|
|
DS3LocationData("UG: Priestess Ring - shop", "Priestess Ring", shop=True),
|
|
DS3LocationData("UG: Shriving Stone - swamp, by bonfire", "Shriving Stone"),
|
|
DS3LocationData("UG: Titanite Chunk - swamp, left path by fountain", "Titanite Chunk"),
|
|
DS3LocationData("UG: Soul of a Crestfallen Knight - swamp, center",
|
|
"Soul of a Crestfallen Knight"),
|
|
DS3LocationData("UG: Titanite Chunk - swamp, right path by fountain", "Titanite Chunk"),
|
|
DS3LocationData("UG: Ashen Estus Ring - swamp, path opposite bonfire", "Ashen Estus Ring"),
|
|
DS3LocationData("UG: Black Knight Glaive - boss arena", "Black Knight Glaive"),
|
|
DS3LocationData("UG: Hidden Blessing - cemetery, behind coffin", "Hidden Blessing"),
|
|
DS3LocationData("UG: Eyes of a Fire Keeper - shrine, Irina's room", "Eyes of a Fire Keeper",
|
|
hidden=True), # Illusory wall
|
|
DS3LocationData("UG: Soul of a Crestfallen Knight - environs, above shrine entrance",
|
|
"Soul of a Crestfallen Knight"),
|
|
DS3LocationData("UG: Blacksmith Hammer - shrine, Andre's room", "Blacksmith Hammer"),
|
|
DS3LocationData("UG: Chaos Blade - environs, left of shrine", "Chaos Blade"),
|
|
DS3LocationData("UG: Hornet Ring - environs, right of main path after killing FK boss",
|
|
"Hornet Ring", conditional=True),
|
|
DS3LocationData("UG: Coiled Sword Fragment - shrine, dead bonfire", "Coiled Sword Fragment",
|
|
boss=True),
|
|
DS3LocationData("UG: Life Ring+3 - shrine, behind big throne", "Life Ring+3", ngp=True),
|
|
DS3LocationData("UG: Ring of Steel Protection+1 - environs, behind bell tower",
|
|
"Ring of Steel Protection+1", ngp=True),
|
|
|
|
# Yuria shop, or Shrine Handmaiden with Hollow's Ashes
|
|
# This is here because this is where the ashes end up if you kill Yoel or Yuria
|
|
DS3LocationData("FS: Ring of Sacrifice - Yuria shop", "Ring of Sacrifice",
|
|
static='99,0:-1:40000,110000,70000107,70000116:', npc=True,
|
|
shop=True),
|
|
|
|
# Untended Graves Handmaid
|
|
# All shop items are missable because she can be killed, except Priestess ring because she
|
|
# drops it on death anyway.
|
|
DS3LocationData("UG: Ember - shop", "Ember", shop=True, missable=True),
|
|
# Untended Graves Handmaid after killing Abyss Watchers
|
|
DS3LocationData("UG: Wolf Knight Helm - shop after killing FK boss", "Wolf Knight Helm",
|
|
boss=True, shop=True, conditional=True,
|
|
missable=True),
|
|
DS3LocationData("UG: Wolf Knight Armor - shop after killing FK boss",
|
|
"Wolf Knight Armor", boss=True, shop=True, missable=True),
|
|
DS3LocationData("UG: Wolf Knight Gauntlets - shop after killing FK boss",
|
|
"Wolf Knight Gauntlets", boss=True, shop=True, missable=True),
|
|
DS3LocationData("UG: Wolf Knight Leggings - shop after killing FK boss",
|
|
"Wolf Knight Leggings", boss=True, shop=True, missable=True),
|
|
|
|
# Shrine Handmaid after killing Champion Gundyr
|
|
DS3LocationData("FS: Gundyr's Helm - shop after killing UG boss", "Gundyr's Helm",
|
|
boss=True, shop=True),
|
|
DS3LocationData("FS: Gundyr's Armor - shop after killing UG boss", "Gundyr's Armor",
|
|
boss=True, shop=True),
|
|
DS3LocationData("FS: Gundyr's Gauntlets - shop after killing UG boss", "Gundyr's Gauntlets",
|
|
boss=True, shop=True),
|
|
DS3LocationData("FS: Gundyr's Leggings - shop after killing UG boss", "Gundyr's Leggings",
|
|
boss=True, shop=True),
|
|
],
|
|
"Archdragon Peak": [
|
|
DS3LocationData("AP: Dragon Head Stone - fort, boss drop", "Dragon Head Stone",
|
|
prominent=True, boss=True),
|
|
DS3LocationData("AP: Soul of the Nameless King", "Soul of the Nameless King",
|
|
prominent=True, boss=True),
|
|
DS3LocationData("AP: Dragon Tooth - belfry roof, NPC drop", "Dragon Tooth",
|
|
hostile_npc=True), # Havel Knight drop
|
|
DS3LocationData("AP: Havel's Greatshield - belfry roof, NPC drop", "Havel's Greatshield",
|
|
hostile_npc=True), # Havel Knight drop
|
|
DS3LocationData("AP: Drakeblood Greatsword - mausoleum, NPC drop", "Drakeblood Greatsword",
|
|
hostile_npc=True),
|
|
DS3LocationData("AP: Ricard's Rapier - belfry, NPC drop", "Ricard's Rapier",
|
|
hostile_npc=True),
|
|
DS3LocationData("AP: Lightning Clutch Ring - intro, left of boss door",
|
|
"Lightning Clutch Ring"),
|
|
DS3LocationData("AP: Stalk Dung Pie - fort overlook", "Stalk Dung Pie x6"),
|
|
DS3LocationData("AP: Titanite Chunk - fort, second room balcony", "Titanite Chunk"),
|
|
DS3LocationData("AP: Titanite Scale - mausoleum, downstairs balcony #1",
|
|
"Titanite Scale"),
|
|
DS3LocationData("AP: Soul of a Weary Warrior - intro, first cliff edge",
|
|
"Soul of a Weary Warrior"),
|
|
DS3LocationData("AP: Titanite Chunk - intro, left before archway", "Titanite Chunk"),
|
|
DS3LocationData("AP: Lightning Gem - intro, side rise", "Lightning Gem"),
|
|
DS3LocationData("AP: Homeward Bone - intro, path to bonfire", "Homeward Bone x2"),
|
|
DS3LocationData("AP: Soul of a Nameless Soldier - intro, right before archway",
|
|
"Soul of a Nameless Soldier"),
|
|
DS3LocationData("AP: Titanite Chunk - intro, archway corner", "Titanite Chunk"),
|
|
DS3LocationData("AP: Ember - fort overlook #1", "Ember"),
|
|
DS3LocationData("AP: Large Soul of a Weary Warrior - fort, center",
|
|
"Large Soul of a Weary Warrior"),
|
|
DS3LocationData("AP: Large Soul of a Nameless Soldier - fort, by stairs to first room",
|
|
"Large Soul of a Nameless Soldier"),
|
|
DS3LocationData("AP: Lightning Urn - fort, left of first room entrance",
|
|
"Lightning Urn x4"),
|
|
DS3LocationData("AP: Lightning Bolt - rotunda", "Lightning Bolt x12"),
|
|
DS3LocationData("AP: Titanite Chunk - rotunda", "Titanite Chunk x2"),
|
|
# Not 100% sure about this location name, can't find this on any maps
|
|
DS3LocationData("AP: Dung Pie - fort, landing after second room", "Dung Pie x3"),
|
|
DS3LocationData("AP: Titanite Scale - mausoleum, downstairs balcony #2", "Titanite Scale"),
|
|
DS3LocationData("AP: Soul of a Weary Warrior - walkway, building window",
|
|
"Soul of a Weary Warrior"),
|
|
DS3LocationData("AP: Soul of a Crestfallen Knight - mausoleum, upstairs",
|
|
"Soul of a Crestfallen Knight"),
|
|
DS3LocationData("AP: Titanite Chunk - intro, behind rock", "Titanite Chunk"),
|
|
DS3LocationData("AP: Ember - fort overlook #2", "Ember"),
|
|
DS3LocationData("AP: Thunder Stoneplate Ring - walkway, up ladder",
|
|
"Thunder Stoneplate Ring"),
|
|
DS3LocationData("AP: Titanite Scale - mausoleum, upstairs balcony", "Titanite Scale"),
|
|
DS3LocationData("AP: Ember - belfry, below bell", "Ember"),
|
|
DS3LocationData("AP: Ancient Dragon Greatshield - intro, on archway",
|
|
"Ancient Dragon Greatshield"),
|
|
DS3LocationData("AP: Large Soul of a Crestfallen Knight - summit, by fountain",
|
|
"Large Soul of a Crestfallen Knight"),
|
|
DS3LocationData("AP: Dragon Chaser's Ashes - summit, side path", "Dragon Chaser's Ashes",
|
|
progression=True),
|
|
DS3LocationData("AP: Ember - intro, by bonfire", "Ember"),
|
|
DS3LocationData("AP: Dragonslayer Spear - gate after mausoleum", "Dragonslayer Spear"),
|
|
DS3LocationData("AP: Dragonslayer Helm - plaza", "Dragonslayer Helm"),
|
|
DS3LocationData("AP: Dragonslayer Armor - plaza", "Dragonslayer Armor"),
|
|
DS3LocationData("AP: Dragonslayer Gauntlets - plaza", "Dragonslayer Gauntlets"),
|
|
DS3LocationData("AP: Dragonslayer Leggings - plaza", "Dragonslayer Leggings"),
|
|
DS3LocationData("AP: Twinkling Titanite - fort, end of rafters", "Twinkling Titanite x2"),
|
|
DS3LocationData("AP: Twinkling Titanite - fort, down second room balcony ladder",
|
|
"Twinkling Titanite x2"),
|
|
DS3LocationData("AP: Titanite Slab - belfry roof", "Titanite Slab"),
|
|
DS3LocationData("AP: Great Magic Barrier - drop off belfry roof", "Great Magic Barrier",
|
|
hidden=True), # Hidden fall
|
|
DS3LocationData("AP: Titanite Slab - plaza", "Titanite Slab"),
|
|
DS3LocationData("AP: Ring of Steel Protection - fort overlook, beside stairs",
|
|
"Ring of Steel Protection"),
|
|
DS3LocationData("AP: Havel's Ring+1 - summit, after building", "Havel's Ring+1",
|
|
ngp=True),
|
|
DS3LocationData("AP: Covetous Gold Serpent Ring+2 - plaza", "Covetous Gold Serpent Ring+2",
|
|
ngp=True),
|
|
DS3LocationData("AP: Titanite Scale - walkway building", "Titanite Scale x3"),
|
|
DS3LocationData("AP: Twinkling Titanite - belfry, by ladder to roof",
|
|
"Twinkling Titanite x3"),
|
|
DS3LocationData("AP: Twinkling Dragon Torso Stone - summit, gesture at altar",
|
|
"Twinkling Dragon Torso Stone", hidden=True), # Requires gesture
|
|
DS3LocationData("AP: Calamity Ring - mausoleum, gesture at altar", "Calamity Ring",
|
|
hidden=True), # Requires gesture
|
|
DS3LocationData("AP: Twinkling Titanite - walkway building, lizard",
|
|
"Twinkling Titanite x3", lizard=True),
|
|
DS3LocationData("AP: Titanite Chunk - walkway, miniboss drop", "Titanite Chunk x6",
|
|
miniboss=True), # Wyvern miniboss drop
|
|
DS3LocationData("AP: Titanite Scale - walkway, miniboss drop", "Titanite Scale x3",
|
|
miniboss=True), # Wyvern miniboss drop
|
|
DS3LocationData("AP: Twinkling Titanite - walkway, miniboss drop", "Twinkling Titanite x3",
|
|
miniboss=True), # Wyvern miniboss drop
|
|
DS3LocationData("FS: Hawkwood's Swordgrass - Andre after gesture in AP summit",
|
|
"Hawkwood's Swordgrass", conditional=True, hidden=True),
|
|
|
|
# Shrine Handmaid after killing Nameless King
|
|
DS3LocationData("FS: Golden Crown - shop after killing AP boss", "Golden Crown",
|
|
boss=True, shop=True),
|
|
DS3LocationData("FS: Dragonscale Armor - shop after killing AP boss", "Dragonscale Armor",
|
|
boss=True, shop=True),
|
|
DS3LocationData("FS: Golden Bracelets - shop after killing AP boss", "Golden Bracelets",
|
|
boss=True, shop=True),
|
|
DS3LocationData("FS: Dragonscale Waistcloth - shop after killing AP boss",
|
|
"Dragonscale Waistcloth", boss=True, shop=True),
|
|
DS3LocationData("FK: Twinkling Dragon Head Stone - Hawkwood drop",
|
|
"Twinkling Dragon Head Stone", missable=True,
|
|
npc=True), # Hawkwood (quest)
|
|
],
|
|
"Kiln of the First Flame": [
|
|
DS3LocationData("KFF: Soul of the Lords", "Soul of the Lords", boss=True),
|
|
|
|
# Shrine Handmaid after placing all Cinders of a Lord
|
|
DS3LocationData("FS: Titanite Slab - shop after placing all Cinders", "Titanite Slab",
|
|
static='99,0:-1:9210,110000:', hidden=True),
|
|
DS3LocationData("FS: Firelink Helm - shop after placing all Cinders", "Firelink Helm",
|
|
boss=True, shop=True),
|
|
DS3LocationData("FS: Firelink Armor - shop after placing all Cinders", "Firelink Armor",
|
|
boss=True, shop=True),
|
|
DS3LocationData("FS: Firelink Gauntlets - shop after placing all Cinders",
|
|
"Firelink Gauntlets", boss=True, shop=True),
|
|
DS3LocationData("FS: Firelink Leggings - shop after placing all Cinders",
|
|
"Firelink Leggings", boss=True, shop=True),
|
|
|
|
# Yuria (quest, after Soul of Cinder)
|
|
DS3LocationData("FS: Billed Mask - shop after killing Yuria", "Billed Mask",
|
|
missable=True, npc=True),
|
|
DS3LocationData("FS: Black Dress - shop after killing Yuria", "Black Dress",
|
|
missable=True, npc=True),
|
|
DS3LocationData("FS: Black Gauntlets - shop after killing Yuria", "Black Gauntlets",
|
|
missable=True, npc=True),
|
|
DS3LocationData("FS: Black Leggings - shop after killing Yuria", "Black Leggings",
|
|
missable=True, npc=True),
|
|
],
|
|
|
|
# DLC
|
|
"Painted World of Ariandel (Before Contraption)": [
|
|
DS3LocationData("PW1: Valorheart - boss drop", "Valorheart", prominent=True, boss=True),
|
|
DS3LocationData("PW1: Contraption Key - library, NPC drop", "Contraption Key",
|
|
prominent=True, progression=True,
|
|
hostile_npc=True), # Sir Vilhelm drop
|
|
DS3LocationData("PW1: Onyx Blade - library, NPC drop", "Onyx Blade",
|
|
hostile_npc=True), # Sir Vilhelm drop
|
|
DS3LocationData("PW1: Chillbite Ring - Friede", "Chillbite Ring",
|
|
npc=True), # Friede conversation
|
|
DS3LocationData("PW1: Rime-blue Moss Clump - snowfield upper, starting cave",
|
|
"Rime-blue Moss Clump x2"),
|
|
DS3LocationData("PW1: Poison Gem - snowfield upper, forward from bonfire", "Poison Gem"),
|
|
DS3LocationData("PW1: Large Soul of an Unknown Traveler - snowfield lower, path back up",
|
|
"Large Soul of an Unknown Traveler"),
|
|
DS3LocationData("PW1: Follower Javelin - snowfield lower, path back up", "Follower Javelin"),
|
|
DS3LocationData("PW1: Large Soul of an Unknown Traveler - snowfield lower, path to village",
|
|
"Large Soul of an Unknown Traveler"),
|
|
DS3LocationData("PW1: Homeward Bone - snowfield village, outcropping", "Homeward Bone x6"),
|
|
DS3LocationData("PW1: Blessed Gem - snowfield, behind tower", "Blessed Gem",
|
|
hidden=True), # Hidden behind a tower
|
|
DS3LocationData("PW1: Captain's Ashes - snowfield tower, 6F", "Captain's Ashes",
|
|
progression=True),
|
|
DS3LocationData("PW1: Black Firebomb - snowfield lower, path to bonfire",
|
|
"Black Firebomb x2"),
|
|
DS3LocationData("PW1: Shriving Stone - below bridge near", "Shriving Stone"),
|
|
DS3LocationData("PW1: Millwood Greatarrow - snowfield village, loop back to lower",
|
|
"Millwood Greatarrow x5"),
|
|
DS3LocationData("PW1: Millwood Greatbow - snowfield village, loop back to lower",
|
|
"Millwood Greatbow"),
|
|
DS3LocationData("PW1: Large Soul of an Unknown Traveler - snowfield upper",
|
|
"Large Soul of an Unknown Traveler"),
|
|
DS3LocationData("PW1: Rusted Coin - snowfield lower, straight from fall", "Rusted Coin"),
|
|
DS3LocationData("PW1: Large Titanite Shard - snowfield lower, left from fall",
|
|
"Large Titanite Shard"),
|
|
DS3LocationData("PW1: Large Soul of an Unknown Traveler - settlement courtyard, cliff",
|
|
"Large Soul of an Unknown Traveler"),
|
|
DS3LocationData("PW1: Crow Quills - settlement loop, jump into courtyard", "Crow Quills",
|
|
hidden=True), # Hidden fall
|
|
DS3LocationData("PW1: Simple Gem - settlement, lowest level, behind gate", "Simple Gem"),
|
|
DS3LocationData("PW1: Large Soul of an Unknown Traveler - settlement, by ladder to bonfire",
|
|
"Large Soul of an Unknown Traveler"),
|
|
DS3LocationData("PW1: Slave Knight Hood - settlement roofs, drop by ladder",
|
|
"Slave Knight Hood"),
|
|
DS3LocationData("PW1: Slave Knight Armor - settlement roofs, drop by ladder",
|
|
"Slave Knight Armor"),
|
|
DS3LocationData("PW1: Slave Knight Gauntlets - settlement roofs, drop by ladder",
|
|
"Slave Knight Gauntlets"),
|
|
DS3LocationData("PW1: Slave Knight Leggings - settlement roofs, drop by ladder",
|
|
"Slave Knight Leggings"),
|
|
DS3LocationData("PW1: Ember - settlement main, left building after bridge", "Ember"),
|
|
DS3LocationData("PW1: Dark Gem - settlement back, egg building", "Dark Gem"),
|
|
DS3LocationData("PW1: Large Soul of an Unknown Traveler - settlement roofs, balcony",
|
|
"Large Soul of an Unknown Traveler"),
|
|
DS3LocationData("PW1: Large Soul of an Unknown Traveler - settlement loop, by bonfire",
|
|
"Large Soul of an Unknown Traveler"),
|
|
DS3LocationData("PW1: Rusted Gold Coin - settlement roofs, roof near second ladder",
|
|
"Rusted Gold Coin x3"),
|
|
DS3LocationData("PW1: Soul of a Crestfallen Knight - settlement hall, rafters",
|
|
"Soul of a Crestfallen Knight"),
|
|
DS3LocationData("PW1: Way of White Corona - settlement hall, by altar",
|
|
"Way of White Corona"),
|
|
DS3LocationData("PW1: Rusted Coin - right of library", "Rusted Coin x2"),
|
|
DS3LocationData("PW1: Young White Branch - right of library", "Young White Branch"),
|
|
DS3LocationData("PW1: Budding Green Blossom - settlement courtyard, ledge",
|
|
"Budding Green Blossom x3"),
|
|
DS3LocationData("PW1: Crow Talons - settlement roofs, near bonfire", "Crow Talons"),
|
|
DS3LocationData("PW1: Hollow Gem - beside chapel", "Hollow Gem"),
|
|
DS3LocationData("PW1: Rime-blue Moss Clump - below bridge far", "Rime-blue Moss Clump x4"),
|
|
DS3LocationData("PW1: Follower Sabre - roots above depths", "Follower Sabre"),
|
|
DS3LocationData("PW1: Ember - roots above depths", "Ember"),
|
|
DS3LocationData("PW1: Snap Freeze - depths, far end, mob drop", "Snap Freeze", drop=True,
|
|
hidden=True), # Guaranteed drop from normal-looking Tree Woman
|
|
DS3LocationData("PW1: Rime-blue Moss Clump - snowfield upper, overhang",
|
|
"Rime-blue Moss Clump"),
|
|
DS3LocationData("PW1: Large Soul of an Unknown Traveler - snowfield lower, by cliff",
|
|
"Large Soul of an Unknown Traveler"),
|
|
DS3LocationData("PW1: Ember - settlement, building near bonfire", "Ember"),
|
|
DS3LocationData("PW1: Frozen Weapon - snowfield lower, egg zone", "Frozen Weapon"),
|
|
DS3LocationData("PW1: Titanite Slab - depths, up secret ladder", "Titanite Slab",
|
|
static='11,0:54500640::',
|
|
hidden=True), # Must kill normal-looking Tree Woman
|
|
DS3LocationData("PW1: Homeward Bone - depths, up hill", "Homeward Bone x2"),
|
|
DS3LocationData("PW1: Large Soul of an Unknown Traveler - below snowfield village overhang",
|
|
"Large Soul of an Unknown Traveler"),
|
|
DS3LocationData("PW1: Large Soul of a Weary Warrior - settlement hall roof",
|
|
"Large Soul of a Weary Warrior"),
|
|
DS3LocationData("PW1: Large Soul of an Unknown Traveler - settlement back",
|
|
"Large Soul of an Unknown Traveler"),
|
|
DS3LocationData("PW1: Heavy Gem - snowfield village", "Heavy Gem"),
|
|
DS3LocationData("PW1: Large Soul of a Weary Warrior - snowfield tower, 6F",
|
|
"Large Soul of a Weary Warrior"),
|
|
DS3LocationData("PW1: Millwood Battle Axe - snowfield tower, 5F", "Millwood Battle Axe"),
|
|
DS3LocationData("PW1: Ethereal Oak Shield - snowfield tower, 3F", "Ethereal Oak Shield"),
|
|
DS3LocationData("PW1: Soul of a Weary Warrior - snowfield tower, 1F",
|
|
"Soul of a Weary Warrior"),
|
|
DS3LocationData("PW1: Twinkling Titanite - snowfield tower, 3F lizard",
|
|
"Twinkling Titanite", lizard=True),
|
|
DS3LocationData("PW1: Large Titanite Shard - lizard under bridge near",
|
|
"Large Titanite Shard", lizard=True),
|
|
DS3LocationData("PW1: Twinkling Titanite - roots, lizard", "Twinkling Titanite",
|
|
lizard=True),
|
|
DS3LocationData("PW1: Twinkling Titanite - settlement roofs, lizard before hall",
|
|
"Twinkling Titanite", lizard=True),
|
|
DS3LocationData("PW1: Large Titanite Shard - settlement loop, lizard",
|
|
"Large Titanite Shard x2", lizard=True),
|
|
],
|
|
"Painted World of Ariandel (After Contraption)": [
|
|
DS3LocationData("PW2: Soul of Sister Friede", "Soul of Sister Friede", prominent=True,
|
|
boss=True),
|
|
DS3LocationData("PW2: Titanite Slab - boss drop", "Titanite Slab",
|
|
static='11,0:50004700::',
|
|
boss=True), # One-time drop after Friede Phase 2
|
|
DS3LocationData("PW2: Floating Chaos - NPC drop", "Floating Chaos", hostile_npc=True,
|
|
hidden=True), # Livid Pyromancer Dunnel drop (requires ember)
|
|
DS3LocationData("PW2: Prism Stone - pass, tree by beginning", "Prism Stone x10"),
|
|
DS3LocationData("PW2: Titanite Chunk - pass, cliff overlooking bonfire", "Titanite Chunk"),
|
|
DS3LocationData("PW2: Titanite Chunk - pass, by kickable tree", "Titanite Chunk"),
|
|
DS3LocationData("PW2: Follower Shield - pass, far cliffside", "Follower Shield"),
|
|
DS3LocationData("PW2: Large Titanite Shard - pass, just before B1",
|
|
"Large Titanite Shard x2"),
|
|
DS3LocationData("PW2: Quakestone Hammer - pass, side path near B1", "Quakestone Hammer"),
|
|
DS3LocationData("PW2: Ember - pass, central alcove", "Ember"),
|
|
DS3LocationData("PW2: Large Titanite Shard - pass, far side path",
|
|
"Large Titanite Shard x2"),
|
|
DS3LocationData("PW2: Soul of a Crestfallen Knight - pit edge #1",
|
|
"Soul of a Crestfallen Knight"),
|
|
DS3LocationData("PW2: Soul of a Crestfallen Knight - pit edge #2",
|
|
"Soul of a Crestfallen Knight"),
|
|
DS3LocationData("PW2: Large Soul of a Crestfallen Knight - pit, by tree",
|
|
"Large Soul of a Crestfallen Knight"),
|
|
DS3LocationData("PW2: Earth Seeker - pit cave", "Earth Seeker"),
|
|
DS3LocationData("PW2: Follower Torch - pass, far side path", "Follower Torch"),
|
|
DS3LocationData("PW2: Dung Pie - B1", "Dung Pie x2"),
|
|
DS3LocationData("PW2: Vilhelm's Helm", "Vilhelm's Helm"),
|
|
DS3LocationData("PW2: Vilhelm's Armor - B2, along wall", "Vilhelm's Armor"),
|
|
DS3LocationData("PW2: Vilhelm's Gauntlets - B2, along wall", "Vilhelm's Gauntlets"),
|
|
DS3LocationData("PW2: Vilhelm's Leggings - B2, along wall", "Vilhelm's Leggings"),
|
|
DS3LocationData("PW2: Blood Gem - B2, center", "Blood Gem"),
|
|
DS3LocationData("PW2: Pyromancer's Parting Flame - rotunda",
|
|
"Pyromancer's Parting Flame", hidden=True), # Behind illusory wall
|
|
DS3LocationData("PW2: Homeward Bone - rotunda", "Homeward Bone x2",
|
|
hidden=True), # Behind illusory wall
|
|
DS3LocationData("PW2: Twinkling Titanite - B3, lizard #1", "Twinkling Titanite",
|
|
lizard=True),
|
|
DS3LocationData("PW2: Twinkling Titanite - B3, lizard #2", "Twinkling Titanite",
|
|
lizard=True),
|
|
|
|
# Corvian Settler after killing Friede
|
|
DS3LocationData("PW1: Titanite Slab - Corvian", "Titanite Slab", npc=True),
|
|
|
|
# Shrine Handmaid after killing Sister Friede
|
|
DS3LocationData("FS: Ordained Hood - shop after killing PW2 boss", "Ordained Hood",
|
|
boss=True, shop=True),
|
|
DS3LocationData("FS: Ordained Dress - shop after killing PW2 boss", "Ordained Dress",
|
|
boss=True, shop=True),
|
|
DS3LocationData("FS: Ordained Trousers - shop after killing PW2 boss", "Ordained Trousers",
|
|
boss=True, shop=True),
|
|
],
|
|
"Dreg Heap": [
|
|
DS3LocationData("DH: Soul of the Demon Prince", "Soul of the Demon Prince",
|
|
prominent=True, boss=True),
|
|
DS3LocationData("DH: Siegbräu - Lapp", "Siegbräu", missable=True, drop=True,
|
|
npc=True), # Lapp (quest or kill)
|
|
DS3LocationData("DH: Flame Fan - swamp upper, NPC drop", "Flame Fan",
|
|
hostile_npc=True), # Desert Pyromancer Zoey drop
|
|
DS3LocationData("DH: Ember - castle, behind spire", "Ember"),
|
|
DS3LocationData("DH: Soul of a Weary Warrior - castle overhang", "Soul of a Weary Warrior"),
|
|
DS3LocationData("DH: Titanite Chunk - castle, up stairs", "Titanite Chunk"),
|
|
DS3LocationData("DH: Aquamarine Dagger - castle, up stairs", "Aquamarine Dagger"),
|
|
DS3LocationData("DH: Twinkling Titanite - library, chandelier", "Twinkling Titanite"),
|
|
DS3LocationData("DH: Murky Hand Scythe - library, behind bookshelves", "Murky Hand Scythe"),
|
|
DS3LocationData("DH: Divine Blessing - library, after drop", "Divine Blessing"),
|
|
DS3LocationData("DH: Ring of Steel Protection+3 - ledge before church",
|
|
"Ring of Steel Protection+3"),
|
|
DS3LocationData("DH: Soul of a Crestfallen Knight - church, altar",
|
|
"Soul of a Crestfallen Knight"),
|
|
DS3LocationData("DH: Rusted Coin - behind fountain after church", "Rusted Coin x2"),
|
|
DS3LocationData("DH: Titanite Chunk - pantry, first room", "Titanite Chunk"),
|
|
DS3LocationData("DH: Murky Longstaff - pantry, last room", "Murky Longstaff"),
|
|
DS3LocationData("DH: Ember - pantry, behind crates just before upstairs", "Ember",
|
|
hidden=True), # Behind illusory wall
|
|
DS3LocationData("DH: Great Soul Dregs - pantry upstairs", "Great Soul Dregs",
|
|
hidden=True), # Behind illusory wall
|
|
DS3LocationData("DH: Covetous Silver Serpent Ring+3 - pantry upstairs, drop down",
|
|
"Covetous Silver Serpent Ring+3", hidden=True), # Behind illusory wall
|
|
DS3LocationData("DH: Titanite Chunk - path from church, by pillar", "Titanite Chunk"),
|
|
DS3LocationData("DH: Homeward Bone - end of path from church", "Homeward Bone x3"),
|
|
DS3LocationData("DH: Lightning Urn - wall outside church", "Lightning Urn x4"),
|
|
DS3LocationData("DH: Projected Heal - parapets balcony", "Projected Heal"),
|
|
DS3LocationData("DH: Large Soul of a Weary Warrior - parapets, hall",
|
|
"Large Soul of a Weary Warrior"),
|
|
DS3LocationData("DH: Lothric War Banner - parapets, end of hall", "Lothric War Banner"),
|
|
DS3LocationData("DH: Titanite Scale - library, back of room", "Titanite Scale"),
|
|
DS3LocationData("DH: Black Firebomb - ruins, up windmill from bonfire", "Black Firebomb x4"),
|
|
DS3LocationData("DH: Titanite Chunk - ruins, path from bonfire", "Titanite Chunk"),
|
|
DS3LocationData("DH: Twinkling Titanite - ruins, root near bonfire", "Twinkling Titanite"),
|
|
DS3LocationData("DH: Desert Pyromancer Garb - ruins, by shack near cliff",
|
|
"Desert Pyromancer Garb"),
|
|
DS3LocationData("DH: Titanite Chunk - ruins, by far shack", "Titanite Chunk x2"),
|
|
DS3LocationData("DH: Giant Door Shield - ruins, path below far shack", "Giant Door Shield"),
|
|
DS3LocationData("DH: Ember - ruins, alcove before swamp", "Ember"),
|
|
DS3LocationData("DH: Desert Pyromancer Gloves - swamp, far right",
|
|
"Desert Pyromancer Gloves"),
|
|
DS3LocationData("DH: Desert Pyromancer Skirt - swamp right, by roots",
|
|
"Desert Pyromancer Skirt"),
|
|
DS3LocationData("DH: Titanite Scale - swamp upper, drop and jump into tower",
|
|
"Titanite Scale"),
|
|
DS3LocationData("DH: Purple Moss Clump - swamp shack", "Purple Moss Clump x4"),
|
|
DS3LocationData("DH: Ring of Favor+3 - swamp right, up root", "Ring of Favor+3"),
|
|
DS3LocationData("DH: Titanite Chunk - swamp right, drop partway up root", "Titanite Chunk"),
|
|
DS3LocationData("DH: Large Soul of a Weary Warrior - swamp, under overhang",
|
|
"Large Soul of a Weary Warrior"),
|
|
DS3LocationData("DH: Titanite Slab - swamp, path under overhang", "Titanite Slab"),
|
|
DS3LocationData("DH: Titanite Chunk - swamp, along buildings", "Titanite Chunk"),
|
|
DS3LocationData("DH: Loincloth - swamp, left edge", "Loincloth"),
|
|
DS3LocationData("DH: Titanite Chunk - swamp, path to upper", "Titanite Chunk"),
|
|
DS3LocationData("DH: Large Soul of a Weary Warrior - swamp center",
|
|
"Large Soul of a Weary Warrior"),
|
|
DS3LocationData("DH: Harald Curved Greatsword - swamp left, under root",
|
|
"Harald Curved Greatsword"),
|
|
DS3LocationData("DH: Homeward Bone - swamp left, on root", "Homeward Bone"),
|
|
DS3LocationData("DH: Prism Stone - swamp upper, tunnel start", "Prism Stone x6"),
|
|
DS3LocationData("DH: Desert Pyromancer Hood - swamp upper, tunnel end",
|
|
"Desert Pyromancer Hood"),
|
|
DS3LocationData("DH: Twinkling Titanite - swamp upper, drop onto root",
|
|
"Twinkling Titanite", hidden=True), # Hidden fall
|
|
DS3LocationData("DH: Divine Blessing - swamp upper, building roof", "Divine Blessing"),
|
|
DS3LocationData("DH: Ember - ruins, alcove on cliff", "Ember", hidden=True), # Hidden fall
|
|
DS3LocationData("DH: Small Envoy Banner - boss drop", "Small Envoy Banner",
|
|
progression=True, boss=True),
|
|
DS3LocationData("DH: Twinkling Titanite - ruins, alcove on cliff, mob drop",
|
|
"Twinkling Titanite x2", drop=True,
|
|
hidden=True), # Hidden fall, also guaranteed drop from killing normal-looking pilgrim
|
|
DS3LocationData("DH: Twinkling Titanite - swamp upper, mob drop on roof",
|
|
"Twinkling Titanite x2", drop=True,
|
|
hidden=True), # Hidden fall, also guaranteed drop from killing normal-looking pilgrim
|
|
DS3LocationData("DH: Twinkling Titanite - path after church, mob drop",
|
|
"Twinkling Titanite x2", drop=True,
|
|
hidden=True), # Guaranteed drop from killing normal-looking pilgrim
|
|
|
|
# Stone-humped Hag's shop
|
|
DS3LocationData("DH: Splitleaf Greatsword - shop", "Splitleaf Greatsword", shop=True),
|
|
DS3LocationData("DH: Divine Blessing - shop", "Divine Blessing", shop=True),
|
|
DS3LocationData("DH: Hidden Blessing - shop", "Hidden Blessing", shop=True),
|
|
DS3LocationData("DH: Rusted Gold Coin - shop", "Rusted Gold Coin", shop=True),
|
|
DS3LocationData("DH: Ember - shop", "Ember", shop=True),
|
|
],
|
|
"Ringed City": [
|
|
DS3LocationData("RC: Titanite Slab - mid boss drop", "Titanite Slab",
|
|
prominent=True, boss=True), # Halflight drop, only once
|
|
DS3LocationData("RC: Filianore's Spear Ornament - mid boss drop",
|
|
"Filianore's Spear Ornament"),
|
|
DS3LocationData("RC: Soul of Darkeater Midir", "Soul of Darkeater Midir", prominent=True,
|
|
boss=True),
|
|
DS3LocationData("RC: Sacred Chime of Filianore - ashes, NPC drop",
|
|
"Sacred Chime of Filianore",
|
|
hostile_npc=True), # Shira (kill or quest)
|
|
DS3LocationData("RC: Titanite Slab - ashes, NPC drop", "Titanite Slab",
|
|
hostile_npc=True), # Shira (kill or quest)
|
|
DS3LocationData("RC: Crucifix of the Mad King - ashes, NPC drop",
|
|
"Crucifix of the Mad King", hostile_npc=True), # Shira drop
|
|
DS3LocationData("RC: Ledo's Great Hammer - streets high, opposite building, NPC drop",
|
|
"Ledo's Great Hammer", hostile_npc=True,
|
|
missable=True), # Silver Knight Ledo drop, doesn't invade once Halflight
|
|
# is defeated
|
|
DS3LocationData("RC: Wolf Ring+3 - street gardens, NPC drop", "Wolf Ring+3",
|
|
hostile_npc=True,
|
|
missable=True), # Alva drop, doesn't invade once Halflight is defeated
|
|
DS3LocationData("RC: Blindfold Mask - grave, NPC drop", "Blindfold Mask",
|
|
hostile_npc=True), # Moaning Knight drop
|
|
DS3LocationData("RC: Titanite Scale - wall top, behind spawn", "Titanite Scale"), # wrong
|
|
DS3LocationData("RC: Ruin Helm - wall top, under stairs to bonfire", "Ruin Helm"),
|
|
DS3LocationData("RC: Ruin Armor - wall top, under stairs to bonfire", "Ruin Armor"),
|
|
DS3LocationData("RC: Ruin Gauntlets - wall top, under stairs to bonfire", "Ruin Gauntlets"),
|
|
DS3LocationData("RC: Ruin Leggings - wall top, under stairs to bonfire", "Ruin Leggings"),
|
|
DS3LocationData("RC: Budding Green Blossom - wall top, in flower cluster",
|
|
"Budding Green Blossom x2"),
|
|
DS3LocationData("RC: Titanite Chunk - wall top, among graves", "Titanite Chunk x2"),
|
|
DS3LocationData("RC: Ember - wall top, by statue", "Ember"),
|
|
DS3LocationData("RC: Budding Green Blossom - wall top, flowers by stairs",
|
|
"Budding Green Blossom x2"),
|
|
DS3LocationData("RC: Hidden Blessing - wall top, tomb under platform", "Hidden Blessing",
|
|
hidden=True), # hidden fall
|
|
DS3LocationData("RC: Soul of a Crestfallen Knight - wall top, under drop",
|
|
"Soul of a Crestfallen Knight", hidden=True), # hidden fall
|
|
DS3LocationData("RC: Large Soul of a Weary Warrior - wall top, right of small tomb",
|
|
"Large Soul of a Weary Warrior"),
|
|
DS3LocationData("RC: Ember - wall upper, balcony", "Ember"),
|
|
DS3LocationData("RC: Purging Stone - wall top, by door to upper", "Purging Stone x2"),
|
|
DS3LocationData("RC: Hollow Gem - wall upper, path to tower", "Hollow Gem"),
|
|
DS3LocationData("RC: Titanite Chunk - wall upper, courtyard alcove", "Titanite Chunk"),
|
|
DS3LocationData("RC: Twinkling Titanite - wall tower, jump from chandelier",
|
|
"Twinkling Titanite", hidden=True), # Hidden fall
|
|
DS3LocationData("RC: Shriving Stone - wall tower, bottom floor center", "Shriving Stone"),
|
|
DS3LocationData("RC: Shira's Crown - Shira's room after killing ashes NPC", "Shira's Crown",
|
|
hidden=True), # Have to return to a cleared area
|
|
DS3LocationData("RC: Shira's Armor - Shira's room after killing ashes NPC", "Shira's Armor",
|
|
hidden=True), # Have to return to a cleared area
|
|
DS3LocationData("RC: Shira's Gloves - Shira's room after killing ashes NPC",
|
|
"Shira's Gloves", hidden=True), # Have to return to a cleared area
|
|
DS3LocationData("RC: Shira's Trousers - Shira's room after killing ashes NPC",
|
|
"Shira's Trousers", hidden=True), # Have to return to a cleared area
|
|
DS3LocationData("RC: Mossfruit - streets near left, path to garden", "Mossfruit x2"),
|
|
DS3LocationData("RC: Large Soul of a Crestfallen Knight - streets, far stairs",
|
|
"Large Soul of a Crestfallen Knight"),
|
|
DS3LocationData("RC: Ringed Knight Spear - streets, down far right hall",
|
|
"Ringed Knight Spear"),
|
|
DS3LocationData("RC: Black Witch Hat - streets garden", "Black Witch Hat",
|
|
hostile_npc=True), # Alva
|
|
DS3LocationData("RC: Black Witch Garb - streets garden", "Black Witch Garb",
|
|
hostile_npc=True), # Alva
|
|
DS3LocationData("RC: Black Witch Wrappings - streets garden", "Black Witch Wrappings",
|
|
hostile_npc=True), # Alva
|
|
DS3LocationData("RC: Black Witch Trousers - streets garden", "Black Witch Trousers",
|
|
hostile_npc=True), # Alva
|
|
DS3LocationData("RC: Dragonhead Shield - streets monument, across bridge",
|
|
"Dragonhead Shield", hidden=True), # "Show Your Humanity" puzzle
|
|
DS3LocationData("RC: Titanite Chunk - streets, near left drop", "Titanite Chunk",
|
|
hidden=True), # Hidden fall
|
|
DS3LocationData("RC: Mossfruit - streets, far left alcove", "Mossfruit x2"),
|
|
DS3LocationData("RC: Large Soul of a Crestfallen Knight - streets monument, across bridge",
|
|
"Large Soul of a Crestfallen Knight",
|
|
hidden=True), # "Show Your Humanity" puzzle
|
|
DS3LocationData("RC: Covetous Gold Serpent Ring+3 - streets, by Lapp",
|
|
"Covetous Gold Serpent Ring+3"),
|
|
DS3LocationData("RC: Titanite Chunk - streets high, building opposite", "Titanite Chunk x2"),
|
|
DS3LocationData("RC: Dark Gem - swamp near, by stairs", "Dark Gem"),
|
|
DS3LocationData("RC: Prism Stone - swamp near, railing by bonfire", "Prism Stone x4"),
|
|
DS3LocationData("RC: Ringed Knight Straight Sword - swamp near, tower on peninsula",
|
|
"Ringed Knight Straight Sword"),
|
|
DS3LocationData("RC: Havel's Ring+3 - streets high, drop from building opposite",
|
|
"Havel's Ring+3", hidden=True), # Hidden fall
|
|
DS3LocationData("RC: Titanite Chunk - swamp near left, by spire top", "Titanite Chunk"),
|
|
DS3LocationData("RC: Twinkling Titanite - swamp near left", "Twinkling Titanite"),
|
|
DS3LocationData("RC: Soul of a Weary Warrior - swamp center", "Soul of a Weary Warrior"),
|
|
DS3LocationData("RC: Preacher's Right Arm - swamp near right, by tower",
|
|
"Preacher's Right Arm"),
|
|
DS3LocationData("RC: Rubbish - swamp far, by crystal", "Rubbish"),
|
|
DS3LocationData("RC: Titanite Chunk - swamp near right, behind rock",
|
|
"Titanite Chunk"),
|
|
DS3LocationData("RC: Black Witch Veil - swamp near right, by sunken church",
|
|
"Black Witch Veil"),
|
|
DS3LocationData("RC: Twinkling Titanite - swamp near right, on sunken church",
|
|
"Twinkling Titanite"),
|
|
DS3LocationData("RC: Soul of a Crestfallen Knight - swamp near left, nook",
|
|
"Soul of a Crestfallen Knight"),
|
|
DS3LocationData("RC: White Preacher Head - swamp near, nook right of stairs",
|
|
"White Preacher Head"),
|
|
DS3LocationData("RC: Titanite Scale - swamp far, by miniboss", "Titanite Scale"),
|
|
DS3LocationData("RC: Dragonhead Greatshield - lower cliff, under bridge",
|
|
"Dragonhead Greatshield"),
|
|
DS3LocationData("RC: Titanite Scale - lower cliff, path under bridge", "Titanite Scale x2"),
|
|
DS3LocationData("RC: Rubbish - lower cliff, middle", "Rubbish"),
|
|
DS3LocationData("RC: Large Soul of a Weary Warrior - lower cliff, end",
|
|
"Large Soul of a Weary Warrior"),
|
|
DS3LocationData("RC: Titanite Scale - lower cliff, first alcove", "Titanite Scale x2"),
|
|
DS3LocationData("RC: Titanite Scale - lower cliff, lower path", "Titanite Scale"),
|
|
DS3LocationData("RC: Lightning Gem - grave, room after first drop", "Lightning Gem"),
|
|
DS3LocationData("RC: Blessed Gem - grave, down lowest stairs", "Blessed Gem"),
|
|
DS3LocationData("RC: Simple Gem - grave, up stairs after first drop", "Simple Gem"),
|
|
DS3LocationData("RC: Large Soul of a Weary Warrior - wall lower, past two illusory walls",
|
|
"Large Soul of a Weary Warrior", hidden=True),
|
|
DS3LocationData("RC: Lightning Arrow - wall lower, past three illusory walls",
|
|
"Lightning Arrow"),
|
|
DS3LocationData("RC: Chloranthy Ring+3 - wall hidden, drop onto statue",
|
|
"Chloranthy Ring+3", hidden=True), # Hidden fall
|
|
DS3LocationData("RC: Ember - wall hidden, statue room", "Ember"),
|
|
DS3LocationData("RC: Filianore's Spear Ornament - wall hidden, by ladder",
|
|
"Filianore's Spear Ornament"),
|
|
DS3LocationData("RC: Antiquated Plain Garb - wall hidden, before boss",
|
|
"Antiquated Plain Garb"),
|
|
DS3LocationData("RC: Violet Wrappings - wall hidden, before boss", "Violet Wrappings"),
|
|
DS3LocationData("RC: Soul of a Weary Warrior - lower cliff, by first alcove",
|
|
"Soul of a Weary Warrior"),
|
|
DS3LocationData("RC: Twinkling Titanite - church path, left of boss door",
|
|
"Twinkling Titanite x2"),
|
|
DS3LocationData("RC: Budding Green Blossom - church path", "Budding Green Blossom x3"),
|
|
DS3LocationData("RC: Titanite Chunk - swamp center, peninsula edge", "Titanite Chunk"),
|
|
DS3LocationData("RC: Large Soul of a Weary Warrior - swamp center, by peninsula",
|
|
"Large Soul of a Weary Warrior"),
|
|
DS3LocationData("RC: Soul of a Weary Warrior - swamp right, by sunken church",
|
|
"Soul of a Weary Warrior"),
|
|
DS3LocationData("RC: Titanite Scale - upper cliff, bridge", "Titanite Scale"),
|
|
DS3LocationData("RC: Soul of a Crestfallen Knight - swamp far, behind crystal",
|
|
"Soul of a Crestfallen Knight"),
|
|
DS3LocationData("RC: White Birch Bow - swamp far left, up hill", "White Birch Bow"),
|
|
DS3LocationData("RC: Titanite Chunk - swamp far left, up hill", "Titanite Chunk"),
|
|
DS3LocationData("RC: Young White Branch - swamp far left, by white tree #1",
|
|
"Young White Branch"),
|
|
DS3LocationData("RC: Young White Branch - swamp far left, by white tree #2",
|
|
"Young White Branch"),
|
|
DS3LocationData("RC: Young White Branch - swamp far left, by white tree #3",
|
|
"Young White Branch"),
|
|
DS3LocationData("RC: Ringed Knight Paired Greatswords - church path, mob drop",
|
|
"Ringed Knight Paired Greatswords", drop=True,
|
|
hidden=True), # Guaranteed drop from a normal-looking Ringed Knight
|
|
DS3LocationData("RC: Hidden Blessing - swamp center, mob drop", "Hidden Blessing",
|
|
drop=True, hidden=True), # Guaranteed drop from Judicator
|
|
DS3LocationData("RC: Divine Blessing - wall top, mob drop", "Divine Blessing",
|
|
drop=True, hidden=True), # Guaranteed drop from Judicator
|
|
DS3LocationData("RC: Divine Blessing - streets monument, mob drop", "Divine Blessing",
|
|
drop=True,
|
|
hidden=True), # Guaranteed drop from Judicator, "Show Your Humanity" puzzle
|
|
DS3LocationData("RC: Ring of the Evil Eye+3 - grave, mimic", "Ring of the Evil Eye+3",
|
|
mimic=True),
|
|
DS3LocationData("RC: Iron Dragonslayer Helm - swamp far, miniboss drop",
|
|
"Iron Dragonslayer Helm", miniboss=True),
|
|
DS3LocationData("RC: Iron Dragonslayer Armor - swamp far, miniboss drop",
|
|
"Iron Dragonslayer Armor", miniboss=True),
|
|
DS3LocationData("RC: Iron Dragonslayer Gauntlets - swamp far, miniboss drop",
|
|
"Iron Dragonslayer Gauntlets", miniboss=True),
|
|
DS3LocationData("RC: Iron Dragonslayer Leggings - swamp far, miniboss drop",
|
|
"Iron Dragonslayer Leggings", miniboss=True),
|
|
DS3LocationData("RC: Church Guardian Shiv - swamp far left, in building",
|
|
"Church Guardian Shiv"),
|
|
DS3LocationData("RC: Spears of the Church - hidden boss drop", "Spears of the Church",
|
|
boss=True), # Midir drop
|
|
DS3LocationData("RC: Ritual Spear Fragment - church path", "Ritual Spear Fragment"),
|
|
DS3LocationData("RC: Titanite Scale - swamp far, lagoon entrance", "Titanite Scale"),
|
|
DS3LocationData("RC: Twinkling Titanite - grave, lizard past first drop",
|
|
"Twinkling Titanite", lizard=True),
|
|
DS3LocationData("RC: Titanite Scale - grave, lizard past first drop", "Titanite Scale",
|
|
lizard=True),
|
|
DS3LocationData("RC: Twinkling Titanite - streets high, lizard", "Twinkling Titanite x2",
|
|
lizard=True),
|
|
DS3LocationData("RC: Titanite Scale - wall lower, lizard", "Titanite Scale", lizard=True),
|
|
DS3LocationData("RC: Twinkling Titanite - wall top, lizard on side path",
|
|
"Twinkling Titanite", lizard=True),
|
|
DS3LocationData("RC: Soul of Slave Knight Gael", "Soul of Slave Knight Gael",
|
|
prominent=True, boss=True),
|
|
DS3LocationData("RC: Blood of the Dark Soul - end boss drop", "Blood of the Dark Soul"),
|
|
DS3LocationData("RC: Titanite Slab - ashes, mob drop", "Titanite Slab",
|
|
drop=True,
|
|
hidden=True), # Guaranteed drop from normal-looking Ringed Knight
|
|
|
|
# Lapp
|
|
DS3LocationData("RC: Siegbräu - Lapp", "Siegbräu", missable=True,
|
|
npc=True), # Lapp (quest)
|
|
# Quest or Shrine Handmaiden after death
|
|
DS3LocationData("RC: Lapp's Helm - Lapp", "Lapp's Helm", npc=True, shop=True),
|
|
DS3LocationData("RC: Lapp's Armor - Lapp", "Lapp's Armor", npc=True, shop=True),
|
|
DS3LocationData("RC: Lapp's Gauntlets - Lapp", "Lapp's Gauntlets", npc=True, shop=True),
|
|
DS3LocationData("RC: Lapp's Leggings - Lapp", "Lapp's Leggings", npc=True, shop=True),
|
|
],
|
|
|
|
# Unlockable shops. We only bother creating a "region" for these for shops that are locked
|
|
# behind keys and always have items available either through the shop or through the NPC's
|
|
# ashes.
|
|
"Greirat's Shop": [
|
|
DS3LocationData("FS: Blue Tearstone Ring - Greirat", "Blue Tearstone Ring",
|
|
static='01,0:50006120::', npc=True),
|
|
DS3LocationData("FS: Ember - Greirat", "Ember", static="99,0:-1:110000,120000,70000110:",
|
|
shop=True, npc=True),
|
|
|
|
# Undead Settlement rewards
|
|
DS3LocationData("FS: Divine Blessing - Greirat from US", "Divine Blessing",
|
|
static='99,0:-1:110000,120000,70000150,70000175:', missable=True,
|
|
shop=True, npc=True),
|
|
DS3LocationData("FS: Ember - Greirat from US", "Ember",
|
|
static='99,0:-1:110000,120000,70000150,70000175:', missable=True,
|
|
shop=True, npc=True),
|
|
|
|
# Irityhll rewards
|
|
DS3LocationData("FS: Divine Blessing - Greirat from IBV", "Divine Blessing",
|
|
static='99,0:-1:110000,120000,70000151,70000176:', missable=True,
|
|
shop=True, npc=True),
|
|
DS3LocationData("FS: Hidden Blessing - Greirat from IBV", "Hidden Blessing",
|
|
static='99,0:-1:110000,120000,70000151,70000176:', missable=True,
|
|
shop=True, npc=True),
|
|
DS3LocationData("FS: Titanite Scale - Greirat from IBV", "Titanite Scale",
|
|
static='99,0:-1:110000,120000,70000151,70000176:', missable=True,
|
|
shop=True, npc=True),
|
|
DS3LocationData("FS: Twinkling Titanite - Greirat from IBV", "Twinkling Titanite",
|
|
static='99,0:-1:110000,120000,70000151,70000176:', missable=True,
|
|
shop=True, npc=True),
|
|
|
|
# Lothric rewards (from Shrine Handmaid)
|
|
DS3LocationData("FS: Ember - shop for Greirat's Ashes", "Twinkling Titanite",
|
|
static='99,0:-1:110000,120000,70000152,70000177:', missable=True,
|
|
shop=True, npc=True),
|
|
],
|
|
"Karla's Shop": [
|
|
DS3LocationData("FS: Affinity - Karla", "Affinity", shop=True, npc=True),
|
|
DS3LocationData("FS: Dark Edge - Karla", "Dark Edge", shop=True, npc=True),
|
|
|
|
# Quelana Pyromancy Tome
|
|
DS3LocationData("FS: Firestorm - Karla for Quelana Tome", "Firestorm", missable=True,
|
|
shop=True, npc=True),
|
|
DS3LocationData("FS: Rapport - Karla for Quelana Tome", "Rapport", missable=True,
|
|
shop=True, npc=True),
|
|
DS3LocationData("FS: Fire Whip - Karla for Quelana Tome", "Fire Whip", missable=True,
|
|
shop=True, npc=True),
|
|
|
|
# Grave Warden Pyromancy Tome
|
|
DS3LocationData("FS: Black Flame - Karla for Grave Warden Tome", "Black Flame",
|
|
missable=True, shop=True, npc=True),
|
|
DS3LocationData("FS: Black Fire Orb - Karla for Grave Warden Tome", "Black Fire Orb",
|
|
missable=True, shop=True, npc=True),
|
|
|
|
# Deep Braille Divine Tome. This can also be given to Irina, but it'll fail her quest
|
|
DS3LocationData("FS: Gnaw - Karla for Deep Braille Tome", "Gnaw", missable=True,
|
|
npc=True, shop=True),
|
|
DS3LocationData("FS: Deep Protection - Karla for Deep Braille Tome", "Deep Protection",
|
|
missable=True, npc=True, shop=True),
|
|
|
|
# Londor Braille Divine Tome. This can also be given to Irina, but it'll fail her quest
|
|
DS3LocationData("FS: Vow of Silence - Karla for Londor Tome", "Vow of Silence",
|
|
missable=True, npc=True, shop=True),
|
|
DS3LocationData("FS: Dark Blade - Karla for Londor Tome", "Dark Blade", missable=True,
|
|
npc=True, shop=True),
|
|
DS3LocationData("FS: Dead Again - Karla for Londor Tome", "Dead Again", missable=True,
|
|
npc=True, shop=True),
|
|
|
|
# Drops on death. Missable because the player would have to decide between killing her or
|
|
# seeing everything she sells.
|
|
DS3LocationData("FS: Karla's Pointed Hat - kill Karla", "Karla's Pointed Hat",
|
|
static='07,0:50006150::', missable=True, drop=True, npc=True),
|
|
DS3LocationData("FS: Karla's Coat - kill Karla", "Karla's Coat",
|
|
static='07,0:50006150::', missable=True, drop=True, npc=True),
|
|
DS3LocationData("FS: Karla's Gloves - kill Karla", "Karla's Gloves",
|
|
static='07,0:50006150::', missable=True, drop=True, npc=True),
|
|
DS3LocationData("FS: Karla's Trousers - kill Karla", "Karla's Trousers",
|
|
static='07,0:50006150::', missable=True, drop=True, npc=True),
|
|
],
|
|
}
|
|
|
|
for i, region in enumerate(region_order):
|
|
for location in location_tables[region]: location.region_value = i
|
|
|
|
for region in [
|
|
"Painted World of Ariandel (Before Contraption)",
|
|
"Painted World of Ariandel (After Contraption)",
|
|
"Dreg Heap",
|
|
"Ringed City",
|
|
]:
|
|
for location in location_tables[region]:
|
|
location.dlc = True
|
|
|
|
for region in [
|
|
"Firelink Shrine Bell Tower",
|
|
"Greirat's Shop",
|
|
"Karla's Shop"
|
|
]:
|
|
for location in location_tables[region]:
|
|
location.conditional = True
|
|
|
|
location_name_groups: Dict[str, Set[str]] = {
|
|
# We could insert these locations automatically with setdefault(), but we set them up explicitly
|
|
# instead so we can choose the ordering.
|
|
"Prominent": set(),
|
|
"Progression": set(),
|
|
"Boss Rewards": set(),
|
|
"Miniboss Rewards": set(),
|
|
"Mimic Rewards": set(),
|
|
"Hostile NPC Rewards": set(),
|
|
"Friendly NPC Rewards": set(),
|
|
"Small Crystal Lizards": set(),
|
|
"Upgrade": set(),
|
|
"Small Souls": set(),
|
|
"Boss Souls": set(),
|
|
"Unique": set(),
|
|
"Healing": set(),
|
|
"Miscellaneous": set(),
|
|
"Hidden": set(),
|
|
"Weapons": set(),
|
|
"Shields": set(),
|
|
"Armor": set(),
|
|
"Rings": set(),
|
|
"Spells": set(),
|
|
}
|
|
|
|
location_descriptions = {
|
|
"Prominent": "A small number of locations that are in very obvious locations. Mostly boss " + \
|
|
"drops. Ideal for setting as priority locations.",
|
|
"Progression": "Locations that contain items in vanilla which unlock other locations.",
|
|
"Boss Rewards": "Boss drops. Does not include soul transfusions or shop items.",
|
|
"Miniboss Rewards": "Miniboss drops. Only includes enemies considered minibosses by the " + \
|
|
"enemy randomizer.",
|
|
"Mimic Rewards": "Drops from enemies that are mimics in vanilla.",
|
|
"Hostile NPC Rewards": "Drops from NPCs that are hostile to you. This includes scripted " + \
|
|
"invaders and initially-friendly NPCs that must be fought as part of their quest.",
|
|
"Friendly NPC Rewards": "Items given by friendly NPCs as part of their quests or from " + \
|
|
"non-violent interaction.",
|
|
"Upgrade": "Locations that contain upgrade items in vanilla, including titanite, gems, and " + \
|
|
"Shriving Stones.",
|
|
"Small Souls": "Locations that contain soul items in vanilla, not including boss souls.",
|
|
"Boss Souls": "Locations that contain boss souls in vanilla, as well as Soul of Rosaria.",
|
|
"Unique": "Locations that contain items in vanilla that are unique per NG cycle, such as " + \
|
|
"scrolls, keys, ashes, and so on. Doesn't cover equipment, spells, or souls.",
|
|
"Healing": "Locations that contain Undead Bone Shards and Estus Shards in vanilla.",
|
|
"Miscellaneous": "Locations that contain generic stackable items in vanilla, such as arrows, " +
|
|
"firebombs, buffs, and so on.",
|
|
"Hidden": "Locations that are particularly difficult to find, such as behind illusory " + \
|
|
"walls, down hidden drops, and so on. Does not include large locations like Untended " + \
|
|
"Graves or Archdragon Peak.",
|
|
"Weapons": "Locations that contain weapons in vanilla.",
|
|
"Shields": "Locations that contain shields in vanilla.",
|
|
"Armor": "Locations that contain armor in vanilla.",
|
|
"Rings": "Locations that contain rings in vanilla.",
|
|
"Spells": "Locations that contain spells in vanilla.",
|
|
}
|
|
|
|
location_dictionary: Dict[str, DS3LocationData] = {}
|
|
for location_name, location_table in location_tables.items():
|
|
location_dictionary.update({location_data.name: location_data for location_data in location_table})
|
|
|
|
for location_data in location_table:
|
|
if not location_data.is_event:
|
|
for group_name in location_data.location_groups():
|
|
location_name_groups[group_name].add(location_data.name)
|
|
|
|
# Allow entire locations to be added to location sets.
|
|
if not location_name.endswith(" Shop"):
|
|
location_name_groups[location_name] = set([
|
|
location_data.name for location_data in location_table
|
|
if not location_data.is_event
|
|
])
|
|
|
|
location_name_groups["Painted World of Ariandel"] = (
|
|
location_name_groups["Painted World of Ariandel (Before Contraption)"]
|
|
.union(location_name_groups["Painted World of Ariandel (After Contraption)"])
|
|
)
|
|
del location_name_groups["Painted World of Ariandel (Before Contraption)"]
|
|
del location_name_groups["Painted World of Ariandel (After Contraption)"]
|
|
|
|
location_name_groups["DLC"] = (
|
|
location_name_groups["Painted World of Ariandel"]
|
|
.union(location_name_groups["Dreg Heap"])
|
|
.union(location_name_groups["Ringed City"])
|
|
)
|