Thanks for the reply Ashley. I've worked with families in Construct which would work. The idea is based on this article:
Generic item system
The item system works like a tree and starts from a few generic item types. My idea is to have an "item" behavior which is attached to a Sprite then you can create/add "features" e.g. "light" (item produces light) which are controlled by "conditions".
The conditions determine the effect e.g. the "onoff" condition when true turns the light on, etc. The dynamic properties are set using object variables such as radius, etc. The conditions can be checked through an event in C2 to see if it is true or false.
To me it would make programming complex items and effects using the C2 event sheet a lot easier although I might be wrong. The only problem I'm having is I can't copy the features and conditions to a new object. I have a generic light set up and I want to create a "Sunrod" (an exceptionally strong light) like the article but I don't want to redo all the events in C2 rather just have an action "Inherit" which takes all the information stored in the generic light.
I could just program this myself in the runtime but I was wondering if there's a way to access another objects specific behavior data within another behavior runtime?
Hmm, this is quite difficult to explain I'll do a bit more work and see if I can upload an example :/