I have a fixed amount of unique characters for users to play. Let's say Paladin, Mage, Thief.
Those characters may purchase items unique to the class (dagger for the thief, staff for the mage) or basically the same items across all classes (boots).
How to better make them have separate stores and inventories? For example, all of them have to purchase their boots instance separately. Only a thief can see and buy a dagger in the store.
I can see a couple of options but do not like them, hoping there's a better way.
1. Create duplicates of basic items so that they look the same but are unique: boots_thief, boots_mage. The downside is obviously an explosion of items in the backend with a high probability of mistakes.
2. Have Tags for classes on backend items. Have a large JSON or something in Player Data mapping characters and item instances, then use this to do filtering on a client. The downside is that purchasing an item for a character is no longer a transaction because adding data to JSON is a separate operation that can fail after money is charged.