diff --git a/OpenRA.Mods.Common/Scripting/Properties/GeneralProperties.cs b/OpenRA.Mods.Common/Scripting/Properties/GeneralProperties.cs index 41fb991f9c..2f66dd54f9 100644 --- a/OpenRA.Mods.Common/Scripting/Properties/GeneralProperties.cs +++ b/OpenRA.Mods.Common/Scripting/Properties/GeneralProperties.cs @@ -9,6 +9,7 @@ */ #endregion +using System.Linq; using Eluant; using OpenRA.Mods.Common.Activities; using OpenRA.Mods.Common.Effects; @@ -103,6 +104,7 @@ namespace OpenRA.Mods.Common.Scripting readonly IFacing facing; readonly AutoTarget autotarget; readonly ScriptTags scriptTags; + readonly Tooltip[] tooltips; public GeneralProperties(ScriptContext context, Actor self) : base(context, self) @@ -110,6 +112,7 @@ namespace OpenRA.Mods.Common.Scripting facing = self.TraitOrDefault(); autotarget = self.TraitOrDefault(); scriptTags = self.TraitOrDefault(); + tooltips = self.TraitsImplementing().ToArray(); } [Desc("The actor position in cell coordinates.")] @@ -189,6 +192,19 @@ namespace OpenRA.Mods.Common.Scripting } } + [Desc("The actor's tooltip name. Returns nil if the actor has no tooltip.")] + public string TooltipName + { + get + { + var tooltip = tooltips.FirstEnabledTraitOrDefault(); + if (tooltip == null) + return null; + + return tooltip.Info.Name; + } + } + [Desc("Specifies whether or not the actor supports 'tags'.")] public bool IsTaggable { get { return scriptTags != null; } }