To an extent yes, but not every member of family will have the same response.
If there are a number of different Wall types that behave differently based on being shot. Then I don't need a Wall family to have both plugin behaviours.
FamilyWall
-KnockBackWall(has bullet)
-FadeWall(has fade)
-BounceWall(nothing special)
In this situation KnockBackwall doesn't need fade, and Fadewall doesn't need Bullet plugin.
however
On Collision Bullet to FamilyWall
-> FamilyWall do (and has no access to Bullet, Fade and do not innately know which wall was hit)
If I give WallFamily Fade and Bullet, but there is still no innate way to determine which wall object had the collision. However andreyin solution to pick nearest sounds like it will work. Haven't used it yet :D
You know what. I think I found a solution to the design around not knowing the object.
WallFamily
instance variable - typefunction
on collision bullet to WallFamily
Function Call (WallFamily.type, WallFamily.uid)
On Function "foo"
choose wall based on UID Function.Param(0)
I think that solves the inherent lack of knowing or access to the object in the family and access to plugins in the object not the family.