Add keyItems, regions and rules

This commit is contained in:
Marechal-l
2022-06-06 22:05:47 +02:00
parent ee786935dd
commit f61c9585ea
5 changed files with 762 additions and 125 deletions

View File

@@ -1,11 +1,6 @@
import typing
from BaseClasses import Item
from worlds.dark_souls_3.data.locations_data import dictionary_table
class ItemData(typing.NamedTuple):
code: int
progression: bool
from worlds.dark_souls_3.data.items_data import item_dictionary_table
class DarkSouls3Item(Item):
@@ -13,4 +8,4 @@ class DarkSouls3Item(Item):
@staticmethod
def get_item_name_to_id() -> typing.Dict[str, int]:
return dictionary_table
return item_dictionary_table

View File

View File

@@ -2,12 +2,20 @@
import json
import os
from random import randint
from .Options import dark_souls_options # the options we defined earlier
from .Items import DarkSouls3Item # data used below to add items to the World
from .Locations import DarkSouls3Location # same as above
from .data.locations_data import dictionary_table
from .data.items_data import weapons_table, item_dictionary_table
from .data.locations_data import key_items_list, dictionary_table, cemetery_of_ash_table, fire_link_shrine_table, \
high_wall_of_lothric, \
undead_settlement_table, road_of_sacrifice_table, consumed_king_garden_table, cathedral_of_the_deep_table, \
farron_keep_table, catacombs_of_carthus_table, smouldering_lake_table, irithyll_of_the_boreal_valley_table, \
irithyll_dungeon_table, profaned_capital_table, anor_londo_table, lothric_castle_table, grand_archives_table, \
untended_graves_table, archdragon_peak_table, firelink_shrine_bell_tower_table
from ..AutoWorld import World
from BaseClasses import MultiWorld, Location, Region, Item, RegionType
from BaseClasses import MultiWorld, Location, Region, Item, RegionType, Entrance
from ..generic.Rules import set_rule
class DarkSouls3World(World):
@@ -20,35 +28,196 @@ class DarkSouls3World(World):
def create_item(self, name: str) -> Item:
data = self.item_name_to_id[name]
return DarkSouls3Item(name, False, data, self.player)
return DarkSouls3Item(name, name in key_items_list, data, self.player)
def create_regions(self):
menu_region = Region("Menu", RegionType.Generic, "Menu", self.player)
"""
cemetery_of_ash_region = Region("Cemetery Of Ash", RegionType.Generic, "Cemetery Of Ash", self.player)
firelink_shrine_region = Region("Firelink Shrine", RegionType.Generic, "Firelink Shrine", self.player)
high_wall_of_lothric_region = Region("High Wall of Lothric", RegionType.Generic, "High Wall of Lothric", self.player)
undead_settlement_region = Region("Undead Settlement", RegionType.Generic, "Undead Settlement", self.player)
road_of_sacrifices_region = Region("Road of Sacrifices", RegionType.Generic, "Road of Sacrifices", self.player)
cathedral_of_the_deep_region = Region("Cathedral of the Deep", RegionType.Generic, "Cathedral of the Deep", self.player)
farron_keep_region = Region("Farron Keep", RegionType.Generic, "Farron Keep", self.player)
catacombs_of_carthus_region = Region("Catacombs of Carthus", RegionType.Generic, "Catacombs of Carthus", self.player)
smouldering_lake_region = Region("Smouldering Lake", RegionType.Generic, "Smouldering Lake", self.player)
irithyll_of_the_boreal_valley_region = Region("Irithyll of the Boreal Valley", RegionType.Generic, "Irithyll of the Boreal Valley", self.player)
irithyll_dungeon_region = Region("Irithyll Dungeon", RegionType.Generic, "Irithyll Dungeon", self.player)
profaned_capital_region = Region("Profaned Capital", RegionType.Generic, "Profaned Capital", self.player)
anor_londo_region = Region("Anor Londo", RegionType.Generic, "Anor Londo", self.player)
lothric_castle_region = Region("Lothric Castle", RegionType.Generic, "Lothric Castle", self.player)
consumed_king_garden_region = Region("Consumed King's Garden", RegionType.Generic, "Consumed King's Garden", self.player)
grand_archives_region = Region("Grand Archives", RegionType.Generic, "Grand Archives", self.player)
untended_graves_region = Region("Untended Graves", RegionType.Generic, "Untended Graves", self.player)
archdragon_peak_region = Region("Archdragon Peak", RegionType.Generic, "Archdragon Peak", self.player)
"""
self.world.regions.append(menu_region)
cemetery_of_ash_region = Region("Cemetery Of Ash", RegionType.Generic, "Cemetery Of Ash", self.player)
for name, address in self.location_name_to_id.items():
location = Location(self.player, name, address, menu_region)
menu_region.locations.append(location)
self.world.regions += [menu_region]
if cemetery_of_ash_table.get(name):
location = Location(self.player, name, address, cemetery_of_ash_region)
cemetery_of_ash_region.locations.append(location)
self.world.regions.append(cemetery_of_ash_region)
firelink_shrine_region = Region("Firelink Shrine", RegionType.Generic, "Firelink Shrine", self.player)
for name, address in self.location_name_to_id.items():
if fire_link_shrine_table.get(name):
location = Location(self.player, name, address, firelink_shrine_region)
firelink_shrine_region.locations.append(location)
self.world.regions.append(firelink_shrine_region)
firelink_shrine_bell_tower_region = Region("Firelink Shrine Bell Tower", RegionType.Generic, "Firelink Shrine Bell Tower", self.player)
for name, address in self.location_name_to_id.items():
if firelink_shrine_bell_tower_table.get(name):
location = Location(self.player, name, address, firelink_shrine_bell_tower_region)
firelink_shrine_bell_tower_region.locations.append(location)
self.world.regions.append(firelink_shrine_bell_tower_region)
high_wall_of_lothric_region = Region("High Wall of Lothric", RegionType.Generic, "High Wall of Lothric", self.player)
for name, address in self.location_name_to_id.items():
if high_wall_of_lothric.get(name):
location = Location(self.player, name, address, high_wall_of_lothric_region)
high_wall_of_lothric_region.locations.append(location)
self.world.regions.append(high_wall_of_lothric_region)
undead_settlement_region = Region("Undead Settlement", RegionType.Generic, "Undead Settlement", self.player)
for name, address in self.location_name_to_id.items():
if undead_settlement_table.get(name):
location = Location(self.player, name, address, undead_settlement_region)
undead_settlement_region.locations.append(location)
self.world.regions.append(undead_settlement_region)
road_of_sacrifices_region = Region("Road of Sacrifices", RegionType.Generic, "Road of Sacrifices", self.player)
for name, address in self.location_name_to_id.items():
if road_of_sacrifice_table.get(name):
location = Location(self.player, name, address, road_of_sacrifices_region)
road_of_sacrifices_region.locations.append(location)
self.world.regions.append(road_of_sacrifices_region)
consumed_king_garden_region = Region("Consumed King's Garden", RegionType.Generic, "Consumed King's Garden",
self.player)
for name, address in self.location_name_to_id.items():
if consumed_king_garden_table.get(name):
location = Location(self.player, name, address, consumed_king_garden_region)
consumed_king_garden_region.locations.append(location)
self.world.regions.append(consumed_king_garden_region)
cathedral_of_the_deep_region = Region("Cathedral of the Deep", RegionType.Generic, "Cathedral of the Deep",
self.player)
for name, address in self.location_name_to_id.items():
if cathedral_of_the_deep_table.get(name):
location = Location(self.player, name, address, cathedral_of_the_deep_region)
cathedral_of_the_deep_region.locations.append(location)
self.world.regions.append(cathedral_of_the_deep_region)
farron_keep_region = Region("Farron Keep", RegionType.Generic, "Farron Keep", self.player)
for name, address in self.location_name_to_id.items():
if farron_keep_table.get(name):
location = Location(self.player, name, address, farron_keep_region)
farron_keep_region.locations.append(location)
self.world.regions.append(farron_keep_region)
catacombs_of_carthus_region = Region("Catacombs of Carthus", RegionType.Generic, "Catacombs of Carthus", self.player)
for name, address in self.location_name_to_id.items():
if catacombs_of_carthus_table.get(name):
location = Location(self.player, name, address, catacombs_of_carthus_region)
catacombs_of_carthus_region.locations.append(location)
self.world.regions.append(catacombs_of_carthus_region)
smouldering_lake_region = Region("Smouldering Lake", RegionType.Generic, "Smouldering Lake", self.player)
for name, address in self.location_name_to_id.items():
if smouldering_lake_table.get(name):
location = Location(self.player, name, address, smouldering_lake_region)
smouldering_lake_region.locations.append(location)
self.world.regions.append(smouldering_lake_region)
irithyll_of_the_boreal_valley_region = Region("Irithyll of the Boreal Valley", RegionType.Generic,
"Irithyll of the Boreal Valley", self.player)
for name, address in self.location_name_to_id.items():
if irithyll_of_the_boreal_valley_table.get(name):
location = Location(self.player, name, address, irithyll_of_the_boreal_valley_region)
irithyll_of_the_boreal_valley_region.locations.append(location)
self.world.regions.append(irithyll_of_the_boreal_valley_region)
irithyll_dungeon_region = Region("Irithyll Dungeon", RegionType.Generic, "Irithyll Dungeon", self.player)
for name, address in self.location_name_to_id.items():
if irithyll_dungeon_table.get(name):
location = Location(self.player, name, address, irithyll_dungeon_region)
irithyll_dungeon_region.locations.append(location)
self.world.regions.append(irithyll_dungeon_region)
profaned_capital_region = Region("Profaned Capital", RegionType.Generic, "Profaned Capital", self.player)
for name, address in self.location_name_to_id.items():
if profaned_capital_table.get(name):
location = Location(self.player, name, address, profaned_capital_region)
profaned_capital_region.locations.append(location)
self.world.regions.append(profaned_capital_region)
anor_londo_region = Region("Anor Londo", RegionType.Generic, "Anor Londo", self.player)
for name, address in self.location_name_to_id.items():
if anor_londo_table.get(name):
location = Location(self.player, name, address, anor_londo_region)
anor_londo_region.locations.append(location)
self.world.regions.append(anor_londo_region)
lothric_castle_region = Region("Lothric Castle", RegionType.Generic, "Lothric Castle", self.player)
for name, address in self.location_name_to_id.items():
if lothric_castle_table.get(name):
location = Location(self.player, name, address, lothric_castle_region)
lothric_castle_region.locations.append(location)
self.world.regions.append(lothric_castle_region)
grand_archives_region = Region("Grand Archives", RegionType.Generic, "Grand Archives", self.player)
for name, address in self.location_name_to_id.items():
if grand_archives_table.get(name):
location = Location(self.player, name, address, grand_archives_region)
grand_archives_region.locations.append(location)
self.world.regions.append(grand_archives_region)
untended_graves_region = Region("Untended Graves", RegionType.Generic, "Untended Graves", self.player)
for name, address in self.location_name_to_id.items():
if untended_graves_table.get(name):
location = Location(self.player, name, address, untended_graves_region)
untended_graves_region.locations.append(location)
self.world.regions.append(untended_graves_region)
archdragon_peak_region = Region("Archdragon Peak", RegionType.Generic, "Archdragon Peak", self.player)
for name, address in self.location_name_to_id.items():
if archdragon_peak_table.get(name):
location = Location(self.player, name, address, archdragon_peak_region)
archdragon_peak_region.locations.append(location)
self.world.regions.append(archdragon_peak_region)
kiln_of_the_first_flame_region = Region("Kiln Of The First Flame", RegionType.Generic,
"Kiln Of The First Flame", self.player)
self.world.regions.append(kiln_of_the_first_flame_region)
menu_region.exits.append(Entrance(self.player, "New Game", menu_region))
self.world.get_entrance("New Game", self.player).connect(cemetery_of_ash_region)
cemetery_of_ash_region.exits.append(Entrance(self.player, "Goto Firelink Shrine", cemetery_of_ash_region))
self.world.get_entrance("Goto Firelink Shrine", self.player).connect(firelink_shrine_region)
firelink_shrine_region.exits.append(Entrance(self.player, "Goto High Wall of Lothric", firelink_shrine_region))
firelink_shrine_region.exits.append(Entrance(self.player, "Goto Kiln Of The First Flame", firelink_shrine_region))
firelink_shrine_region.exits.append(Entrance(self.player, "Goto Bell Tower", firelink_shrine_region))
self.world.get_entrance("Goto High Wall of Lothric", self.player).connect(high_wall_of_lothric_region)
self.world.get_entrance("Goto Kiln Of The First Flame", self.player).connect(kiln_of_the_first_flame_region)
self.world.get_entrance("Goto Bell Tower", self.player).connect(firelink_shrine_bell_tower_region)
high_wall_of_lothric_region.exits.append(Entrance(self.player, "Goto Undead Settlement", high_wall_of_lothric_region))
high_wall_of_lothric_region.exits.append(Entrance(self.player, "Goto Lothric Castle", high_wall_of_lothric_region))
self.world.get_entrance("Goto Undead Settlement", self.player).connect(undead_settlement_region)
self.world.get_entrance("Goto Lothric Castle", self.player).connect(lothric_castle_region)
undead_settlement_region.exits.append(Entrance(self.player, "Goto Road Of Sacrifices", undead_settlement_region))
self.world.get_entrance("Goto Road Of Sacrifices", self.player).connect(road_of_sacrifices_region)
road_of_sacrifices_region.exits.append(Entrance(self.player, "Goto Cathedral", road_of_sacrifices_region))
road_of_sacrifices_region.exits.append(Entrance(self.player, "Goto Farron keep", road_of_sacrifices_region))
self.world.get_entrance("Goto Cathedral", self.player).connect(cathedral_of_the_deep_region)
self.world.get_entrance("Goto Farron keep", self.player).connect(farron_keep_region)
farron_keep_region.exits.append(Entrance(self.player, "Goto Carthus catacombs", farron_keep_region))
self.world.get_entrance("Goto Carthus catacombs", self.player).connect(catacombs_of_carthus_region)
catacombs_of_carthus_region.exits.append(Entrance(self.player, "Goto Irithyll of the boreal", catacombs_of_carthus_region))
catacombs_of_carthus_region.exits.append(Entrance(self.player, "Goto Smouldering Lake", catacombs_of_carthus_region))
self.world.get_entrance("Goto Irithyll of the boreal", self.player).connect(irithyll_of_the_boreal_valley_region)
self.world.get_entrance("Goto Smouldering Lake", self.player).connect(smouldering_lake_region)
irithyll_of_the_boreal_valley_region.exits.append(Entrance(self.player, "Goto Irithyll dungeon", irithyll_of_the_boreal_valley_region))
irithyll_of_the_boreal_valley_region.exits.append(Entrance(self.player, "Goto Anor Londo", irithyll_of_the_boreal_valley_region))
self.world.get_entrance("Goto Irithyll dungeon", self.player).connect(irithyll_dungeon_region)
self.world.get_entrance("Goto Anor Londo", self.player).connect(anor_londo_region)
irithyll_dungeon_region.exits.append(Entrance(self.player, "Goto Archdragon peak", irithyll_dungeon_region))
irithyll_dungeon_region.exits.append(Entrance(self.player, "Goto Profaned capital", irithyll_dungeon_region))
self.world.get_entrance("Goto Archdragon peak", self.player).connect(archdragon_peak_region)
self.world.get_entrance("Goto Profaned capital", self.player).connect(profaned_capital_region)
lothric_castle_region.exits.append(Entrance(self.player, "Goto Consumed King Garden", lothric_castle_region))
lothric_castle_region.exits.append(Entrance(self.player, "Goto Grand Archives", lothric_castle_region))
self.world.get_entrance("Goto Consumed King Garden", self.player).connect(consumed_king_garden_region)
self.world.get_entrance("Goto Grand Archives", self.player).connect(grand_archives_region)
consumed_king_garden_region.exits.append(Entrance(self.player, "Goto Untended Graves", consumed_king_garden_region))
self.world.get_entrance("Goto Untended Graves", self.player).connect(untended_graves_region)
def create_items(self):
for name, address in self.item_name_to_id.items():
@@ -57,20 +226,45 @@ class DarkSouls3World(World):
def generate_early(self):
pass
def set_rules(self):
pass
def set_rules(self) -> None:
set_rule(self.world.get_entrance("Goto Bell Tower", self.player),
lambda state: state.has("Mortician's Ashes", self.player))
set_rule(self.world.get_entrance("Goto Undead Settlement", self.player),
lambda state: state.has("Small Lothric Banner", self.player))
set_rule(self.world.get_entrance("Goto Lothric Castle", self.player),
lambda state: state.has("Basin of Vows", self.player))
set_rule(self.world.get_entrance("Goto Irithyll of the boreal", self.player),
lambda state: state.has("Small Doll", self.player))
set_rule(self.world.get_entrance("Goto Archdragon peak", self.player),
lambda state: state.has("Path of the Dragon Gesture", self.player))
set_rule(self.world.get_entrance("Goto Profaned capital", self.player),
lambda state: state.has("Storm Ruler", self.player))
set_rule(self.world.get_entrance("Goto Grand Archives", self.player),
lambda state: state.has("Grand Archives Key", self.player))
set_rule(self.world.get_entrance("Goto Kiln Of The First Flame", self.player), lambda state:
state.has("Cinders of a Lord - Abyss Watcher", self.player) and
state.has("Cinders of a Lord - Yhorm the Giant", self.player) and
state.has("Cinders of a Lord - Aldrich", self.player) and
state.has("Cinders of a Lord - Lothric Prince", self.player))
def generate_basic(self):
pass
self.world.completion_condition[self.player] = lambda state: \
state.has("Cinders of a Lord - Abyss Watcher", self.player) and\
state.has("Cinders of a Lord - Yhorm the Giant", self.player) and\
state.has("Cinders of a Lord - Aldrich", self.player) and\
state.has("Cinders of a Lord - Lothric Prince", self.player)
def generate_output(self, output_directory: str):
location_list = list()
for region in self.world.get_regions(self.player):
print(region)
locations_dict = {}
for location in self.world.get_filled_locations(self.player):
if location.item.player == self.player:
location_list.append(location.item.code)
print(location)
else:
location_list.append(0)
locations_dict[dictionary_table[location.name]] = 0
data = {
"options": {
@@ -81,8 +275,7 @@ class DarkSouls3World(World):
"seed": self.world.seed_name, # to verify the server's multiworld
"slot": self.world.player_name[self.player], # to connect to server
"base_id": self.base_id, # to merge location and items lists
"locations": location_list,
"itemsAddress": list(dictionary_table.values())
"locations": json.dumps(locations_dict)
}
# generate the file
@@ -109,5 +302,8 @@ class DarkSouls3World(World):
# The following two dicts are required for the generation to know which
# items exist. They could be generated from json or something else. They can
# include events, but don't have to since events will be placed manually.
item_name_to_id = {name: id for id, name in enumerate(DarkSouls3Item.get_item_name_to_id(), base_id)}
item_name_to_id = {name: id for id, name in enumerate(DarkSouls3Location.get_item_name_to_id(), base_id)}
location_name_to_id = {name: id for id, name in enumerate(DarkSouls3Location.get_item_name_to_id(), base_id)}

View File

@@ -0,0 +1,473 @@
# Regular expression to parse the Python list https://regex101.com/r/XdtiLR/2
# List of location https://darksouls3.wiki.fextralife.com/Locations
cemetery_of_ash_table = {
}
fire_link_shrine_table = {
"Fire Keeper Robe": 0x140D9CE8,
"Fire Keeper Gloves": 0x140DA0D0,
"Fire Keeper Skirt": 0x140DA4B8,
"Estus Ring": 0x200050DC,
"Fire Keeper Soul": 0x40000186,
"Covetous Silver Serpent Ring": 0x20004FB0,
"Broken Straight Sword": 0x001EF9B0, # Multiple
"East-West Shield": 0x0142B930,
}
high_wall_of_lothric = {
"Deep Battle Axe": 0x0006AFA54,
"Club": 0x007A1200,
"Deserter Trousers": 0x126265B8,
"Claymore": 0x005BDBA0,
"Binoculars": 0x40000173,
"Longbow": 0x00D689E0,
"Mail Breaker": 0x002DEDD0,
"Broadsword": 0x001ED2A0,
"Silver Eagle Kite Shield": 0x014418C0,
"Astora's Straight Sword": 0x002191C0,
"Cell Key": 0x400007DA,
"Rapier": 0x002E14E0,
"Lucerne": 0x0098BD90,
"Small Lothric Banner": 0x40000836
}
undead_settlement_table = {
"Small Leather Shield": 0x01315410,
"Whip": 0x00B71B00,
"Reinforced Club": 0x007A8730,
"Blue Wooden Shield": 0x0143F1B0,
"Cleric Hat": 0x11D905C0,
"Cleric Blue Robe": 0x11D909A8,
"Cleric Gloves": 0x11D90D90,
"Cleric Trousers": 0x11D91178,
"Mortician's Ashes": 0x4000083B, # Shop
"Caestus": 0x00A7FFD0,
"Plank Shield": 0x01346150,
"Flame Stoneplate Ring": 0x20004E52,
"Caduceus Round Shield": 0x01341330,
"Fire Clutch Ring": 0x2000501E,
"Partizan": 0x0089C970,
"Red Hilted Halberd": 0x009AB960,
"Saint's Talisman": 0x00CACA10,
"Irithyll Straight Sword": 0x0020A760,
"Large Club": 0x007AFC60,
"Northern Helm": 0x116E3600,
"Northern Armor": 0x116E39E8,
"Northern Gloves": 0x116E3DD0,
"Northern Trousers": 0x116E41B8,
"Flynn's Ring": 0x2000503C,
"Mirrah Chain Mail": 0x14B575A8,
"Mirrah Chain Gloves": 0x14B57990,
"Mirrah Chain Leggings": 0x14B57D78,
"Chloranthy Ring": 0x20004E2A,
"Loincloth": 0x148F57D8,
"Wargod Wooden Shield": 0x0144DC10,
"Loretta's Bone": 0x40000846,
}
road_of_sacrifice_table = {
"Brigand Twindaggers": 0x00F50E60,
"Brigand Hood": 0x148009E0,
"Brigand Armor": 0x14800DC8,
"Brigand Gauntlets": 0x148011B0,
"Brigand Trousers": 0x14801598,
"Butcher Knife": 0x006BE130,
"Brigand Axe": 0x006B1DE0,
"Braille Divine Tome of Carim": 0x40000847, # Shop
"Morne's Ring": 0x20004F1A,
"Twin Dragon Greatshield": 0x01513820,
"Heretic's Staff": 0x00C8F550,
"Sorcerer Hood": 0x11C9C380,
"Sorcerer Robe": 0x11C9C768,
"Sorcerer Gloves": 0x11C9CB50,
"Sorcerer Trousers": 0x11C9CF38,
"Sage Ring": 0x20004F38,
"Fallen Knight Helm": 0x1121EAC0,
"Fallen Knight Armor": 0x1121EEA8,
"Fallen Knight Gauntlets": 0x1121F290,
"Fallen Knight Trousers": 0x1121F678,
"Conjurator Hood": 0x149E8E60,
"Conjurator Robe": 0x149E9248,
"Conjurator Manchettes": 0x149E9630,
"Conjurator Boots": 0x149E9A18,
"Great Swamp Pyromancy Tome": 0x4000084F, # Shop
"Great Club": 0x007B4A80,
"Exile Greatsword": 0x005DD770,
"Farron Coal ": 0x40000837, # Shop
"Sellsword Twinblades": 0x00F42400,
"Sellsword Helm": 0x11481060,
"Sellsword Armor": 0x11481448,
"Sellsword Gauntlet": 0x11481830,
"Sellsword Trousers": 0x11481C18,
"Golden Falcon Shield": 0x01354BB0,
"Herald Helm": 0x114FB180,
"Herald Armor": 0x114FB568,
"Herald Gloves": 0x114FB950,
"Herald Trousers": 0x114FBD38,
"Grass Crest Shield": 0x01437C80,
}
cathedral_of_the_deep_table = {
"Paladin's Ashes": 0x4000083D, #Shop
"Spider Shield": 0x01435570,
"Crest Shield": 0x01430750,
"Notched Whip": 0x00B7DE50,
"Astora Greatsword": 0x005C9EF0,
"Executioner's Greatsword": 0x0021DFE0,
"Curse Ward Greatshield": 0x01518640,
"Saint-tree Bellvine": 0x00C9DFB0,
"Poisonbite Ring": 0x20004E8E,
"Lloyd's Sword Ring": 0x200050B4,
"Seek Guidance": 0x40360420,
"Aldrich's Sapphire": 0x20005096,
"Deep Braille Divine Tome": 0x40000860, # Shop
"Saint Bident": 0x008C1360,
"Maiden Hood": 0x14BD12E0,
"Maiden Robe": 0x14BD16C8,
"Maiden Gloves": 0x14BD1AB0,
"Maiden Skirt": 0x14BD1E98,
"Drang Armor": 0x154E0C28,
"Drang Gauntlets": 0x154E1010,
"Drang Shoes": 0x154E13F8,
"Drang Hammers": 0x00F61FD0,
"Deep Ring": 0x20004F60,
"Archdeacon White Crown": 0x13EF1480,
"Archdeacon Holy Garb": 0x13EF1868,
"Archdeacon Skirt": 0x13EF2038,
"Spiked Shield": 0x01426B10,
"Barbed Straight Sword": 0x0021B8D0,
"Arbalest": 0x00D662D0,
"Helm of Thorns": 0x15B8D800,
"Armor of Thorns": 0x15B8DBE8,
"Gauntlets of Thorns": 0x15B8DFD0,
"Leggings of Thorns": 0x15B8E3B8,
"Small Doll": 0x400007D5,
}
farron_keep_table = {
"Ragged Mask": 0x148F4C20,
"Iron Flesh": 0x40251430,
"Golden Scroll": 0x4000085C,
"Antiquated Dress": 0x15D76068,
"Antiquated Gloves": 0x15D76450,
"Antiquated Skirt": 0x15D76838,
"Sunlight Talisman": 0x00CA54E0,
"Wolf's Blood Swordgrass": 0x4000016E,
"Greatsword": 0x005C50D0,
"Sage's Coal": 0x40000838, # Shop #Unique
"Stone Parma": 0x01443FD0,
"Sage's Scroll": 0x40000854,
"Crown of Dusk": 0x15D75C80,
"Lingering Dragoncrest Ring": 0x20004F2E,
"Pharis's Hat": 0x1487AB00,
"Black Bow of Pharis": 0x00D7E970,
"Dreamchaser's Ashes": 0x4000083C, # Shop #Unique
"Great Axe": 0x006B9310, # Multiple
"Dragon Crest Shield": 0x01432E60,
"Lightning Spear": 0x40362B30,
"Atonement": 0x4039ADA0,
"Great Magic Weapon": 0x40140118,
"Cinders of a Lord - Abyss Watcher": 0x4000084B,
}
catacombs_of_carthus_table = {
"Carthus Pyromancy Tome": 0x40000850,
"Carthus Milkring": 0x20004FE2,
"Grave Warden's Ashes": 0x4000083E,
"Knight Slayer's Ring": 0x20005000,
"Carthus Bloodring": 0x200050FA,
"Grave Warden Pyromancy Tome": 0x40000853,
"Old Sage's Blindfold": 0x11945BA0,
"Witch's Ring": 0x20004F11,
"Black Blade": 0x004CC070,
}
smouldering_lake_table = {
"Shield of Want": 0x0144B500,
"Speckled Stoneplate Ring": 0x20004E7A,
"Dragonrider Bow": 0x00D6B0F0,
"Lightning Stake": 0x40389C30,
"Izalith Pyromancy Tome": 0x40000851,
"Black Knight Sword": 0x005F5E10,
"Quelana Pyromancy Tome": 0x40000852,
"Toxic Mist": 0x4024F108,
"White Hair Talisman": 0x00CAF120,
"Izalith Staff": 0x00C96A80,
"Sacred Flame": 0x40284880,
"Fume Ultra Greatsword": 0x0060E4B0,
"Black Iron Greatshield": 0x0150EA00,
}
irithyll_of_the_boreal_valley_table = {
"Dorhys' Gnawing": 0x40363EB8,
"Witchtree Branch": 0x00C94370,
"Magic Clutch Ring": 0x2000500A,
"Ring of the Sun's First Born": 0x20004F1B,
"Roster of Knights": 0x4000006C,
"Chameleon": 0x4014ACF8,
"Pontiff's Right Eye": 0x2000510E,
"Yorshka's Spear": 0x008C3A70,
"Great Heal": 0x40356FB0,
"Smough's Great Hammer": 0x007E30B0,
"Leo Ring": 0x20004EE8,
"Greirat's Ashes": 0x4000083F,
"Excrement-covered Ashes": 0x40000862,
"Dark Stoneplate Ring": 0x20004E70,
"Easterner's Ashes": 0x40000868,
"Painting Guardian's Curved Sword": 0x003E6890,
"Painting Guardian Hood": 0x156C8CC0,
"Painting Guardian Gown": 0x156C90A8,
"Painting Guardian Gloves": 0x156C9490,
"Painting Guardian Waistcloth": 0x156C9878,
"Dragonslayer Greatbow": 0x00CF8500,
"Reversal Ring": 0x20005104,
"Brass Helm": 0x1501BD00,
"Brass Armor": 0x1501C0E8,
"Brass Gauntlets": 0x1501C4D0,
"Brass Leggings": 0x1501C8B8,
"Ring of Favor": 0x20004E3E,
"Golden Ritual Spear": 0x00C83200,
}
irithyll_dungeon_table = {
"Bellowing Dragoncrest Ring": 0x20004F07,
"Jailbreaker's Key": 0x400007D7,
"Prisoner Chief's Ashes": 0x40000863,
"Old Sorcerer Hat": 0x1496ED40,
"Old Sorcerer Coat": 0x1496F128,
"Old Sorcerer Gauntlets": 0x1496F510,
"Old Sorcerer Boots": 0x1496F8F8,
"Great Magic Shield": 0x40144F38,
"Dragon Torso Stone": 0x4000017A,
"Lightning Blade": 0x4036C770,
"Profaned Coal": 0x4000083A,
"Xanthous Ashes": 0x40000864,
"Old Cell Key": 0x400007DC,
"Pickaxe": 0x007DE290,
"Profaned Flame": 0x402575D8,
"Covetous Gold Serpent Ring": 0x20004FA6,
"Jailer's Key Ring": 0x400007D8,
"Dusk Crown Ring": 0x20004F4C,
"Dark Clutch Ring": 0x20005028,
"Path of the Dragon Gesture": 0x40002346,
}
profaned_capital_table = {
"Cursebite Ring": 0x20004E98,
"Court Sorcerer Hood": 0x11BA8140,
"Court Sorcerer Robe": 0x11BA8528,
"Court Sorcerer Gloves": 0x11BA8910,
"Court Sorcerer Trousers": 0x11BA8CF8,
"Wrath of the Gods": 0x4035E0F8,
"Logan's Scroll": 0x40000855,
"Eleonora": 0x006CCB90,
"Court Sorcerer's Staff": 0x00C91C60,
"Greatshield of Glory": 0x01515F30,
"Storm Ruler": 0x006132D0,
"Cinders of a Lord - Yhorm the Giant": 0x4000084D,
}
anor_londo_table = {
"Giant's Coal": 0x40000839,
"Sun Princess Ring": 0x20004FBA,
"Aldrich's Ruby": 0x2000508C,
"Cinders of a Lord - Aldrich": 0x4000084C,
}
lothric_castle_table = {
"Hood of Prayer": 0x13AA6A60,
"Robe of Prayer": 0x13AA6E48,
"Skirt of Prayer": 0x13AA7618,
"Sacred Bloom Shield": 0x013572C0,
"Winged Knight Helm": 0x12EBAE40,
"Winged Knight Armor": 0x12EBB228,
"Winged Knight Gauntlets": 0x12EBB610,
"Winged Knight Leggings": 0x12EBB9F8,
"Greatlance": 0x008A8CC0,
"Sniper Crossbow": 0x00D83790,
"Spirit Tree Crest Shield": 0x014466E0,
"Red Tearstone Ring": 0x20004ECA,
"Caitha's Chime": 0x00CA06C0,
"Braille Divine Tome of Lothric": 0x40000848,
"Knight's Ring": 0x20004FEC,
"Sunlight Straight Sword": 0x00203230,
"Grand Archives Key": 0x400007DE,
}
consumed_king_garden_table = {
"Dragonscale Ring": 0x2000515E,
"Shadow Mask": 0x14D3F640,
"Shadow Garb": 0x14D3FA28,
"Shadow Gauntlets": 0x14D3FE10,
"Shadow Leggings": 0x14D401F8,
"Claw": 0x00A7D8C0,
}
grand_archives_table = {
"Avelyn": 0x00D6FF10,
"Witch's Locks": 0x00B7B740,
"Power Within": 0x40253B40,
"Scholar Ring": 0x20004EB6,
"Soul Stream": 0x4018B820,
"Fleshbite Ring": 0x20004EA2,
"Crystal Chime": 0x00CA2DD0,
"Golden Wing Crest Shield": 0x0143CAA0,
"Sage's Crystal Staff": 0x00C8CE40,
"Onikiri and Ubadachi": 0x00F58390,
"Hunter's Ring": 0x20004FF6,
"Divine Pillars of Light": 0x4038C340,
"Cinders of a Lord - Lothric Prince": 0x4000084E,
}
untended_graves_table = {
"Ashen Estus Ring": 0x200050E6,
"Black Knight Glaive": 0x009AE070,
"Hornet Ring": 0x20004F9C,
"Chaos Blade": 0x004C9960,
"Blacksmith Hammer": 0x007E57C0,
"Eyes of a Fire Keeper": 0x4000085A,
"Coiled Sword Fragment": 0x4000015F,
}
archdragon_peak_table = {
"Lightning Clutch Ring": 0x20005014,
"Ancient Dragon Greatshield": 0x013599D0,
"Ring of Steel Protection": 0x20004E48,
"Calamity Ring": 0x20005078,
"Drakeblood Greatsword": 0x00609690,
"Dragonslayer Spear": 0x008CAFA0,
"Thunder Stoneplate Ring": 0x20004E5C,
"Great Magic Barrier": 0x40365628,
"Dragon Chaser's Ashes": 0x40000867,
"Twinkling Dragon Torso Stone": 0x40000184,
"Dragonslayer Helm": 0x158B1140,
"Dragonslayer Armor": 0x158B1528,
"Dragonslayer Gauntlets": 0x158B1910,
"Dragonslayer Leggings": 0x158B1CF8,
"Ricard's Rapier": 0x002E3BF0,
}
heals_table = {
"Ashen Estus Flask": 0x400000BF,
"Estus Flask Shard #1": 0x4000085D,
"Estus Flask Shard #2": 0x4000085D,
"Estus Flask Shard #3": 0x4000085D,
"Estus Flask Shard #4": 0x4000085D,
"Estus Flask Shard #5": 0x4000085D,
"Estus Flask Shard #6": 0x4000085D,
"Estus Flask Shard #7": 0x4000085D,
"Estus Flask Shard #8": 0x4000085D,
"Estus Flask Shard #9": 0x4000085D,
"Estus Flask Shard #10": 0x4000085D,
"Estus Flask Shard #11": 0x4000085D,
"Estus Flask Shard #12": 0x4000085D,
"Undead Bone Shard #1": 0x4000085F,
"Undead Bone Shard #2": 0x4000085F,
"Undead Bone Shard #3": 0x4000085F,
"Undead Bone Shard #4": 0x4000085F,
"Undead Bone Shard #5": 0x4000085F,
"Undead Bone Shard #6": 0x4000085F,
"Undead Bone Shard #7": 0x4000085F,
"Undead Bone Shard #8": 0x4000085F,
"Undead Bone Shard #9": 0x4000085F,
}
weapons_table = {
0x0006AFA54,
0x007A1200,
0x005BDBA0,
0x00D689E0,
0x002DEDD0,
0x001ED2A0,
0x002E14E0,
0x0098BD90,
0x00B71B00,
0x007A8730,
0x00A7FFD0,
0x0089C970,
0x009AB960,
0x0020A760,
0x007AFC60,
0x00F50E60,
0x006BE130,
0x006B1DE0,
0x007B4A80,
0x005DD770,
0x00F42400,
0x00B7DE50,
0x005C9EF0,
0x0021DFE0,
0x00F61FD0,
0x0021B8D0,
0x00D662D0,
0x4000016E,
0x005C50D0,
0x00D7E970,
0x006B9310,
0x004CC070,
0x00D6B0F0,
0x005F5E10,
0x0060E4B0,
0x008C3A70,
0x007E30B0,
0x003E6890,
0x00CF8500,
0x00C83200,
0x007DE290,
0x00C91C60,
0x006132D0,
0x008A8CC0,
0x00D83790,
0x00203230,
0x00A7D8C0,
0x00D6FF10,
0x00C8CE40,
0x00F58390,
0x009AE070,
0x004C9960,
0x007E57C0,
0x00609690,
0x008CAFA0,
0x002E3BF0
}
item_dictionary_table = {**cemetery_of_ash_table, ** fire_link_shrine_table, **high_wall_of_lothric, **undead_settlement_table, **road_of_sacrifice_table,
**cathedral_of_the_deep_table, **farron_keep_table, **catacombs_of_carthus_table, **smouldering_lake_table, **irithyll_of_the_boreal_valley_table,
**irithyll_dungeon_table, **profaned_capital_table, **anor_londo_table, **lothric_castle_table, **consumed_king_garden_table,
**grand_archives_table, **untended_graves_table, **archdragon_peak_table}

View File

@@ -1,29 +1,21 @@
class LocationData:
@staticmethod
def create_dictionary_table():
pass
# Regular expression to parse the Python list https://regex101.com/r/XdtiLR/2
# List of location https://darksouls3.wiki.fextralife.com/Locations
cemetery_of_ash_table = {
"Broken Straight Sword": 0x001EF9B0, # Multiple
"East-West Shield": 0x0142B930,
"Ashen Estus Flask": 0x400000BF, # Flask
}
fire_link_shrine_table = {
"Covetous Silver Serpent Ring": 0x20004FB0,
"Broken Straight Sword": 0x001EF9B0, # Multiple
"East-West Shield": 0x0142B930,
}
firelink_shrine_bell_tower_table = {
"Fire Keeper Robe": 0x140D9CE8,
"Fire Keeper Gloves": 0x140DA0D0,
"Fire Keeper Skirt": 0x140DA4B8,
"Estus Ring": 0x200050DC,
"Fire Keeper Soul": 0x40000186,
"Covetous Silver Serpent Ring": 0x20004FB0,
"Seed of a Giant Tree #1": 0x400001B8, # Multiple
"Estus Flask Shard #1": 0x4000085D, # Multiple #Flask
"Fire Keeper Soul": 0x40000186
}
high_wall_of_lothric = {
@@ -39,10 +31,9 @@ high_wall_of_lothric = {
"Astora's Straight Sword": 0x002191C0,
"Cell Key": 0x400007DA,
"Rapier": 0x002E14E0,
"Ring of Sacrifice #1": 0x20004EF2, # Multiple
"Lucerne": 0x0098BD90,
"Estus Flask Shard #2": 0x4000085D, # Multiple #Flask
"Refined Gem #1": 0x40000460, # Shop #Multiple
"Small Lothric Banner": 0x40000836,
"Basin of Vows": 0x40000845
}
undead_settlement_table = {
@@ -56,7 +47,7 @@ undead_settlement_table = {
"Cleric Gloves": 0x11D90D90,
"Cleric Trousers": 0x11D91178,
"Mortician's Ashes": 0x4000083B, # Shop
"Mortician's Ashes": 0x4000083B, # Key item for Grave Key for Firelink Towerlocations
"Caestus": 0x00A7FFD0,
"Plank Shield": 0x01346150,
"Flame Stoneplate Ring": 0x20004E52,
@@ -68,7 +59,6 @@ undead_settlement_table = {
"Red Hilted Halberd": 0x009AB960,
"Saint's Talisman": 0x00CACA10,
"Irithyll Straight Sword": 0x0020A760,
"Fire Gem #1": 0x4000047E, # Shop #Multiple
"Large Club": 0x007AFC60,
"Northern Helm": 0x116E3600,
"Northern Armor": 0x116E39E8,
@@ -83,12 +73,9 @@ undead_settlement_table = {
"Wargod Wooden Shield": 0x0144DC10,
"Loretta's Bone": 0x40000846,
"Estus Flask Shard #3": 0x4000085D, # Multiple #Flask
"Undead Bone Shard #1": 0x4000085F, # Multiple #Flask
}
road_of_sacrifice_table = {
"Shriving Stone": 0x400004E2, # Shop #Multiple
"Brigand Twindaggers": 0x00F50E60,
"Brigand Hood": 0x148009E0,
@@ -134,7 +121,6 @@ road_of_sacrifice_table = {
"Sellsword Trousers": 0x11481C18,
"Golden Falcon Shield": 0x01354BB0,
"Ring of Sacrifice #2": 0x20004EF2, # Multiple
"Herald Helm": 0x114FB180,
"Herald Armor": 0x114FB568,
@@ -142,7 +128,6 @@ road_of_sacrifice_table = {
"Herald Trousers": 0x114FBD38,
"Grass Crest Shield": 0x01437C80,
"Estus Flask Shard #4": 0x4000085D, # Multiple #Flask
}
cathedral_of_the_deep_table = {
@@ -156,7 +141,6 @@ cathedral_of_the_deep_table = {
"Saint-tree Bellvine": 0x00C9DFB0,
"Poisonbite Ring": 0x20004E8E,
"Deep Gem #1": 0x4000049C, #Shop #Multiple
"Lloyd's Sword Ring": 0x200050B4,
"Seek Guidance": 0x40360420,
@@ -171,7 +155,6 @@ cathedral_of_the_deep_table = {
"Drang Armor": 0x154E0C28,
"Drang Gauntlets": 0x154E1010,
"Drang Shoes": 0x154E13F8,
"Pale Tongue #1": 0x40000175,
"Drang Hammers": 0x00F61FD0,
"Deep Ring": 0x20004F60,
@@ -182,15 +165,11 @@ cathedral_of_the_deep_table = {
"Barbed Straight Sword": 0x0021B8D0,
"Arbalest": 0x00D662D0,
"Pale Tongue #2": 0x40000175,
"Blessed Gem #1": 0x400004CE,
"Helm of Thorns": 0x15B8D800,
"Armor of Thorns": 0x15B8DBE8,
"Gauntlets of Thorns": 0x15B8DFD0,
"Leggings of Thorns": 0x15B8E3B8,
"Estus Flask Shard #5": 0x4000085D, # Multiple #Flask
"Undead Bone Shard #2": 0x4000085F, # Multiple #Flask
"Small Doll": 0x400007D5,
}
farron_keep_table = {
@@ -213,7 +192,6 @@ farron_keep_table = {
"Sage's Coal": 0x40000838, # Shop #Unique
"Stone Parma": 0x01443FD0,
"Poison Gem #1": 0x400004B0, # Shop #Multiple
"Sage's Scroll": 0x40000854,
"Crown of Dusk": 0x15D75C80,
@@ -225,37 +203,28 @@ farron_keep_table = {
"Great Axe": 0x006B9310, # Multiple
"Dragon Crest Shield": 0x01432E60,
"Lightning Spear": 0x40362B30,
"Shriving Stone #2": 0x400004E2, # Shop #Multiple
"Atonement": 0x4039ADA0,
"Hollow Gem #1": 0x400004D8, # Shop #Multiple
"Great Magic Weapon": 0x40140118,
"Estus Flask Shard #6": 0x4000085D, # Multiple #Flask
"Undead Bone Shard #3": 0x4000085F, # Multiple #Flask
"Cinders of a Lord - Abyss Watcher": 0x4000084B,
}
catacombs_of_carthus_table = {
"Sharp Gem": 0x40000456,
"Carthus Pyromancy Tome": 0x40000850,
"Carthus Milkring": 0x20004FE2,
"Grave Warden's Ashes": 0x4000083E,
"Deep Gem": 0x4000049C,
"Knight Slayer's Ring": 0x20005000,
"Carthus Bloodring": 0x200050FA,
"Grave Warden Pyromancy Tome": 0x40000853,
"Old Sage's Blindfold": 0x11945BA0,
"Witch's Ring": 0x20004F11,
"Black Blade": 0x004CC070,
"Undead Bone Shard #4": 0x4000085F,
}
smouldering_lake_table = {
"Shield of Want": 0x0144B500,
"Speckled Stoneplate Ring": 0x20004E7A,
"Chaos Gem #1": 0x40000488,
"Dragonrider Bow": 0x00D6B0F0,
"Lightning Stake": 0x40389C30,
"Fire Gem #2": 0x4000047E,
"Izalith Pyromancy Tome": 0x40000851,
"Black Knight Sword": 0x005F5E10,
"Quelana Pyromancy Tome": 0x40000852,
@@ -265,28 +234,18 @@ smouldering_lake_table = {
"Sacred Flame": 0x40284880,
"Fume Ultra Greatsword": 0x0060E4B0,
"Black Iron Greatshield": 0x0150EA00,
"Estus Flask Shard #7": 0x4000085D,
"Undead Bone Shard #5": 0x4000085F,
"Undead Bone Shard #6": 0x4000085F,
}
irithyll_of_the_boreal_valley_table = {
"Dorhys' Gnawing": 0x40363EB8,
"Witchtree Branch": 0x00C94370,
"Magic Clutch Ring": 0x2000500A,
"Lightning Gem #1": 0x40000492,
"Ring of the Sun's First Born": 0x20004F1B,
"Proof of a Concord Kept #1": 0x40000174,
"Roster of Knights": 0x4000006C,
"Undead Bone Shard #7": 0x4000085F,
"Chameleon": 0x4014ACF8,
"Pontiff's Right Eye": 0x2000510E,
"Shriving Stone": 0x400004E2,
"Yorshka's Spear": 0x008C3A70,
"Blood Gem #1": 0x400004BA,
"Ring of Sacrifice #3": 0x20004EF2,
"Great Heal": 0x40356FB0,
"Smough's Great Hammer": 0x007E30B0,
@@ -295,7 +254,6 @@ irithyll_of_the_boreal_valley_table = {
"Excrement-covered Ashes": 0x40000862,
"Dark Stoneplate Ring": 0x20004E70,
"Deep Gem #3": 0x4000049C,
"Easterner's Ashes": 0x40000868,
"Painting Guardian's Curved Sword": 0x003E6890,
"Painting Guardian Hood": 0x156C8CC0,
@@ -321,7 +279,6 @@ irithyll_dungeon_table = {
"Old Sorcerer Gauntlets": 0x1496F510,
"Old Sorcerer Boots": 0x1496F8F8,
"Great Magic Shield": 0x40144F38,
"Estus Flask Shard #8": 0x4000085D,
"Dragon Torso Stone": 0x4000017A,
"Lightning Blade": 0x4036C770,
@@ -334,32 +291,29 @@ irithyll_dungeon_table = {
"Jailer's Key Ring": 0x400007D8,
"Dusk Crown Ring": 0x20004F4C,
"Dark Clutch Ring": 0x20005028,
"Path of the Dragon Gesture": 0x40002346,
}
profaned_capital_table = {
"Cursebite Ring": 0x20004E98,
"Poison Gem #2": 0x400004B0,
"Shriving Stone #4": 0x400004E2,
"Court Sorcerer Hood": 0x11BA8140,
"Court Sorcerer Robe": 0x11BA8528,
"Court Sorcerer Gloves": 0x11BA8910,
"Court Sorcerer Trousers": 0x11BA8CF8,
"Wrath of the Gods": 0x4035E0F8,
"Covetous Gold Serpent Ring": 0x20004FA6,
"Jailer's Key Ring": 0x400007D8,
"Logan's Scroll": 0x40000855,
"Eleonora": 0x006CCB90,
"Court Sorcerer's Staff": 0x00C91C60,
"Undead Bone Shard #8": 0x4000085F,
"Greatshield of Glory": 0x01515F30,
"Storm Ruler": 0x006132D0,
"Cinders of a Lord - Yhorm the Giant": 0x4000084D,
}
anor_londo_table = {
"Giant's Coal": 0x40000839,
"Proof of a Concord Kept": 0x40000174,
"Sun Princess Ring": 0x20004FBA,
"Estus Flask Shard #9": 0x4000085D,
"Aldrich's Ruby": 0x2000508C,
"Cinders of a Lord - Aldrich": 0x4000084C,
}
lothric_castle_table = {
@@ -372,24 +326,19 @@ lothric_castle_table = {
"Winged Knight Armor": 0x12EBB228,
"Winged Knight Gauntlets": 0x12EBB610,
"Winged Knight Leggings": 0x12EBB9F8,
"Estus Flask Shard #10": 0x4000085D,
"Greatlance": 0x008A8CC0,
"Sniper Crossbow": 0x00D83790,
"Raw Gem #1": 0x400004C4,
"Spirit Tree Crest Shield": 0x014466E0,
"Refined Gem #2": 0x40000460,
"Red Tearstone Ring": 0x20004ECA,
"Caitha's Chime": 0x00CA06C0,
"Braille Divine Tome of Lothric": 0x40000848,
"Knight's Ring": 0x20004FEC,
"Sunlight Straight Sword": 0x00203230,
"Grand Archives Key": 0x400007DE,
}
consumed_king_garden_table = {
"Estus Flask Shard #11": 0x4000085D,
"Ring of Sacrifice #4": 0x20004EF2,
"Dark Gem": 0x400004A6,
"Dragonscale Ring": 0x2000515E,
"Shadow Mask": 0x14D3F640,
"Shadow Garb": 0x14D3FA28,
@@ -406,16 +355,12 @@ grand_archives_table = {
"Soul Stream": 0x4018B820,
"Fleshbite Ring": 0x20004EA2,
"Crystal Chime": 0x00CA2DD0,
"Shriving Stone #5": 0x400004E2,
"Hollow Gem #2": 0x400004D8,
"Undead Bone Shard #9": 0x4000085F,
"Golden Wing Crest Shield": 0x0143CAA0,
"Sage's Crystal Staff": 0x00C8CE40,
"Onikiri and Ubadachi": 0x00F58390,
"Hunter's Ring": 0x20004FF6,
"Divine Pillars of Light": 0x4038C340,
"Blessed Gem #2": 0x400004CE,
"Estus Flask Shard #12": 0x4000085D,
"Cinders of a Lord - Lothric Prince": 0x4000084E,
}
untended_graves_table = {
@@ -423,14 +368,12 @@ untended_graves_table = {
"Black Knight Glaive": 0x009AE070,
"Hornet Ring": 0x20004F9C,
"Chaos Blade": 0x004C9960,
"Seed of a Giant Tree #2": 0x400001B8,
"Blacksmith Hammer": 0x007E57C0,
"Eyes of a Fire Keeper": 0x4000085A,
"Coiled Sword Fragment": 0x4000015F,
}
archdragon_peak_table = {
"Lightning Gem #2": 0x40000492,
"Lightning Clutch Ring": 0x20005014,
"Ancient Dragon Greatshield": 0x013599D0,
"Ring of Steel Protection": 0x20004E48,
@@ -449,16 +392,46 @@ archdragon_peak_table = {
"Ricard's Rapier": 0x002E3BF0,
}
key_items_table = {
"Grand Archives Key": 0x400007DE,
"Storm Ruler": 0x006132D0,
"Small Doll": 0x400007D5,
"Path of the Dragon Gesture": 0x40002346,
# "Coiled Sword": 0x40000859, #Useless item, it can be used if looted or not
key_items_list = {
"Small Lothric Banner",
"Basin of Vows",
"Small Doll",
"Path of the Dragon Gesture",
"Storm Ruler",
"Grand Archives Key",
"Cinders of a Lord - Abyss Watcher",
"Cinders of a Lord - Yhorm the Giant",
"Cinders of a Lord - Aldrich",
"Cinders of a Lord - Lothric Prince",
"Mortician's Ashes"
}
dictionary_table = {**cemetery_of_ash_table, ** fire_link_shrine_table, **high_wall_of_lothric, **undead_settlement_table, **road_of_sacrifice_table,
heals_table = {
"Ashen Estus Flask": 0x400000BF,
"Estus Flask Shard #1": 0x4000085D,
"Estus Flask Shard #2": 0x4000085D,
"Estus Flask Shard #3": 0x4000085D,
"Estus Flask Shard #4": 0x4000085D,
"Estus Flask Shard #5": 0x4000085D,
"Estus Flask Shard #6": 0x4000085D,
"Estus Flask Shard #7": 0x4000085D,
"Estus Flask Shard #8": 0x4000085D,
"Estus Flask Shard #9": 0x4000085D,
"Estus Flask Shard #10": 0x4000085D,
"Estus Flask Shard #11": 0x4000085D,
"Estus Flask Shard #12": 0x4000085D,
"Undead Bone Shard #1": 0x4000085F,
"Undead Bone Shard #2": 0x4000085F,
"Undead Bone Shard #3": 0x4000085F,
"Undead Bone Shard #4": 0x4000085F,
"Undead Bone Shard #5": 0x4000085F,
"Undead Bone Shard #6": 0x4000085F,
"Undead Bone Shard #7": 0x4000085F,
"Undead Bone Shard #8": 0x4000085F,
"Undead Bone Shard #9": 0x4000085F,
}
dictionary_table = {**cemetery_of_ash_table, **fire_link_shrine_table, **firelink_shrine_bell_tower_table, **high_wall_of_lothric, **undead_settlement_table, **road_of_sacrifice_table,
**cathedral_of_the_deep_table, **farron_keep_table, **catacombs_of_carthus_table, **smouldering_lake_table, **irithyll_of_the_boreal_valley_table,
**irithyll_dungeon_table, **profaned_capital_table, **anor_londo_table, **lothric_castle_table, **consumed_king_garden_table,
**grand_archives_table, **untended_graves_table, **archdragon_peak_table}