diff --git a/OpenRA.Game/Traits/Player/FrozenActorLayer.cs b/OpenRA.Game/Traits/Player/FrozenActorLayer.cs index 544bc3ea43..de43f88321 100755 --- a/OpenRA.Game/Traits/Player/FrozenActorLayer.cs +++ b/OpenRA.Game/Traits/Player/FrozenActorLayer.cs @@ -32,7 +32,7 @@ namespace OpenRA.Traits public IRenderable[] Renderables { private get; set; } public Player Owner; - public string TooltipName; + public ITooltipInfo TooltipInfo; public Player TooltipOwner; public int HP; diff --git a/OpenRA.Game/Traits/TraitsInterfaces.cs b/OpenRA.Game/Traits/TraitsInterfaces.cs index a9d628a3bb..54cb0fef04 100644 --- a/OpenRA.Game/Traits/TraitsInterfaces.cs +++ b/OpenRA.Game/Traits/TraitsInterfaces.cs @@ -26,6 +26,7 @@ namespace OpenRA.Traits [Flags] public enum Stance { + None = 0, Enemy = 1, Neutral = 2, Ally = 4, @@ -126,10 +127,17 @@ namespace OpenRA.Traits bool Disguised { get; } Player Owner { get; } } + public interface IToolTip { - string Name(); - Player Owner(); + ITooltipInfo TooltipInfo { get; } + Player Owner { get; } + } + + public interface ITooltipInfo + { + string TooltipForPlayerStance(Stance stance); + bool IsOwnerRowVisible { get; } } public interface IDisable { bool Disabled { get; } } diff --git a/OpenRA.Game/Widgets/ViewportControllerWidget.cs b/OpenRA.Game/Widgets/ViewportControllerWidget.cs index 98821bf2a2..4e5b17488f 100644 --- a/OpenRA.Game/Widgets/ViewportControllerWidget.cs +++ b/OpenRA.Game/Widgets/ViewportControllerWidget.cs @@ -114,7 +114,7 @@ namespace OpenRA.Widgets } var frozen = world.ScreenMap.FrozenActorsAt(world.RenderPlayer, worldRenderer.Viewport.ViewToWorldPx(Viewport.LastMousePos)) - .Where(a => a.TooltipName != null && a.IsValid) + .Where(a => a.TooltipInfo != null && a.IsValid) .WithHighestSelectionPriority(); if (frozen != null) diff --git a/OpenRA.Mods.RA/Disguise.cs b/OpenRA.Mods.RA/Disguise.cs index cf8c58374c..24c561b021 100644 --- a/OpenRA.Mods.RA/Disguise.cs +++ b/OpenRA.Mods.RA/Disguise.cs @@ -36,28 +36,28 @@ namespace OpenRA.Mods.RA disguise = self.Trait(); } - public string Name() + public ITooltipInfo TooltipInfo { - if (disguise.Disguised) + get { - if (self.Owner == self.World.LocalPlayer) - return "{0} ({1})".F(info.Name, disguise.AsName); - - return disguise.AsName; + return disguise.Disguised ? disguise.AsTooltipInfo : info; } - return info.Name; } - public Player Owner() + public Player Owner { - if (disguise.Disguised) + get { - if (self.Owner == self.World.LocalPlayer) - return self.Owner; + if (disguise.Disguised) + { + if (self.Owner == self.World.LocalPlayer) + return self.Owner; - return disguise.AsPlayer; + return disguise.AsPlayer; + } + + return self.Owner; } - return self.Owner; } } @@ -65,9 +65,9 @@ namespace OpenRA.Mods.RA class Disguise : IEffectiveOwner, IIssueOrder, IResolveOrder, IOrderVoice, IRadarColorModifier, INotifyAttack { - public Player AsPlayer; - public string AsSprite; - public string AsName; + public Player AsPlayer { get; private set; } + public string AsSprite { get; private set; } + public ITooltipInfo AsTooltipInfo { get; private set; } public bool Disguised { get { return AsPlayer != null; } } public Player Owner { get { return AsPlayer; } } @@ -117,13 +117,13 @@ namespace OpenRA.Mods.RA if (target != null) { var tooltip = target.TraitsImplementing().FirstOrDefault(); - AsName = tooltip.Name(); - AsPlayer = tooltip.Owner(); + AsTooltipInfo = tooltip.TooltipInfo; + AsPlayer = tooltip.Owner; AsSprite = target.Trait().GetImage(target); } else { - AsName = null; + AsTooltipInfo = null; AsPlayer = null; AsSprite = null; } diff --git a/OpenRA.Mods.RA/Modifiers/FrozenUnderFog.cs b/OpenRA.Mods.RA/Modifiers/FrozenUnderFog.cs index 239e77fe7a..d914d74fc0 100644 --- a/OpenRA.Mods.RA/Modifiers/FrozenUnderFog.cs +++ b/OpenRA.Mods.RA/Modifiers/FrozenUnderFog.cs @@ -101,8 +101,8 @@ namespace OpenRA.Mods.RA if (tooltip.Value != null) { - actor.TooltipName = tooltip.Value.Name(); - actor.TooltipOwner = tooltip.Value.Owner(); + actor.TooltipInfo = tooltip.Value.TooltipInfo; + actor.TooltipOwner = tooltip.Value.Owner; } } } diff --git a/OpenRA.Mods.RA/Tooltip.cs b/OpenRA.Mods.RA/Tooltip.cs index 9a1ee16bec..524502e817 100644 --- a/OpenRA.Mods.RA/Tooltip.cs +++ b/OpenRA.Mods.RA/Tooltip.cs @@ -13,29 +13,58 @@ using OpenRA.Traits; namespace OpenRA.Mods.RA { [Desc("Shown in the build palette widget.")] - public class TooltipInfo : ITraitInfo + public class TooltipInfo : ITraitInfo, ITooltipInfo { [Translate] public readonly string Description = ""; [Translate] public readonly string Name = ""; + [Desc("An optional generic name (i.e. \"Soldier\" or \"Structure\")" + + "to be shown to chosen players.")] + [Translate] public readonly string GenericName = null; + + [Desc("Prefix generic tooltip name with 'Enemy' or 'Allied'.")] + public readonly bool GenericStancePrefix = true; + + [Desc("Player stances that the generic name should be shown to.")] + public readonly Stance GenericVisibility = Stance.None; + + [Desc("Show the actor's owner and their faction flag")] + public readonly bool ShowOwnerRow = true; + [Desc("Sequence of the actor that contains the cameo.")] public readonly string Icon = "icon"; public virtual object Create(ActorInitializer init) { return new Tooltip(init.self, this); } + + public string TooltipForPlayerStance(Stance stance) + { + if (stance == Stance.None || !GenericVisibility.HasFlag(stance)) + return Name; + + if (GenericStancePrefix && stance == Stance.Ally) + return "Allied " + GenericName; + + if (GenericStancePrefix && stance == Stance.Enemy) + return "Enemy " + GenericName; + + return GenericName; + } + + public bool IsOwnerRowVisible { get { return ShowOwnerRow; } } } public class Tooltip : IToolTip { - Actor self; - TooltipInfo Info; + readonly Actor self; + readonly TooltipInfo info; - public string Name() { return Info.Name; } - public Player Owner() { return self.Owner; } + public ITooltipInfo TooltipInfo { get { return info; } } + public Player Owner { get { return self.Owner; } } public Tooltip(Actor self, TooltipInfo info) { this.self = self; - Info = info; + this.info = info; } } } \ No newline at end of file diff --git a/OpenRA.Mods.RA/Widgets/Logic/WorldTooltipLogic.cs b/OpenRA.Mods.RA/Widgets/Logic/WorldTooltipLogic.cs index b9282ffbd2..f62eddbab8 100644 --- a/OpenRA.Mods.RA/Widgets/Logic/WorldTooltipLogic.cs +++ b/OpenRA.Mods.RA/Widgets/Logic/WorldTooltipLogic.cs @@ -10,6 +10,7 @@ using System; using System.Drawing; +using OpenRA.Traits; using OpenRA.Widgets; namespace OpenRA.Mods.RA.Widgets.Logic @@ -17,7 +18,7 @@ namespace OpenRA.Mods.RA.Widgets.Logic public class WorldTooltipLogic { [ObjectCreator.UseCtor] - public WorldTooltipLogic(Widget widget, TooltipContainerWidget tooltipContainer, ViewportControllerWidget viewport) + public WorldTooltipLogic(Widget widget, World world, TooltipContainerWidget tooltipContainer, ViewportControllerWidget viewport) { widget.IsVisible = () => viewport.TooltipType != WorldTooltipType.None; var label = widget.Get("LABEL"); @@ -41,20 +42,32 @@ namespace OpenRA.Mods.RA.Widgets.Logic if (viewport == null || viewport.TooltipType == WorldTooltipType.None) return; + showOwner = false; + Player o = null; switch (viewport.TooltipType) { - case WorldTooltipType.Unexplored: - labelText = "Unexplored Terrain"; - break; - case WorldTooltipType.Actor: - labelText = viewport.ActorTooltip.Name(); - o = viewport.ActorTooltip.Owner(); - break; - case WorldTooltipType.FrozenActor: - labelText = viewport.FrozenActorTooltip.TooltipName; - o = viewport.FrozenActorTooltip.TooltipOwner; - break; + case WorldTooltipType.Unexplored: + labelText = "Unexplored Terrain"; + break; + case WorldTooltipType.Actor: + { + o = viewport.ActorTooltip.Owner; + showOwner = !o.NonCombatant && viewport.ActorTooltip.TooltipInfo.IsOwnerRowVisible; + + var stance = o == null || world.RenderPlayer == null? Stance.None : o.Stances[world.RenderPlayer]; + labelText = viewport.ActorTooltip.TooltipInfo.TooltipForPlayerStance(stance); + break; + } + case WorldTooltipType.FrozenActor: + { + o = viewport.FrozenActorTooltip.TooltipOwner; + showOwner = !o.NonCombatant && viewport.FrozenActorTooltip.TooltipInfo.IsOwnerRowVisible; + + var stance = o == null || world.RenderPlayer == null? Stance.None : o.Stances[world.RenderPlayer]; + labelText = viewport.FrozenActorTooltip.TooltipInfo.TooltipForPlayerStance(stance); + break; + } } var textWidth = font.Measure(labelText).X; @@ -64,8 +77,6 @@ namespace OpenRA.Mods.RA.Widgets.Logic widget.Bounds.Width = 2*label.Bounds.X + textWidth; } - showOwner = o != null && !o.NonCombatant; - if (showOwner) { flagRace = o.Country.Race; diff --git a/mods/cnc/maps/gdi01/map.yaml b/mods/cnc/maps/gdi01/map.yaml index df4e1b7c72..cddcee6915 100644 --- a/mods/cnc/maps/gdi01/map.yaml +++ b/mods/cnc/maps/gdi01/map.yaml @@ -465,10 +465,48 @@ Rules: -ConquestVictoryConditions: MissionObjectives: EarlyGameOver: true - ^Infantry: - MustBeDestroyed: ^Vehicle: MustBeDestroyed: + Tooltip: + GenericVisibility: Enemy + ShowOwnerRow: false + ^Tank: + MustBeDestroyed: + Tooltip: + GenericVisibility: Enemy + ShowOwnerRow: false + ^Helicopter: + MustBeDestroyed: + Tooltip: + GenericVisibility: Enemy + ShowOwnerRow: false + ^Infantry: + MustBeDestroyed: + Tooltip: + GenericVisibility: Enemy + ShowOwnerRow: false + ^Plane: + Tooltip: + GenericVisibility: Enemy + ShowOwnerRow: false + ^Ship: + Tooltip: + GenericVisibility: Enemy + ShowOwnerRow: false + ^Building: + Tooltip: + GenericVisibility: Enemy + ShowOwnerRow: false + ^Wall: + Tooltip: + ShowOwnerRow: false + ^Husk: + Tooltip: + GenericVisibility: Enemy, Ally, Neutral + GenericStancePrefix: false + ShowOwnerRow: false + HARV: + -MustBeDestroyed: PROC: Buildable: Prerequisites: ~disabled diff --git a/mods/cnc/maps/gdi02/map.yaml b/mods/cnc/maps/gdi02/map.yaml index b3d8f3f353..9ef2308f9e 100644 --- a/mods/cnc/maps/gdi02/map.yaml +++ b/mods/cnc/maps/gdi02/map.yaml @@ -747,10 +747,48 @@ Rules: -ConquestVictoryConditions: MissionObjectives: EarlyGameOver: true - ^Infantry: - MustBeDestroyed: ^Vehicle: MustBeDestroyed: + Tooltip: + GenericVisibility: Enemy + ShowOwnerRow: false + ^Tank: + MustBeDestroyed: + Tooltip: + GenericVisibility: Enemy + ShowOwnerRow: false + ^Helicopter: + MustBeDestroyed: + Tooltip: + GenericVisibility: Enemy + ShowOwnerRow: false + ^Infantry: + MustBeDestroyed: + Tooltip: + GenericVisibility: Enemy + ShowOwnerRow: false + ^Plane: + Tooltip: + GenericVisibility: Enemy + ShowOwnerRow: false + ^Ship: + Tooltip: + GenericVisibility: Enemy + ShowOwnerRow: false + ^Building: + Tooltip: + GenericVisibility: Enemy + ShowOwnerRow: false + ^Wall: + Tooltip: + ShowOwnerRow: false + ^Husk: + Tooltip: + GenericVisibility: Enemy, Ally, Neutral + GenericStancePrefix: false + ShowOwnerRow: false + HARV: + -MustBeDestroyed: PROC: Buildable: Prerequisites: ~disabled diff --git a/mods/cnc/maps/gdi03/map.yaml b/mods/cnc/maps/gdi03/map.yaml index 09455d2dc2..858950a204 100644 --- a/mods/cnc/maps/gdi03/map.yaml +++ b/mods/cnc/maps/gdi03/map.yaml @@ -908,8 +908,48 @@ Rules: -ConquestVictoryConditions: MissionObjectives: EarlyGameOver: true + ^Vehicle: + MustBeDestroyed: + Tooltip: + GenericVisibility: Enemy + ShowOwnerRow: false + ^Tank: + MustBeDestroyed: + Tooltip: + GenericVisibility: Enemy + ShowOwnerRow: false + ^Helicopter: + MustBeDestroyed: + Tooltip: + GenericVisibility: Enemy + ShowOwnerRow: false ^Infantry: MustBeDestroyed: + Tooltip: + GenericVisibility: Enemy + ShowOwnerRow: false + ^Plane: + Tooltip: + GenericVisibility: Enemy + ShowOwnerRow: false + ^Ship: + Tooltip: + GenericVisibility: Enemy + ShowOwnerRow: false + ^Building: + Tooltip: + GenericVisibility: Enemy + ShowOwnerRow: false + ^Wall: + Tooltip: + ShowOwnerRow: false + ^Husk: + Tooltip: + GenericVisibility: Enemy, Ally, Neutral + GenericStancePrefix: false + ShowOwnerRow: false + HARV: + -MustBeDestroyed: WEAP: Buildable: Prerequisites: ~disabled diff --git a/mods/cnc/maps/gdi04a/map.yaml b/mods/cnc/maps/gdi04a/map.yaml index 78413c9b44..47c4e9ce7f 100644 --- a/mods/cnc/maps/gdi04a/map.yaml +++ b/mods/cnc/maps/gdi04a/map.yaml @@ -553,12 +553,48 @@ Rules: -ConquestVictoryConditions: MissionObjectives: EarlyGameOver: true - ^Infantry: - MustBeDestroyed: ^Vehicle: MustBeDestroyed: + Tooltip: + GenericVisibility: Enemy + ShowOwnerRow: false ^Tank: MustBeDestroyed: + Tooltip: + GenericVisibility: Enemy + ShowOwnerRow: false + ^Helicopter: + MustBeDestroyed: + Tooltip: + GenericVisibility: Enemy + ShowOwnerRow: false + ^Infantry: + MustBeDestroyed: + Tooltip: + GenericVisibility: Enemy + ShowOwnerRow: false + ^Plane: + Tooltip: + GenericVisibility: Enemy + ShowOwnerRow: false + ^Ship: + Tooltip: + GenericVisibility: Enemy + ShowOwnerRow: false + ^Building: + Tooltip: + GenericVisibility: Enemy + ShowOwnerRow: false + ^Wall: + Tooltip: + ShowOwnerRow: false + ^Husk: + Tooltip: + GenericVisibility: Enemy, Ally, Neutral + GenericStancePrefix: false + ShowOwnerRow: false + HARV: + -MustBeDestroyed: CRATE: Crate: Lifetime: 9999 diff --git a/mods/cnc/maps/gdi04b/map.yaml b/mods/cnc/maps/gdi04b/map.yaml index 1221868408..e20f86bfdc 100644 --- a/mods/cnc/maps/gdi04b/map.yaml +++ b/mods/cnc/maps/gdi04b/map.yaml @@ -632,12 +632,48 @@ Rules: -ConquestVictoryConditions: MissionObjectives: EarlyGameOver: true - ^Infantry: - MustBeDestroyed: ^Vehicle: MustBeDestroyed: + Tooltip: + GenericVisibility: Enemy + ShowOwnerRow: false ^Tank: MustBeDestroyed: + Tooltip: + GenericVisibility: Enemy + ShowOwnerRow: false + ^Helicopter: + MustBeDestroyed: + Tooltip: + GenericVisibility: Enemy + ShowOwnerRow: false + ^Infantry: + MustBeDestroyed: + Tooltip: + GenericVisibility: Enemy + ShowOwnerRow: false + ^Plane: + Tooltip: + GenericVisibility: Enemy + ShowOwnerRow: false + ^Ship: + Tooltip: + GenericVisibility: Enemy + ShowOwnerRow: false + ^Building: + Tooltip: + GenericVisibility: Enemy + ShowOwnerRow: false + ^Wall: + Tooltip: + ShowOwnerRow: false + ^Husk: + Tooltip: + GenericVisibility: Enemy, Ally, Neutral + GenericStancePrefix: false + ShowOwnerRow: false + HARV: + -MustBeDestroyed: E3: AutoTarget: ScanRadius: 5 diff --git a/mods/cnc/maps/gdi04c/map.yaml b/mods/cnc/maps/gdi04c/map.yaml index 041d74d466..7863beb31c 100644 --- a/mods/cnc/maps/gdi04c/map.yaml +++ b/mods/cnc/maps/gdi04c/map.yaml @@ -899,12 +899,48 @@ Rules: -ConquestVictoryConditions: MissionObjectives: EarlyGameOver: true - ^Infantry: - MustBeDestroyed: ^Vehicle: MustBeDestroyed: + Tooltip: + GenericVisibility: Enemy + ShowOwnerRow: false ^Tank: MustBeDestroyed: + Tooltip: + GenericVisibility: Enemy + ShowOwnerRow: false + ^Helicopter: + MustBeDestroyed: + Tooltip: + GenericVisibility: Enemy + ShowOwnerRow: false + ^Infantry: + MustBeDestroyed: + Tooltip: + GenericVisibility: Enemy + ShowOwnerRow: false + ^Plane: + Tooltip: + GenericVisibility: Enemy + ShowOwnerRow: false + ^Ship: + Tooltip: + GenericVisibility: Enemy + ShowOwnerRow: false + ^Building: + Tooltip: + GenericVisibility: Enemy + ShowOwnerRow: false + ^Wall: + Tooltip: + ShowOwnerRow: false + ^Husk: + Tooltip: + GenericVisibility: Enemy, Ally, Neutral + GenericStancePrefix: false + ShowOwnerRow: false + HARV: + -MustBeDestroyed: ^CivInfantry: Health: HP: 125 diff --git a/mods/cnc/maps/nod01/map.yaml b/mods/cnc/maps/nod01/map.yaml index ee5846e0d8..ff684131f0 100644 --- a/mods/cnc/maps/nod01/map.yaml +++ b/mods/cnc/maps/nod01/map.yaml @@ -323,11 +323,48 @@ Rules: MustBeDestroyed: ^CivInfantry: MustBeDestroyed: - ^Infantry: - MustBeDestroyed: ^Vehicle: MustBeDestroyed: - + Tooltip: + GenericVisibility: Enemy + ShowOwnerRow: false + ^Tank: + MustBeDestroyed: + Tooltip: + GenericVisibility: Enemy + ShowOwnerRow: false + ^Helicopter: + MustBeDestroyed: + Tooltip: + GenericVisibility: Enemy + ShowOwnerRow: false + ^Infantry: + MustBeDestroyed: + Tooltip: + GenericVisibility: Enemy + ShowOwnerRow: false + ^Plane: + Tooltip: + GenericVisibility: Enemy + ShowOwnerRow: false + ^Ship: + Tooltip: + GenericVisibility: Enemy + ShowOwnerRow: false + ^Building: + Tooltip: + GenericVisibility: Enemy + ShowOwnerRow: false + ^Wall: + Tooltip: + ShowOwnerRow: false + ^Husk: + Tooltip: + GenericVisibility: Enemy, Ally, Neutral + GenericStancePrefix: false + ShowOwnerRow: false + HARV: + -MustBeDestroyed: Sequences: VoxelSequences: diff --git a/mods/cnc/maps/nod03a/map.yaml b/mods/cnc/maps/nod03a/map.yaml index d4f53b67a9..dea3bd2b6a 100644 --- a/mods/cnc/maps/nod03a/map.yaml +++ b/mods/cnc/maps/nod03a/map.yaml @@ -537,10 +537,48 @@ Rules: Scripts: nod03a.lua ObjectivesPanel: PanelName: MISSION_OBJECTIVES - ^Infantry: - MustBeDestroyed: ^Vehicle: MustBeDestroyed: + Tooltip: + GenericVisibility: Enemy + ShowOwnerRow: false + ^Tank: + MustBeDestroyed: + Tooltip: + GenericVisibility: Enemy + ShowOwnerRow: false + ^Helicopter: + MustBeDestroyed: + Tooltip: + GenericVisibility: Enemy + ShowOwnerRow: false + ^Infantry: + MustBeDestroyed: + Tooltip: + GenericVisibility: Enemy + ShowOwnerRow: false + ^Plane: + Tooltip: + GenericVisibility: Enemy + ShowOwnerRow: false + ^Ship: + Tooltip: + GenericVisibility: Enemy + ShowOwnerRow: false + ^Building: + Tooltip: + GenericVisibility: Enemy + ShowOwnerRow: false + ^Wall: + Tooltip: + ShowOwnerRow: false + ^Husk: + Tooltip: + GenericVisibility: Enemy, Ally, Neutral + GenericStancePrefix: false + ShowOwnerRow: false + HARV: + -MustBeDestroyed: NUK2: Buildable: Prerequisites: ~disabled diff --git a/mods/cnc/maps/nod03b/map.yaml b/mods/cnc/maps/nod03b/map.yaml index 5fd45c90a0..77d0b361fc 100644 --- a/mods/cnc/maps/nod03b/map.yaml +++ b/mods/cnc/maps/nod03b/map.yaml @@ -582,10 +582,48 @@ Rules: Scripts: nod03b.lua ObjectivesPanel: PanelName: MISSION_OBJECTIVES - ^Infantry: - MustBeDestroyed: ^Vehicle: MustBeDestroyed: + Tooltip: + GenericVisibility: Enemy + ShowOwnerRow: false + ^Tank: + MustBeDestroyed: + Tooltip: + GenericVisibility: Enemy + ShowOwnerRow: false + ^Helicopter: + MustBeDestroyed: + Tooltip: + GenericVisibility: Enemy + ShowOwnerRow: false + ^Infantry: + MustBeDestroyed: + Tooltip: + GenericVisibility: Enemy + ShowOwnerRow: false + ^Plane: + Tooltip: + GenericVisibility: Enemy + ShowOwnerRow: false + ^Ship: + Tooltip: + GenericVisibility: Enemy + ShowOwnerRow: false + ^Building: + Tooltip: + GenericVisibility: Enemy + ShowOwnerRow: false + ^Wall: + Tooltip: + ShowOwnerRow: false + ^Husk: + Tooltip: + GenericVisibility: Enemy, Ally, Neutral + GenericStancePrefix: false + ShowOwnerRow: false + HARV: + -MustBeDestroyed: NUK2: Buildable: Prerequisites: ~disabled diff --git a/mods/cnc/rules/civilian.yaml b/mods/cnc/rules/civilian.yaml index 51f3ff96e0..f4043eed70 100644 --- a/mods/cnc/rules/civilian.yaml +++ b/mods/cnc/rules/civilian.yaml @@ -288,9 +288,9 @@ WOOD: Inherits: ^Wall Health: HP: 100 - Armor: - Type: Wood - Tooltip: + Armor: + Type: Wood + Tooltip: Name: Wooden Fence Icon: woodicnh diff --git a/mods/cnc/rules/defaults.yaml b/mods/cnc/rules/defaults.yaml index c7cf54016a..db7de46166 100644 --- a/mods/cnc/rules/defaults.yaml +++ b/mods/cnc/rules/defaults.yaml @@ -30,6 +30,8 @@ Guard: Guardable: BodyOrientation: + Tooltip: + GenericName: Vehicle UpdatesPlayerStatistics: Cloak: RequiresUpgrade: cloak @@ -84,6 +86,8 @@ Guard: Guardable: BodyOrientation: + Tooltip: + GenericName: Tank UpdatesPlayerStatistics: Cloak: RequiresUpgrade: cloak @@ -133,6 +137,8 @@ Huntable: LuaScriptEvents: ScriptTriggers: + Tooltip: + GenericName: Helicopter GainsStatUpgrades: SelfHealing@ELITE: Step: 2 @@ -191,6 +197,8 @@ Guard: Guardable: BodyOrientation: + Tooltip: + GenericName: Soldier SelfHealing@HOSPITAL: Step: 5 Ticks: 100 @@ -236,6 +244,7 @@ Cost: 70 Tooltip: Name: Civilian + GenericVisibility: None Mobile: Speed: 56 Health: @@ -400,6 +409,8 @@ Guardable: Range: 3 BodyOrientation: + Tooltip: + GenericName: Structure FrozenUnderFog: UpdatesPlayerStatistics: Huntable: @@ -430,6 +441,7 @@ Building: Tooltip: Name: Civilian Building + GenericVisibility: None FrozenUnderFog: StartsRevealed: true @@ -443,6 +455,7 @@ RelativeToTopLeft: yes Tooltip: Name: Civilian Building (Destroyed) + GenericVisibility: None BodyOrientation: FrozenUnderFog: StartsRevealed: true @@ -485,6 +498,7 @@ RelativeToTopLeft: yes Tooltip: Name: Field (Destroyed) + GenericVisibility: None BelowUnits: BodyOrientation: RenderBuilding: @@ -614,6 +628,8 @@ ForceHealthPercentage: 25 BelowUnits: BodyOrientation: + Tooltip: + GenericName: Destroyed Vehicle LuaScriptEvents: DisabledOverlay: ScriptTriggers: diff --git a/mods/cnc/rules/vehicles.yaml b/mods/cnc/rules/vehicles.yaml index 465a8aa291..88274fa9f3 100644 --- a/mods/cnc/rules/vehicles.yaml +++ b/mods/cnc/rules/vehicles.yaml @@ -43,6 +43,7 @@ HARV: Cost: 1000 Tooltip: Name: Harvester + GenericName: Harvester Description: Collects Tiberium for processing.\n Unarmed Buildable: BuildPaletteOrder: 10 diff --git a/mods/ra/maps/allies-01-classic/map.yaml b/mods/ra/maps/allies-01-classic/map.yaml index bc9dc59bfb..136ba75532 100644 --- a/mods/ra/maps/allies-01-classic/map.yaml +++ b/mods/ra/maps/allies-01-classic/map.yaml @@ -604,6 +604,42 @@ Rules: EINSTEIN: Passenger: CargoType: Einstein + ^Vehicle: + Tooltip: + GenericVisibility: Enemy + ShowOwnerRow: false + ^Tank: + Tooltip: + GenericVisibility: Enemy + ShowOwnerRow: false + ^Infantry: + Tooltip: + GenericVisibility: Enemy + ShowOwnerRow: false + ^Ship: + Tooltip: + GenericVisibility: Enemy + ShowOwnerRow: false + ^Plane: + Tooltip: + GenericVisibility: Enemy + ShowOwnerRow: false + ^Helicopter: + Tooltip: + GenericVisibility: Enemy + ShowOwnerRow: false + ^Building: + Tooltip: + GenericVisibility: Enemy + ShowOwnerRow: false + ^Wall: + Tooltip: + ShowOwnerRow: false + ^Husk: + Tooltip: + GenericVisibility: Enemy, Ally, Neutral + GenericStancePrefix: false + ShowOwnerRow: false ^CivInfantry: RevealsShroud: Range: 0c0 diff --git a/mods/ra/maps/allies-02-classic/map.yaml b/mods/ra/maps/allies-02-classic/map.yaml index be5e9ca389..b96f01489c 100644 --- a/mods/ra/maps/allies-02-classic/map.yaml +++ b/mods/ra/maps/allies-02-classic/map.yaml @@ -879,12 +879,45 @@ Rules: LuaScripts: allies02.lua ObjectivesPanel: PanelName: MISSION_OBJECTIVES - ^Infantry: - MustBeDestroyed: - ^Tank: - MustBeDestroyed: ^Vehicle: MustBeDestroyed: + Tooltip: + GenericVisibility: Enemy + ShowOwnerRow: false + ^Tank: + MustBeDestroyed: + Tooltip: + GenericVisibility: Enemy + ShowOwnerRow: false + ^Infantry: + MustBeDestroyed: + Tooltip: + GenericVisibility: Enemy + ShowOwnerRow: false + ^Ship: + Tooltip: + GenericVisibility: Enemy + ShowOwnerRow: false + ^Plane: + Tooltip: + GenericVisibility: Enemy + ShowOwnerRow: false + ^Helicopter: + Tooltip: + GenericVisibility: Enemy + ShowOwnerRow: false + ^Building: + Tooltip: + GenericVisibility: Enemy + ShowOwnerRow: false + ^Wall: + Tooltip: + ShowOwnerRow: false + ^Husk: + Tooltip: + GenericVisibility: Enemy, Ally, Neutral + GenericStancePrefix: false + ShowOwnerRow: false APWR: Buildable: Prerequisites: ~disabled diff --git a/mods/ra/rules/defaults.yaml b/mods/ra/rules/defaults.yaml index 4d251eb0d3..2ca4addc2f 100644 --- a/mods/ra/rules/defaults.yaml +++ b/mods/ra/rules/defaults.yaml @@ -37,6 +37,8 @@ Guard: Guardable: BodyOrientation: + Tooltip: + GenericName: Vehicle EjectOnDeath: PilotActor: e1 SuccessRate: 20 @@ -106,6 +108,8 @@ Guard: Guardable: BodyOrientation: + Tooltip: + GenericName: Tank EjectOnDeath: PilotActor: e1 SuccessRate: 20 @@ -183,6 +187,8 @@ Guard: Guardable: BodyOrientation: + Tooltip: + GenericName: Soldier SelfHealing@HOSPITAL: Step: 5 Ticks: 100 @@ -250,6 +256,8 @@ Guard: Guardable: BodyOrientation: + Tooltip: + GenericName: Ship Huntable: LuaScriptEvents: ScriptTriggers: @@ -300,6 +308,8 @@ UpdatesPlayerStatistics: CombatDebugOverlay: BodyOrientation: + Tooltip: + GenericName: Plane Huntable: LuaScriptEvents: ScriptTriggers: @@ -320,6 +330,8 @@ ^Helicopter: Inherits: ^Plane + Tooltip: + GenericName: Helicopter GpsDot: String: Helicopter @@ -366,6 +378,8 @@ Range: 3 BodyOrientation: FrozenUnderFog: + Tooltip: + GenericName: Structure GpsDot: String: Structure Huntable: @@ -434,6 +448,7 @@ Type: Wood Tooltip: Name: Civilian Building + GenericVisibility: None ProximityCaptor: Types: CivilianBuilding -WithMakeAnimation: @@ -472,6 +487,7 @@ Cost: 70 Tooltip: Name: Civilian + GenericVisibility: None Health: HP: 20 Mobile: @@ -551,6 +567,8 @@ TargetableUnit: TargetTypes: Ground RequiresForceFire: true + Tooltip: + GenericName: Destroyed Vehicle AutoTargetIgnore: Capturable: Type: husk diff --git a/mods/ra/rules/vehicles.yaml b/mods/ra/rules/vehicles.yaml index 14cf6212ef..d03619d4a6 100644 --- a/mods/ra/rules/vehicles.yaml +++ b/mods/ra/rules/vehicles.yaml @@ -245,6 +245,7 @@ HARV: Cost: 1100 Tooltip: Name: Ore Truck + GenericName: Harvester Description: Collects Ore and Gems for processing.\n Unarmed Selectable: Priority: 7