keys 1
This commit is contained in:
+10
-1
@@ -59,7 +59,7 @@
|
||||
//! `move(dir)`, `delay(secs)`, `now()`, `set_tile(n)`, `log(msg)`, `say(msg)`,
|
||||
//! `set_fg(fg)`, `set_bg(bg)`, `set_color(fg, bg)`, `set_tag(target, tag, present)`,
|
||||
//! `send(target_id, fn_name [, arg])`, `teleport(x, y)`, `push(x, y, dir)`,
|
||||
//! `swap([[src_x, src_y, dst_x, dst_y], …])`, `add_gems(n)`, `die()`
|
||||
//! `swap([[src_x, src_y, dst_x, dst_y], …])`, `add_gems(n)`, `set_key(color, present)`, `die()`
|
||||
//!
|
||||
//! ## Queue API
|
||||
//!
|
||||
@@ -906,6 +906,15 @@ fn register_write_api(engine: &mut Engine, queues: &QueueMap) {
|
||||
emit(&q, source_of(&ctx), Action::AddGems(n));
|
||||
});
|
||||
|
||||
// set_key(color, present): give (true) or take (false) the named key color.
|
||||
let q = queues.clone();
|
||||
engine.register_fn(
|
||||
"set_key",
|
||||
move |ctx: NativeCallContext, color: ImmutableString, present: bool| {
|
||||
emit(&q, source_of(&ctx), Action::SetKey(color.into(), present));
|
||||
},
|
||||
);
|
||||
|
||||
// die(): remove the calling object from the board.
|
||||
let q = queues.clone();
|
||||
engine.register_fn("die", move |ctx: NativeCallContext| {
|
||||
|
||||
Reference in New Issue
Block a user