Moja gra ma wiele różnych rodzajów dobrych facetów i wiele różnych rodzajów złych facetów. Wszystkie będą strzelały do siebie, ale nie chcę, aby przypadkowe obrażenia wystąpiły w obu liniach. Więc źli nie powinni być w stanie trafić / zranić innych złych, a dobrzy nie powinni być w stanie trafić / zranić innych dobrych.
Sposób, w jaki myślę o rozwiązaniu jest to przez co czyni go tak, że Unit
instancja (to jest javascript, btw), posiada alignment
właściwości, które mogą być good
albo bad
. I pozwolę na kolizję tylko wtedy, gdy
class Attack
boolean didAttackCollideWithTarget(target)
return attack.source.alignment != target.alignment and collisionDetected(attack.source, target)
Oczywiście jest to pseudo-kod.
Ale zadaję to pytanie, ponieważ mam wrażenie, że może istnieć o wiele bardziej elegancki sposób zaprojektowania tego, oprócz dodania jeszcze jednej właściwości do mojej Unit
klasy.