Construct's treatment of objects and instances has been pretty confusing for me, so far. Maybe it's because I've been programming for a long time and see a very sharp distinction between classes (Construct objects) and objects (Construct instances). Construct seems to treat the two concepts as the same thing, at times. Specifically when defining event actions: Does the "Cruiser" in "Create object Asteroid at Cruiser.X, Cruiser.Y)" refer to all cruisers, or the first/last one that was spawned? I'm sure I'll figure it out eventually, but it's just giving me some trouble right now. It seems like both cases are true, depending on the situation. A System:Destroy command for a given object destroys all instances, unless it is immediately after a spawn action that created a specific instance.
In any case, would it help if I consider that all instances of the same type have the exact same properties and event handling? Only the private variable state is different?
In other words, if I want the player to fly around in a spaceship, and the enemies to fly around in the same spaceship, would I want to create two separate Construct objects? Both would share the same source image and probably have similar collision and image point settings, but one would have player input-related event actions and the other would have AI event actions?
That seems more in line with how Construct works, and I wouldn't need to worry so much about which instance is being referred to in an event. I could simply assume that the Ship in player actions is the player, and the Ship in enemy actions is all enemy ships.