Mi juego tiene muchos tipos diferentes de buenos y muchos tipos diferentes de malos. Todos dispararán proyectiles entre sí, pero no quiero que se produzca ningún daño colateral accidental para ninguna de las alineaciones. Entonces, los malos no deberían poder golpear / dañar a otros malos y los buenos no deberían poder golpear / dañar a otros buenos.
La forma en que estoy pensando en resolver esto es haciendo que la Unitinstancia (esto es javascript, por cierto), tenga una alignmentpropiedad que puede ser goodo bad. Y solo dejaré que ocurra la colisión si el
class Attack
boolean didAttackCollideWithTarget(target)
return attack.source.alignment != target.alignment and collisionDetected(attack.source, target)
Este es un pseudocódigo, por supuesto.
Pero hago esta pregunta porque tengo la sensación de que podría haber una forma mucho más elegante de diseñar esto además de agregar otra propiedad a mi Unitclase.