So as of a couple of days ago, it's no longer creating the map file (the .w3x) nor running when set to Debug mode.
Really not sure what's going on here.
It might be on our side, so I'm gonna check it over and see what's going on.
EDIT:
Okay, so after some checking, we think we've found the issue:
Basically, when the C# code is compiled into Lua, it has to do a work around for creating objects.
So for example, this code in C#:
C#:
arena = new Arena
{
ArenaName = "Offence, Defence, Pocket 3v3",
ArenaType = ArenaType.Teams,
SpawnRegions = new List<Rect>(),
HasNeutrals = false,
NeutralSpawnRegions = null,
CameraBounds = new Rect(12032, 2720, 17632, 4224)
};
Gets turn into:
Lua:
local default = class.Arena()
default.ArenaName = "Offence, Defence, Pocket 3v3"
default.ArenaType = 2 --[[ArenaType.Teams]]
default.SpawnRegions = ListRect()
default.HasNeutrals = false
default.NeutralSpawnRegions = nil
default.CameraBounds = System.new(FortWarsSourceData.Rect, 2, - 9536, 6464, - 4800, 9280)
local arena = default
So the C# to Lua compiler is using the reserved word "default" as its temporary identifier. If the method contains more than 17 unique temporary identifiers (default, using, out, try, case, void, byte, char, uint, lock, using, fixed, constant, object, internal, virtual), the C# to Lua compiler simply crashes.
Evidently, this list of words are all banned keywords in C#, and were chosen as to not create any conflicts with your own variable names during the conversion.
But hot damn. I'm surprised this hasn't been noticed before.
Weirdly, the list of actually banned terms for C# is way bigger than 17 terms. And that seems like a strangely arbitrary point to stop at.