diff options
author | Starfall <us@starfall.systems> | 2024-02-07 17:54:47 -0600 |
---|---|---|
committer | Starfall <us@starfall.systems> | 2024-02-07 17:56:03 -0600 |
commit | 482794473972a1265308fcb89069066483bbdda0 (patch) | |
tree | 5dc3ea5306a5a2648a4815442643ddf2ebf1571f /dropcalc/mxl_types/base.py | |
parent | f06167b79397b425272fd4843d599d5f5c372fb6 (diff) |
dropcalc: Median XL .txt parser
Was intended to eventually become a drop calculator. Might work for other Diablo II mods without changes, I don't think there are any MXL-specific fields involved in this. Abandoned due to lack of organizational structure on the project and ... creative differences with one of the lead devs.
Diffstat (limited to 'dropcalc/mxl_types/base.py')
-rw-r--r-- | dropcalc/mxl_types/base.py | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/dropcalc/mxl_types/base.py b/dropcalc/mxl_types/base.py new file mode 100644 index 0000000..cd7e8be --- /dev/null +++ b/dropcalc/mxl_types/base.py @@ -0,0 +1,34 @@ +from sqlalchemy import ForeignKey, String +from sqlalchemy.orm import Mapped, mapped_column + +from .dao import BaseDAO + + +class BaseItem(BaseDAO): + __tablename__ = "base" + + code: Mapped[str] = mapped_column(String(4), primary_key=True) + name: Mapped[str] # internal name only, game actually looks up `code` in strings + type = mapped_column(ForeignKey("item_type.Code")) # can have two item_type... and all their parents + type2 = mapped_column(ForeignKey("item_type.Code")) # should really figure out a better way to store them + rarity: Mapped[int] + level: Mapped[int] # variously referred to as ilvl or qlvl + spawnable: Mapped[int] # items with spawnable=0 *can* be dropped directly from TCs, but shouldn't randomly drop + category: Mapped[str] + + __mapper_args__ = {'polymorphic_on': 'category'} + + +class Weapon(BaseItem): + filename = "Weapons.txt" + __mapper_args__ = {'polymorphic_identity': 'weap'} + + +class Armor(BaseItem): + filename = "Armor.txt" + __mapper_args__ = {'polymorphic_identity': 'armo'} + + +class Misc(BaseItem): + filename = "Misc.txt" + __mapper_args__ = {'polymorphic_identity': 'misc'} |