diff --git a/mods/d2k/audio/notifications.yaml b/mods/d2k/audio/notifications.yaml index 0a30b8e89e..70a6658a2d 100644 --- a/mods/d2k/audio/notifications.yaml +++ b/mods/d2k/audio/notifications.yaml @@ -34,6 +34,7 @@ Speech: WormSign: WSIGN WormAttack: WATTK EnemyUnitsApproaching: ENEMY + EnemyUnitsDetected: ENEMY_DETECTED UnitRepaired: GANEW CannotDeploy: DPLOY diff --git a/mods/d2k/bits/AI_ENEMY_DETECTED.AUD b/mods/d2k/bits/AI_ENEMY_DETECTED.AUD new file mode 100644 index 0000000000..e32bcf5a83 Binary files /dev/null and b/mods/d2k/bits/AI_ENEMY_DETECTED.AUD differ diff --git a/mods/d2k/bits/HI_ENEMY_DETECTED.AUD b/mods/d2k/bits/HI_ENEMY_DETECTED.AUD new file mode 100644 index 0000000000..d743594ab5 Binary files /dev/null and b/mods/d2k/bits/HI_ENEMY_DETECTED.AUD differ diff --git a/mods/d2k/bits/OI_ENEMY_DETECTED.AUD b/mods/d2k/bits/OI_ENEMY_DETECTED.AUD new file mode 100644 index 0000000000..6f2affa6c1 Binary files /dev/null and b/mods/d2k/bits/OI_ENEMY_DETECTED.AUD differ diff --git a/mods/d2k/rules/defaults.yaml b/mods/d2k/rules/defaults.yaml index b6f13cbef3..13394e55f1 100644 --- a/mods/d2k/rules/defaults.yaml +++ b/mods/d2k/rules/defaults.yaml @@ -50,6 +50,8 @@ UpgradeManager: TemporaryOwnerManager: MustBeDestroyed: + AnnounceOnSeen: + Notification: EnemyUnitsDetected ^Tank: AppearsOnRadar: @@ -103,6 +105,8 @@ UpgradeManager: TemporaryOwnerManager: MustBeDestroyed: + AnnounceOnSeen: + Notification: EnemyUnitsDetected ^Husk: Health: @@ -232,6 +236,8 @@ UpgradeMinEnabledLevel: 1 UpgradeManager: MustBeDestroyed: + AnnounceOnSeen: + Notification: EnemyUnitsDetected TerrainModifiesDamage: TerrainModifier: Rough: 80 @@ -268,6 +274,8 @@ UpgradeTypes: selfheal UpgradeMinEnabledLevel: 1 UpgradeManager: + AnnounceOnSeen: + Notification: EnemyUnitsDetected RenderUnit: ^Helicopter: diff --git a/mods/ra/audio/notifications.yaml b/mods/ra/audio/notifications.yaml index 3e3ccd1773..8fb769fa2a 100644 --- a/mods/ra/audio/notifications.yaml +++ b/mods/ra/audio/notifications.yaml @@ -35,6 +35,7 @@ Speech: ConvoyUnitLost: convlst1 CreditsStolen: credit1 EnemyUnitsApproaching: enmyapp1 + EnemyDetected: enmydet ExplosiveChargePlaced: xploplc1 FirstObjectiveMet: 1objmet1 FourtyMinutesRemaining: 40minr diff --git a/mods/ra/bits/enmydet.aud b/mods/ra/bits/enmydet.aud new file mode 100644 index 0000000000..e02b341e3c Binary files /dev/null and b/mods/ra/bits/enmydet.aud differ diff --git a/mods/ra/rules/aircraft.yaml b/mods/ra/rules/aircraft.yaml index 44ef9c9746..8b844040db 100644 --- a/mods/ra/rules/aircraft.yaml +++ b/mods/ra/rules/aircraft.yaml @@ -32,6 +32,7 @@ BADR: -EjectOnDeath: -GpsDot: RejectsOrders: + -AnnounceOnSeen: BADR.Bomber: Inherits: ^Plane @@ -343,4 +344,5 @@ U2: Offset: -1c43,0,0 Interval: 2 RejectsOrders: + -AnnounceOnSeen: diff --git a/mods/ra/rules/defaults.yaml b/mods/ra/rules/defaults.yaml index 6c1335b167..0af700de3d 100644 --- a/mods/ra/rules/defaults.yaml +++ b/mods/ra/rules/defaults.yaml @@ -81,6 +81,8 @@ CaptureNotification: Notification: UnitStolen MustBeDestroyed: + AnnounceOnSeen: + Notification: EnemyDetected ^Tank: Inherits@1: ^ExistsInWorld @@ -141,6 +143,8 @@ GroundCorpsePalette: WaterCorpseSequence: WaterCorpsePalette: + AnnounceOnSeen: + Notification: EnemyDetected ^Infantry: Inherits@1: ^ExistsInWorld @@ -215,6 +219,8 @@ Cloneable: Types: Infantry MustBeDestroyed: + AnnounceOnSeen: + Notification: EnemyDetected ^Ship: Inherits@1: ^ExistsInWorld @@ -244,6 +250,8 @@ Tooltip: GenericName: Ship MustBeDestroyed: + AnnounceOnSeen: + Notification: EnemyDetected ^Plane: Inherits@1: ^ExistsInWorld @@ -278,6 +286,8 @@ GenericName: Plane WithShadow: MustBeDestroyed: + AnnounceOnSeen: + Notification: EnemyDetected ^Helicopter: Inherits: ^Plane @@ -286,6 +296,8 @@ GpsDot: String: Helicopter Hovers: + AnnounceOnSeen: + Notification: EnemyDetected ^Building: Inherits@1: ^ExistsInWorld diff --git a/mods/ra/rules/player.yaml b/mods/ra/rules/player.yaml index eefe4f715b..79f607c078 100644 --- a/mods/ra/rules/player.yaml +++ b/mods/ra/rules/player.yaml @@ -63,4 +63,5 @@ Player: Name: Unrestricted Prerequisites: techlevel.infonly, techlevel.low, techlevel.medium, techlevel.unrestricted GlobalUpgradeManager: + EnemyWatcher: