 11842d396a
			
		
	
	11842d396a
	
	
	
		
			
			This item name is unusual in that it loses the word "round" when it's infused, *and* the only guaranteed drop in the base game is the infused "Blessed Red and White Round Shield +1". But since we're just listing the uninfused version, we should use the uninfused name.
		
			
				
	
	
		
			1684 lines
		
	
	
		
			131 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			1684 lines
		
	
	
		
			131 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| from dataclasses import dataclass
 | |
| import dataclasses
 | |
| from enum import IntEnum
 | |
| from typing import Any, cast, ClassVar, Dict, Generator, List, Optional, Set
 | |
| 
 | |
| from BaseClasses import Item, ItemClassification
 | |
| 
 | |
| 
 | |
| class DS3ItemCategory(IntEnum):
 | |
|     WEAPON_UPGRADE_5 = 0
 | |
|     WEAPON_UPGRADE_10 = 1
 | |
|     WEAPON_UPGRADE_10_INFUSIBLE = 2
 | |
|     SHIELD = 3
 | |
|     SHIELD_INFUSIBLE = 4
 | |
|     ARMOR = 5
 | |
|     RING = 6
 | |
|     SPELL = 7
 | |
|     MISC = 8
 | |
|     UNIQUE = 9
 | |
|     BOSS = 10
 | |
|     SOUL = 11
 | |
|     UPGRADE = 12
 | |
|     HEALING = 13
 | |
| 
 | |
|     @property
 | |
|     def is_infusible(self) -> bool:
 | |
|         """Returns whether this category can be infused."""
 | |
|         return self in [
 | |
|             DS3ItemCategory.WEAPON_UPGRADE_10_INFUSIBLE,
 | |
|             DS3ItemCategory.SHIELD_INFUSIBLE
 | |
|         ]
 | |
| 
 | |
|     @property
 | |
|     def upgrade_level(self) -> Optional[int]:
 | |
|         """The maximum upgrade level for this category, or None if it's not upgradable."""
 | |
|         if self == DS3ItemCategory.WEAPON_UPGRADE_5: return 5
 | |
|         if self in [
 | |
|             DS3ItemCategory.WEAPON_UPGRADE_10,
 | |
|             DS3ItemCategory.WEAPON_UPGRADE_10_INFUSIBLE
 | |
|         ]: return 10
 | |
|         return None
 | |
| 
 | |
| 
 | |
| @dataclass
 | |
| class Infusion(IntEnum):
 | |
|     """Infusions supported by Dark Souls III.
 | |
| 
 | |
|     The value of each infusion is the number added to the base weapon's ID to get the infused ID.
 | |
|     """
 | |
| 
 | |
|     HEAVY = 100
 | |
|     SHARP = 200
 | |
|     REFINED = 300
 | |
|     SIMPLE = 400
 | |
|     CRYSTAL = 500
 | |
|     FIRE = 600
 | |
|     CHAOS = 700
 | |
|     LIGHTNING = 800
 | |
|     DEEP = 900
 | |
|     DARK = 1000
 | |
|     POISON = 1100
 | |
|     BLOOD = 1200
 | |
|     RAW = 1300
 | |
|     BLESSED = 1400
 | |
|     HOLLOW = 1500
 | |
| 
 | |
|     @property
 | |
|     def prefix(self):
 | |
|         """The prefix to add to a weapon name with this infusion."""
 | |
|         return self.name.title()
 | |
| 
 | |
| 
 | |
| class UsefulIf(IntEnum):
 | |
|     """An enum that indicates when an item should be upgraded to ItemClassification.useful.
 | |
| 
 | |
|     This is used for rings with +x variants that may or may not be the best in class depending on
 | |
|     the player's settings.
 | |
|     """
 | |
| 
 | |
|     DEFAULT = 0
 | |
|     """Follows DS3ItemData.classification as written."""
 | |
| 
 | |
|     BASE = 1
 | |
|     """Useful only if the DLC and NG+ locations are disabled."""
 | |
| 
 | |
|     NO_DLC = 2
 | |
|     """Useful if the DLC is disabled, whether or not NG+ locations are."""
 | |
| 
 | |
|     NO_NGP = 3
 | |
|     """Useful if NG+ locations is disabled, whether or not the DLC is."""
 | |
| 
 | |
| 
 | |
| @dataclass
 | |
| class DS3ItemData:
 | |
|     __item_id: ClassVar[int] = 100000
 | |
|     """The next item ID to use when creating item data."""
 | |
| 
 | |
|     name: str
 | |
|     ds3_code: Optional[int]
 | |
|     category: DS3ItemCategory
 | |
| 
 | |
|     base_ds3_code: Optional[int] = None
 | |
|     """If this is an upgradable weapon, the base ID of the weapon it upgrades from.
 | |
| 
 | |
|     Otherwise, or if the weapon isn't upgraded, this is the same as ds3_code.
 | |
|     """
 | |
| 
 | |
|     base_name: Optional[str] = None
 | |
|     """The name of the individual item, if this is a multi-item group."""
 | |
| 
 | |
|     classification: ItemClassification = ItemClassification.filler
 | |
|     """How important this item is to the game progression."""
 | |
| 
 | |
|     ap_code: Optional[int] = None
 | |
|     """The Archipelago ID for this item."""
 | |
| 
 | |
|     is_dlc: bool = False
 | |
|     """Whether this item is only found in one of the two DLC packs."""
 | |
| 
 | |
|     count: int = 1
 | |
|     """The number of copies of this item included in each drop."""
 | |
| 
 | |
|     inject: bool = False
 | |
|     """If this is set, the randomizer will try to inject this item into the game.
 | |
| 
 | |
|     This is used for items such as covenant rewards that aren't realistically reachable in a
 | |
|     randomizer run, but are still fun to have available to the player. If there are more locations
 | |
|     available than there are items in the item pool, these items will be used to help make up the
 | |
|     difference.
 | |
|     """
 | |
| 
 | |
|     souls: Optional[int] = None
 | |
|     """If this is a consumable item that gives souls, the number of souls it gives."""
 | |
| 
 | |
|     useful_if: UsefulIf = UsefulIf.DEFAULT
 | |
|     """Whether and when this item should be marked as "useful"."""
 | |
| 
 | |
|     filler: bool = False
 | |
|     """Whether this is a candidate for a filler item to be added to fill out extra locations."""
 | |
| 
 | |
|     skip: bool = False
 | |
|     """Whether to omit this item from randomization and replace it with filler or unique items."""
 | |
| 
 | |
|     @property
 | |
|     def unique(self):
 | |
|         """Whether this item should be unique, appearing only once in the randomizer."""
 | |
|         return self.category not in {
 | |
|             DS3ItemCategory.MISC, DS3ItemCategory.SOUL, DS3ItemCategory.UPGRADE,
 | |
|             DS3ItemCategory.HEALING,
 | |
|         }
 | |
| 
 | |
|     def __post_init__(self):
 | |
|         self.ap_code = self.ap_code or DS3ItemData.__item_id
 | |
|         if not self.base_name: self.base_name = self.name
 | |
|         if not self.base_ds3_code: self.base_ds3_code = self.ds3_code
 | |
|         DS3ItemData.__item_id += 1
 | |
| 
 | |
|     def item_groups(self) -> List[str]:
 | |
|         """The names of item groups this item should appear in.
 | |
| 
 | |
|         This is computed from the properties assigned to this item."""
 | |
|         names = []
 | |
|         if self.classification == ItemClassification.progression: names.append("Progression")
 | |
|         if self.name.startswith("Cinders of a Lord -"): names.append("Cinders")
 | |
| 
 | |
|         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",
 | |
|         }[self.category])
 | |
| 
 | |
|         return names
 | |
| 
 | |
|     def counts(self, counts: List[int]) -> Generator["DS3ItemData", None, None]:
 | |
|         """Returns an iterable of copies of this item with the given counts."""
 | |
|         yield self
 | |
|         for count in counts:
 | |
|             yield dataclasses.replace(
 | |
|                 self,
 | |
|                 ap_code = None,
 | |
|                 name = "{} x{}".format(self.base_name, count),
 | |
|                 base_name = self.base_name,
 | |
|                 count = count,
 | |
|                 filler = False, # Don't count multiples as filler by default
 | |
|             )
 | |
| 
 | |
|     @property
 | |
|     def is_infused(self) -> bool:
 | |
|         """Returns whether this item is an infused weapon."""
 | |
|         return cast(int, self.ds3_code) - cast(int, self.base_ds3_code) >= 100
 | |
| 
 | |
|     def infuse(self, infusion: Infusion) -> "DS3ItemData":
 | |
|         """Returns this item with the given infusion applied."""
 | |
|         if not self.category.is_infusible: raise RuntimeError(f"{self.name} is not infusible.")
 | |
|         if self.is_infused:
 | |
|             raise RuntimeError(f"{self.name} is already infused.")
 | |
| 
 | |
|         # We can't change the name or AP code when infusing/upgrading weapons, because they both
 | |
|         # need to match what's in item_name_to_id. We don't want to add every possible
 | |
|         # infusion/upgrade combination to that map because it's way too many items.
 | |
|         return dataclasses.replace(
 | |
|             self,
 | |
|             name = self.name,
 | |
|             ds3_code = cast(int, self.ds3_code) + infusion.value,
 | |
|             filler = False,
 | |
|         )
 | |
| 
 | |
|     @property
 | |
|     def is_upgraded(self) -> bool:
 | |
|         """Returns whether this item is a weapon that's upgraded beyond level 0."""
 | |
|         return (cast(int, self.ds3_code) - cast(int, self.base_ds3_code)) % 100 != 0
 | |
| 
 | |
|     def upgrade(self, level: int) -> "DS3ItemData":
 | |
|         """Upgrades this item to the given level."""
 | |
|         if not self.category.upgrade_level: raise RuntimeError(f"{self.name} is not upgradable.")
 | |
|         if level > self.category.upgrade_level:
 | |
|             raise RuntimeError(f"{self.name} can't be upgraded to +{level}.")
 | |
|         if self.is_upgraded:
 | |
|             raise RuntimeError(f"{self.name} is already upgraded.")
 | |
| 
 | |
|         # We can't change the name or AP code when infusing/upgrading weapons, because they both
 | |
|         # need to match what's in item_name_to_id. We don't want to add every possible
 | |
|         # infusion/upgrade combination to that map because it's way too many items.
 | |
|         return dataclasses.replace(
 | |
|             self,
 | |
|             name = self.name,
 | |
|             ds3_code = cast(int, self.ds3_code) + level,
 | |
|             filler = False,
 | |
|         )
 | |
| 
 | |
| 
 | |
| class DarkSouls3Item(Item):
 | |
|     game: str = "Dark Souls III"
 | |
|     data: DS3ItemData
 | |
| 
 | |
|     @property
 | |
|     def level(self) -> Optional[int]:
 | |
|         """This item's upgrade level, if it's a weapon."""
 | |
|         return cast(int, self.data.ds3_code) % 100 if self.data.category.upgrade_level else None
 | |
| 
 | |
|     def __init__(
 | |
|             self,
 | |
|             player: int,
 | |
|             data: DS3ItemData,
 | |
|             classification = None):
 | |
|         super().__init__(data.name, classification or data.classification, data.ap_code, player)
 | |
|         self.data = data
 | |
| 
 | |
|     @staticmethod
 | |
|     def event(name: str, player: int) -> "DarkSouls3Item":
 | |
|         data = DS3ItemData(name, None, DS3ItemCategory.MISC,
 | |
|                            skip = True, classification = ItemClassification.progression)
 | |
|         data.ap_code = None
 | |
|         return DarkSouls3Item(player, data)
 | |
| 
 | |
| 
 | |
