Noah Petherbridge
1523deeb9c
* Implement the handler code for `return false` when actors are colliding with each other and wish to act like solid walls. * The locked doors will `return false` when they're closed and the colliding actor does not have the matching key. * Add arbitrary key/value storage to Actors. The colored keys will set an actor value "key:%TITLE%" on the one who touched the key before destroying itself. The colored doors check that key when touched to decide whether to open. * The trapdoor now only opens if you're touching it from the top (your overlap box Y value is 0), but if you touch it from below and the door is closed, it acts like a solid object.
39 lines
858 B
JavaScript
39 lines
858 B
JavaScript
function main() {
|
|
log.Info("Azulian '%s' initialized!", Self.Doodad.Title);
|
|
|
|
var playerSpeed = 12;
|
|
var gravity = 4;
|
|
var Vx = Vy = 0;
|
|
|
|
var animating = false;
|
|
var animStart = animEnd = 0;
|
|
var animFrame = animStart;
|
|
|
|
Self.SetGravity(true);
|
|
Self.SetHitbox(7, 4, 17, 28);
|
|
Self.AddAnimation("walk-left", 100, ["blu-wl1", "blu-wl2", "blu-wl3", "blu-wl4"]);
|
|
Self.AddAnimation("walk-right", 100, ["blu-wr1", "blu-wr2", "blu-wr3", "blu-wr4"]);
|
|
|
|
Events.OnKeypress(function(ev) {
|
|
Vx = 0;
|
|
Vy = 0;
|
|
|
|
if (ev.Right.Now) {
|
|
if (!Self.IsAnimating()) {
|
|
Self.PlayAnimation("walk-right", null);
|
|
}
|
|
Vx = playerSpeed;
|
|
} else if (ev.Left.Now) {
|
|
if (!Self.IsAnimating()) {
|
|
Self.PlayAnimation("walk-left", null);
|
|
}
|
|
Vx = -playerSpeed;
|
|
} else {
|
|
Self.StopAnimation();
|
|
animating = false;
|
|
}
|
|
|
|
// Self.SetVelocity(Point(Vx, Vy));
|
|
})
|
|
}
|