Game saya memiliki banyak tipe orang baik dan berbagai tipe orang jahat. Mereka semua akan menembakkan proyektil satu sama lain, tetapi saya tidak ingin ada kerusakan agunan yang tidak disengaja terjadi untuk kedua penyelarasan. Jadi orang jahat seharusnya tidak dapat memukul / merusak orang jahat lainnya dan orang baik seharusnya tidak dapat memukul / merusak orang baik lainnya.
Cara saya berpikir untuk menyelesaikan ini adalah dengan membuatnya sehingga Unit
instance (ini adalah javascript, btw), memiliki alignment
properti yang dapat berupa good
atau bad
. Dan saya hanya akan membiarkan tabrakan terjadi jika
class Attack
boolean didAttackCollideWithTarget(target)
return attack.source.alignment != target.alignment and collisionDetected(attack.source, target)
Ini adalah pseudo-code, tentu saja.
Tapi saya mengajukan pertanyaan ini karena saya merasa mungkin ada cara yang jauh lebih elegan untuk mendesain ini selain menambahkan properti lain ke Unit
kelas saya .