| _vanilla_items = [
 | |
|     # Ammunition
 | |
|     *DS3ItemData("Standard Arrow",                      0x00061A80, DS3ItemCategory.MISC).counts([12]),
 | |
|     DS3ItemData("Standard Arrow x8",                   0x00061A80, DS3ItemCategory.MISC, count = 8, filler = True),
 | |
|     DS3ItemData("Fire Arrow",                          0x00061AE4, DS3ItemCategory.MISC),
 | |
|     DS3ItemData("Fire Arrow x8",                       0x00061AE4, DS3ItemCategory.MISC, count = 8, filler = True),
 | |
|     *DS3ItemData("Poison Arrow",                        0x00061B48, DS3ItemCategory.MISC).counts([18]),
 | |
|     DS3ItemData("Poison Arrow x8",                     0x00061B48, DS3ItemCategory.MISC, count = 8, filler = True),
 | |
|     DS3ItemData("Large Arrow",                         0x00061BAC, DS3ItemCategory.MISC),
 | |
|     DS3ItemData("Feather Arrow",                       0x00061C10, DS3ItemCategory.MISC),
 | |
|     *DS3ItemData("Moonlight Arrow",                     0x00061C74, DS3ItemCategory.MISC).counts([6]),
 | |
|     DS3ItemData("Wood Arrow",                          0x00061CD8, DS3ItemCategory.MISC),
 | |
|     DS3ItemData("Dark Arrow",                          0x00061D3C, DS3ItemCategory.MISC),
 | |
|     *DS3ItemData("Dragonslayer Greatarrow",             0x00062250, DS3ItemCategory.MISC).counts([5]),
 | |
|     *DS3ItemData("Dragonslayer Lightning Arrow",        0x00062318, DS3ItemCategory.MISC).counts([10]),
 | |
|     *DS3ItemData("Onislayer Greatarrow",                0x0006237C, DS3ItemCategory.MISC).counts([8]),
 | |
|     DS3ItemData("Standard Bolt",                       0x00062A20, DS3ItemCategory.MISC),
 | |
|     DS3ItemData("Heavy Bolt",                          0x00062A84, DS3ItemCategory.MISC),
 | |
|     *DS3ItemData("Sniper Bolt",                         0x00062AE8, DS3ItemCategory.MISC).counts([11]),
 | |
|     DS3ItemData("Wood Bolt",                           0x00062B4C, DS3ItemCategory.MISC),
 | |
|     *DS3ItemData("Lightning Bolt",                      0x00062BB0, DS3ItemCategory.MISC).counts([9]),
 | |
|     *DS3ItemData("Lightning Bolt",                      0x00062BB0, DS3ItemCategory.MISC).counts([12]),
 | |
|     DS3ItemData("Splintering Bolt",                    0x00062C14, DS3ItemCategory.MISC),
 | |
|     *DS3ItemData("Exploding Bolt",                      0x00062C78, DS3ItemCategory.MISC).counts([6]),
 | |
| 
 | |
|     # Weapons
 | |
|     DS3ItemData("Dagger",                              0x000F4240, DS3ItemCategory.WEAPON_UPGRADE_10_INFUSIBLE),
 | |
|     DS3ItemData("Bandit's Knife",                      0x000F6950, DS3ItemCategory.WEAPON_UPGRADE_10_INFUSIBLE),
 | |
|     DS3ItemData("Parrying Dagger",                     0x000F9060, DS3ItemCategory.WEAPON_UPGRADE_10_INFUSIBLE),
 | |
|     DS3ItemData("Rotten Ghru Dagger",                  0x000FDE80, DS3ItemCategory.WEAPON_UPGRADE_10_INFUSIBLE),
 | |
|     DS3ItemData("Harpe",                               0x00102CA0, DS3ItemCategory.WEAPON_UPGRADE_10_INFUSIBLE),
 | |
|     DS3ItemData("Scholar's Candlestick",               0x001053B0, DS3ItemCategory.WEAPON_UPGRADE_10),
 | |
|     DS3ItemData("Tailbone Short Sword",                0x00107AC0, DS3ItemCategory.WEAPON_UPGRADE_10),
 | |
|     DS3ItemData("Corvian Greatknife",                  0x0010A1D0, DS3ItemCategory.WEAPON_UPGRADE_10_INFUSIBLE),
 | |
|     DS3ItemData("Handmaid's Dagger",                   0x00111700, DS3ItemCategory.WEAPON_UPGRADE_10),
 | |
|     DS3ItemData("Shortsword",                          0x001E8480, DS3ItemCategory.WEAPON_UPGRADE_10_INFUSIBLE),
 | |
|     DS3ItemData("Longsword",                           0x001EAB90, DS3ItemCategory.WEAPON_UPGRADE_10_INFUSIBLE),
 | |
|     DS3ItemData("Broadsword",                          0x001ED2A0, DS3ItemCategory.WEAPON_UPGRADE_10_INFUSIBLE),
 | |
|     DS3ItemData("Broken Straight Sword",               0x001EF9B0, DS3ItemCategory.WEAPON_UPGRADE_10_INFUSIBLE),
 | |
|     DS3ItemData("Lothric Knight Sword",                0x001F6EE0, DS3ItemCategory.WEAPON_UPGRADE_10_INFUSIBLE),
 | |
|     DS3ItemData("Sunlight Straight Sword",             0x00203230, DS3ItemCategory.WEAPON_UPGRADE_5),
 | |
|     DS3ItemData("Rotten Ghru Curved Sword",            0x00205940, DS3ItemCategory.WEAPON_UPGRADE_10_INFUSIBLE),
 | |
|     DS3ItemData("Irithyll Straight Sword",             0x0020A760, DS3ItemCategory.WEAPON_UPGRADE_5),
 | |
|     DS3ItemData("Cleric's Candlestick",                0x0020F580, DS3ItemCategory.WEAPON_UPGRADE_5),
 | |
|     DS3ItemData("Morion Blade",                        0x002143A0, DS3ItemCategory.WEAPON_UPGRADE_5),
 | |
|     DS3ItemData("Astora Straight Sword",               0x002191C0, DS3ItemCategory.WEAPON_UPGRADE_10_INFUSIBLE),
 | |
|     DS3ItemData("Barbed Straight Sword",               0x0021B8D0, DS3ItemCategory.WEAPON_UPGRADE_10_INFUSIBLE),
 | |
|     DS3ItemData("Executioner's Greatsword",            0x0021DFE0, DS3ItemCategory.WEAPON_UPGRADE_10),
 | |
|     DS3ItemData("Anri's Straight Sword",               0x002206F0, DS3ItemCategory.WEAPON_UPGRADE_5),
 | |
|     DS3ItemData("Estoc",                               0x002DC6C0, DS3ItemCategory.WEAPON_UPGRADE_10_INFUSIBLE),
 | |
|     DS3ItemData("Mail Breaker",                        0x002DEDD0, DS3ItemCategory.WEAPON_UPGRADE_10_INFUSIBLE),
 | |
|     DS3ItemData("Rapier",                              0x002E14E0, DS3ItemCategory.WEAPON_UPGRADE_10_INFUSIBLE),
 | |
|     DS3ItemData("Ricard's Rapier",                     0x002E3BF0, DS3ItemCategory.WEAPON_UPGRADE_10_INFUSIBLE),
 | |
|     DS3ItemData("Crystal Sage's Rapier",               0x002E6300, DS3ItemCategory.WEAPON_UPGRADE_5),
 | |
|     DS3ItemData("Irithyll Rapier",                     0x002E8A10, DS3ItemCategory.WEAPON_UPGRADE_5),
 | |
|     DS3ItemData("Shotel",                              0x003D3010, DS3ItemCategory.WEAPON_UPGRADE_10_INFUSIBLE),
 | |
|     DS3ItemData("Scimitar",                            0x003D7E30, DS3ItemCategory.WEAPON_UPGRADE_10_INFUSIBLE),
 | |
|     DS3ItemData("Falchion",                            0x003DA540, DS3ItemCategory.WEAPON_UPGRADE_10_INFUSIBLE),
 | |
|     DS3ItemData("Carthus Curved Sword",                0x003DCC50, DS3ItemCategory.WEAPON_UPGRADE_10_INFUSIBLE),
 | |
|     DS3ItemData("Carthus Curved Greatsword",           0x003DF360, DS3ItemCategory.WEAPON_UPGRADE_10_INFUSIBLE),
 | |
|     DS3ItemData("Pontiff Knight Curved Sword",         0x003E1A70, DS3ItemCategory.WEAPON_UPGRADE_5),
 | |
|     DS3ItemData("Storm Curved Sword",                  0x003E4180, DS3ItemCategory.WEAPON_UPGRADE_5),
 | |
|     DS3ItemData("Painting Guardian's Curved Sword",    0x003E6890, DS3ItemCategory.WEAPON_UPGRADE_10_INFUSIBLE),
 | |
|     DS3ItemData("Crescent Moon Sword",                 0x003E8FA0, DS3ItemCategory.WEAPON_UPGRADE_5),
 | |
|     DS3ItemData("Carthus Shotel",                      0x003EB6B0, DS3ItemCategory.WEAPON_UPGRADE_10_INFUSIBLE),
 | |
|     DS3ItemData("Uchigatana",                          0x004C4B40, DS3ItemCategory.WEAPON_UPGRADE_10_INFUSIBLE),
 | |
|     DS3ItemData("Washing Pole",                        0x004C7250, DS3ItemCategory.WEAPON_UPGRADE_10_INFUSIBLE),
 | |
|     DS3ItemData("Chaos Blade",                         0x004C9960, DS3ItemCategory.WEAPON_UPGRADE_5),
 | |
|     DS3ItemData("Black Blade",                         0x004CC070, DS3ItemCategory.WEAPON_UPGRADE_10_INFUSIBLE),
 | |
|     DS3ItemData("Bloodlust",                           0x004CE780, DS3ItemCategory.WEAPON_UPGRADE_5,
 | |
|                 inject = True), # Covenant reward
 | |
|     DS3ItemData("Darkdrift",                           0x004D0E90, DS3ItemCategory.WEAPON_UPGRADE_5),
 | |
|     DS3ItemData("Bastard Sword",                       0x005B8D80, DS3ItemCategory.WEAPON_UPGRADE_10_INFUSIBLE),
 | |
|     DS3ItemData("Claymore",                            0x005BDBA0, DS3ItemCategory.WEAPON_UPGRADE_10_INFUSIBLE),
 | |
|     DS3ItemData("Zweihander",                          0x005C29C0, DS3ItemCategory.WEAPON_UPGRADE_10_INFUSIBLE),
 | |
|     DS3ItemData("Greatsword",                          0x005C50D0, DS3ItemCategory.WEAPON_UPGRADE_10_INFUSIBLE),
 | |
|     DS3ItemData("Astora Greatsword",                   0x005C9EF0, DS3ItemCategory.WEAPON_UPGRADE_10_INFUSIBLE),
 | |
|     DS3ItemData("Murakumo",                            0x005CC600, DS3ItemCategory.WEAPON_UPGRADE_10_INFUSIBLE),
 | |
|     DS3ItemData("Lothric Knight Greatsword",           0x005D1420, DS3ItemCategory.WEAPON_UPGRADE_10_INFUSIBLE),
 | |
|     DS3ItemData("Flamberge",                           0x005DB060, DS3ItemCategory.WEAPON_UPGRADE_10_INFUSIBLE),
 | |
|     DS3ItemData("Exile Greatsword",                    0x005DD770, DS3ItemCategory.WEAPON_UPGRADE_10_INFUSIBLE),
 | |
|     DS3ItemData("Greatsword of Judgment",              0x005E2590, DS3ItemCategory.WEAPON_UPGRADE_5),
 | |
|     DS3ItemData("Profaned Greatsword",                 0x005E4CA0, DS3ItemCategory.WEAPON_UPGRADE_5),
 | |
|     DS3ItemData("Cathedral Knight Greatsword",         0x005E73B0, DS3ItemCategory.WEAPON_UPGRADE_10_INFUSIBLE),
 | |
|     DS3ItemData("Farron Greatsword",                   0x005E9AC0, DS3ItemCategory.WEAPON_UPGRADE_5),
 | |
|     DS3ItemData("Yhorm's Great Machete",               0x005F0FF0, DS3ItemCategory.WEAPON_UPGRADE_5),
 | |
|     DS3ItemData("Dark Sword",                          0x005F3700, DS3ItemCategory.WEAPON_UPGRADE_10_INFUSIBLE),
 | |
|     DS3ItemData("Black Knight Sword",                  0x005F5E10, DS3ItemCategory.WEAPON_UPGRADE_5),
 | |
|     DS3ItemData("Lorian's Greatsword",                 0x005F8520, DS3ItemCategory.WEAPON_UPGRADE_5),
 | |
|     DS3ItemData("Twin Princes' Greatsword",            0x005FAC30, DS3ItemCategory.WEAPON_UPGRADE_5),
 | |
|     DS3ItemData("Lothric's Holy Sword",                0x005FD340, DS3ItemCategory.WEAPON_UPGRADE_5),
 | |
|     DS3ItemData("Wolnir's Holy Sword",                 0x005FFA50, DS3ItemCategory.WEAPON_UPGRADE_5),
 | |
|     DS3ItemData("Wolf Knight's Greatsword",            0x00602160, DS3ItemCategory.WEAPON_UPGRADE_5),
 | |
|     DS3ItemData("Greatsword of Artorias",              0x0060216A, DS3ItemCategory.WEAPON_UPGRADE_5),
 | |
|     DS3ItemData("Hollowslayer Greatsword",             0x00604870, DS3ItemCategory.WEAPON_UPGRADE_5),
 | |
|     DS3ItemData("Moonlight Greatsword",                0x00606F80, DS3ItemCategory.WEAPON_UPGRADE_5),
 | |
|     DS3ItemData("Drakeblood Greatsword",               0x00609690, DS3ItemCategory.WEAPON_UPGRADE_10_INFUSIBLE),
 | |
|     DS3ItemData("Firelink Greatsword",                 0x0060BDA0, DS3ItemCategory.WEAPON_UPGRADE_5),
 | |
|     DS3ItemData("Fume Ultra Greatsword",               0x0060E4B0, DS3ItemCategory.WEAPON_UPGRADE_5),
 | |
|     DS3ItemData("Old Wolf Curved Sword",               0x00610BC0, DS3ItemCategory.WEAPON_UPGRADE_5,
 | |
|                 inject = True), # Covenant reward
 | |
|     DS3ItemData("Storm Ruler",                         0x006132D0, DS3ItemCategory.WEAPON_UPGRADE_5,
 | |
|                 classification = ItemClassification.progression),
 | |
|     DS3ItemData("Hand Axe",                            0x006ACFC0, DS3ItemCategory.WEAPON_UPGRADE_10_INFUSIBLE),
 | |
|     DS3ItemData("Battle Axe",                          0x006AF6D0, DS3ItemCategory.WEAPON_UPGRADE_10_INFUSIBLE),
 | |
|     DS3ItemData("Deep Battle Axe",                     0x006AFA54, DS3ItemCategory.WEAPON_UPGRADE_10),
 | |
|     DS3ItemData("Brigand Axe",                         0x006B1DE0, DS3ItemCategory.WEAPON_UPGRADE_10_INFUSIBLE),
 | |
|     DS3ItemData("Crescent Axe",                        0x006B6C00, DS3ItemCategory.WEAPON_UPGRADE_10_INFUSIBLE),
 | |
|     DS3ItemData("Greataxe",                            0x006B9310, DS3ItemCategory.WEAPON_UPGRADE_10_INFUSIBLE),
 | |
|     DS3ItemData("Butcher Knife",                       0x006BE130, DS3ItemCategory.WEAPON_UPGRADE_10),
 | |
|     DS3ItemData("Dragonslayer's Axe",                  0x006C0840, DS3ItemCategory.WEAPON_UPGRADE_10_INFUSIBLE),
 | |
|     DS3ItemData("Thrall Axe",                          0x006C5660, DS3ItemCategory.WEAPON_UPGRADE_10_INFUSIBLE),
 | |
|     DS3ItemData("Dragonslayer Greataxe",               0x006C7D70, DS3ItemCategory.WEAPON_UPGRADE_5),
 | |
|     DS3ItemData("Demon's Greataxe",                    0x006CA480, DS3ItemCategory.WEAPON_UPGRADE_5),
 | |
|     DS3ItemData("Eleonora",                            0x006CCB90, DS3ItemCategory.WEAPON_UPGRADE_5,
 | |
|                 classification = ItemClassification.progression), # Crow trade
 | |
|     DS3ItemData("Man Serpent Hatchet",                 0x006D19B0, DS3ItemCategory.WEAPON_UPGRADE_10_INFUSIBLE),
 | |
|     DS3ItemData("Club",                                0x007A1200, DS3ItemCategory.WEAPON_UPGRADE_10_INFUSIBLE),
 | |
|     DS3ItemData("Mace",                                0x007A3910, DS3ItemCategory.WEAPON_UPGRADE_10_INFUSIBLE),
 | |
|     DS3ItemData("Morning Star",                        0x007A6020, DS3ItemCategory.WEAPON_UPGRADE_10_INFUSIBLE),
 | |
|     DS3ItemData("Reinforced Club",                     0x007A8730, DS3ItemCategory.WEAPON_UPGRADE_10_INFUSIBLE),
 | |
|     DS3ItemData("Large Club",                          0x007AFC60, DS3ItemCategory.WEAPON_UPGRADE_10_INFUSIBLE),
 | |
|     DS3ItemData("Great Club",                          0x007B4A80, DS3ItemCategory.WEAPON_UPGRADE_10_INFUSIBLE),
 | |
|     DS3ItemData("Great Mace",                          0x007BBFB0, DS3ItemCategory.WEAPON_UPGRADE_10_INFUSIBLE),
 | |
|     DS3ItemData("Great Wooden Hammer",                 0x007C8300, DS3ItemCategory.WEAPON_UPGRADE_10_INFUSIBLE),
 | |
|     DS3ItemData("Gargoyle Flame Hammer",               0x007CAA10, DS3ItemCategory.WEAPON_UPGRADE_5),
 | |
|     DS3ItemData("Vordt's Great Hammer",                0x007CD120, DS3ItemCategory.WEAPON_UPGRADE_5),
 | |
|     DS3ItemData("Old King's Great Hammer",             0x007CF830, DS3ItemCategory.WEAPON_UPGRADE_5),
 | |
|     DS3ItemData("Heysel Pick",                         0x007D6D60, DS3ItemCategory.WEAPON_UPGRADE_5),
 | |
|     DS3ItemData("Warpick",                             0x007DBB80, DS3ItemCategory.WEAPON_UPGRADE_10_INFUSIBLE),
 | |
|     DS3ItemData("Pickaxe",                             0x007DE290, DS3ItemCategory.WEAPON_UPGRADE_10_INFUSIBLE),
 | |
|     DS3ItemData("Dragon Tooth",                        0x007E09A0, DS3ItemCategory.WEAPON_UPGRADE_5),
 | |
|     DS3ItemData("Smough's Great Hammer",               0x007E30B0, DS3ItemCategory.WEAPON_UPGRADE_5),
 | |
|     DS3ItemData("Blacksmith Hammer",                   0x007E57C0, DS3ItemCategory.WEAPON_UPGRADE_10_INFUSIBLE,
 | |
|                 classification = ItemClassification.progression), # Crow trade
 | |
|     DS3ItemData("Morne's Great Hammer",                0x007E7ED0, DS3ItemCategory.WEAPON_UPGRADE_5),
 | |
|     DS3ItemData("Spiked Mace",                         0x007EA5E0, DS3ItemCategory.WEAPON_UPGRADE_10_INFUSIBLE),
 | |
|     DS3ItemData("Spear",                               0x00895440, DS3ItemCategory.WEAPON_UPGRADE_10_INFUSIBLE),
 | |
|     DS3ItemData("Winged Spear",                        0x00897B50, DS3ItemCategory.WEAPON_UPGRADE_10_INFUSIBLE),
 | |
|     DS3ItemData("Partizan",                            0x0089C970, DS3ItemCategory.WEAPON_UPGRADE_10_INFUSIBLE),
 | |
|     DS3ItemData("Greatlance",                          0x008A8CC0, DS3ItemCategory.WEAPON_UPGRADE_10_INFUSIBLE),
 | |
|     DS3ItemData("Lothric Knight Long Spear",           0x008AB3D0, DS3ItemCategory.WEAPON_UPGRADE_10_INFUSIBLE),
 | |
|     DS3ItemData("Gargoyle Flame Spear",                0x008B01F0, DS3ItemCategory.WEAPON_UPGRADE_5),
 | |
|     DS3ItemData("Rotten Ghru Spear",                   0x008B2900, DS3ItemCategory.WEAPON_UPGRADE_10_INFUSIBLE),
 | |
|     DS3ItemData("Tailbone Spear",                      0x008B5010, DS3ItemCategory.WEAPON_UPGRADE_5),
 | |
|     DS3ItemData("Soldering Iron",                      0x008B7720, DS3ItemCategory.WEAPON_UPGRADE_10),
 | |
|     DS3ItemData("Dragonslayer Swordspear",             0x008BC540, DS3ItemCategory.WEAPON_UPGRADE_5),
 | |
|     DS3ItemData("Arstor's Spear",                      0x008BEC50, DS3ItemCategory.WEAPON_UPGRADE_5),
 | |
|     DS3ItemData("Saint Bident",                        0x008C1360, DS3ItemCategory.WEAPON_UPGRADE_10),
 | |
|     DS3ItemData("Yorshka's Spear",                     0x008C3A70, DS3ItemCategory.WEAPON_UPGRADE_5),
 | |
|     DS3ItemData("Pike",                                0x008C6180, DS3ItemCategory.WEAPON_UPGRADE_10_INFUSIBLE),
 | |
|     DS3ItemData("Heavy Four-pronged Plow",             0x008ADAE0, DS3ItemCategory.WEAPON_UPGRADE_10_INFUSIBLE),
 | |
|     DS3ItemData("Dragonslayer Spear",                  0x008CAFA0, DS3ItemCategory.WEAPON_UPGRADE_5),
 | |
|     DS3ItemData("Great Scythe",                        0x00989680, DS3ItemCategory.WEAPON_UPGRADE_10_INFUSIBLE),
 | |
|     DS3ItemData("Lucerne",                             0x0098BD90, DS3ItemCategory.WEAPON_UPGRADE_10_INFUSIBLE),
 | |
|     DS3ItemData("Glaive",                              0x0098E4A0, DS3ItemCategory.WEAPON_UPGRADE_10_INFUSIBLE),
 | |
|     DS3ItemData("Halberd",                             0x00990BB0, DS3ItemCategory.WEAPON_UPGRADE_10_INFUSIBLE),
 | |
|     DS3ItemData("Black Knight Greataxe",               0x009959D0, DS3ItemCategory.WEAPON_UPGRADE_5),
 | |
|     DS3ItemData("Pontiff Knight Great Scythe",         0x0099A7F0, DS3ItemCategory.WEAPON_UPGRADE_5),
 | |
|     DS3ItemData("Great Corvian Scythe",                0x0099CF00, DS3ItemCategory.WEAPON_UPGRADE_10_INFUSIBLE),
 | |
|     DS3ItemData("Winged Knight Halberd",               0x0099F610, DS3ItemCategory.WEAPON_UPGRADE_10_INFUSIBLE),
 | |
|     DS3ItemData("Gundyr's Halberd",                    0x009A1D20, DS3ItemCategory.WEAPON_UPGRADE_5),
 | |
|     DS3ItemData("Red Hilted Halberd",                  0x009AB960, DS3ItemCategory.WEAPON_UPGRADE_10_INFUSIBLE),
 | |
|     DS3ItemData("Black Knight Glaive",                 0x009AE070, DS3ItemCategory.WEAPON_UPGRADE_5),
 | |
|     DS3ItemData("Immolation Tinder",                   0x009B0780, DS3ItemCategory.WEAPON_UPGRADE_5),
 | |
|     DS3ItemData("Claw",                                0x00A7D8C0, DS3ItemCategory.WEAPON_UPGRADE_10_INFUSIBLE),
 | |
|     DS3ItemData("Caestus",                             0x00A7FFD0, DS3ItemCategory.WEAPON_UPGRADE_10_INFUSIBLE),
 | |
|     DS3ItemData("Manikin Claws",                       0x00A826E0, DS3ItemCategory.WEAPON_UPGRADE_10_INFUSIBLE),
 | |
|     DS3ItemData("Demon's Fist",                        0x00A84DF0, DS3ItemCategory.WEAPON_UPGRADE_5),
 | |
|     DS3ItemData("Dark Hand",                           0x00A87500, DS3ItemCategory.WEAPON_UPGRADE_5),
 | |
|     DS3ItemData("Whip",                                0x00B71B00, DS3ItemCategory.WEAPON_UPGRADE_10_INFUSIBLE),
 | |
|     DS3ItemData("Witch's Locks",                       0x00B7B740, DS3ItemCategory.WEAPON_UPGRADE_5),
 | |
|     DS3ItemData("Notched Whip",                        0x00B7DE50, DS3ItemCategory.WEAPON_UPGRADE_10_INFUSIBLE),
 | |
|     DS3ItemData("Spotted Whip",                        0x00B80560, DS3ItemCategory.WEAPON_UPGRADE_10),
 | |
|     DS3ItemData("Talisman",                            0x00C72090, DS3ItemCategory.WEAPON_UPGRADE_10),
 | |
|     DS3ItemData("Sorcerer's Staff",                    0x00C747A0, DS3ItemCategory.WEAPON_UPGRADE_10),
 | |
|     DS3ItemData("Storyteller's Staff",                 0x00C76EB0, DS3ItemCategory.WEAPON_UPGRADE_10),
 | |
|     DS3ItemData("Mendicant's Staff",                   0x00C795C0, DS3ItemCategory.WEAPON_UPGRADE_10,
 | |
|                 classification = ItemClassification.progression, # Crow trade
 | |
|                 inject = True), # This is just a random drop normally, but we need it in-logic
 | |
|     DS3ItemData("Man-grub's Staff",                    0x00C7E3E0, DS3ItemCategory.WEAPON_UPGRADE_5,
 | |
|                 inject = True), # Covenant reward
 | |
|     DS3ItemData("Archdeacon's Great Staff",            0x00C80AF0, DS3ItemCategory.WEAPON_UPGRADE_5,
 | |
|                 inject = True), # Covenant reward
 | |
|     DS3ItemData("Golden Ritual Spear",                 0x00C83200, DS3ItemCategory.WEAPON_UPGRADE_5),
 | |
|     DS3ItemData("Yorshka's Chime",                     0x00C88020, DS3ItemCategory.WEAPON_UPGRADE_10),
 | |
|     DS3ItemData("Sage's Crystal Staff",                0x00C8CE40, DS3ItemCategory.WEAPON_UPGRADE_5),
 | |
|     DS3ItemData("Heretic's Staff",                     0x00C8F550, DS3ItemCategory.WEAPON_UPGRADE_10),
 | |
|     DS3ItemData("Court Sorcerer's Staff",              0x00C91C60, DS3ItemCategory.WEAPON_UPGRADE_10),
 | |
|     DS3ItemData("Witchtree Branch",                    0x00C94370, DS3ItemCategory.WEAPON_UPGRADE_10),
 | |
|     DS3ItemData("Izalith Staff",                       0x00C96A80, DS3ItemCategory.WEAPON_UPGRADE_5),
 | |
|     DS3ItemData("Cleric's Sacred Chime",               0x00C99190, DS3ItemCategory.WEAPON_UPGRADE_10),
 | |
|     DS3ItemData("Priest's Chime",                      0x00C9B8A0, DS3ItemCategory.WEAPON_UPGRADE_10),
 | |
|     DS3ItemData("Saint-tree Bellvine",                 0x00C9DFB0, DS3ItemCategory.WEAPON_UPGRADE_10),
 | |
|     DS3ItemData("Caitha's Chime",                      0x00CA06C0, DS3ItemCategory.WEAPON_UPGRADE_5),
 | |
|     DS3ItemData("Crystal Chime",                       0x00CA2DD0, DS3ItemCategory.WEAPON_UPGRADE_5),
 | |
|     DS3ItemData("Sunlight Talisman",                   0x00CA54E0, DS3ItemCategory.WEAPON_UPGRADE_10),
 | |
|     DS3ItemData("Canvas Talisman",                     0x00CA7BF0, DS3ItemCategory.WEAPON_UPGRADE_10),
 | |
|     DS3ItemData("Sunless Talisman",                    0x00CAA300, DS3ItemCategory.WEAPON_UPGRADE_5),
 | |
|     DS3ItemData("Saint's Talisman",                    0x00CACA10, DS3ItemCategory.WEAPON_UPGRADE_10),
 | |
|     DS3ItemData("White Hair Talisman",                 0x00CAF120, DS3ItemCategory.WEAPON_UPGRADE_5),
 | |
|     DS3ItemData("Pyromancy Flame",                     0x00CC77C0, DS3ItemCategory.WEAPON_UPGRADE_10,
 | |
|                 classification = ItemClassification.progression),
 | |
|     DS3ItemData("Dragonslayer Greatbow",               0x00CF8500, DS3ItemCategory.WEAPON_UPGRADE_5),
 | |
|     DS3ItemData("Short Bow",                           0x00D5C690, DS3ItemCategory.WEAPON_UPGRADE_10),
 | |
|     DS3ItemData("Composite Bow",                       0x00D5EDA0, DS3ItemCategory.WEAPON_UPGRADE_10),
 | |
|     DS3ItemData("Light Crossbow",                      0x00D63BC0, DS3ItemCategory.WEAPON_UPGRADE_10),
 | |
|     DS3ItemData("Arbalest",                            0x00D662D0, DS3ItemCategory.WEAPON_UPGRADE_10),
 | |
|     DS3ItemData("Longbow",                             0x00D689E0, DS3ItemCategory.WEAPON_UPGRADE_10),
 | |
|     DS3ItemData("Dragonrider Bow",                     0x00D6B0F0, DS3ItemCategory.WEAPON_UPGRADE_5),
 | |
|     DS3ItemData("Avelyn",                              0x00D6FF10, DS3ItemCategory.WEAPON_UPGRADE_10,
 | |
|                 classification = ItemClassification.progression), # Crow trade
 | |
|     DS3ItemData("Knight's Crossbow",                   0x00D72620, DS3ItemCategory.WEAPON_UPGRADE_10),
 | |
|     DS3ItemData("Heavy Crossbow",                      0x00D74D30, DS3ItemCategory.WEAPON_UPGRADE_10),
 | |
|     DS3ItemData("Darkmoon Longbow",                    0x00D79B50, DS3ItemCategory.WEAPON_UPGRADE_5),
 | |
|     DS3ItemData("Onislayer Greatbow",                  0x00D7C260, DS3ItemCategory.WEAPON_UPGRADE_5),
 | |
|     DS3ItemData("Black Bow of Pharis",                 0x00D7E970, DS3ItemCategory.WEAPON_UPGRADE_10),
 | |
|     DS3ItemData("Sniper Crossbow",                     0x00D83790, DS3ItemCategory.WEAPON_UPGRADE_10),
 | |
|     DS3ItemData("Sellsword Twinblades",                0x00F42400, DS3ItemCategory.WEAPON_UPGRADE_10_INFUSIBLE),
 | |
|     DS3ItemData("Warden Twinblades",                   0x00F47220, DS3ItemCategory.WEAPON_UPGRADE_10_INFUSIBLE),
 | |
|     DS3ItemData("Winged Knight Twinaxes",              0x00F49930, DS3ItemCategory.WEAPON_UPGRADE_10_INFUSIBLE),
 | |
|     DS3ItemData("Dancer's Enchanted Swords",           0x00F4C040, DS3ItemCategory.WEAPON_UPGRADE_5),
 | |
|     DS3ItemData("Great Machete",                       0x00F4E750, DS3ItemCategory.WEAPON_UPGRADE_10_INFUSIBLE),
 | |
|     DS3ItemData("Brigand Twindaggers",                 0x00F50E60, DS3ItemCategory.WEAPON_UPGRADE_10_INFUSIBLE),
 | |
|     DS3ItemData("Gotthard Twinswords",                 0x00F53570, DS3ItemCategory.WEAPON_UPGRADE_10_INFUSIBLE),
 | |
|     DS3ItemData("Onikiri and Ubadachi",                0x00F58390, DS3ItemCategory.WEAPON_UPGRADE_10_INFUSIBLE),
 | |
|     DS3ItemData("Drang Twinspears",                    0x00F5AAA0, DS3ItemCategory.WEAPON_UPGRADE_10_INFUSIBLE),
 | |
|     DS3ItemData("Drang Hammers",                       0x00F61FD0, DS3ItemCategory.WEAPON_UPGRADE_10_INFUSIBLE),
 | |
| 
 | |
|     # Shields
 | |
|     DS3ItemData("Buckler",                             0x01312D00, DS3ItemCategory.SHIELD_INFUSIBLE),
 | |
|     DS3ItemData("Small Leather Shield",                0x01315410, DS3ItemCategory.SHIELD_INFUSIBLE),
 | |
|     DS3ItemData("Round Shield",                        0x0131A230, DS3ItemCategory.SHIELD_INFUSIBLE),
 | |
|     DS3ItemData("Large Leather Shield",                0x0131C940, DS3ItemCategory.SHIELD_INFUSIBLE,
 | |
|                 classification = ItemClassification.progression, # Crow trade
 | |
|                 inject = True), # This is a shop/infinite drop item, but we need it in logic
 | |
|     DS3ItemData("Hawkwood's Shield",                   0x01323E70, DS3ItemCategory.SHIELD_INFUSIBLE),
 | |
|     DS3ItemData("Iron Round Shield",                   0x01326580, DS3ItemCategory.SHIELD_INFUSIBLE),
 | |
|     DS3ItemData("Wooden Shield",                       0x0132DAB0, DS3ItemCategory.SHIELD_INFUSIBLE),
 | |
|     DS3ItemData("Kite Shield",                         0x013301C0, DS3ItemCategory.SHIELD_INFUSIBLE),
 | |
|     DS3ItemData("Ghru Rotshield",                      0x013328D0, DS3ItemCategory.SHIELD_INFUSIBLE),
 | |
|     DS3ItemData("Havel's Greatshield",                 0x013376F0, DS3ItemCategory.SHIELD),
 | |
|     DS3ItemData("Target Shield",                       0x01339E00, DS3ItemCategory.SHIELD_INFUSIBLE),
 | |
|     DS3ItemData("Elkhorn Round Shield",                0x0133C510, DS3ItemCategory.SHIELD_INFUSIBLE),
 | |
|     DS3ItemData("Warrior's Round Shield",              0x0133EC20, DS3ItemCategory.SHIELD_INFUSIBLE),
 | |
|     DS3ItemData("Caduceus Round Shield",               0x01341330, DS3ItemCategory.SHIELD_INFUSIBLE),
 | |
|     DS3ItemData("Red and White Round Shield",          0x01343A40, DS3ItemCategory.SHIELD_INFUSIBLE),
 | |
|     DS3ItemData("Blessed Red and White Shield+1",      0x01343FB9, DS3ItemCategory.SHIELD),
 | |
|     DS3ItemData("Plank Shield",                        0x01346150, DS3ItemCategory.SHIELD_INFUSIBLE),
 | |
|     DS3ItemData("Leather Shield",                      0x01348860, DS3ItemCategory.SHIELD_INFUSIBLE),
 | |
|     DS3ItemData("Crimson Parma",                       0x0134AF70, DS3ItemCategory.SHIELD_INFUSIBLE),
 | |
|     DS3ItemData("Eastern Iron Shield",                 0x0134D680, DS3ItemCategory.SHIELD_INFUSIBLE),
 | |
|     DS3ItemData("Llewellyn Shield",                    0x0134FD90, DS3ItemCategory.SHIELD_INFUSIBLE),
 | |
|     DS3ItemData("Golden Falcon Shield",                0x01354BB0, DS3ItemCategory.SHIELD_INFUSIBLE),
 | |
|     DS3ItemData("Sacred Bloom Shield",                 0x013572C0, DS3ItemCategory.SHIELD),
 | |
|     DS3ItemData("Ancient Dragon Greatshield",          0x013599D0, DS3ItemCategory.SHIELD),
 | |
|     DS3ItemData("Lothric Knight Shield",               0x01409650, DS3ItemCategory.SHIELD_INFUSIBLE),
 | |
|     DS3ItemData("Knight Shield",                       0x01410B80, DS3ItemCategory.SHIELD_INFUSIBLE),
 | |
|     DS3ItemData("Pontiff Knight Shield",               0x014159A0, DS3ItemCategory.SHIELD),
 | |
|     DS3ItemData("Carthus Shield",                      0x014180B0, DS3ItemCategory.SHIELD_INFUSIBLE),
 | |
|     DS3ItemData("Black Knight Shield",                 0x0141F5E0, DS3ItemCategory.SHIELD),
 | |
|     DS3ItemData("Silver Knight Shield",                0x01424400, DS3ItemCategory.SHIELD),
 | |
|     DS3ItemData("Spiked Shield",                       0x01426B10, DS3ItemCategory.SHIELD_INFUSIBLE),
 | |
|     DS3ItemData("Pierce Shield",                       0x01429220, DS3ItemCategory.SHIELD_INFUSIBLE),
 | |
|     DS3ItemData("East-West Shield",                    0x0142B930, DS3ItemCategory.SHIELD_INFUSIBLE),
 | |
|     DS3ItemData("Sunlight Shield",                     0x0142E040, DS3ItemCategory.SHIELD_INFUSIBLE),
 | |
|     DS3ItemData("Crest Shield",                        0x01430750, DS3ItemCategory.SHIELD),
 | |
|     DS3ItemData("Dragon Crest Shield",                 0x01432E60, DS3ItemCategory.SHIELD),
 | |
|     DS3ItemData("Spider Shield",                       0x01435570, DS3ItemCategory.SHIELD_INFUSIBLE),
 | |
|     DS3ItemData("Grass Crest Shield",                  0x01437C80, DS3ItemCategory.SHIELD,
 | |
|                 classification = ItemClassification.useful),
 | |
|     DS3ItemData("Sunset Shield",                       0x0143A390, DS3ItemCategory.SHIELD_INFUSIBLE),
 | |
|     DS3ItemData("Golden Wing Crest Shield",            0x0143CAA0, DS3ItemCategory.SHIELD),
 | |
|     DS3ItemData("Blue Wooden Shield",                  0x0143F1B0, DS3ItemCategory.SHIELD_INFUSIBLE),
 | |
|     DS3ItemData("Silver Eagle Kite Shield",            0x014418C0, DS3ItemCategory.SHIELD_INFUSIBLE),
 | |
|     DS3ItemData("Stone Parma",                         0x01443FD0, DS3ItemCategory.SHIELD_INFUSIBLE),
 | |
|     DS3ItemData("Spirit Tree Crest Shield",            0x014466E0, DS3ItemCategory.SHIELD),
 | |
|     DS3ItemData("Porcine Shield",                      0x01448DF0, DS3ItemCategory.SHIELD_INFUSIBLE),
 | |
|     DS3ItemData("Shield of Want",                      0x0144B500, DS3ItemCategory.SHIELD),
 | |
|     DS3ItemData("Wargod Wooden Shield",                0x0144DC10, DS3ItemCategory.SHIELD_INFUSIBLE),
 | |
|     DS3ItemData("Lothric Knight Greatshield",          0x014FD890, DS3ItemCategory.SHIELD_INFUSIBLE),
 | |
|     DS3ItemData("Cathedral Knight Greatshield",        0x014FFFA0, DS3ItemCategory.SHIELD_INFUSIBLE),
 | |
|     DS3ItemData("Dragonslayer Greatshield",            0x01504DC0, DS3ItemCategory.SHIELD),
 | |
|     DS3ItemData("Moaning Shield",                      0x015074D0, DS3ItemCategory.SHIELD,
 | |
|                 classification = ItemClassification.progression), # Crow trade
 | |
|     DS3ItemData("Yhorm's Greatshield",                 0x0150C2F0, DS3ItemCategory.SHIELD),
 | |
|     DS3ItemData("Black Iron Greatshield",              0x0150EA00, DS3ItemCategory.SHIELD_INFUSIBLE),
 | |
|     DS3ItemData("Wolf Knight's Greatshield",           0x01511110, DS3ItemCategory.SHIELD,
 | |
|                 inject = True), # Covenant reward
 | |
|     DS3ItemData("Twin Dragon Greatshield",             0x01513820, DS3ItemCategory.SHIELD_INFUSIBLE),
 | |
|     DS3ItemData("Greatshield of Glory",                0x01515F30, DS3ItemCategory.SHIELD),
 | |
|     DS3ItemData("Curse Ward Greatshield",              0x01518640, DS3ItemCategory.SHIELD),
 | |
|     DS3ItemData("Bonewheel Shield",                    0x0151AD50, DS3ItemCategory.SHIELD_INFUSIBLE),
 | |
|     DS3ItemData("Stone Greatshield",                   0x0151D460, DS3ItemCategory.SHIELD_INFUSIBLE),
 | |
| 
 | |
|     # Armor
 | |
|     DS3ItemData("Fallen Knight Helm",                  0x1121EAC0, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Fallen Knight Armor",                 0x1121EEA8, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Fallen Knight Gauntlets",             0x1121F290, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Fallen Knight Trousers",              0x1121F678, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Knight Helm",                         0x11298BE0, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Knight Armor",                        0x11298FC8, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Knight Gauntlets",                    0x112993B0, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Knight Leggings",                     0x11299798, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Firelink Helm",                       0x11406F40, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Firelink Armor",                      0x11407328, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Firelink Gauntlets",                  0x11407710, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Firelink Leggings",                   0x11407AF8, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Sellsword Helm",                      0x11481060, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Sellsword Armor",                     0x11481448, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Sellsword Gauntlet",                  0x11481830, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Sellsword Trousers",                  0x11481C18, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Herald Helm",                         0x114FB180, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Herald Armor",                        0x114FB568, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Herald Gloves",                       0x114FB950, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Herald Trousers",                     0x114FBD38, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Sunless Veil",                        0x115752A0, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Sunless Armor",                       0x11575688, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Sunless Gauntlets",                   0x11575A70, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Sunless Leggings",                    0x11575E58, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Black Hand Hat",                      0x115EF3C0, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Black Hand Armor",                    0x115EF7A8, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Assassin Gloves",                     0x115EFB90, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Assassin Trousers",                   0x115EFF78, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Assassin Hood",                       0x11607A60, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Assassin Armor",                      0x11607E48, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Xanthous Crown",                      0x116694E0, DS3ItemCategory.ARMOR,
 | |
|                 classification = ItemClassification.progression), # Crow trade
 | |
|     DS3ItemData("Xanthous Overcoat",                   0x116698C8, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Xanthous Gloves",                     0x11669CB0, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Xanthous Trousers",                   0x1166A098, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Northern Helm",                       0x116E3600, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Northern Armor",                      0x116E39E8, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Northern Gloves",                     0x116E3DD0, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Northern Trousers",                   0x116E41B8, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Morne's Helm",                        0x1175D720, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Morne's Armor",                       0x1175DB08, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Morne's Gauntlets",                   0x1175DEF0, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Morne's Leggings",                    0x1175E2D8, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Silver Mask",                         0x117D7840, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Leonhard's Garb",                     0x117D7C28, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Leonhard's Gauntlets",                0x117D8010, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Leonhard's Trousers",                 0x117D83F8, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Sneering Mask",                       0x11851960, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Pale Shade Robe",                     0x11851D48, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Pale Shade Gloves",                   0x11852130, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Pale Shade Trousers",                 0x11852518, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Sunset Helm",                         0x118CBA80, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Sunset Armor",                        0x118CBE68, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Sunset Gauntlets",                    0x118CC250, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Sunset Leggings",                     0x118CC638, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Old Sage's Blindfold",                0x11945BA0, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Cornyx's Garb",                       0x11945F88, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Cornyx's Wrap",                       0x11946370, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Cornyx's Skirt",                      0x11946758, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Executioner Helm",                    0x119BFCC0, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Executioner Armor",                   0x119C00A8, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Executioner Gauntlets",               0x119C0490, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Executioner Leggings",                0x119C0878, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Billed Mask",                         0x11A39DE0, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Black Dress",                         0x11A3A1C8, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Black Gauntlets",                     0x11A3A5B0, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Black Leggings",                      0x11A3A998, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Pyromancer Crown",                    0x11AB3F00, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Pyromancer Garb",                     0x11AB42E8, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Pyromancer Wrap",                     0x11AB46D0, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Pyromancer Trousers",                 0x11AB4AB8, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Court Sorcerer Hood",                 0x11BA8140, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Court Sorcerer Robe",                 0x11BA8528, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Court Sorcerer Gloves",               0x11BA8910, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Court Sorcerer Trousers",             0x11BA8CF8, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Sorcerer Hood",                       0x11C9C380, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Sorcerer Robe",                       0x11C9C768, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Sorcerer Gloves",                     0x11C9CB50, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Sorcerer Trousers",                   0x11C9CF38, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Clandestine Coat",                    0x11CB4E08, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Cleric Hat",                          0x11D905C0, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Cleric Blue Robe",                    0x11D909A8, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Cleric Gloves",                       0x11D90D90, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Cleric Trousers",                     0x11D91178, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Steel Soldier Helm",                  0x12625A00, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Deserter Armor",                      0x12625DE8, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Deserter Trousers",                   0x126265B8, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Thief Mask",                          0x12656740, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Sage's Big Hat",                      0x129020C0, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Aristocrat's Mask",                   0x129F6300, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Jailer Robe",                         0x129F66E8, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Jailer Gloves",                       0x129F6AD0, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Jailer Trousers",                     0x129F6EB8, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Grave Warden Hood",                   0x12BDE780, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Grave Warden Robe",                   0x12BDEB68, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Grave Warden Wrap",                   0x12BDEF50, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Grave Warden Skirt",                  0x12BDF338, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Worker Hat",                          0x12CD29C0, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Worker Garb",                         0x12CD2DA8, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Worker Gloves",                       0x12CD3190, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Worker Trousers",                     0x12CD3578, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Thrall Hood",                         0x12D4CAE0, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Evangelist Hat",                      0x12DC6C00, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Evangelist Robe",                     0x12DC6FE8, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Evangelist Gloves",                   0x12DC73D0, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Evangelist Trousers",                 0x12DC77B8, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Scholar's Robe",                      0x12E41108, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Winged Knight Helm",                  0x12EBAE40, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Winged Knight Armor",                 0x12EBB228, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Winged Knight Gauntlets",             0x12EBB610, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Winged Knight Leggings",              0x12EBB9F8, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Cathedral Knight Helm",               0x130291A0, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Cathedral Knight Armor",              0x13029588, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Cathedral Knight Gauntlets",          0x13029970, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Cathedral Knight Leggings",           0x13029D58, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Lothric Knight Helm",                 0x13197500, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Lothric Knight Armor",                0x131978E8, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Lothric Knight Gauntlets",            0x13197CD0, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Lothric Knight Leggings",             0x131980B8, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Outrider Knight Helm",                0x1328B740, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Outrider Knight Armor",               0x1328BB28, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Outrider Knight Gauntlets",           0x1328BF10, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Outrider Knight Leggings",            0x1328C2F8, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Black Knight Helm",                   0x1337F980, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Black Knight Armor",                  0x1337FD68, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Black Knight Gauntlets",              0x13380150, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Black Knight Leggings",               0x13380538, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Dark Mask",                           0x133F9AA0, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Dark Armor",                          0x133F9E88, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Dark Gauntlets",                      0x133FA270, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Dark Leggings",                       0x133FA658, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Exile Mask",                          0x13473BC0, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Exile Armor",                         0x13473FA8, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Exile Gauntlets",                     0x13474390, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Exile Leggings",                      0x13474778, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Pontiff Knight Crown",                0x13567E00, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Pontiff Knight Armor",                0x135681E8, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Pontiff Knight Gauntlets",            0x135685D0, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Pontiff Knight Leggings",             0x135689B8, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Golden Crown",                        0x1365C040, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Dragonscale Armor",                   0x1365C428, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Golden Bracelets",                    0x1365C810, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Dragonscale Waistcloth",              0x1365CBF8, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Wolnir's Crown",                      0x136D6160, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Undead Legion Helm",                  0x13750280, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Undead Legion Armor",                 0x13750668, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Undead Legion Gauntlet",              0x13750A50, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Undead Legion Leggings",              0x13750E38, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Fire Witch Helm",                     0x13938700, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Fire Witch Armor",                    0x13938AE8, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Fire Witch Gauntlets",                0x13938ED0, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Fire Witch Leggings",                 0x139392B8, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Lorian's Helm",                       0x13A2C940, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Lorian's Armor",                      0x13A2CD28, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Lorian's Gauntlets",                  0x13A2D110, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Lorian's Leggings",                   0x13A2D4F8, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Hood of Prayer",                      0x13AA6A60, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Robe of Prayer",                      0x13AA6E48, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Skirt of Prayer",                     0x13AA7618, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Dancer's Crown",                      0x13C14DC0, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Dancer's Armor",                      0x13C151A8, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Dancer's Gauntlets",                  0x13C15590, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Dancer's Leggings",                   0x13C15978, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Gundyr's Helm",                       0x13D09000, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Gundyr's Armor",                      0x13D093E8, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Gundyr's Gauntlets",                  0x13D097D0, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Gundyr's Leggings",                   0x13D09BB8, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Archdeacon White Crown",              0x13EF1480, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Archdeacon Holy Garb",                0x13EF1868, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Archdeacon Skirt",                    0x13EF2038, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Deacon Robe",                         0x13F6B988, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Deacon Skirt",                        0x13F6C158, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Fire Keeper Robe",                    0x140D9CE8, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Fire Keeper Gloves",                  0x140DA0D0, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Fire Keeper Skirt",                   0x140DA4B8, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Chain Helm",                          0x142C1D80, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Chain Armor",                         0x142C2168, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Leather Gauntlets",                   0x142C2550, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Chain Leggings",                      0x142C2938, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Nameless Knight Helm",                0x143B5FC0, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Nameless Knight Armor",               0x143B63A8, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Nameless Knight Gauntlets",           0x143B6790, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Nameless Knight Leggings",            0x143B6B78, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Elite Knight Helm",                   0x144AA200, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Elite Knight Armor",                  0x144AA5E8, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Elite Knight Gauntlets",              0x144AA9D0, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Elite Knight Leggings",               0x144AADB8, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Faraam Helm",                         0x1459E440, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Faraam Armor",                        0x1459E828, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Faraam Gauntlets",                    0x1459EC10, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Faraam Boots",                        0x1459EFF8, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Catarina Helm",                       0x14692680, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Catarina Armor",                      0x14692A68, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Catarina Gauntlets",                  0x14692E50, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Catarina Leggings",                   0x14693238, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Standard Helm",                       0x1470C7A0, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Hard Leather Armor",                  0x1470CB88, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Hard Leather Gauntlets",              0x1470CF70, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Hard Leather Boots",                  0x1470D358, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Havel's Helm",                        0x147868C0, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Havel's Armor",                       0x14786CA8, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Havel's Gauntlets",                   0x14787090, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Havel's Leggings",                    0x14787478, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Brigand Hood",                        0x148009E0, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Brigand Armor",                       0x14800DC8, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Brigand Gauntlets",                   0x148011B0, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Brigand Trousers",                    0x14801598, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Pharis's Hat",                        0x1487AB00, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Leather Armor",                       0x1487AEE8, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Leather Gloves",                      0x1487B2D0, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Leather Boots",                       0x1487B6B8, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Ragged Mask",                         0x148F4C20, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Master's Attire",                     0x148F5008, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Master's Gloves",                     0x148F53F0, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Loincloth",                           0x148F57D8, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Old Sorcerer Hat",                    0x1496ED40, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Old Sorcerer Coat",                   0x1496F128, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Old Sorcerer Gauntlets",              0x1496F510, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Old Sorcerer Boots",                  0x1496F8F8, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Conjurator Hood",                     0x149E8E60, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Conjurator Robe",                     0x149E9248, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Conjurator Manchettes",               0x149E9630, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Conjurator Boots",                    0x149E9A18, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Black Leather Armor",                 0x14A63368, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Black Leather Gloves",                0x14A63750, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Black Leather Boots",                 0x14A63B38, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Symbol of Avarice",                   0x14ADD0A0, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Creighton's Steel Mask",              0x14B571C0, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Mirrah Chain Mail",                   0x14B575A8, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Mirrah Chain Gloves",                 0x14B57990, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Mirrah Chain Leggings",               0x14B57D78, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Maiden Hood",                         0x14BD12E0, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Maiden Robe",                         0x14BD16C8, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Maiden Gloves",                       0x14BD1AB0, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Maiden Skirt",                        0x14BD1E98, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Alva Helm",                           0x14C4B400, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Alva Armor",                          0x14C4B7E8, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Alva Gauntlets",                      0x14C4BBD0, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Alva Leggings",                       0x14C4BFB8, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Shadow Mask",                         0x14D3F640, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Shadow Garb",                         0x14D3FA28, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Shadow Gauntlets",                    0x14D3FE10, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Shadow Leggings",                     0x14D401F8, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Eastern Helm",                        0x14E33880, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Eastern Armor",                       0x14E33C68, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Eastern Gauntlets",                   0x14E34050, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Eastern Leggings",                    0x14E34438, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Helm of Favor",                       0x14F27AC0, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Embraced Armor of Favor",             0x14F27EA8, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Gauntlets of Favor",                  0x14F28290, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Leggings of Favor",                   0x14F28678, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Brass Helm",                          0x1501BD00, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Brass Armor",                         0x1501C0E8, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Brass Gauntlets",                     0x1501C4D0, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Brass Leggings",                      0x1501C8B8, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Silver Knight Helm",                  0x1510FF40, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Silver Knight Armor",                 0x15110328, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Silver Knight Gauntlets",             0x15110710, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Silver Knight Leggings",              0x15110AF8, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Lucatiel's Mask",                     0x15204180, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Mirrah Vest",                         0x15204568, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Mirrah Gloves",                       0x15204950, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Mirrah Trousers",                     0x15204D38, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Iron Helm",                           0x152F83C0, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Armor of the Sun",                    0x152F87A8, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Iron Bracelets",                      0x152F8B90, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Iron Leggings",                       0x152F8F78, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Drakeblood Helm",                     0x153EC600, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Drakeblood Armor",                    0x153EC9E8, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Drakeblood Gauntlets",                0x153ECDD0, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Drakeblood Leggings",                 0x153ED1B8, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Drang Armor",                         0x154E0C28, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Drang Gauntlets",                     0x154E1010, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Drang Shoes",                         0x154E13F8, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Black Iron Helm",                     0x155D4A80, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Black Iron Armor",                    0x155D4E68, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Black Iron Gauntlets",                0x155D5250, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Black Iron Leggings",                 0x155D5638, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Painting Guardian Hood",              0x156C8CC0, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Painting Guardian Gown",              0x156C90A8, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Painting Guardian Gloves",            0x156C9490, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Painting Guardian Waistcloth",        0x156C9878, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Wolf Knight Helm",                    0x157BCF00, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Wolf Knight Armor",                   0x157BD2E8, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Wolf Knight Gauntlets",               0x157BD6D0, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Wolf Knight Leggings",                0x157BDAB8, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Dragonslayer Helm",                   0x158B1140, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Dragonslayer Armor",                  0x158B1528, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Dragonslayer Gauntlets",              0x158B1910, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Dragonslayer Leggings",               0x158B1CF8, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Smough's Helm",                       0x159A5380, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Smough's Armor",                      0x159A5768, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Smough's Gauntlets",                  0x159A5B50, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Smough's Leggings",                   0x159A5F38, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Helm of Thorns",                      0x15B8D800, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Armor of Thorns",                     0x15B8DBE8, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Gauntlets of Thorns",                 0x15B8DFD0, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Leggings of Thorns",                  0x15B8E3B8, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Crown of Dusk",                       0x15D75C80, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Antiquated Dress",                    0x15D76068, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Antiquated Gloves",                   0x15D76450, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Antiquated Skirt",                    0x15D76838, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Karla's Pointed Hat",                 0x15E69EC0, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Karla's Coat",                        0x15E6A2A8, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Karla's Gloves",                      0x15E6A690, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Karla's Trousers",                    0x15E6AA78, DS3ItemCategory.ARMOR),
 | |
| 
 | |
|     # Covenants
 | |
|     DS3ItemData("Blade of the Darkmoon",               0x20002710, DS3ItemCategory.UNIQUE, skip = True),
 | |
|     DS3ItemData("Watchdogs of Farron",                 0x20002724, DS3ItemCategory.UNIQUE, skip = True),
 | |
|     DS3ItemData("Aldrich Faithful",                    0x2000272E, DS3ItemCategory.UNIQUE, skip = True),
 | |
|     DS3ItemData("Warrior of Sunlight",                 0x20002738, DS3ItemCategory.UNIQUE, skip = True),
 | |
|     DS3ItemData("Mound-makers",                        0x20002742, DS3ItemCategory.UNIQUE, skip = True),
 | |
|     DS3ItemData("Way of Blue",                         0x2000274C, DS3ItemCategory.UNIQUE, skip = True),
 | |
|     DS3ItemData("Blue Sentinels",                      0x20002756, DS3ItemCategory.UNIQUE, skip = True),
 | |
|     DS3ItemData("Rosaria's Fingers",                   0x20002760, DS3ItemCategory.UNIQUE, skip = True),
 | |
|     DS3ItemData("Spears of the Church",                0x2000276A, DS3ItemCategory.UNIQUE, skip = True),
 | |
| 
 | |
|     # Rings
 | |
|     DS3ItemData("Life Ring",                           0x20004E20, DS3ItemCategory.RING),
 | |
|     DS3ItemData("Life Ring+1",                         0x20004E21, DS3ItemCategory.RING),
 | |
|     DS3ItemData("Life Ring+2",                         0x20004E22, DS3ItemCategory.RING),
 | |
|     DS3ItemData("Life Ring+3",                         0x20004E23, DS3ItemCategory.RING),
 | |
|     DS3ItemData("Chloranthy Ring",                     0x20004E2A, DS3ItemCategory.RING,
 | |
|                 useful_if = UsefulIf.BASE),
 | |
|     DS3ItemData("Chloranthy Ring+1",                   0x20004E2B, DS3ItemCategory.RING),
 | |
|     DS3ItemData("Chloranthy Ring+2",                   0x20004E2C, DS3ItemCategory.RING,
 | |
|                 useful_if = UsefulIf.NO_DLC),
 | |
|     DS3ItemData("Havel's Ring",                        0x20004E34, DS3ItemCategory.RING,
 | |
|                 useful_if = UsefulIf.BASE),
 | |
|     DS3ItemData("Havel's Ring+1",                      0x20004E35, DS3ItemCategory.RING),
 | |
|     DS3ItemData("Havel's Ring+2",                      0x20004E36, DS3ItemCategory.RING,
 | |
|                 useful_if = UsefulIf.NO_DLC),
 | |
|     DS3ItemData("Ring of Favor",                       0x20004E3E, DS3ItemCategory.RING,
 | |
|                 useful_if = UsefulIf.BASE),
 | |
|     DS3ItemData("Ring of Favor+1",                     0x20004E3F, DS3ItemCategory.RING),
 | |
|     DS3ItemData("Ring of Favor+2",                     0x20004E40, DS3ItemCategory.RING,
 | |
|                 useful_if = UsefulIf.NO_DLC),
 | |
|     DS3ItemData("Ring of Steel Protection",            0x20004E48, DS3ItemCategory.RING,
 | |
|                 useful_if = UsefulIf.BASE),
 | |
|     DS3ItemData("Ring of Steel Protection+1",          0x20004E49, DS3ItemCategory.RING),
 | |
|     DS3ItemData("Ring of Steel Protection+2",          0x20004E4A, DS3ItemCategory.RING,
 | |
|                 useful_if = UsefulIf.NO_DLC),
 | |
|     DS3ItemData("Flame Stoneplate Ring",               0x20004E52, DS3ItemCategory.RING),
 | |
|     DS3ItemData("Flame Stoneplate Ring+1",             0x20004E53, DS3ItemCategory.RING),
 | |
|     DS3ItemData("Flame Stoneplate Ring+2",             0x20004E54, DS3ItemCategory.RING),
 | |
|     DS3ItemData("Thunder Stoneplate Ring",             0x20004E5C, DS3ItemCategory.RING),
 | |
|     DS3ItemData("Thunder Stoneplate Ring+1",           0x20004E5D, DS3ItemCategory.RING),
 | |
|     DS3ItemData("Thunder Stoneplate Ring+2",           0x20004E5E, DS3ItemCategory.RING),
 | |
|     DS3ItemData("Magic Stoneplate Ring",               0x20004E66, DS3ItemCategory.RING),
 | |
|     DS3ItemData("Magic Stoneplate Ring+1",             0x20004E67, DS3ItemCategory.RING),
 | |
|     DS3ItemData("Magic Stoneplate Ring+2",             0x20004E68, DS3ItemCategory.RING),
 | |
|     DS3ItemData("Dark Stoneplate Ring",                0x20004E70, DS3ItemCategory.RING),
 | |
|     DS3ItemData("Dark Stoneplate Ring+1",              0x20004E71, DS3ItemCategory.RING),
 | |
|     DS3ItemData("Dark Stoneplate Ring+2",              0x20004E72, DS3ItemCategory.RING),
 | |
|     DS3ItemData("Speckled Stoneplate Ring",            0x20004E7A, DS3ItemCategory.RING),
 | |
|     DS3ItemData("Speckled Stoneplate Ring+1",          0x20004E7B, DS3ItemCategory.RING),
 | |
|     DS3ItemData("Bloodbite Ring",                      0x20004E84, DS3ItemCategory.RING),
 | |
|     DS3ItemData("Bloodbite Ring+1",                    0x20004E85, DS3ItemCategory.RING),
 | |
|     DS3ItemData("Poisonbite Ring",                     0x20004E8E, DS3ItemCategory.RING),
 | |
|     DS3ItemData("Poisonbite Ring+1",                   0x20004E8F, DS3ItemCategory.RING),
 | |
|     DS3ItemData("Cursebite Ring",                      0x20004E98, DS3ItemCategory.RING),
 | |
|     DS3ItemData("Fleshbite Ring",                      0x20004EA2, DS3ItemCategory.RING),
 | |
|     DS3ItemData("Fleshbite Ring+1",                    0x20004EA3, DS3ItemCategory.RING),
 | |
|     DS3ItemData("Wood Grain Ring",                     0x20004EAC, DS3ItemCategory.RING),
 | |
|     DS3ItemData("Wood Grain Ring+1",                   0x20004EAD, DS3ItemCategory.RING),
 | |
|     DS3ItemData("Wood Grain Ring+2",                   0x20004EAE, DS3ItemCategory.RING),
 | |
|     DS3ItemData("Scholar Ring",                        0x20004EB6, DS3ItemCategory.RING),
 | |
|     DS3ItemData("Priestess Ring",                      0x20004EC0, DS3ItemCategory.RING),
 | |
|     DS3ItemData("Red Tearstone Ring",                  0x20004ECA, DS3ItemCategory.RING),
 | |
|     DS3ItemData("Blue Tearstone Ring",                 0x20004ED4, DS3ItemCategory.RING),
 | |
|     DS3ItemData("Wolf Ring",                           0x20004EDE, DS3ItemCategory.RING,
 | |
|                 inject = True), # Covenant reward
 | |
|     DS3ItemData("Wolf Ring+1",                         0x20004EDF, DS3ItemCategory.RING),
 | |
|     DS3ItemData("Wolf Ring+2",                         0x20004EE0, DS3ItemCategory.RING),
 | |
|     DS3ItemData("Leo Ring",                            0x20004EE8, DS3ItemCategory.RING),
 | |
|     DS3ItemData("Ring of Sacrifice",                   0x20004EF2, DS3ItemCategory.RING, filler = True),
 | |
|     DS3ItemData("Young Dragon Ring",                   0x20004F06, DS3ItemCategory.RING),
 | |
|     DS3ItemData("Bellowing Dragoncrest Ring",          0x20004F07, DS3ItemCategory.RING),
 | |
|     DS3ItemData("Great Swamp Ring",                    0x20004F10, DS3ItemCategory.RING),
 | |
|     DS3ItemData("Witch's Ring",                        0x20004F11, DS3ItemCategory.RING),
 | |
|     DS3ItemData("Morne's Ring",                        0x20004F1A, DS3ItemCategory.RING),
 | |
|     DS3ItemData("Ring of the Sun's First Born",        0x20004F1B, DS3ItemCategory.RING),
 | |
|     DS3ItemData("Lingering Dragoncrest Ring",          0x20004F2E, DS3ItemCategory.RING),
 | |
|     DS3ItemData("Lingering Dragoncrest Ring+1",        0x20004F2F, DS3ItemCategory.RING),
 | |
|     DS3ItemData("Lingering Dragoncrest Ring+2",        0x20004F30, DS3ItemCategory.RING),
 | |
|     DS3ItemData("Sage Ring",                           0x20004F38, DS3ItemCategory.RING,
 | |
|                 useful_if = UsefulIf.NO_NGP),
 | |
|     DS3ItemData("Sage Ring+1",                         0x20004F39, DS3ItemCategory.RING),
 | |
|     DS3ItemData("Sage Ring+2",                         0x20004F3A, DS3ItemCategory.RING,
 | |
|                 classification = ItemClassification.useful),
 | |
|     DS3ItemData("Slumbering Dragoncrest Ring",         0x20004F42, DS3ItemCategory.RING),
 | |
|     DS3ItemData("Dusk Crown Ring",                     0x20004F4C, DS3ItemCategory.RING),
 | |
|     DS3ItemData("Saint's Ring",                        0x20004F56, DS3ItemCategory.RING),
 | |
|     DS3ItemData("Deep Ring",                           0x20004F60, DS3ItemCategory.RING),
 | |
|     DS3ItemData("Darkmoon Ring",                       0x20004F6A, DS3ItemCategory.RING,
 | |
|                 inject = True), # Covenant reward
 | |
|     DS3ItemData("Hawk Ring",                           0x20004F92, DS3ItemCategory.RING),
 | |
|     DS3ItemData("Hornet Ring",                         0x20004F9C, DS3ItemCategory.RING),
 | |
|     DS3ItemData("Covetous Gold Serpent Ring",          0x20004FA6, DS3ItemCategory.RING),
 | |
|     DS3ItemData("Covetous Gold Serpent Ring+1",        0x20004FA7, DS3ItemCategory.RING),
 | |
|     DS3ItemData("Covetous Gold Serpent Ring+2",        0x20004FA8, DS3ItemCategory.RING),
 | |
|     DS3ItemData("Covetous Silver Serpent Ring",        0x20004FB0, DS3ItemCategory.RING,
 | |
|                 useful_if = UsefulIf.BASE),
 | |
|     DS3ItemData("Covetous Silver Serpent Ring+1",      0x20004FB1, DS3ItemCategory.RING),
 | |
|     DS3ItemData("Covetous Silver Serpent Ring+2",      0x20004FB2, DS3ItemCategory.RING,
 | |
|                 useful_if = UsefulIf.NO_DLC),
 | |
|     DS3ItemData("Sun Princess Ring",                   0x20004FBA, DS3ItemCategory.RING),
 | |
|     DS3ItemData("Silvercat Ring",                      0x20004FC4, DS3ItemCategory.RING),
 | |
|     DS3ItemData("Skull Ring",                          0x20004FCE, DS3ItemCategory.RING),
 | |
|     DS3ItemData("Untrue White Ring",                   0x20004FD8, DS3ItemCategory.RING, skip = True),
 | |
|     DS3ItemData("Carthus Milkring",                    0x20004FE2, DS3ItemCategory.RING),
 | |
|     DS3ItemData("Knight's Ring",                       0x20004FEC, DS3ItemCategory.RING),
 | |
|     DS3ItemData("Hunter's Ring",                       0x20004FF6, DS3ItemCategory.RING),
 | |
|     DS3ItemData("Knight Slayer's Ring",                0x20005000, DS3ItemCategory.RING),
 | |
|     DS3ItemData("Magic Clutch Ring",                   0x2000500A, DS3ItemCategory.RING),
 | |
|     DS3ItemData("Lightning Clutch Ring",               0x20005014, DS3ItemCategory.RING),
 | |
|     DS3ItemData("Fire Clutch Ring",                    0x2000501E, DS3ItemCategory.RING),
 | |
|     DS3ItemData("Dark Clutch Ring",                    0x20005028, DS3ItemCategory.RING),
 | |
|     DS3ItemData("Flynn's Ring",                        0x2000503C, DS3ItemCategory.RING),
 | |
|     DS3ItemData("Prisoner's Chain",                    0x20005046, DS3ItemCategory.RING,
 | |
|                 classification = ItemClassification.useful),
 | |
|     DS3ItemData("Untrue Dark Ring",                    0x20005050, DS3ItemCategory.RING),
 | |
|     DS3ItemData("Obscuring Ring",                      0x20005064, DS3ItemCategory.RING),
 | |
|     DS3ItemData("Ring of the Evil Eye",                0x2000506E, DS3ItemCategory.RING),
 | |
|     DS3ItemData("Ring of the Evil Eye+1",              0x2000506F, DS3ItemCategory.RING),
 | |
|     DS3ItemData("Ring of the Evil Eye+2",              0x20005070, DS3ItemCategory.RING),
 | |
|     DS3ItemData("Calamity Ring",                       0x20005078, DS3ItemCategory.RING),
 | |
|     DS3ItemData("Farron Ring",                         0x20005082, DS3ItemCategory.RING),
 | |
|     DS3ItemData("Aldrich's Ruby",                      0x2000508C, DS3ItemCategory.RING),
 | |
|     DS3ItemData("Aldrich's Sapphire",                  0x20005096, DS3ItemCategory.RING),
 | |
|     DS3ItemData("Lloyd's Sword Ring",                  0x200050B4, DS3ItemCategory.RING,
 | |
|                 classification = ItemClassification.useful),
 | |
|     DS3ItemData("Lloyd's Shield Ring",                 0x200050BE, DS3ItemCategory.RING),
 | |
|     DS3ItemData("Estus Ring",                          0x200050DC, DS3ItemCategory.RING),
 | |
|     DS3ItemData("Ashen Estus Ring",                    0x200050E6, DS3ItemCategory.RING),
 | |
|     DS3ItemData("Horsehoof Ring",                      0x200050F0, DS3ItemCategory.RING),
 | |
|     DS3ItemData("Carthus Bloodring",                   0x200050FA, DS3ItemCategory.RING,
 | |
|                 classification = ItemClassification.useful),
 | |
|     DS3ItemData("Reversal Ring",                       0x20005104, DS3ItemCategory.RING),
 | |
|     DS3ItemData("Pontiff's Right Eye",                 0x2000510E, DS3ItemCategory.RING),
 | |
|     DS3ItemData("Pontiff's Left Eye",                  0x20005136, DS3ItemCategory.RING),
 | |
|     DS3ItemData("Dragonscale Ring",                    0x2000515E, DS3ItemCategory.RING),
 | |
| 
 | |
|     # Items
 | |
|     DS3ItemData("White Sign Soapstone",                0x40000064, DS3ItemCategory.UNIQUE, skip = True),
 | |
|     DS3ItemData("Red Sign Soapstone",                  0x40000066, DS3ItemCategory.UNIQUE, skip = True),
 | |
|     DS3ItemData("Red Eye Orb",                         0x40000066, DS3ItemCategory.UNIQUE, skip = True),
 | |
|     DS3ItemData("Roster of Knights",                   0x4000006C, DS3ItemCategory.UNIQUE, skip = True),
 | |
|     *DS3ItemData("Cracked Red Eye Orb",                 0x4000006F, DS3ItemCategory.MISC, skip = True).counts([5]),
 | |
|     DS3ItemData("Black Eye Orb",                       0x40000073, DS3ItemCategory.UNIQUE,
 | |
|                 classification = ItemClassification.progression),
 | |
|     DS3ItemData("Divine Blessing",                     0x400000F0, DS3ItemCategory.MISC),
 | |
|     DS3ItemData("Hidden Blessing",                     0x400000F1, DS3ItemCategory.MISC),
 | |
|     *DS3ItemData("Green Blossom",                       0x40000104, DS3ItemCategory.MISC, filler = True).counts([2, 3, 4]),
 | |
|     *DS3ItemData("Budding Green Blossom",               0x40000106, DS3ItemCategory.MISC).counts([2, 3]),
 | |
|     *DS3ItemData("Bloodred Moss Clump",                 0x4000010E, DS3ItemCategory.MISC, filler = True).counts([3]),
 | |
|     *DS3ItemData("Purple Moss Clump",                   0x4000010F, DS3ItemCategory.MISC, filler = True).counts([2, 3, 4]),
 | |
|     *DS3ItemData("Blooming Purple Moss Clump",          0x40000110, DS3ItemCategory.MISC).counts([3]),
 | |
|     *DS3ItemData("Purging Stone",                       0x40000112, DS3ItemCategory.MISC, skip = True).counts([2, 3]),
 | |
|     *DS3ItemData("Rime-blue Moss Clump",                0x40000114, DS3ItemCategory.MISC, filler = True).counts([2, 4]),
 | |
|     *DS3ItemData("Repair Powder",                       0x40000118, DS3ItemCategory.MISC, filler = True).counts([2, 3, 4]),
 | |
|     *DS3ItemData("Kukri",                               0x40000122, DS3ItemCategory.MISC).counts([8, 9]),
 | |
|     DS3ItemData("Kukri x5",                            0x40000122, DS3ItemCategory.MISC, count = 5, filler = True),
 | |
|     *DS3ItemData("Firebomb",                            0x40000124, DS3ItemCategory.MISC).counts([3, 5, 6]),
 | |
|     DS3ItemData("Firebomb x2",                         0x40000124, DS3ItemCategory.MISC, count = 2, filler = True),
 | |
|     *DS3ItemData("Dung Pie",                            0x40000125, DS3ItemCategory.MISC).counts([2, 4]),
 | |
|     DS3ItemData("Dung Pie x3",                         0x40000125, DS3ItemCategory.MISC, count = 3, filler = True),
 | |
|     *DS3ItemData("Alluring Skull",                      0x40000126, DS3ItemCategory.MISC, filler = True).counts([2, 3]),
 | |
|     *DS3ItemData("Undead Hunter Charm",                 0x40000128, DS3ItemCategory.MISC).counts([2, 3]),
 | |
|     *DS3ItemData("Black Firebomb",                      0x40000129, DS3ItemCategory.MISC, filler = True).counts([2, 3, 4]),
 | |
|     DS3ItemData("Rope Firebomb",                       0x4000012B, DS3ItemCategory.MISC),
 | |
|     *DS3ItemData("Lightning Urn",                       0x4000012C, DS3ItemCategory.MISC, filler = True).counts([3, 4, 6]),
 | |
|     DS3ItemData("Rope Black Firebomb",                 0x4000012E, DS3ItemCategory.MISC),
 | |
|     *DS3ItemData("Stalk Dung Pie",                      0x4000012F, DS3ItemCategory.MISC).counts([6]),
 | |
|     *DS3ItemData("Duel Charm",                          0x40000130, DS3ItemCategory.MISC).counts([3]),
 | |
|     *DS3ItemData("Throwing Knife",                      0x40000136, DS3ItemCategory.MISC).counts([6, 8]),
 | |
|     DS3ItemData("Throwing Knife x5",                   0x40000136, DS3ItemCategory.MISC, count = 5, filler = True),
 | |
|     DS3ItemData("Poison Throwing Knife",               0x40000137, DS3ItemCategory.MISC),
 | |
|     *DS3ItemData("Charcoal Pine Resin",                 0x4000014A, DS3ItemCategory.MISC, filler = True).counts([2]),
 | |
|     *DS3ItemData("Gold Pine Resin",                     0x4000014B, DS3ItemCategory.MISC, filler = True).counts([2]),
 | |
|     *DS3ItemData("Human Pine Resin",                    0x4000014E, DS3ItemCategory.MISC, filler = True).counts([2, 4]),
 | |
|     *DS3ItemData("Carthus Rouge",                       0x4000014F, DS3ItemCategory.MISC, filler = True).counts([2, 3]),
 | |
|     *DS3ItemData("Pale Pine Resin",                     0x40000150, DS3ItemCategory.MISC, filler = True).counts([2]),
 | |
|     *DS3ItemData("Charcoal Pine Bundle",                0x40000154, DS3ItemCategory.MISC).counts([2]),
 | |
|     *DS3ItemData("Gold Pine Bundle",                    0x40000155, DS3ItemCategory.MISC).counts([6]),
 | |
|     *DS3ItemData("Rotten Pine Resin",                   0x40000157, DS3ItemCategory.MISC).counts([2, 4]),
 | |
|     *DS3ItemData("Homeward Bone",                       0x4000015E, DS3ItemCategory.MISC, filler = True).counts([2, 3, 6]),
 | |
|     DS3ItemData("Coiled Sword Fragment",               0x4000015F, DS3ItemCategory.UNIQUE,
 | |
|                 classification = ItemClassification.progression), # Crow trade
 | |
|     DS3ItemData("Wolf's Blood Swordgrass",             0x4000016E, DS3ItemCategory.MISC, skip = True),
 | |
|     DS3ItemData("Human Dregs",                         0x4000016F, DS3ItemCategory.MISC, skip = True),
 | |
|     DS3ItemData("Forked Pale Tongue",                  0x40000170, DS3ItemCategory.MISC, skip = True),
 | |
|     DS3ItemData("Proof of a Concord Well Kept",        0x40000171, DS3ItemCategory.MISC, skip = True),
 | |
|     *DS3ItemData("Prism Stone",                         0x40000172, DS3ItemCategory.MISC, skip = True).counts([4, 6, 10]),
 | |
|     DS3ItemData("Binoculars",                          0x40000173, DS3ItemCategory.MISC),
 | |
|     DS3ItemData("Proof of a Concord Kept",             0x40000174, DS3ItemCategory.MISC, skip = True),
 | |
|     # One is needed for Leonhard's quest, others are useful for restatting.
 | |
|     DS3ItemData("Pale Tongue",                         0x40000175, DS3ItemCategory.MISC,
 | |
|                 classification = ItemClassification.progression),
 | |
|     DS3ItemData("Vertebra Shackle",                    0x40000176, DS3ItemCategory.MISC,
 | |
|                 classification = ItemClassification.progression), # Crow trade
 | |
|     DS3ItemData("Sunlight Medal",                      0x40000177, DS3ItemCategory.MISC, skip = True),
 | |
|     DS3ItemData("Dragon Head Stone",                   0x40000179, DS3ItemCategory.UNIQUE),
 | |
|     DS3ItemData("Dragon Torso Stone",                  0x4000017A, DS3ItemCategory.UNIQUE),
 | |
|     DS3ItemData("Rubbish",                             0x4000017C, DS3ItemCategory.MISC, skip = True),
 | |
|     DS3ItemData("Dried Finger",                        0x40000181, DS3ItemCategory.UNIQUE, skip = True),
 | |
|     DS3ItemData("Twinkling Dragon Head Stone",         0x40000183, DS3ItemCategory.UNIQUE),
 | |
|     DS3ItemData("Twinkling Dragon Torso Stone",        0x40000184, DS3ItemCategory.UNIQUE,
 | |
|                 classification = ItemClassification.progression),
 | |
|     DS3ItemData("Fire Keeper Soul",                    0x40000186, DS3ItemCategory.UNIQUE),
 | |
|     # Allow souls up to 2k in value to be used as filler
 | |
|     DS3ItemData("Fading Soul",                         0x40000190, DS3ItemCategory.SOUL, souls = 50),
 | |
|     DS3ItemData("Soul of a Deserted Corpse",           0x40000191, DS3ItemCategory.SOUL, souls = 200),
 | |
|     DS3ItemData("Large Soul of a Deserted Corpse",     0x40000192, DS3ItemCategory.SOUL, souls = 400),
 | |
|     DS3ItemData("Soul of an Unknown Traveler",         0x40000193, DS3ItemCategory.SOUL, souls = 800),
 | |
|     DS3ItemData("Large Soul of an Unknown Traveler",   0x40000194, DS3ItemCategory.SOUL, souls = 1000),
 | |
|     DS3ItemData("Soul of a Nameless Soldier",          0x40000195, DS3ItemCategory.SOUL, souls = 2000),
 | |
|     DS3ItemData("Large Soul of a Nameless Soldier",    0x40000196, DS3ItemCategory.SOUL, souls = 3000),
 | |
|     DS3ItemData("Soul of a Weary Warrior",             0x40000197, DS3ItemCategory.SOUL, souls = 5000),
 | |
|     DS3ItemData("Large Soul of a Weary Warrior",       0x40000198, DS3ItemCategory.SOUL, souls = 8000),
 | |
|     DS3ItemData("Soul of a Crestfallen Knight",        0x40000199, DS3ItemCategory.SOUL, souls = 10000),
 | |
|     DS3ItemData("Large Soul of a Crestfallen Knight",  0x4000019A, DS3ItemCategory.SOUL, souls = 20000),
 | |
|     DS3ItemData("Soul of a Proud Paladin",             0x4000019B, DS3ItemCategory.SOUL, souls = 500),
 | |
|     DS3ItemData("Large Soul of a Proud Paladin",       0x4000019C, DS3ItemCategory.SOUL, souls = 1000),
 | |
|     DS3ItemData("Soul of an Intrepid Hero",            0x4000019D, DS3ItemCategory.SOUL, souls = 2000),
 | |
|     DS3ItemData("Large Soul of an Intrepid Hero",      0x4000019E, DS3ItemCategory.SOUL, souls = 2500),
 | |
|     DS3ItemData("Soul of a Seasoned Warrior",          0x4000019F, DS3ItemCategory.SOUL, souls = 5000),
 | |
|     DS3ItemData("Large Soul of a Seasoned Warrior",    0x400001A0, DS3ItemCategory.SOUL, souls = 7500),
 | |
|     DS3ItemData("Soul of an Old Hand",                 0x400001A1, DS3ItemCategory.SOUL, souls = 12500),
 | |
|     DS3ItemData("Soul of a Venerable Old Hand",        0x400001A2, DS3ItemCategory.SOUL, souls = 20000),
 | |
|     DS3ItemData("Soul of a Champion",                  0x400001A3, DS3ItemCategory.SOUL, souls = 25000),
 | |
|     DS3ItemData("Soul of a Great Champion",            0x400001A4, DS3ItemCategory.SOUL, souls = 50000),
 | |
|     DS3ItemData("Seed of a Giant Tree",                0x400001B8, DS3ItemCategory.UNIQUE,
 | |
|                 classification = ItemClassification.progression, inject = True), # Crow trade
 | |
|     *DS3ItemData("Mossfruit",                           0x400001C4, DS3ItemCategory.MISC, filler = True).counts([2]),
 | |
|     DS3ItemData("Young White Branch",                  0x400001C6, DS3ItemCategory.MISC),
 | |
|     *DS3ItemData("Rusted Coin",                         0x400001C7, DS3ItemCategory.MISC, filler = True).counts([2]),
 | |
|     DS3ItemData("Siegbräu",                            0x400001C8, DS3ItemCategory.MISC,
 | |
|                 classification = ItemClassification.progression), # Crow trade
 | |
|     *DS3ItemData("Rusted Gold Coin",                    0x400001C9, DS3ItemCategory.MISC, filler = True).counts([2, 3]),
 | |
|     *DS3ItemData("Blue Bug Pellet",                     0x400001CA, DS3ItemCategory.MISC, filler = True).counts([2]),
 | |
|     *DS3ItemData("Red Bug Pellet",                      0x400001CB, DS3ItemCategory.MISC, filler = True).counts([2, 3]),
 | |
|     *DS3ItemData("Yellow Bug Pellet",                   0x400001CC, DS3ItemCategory.MISC, filler = True).counts([2, 3]),
 | |
|     *DS3ItemData("Black Bug Pellet",                    0x400001CD, DS3ItemCategory.MISC, filler = True).counts([2, 3]),
 | |
|     DS3ItemData("Young White Branch",                  0x400001CF, DS3ItemCategory.MISC, skip = True),
 | |
|     DS3ItemData("Dark Sigil",                          0x400001EA, DS3ItemCategory.MISC, skip = True),
 | |
|     *DS3ItemData("Ember",                               0x400001F4, DS3ItemCategory.MISC, filler = True).counts([2]),
 | |
|     DS3ItemData("Hello Carving",                       0x40000208, DS3ItemCategory.UNIQUE, skip = True),
 | |
|     DS3ItemData("Thank you Carving",                   0x40000209, DS3ItemCategory.UNIQUE, skip = True),
 | |
|     DS3ItemData("Very good! Carving",                  0x4000020A, DS3ItemCategory.UNIQUE, skip = True),
 | |
|     DS3ItemData("I'm sorry Carving",                   0x4000020B, DS3ItemCategory.UNIQUE, skip = True),
 | |
|     DS3ItemData("Help me! Carving",                    0x4000020C, DS3ItemCategory.UNIQUE, skip = True),
 | |
|     DS3ItemData("Soul of Champion Gundyr",             0x400002C8, DS3ItemCategory.BOSS, souls = 20000,
 | |
|                 classification = ItemClassification.progression),
 | |
|     DS3ItemData("Soul of the Dancer",                  0x400002CA, DS3ItemCategory.BOSS, souls = 10000,
 | |
|                 classification = ItemClassification.progression),
 | |
|     DS3ItemData("Soul of a Crystal Sage",              0x400002CB, DS3ItemCategory.BOSS, souls = 3000,
 | |
|                 classification = ItemClassification.progression),
 | |
|     DS3ItemData("Soul of the Blood of the Wolf",       0x400002CD, DS3ItemCategory.BOSS, souls = 20000,
 | |
|                 classification = ItemClassification.progression),
 | |
|     DS3ItemData("Soul of Consumed Oceiros",            0x400002CE, DS3ItemCategory.BOSS, souls = 12000,
 | |
|                 classification = ItemClassification.progression),
 | |
|     DS3ItemData("Soul of Boreal Valley Vordt",         0x400002CF, DS3ItemCategory.BOSS, souls = 2000,
 | |
|                 classification = ItemClassification.progression),
 | |
|     DS3ItemData("Soul of the Old Demon King",          0x400002D0, DS3ItemCategory.BOSS, souls = 10000,
 | |
|                 classification = ItemClassification.progression),
 | |
|     DS3ItemData("Soul of Dragonslayer Armour",         0x400002D1, DS3ItemCategory.BOSS, souls = 15000,
 | |
|                 classification = ItemClassification.progression),
 | |
|     DS3ItemData("Soul of the Nameless King",           0x400002D2, DS3ItemCategory.BOSS, souls = 16000,
 | |
|                 classification = ItemClassification.progression),
 | |
|     DS3ItemData("Soul of Pontiff Sulyvahn",            0x400002D4, DS3ItemCategory.BOSS, souls = 12000,
 | |
|                 classification = ItemClassification.progression),
 | |
|     DS3ItemData("Soul of Aldrich",                     0x400002D5, DS3ItemCategory.BOSS, souls = 15000,
 | |
|                 classification = ItemClassification.progression),
 | |
|     DS3ItemData("Soul of High Lord Wolnir",            0x400002D6, DS3ItemCategory.BOSS, souls = 10000,
 | |
|                 classification = ItemClassification.progression),
 | |
|     DS3ItemData("Soul of the Rotted Greatwood",        0x400002D7, DS3ItemCategory.BOSS, souls = 3000,
 | |
|                 classification = ItemClassification.progression),
 | |
|     DS3ItemData("Soul of Rosaria",                     0x400002D8, DS3ItemCategory.BOSS, souls = 5000,
 | |
|                 classification = ItemClassification.progression),
 | |
|     DS3ItemData("Soul of the Deacons of the Deep",     0x400002D9, DS3ItemCategory.BOSS, souls = 20000,
 | |
|                 classification = ItemClassification.progression),
 | |
|     DS3ItemData("Soul of the Twin Princes",            0x400002DB, DS3ItemCategory.BOSS, souls = 20000,
 | |
|                 classification = ItemClassification.progression),
 | |
|     DS3ItemData("Soul of Yhorm the Giant",             0x400002DC, DS3ItemCategory.BOSS, souls = 20000,
 | |
|                 classification = ItemClassification.progression),
 | |
|     DS3ItemData("Soul of the Lords",                   0x400002DD, DS3ItemCategory.BOSS, souls = 20000,
 | |
|                 classification = ItemClassification.progression),
 | |
|     DS3ItemData("Soul of a Demon",                     0x400002E3, DS3ItemCategory.BOSS, souls = 20000,
 | |
|                 classification = ItemClassification.progression),
 | |
|     DS3ItemData("Soul of a Stray Demon",               0x400002E7, DS3ItemCategory.BOSS, souls = 20000,
 | |
|                 classification = ItemClassification.progression),
 | |
|     *DS3ItemData("Titanite Shard",                      0x400003E8, DS3ItemCategory.UPGRADE).counts([2]),
 | |
|     *DS3ItemData("Large Titanite Shard",                0x400003E9, DS3ItemCategory.UPGRADE).counts([2, 3]),
 | |
|     *DS3ItemData("Titanite Chunk",                      0x400003EA, DS3ItemCategory.UPGRADE).counts([2, 6]),
 | |
|     DS3ItemData("Titanite Slab",                       0x400003EB, DS3ItemCategory.UPGRADE,
 | |
|                 classification = ItemClassification.useful),
 | |
|     *DS3ItemData("Titanite Scale",                      0x400003FC, DS3ItemCategory.UPGRADE).counts([2, 3]),
 | |
|     *DS3ItemData("Twinkling Titanite",                  0x40000406, DS3ItemCategory.UPGRADE).counts([2, 3]),
 | |
|     DS3ItemData("Heavy Gem",                           0x4000044C, DS3ItemCategory.UPGRADE),
 | |
|     DS3ItemData("Sharp Gem",                           0x40000456, DS3ItemCategory.UPGRADE),
 | |
|     DS3ItemData("Refined Gem",                         0x40000460, DS3ItemCategory.UPGRADE),
 | |
|     DS3ItemData("Crystal Gem",                         0x4000046A, DS3ItemCategory.UPGRADE),
 | |
|     DS3ItemData("Simple Gem",                          0x40000474, DS3ItemCategory.UPGRADE),
 | |
|     DS3ItemData("Fire Gem",                            0x4000047E, DS3ItemCategory.UPGRADE),
 | |
|     DS3ItemData("Chaos Gem",                           0x40000488, DS3ItemCategory.UPGRADE),
 | |
|     DS3ItemData("Lightning Gem",                       0x40000492, DS3ItemCategory.UPGRADE),
 | |
|     DS3ItemData("Deep Gem",                            0x4000049C, DS3ItemCategory.UPGRADE),
 | |
|     DS3ItemData("Dark Gem",                            0x400004A6, DS3ItemCategory.UPGRADE),
 | |
|     DS3ItemData("Poison Gem",                          0x400004B0, DS3ItemCategory.UPGRADE),
 | |
|     DS3ItemData("Blood Gem",                           0x400004BA, DS3ItemCategory.UPGRADE),
 | |
|     DS3ItemData("Raw Gem",                             0x400004C4, DS3ItemCategory.UPGRADE),
 | |
|     DS3ItemData("Blessed Gem",                         0x400004CE, DS3ItemCategory.UPGRADE),
 | |
|     DS3ItemData("Hollow Gem",                          0x400004D8, DS3ItemCategory.UPGRADE),
 | |
|     DS3ItemData("Shriving Stone",                      0x400004E2, DS3ItemCategory.UPGRADE),
 | |
|     DS3ItemData("Lift Chamber Key",                    0x400007D1, DS3ItemCategory.UNIQUE,
 | |
|                 classification = ItemClassification.progression),
 | |
|     DS3ItemData("Small Doll",                          0x400007D5, DS3ItemCategory.UNIQUE,
 | |
|                 classification = ItemClassification.progression),
 | |
|     DS3ItemData("Jailbreaker's Key",                   0x400007D7, DS3ItemCategory.UNIQUE,
 | |
|                 classification = ItemClassification.progression),
 | |
|     DS3ItemData("Jailer's Key Ring",                   0x400007D8, DS3ItemCategory.UNIQUE,
 | |
|                 classification = ItemClassification.progression),
 | |
|     DS3ItemData("Grave Key",                           0x400007D9, DS3ItemCategory.UNIQUE),
 | |
|     DS3ItemData("Cell Key",                            0x400007DA, DS3ItemCategory.UNIQUE,
 | |
|                 classification = ItemClassification.progression),
 | |
|     DS3ItemData("Dungeon Ground Floor Key",            0x400007DB, DS3ItemCategory.UNIQUE),
 | |
|     DS3ItemData("Old Cell Key",                        0x400007DC, DS3ItemCategory.UNIQUE,
 | |
|                 classification = ItemClassification.progression),
 | |
|     DS3ItemData("Grand Archives Key",                  0x400007DE, DS3ItemCategory.UNIQUE,
 | |
|                 classification = ItemClassification.progression),
 | |
|     DS3ItemData("Tower Key",                           0x400007DF, DS3ItemCategory.UNIQUE,
 | |
|                 classification = ItemClassification.progression),
 | |
|     DS3ItemData("Small Lothric Banner",                0x40000836, DS3ItemCategory.UNIQUE,
 | |
|                 classification = ItemClassification.progression),
 | |
|     DS3ItemData("Farron Coal",                         0x40000837, DS3ItemCategory.UNIQUE,
 | |
|                 classification = ItemClassification.useful),
 | |
|     DS3ItemData("Sage's Coal",                         0x40000838, DS3ItemCategory.UNIQUE,
 | |
|                 classification = ItemClassification.useful),
 | |
|     DS3ItemData("Giant's Coal",                        0x40000839, DS3ItemCategory.UNIQUE,
 | |
|                 classification = ItemClassification.useful),
 | |
|     DS3ItemData("Profaned Coal",                       0x4000083A, DS3ItemCategory.UNIQUE,
 | |
|                 classification = ItemClassification.useful),
 | |
|     DS3ItemData("Mortician's Ashes",                   0x4000083B, DS3ItemCategory.UNIQUE,
 | |
|                 classification = ItemClassification.progression),
 | |
|     DS3ItemData("Dreamchaser's Ashes",                 0x4000083C, DS3ItemCategory.UNIQUE,
 | |
|                 classification = ItemClassification.progression),
 | |
|     DS3ItemData("Paladin's Ashes",                     0x4000083D, DS3ItemCategory.UNIQUE,
 | |
|                 classification = ItemClassification.progression),
 | |
|     DS3ItemData("Grave Warden's Ashes",                0x4000083E, DS3ItemCategory.UNIQUE,
 | |
|                 classification = ItemClassification.progression),
 | |
|     DS3ItemData("Greirat's Ashes",                     0x4000083F, DS3ItemCategory.UNIQUE),
 | |
|     DS3ItemData("Orbeck's Ashes",                      0x40000840, DS3ItemCategory.UNIQUE),
 | |
|     DS3ItemData("Cornyx's Ashes",                      0x40000841, DS3ItemCategory.UNIQUE),
 | |
|     DS3ItemData("Karla's Ashes",                       0x40000842, DS3ItemCategory.UNIQUE),
 | |
|     DS3ItemData("Irina's Ashes",                       0x40000843, DS3ItemCategory.UNIQUE),
 | |
|     DS3ItemData("Yuria's Ashes",                       0x40000844, DS3ItemCategory.UNIQUE),
 | |
|     DS3ItemData("Basin of Vows",                       0x40000845, DS3ItemCategory.UNIQUE,
 | |
|                 classification = ItemClassification.progression),
 | |
|     DS3ItemData("Loretta's Bone",                      0x40000846, DS3ItemCategory.UNIQUE,
 | |
|                 classification = ItemClassification.progression),
 | |
|     DS3ItemData("Braille Divine Tome of Carim",        0x40000847, DS3ItemCategory.UNIQUE,
 | |
|                 classification = ItemClassification.progression),
 | |
|     DS3ItemData("Braille Divine Tome of Lothric",      0x40000848, DS3ItemCategory.UNIQUE,
 | |
|                 classification = ItemClassification.progression),
 | |
|     DS3ItemData("Cinders of a Lord - Abyss Watcher",   0x4000084B, DS3ItemCategory.UNIQUE,
 | |
|                 classification = ItemClassification.progression),
 | |
|     DS3ItemData("Cinders of a Lord - Aldrich",         0x4000084C, DS3ItemCategory.UNIQUE,
 | |
|                 classification = ItemClassification.progression),
 | |
|     DS3ItemData("Cinders of a Lord - Yhorm the Giant", 0x4000084D, DS3ItemCategory.UNIQUE,
 | |
|                 classification = ItemClassification.progression),
 | |
|     DS3ItemData("Cinders of a Lord - Lothric Prince",  0x4000084E, DS3ItemCategory.UNIQUE,
 | |
|                 classification = ItemClassification.progression),
 | |
|     DS3ItemData("Great Swamp Pyromancy Tome",          0x4000084F, DS3ItemCategory.UNIQUE,
 | |
|                 classification = ItemClassification.progression),
 | |
|     DS3ItemData("Carthus Pyromancy Tome",              0x40000850, DS3ItemCategory.UNIQUE,
 | |
|                 classification = ItemClassification.progression),
 | |
|     DS3ItemData("Izalith Pyromancy Tome",              0x40000851, DS3ItemCategory.UNIQUE,
 | |
|                 classification = ItemClassification.progression),
 | |
|     DS3ItemData("Quelana Pyromancy Tome",              0x40000852, DS3ItemCategory.UNIQUE,
 | |
|                 classification = ItemClassification.progression),
 | |
|     DS3ItemData("Grave Warden Pyromancy Tome",         0x40000853, DS3ItemCategory.UNIQUE,
 | |
|                 classification = ItemClassification.progression),
 | |
|     DS3ItemData("Sage's Scroll",                       0x40000854, DS3ItemCategory.UNIQUE,
 | |
|                 classification = ItemClassification.progression),
 | |
|     DS3ItemData("Logan's Scroll",                      0x40000855, DS3ItemCategory.UNIQUE,
 | |
|                 classification = ItemClassification.progression),
 | |
|     DS3ItemData("Crystal Scroll",                      0x40000856, DS3ItemCategory.UNIQUE,
 | |
|                 classification = ItemClassification.progression),
 | |
|     DS3ItemData("Transposing Kiln",                    0x40000857, DS3ItemCategory.UNIQUE,
 | |
|                 classification = ItemClassification.progression),
 | |
|     DS3ItemData("Coiled Sword",                        0x40000859, DS3ItemCategory.UNIQUE,
 | |
|                 classification = ItemClassification.progression),
 | |
|     DS3ItemData("Eyes of a Fire Keeper",               0x4000085A, DS3ItemCategory.UNIQUE,
 | |
|                 classification = ItemClassification.useful), # Allow players to do any ending
 | |
|     DS3ItemData("Sword of Avowal",                     0x4000085B, DS3ItemCategory.UNIQUE,
 | |
|                 classification = ItemClassification.useful),
 | |
|     DS3ItemData("Golden Scroll",                       0x4000085C, DS3ItemCategory.UNIQUE,
 | |
|                 classification = ItemClassification.progression),
 | |
|     DS3ItemData("Estus Shard",                         0x4000085D, DS3ItemCategory.HEALING,
 | |
|                 classification = ItemClassification.useful),
 | |
|     DS3ItemData("Hawkwood's Swordgrass",               0x4000085E, DS3ItemCategory.UNIQUE, skip = True),
 | |
|     DS3ItemData("Undead Bone Shard",                   0x4000085F, DS3ItemCategory.HEALING,
 | |
|                 classification = ItemClassification.useful),
 | |
|     DS3ItemData("Deep Braille Divine Tome",            0x40000860, DS3ItemCategory.UNIQUE,
 | |
|                 classification = ItemClassification.progression),
 | |
|     DS3ItemData("Londor Braille Divine Tome",          0x40000861, DS3ItemCategory.UNIQUE,
 | |
|                 classification = ItemClassification.progression),
 | |
|     DS3ItemData("Excrement-covered Ashes",             0x40000862, DS3ItemCategory.UNIQUE,
 | |
|                 classification = ItemClassification.useful),
 | |
|     DS3ItemData("Prisoner Chief's Ashes",              0x40000863, DS3ItemCategory.UNIQUE,
 | |
|                 classification = ItemClassification.progression),
 | |
|     DS3ItemData("Xanthous Ashes",                      0x40000864, DS3ItemCategory.UNIQUE,
 | |
|                 classification = ItemClassification.progression),
 | |
|     DS3ItemData("Hollow's Ashes",                      0x40000865, DS3ItemCategory.UNIQUE),
 | |
|     DS3ItemData("Patches' Ashes",                      0x40000866, DS3ItemCategory.UNIQUE),
 | |
|     DS3ItemData("Dragon Chaser's Ashes",               0x40000867, DS3ItemCategory.UNIQUE,
 | |
|                 classification = ItemClassification.progression),
 | |
|     DS3ItemData("Easterner's Ashes",                   0x40000868, DS3ItemCategory.UNIQUE,
 | |
|                 classification = ItemClassification.progression),
 | |
| 
 | |
|     # Fake item for controlling access to Archdragon Peak. The real drop isn't actually an item as
 | |
|     # such, so we have to inject this because there's no slot for it to come from.
 | |
|     DS3ItemData("Path of the Dragon",                  0x40002346, DS3ItemCategory.UNIQUE,
 | |
|                 inject = True, classification = ItemClassification.progression),
 | |
| 
 | |
|     # Spells
 | |
|     DS3ItemData("Farron Dart",                         0x40124F80, DS3ItemCategory.SPELL),
 | |
|     DS3ItemData("Great Farron Dart",                   0x40127690, DS3ItemCategory.SPELL),
 | |
|     DS3ItemData("Soul Arrow",                          0x4013D620, DS3ItemCategory.SPELL),
 | |
|     DS3ItemData("Great Soul Arrow",                    0x4013DA08, DS3ItemCategory.SPELL),
 | |
|     DS3ItemData("Heavy Soul Arrow",                    0x4013DDF0, DS3ItemCategory.SPELL),
 | |
|     DS3ItemData("Great Heavy Soul Arrow",              0x4013E1D8, DS3ItemCategory.SPELL),
 | |
|     DS3ItemData("Homing Soulmass",                     0x4013E5C0, DS3ItemCategory.SPELL),
 | |
|     DS3ItemData("Homing Crystal Soulmass",             0x4013E9A8, DS3ItemCategory.SPELL),
 | |
|     DS3ItemData("Soul Spear",                          0x4013ED90, DS3ItemCategory.SPELL),
 | |
|     DS3ItemData("Crystal Soul Spear",                  0x4013F178, DS3ItemCategory.SPELL),
 | |
|     DS3ItemData("Deep Soul",                           0x4013F560, DS3ItemCategory.SPELL),
 | |
|     DS3ItemData("Great Deep Soul",                     0x4013F948, DS3ItemCategory.SPELL,
 | |
|                 inject = True), # Covenant reward
 | |
|     DS3ItemData("Magic Weapon",                        0x4013FD30, DS3ItemCategory.SPELL),
 | |
|     DS3ItemData("Great Magic Weapon",                  0x40140118, DS3ItemCategory.SPELL),
 | |
|     DS3ItemData("Crystal Magic Weapon",                0x40140500, DS3ItemCategory.SPELL),
 | |
|     DS3ItemData("Magic Shield",                        0x40144B50, DS3ItemCategory.SPELL),
 | |
|     DS3ItemData("Great Magic Shield",                  0x40144F38, DS3ItemCategory.SPELL),
 | |
|     DS3ItemData("Hidden Weapon",                       0x40147260, DS3ItemCategory.SPELL),
 | |
|     DS3ItemData("Hidden Body",                         0x40147648, DS3ItemCategory.SPELL,
 | |
|                 classification = ItemClassification.useful),
 | |
|     DS3ItemData("Cast Light",                          0x40149970, DS3ItemCategory.SPELL),
 | |
|     DS3ItemData("Repair",                              0x4014A528, DS3ItemCategory.SPELL),
 | |
|     DS3ItemData("Spook",                               0x4014A910, DS3ItemCategory.SPELL,
 | |
|                 classification = ItemClassification.useful),
 | |
|     DS3ItemData("Chameleon",                           0x4014ACF8, DS3ItemCategory.SPELL,
 | |
|                 classification = ItemClassification.progression),
 | |
|     DS3ItemData("Aural Decoy",                         0x4014B0E0, DS3ItemCategory.SPELL),
 | |
|     DS3ItemData("White Dragon Breath",                 0x4014E790, DS3ItemCategory.SPELL),
 | |
|     DS3ItemData("Farron Hail",                         0x4014EF60, DS3ItemCategory.SPELL),
 | |
|     DS3ItemData("Crystal Hail",                        0x4014F348, DS3ItemCategory.SPELL),
 | |
|     DS3ItemData("Soul Greatsword",                     0x4014F730, DS3ItemCategory.SPELL),
 | |
|     DS3ItemData("Farron Flashsword",                   0x4014FB18, DS3ItemCategory.SPELL),
 | |
|     DS3ItemData("Affinity",                            0x401875B8, DS3ItemCategory.SPELL),
 | |
|     DS3ItemData("Dark Edge",                           0x40189CC8, DS3ItemCategory.SPELL),
 | |
|     DS3ItemData("Soul Stream",                         0x4018B820, DS3ItemCategory.SPELL),
 | |
|     DS3ItemData("Twisted Wall of Light",               0x40193138, DS3ItemCategory.SPELL),
 | |
|     DS3ItemData("Pestilent Mist",                      0x401A8CE0, DS3ItemCategory.SPELL,
 | |
|                 classification = ItemClassification.useful), # Originally called "Pestilent Mercury" pre 1.15
 | |
|     DS3ItemData("Fireball",                            0x40249F00, DS3ItemCategory.SPELL),
 | |
|     DS3ItemData("Fire Orb",                            0x4024A6D0, DS3ItemCategory.SPELL),
 | |
|     DS3ItemData("Firestorm",                           0x4024AAB8, DS3ItemCategory.SPELL),
 | |
|     DS3ItemData("Fire Surge",                          0x4024B288, DS3ItemCategory.SPELL),
 | |
|     DS3ItemData("Black Serpent",                       0x4024BA58, DS3ItemCategory.SPELL),
 | |
|     DS3ItemData("Combustion",                          0x4024C610, DS3ItemCategory.SPELL),
 | |
|     DS3ItemData("Great Combustion",                    0x4024C9F8, DS3ItemCategory.SPELL),
 | |
|     DS3ItemData("Poison Mist",                         0x4024ED20, DS3ItemCategory.SPELL),
 | |
|     DS3ItemData("Toxic Mist",                          0x4024F108, DS3ItemCategory.SPELL),
 | |
|     DS3ItemData("Acid Surge",                          0x4024F4F0, DS3ItemCategory.SPELL),
 | |
|     DS3ItemData("Iron Flesh",                          0x40251430, DS3ItemCategory.SPELL),
 | |
|     DS3ItemData("Flash Sweat",                         0x40251818, DS3ItemCategory.SPELL),
 | |
|     DS3ItemData("Carthus Flame Arc",                   0x402527B8, DS3ItemCategory.SPELL),
 | |
|     DS3ItemData("Rapport",                             0x40252BA0, DS3ItemCategory.SPELL,
 | |
|                 classification = ItemClassification.useful),
 | |
|     DS3ItemData("Power Within",                        0x40253B40, DS3ItemCategory.SPELL,
 | |
|                 classification = ItemClassification.useful),
 | |
|     DS3ItemData("Great Chaos Fire Orb",                0x40256250, DS3ItemCategory.SPELL),
 | |
|     DS3ItemData("Chaos Storm",                         0x40256638, DS3ItemCategory.SPELL),
 | |
|     DS3ItemData("Fire Whip",                           0x40256A20, DS3ItemCategory.SPELL),
 | |
|     DS3ItemData("Black Flame",                         0x40256E08, DS3ItemCategory.SPELL),
 | |
|     DS3ItemData("Profaned Flame",                      0x402575D8, DS3ItemCategory.SPELL),
 | |
|     DS3ItemData("Chaos Bed Vestiges",                  0x402579C0, DS3ItemCategory.SPELL),
 | |
|     DS3ItemData("Warmth",                              0x4025B070, DS3ItemCategory.SPELL,
 | |
|                 inject = True), # Covenant reward
 | |
|     DS3ItemData("Profuse Sweat",                       0x402717D0, DS3ItemCategory.SPELL),
 | |
|     DS3ItemData("Black Fire Orb",                      0x4027D350, DS3ItemCategory.SPELL),
 | |
|     DS3ItemData("Bursting Fireball",                   0x4027FA60, DS3ItemCategory.SPELL),
 | |
|     DS3ItemData("Boulder Heave",                       0x40282170, DS3ItemCategory.SPELL),
 | |
|     DS3ItemData("Sacred Flame",                        0x40284880, DS3ItemCategory.SPELL),
 | |
|     DS3ItemData("Carthus Beacon",                      0x40286F90, DS3ItemCategory.SPELL),
 | |
|     DS3ItemData("Heal Aid",                            0x403540D0, DS3ItemCategory.SPELL),
 | |
|     DS3ItemData("Heal",                                0x403567E0, DS3ItemCategory.SPELL),
 | |
|     DS3ItemData("Med Heal",                            0x40356BC8, DS3ItemCategory.SPELL,
 | |
|                 classification = ItemClassification.useful),
 | |
|     DS3ItemData("Great Heal",                          0x40356FB0, DS3ItemCategory.SPELL),
 | |
|     DS3ItemData("Soothing Sunlight",                   0x40357398, DS3ItemCategory.SPELL),
 | |
|     DS3ItemData("Replenishment",                       0x40357780, DS3ItemCategory.SPELL),
 | |
|     DS3ItemData("Bountiful Sunlight",                  0x40357B68, DS3ItemCategory.SPELL),
 | |
|     DS3ItemData("Bountiful Light",                     0x40358338, DS3ItemCategory.SPELL),
 | |
|     DS3ItemData("Caressing Tears",                     0x40358720, DS3ItemCategory.SPELL),
 | |
|     DS3ItemData("Tears of Denial",                     0x4035B600, DS3ItemCategory.SPELL,
 | |
|                 classification = ItemClassification.useful),
 | |
|     DS3ItemData("Homeward",                            0x4035B9E8, DS3ItemCategory.SPELL,
 | |
|                 classification = ItemClassification.useful),
 | |
|     DS3ItemData("Force",                               0x4035DD10, DS3ItemCategory.SPELL),
 | |
|     DS3ItemData("Wrath of the Gods",                   0x4035E0F8, DS3ItemCategory.SPELL),
 | |
|     DS3ItemData("Emit Force",                          0x4035E4E0, DS3ItemCategory.SPELL),
 | |
|     DS3ItemData("Seek Guidance",                       0x40360420, DS3ItemCategory.SPELL),
 | |
|     DS3ItemData("Lightning Spear",                     0x40362B30, DS3ItemCategory.SPELL),
 | |
|     DS3ItemData("Great Lightning Spear",               0x40362F18, DS3ItemCategory.SPELL,
 | |
|                 inject = True), # Covenant reward
 | |
|     DS3ItemData("Sunlight Spear",                      0x40363300, DS3ItemCategory.SPELL),
 | |
|     DS3ItemData("Lightning Storm",                     0x403636E8, DS3ItemCategory.SPELL),
 | |
|     DS3ItemData("Gnaw",                                0x40363AD0, DS3ItemCategory.SPELL),
 | |
|     DS3ItemData("Dorhys' Gnawing",                     0x40363EB8, DS3ItemCategory.SPELL),
 | |
|     DS3ItemData("Magic Barrier",                       0x40365240, DS3ItemCategory.SPELL),
 | |
|     DS3ItemData("Great Magic Barrier",                 0x40365628, DS3ItemCategory.SPELL),
 | |
|     DS3ItemData("Sacred Oath",                         0x40365DF8, DS3ItemCategory.SPELL,
 | |
|                 inject = True), # Covenant reward
 | |
|     DS3ItemData("Vow of Silence",                      0x4036A448, DS3ItemCategory.SPELL),
 | |
|     DS3ItemData("Lightning Blade",                     0x4036C770, DS3ItemCategory.SPELL),
 | |
|     DS3ItemData("Darkmoon Blade",                      0x4036CB58, DS3ItemCategory.SPELL,
 | |
|                 inject = True), # Covenant reward
 | |
|     DS3ItemData("Dark Blade",                          0x40378AC0, DS3ItemCategory.SPELL),
 | |
|     DS3ItemData("Dead Again",                          0x40387520, DS3ItemCategory.SPELL),
 | |
|     DS3ItemData("Lightning Stake",                     0x40389C30, DS3ItemCategory.SPELL),
 | |
|     DS3ItemData("Divine Pillars of Light",             0x4038C340, DS3ItemCategory.SPELL),
 | |
|     DS3ItemData("Lifehunt Scythe",                     0x4038EA50, DS3ItemCategory.SPELL),
 | |
|     DS3ItemData("Blessed Weapon",                      0x40395F80, DS3ItemCategory.SPELL),
 | |
|     DS3ItemData("Deep Protection",                     0x40398690, DS3ItemCategory.SPELL),
 | |
|     DS3ItemData("Atonement",                           0x4039ADA0, DS3ItemCategory.SPELL),
 | |
| ]
 | |
| 
 | |
| _dlc_items = [
 | |
|     # Ammunition
 | |
|     *DS3ItemData("Millwood Greatarrow",              0x000623E0, DS3ItemCategory.MISC).counts([5]),
 | |
| 
 | |
|     # Weapons
 | |
|     DS3ItemData("Aquamarine Dagger",                0x00116520, DS3ItemCategory.WEAPON_UPGRADE_5),
 | |
|     DS3ItemData("Murky Hand Scythe",                0x00118C30, DS3ItemCategory.WEAPON_UPGRADE_10_INFUSIBLE),
 | |
|     DS3ItemData("Onyx Blade",                       0x00222E00, DS3ItemCategory.WEAPON_UPGRADE_5),
 | |
|     DS3ItemData("Ringed Knight Straight Sword",     0x00225510, DS3ItemCategory.WEAPON_UPGRADE_5),
 | |
|     DS3ItemData("Gael's Greatsword",                0x00227C20, DS3ItemCategory.WEAPON_UPGRADE_5),
 | |
|     DS3ItemData("Follower Sabre",                   0x003EDDC0, DS3ItemCategory.WEAPON_UPGRADE_10_INFUSIBLE),
 | |
|     DS3ItemData("Demon's Scar",                     0x003F04D0, DS3ItemCategory.WEAPON_UPGRADE_5),
 | |
|     DS3ItemData("Frayed Blade",                     0x004D35A0, DS3ItemCategory.WEAPON_UPGRADE_5),
 | |
|     DS3ItemData("Harald Curved Greatsword",         0x006159E0, DS3ItemCategory.WEAPON_UPGRADE_10_INFUSIBLE),
 | |
|     DS3ItemData("Millwood Battle Axe",              0x006D67D0, DS3ItemCategory.WEAPON_UPGRADE_10_INFUSIBLE),
 | |
|     DS3ItemData("Earth Seeker",                     0x006D8EE0, DS3ItemCategory.WEAPON_UPGRADE_5),
 | |
|     DS3ItemData("Quakestone Hammer",                0x007ECCF0, DS3ItemCategory.WEAPON_UPGRADE_5),
 | |
|     DS3ItemData("Ledo's Great Hammer",              0x007EF400, DS3ItemCategory.WEAPON_UPGRADE_5),
 | |
|     DS3ItemData("Follower Javelin",                 0x008CD6B0, DS3ItemCategory.WEAPON_UPGRADE_10_INFUSIBLE),
 | |
|     DS3ItemData("Ringed Knight Spear",              0x008CFDC0, DS3ItemCategory.WEAPON_UPGRADE_5),
 | |
|     DS3ItemData("Lothric War Banner",               0x008D24D0, DS3ItemCategory.WEAPON_UPGRADE_10_INFUSIBLE),
 | |
|     DS3ItemData("Crucifix of the Mad King",         0x008D4BE0, DS3ItemCategory.WEAPON_UPGRADE_5),
 | |
|     DS3ItemData("Splitleaf Greatsword",             0x009B2E90, DS3ItemCategory.WEAPON_UPGRADE_10_INFUSIBLE),
 | |
|     DS3ItemData("Friede's Great Scythe",            0x009B55A0, DS3ItemCategory.WEAPON_UPGRADE_5),
 | |
|     DS3ItemData("Crow Talons",                      0x00A89C10, DS3ItemCategory.WEAPON_UPGRADE_10_INFUSIBLE),
 | |
|     DS3ItemData("Rose of Ariandel",                 0x00B82C70, DS3ItemCategory.WEAPON_UPGRADE_5),
 | |
|     DS3ItemData("Pyromancer's Parting Flame",       0x00CC9ED0, DS3ItemCategory.WEAPON_UPGRADE_10),
 | |
|     DS3ItemData("Murky Longstaff",                  0x00CCC5E0, DS3ItemCategory.WEAPON_UPGRADE_10),
 | |
|     DS3ItemData("Sacred Chime of Filianore",        0x00CCECF0, DS3ItemCategory.WEAPON_UPGRADE_5),
 | |
|     DS3ItemData("Preacher's Right Arm",             0x00CD1400, DS3ItemCategory.WEAPON_UPGRADE_5),
 | |
|     DS3ItemData("White Birch Bow",                  0x00D77440, DS3ItemCategory.WEAPON_UPGRADE_5),
 | |
|     DS3ItemData("Millwood Greatbow",                0x00D85EA0, DS3ItemCategory.WEAPON_UPGRADE_5),
 | |
|     DS3ItemData("Repeating Crossbow",               0x00D885B0, DS3ItemCategory.WEAPON_UPGRADE_5),
 | |
|     DS3ItemData("Giant Door Shield",                0x00F5F8C0, DS3ItemCategory.SHIELD_INFUSIBLE),
 | |
|     DS3ItemData("Valorheart",                       0x00F646E0, DS3ItemCategory.WEAPON_UPGRADE_5),
 | |
|     DS3ItemData("Crow Quills",                      0x00F66DF0, DS3ItemCategory.WEAPON_UPGRADE_10_INFUSIBLE),
 | |
|     DS3ItemData("Ringed Knight Paired Greatswords", 0x00F69500, DS3ItemCategory.WEAPON_UPGRADE_5),
 | |
| 
 | |
|     # Shields
 | |
|     DS3ItemData("Follower Shield",                  0x0135C0E0, DS3ItemCategory.SHIELD_INFUSIBLE),
 | |
|     DS3ItemData("Dragonhead Shield",                0x0135E7F0, DS3ItemCategory.SHIELD),
 | |
|     DS3ItemData("Ethereal Oak Shield",              0x01450320, DS3ItemCategory.SHIELD),
 | |
|     DS3ItemData("Dragonhead Greatshield",           0x01452A30, DS3ItemCategory.SHIELD),
 | |
|     DS3ItemData("Follower Torch",                   0x015F1AD0, DS3ItemCategory.SHIELD),
 | |
| 
 | |
|     # Armor
 | |
|     DS3ItemData("Vilhelm's Helm",                   0x11312D00, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Vilhelm's Armor",                  0x113130E8, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Vilhelm's Gauntlets",              0x113134D0, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Vilhelm's Leggings",               0x113138B8, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Antiquated Plain Garb",            0x11B2E408, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Violet Wrappings",                 0x11B2E7F0, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Loincloth 2",                      0x11B2EBD8, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Shira's Crown",                    0x11C22260, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Shira's Armor",                    0x11C22648, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Shira's Gloves",                   0x11C22A30, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Shira's Trousers",                 0x11C22E18, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Lapp's Helm",                      0x11E84800, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Lapp's Armor",                     0x11E84BE8, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Lapp's Gauntlets",                 0x11E84FD0, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Lapp's Leggings",                  0x11E853B8, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Slave Knight Hood",                0x134EDCE0, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Slave Knight Armor",               0x134EE0C8, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Slave Knight Gauntlets",           0x134EE4B0, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Slave Knight Leggings",            0x134EE898, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Ordained Hood",                    0x135E1F20, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Ordained Dress",                   0x135E2308, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Ordained Trousers",                0x135E2AD8, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Follower Helm",                    0x137CA3A0, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Follower Armor",                   0x137CA788, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Follower Gloves",                  0x137CAB70, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Follower Boots",                   0x137CAF58, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Millwood Knight Helm",             0x139B2820, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Millwood Knight Armor",            0x139B2C08, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Millwood Knight Gauntlets",        0x139B2FF0, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Millwood Knight Leggings",         0x139B33D8, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Ringed Knight Hood",               0x13C8EEE0, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Ringed Knight Armor",              0x13C8F2C8, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Ringed Knight Gauntlets",          0x13C8F6B0, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Ringed Knight Leggings",           0x13C8FA98, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Harald Legion Armor",              0x13D83508, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Harald Legion Gauntlets",          0x13D838F0, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Harald Legion Leggings",           0x13D83CD8, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Iron Dragonslayer Helm",           0x1405F7E0, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Iron Dragonslayer Armor",          0x1405FBC8, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Iron Dragonslayer Gauntlets",      0x1405FFB0, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Iron Dragonslayer Leggings",       0x14060398, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("White Preacher Head",              0x14153A20, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Ruin Helm",                        0x14CC5520, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Ruin Armor",                       0x14CC5908, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Ruin Gauntlets",                   0x14CC5CF0, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Ruin Leggings",                    0x14CC60D8, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Desert Pyromancer Hood",           0x14DB9760, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Desert Pyromancer Garb",           0x14DB9B48, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Desert Pyromancer Gloves",         0x14DB9F30, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Desert Pyromancer Skirt",          0x14DBA318, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Black Witch Hat",                  0x14EAD9A0, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Black Witch Garb",                 0x14EADD88, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Black Witch Wrappings",            0x14EAE170, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Black Witch Trousers",             0x14EAE558, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Black Witch Veil",                 0x14FA1BE0, DS3ItemCategory.ARMOR),
 | |
|     DS3ItemData("Blindfold Mask",                   0x15095E20, DS3ItemCategory.ARMOR),
 | |
| 
 | |
|     # Covenants
 | |
|     DS3ItemData("Spear of the Church",              0x2000276A, DS3ItemCategory.UNIQUE, skip = True),
 | |
| 
 | |
|     # Rings
 | |
|     DS3ItemData("Chloranthy Ring+3",                0x20004E2D, DS3ItemCategory.RING,
 | |
|                 classification = ItemClassification.useful),
 | |
|     DS3ItemData("Havel's Ring+3",                   0x20004E37, DS3ItemCategory.RING,
 | |
|                 classification = ItemClassification.useful),
 | |
|     DS3ItemData("Ring of Favor+3",                  0x20004E41, DS3ItemCategory.RING,
 | |
|                 classification = ItemClassification.useful),
 | |
|     DS3ItemData("Ring of Steel Protection+3",       0x20004E4B, DS3ItemCategory.RING,
 | |
|                 classification = ItemClassification.useful),
 | |
|     DS3ItemData("Wolf Ring+3",                      0x20004EE1, DS3ItemCategory.RING),
 | |
|     DS3ItemData("Covetous Gold Serpent Ring+3",     0x20004FA9, DS3ItemCategory.RING),
 | |
|     DS3ItemData("Covetous Silver Serpent Ring+3",   0x20004FB3, DS3ItemCategory.RING,
 | |
|                 classification = ItemClassification.useful),
 | |
|     DS3ItemData("Ring of the Evil Eye+3",           0x20005071, DS3ItemCategory.RING),
 | |
|     DS3ItemData("Chillbite Ring",                   0x20005208, DS3ItemCategory.RING),
 | |
| 
 | |
|     # Items
 | |
|     DS3ItemData("Church Guardian Shiv",             0x4000013B, DS3ItemCategory.MISC),
 | |
|     DS3ItemData("Filianore's Spear Ornament",       0x4000017B, DS3ItemCategory.UNIQUE, skip = True),
 | |
|     DS3ItemData("Ritual Spear Fragment",            0x4000028A, DS3ItemCategory.UNIQUE, skip = True),
 | |
|     DS3ItemData("Divine Spear Fragment",            0x4000028B, DS3ItemCategory.UNIQUE, skip = True),
 | |
|     DS3ItemData("Soul of Sister Friede",            0x400002E8, DS3ItemCategory.BOSS, souls = 20000,
 | |
|                 classification = ItemClassification.progression),
 | |
|     DS3ItemData("Soul of Slave Knight Gael",        0x400002E9, DS3ItemCategory.BOSS, souls = 20000,
 | |
|                 classification = ItemClassification.progression),
 | |
|     DS3ItemData("Soul of the Demon Prince",         0x400002EA, DS3ItemCategory.BOSS, souls = 20000,
 | |
|                 classification = ItemClassification.progression),
 | |
|     DS3ItemData("Soul of Darkeater Midir",          0x400002EB, DS3ItemCategory.BOSS, souls = 20000,
 | |
|                 classification = ItemClassification.progression),
 | |
|     DS3ItemData("Champion's Bones",                 0x40000869, DS3ItemCategory.UNIQUE, skip = True),
 | |
|     DS3ItemData("Captain's Ashes",                  0x4000086A, DS3ItemCategory.MISC,
 | |
|                 classification = ItemClassification.progression),
 | |
|     DS3ItemData("Contraption Key",                  0x4000086B, DS3ItemCategory.UNIQUE,
 | |
|                 classification = ItemClassification.progression),
 | |
|     DS3ItemData("Small Envoy Banner",               0x4000086C, DS3ItemCategory.UNIQUE,
 | |
|                 classification = ItemClassification.progression),
 | |
|     DS3ItemData("Old Woman's Ashes",                0x4000086D, DS3ItemCategory.UNIQUE),
 | |
|     DS3ItemData("Blood of the Dark Soul",           0x4000086E, DS3ItemCategory.UNIQUE, skip = True),
 | |
| 
 | |
|     # Spells
 | |
|     DS3ItemData("Frozen Weapon",                    0x401408E8, DS3ItemCategory.SPELL),
 | |
|     DS3ItemData("Old Moonlight",                    0x4014FF00, DS3ItemCategory.SPELL),
 | |
|     DS3ItemData("Great Soul Dregs",                 0x401879A0, DS3ItemCategory.SPELL),
 | |
|     DS3ItemData("Snap Freeze",                      0x401A90C8, DS3ItemCategory.SPELL),
 | |
|     DS3ItemData("Floating Chaos",                   0x40257DA8, DS3ItemCategory.SPELL),
 | |
|     DS3ItemData("Flame Fan",                        0x40258190, DS3ItemCategory.SPELL),
 | |
|     DS3ItemData("Seething Chaos",                   0x402896A0, DS3ItemCategory.SPELL),
 | |
|     DS3ItemData("Lightning Arrow",                  0x40358B08, DS3ItemCategory.SPELL),
 | |
|     DS3ItemData("Way of White Corona",              0x403642A0, DS3ItemCategory.SPELL),
 | |
|     DS3ItemData("Projected Heal",                   0x40364688, DS3ItemCategory.SPELL),
 | |
| ]
 | |
| for item in _dlc_items:
 | |
|     item.is_dlc = True
 | |
| 
 | |
| # Unused list for future reference
 | |
| # These items exist to some degree in the code, but aren't accessible
 | |
| # in-game and can't be picked up without modifications
 | |
| _cut_content_items = [
 | |
|     # Weapons
 | |
|     DS3ItemData("Blood-stained Short Sword",           0x00100590, DS3ItemCategory.UNIQUE),
 | |
|     DS3ItemData("Missionary's Axe",                    0x006C2F50, DS3ItemCategory.UNIQUE),
 | |
|     DS3ItemData("Dragon King Greataxe",                0x006D40C0, DS3ItemCategory.UNIQUE),
 | |
|     DS3ItemData("Four Knights Hammer",                 0x007D4650, DS3ItemCategory.UNIQUE),
 | |
|     DS3ItemData("Hammer of the Great Tree",            0x007D9470, DS3ItemCategory.UNIQUE),
 | |
|     DS3ItemData("Lothric's Scythe",                    0x009A4430, DS3ItemCategory.UNIQUE),
 | |
|     DS3ItemData("Ancient Dragon Halberd",              0x009A6B40, DS3ItemCategory.UNIQUE),
 | |
|     DS3ItemData("Scythe of Want",                      0x009A9250, DS3ItemCategory.UNIQUE),
 | |
|     DS3ItemData("Sacred Beast Catalyst",               0x00C8A730, DS3ItemCategory.UNIQUE),
 | |
|     DS3ItemData("Deep Pyromancy Flame",                0x00CC9ED0, DS3ItemCategory.UNIQUE), # Duplicate?
 | |
|     DS3ItemData("Flickering Pyromancy Flame",          0x00CD3B10, DS3ItemCategory.UNIQUE),
 | |
|     DS3ItemData("Strong Pyromancy Flame",              0x00CD6220, DS3ItemCategory.UNIQUE),
 | |
|     DS3ItemData("Deep Pyromancy Flame",                0x00CDFE60, DS3ItemCategory.UNIQUE), # Duplicate?
 | |
|     DS3ItemData("Pitch-Dark Pyromancy Flame",          0x00CE2570, DS3ItemCategory.UNIQUE),
 | |
|     DS3ItemData("Dancer's Short Bow",                  0x00D77440, DS3ItemCategory.UNIQUE),
 | |
|     DS3ItemData("Shield Crossbow",                     0x00D81080, DS3ItemCategory.UNIQUE),
 | |
|     DS3ItemData("Golden Dual Swords",                  0x00F55C80, DS3ItemCategory.UNIQUE),
 | |
|     DS3ItemData("Channeler's Trident",                 0x008C8890, DS3ItemCategory.UNIQUE),
 | |
| 
 | |
|     # Shields
 | |
|     DS3ItemData("Cleric's Parma",                      0x013524A0, DS3ItemCategory.UNIQUE),
 | |
|     DS3ItemData("Prince's Shield",                     0x01421CF0, DS3ItemCategory.UNIQUE),
 | |
| 
 | |
|     # Armor
 | |
|     DS3ItemData("Dingy Maiden's Overcoat",             0x11DA9048, DS3ItemCategory.UNIQUE),
 | |
|     DS3ItemData("Grotto Hat",                          0x11F78A40, DS3ItemCategory.UNIQUE),
 | |
|     DS3ItemData("Grotto Robe",                         0x11F78E28, DS3ItemCategory.UNIQUE),
 | |
|     DS3ItemData("Grotto Wrap",                         0x11F79210, DS3ItemCategory.UNIQUE),
 | |
|     DS3ItemData("Grotto Trousers",                     0x11F795F8, DS3ItemCategory.UNIQUE),
 | |
|     DS3ItemData("Soldier's Gauntlets",                 0x126261D0, DS3ItemCategory.UNIQUE),
 | |
|     DS3ItemData("Soldier's Hood",                      0x1263E0A0, DS3ItemCategory.UNIQUE),
 | |
|     DS3ItemData("Elder's Robe",                        0x129024A8, DS3ItemCategory.UNIQUE),
 | |
|     DS3ItemData("Saint's Veil",                        0x12A70420, DS3ItemCategory.UNIQUE),
 | |
|     DS3ItemData("Saint's Dress",                       0x12A70808, DS3ItemCategory.UNIQUE),
 | |
|     DS3ItemData("Footman's Hood",                      0x12AEA540, DS3ItemCategory.UNIQUE),
 | |
|     DS3ItemData("Footman's Overcoat",                  0x12AEA928, DS3ItemCategory.UNIQUE),
 | |
|     DS3ItemData("Footman's Bracelets",                 0x12AEAD10, DS3ItemCategory.UNIQUE),
 | |
|     DS3ItemData("Footman's Trousers",                  0x12AEB0F8, DS3ItemCategory.UNIQUE),
 | |
|     DS3ItemData("Scholar's Shed Skin",                 0x12E40D20, DS3ItemCategory.UNIQUE),
 | |
|     DS3ItemData("Man Serpent's Mask",                  0x138BE5E0, DS3ItemCategory.UNIQUE),
 | |
|     DS3ItemData("Man Serpent's Robe",                  0x138BE9C8, DS3ItemCategory.UNIQUE),
 | |
|     DS3ItemData("Old Monarch's Crown",                 0x13DFD240, DS3ItemCategory.UNIQUE),
 | |
|     DS3ItemData("Old Monarch's Robe",                  0x13DFD628, DS3ItemCategory.UNIQUE),
 | |
|     DS3ItemData("Frigid Valley Mask",                  0x13FE56C0, DS3ItemCategory.UNIQUE),
 | |
|     DS3ItemData("Dingy Hood",                          0x140D9900, DS3ItemCategory.UNIQUE),
 | |
|     DS3ItemData("Hexer's Hood",                        0x15A995C0, DS3ItemCategory.UNIQUE),
 | |
|     DS3ItemData("Hexer's Robes",                       0x15A999A8, DS3ItemCategory.UNIQUE),
 | |
|     DS3ItemData("Hexer's Gloves",                      0x15A99D90, DS3ItemCategory.UNIQUE),
 | |
|     DS3ItemData("Hexer's Boots",                       0x15A9A178, DS3ItemCategory.UNIQUE),
 | |
|     DS3ItemData("Varangian Helm",                      0x15C81A40, DS3ItemCategory.UNIQUE),
 | |
|     DS3ItemData("Varangian Armor",                     0x15C81E28, DS3ItemCategory.UNIQUE),
 | |
|     DS3ItemData("Varangian Cuffs",                     0x15C82210, DS3ItemCategory.UNIQUE),
 | |
|     DS3ItemData("Varangian Leggings",                  0x15C825F8, DS3ItemCategory.UNIQUE),
 | |
| 
 | |
|     # Rings
 | |
|     DS3ItemData("Rare Ring of Sacrifice",              0x20004EFC, DS3ItemCategory.UNIQUE),
 | |
|     DS3ItemData("Baneful Bird Ring",                   0x20005032, DS3ItemCategory.UNIQUE),
 | |
|     DS3ItemData("Darkmoon Blade Covenant Ring",        0x20004F7E, DS3ItemCategory.UNIQUE),
 | |
|     DS3ItemData("Yorgh's Ring",                        0x2000505A, DS3ItemCategory.UNIQUE),
 | |
|     DS3ItemData("Ring of Hiding",                      0x200050D2, DS3ItemCategory.UNIQUE),
 | |
|     DS3ItemData("Ring of Sustained Toughness",         0x20005118, DS3ItemCategory.UNIQUE),
 | |
|     DS3ItemData("Ring of Sustained Energy",            0x20005122, DS3ItemCategory.UNIQUE),
 | |
|     DS3ItemData("Ring of Sustained Magic",             0x2000512C, DS3ItemCategory.UNIQUE),
 | |
|     DS3ItemData("Ring of Sustained Essence",           0x20005140, DS3ItemCategory.UNIQUE),
 | |
|     DS3ItemData("Ring of Sustained Might",             0x2000514A, DS3ItemCategory.UNIQUE),
 | |
|     DS3ItemData("Ring of Sustained Fortune",           0x20005154, DS3ItemCategory.UNIQUE),
 | |
| 
 | |
|     # Items
 | |
|     DS3ItemData("Soul of a Wicked Spirit",             0x400002C9, DS3ItemCategory.UNIQUE),
 | |
| 
 | |
|     # Spells
 | |
|     DS3ItemData("Dark Orb",                            0x4027AC40, DS3ItemCategory.UNIQUE),
 | |
|     DS3ItemData("Morbid Temptation",                   0x40359AA8, DS3ItemCategory.UNIQUE),
 | |
|     DS3ItemData("Dorris Swarm",                        0x40393870, DS3ItemCategory.UNIQUE),
 | |
| ]
 | |
| 
 | |
| 
 | |
| item_name_groups: Dict[str, Set] = {
 | |
|     "Progression": set(),
 | |
|     "Cinders": set(),
 | |
|     "Weapons": set(),
 | |
|     "Shields": set(),
 | |
|     "Armor": set(),
 | |
|     "Rings": set(),
 | |
|     "Spells": set(),
 | |
|     "Miscellaneous": set(),
 | |
|     "Unique": set(),
 | |
|     "Boss Souls": set(),
 | |
|     "Small Souls": set(),
 | |
|     "Upgrade": set(),
 | |
|     "Healing": set(),
 | |
| }
 | |
| 
 | |
| 
 | |
| item_descriptions = {
 | |
|     "Progression": "Items which unlock locations.",
 | |
|     "Cinders": "All four Cinders of a Lord.\n\nOnce you have these four, you can fight Soul of Cinder and win the game.",
 | |
|     "Miscellaneous": "Generic stackable items, such as arrows, firebombs, buffs, and so on.",
 | |
|     "Unique": "Items that are unique per NG cycle, such as scrolls, keys, ashes, and so on. Doesn't include equipment, spells, or souls.",
 | |
|     "Boss Souls": "Souls that can be traded with Ludleth, including Soul of Rosaria.",
 | |
|     "Small Souls": "Soul items, not including boss souls.",
 | |
|     "Upgrade": "Upgrade items, including titanite, gems, and Shriving Stones.",
 | |
|     "Healing": "Undead Bone Shards and Estus Shards.",
 | |
| }
 | |
| 
 | |
| 
 | |
| _all_items = _vanilla_items + _dlc_items
 | |
| 
 | |
| for item_data in _all_items:
 | |
|     for group_name in item_data.item_groups():
 | |
|         item_name_groups[group_name].add(item_data.name)
 | |
| 
 | |
| filler_item_names = [item_data.name for item_data in _all_items if item_data.filler]
 | |
| item_dictionary = {item_data.name: item_data for item_data in _all_items}
 |