Tokinsom -
bladedpenguin -
+Projectile collides with enemy
-Call "Projectile_Destroy" (Projectile.UID)
-Call "Enemy_Hurt" (Enemy.UID)
In the case that a projectile collides with 2 enemies, only one will be hurt.
+Projectile collides with enemy
--foreach projectile
---call function...
--foreach enemy
---call function
The end result of your code is fine, assuming I understand the context, but I would say it falls under a simple use case scenario. Creating a compound object with dynamic sensors via families so that all characters in the game can inherit from it is a nightmare. If you want to role your own custom movement controllers, handling collisions and resolving collisions, implementing state control, etc... all via events... well. Things can quickly get ugly. You have layers of families, all needing functions to reduce code repetition but all objects are needing to be selected in tight ways. I jumped ship last project and switched to unity. Much easier. now this project I am getting passed the prototype stage and running up against the same problems.
In general it has been my experience that if you are using prebuilt behaviors and common use case scenarios, nothing is wrong. But the moment you need more, construct is an inflexible quagmire stuck in its own assumptions about what the game creator needs.