You’re using inheritance. You have a master item. You’re on the right track. Override the interface function for items that need to behave differently.
for example pick up weapons, open doors, place things in inventory if they are miscellaneous.
- you have a master item which can dictate default behaviour:
- you have a vase that is pickable but breakable; it also can, optionally, respect default behaviour and add its own:
- and you have a door that is not pickable, but plays a timeline only it knows about:
The player just fires the same message at them:
The items choose how to respond to it.
Also, a long post that goes into lots of details: