coroutine.lua

This script contains convenience wrapper around creation and resuming of coroutines and yielding proper sleeping times to widelands. These functions are more specially tailored to widelands and take a lot of the awkwardness out of using coroutines directly.

Note

Do not use these functions for multiplayer scripting (scenarios and winconditions) in combination with any functions in ui.lua

run(func[, ...])

Start to run a function as a coroutine and hand it over to widelands for periodical resuming. All arguments passed to this function are given to the coroutine when it is first run.

Parameters:func – Lua function to launch as a coroutine
Returns:nil
sleep(time)

This must be called inside a coroutine. This will put the coroutine to sleep. Widelands will wake it after the given amount of time.

Parameters:time (integer) – time to sleep in ms
Returns:nil
wake_me(at)

This must be called inside a coroutine. This will put the coroutine to sleep. Widelands will wake it at the absolute time given. If this time is already in the past (that is at < wl.Game.time()), the coroutine will be woken at wl.Game.time() instead.

Parameters:at (integer) – when to wake this coroutine
Returns:nil