doodads/dev-assets/doodads/regions/stall.js

41 lines
839 B
JavaScript

// Stall Player.
// Tags: ms (int)
// Grabs the player one time. Resets if it receives power.
function main() {
Self.Hide();
let active = true,
timeout = 250,
ms = Self.GetTag("ms");
if (ms.length > 0) {
timeout = parseInt(ms);
}
Events.OnCollide((e) => {
if (!active || !e.Settled) {
return;
}
// Only care if it's the player.
if (!e.Actor.IsPlayer()) {
return;
}
if (e.InHitbox) {
// Grab hold of the player.
e.Actor.Freeze();
setTimeout(() => {
e.Actor.Unfreeze();
}, timeout);
active = false;
}
});
// Reset the trap if powered by a button.
Message.Subscribe("power", (powered) => {
active = true;
});
}