diff options
| author | Alexander M Pickering <alex@cogarr.net> | 2024-01-29 16:20:10 -0600 |
|---|---|---|
| committer | Alexander M Pickering <alex@cogarr.net> | 2024-01-29 16:20:10 -0600 |
| commit | c2926c5ec74d7e37da395c8c32a7ff2b4cae7d06 (patch) | |
| tree | ac2bb208dab1274cdc5e9059ffe014ae19181a4c /src/dispatch.moon | |
| download | fools_rush_in-c2926c5ec74d7e37da395c8c32a7ff2b4cae7d06.tar.gz fools_rush_in-c2926c5ec74d7e37da395c8c32a7ff2b4cae7d06.tar.bz2 fools_rush_in-c2926c5ec74d7e37da395c8c32a7ff2b4cae7d06.zip | |
All the files
Diffstat (limited to 'src/dispatch.moon')
| -rw-r--r-- | src/dispatch.moon | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/src/dispatch.moon b/src/dispatch.moon new file mode 100644 index 0000000..1455da8 --- /dev/null +++ b/src/dispatch.moon @@ -0,0 +1,49 @@ +--[[ Dispatches events ]] + +mod = ... +char = require "char" +import KeyInput from char +main = require "main" + +set_input = (inputs, key, value) -> + for input in *inputs + if input.key == key + --print("Setting", key, " to", value) + input.value = value + return + +controls = { + right: "right", + left: "left", + up: "up" + jump: "z", + down: "down" + dash: "c" + swing: "x" +} + +mod.control = (character) -> + character.node\action(coroutine.create(() -> + while true + for k,v in pairs controls + set_input(character.inputs,k,main.win\key_down(v)) + coroutine.yield() + )) + +mod.slime_ai = (character) -> + character.node\action(coroutine.create(() -> + time_offset = math.random() + last_action = am.current_time() + time_offset + while true + time_diff = am.current_time() - last_action + if time_diff > 1.3 + last_action = am.current_time() + math.random() + elseif time_diff > 1.1 + set_input(character.inputs,"jump_left",false) + elseif time_diff > 1 + set_input(character.inputs,"jump_left",true) + + coroutine.yield() + )) + +mod |
