diff --git a/OpenRA.Mods.Common/Traits/SupportPowers/SupportPower.cs b/OpenRA.Mods.Common/Traits/SupportPowers/SupportPower.cs index e5be5a18c5..b49c43c925 100644 --- a/OpenRA.Mods.Common/Traits/SupportPowers/SupportPower.cs +++ b/OpenRA.Mods.Common/Traits/SupportPowers/SupportPower.cs @@ -30,8 +30,11 @@ namespace OpenRA.Mods.Common.Traits [Desc("Palette used for the icon.")] public readonly string IconPalette = "chrome"; - public readonly string Name = ""; - public readonly string Description = ""; + [TranslationReference(optional: true)] + public readonly string Name = null; + + [TranslationReference(optional: true)] + public readonly string Description = null; [Desc("Allow multiple instances of the same support power.")] public readonly bool AllowMultiple = false; @@ -46,6 +49,7 @@ namespace OpenRA.Mods.Common.Traits [Desc("If set to true, the support power will be fully charged when it becomes available. " + "Normal rules apply for subsequent charges.")] public readonly bool StartFullyCharged = false; + public readonly string[] Prerequisites = Array.Empty(); public readonly string DetectedSound = null; diff --git a/OpenRA.Mods.Common/Widgets/Logic/Ingame/SupportPowerTooltipLogic.cs b/OpenRA.Mods.Common/Widgets/Logic/Ingame/SupportPowerTooltipLogic.cs index b1dd0b7440..94ba7758da 100644 --- a/OpenRA.Mods.Common/Widgets/Logic/Ingame/SupportPowerTooltipLogic.cs +++ b/OpenRA.Mods.Common/Widgets/Logic/Ingame/SupportPowerTooltipLogic.cs @@ -53,11 +53,11 @@ namespace OpenRA.Mods.Common.Widgets.Logic if (sp == lastPower && hotkey == lastHotkey && lastRemainingSeconds == remainingSeconds) return; - var nameText = sp.Info.Name; + var nameText = TranslationProvider.GetString(sp.Info.Name); nameLabel.GetText = () => nameText; var nameSize = nameFont.Measure(nameText); - var descText = sp.Info.Description.Replace("\\n", "\n"); + var descText = TranslationProvider.GetString(sp.Info.Description); descLabel.GetText = () => descText; var descSize = descFont.Measure(descText); diff --git a/OpenRA.Mods.Common/Widgets/SupportPowerTimerWidget.cs b/OpenRA.Mods.Common/Widgets/SupportPowerTimerWidget.cs index 7a2b5a2616..dfd867c756 100644 --- a/OpenRA.Mods.Common/Widgets/SupportPowerTimerWidget.cs +++ b/OpenRA.Mods.Common/Widgets/SupportPowerTimerWidget.cs @@ -21,8 +21,10 @@ namespace OpenRA.Mods.Common.Widgets { public class SupportPowerTimerWidget : Widget { + [TranslationReference("player", "support-power", "time")] + const string Format = "support-power-timer"; + public readonly string Font = "Bold"; - public readonly string Format = "{0}'s {1}: {2}"; public readonly TextAlign Align = TextAlign.Left; public readonly TimerOrder Order = TimerOrder.Descending; @@ -57,7 +59,9 @@ namespace OpenRA.Mods.Common.Widgets { var self = p.Instances[0].Self; var time = WidgetUtils.FormatTime(p.RemainingTicks, false, self.World.Timestep); - var text = Format.FormatCurrent(self.Owner.PlayerName, p.Info.Name, time); + var supportPowerName = TranslationProvider.GetString(p.Info.Name); + var text = TranslationProvider.GetString(Format, Translation.Arguments("player", self.Owner.PlayerName, "support-power", supportPowerName, "time", time)); + var playerColor = self.Owner.Color; if (Game.Settings.Game.UsePlayerStanceColors) diff --git a/mods/cnc/languages/rules/en.ftl b/mods/cnc/languages/rules/en.ftl index 3b45ecfb88..2a9c40259e 100644 --- a/mods/cnc/languages/rules/en.ftl +++ b/mods/cnc/languages/rules/en.ftl @@ -333,6 +333,9 @@ actor-hq = .description = Provides radar and Air Strike support power. Unlocks higher-tech units and buildings. Requires power to operate. + .airstrikepower-name = Air Strike + .airstrikepower-description = Deploy an aerial napalm strike. + Burns buildings and infantry along a line. actor-fix = .name = Repair Facility @@ -343,12 +346,18 @@ actor-eye = .description = Provides radar and Orbital Ion Cannon support power. Unlocks Mammoth Tank and Commando. Requires power to operate. + .ioncannonpower-name = Ion Cannon + .ioncannonpower-description = Initiate an Ion Cannon strike. + Applies instant damage to a small area. actor-tmpl = .name = Temple of Nod .description = Provides Nuclear Strike support power. Unlocks Stealth Tank, Chem. Warrior and Obelisk of Light. Requires power to operate. + .nukepower-name = Nuclear Strike + .nukepower-description = Launch a tactical nuclear warhead. + Applies heavy damage over a large area. actor-gun = .name = Turret diff --git a/mods/cnc/maps/twist-of-fate/rules.yaml b/mods/cnc/maps/twist-of-fate/rules.yaml index d444197f2a..061c3592b1 100644 --- a/mods/cnc/maps/twist-of-fate/rules.yaml +++ b/mods/cnc/maps/twist-of-fate/rules.yaml @@ -83,8 +83,8 @@ Astk.proxy: ChargeInterval: 5250 SquadSize: 3 QuantizedFacings: 8 - Name: Air Strike - Description: Deploy an aerial napalm strike.\nBurns buildings and infantry along a line. + Name: actor-hq.airstrikepower-name + Description: actor-hq.airstrikepower-description EndChargeSpeechNotification: AirstrikeReady SelectTargetSpeechNotification: SelectTarget InsufficientPowerSpeechNotification: InsufficientPower diff --git a/mods/cnc/rules/campaign-maprules.yaml b/mods/cnc/rules/campaign-maprules.yaml index 874e70f7ff..ed475b42d8 100644 --- a/mods/cnc/rules/campaign-maprules.yaml +++ b/mods/cnc/rules/campaign-maprules.yaml @@ -62,8 +62,8 @@ airstrike.proxy: ChargeInterval: 3000 SquadSize: 3 QuantizedFacings: 8 - Name: Air Strike - Description: Deploy an aerial napalm strike.\nBurns buildings and infantry along a line. + Name: actor-hq.airstrikepower-name + Description: actor-hq.airstrikepower-description EndChargeSpeechNotification: AirstrikeReady SelectTargetSpeechNotification: SelectTarget InsufficientPowerSpeechNotification: InsufficientPower diff --git a/mods/cnc/rules/structures.yaml b/mods/cnc/rules/structures.yaml index cbfdd2144b..d7ae25e173 100644 --- a/mods/cnc/rules/structures.yaml +++ b/mods/cnc/rules/structures.yaml @@ -681,8 +681,8 @@ HQ: ChargeInterval: 7500 SquadSize: 3 QuantizedFacings: 8 - Name: Air Strike - Description: Deploy an aerial napalm strike.\nBurns buildings and infantry along a line. + Name: actor-hq.airstrikepower-name + Description: actor-hq.airstrikepower-description EndChargeSpeechNotification: AirstrikeReady SelectTargetSpeechNotification: SelectTarget InsufficientPowerSpeechNotification: InsufficientPower @@ -795,8 +795,8 @@ EYE: Icon: ioncannon Cursor: ioncannon ChargeInterval: 9000 - Name: Ion Cannon - Description: Initiate an Ion Cannon strike.\nApplies instant damage to a small area. + Name: actor-eye.ioncannonpower-name + Description: actor-eye.ioncannonpower-description BeginChargeSpeechNotification: IonCannonCharging EndChargeSpeechNotification: IonCannonReady SelectTargetSpeechNotification: SelectTarget @@ -853,8 +853,8 @@ TMPL: Icon: abomb Cursor: nuke ChargeInterval: 11250 - Name: Nuclear Strike - Description: Launch a tactical nuclear warhead.\nApplies heavy damage over a large area. + Name: actor-tmpl.nukepower-name + Description: actor-tmpl.nukepower-description EndChargeSpeechNotification: NuclearWeaponAvailable SelectTargetSpeechNotification: SelectTarget InsufficientPowerSpeechNotification: InsufficientPower diff --git a/mods/common/languages/chrome/en.ftl b/mods/common/languages/chrome/en.ftl index b4c32d86b0..e2aa0cdfe4 100644 --- a/mods/common/languages/chrome/en.ftl +++ b/mods/common/languages/chrome/en.ftl @@ -526,4 +526,3 @@ label-game-admin = Game Admin ## gamesave-loading.yaml label-gamesave-loading-screen-title = Loading Saved Game label-gamesave-loading-screen-desc = Press Escape to cancel loading and return to the main menu - diff --git a/mods/common/languages/en.ftl b/mods/common/languages/en.ftl index b6066ae03d..37ebb34816 100644 --- a/mods/common/languages/en.ftl +++ b/mods/common/languages/en.ftl @@ -857,3 +857,6 @@ notification-player-is-defeated = { $player } is defeated. ## OrderManager notification-desync-compare-logs = Out of sync in frame { $frame }. Compare syncreport.log with other players. + +## SupportPowerTimerWidget +support-power-timer = { $player }'s { $support-power }: { $time } diff --git a/mods/d2k/languages/rules/en.ftl b/mods/d2k/languages/rules/en.ftl index 69fc91bd09..218685268e 100644 --- a/mods/d2k/languages/rules/en.ftl +++ b/mods/d2k/languages/rules/en.ftl @@ -339,6 +339,8 @@ actor-high-tech-factory = .encyclopedia = The High Tech Factory produces airborne units, and is required for the production of Carryalls. House Atreides can upgrade the High Tech Factory to build Ornithopters for an air strike in later missions. The High Tech Factory is vulnerable to most types of weapons. + .airstrikepower-name = Air Strike + .airstrikepower-description = Ornithopters hit the target with bombs actor-research-centre = .description = Unlocks advanced tanks. @@ -353,6 +355,19 @@ actor-palace = .encyclopedia = The Palace serves as the command center once it is constructed. Palaces feature unique additional options, making available advanced special weapons. Armor is heavy, but the Palace is vulnerable to most types of weapons. + .nukepower-name = Death Hand + .nukepower-description = Launches an atomic missile at a target location + .produceactorpower-fremen-name = Recruit Fremen + .produceactorpower-fremen-description = Elite infantry unit armed with assault rifles and rockets + Strong vs Infantry, Vehicles + Weak vs Artillery + Special Ability: Invisibility + .produceactorpower-saboteur-name = Recruit Saboteur + .produceactorpower-saboteur-description = Sneaky infantry, armed with explosives. + Can be deployed to become invisible for a limited time. + Strong vs Buildings + Weak vs Everything + Special Ability: destroy buildings ## vehicles.yaml actor-mcv = diff --git a/mods/d2k/rules/structures.yaml b/mods/d2k/rules/structures.yaml index 47515ddbc2..8709be0f07 100644 --- a/mods/d2k/rules/structures.yaml +++ b/mods/d2k/rules/structures.yaml @@ -996,12 +996,12 @@ high_tech_factory: ProvidesPrerequisite@buildingname: AirstrikePower: Icon: ornistrike - Name: Air Strike + Name: actor-high-tech-factory.airstrikepower-name Prerequisites: ~techlevel.superweapons, upgrade.hightech ChargeInterval: 7500 SquadSize: 3 SquadOffset: -1536, 1024, 0 - Description: Ornithopters hit the target with bombs + Description: actor-high-tech-factory.airstrikepower-description UnitType: ornithopter DisplayBeacon: True CameraActor: camera @@ -1155,8 +1155,8 @@ palace: RequiresCondition: harkonnen Prerequisites: ~techlevel.superweapons, ~palace.nuke ChargeInterval: 7500 - Name: Death Hand - Description: Launches an atomic missile at a target location + Name: actor-palace.nukepower-name + Description: actor-palace.nukepower-description BeginChargeSpeechNotification: DeathHandMissilePrepping EndChargeSpeechNotification: DeathHandMissileReady IncomingSpeechNotification: MissileLaunchDetected @@ -1182,8 +1182,8 @@ palace: TrailSequences: idle SupportPowerPaletteOrder: 40 ProduceActorPower@fremen: - Name: Recruit Fremen - Description: Elite infantry unit armed with assault rifles and rockets\n Strong vs Infantry, Vehicles\n Weak vs Artillery\n Special Ability: Invisibility + Name: actor-palace.produceactorpower-fremen-name + Description: actor-palace.produceactorpower-fremen-description Icon: fremen PauseOnCondition: disabled RequiresCondition: atreides @@ -1199,8 +1199,8 @@ palace: OrderName: ProduceActorPower.Fremen SupportPowerPaletteOrder: 20 ProduceActorPower@saboteur: - Name: Recruit Saboteur - Description: Sneaky infantry, armed with explosives.\nCan be deployed to become invisible for a limited time.\n Strong vs Buildings\n Weak vs Everything\n Special Ability: destroy buildings + Name: actor-palace.produceactorpower-saboteur-name + Description: actor-palace.produceactorpower-saboteur-description Icon: saboteur PauseOnCondition: disabled RequiresCondition: ordos diff --git a/mods/ra/languages/rules/en.ftl b/mods/ra/languages/rules/en.ftl index 6b4c5b5d9f..b8523625ea 100644 --- a/mods/ra/languages/rules/en.ftl +++ b/mods/ra/languages/rules/en.ftl @@ -420,6 +420,9 @@ actor-mslo = Requires power to operate. Maximum 1 can be built. Special Ability: Atom Bomb + .nukepower-name = Atom Bomb + .nukepower-description = Launches a devastating atomic bomb + at a target location. actor-gap = .name = Gap Generator @@ -443,6 +446,9 @@ actor-iron = Maximum 1 can be built. Special Ability: Invulnerability .name = Iron Curtain + .grantexternalconditionpower-ironcurtain-name = Invulnerability + .grantexternalconditionpower-ironcurtain-description = Makes a group of units invulnerable + for 20 seconds. actor-pdox = .description = Teleports a group of units across the @@ -451,6 +457,12 @@ actor-pdox = Maximum 1 can be built. Special Ability: Chronoshift .name = Chronosphere + .chronoshiftpower-chronoshift-name = Chronoshift + .chronoshiftpower-chronoshift-description = Teleports a group of units across + the map for 20 seconds. + .chronoshiftpower-advancedchronoshift-name = Advanced Chronoshift + .chronoshiftpower-advancedchronoshift-description = Teleports a large group of units across + the map for 20 seconds. actor-tsla = .description = Advanced base defense. @@ -514,6 +526,9 @@ actor-atek = .description = Provides Allied advanced technologies. Special Ability: GPS Satellite .name = Allied Tech Center + .gpspower-name = GPS Satellite + .gpspower-description = Reveals map terrain and provides tactical + information. Requires power and active radar. actor-weap = .description = Produces vehicles. @@ -543,6 +558,14 @@ actor-afld = Special Ability: Spy Plane Special Ability: Paratroopers .name = Airfield + .airstrikepower-spyplane-name = Spy Plane + .airstrikepower-spyplane-description = Reveals an area of the map. + .paratrooperspower-paratroopers-name = Paratroopers + .paratrooperspower-paratroopers-description = A Badger drops a squad of infantry + at the selected location. + .airstrikepower-parabombs-name = Parabombs + .airstrikepower-parabombs-description = A Badger drops a load of parachuted bombs + at the selected location. actor-afld-ukraine-description = Produces and reloads aircraft. Special Ability: Spy Plane @@ -752,7 +775,23 @@ actor-bio = .captured-desc = Provides prerequisite for Bio-Lab units. .capturable-desc = Capture to produce Bio-Lab units. -actor-oilb = +actor-oilb = .name = Oil Derrick .captured-desc = Provides additional funds. .capturable-desc = Capture to receive additional funds. + +## misc.yaml +actor-powerproxy-parabombs = + .name = Parabombs (Single Use) + .description = A Badger drops a load of parachuted bombs + at the selected location. + +actor-powerproxy-sonarpulse = + .name = Sonar Pulse + .description = Reveals all submarines in the vicinity for a + short time. + +actor-powerproxy-paratroopers = + .name = Paratroopers + .description = A Badger drops a squad of infantry + anywhere on the map. diff --git a/mods/ra/maps/bomber-john/en.ftl b/mods/ra/maps/bomber-john/en.ftl index c692249065..e20d60e3aa 100644 --- a/mods/ra/maps/bomber-john/en.ftl +++ b/mods/ra/maps/bomber-john/en.ftl @@ -8,3 +8,12 @@ actor-mnlyr-name = Bomber actor-minvv = .description = Bomb which explodes after 8 seconds .name = Bomb + +## rules.yaml +actor-player = + .chronoshiftpower-name = Chronoshift + .chronoshiftpower-description = Teleport a group of vehicles across + the map. + .grantexternalconditionpower-ironcurtain-name = Invulnerability + .grantexternalconditionpower-ironcurtain-description = Makes a unit invulnerable + for 3 seconds. diff --git a/mods/ra/maps/bomber-john/rules.yaml b/mods/ra/maps/bomber-john/rules.yaml index a4c0f6942f..93ebe932fd 100644 --- a/mods/ra/maps/bomber-john/rules.yaml +++ b/mods/ra/maps/bomber-john/rules.yaml @@ -83,8 +83,8 @@ Player: ChronoshiftPower: Icon: chrono ChargeInterval: 1500 - Name: Chronoshift - Description: Teleport a group of vehicles across\nthe map. + Name: actor-player.chronoshiftpower-name + Description: actor-player.chronoshiftpower-description SelectTargetSound: slcttgt1.aud BeginChargeSound: chrochr1.aud EndChargeSound: chrordy1.aud @@ -94,8 +94,8 @@ Player: GrantExternalConditionPower@IRONCURTAIN: Icon: invuln ChargeInterval: 750 - Name: Invulnerability - Description: Makes a unit invulnerable\nfor 3 seconds. + Name: actor-player.grantexternalconditionpower-ironcurtain-name + Description: actor-player.grantexternalconditionpower-ironcurtain-description Duration: 75 SelectTargetSpeechNotification: SelectTarget InsufficientPowerSpeechNotification: InsufficientPower diff --git a/mods/ra/maps/fort-lonestar/en.ftl b/mods/ra/maps/fort-lonestar/en.ftl index 3e01603f27..2b2fb4ccd7 100644 --- a/mods/ra/maps/fort-lonestar/en.ftl +++ b/mods/ra/maps/fort-lonestar/en.ftl @@ -8,3 +8,6 @@ actor-sniper = Weak vs Vehicles, Aircraft actor-mig-bomber-name = MiG Bomber + +## rules.yaml +actor-powerproxy-parabombs-description = A MiG bomber drops a load of parachuted bombs on your target. diff --git a/mods/ra/maps/fort-lonestar/rules.yaml b/mods/ra/maps/fort-lonestar/rules.yaml index 2a0f021431..0d7f166c8b 100644 --- a/mods/ra/maps/fort-lonestar/rules.yaml +++ b/mods/ra/maps/fort-lonestar/rules.yaml @@ -392,7 +392,7 @@ V2RL: powerproxy.parabombs: AirstrikePower: - Description: A MiG bomber drops a load of parachuted bombs on your target. + Description: actor-powerproxy-parabombs-description CameraRemoveDelay: 50 BADR.Bomber: diff --git a/mods/ra/maps/top-o-the-world/en.ftl b/mods/ra/maps/top-o-the-world/en.ftl new file mode 100644 index 0000000000..77a965ea73 --- /dev/null +++ b/mods/ra/maps/top-o-the-world/en.ftl @@ -0,0 +1,4 @@ +## rules.yaml +actor-powerproxy-spyplane = + .airstrikepower-name = Spy Plane (Single Use) + .airstrikepower-description = Reveals an area of the map and cloaked enemy units. diff --git a/mods/ra/maps/top-o-the-world/map.yaml b/mods/ra/maps/top-o-the-world/map.yaml index d08140f66a..0f5f5ea95e 100644 --- a/mods/ra/maps/top-o-the-world/map.yaml +++ b/mods/ra/maps/top-o-the-world/map.yaml @@ -897,4 +897,4 @@ Rules: ra|rules/campaign-rules.yaml, ra|rules/campaign-tooltips.yaml, ra|rules/c Weapons: weapons.yaml -Translations: ra|languages/lua/en.ftl, ra|languages/campaign/en.ftl +Translations: ra|languages/lua/en.ftl, ra|languages/campaign/en.ftl, en.ftl diff --git a/mods/ra/maps/top-o-the-world/rules.yaml b/mods/ra/maps/top-o-the-world/rules.yaml index 98c16d88f3..f3b0aeb94c 100644 --- a/mods/ra/maps/top-o-the-world/rules.yaml +++ b/mods/ra/maps/top-o-the-world/rules.yaml @@ -54,8 +54,8 @@ powerproxy.spyplane: OrderName: SovietSpyPlane Icon: spyplane ChargeInterval: 4500 - Name: Spy Plane (Single Use) - Description: Reveals an area of the map and cloaked enemy units. + Name: actor-powerproxy-spyplane.airstrikepower-name + Description: actor-powerproxy-spyplane.airstrikepower-description OneShot: true SelectTargetSpeechNotification: SelectTarget EndChargeSpeechNotification: SpyPlaneReady diff --git a/mods/ra/rules/misc.yaml b/mods/ra/rules/misc.yaml index 2555f024ea..7c9035b66b 100644 --- a/mods/ra/rules/misc.yaml +++ b/mods/ra/rules/misc.yaml @@ -346,8 +346,8 @@ powerproxy.parabombs: AlwaysVisible: AirstrikePower: Icon: parabombs - Name: Parabombs (Single Use) - Description: A Badger drops a load of parachuted bombs\nat the selected location. + Name: actor-powerproxy-parabombs.name + Description: actor-powerproxy-parabombs.description OneShot: true AllowMultiple: true UnitType: badr.bomber @@ -366,8 +366,8 @@ powerproxy.sonarpulse: AlwaysVisible: SpawnActorPower: Icon: sonar - Name: Sonar Pulse - Description: Reveals all submarines in the vicinity for a \nshort time. + Name: actor-powerproxy-sonarpulse.name + Description: actor-powerproxy-sonarpulse.description ChargeInterval: 750 EndChargeSpeechNotification: SonarPulseReady SelectTargetSpeechNotification: SelectTarget @@ -387,8 +387,8 @@ powerproxy.paratroopers: AlwaysVisible: ParatroopersPower: Icon: paratroopers - Name: Paratroopers - Description: A Badger drops a squad of infantry\nanywhere on the map. + Name: actor-powerproxy-paratroopers.name + Description: actor-powerproxy-paratroopers.description DropItems: E1,E1,E1,E3,E3 SelectTargetSpeechNotification: SelectTarget SelectTargetTextNotification: notification-select-target diff --git a/mods/ra/rules/structures.yaml b/mods/ra/rules/structures.yaml index cab716e8ab..d3ef5fc4d8 100644 --- a/mods/ra/rules/structures.yaml +++ b/mods/ra/rules/structures.yaml @@ -37,8 +37,8 @@ MSLO: Cursor: nuke Icon: abomb ChargeInterval: 13500 - Name: Atom Bomb - Description: Launches a devastating atomic bomb\nat a target location. + Name: actor-mslo.nukepower-name + Description: actor-mslo.nukepower-description BeginChargeSpeechNotification: AbombPrepping EndChargeSpeechNotification: AbombReady SelectTargetSpeechNotification: SelectTarget @@ -433,8 +433,8 @@ IRON: PauseOnCondition: disabled Icon: invuln ChargeInterval: 3000 - Name: Invulnerability - Description: Makes a group of units invulnerable\nfor 20 seconds. + Name: actor-iron.grantexternalconditionpower-ironcurtain-name + Description: actor-iron.grantexternalconditionpower-ironcurtain-description Duration: 400 SelectTargetSpeechNotification: SelectTarget InsufficientPowerSpeechNotification: InsufficientPower @@ -509,8 +509,8 @@ PDOX: Prerequisites: !pdox.germany Icon: chrono ChargeInterval: 3000 - Name: Chronoshift - Description: Teleports a group of units across\nthe map for 20 seconds. + Name: actor-pdox.chronoshiftpower-chronoshift-name + Description: actor-pdox.chronoshiftpower-chronoshift-description SelectTargetSpeechNotification: SelectTarget InsufficientPowerSpeechNotification: InsufficientPower BeginChargeSpeechNotification: ChronosphereCharging @@ -531,8 +531,8 @@ PDOX: Prerequisites: pdox.germany Icon: chrono ChargeInterval: 3000 - Name: Advanced Chronoshift - Description: Teleports a large group of units across\nthe map for 20 seconds. + Name: actor-pdox.chronoshiftpower-advancedchronoshift-name + Description: actor-pdox.chronoshiftpower-advancedchronoshift-description SelectTargetSpeechNotification: SelectTarget InsufficientPowerSpeechNotification: InsufficientPower BeginChargeSpeechNotification: ChronosphereCharging @@ -1016,8 +1016,8 @@ ATEK: Icon: gps OneShot: true ChargeInterval: 12000 - Name: GPS Satellite - Description: Reveals map terrain and provides tactical\ninformation. Requires power and active radar. + Name: actor-atek.gpspower-name + Description: actor-atek.gpspower-description RevealDelay: 375 LaunchSpeechNotification: SatelliteLaunched LaunchTextNotification: notification-satellite-launched @@ -1556,8 +1556,8 @@ AFLD: Prerequisites: aircraft.soviet Icon: spyplane ChargeInterval: 3750 - Name: Spy Plane - Description: Reveals an area of the map. + Name: actor-afld.airstrikepower-spyplane-name + Description: actor-afld.airstrikepower-spyplane-description SelectTargetSpeechNotification: SelectTarget EndChargeSpeechNotification: SpyPlaneReady SelectTargetTextNotification: notification-select-target @@ -1579,8 +1579,8 @@ AFLD: Prerequisites: aircraft.soviet Icon: paratroopers ChargeInterval: 7500 - Name: Paratroopers - Description: A Badger drops a squad of infantry\nat the selected location. + Name: actor-afld.paratrooperspower-paratroopers-name + Description: actor-afld.paratrooperspower-paratroopers-description DropItems: E1R1,E1R1,E1R1,E3R1,E3R1 ReinforcementsArrivedSpeechNotification: ReinforcementsArrived SelectTargetSpeechNotification: SelectTarget @@ -1602,8 +1602,8 @@ AFLD: Prerequisites: aircraft.ukraine Icon: parabombs ChargeInterval: 7500 - Name: Parabombs - Description: A Badger drops a load of parachuted bombs\nat the selected location. + Name: actor-afld.airstrikepower-parabombs-name + Description: actor-afld.airstrikepower-parabombs-description SelectTargetSpeechNotification: SelectTarget SelectTargetTextNotification: notification-select-target CameraActor: camera diff --git a/mods/ts/languages/rules/en.ftl b/mods/ts/languages/rules/en.ftl index 34f2fcafe2..baebe5d435 100644 --- a/mods/ts/languages/rules/en.ftl +++ b/mods/ts/languages/rules/en.ftl @@ -338,6 +338,15 @@ actor-gatech = actor-gaplug = .name = GDI Upgrade Center .description = Can be upgraded for additional technology. + .ioncannonpower-name = Ion Cannon + .ioncannonpower-description = Initiate an Ion Cannon strike. + Applies instant damage to a small area. + .droppodspower-name = Drop Pods + .droppodspower-description = Drop Pod reinforcements. + Small team of elite soldiers orbital drops + to target location. + .produceactorpower-name = Hunter Seeker + .produceactorpower-description = Releases a drone that will acquire and destroy an enemy target. actor-gaplug-socket-ioncannon-name = GDI Upgrade Center socket actor-gaplug-socket-hunterseeker-name = GDI Upgrade Center socket @@ -524,6 +533,8 @@ actor-nastlh = actor-natmpl = .description = Provides access to advanced Nod technologies. .name = Temple of Nod + .produceactorpower-name = Hunter Seeker + .produceactorpower-description = Releases a drone that will acquire and destroy an enemy target. actor-namisl = .description = Launches a devastating missile @@ -531,6 +542,9 @@ actor-namisl = Requires power to operate. Maximum 1 can be built. .name = Nod Missile Silo + .nukepower-name = Cluster Missile + .nukepower-description = Launches an explosive cluster warhead + at a target location. actor-nawast = .name = Waste Refinery @@ -679,6 +693,9 @@ actor-napuls = .name = E.M. Pulse Cannon .description = Disables mechanical units in an area. Requires power to operate. + .attackorderpower-name = E.M. Pulse + .attackorderpower-description = Fires a pulse blast which disables + all mechanical units in the area. ## shared-vehicles.yaml actor-mcv = diff --git a/mods/ts/rules/gdi-structures.yaml b/mods/ts/rules/gdi-structures.yaml index d7bbce33c3..1bb9cd1d86 100644 --- a/mods/ts/rules/gdi-structures.yaml +++ b/mods/ts/rules/gdi-structures.yaml @@ -564,8 +564,8 @@ GAPLUG: EffectSequence: ionring WeaponDelay: 0 ChargeInterval: 12750 - Name: Ion Cannon - Description: Initiate an Ion Cannon strike.\nApplies instant damage to a small area. + Name: actor-gaplug.ioncannonpower-name + Description: actor-gaplug.ioncannonpower-description EndChargeSpeechNotification: IonCannonReady SelectTargetSpeechNotification: SelectTarget EndChargeTextNotification: notification-ion-cannon-ready @@ -577,8 +577,8 @@ GAPLUG: PauseOnCondition: disabled || empdisable RequiresCondition: plug.droppoda || plug.droppodb Icon: droppods - Name: Drop Pods - Description: Drop Pod reinforcements.\nSmall team of elite soldiers orbital drops\nto target location. + Name: actor-gaplug.droppodspower-name + Description: actor-gaplug.droppodspower-description SelectTargetSpeechNotification: SelectTarget SelectTargetTextNotification: notification-select-target DisplayRadarPing: true @@ -588,8 +588,8 @@ GAPLUG: ProduceActorPower: PauseOnCondition: disabled || empdisable RequiresCondition: plug.hunterseekera || plug.hunterseekerb - Name: Hunter Seeker - Description: Releases a drone that will acquire and destroy an enemy target. + Name: actor-gaplug.produceactorpower-name + Description: actor-gaplug.produceactorpower-description Icon: hunterseeker Actors: hunter Type: HunterSeeker diff --git a/mods/ts/rules/nod-structures.yaml b/mods/ts/rules/nod-structures.yaml index ab8135f139..38775f6d7d 100644 --- a/mods/ts/rules/nod-structures.yaml +++ b/mods/ts/rules/nod-structures.yaml @@ -476,8 +476,8 @@ NATMPL: Palette: bright ProduceActorPower: PauseOnCondition: empdisable || disabled - Name: Hunter Seeker - Description: Releases a drone that will acquire and destroy an enemy target. + Name: actor-natmpl.produceactorpower-name + Description: actor-natmpl.produceactorpower-description Prerequisites: ~techlevel.superweapons Icon: hunterseeker Actors: hunter @@ -534,8 +534,8 @@ NAMISL: Cursor: nuke Icon: clustermissile ChargeInterval: 13500 - Name: Cluster Missile - Description: Launches an explosive cluster warhead\nat a target location. + Name: actor-namisl.nukepower-name + Description: actor-namisl.nukepower-description EndChargeSpeechNotification: ClusterMissileReady SelectTargetSpeechNotification: SelectTarget IncomingSpeechNotification: MissileLaunchDetected diff --git a/mods/ts/rules/shared-support.yaml b/mods/ts/rules/shared-support.yaml index be1f489a3f..29903dc079 100644 --- a/mods/ts/rules/shared-support.yaml +++ b/mods/ts/rules/shared-support.yaml @@ -50,8 +50,8 @@ NAPULS: Cursor: emp Icon: emp ChargeInterval: 3375 - Name: E.M. Pulse - Description: Fires a pulse blast which disables\nall mechanical units in the area. + Name: actor-napuls.attackorderpower-name + Description: actor-napuls.attackorderpower-description EndChargeSpeechNotification: EmPulseCannonReady SelectTargetSpeechNotification: SelectTarget EndChargeTextNotification: notification-emp-cannon-ready