diff --git a/binaries/data/mods/public/audio/interface/alarm/alarm_attacked_gaia.xml b/binaries/data/mods/public/audio/interface/alarm/alarm_attacked_gaia.xml new file mode 100644 index 0000000000..a00672a1c8 --- /dev/null +++ b/binaries/data/mods/public/audio/interface/alarm/alarm_attacked_gaia.xml @@ -0,0 +1,17 @@ + + + 1 + owner + 0.35 + 100 + 1 + 0 + 1 + 1 + 0.35 + 0.30 + 1 + 1 + audio/interface/alarm/ + alarm_attacked_gaia_01.ogg + diff --git a/binaries/data/mods/public/audio/interface/alarm/alarm_attacked_gaia_01.ogg b/binaries/data/mods/public/audio/interface/alarm/alarm_attacked_gaia_01.ogg new file mode 100644 index 0000000000..d855f20bff --- /dev/null +++ b/binaries/data/mods/public/audio/interface/alarm/alarm_attacked_gaia_01.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3b9568ffc25c9be27a4b3de6b8d42fafe2ba37023668d0c21f4b7cfc92e2e41f +size 392012 diff --git a/binaries/data/mods/public/globalscripts/AttackEffects.js b/binaries/data/mods/public/globalscripts/AttackEffects.js index 0af93a0669..eadaa07d6d 100755 --- a/binaries/data/mods/public/globalscripts/AttackEffects.js +++ b/binaries/data/mods/public/globalscripts/AttackEffects.js @@ -7,7 +7,8 @@ const g_EffectReceiver = { }, "Capture": { "IID": "IID_Capturable", - "method": "Capture" + "method": "Capture", + "sound": "capture" }, "ApplyStatus": { "IID": "IID_StatusEffectsReceiver", diff --git a/binaries/data/mods/public/simulation/components/AttackDetection.js b/binaries/data/mods/public/simulation/components/AttackDetection.js index 6d7abe1285..5bdc316361 100644 --- a/binaries/data/mods/public/simulation/components/AttackDetection.js +++ b/binaries/data/mods/public/simulation/components/AttackDetection.js @@ -50,12 +50,12 @@ AttackDetection.prototype.OnGlobalAttacked = function(msg) Engine.PostMessage(msg.target, MT_MinimapPing); - this.AttackAlert(msg.target, msg.attacker, msg.attackerOwner); + this.AttackAlert(msg.target, msg.attacker, msg.type, msg.attackerOwner); }; //// External interface //// -AttackDetection.prototype.AttackAlert = function(target, attacker, attackerOwner) +AttackDetection.prototype.AttackAlert = function(target, attacker, type, attackerOwner) { let playerID = Engine.QueryInterface(this.entity, IID_Player).GetPlayerID(); @@ -127,7 +127,15 @@ AttackDetection.prototype.AttackAlert = function(target, attacker, attackerOwner "attacker": atkOwner, "targetIsDomesticAnimal": targetIsDomesticAnimal }); - PlaySound("attacked", target); + + let soundGroup = "attacked"; + if (g_EffectReceiver[type] && g_EffectReceiver[type].sound) + soundGroup += '_' + g_EffectReceiver[type].sound; + + if (attackerOwner === 0) + soundGroup += "_gaia"; + + PlaySound(soundGroup, target); }; AttackDetection.prototype.GetSuppressionTime = function() diff --git a/binaries/data/mods/public/simulation/templates/template_structure.xml b/binaries/data/mods/public/simulation/templates/template_structure.xml index 0e873c9626..8891cd6f8f 100644 --- a/binaries/data/mods/public/simulation/templates/template_structure.xml +++ b/binaries/data/mods/public/simulation/templates/template_structure.xml @@ -133,6 +133,9 @@ interface/complete/building/complete_universal.xml attack/destruction/building_collapse_large.xml interface/alarm/alarm_attackplayer.xml + interface/alarm/alarm_attacked_gaia.xml + interface/alarm/alarm_attackplayer.xml + interface/alarm/alarm_attacked_gaia.xml attack/weapon/bow_attack.xml attack/impact/arrow_impact.xml diff --git a/binaries/data/mods/public/simulation/templates/template_unit.xml b/binaries/data/mods/public/simulation/templates/template_unit.xml index efa715d51c..bfc2ffbded 100644 --- a/binaries/data/mods/public/simulation/templates/template_unit.xml +++ b/binaries/data/mods/public/simulation/templates/template_unit.xml @@ -104,6 +104,9 @@ interface/alarm/alarm_attackplayer.xml + interface/alarm/alarm_attacked_gaia.xml + interface/alarm/alarm_attackplayer.xml + interface/alarm/alarm_attacked_gaia.xml attack/weapon/sword_attack.xml