From 405d21d79783f0f534431338136e370aceed1c33 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matthias=20Mail=C3=A4nder?= Date: Wed, 28 May 2014 16:20:16 +0200 Subject: [PATCH 1/2] add Game.AddChatLine to the new Lua API --- OpenRA.Mods.RA/OpenRA.Mods.RA.csproj | 1 + .../Scripting/Global/MediaGlobal.cs | 29 +++++++++++++++++++ 2 files changed, 30 insertions(+) create mode 100644 OpenRA.Mods.RA/Scripting/Global/MediaGlobal.cs diff --git a/OpenRA.Mods.RA/OpenRA.Mods.RA.csproj b/OpenRA.Mods.RA/OpenRA.Mods.RA.csproj index 050a6de02a..8b1cd2025c 100644 --- a/OpenRA.Mods.RA/OpenRA.Mods.RA.csproj +++ b/OpenRA.Mods.RA/OpenRA.Mods.RA.csproj @@ -543,6 +543,7 @@ + diff --git a/OpenRA.Mods.RA/Scripting/Global/MediaGlobal.cs b/OpenRA.Mods.RA/Scripting/Global/MediaGlobal.cs new file mode 100644 index 0000000000..dad0f4e886 --- /dev/null +++ b/OpenRA.Mods.RA/Scripting/Global/MediaGlobal.cs @@ -0,0 +1,29 @@ +#region Copyright & License Information +/* + * Copyright 2007-2014 The OpenRA Developers (see AUTHORS) + * This file is part of OpenRA, which is free software. It is made + * available to you under the terms of the GNU General Public License + * as published by the Free Software Foundation. For more information, + * see COPYING. + */ +#endregion + +using System.Drawing; + +namespace OpenRA.Scripting +{ + [ScriptGlobal("Media")] + public class MediaGlobal : ScriptGlobal + { + public MediaGlobal(ScriptContext context) : base(context) { } + + [Desc("Display a text message to the player.")] + public void DisplayMessage(string text, string prefix = "Mission") // TODO: expose HSLColor to Lua and add as parameter + { + if (string.IsNullOrEmpty(text)) + return; + + Game.AddChatLine(Color.White, prefix, text); + } + } +} From e488365f8596b714c9260f101bf03e750488bd6b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matthias=20Mail=C3=A4nder?= Date: Sun, 27 Jul 2014 07:34:31 +0200 Subject: [PATCH 2/2] add a simple test case --- mods/ra/maps/fort-lonestar/fort-lonestar.lua | 3 +++ 1 file changed, 3 insertions(+) diff --git a/mods/ra/maps/fort-lonestar/fort-lonestar.lua b/mods/ra/maps/fort-lonestar/fort-lonestar.lua index 4055fc802b..20ba6e915b 100644 --- a/mods/ra/maps/fort-lonestar/fort-lonestar.lua +++ b/mods/ra/maps/fort-lonestar/fort-lonestar.lua @@ -117,6 +117,7 @@ SendUnits = function(entryCell, unitTypes, interval, targetCell) SendWave() else Trigger.AfterDelay(3000, SovietsRetreating) + Media.DisplayMessage("You survived the onslaught!") end end @@ -129,6 +130,8 @@ SendWave = function() local units = wave[3] local target = Utils.Random(wave[4]).Location + Media.DisplayMessage("Defend Fort Lonestar at all costs!") + print(string.format("Sending wave %i in %i.", Wave, delay)) Trigger.AfterDelay(delay, function() SendUnits(entry, units, 40, target) end) end