diff options
Diffstat (limited to 'dropcalc/mxl_types/item_ratio.py')
-rw-r--r-- | dropcalc/mxl_types/item_ratio.py | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/dropcalc/mxl_types/item_ratio.py b/dropcalc/mxl_types/item_ratio.py new file mode 100644 index 0000000..7a783c3 --- /dev/null +++ b/dropcalc/mxl_types/item_ratio.py @@ -0,0 +1,39 @@ +from sqlalchemy.orm import Mapped, mapped_column + +from .dao import BaseDAO + + +class ItemRatio(BaseDAO): + filename = "ItemRatio_mp.txt" + __csv_to_db__ = {"Class_Specific": "Class Specific"} + __tablename__ = "item_ratio" + + id: Mapped[int] = mapped_column(primary_key=True) + + # D2Fileguide goes into more detail about how these are used + # the gist is 1 in (Quality - (mlvl-ilvl) / Divisor) * 128 of rolling each of these + # in the order unique, set, rare, magic, hiq, normal (and falling back on loq) + # further modified by MF after diminishing returns value (250 uni, 500 set, 600 rar) - which I believe is hardcoded + # and then the TC values + Unique: Mapped[int] + UniqueDivisor: Mapped[int] + UniqueMin: Mapped[int] + Rare: Mapped[int] + RareDivisor: Mapped[int] + RareMin: Mapped[int] + Set: Mapped[int] + SetDivisor: Mapped[int] + SetMin: Mapped[int] + Magic: Mapped[int] + MagicDivisor: Mapped[int] + MagicMin: Mapped[int] + HiQuality: Mapped[int] + HiQualityDivisor: Mapped[int] + Normal: Mapped[int] + NormalDivisor: Mapped[int] + + Uber: Mapped[int] # exceptional/elite as decided by normcode, ubercode, ultracode in Weapons.txt / Armor.txt + Class_Specific: Mapped[int] # class specifics as decided by Class in Itemtypes.txt + + def is_valid(self): + return self.Version == "1" |