Noah Petherbridge
38614ee280
* Tightens up the surface area of API methods available to the JavaScript VMs for doodads. Variables and functions are carefully passed in one-by-one so the doodad script can only access intended functions and not snoop on undocumented APIs. * Wrote tons of user documentation for Doodad Scripts: documented the full surface area of the exposed JavaScript API now that the surface area is known and limited. * Early WIP code for the Campaign JSON
39 lines
799 B
JavaScript
39 lines
799 B
JavaScript
function main() {
|
|
console.log("%s initialized!", Self.Title);
|
|
|
|
var timer = 0;
|
|
|
|
Self.SetHitbox(0, 0, 72, 6);
|
|
|
|
var animationSpeed = 100;
|
|
var opened = false;
|
|
Self.AddAnimation("open", animationSpeed, ["down1", "down2", "down3", "down4"]);
|
|
Self.AddAnimation("close", animationSpeed, ["down4", "down3", "down2", "down1"]);
|
|
|
|
Events.OnCollide( function(e) {
|
|
if (opened) {
|
|
return;
|
|
}
|
|
|
|
// Is the actor colliding our solid part?
|
|
if (e.InHitbox) {
|
|
// Touching the top or the bottom?
|
|
if (e.Overlap.Y > 0) {
|
|
return false; // solid wall when touched from below
|
|
} else {
|
|
opened = true;
|
|
Self.PlayAnimation("open", function() {
|
|
});
|
|
}
|
|
}
|
|
});
|
|
|
|
Events.OnLeave(function() {
|
|
if (opened) {
|
|
Self.PlayAnimation("close", function() {
|
|
opened = false;
|
|
});
|
|
}
|
|
})
|
|
}
|