dschu012 / d2lootfilter

MIT License
43 stars 26 forks source link

The Rarity ordering broken #32

Open qqkookie opened 2 years ago

qqkookie commented 2 years ago

The rarity condition statement does not works as many people expects.

The Rarity ordering of d2lootfilter is | Rarity <Rarity> | Inferior, Normal, Superior, Magic, Set, Rare, Unique, Crafted | as documented and works as documented. Rare is between Set and Unique. But it is different from what many user perceives generally. Ordering should be "Inferior, Normal, Superior, Magic, Rare, Set, Unique, Crafted". i.e, order of Rare and Set should be switched. Internal numerical ordering does not matter. This causes some unexpected behavior of filter and confuse user. Condition Rarity < Rare should not include Set and Rarity in Rare-Unique should include Set.

And the documentation of Rarity condition is not clear. It says "Rarity \<Rarity>" excluding \<Opeartor>. It should be Rarity [\<Operator>] \<Rarity>, I guess.

And second problem is that Rarity of unidentified items in gambling vendor is always evaluated as "Inferior". Rarity of ordinary sales item of vendor is evaluated correctly, but Rarity of Gambling item of same vendor is evaluated incorrectly as Inferior. Other unidentified items in inventory is evaluated correctly as Magic or Rare. If this is game feature to prevents gambling cheat, there must be way to discern true Inferior item and Gambling item. My suggestion is re-map item rarity index to Inferior =0 , Normal =1 , Superior =2 , Magic = 3 , Set =4 , Rare = 5, Unique = 6, Crafted = 7 Gambling = 8, to fix order of Set and Rare .