Feel free to put my email addy in there: mark (at) thetiffanys.co.uk
I hope to work on sorting the vis thing tonight, but I've also been thinking today about the comments on the map format. I think we can actually reuse the object layer, and cram everything in there (see Rob's post above that recommends 1 extra layer). What I'm thinking is that for each map we define a set of actions which have various properties:
Image: pointer to the image in the current tileset
Trigger: When to action the script (onenter, onaction (we need an action keypress), every N frames,ondestroy)
Script: the script itself
The editor then sets the current object layer to point to one of these actions instead of simply a tile.
The script for each action is a basic scripting language. Doors have a script that is "opendoor(keyrequired)" and operates as currently. Credits are "credit(100):removeme()". Spawn points are "createalien(type,x,y)". Documents found on the floor are "showdoc(blah blah blah"). Conversations are "showconv(player,how you doing?):showconv(president,are you coming on to me?):removeme()". A sound emitter is "sound(scratch)". A trap located near the scratching noise is "createalien(facehugger,10,10):setmap(10,10,objectlayer,0):removeme()" (i.e. remove the scratch sound from 10,10 as well as the trap itself).
If you understand that, please comment on it! I'll try to write up something better later tonight, but whilst I'm hacking the editor code, I may try to add an action definer and possibly get to amending the object layer...
I hope to work on sorting the vis thing tonight, but I've also been thinking today about the comments on the map format. I think we can actually reuse the object layer, and cram everything in there (see Rob's post above that recommends 1 extra layer). What I'm thinking is that for each map we define a set of actions which have various properties:
Image: pointer to the image in the current tileset
Trigger: When to action the script (onenter, onaction (we need an action keypress), every N frames,ondestroy)
Script: the script itself
The editor then sets the current object layer to point to one of these actions instead of simply a tile.
The script for each action is a basic scripting language. Doors have a script that is "opendoor(keyrequired)" and operates as currently. Credits are "credit(100):removeme()". Spawn points are "createalien(type,x,y)". Documents found on the floor are "showdoc(blah blah blah"). Conversations are "showconv(player,how you doing?):showconv(president,are you coming on to me?):removeme()". A sound emitter is "sound(scratch)". A trap located near the scratching noise is "createalien(facehugger,10,10):setmap(10,10,objectlayer,0):removeme()" (i.e. remove the scratch sound from 10,10 as well as the trap itself).
If you understand that, please comment on it! I'll try to write up something better later tonight, but whilst I'm hacking the editor code, I may try to add an action definer and possibly get to amending the object layer...