В моей игре много разных хороших парней и много разных плохих парней. Все они будут обстреливать друг друга снарядами, но я не хочу, чтобы какой-либо случайный побочный ущерб был нанесен для любого выравнивания. Поэтому плохие парни не должны быть в состоянии ударить / повредить других плохих парней, а хорошие парни не должны быть в состоянии ударить / повредить других хороших парней.
Я думаю о том, как решить эту проблему, сделав так, чтобы Unit
экземпляр (это javascript, кстати) обладал alignment
свойством, которое может быть как good
или bad
. И я только позволю столкновению произойти, если
class Attack
boolean didAttackCollideWithTarget(target)
return attack.source.alignment != target.alignment and collisionDetected(attack.source, target)
Это псевдокод, конечно.
Но я задаю этот вопрос, потому что у меня есть ощущение, что может быть гораздо более элегантный способ создать это, кроме добавления еще одного свойства в мой Unit
класс.