Noah Petherbridge
97e179716c
New category for the Doodad Dropper: "Technical" Technical doodads have a dashed outline and label for now, and they turn invisible on level start, and are for hidden technical effects on your level. The doodads include: * Goal Region: acts like an invisible Exit Flag (128x128), the level is won when the player character touches this region. * Fire Region: acts like a death barrier (128x128), kills the player when a generic "You have died!" message. * Power Source: on level start, acts like a switch and emits a power(true) signal to all linked doodads. Link it to your Electric Door for it to be open by default in your level! * Stall Player (250ms): The player is paused for a moment the first time it touches this region. Useful to work around timing issues, e.g. help prevent the player from winning a race against another character. There are some UI improvements to the Doodad Dropper window: * If the first page of doodads is short, extra spacers are added so the alignment and size shows correctly. * Added a 'background pattern' to the window: any unoccupied icon space has an inset rectangle slot. * "Last pages" which are short still render weirdly without reserving the correct height in the TabFrame. Doodad scripting engine updates: * Self.Hide() and Self.Show() available. * Subscribe to "broadcast:ready" to know when the level is ready, so you can safely Publish messages without deadlocks!
23 lines
717 B
JavaScript
23 lines
717 B
JavaScript
// Power source.
|
|
// Emits a power(true) signal once on level start.
|
|
// If it receives a power signal, it will repeat it after 5 seconds.
|
|
// Link two of these bad boys together and you got yourself a clock.
|
|
function main() {
|
|
Self.Hide();
|
|
|
|
// See if we are not linked to anything.
|
|
var links = Self.GetLinks();
|
|
if (links.length === 0) {
|
|
console.error(
|
|
"%s at %s is not linked to anything! This doodad emits a power(true) on level start to all linked doodads.",
|
|
Self.Title,
|
|
Self.Position()
|
|
);
|
|
}
|
|
|
|
Message.Subscribe("broadcast:ready", function () {
|
|
Message.Publish("switch:toggle", true);
|
|
Message.Publish("power", true);
|
|
});
|
|
}
|