OpenRA/OpenRA — pull request #5190 by pchote (2014-04-25 07:38:48+00:00)
Title: New Lua API.

This introduces a new scripting API built on [Eluant](https://github.com/cdhowie/Eluant) and the native lua library. The main focus of this implementation was building a self-consistent and self-documenting API (generated using the `--lua-docs` utility command, and available [on the wiki](https://github.com/OpenRA/OpenRA/wiki/New-Lua-API)). Secondary benefits are that it is faster than Kopilua and doesn't leak memory everywhere.

This is going to take a while to properly review, so i'm filing this now. There are two main TODOs left to finish:
* Packaging changes: we can use the system lua for linux platforms, but will need to ship lua on Windows and OSX. We should also credit the new thirdparty bits in AUTHORS.
* Eluant.dll includes a bunch of now-redundant changes. I need to create a public fork, revert the changes we don't need, and file upstream prs for the ones that we do.

This implements enough of the API for the shellmaps, but no more. A future PR will introduce a `ScriptPlayerProperties` implementation that exposes mission objectives and victory conditions for missions.