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