I'm making a top down 2D game and I want to have a lot of different attack types. I'd like to make the attacks very flexible and combine-able the way The Binding of Isaac works. Here's a list of all the collectibles in the game. To find a good example, lets look at the Spoon Bender item.
Spoon Bender gives Isaac the ability to shoot homing tears.
If you look at the "synergies" section, you'll see it can be combined with other collectibles for interesting yet intuitive effects. For example, if it combines with The Inner Eye, it "Will enable Isaac to fire multiple homing shots at once". This makes sense, because The Inner Eye
Gives Isaac a triple shot
What's a good architecture to design things like this? Here's a brute force solution:
if not spoon bender and not the inner eye then ... if spoon bender and not the inner eye then ... if not spoon bender and the inner eye then ... if spoon bender and the inner eye then ...
But that will get out of hand very fast. What's a better way to design a system like this?