Gotcha - it's not part of the design intent.
I might be strange for wanting intelligence in my rooms, but i've been focused on having very dynamic, randomized rooms. right now I have this concept of a "base class" for all rooms, then specific room variants that do slightly different things. Mimic is the obvious path for doing this, but i haven't explored deeply enough yet to know how valuable (or not) the feature might be in the long run.
My current experiment is to make something kinda like Robocode where players will have to define scripts, in-game, to control a robot. Making the room logic fancy is mostly a placeholder so i can eventually allow players to have their robot modify the rooms a bit depending on the type of space they are in.
oh yes, rooms can absolutely mimic tiles right now! that's actually how i'm exploring the above concept. i've created a tile called ROOM which serves as my "base class" and then i have my actual rooms mimicing that tile's behavior. now the only stuff in my room scripts are those parts that are unique to the room.
I'm using tiles for a lot of stuff that might have been outside the design intent... e.g. i also use tiles as something like a storage class. i have another tile called TOOL which tracks the tools a player has access to - each frame represents a different tool, so i can use the frame attribute to know which tool the player has selected and therefore what to do when i pass the "useTool" event to this tile. I instance this tile along with my other storage class tiles, in my room under a HUD along the top edge. I'll have nearly a dozen storage class tiles in my project by the time i'm done implementing the current planned features.
i'm still just playing around with Pulp, but for now all of my usage of "any" is the happy accident itself - and for me oh boy would i love to have a simple mechanism to say "if i have a local handler for this, use it - otherwise mimic the base class"
if the 'any' handler would execute last rather than first i could write something like this:
on myEvent do
_handledLocally=1
// do stuff
end
on any do
if _handledLocally==1
log "event was handled by the subclass"
else
log "event was not handled by the subclass, calling base class"
mimic "baseClass"
end
_handledLocally=0
end
This would even allow for multiple generations of inheritance:
bathroom is a unique house_room; house_room is a unique room; room is a unique space...
I'm making an assumption above that events are always handled sequentially - that i can't have two events in flight at the same time and therefore need some sort of mutex around this flag... i think that's a safe assumption though, right?
Anyway, the above is meaningless in the current implementation because "any" seems to execute first, so i can't constrain the call to mimic in this way. Maybe there is another way to accomplish this that i just haven't thought of yet?