Estou fazendo um jogo 2D de cima para baixo e quero ter vários tipos de ataque diferentes. Eu gostaria de tornar os ataques muito flexíveis e combináveis da maneira que The Binding of Isaac funciona. Aqui está uma lista de todos os itens colecionáveis do jogo . Para encontrar um bom exemplo, vejamos o item Spoon Bender .
Spoon Bender dá a Isaac a capacidade de atirar em lágrimas.
Se você olhar a seção "sinergias", verá que ela pode ser combinada com outros itens colecionáveis para obter efeitos interessantes, porém intuitivos. Por exemplo, se combinar com o Olho Interior , "permitirá que Isaac dê vários tiros de volta ao mesmo tempo". Isso faz sentido, porque The Inner Eye
Dá um tiro triplo a Isaac
O que é uma boa arquitetura para projetar coisas assim? Aqui está uma solução de força bruta:
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 ...
Mas isso ficará fora de controle muito rápido. Qual é a melhor maneira de projetar um sistema como esse?