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 Unit
instancia (esto es javascript, por cierto), tenga una alignment
propiedad que puede ser good
o 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 Unit
clase.