From a559c3581e93194636ceefdce8ae269548fd7fbf Mon Sep 17 00:00:00 2001 From: Anuken Date: Wed, 14 Jul 2021 18:46:51 -0400 Subject: [PATCH] Fixed continuous weapon sounds / Improved naval support audio --- core/assets/sounds/mineDeploy.ogg | Bin 0 -> 8428 bytes core/src/mindustry/content/UnitTypes.java | 4 ++++ .../entities/abilities/EnergyFieldAbility.java | 6 ++++++ core/src/mindustry/type/Weapon.java | 5 ++++- 4 files changed, 14 insertions(+), 1 deletion(-) create mode 100644 core/assets/sounds/mineDeploy.ogg diff --git a/core/assets/sounds/mineDeploy.ogg b/core/assets/sounds/mineDeploy.ogg new file mode 100644 index 0000000000000000000000000000000000000000..69fb5d2f984c2d83d49e36ea43e01b795c1d480b GIT binary patch literal 8428 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 { color(Pal.heal); diff --git a/core/src/mindustry/entities/abilities/EnergyFieldAbility.java b/core/src/mindustry/entities/abilities/EnergyFieldAbility.java index 0109128f38..8681e37843 100644 --- a/core/src/mindustry/entities/abilities/EnergyFieldAbility.java +++ b/core/src/mindustry/entities/abilities/EnergyFieldAbility.java @@ -1,6 +1,7 @@ package mindustry.entities.abilities; import arc.*; +import arc.audio.*; import arc.graphics.*; import arc.graphics.g2d.*; import arc.math.*; @@ -19,6 +20,7 @@ public class EnergyFieldAbility extends Ability{ public float damage = 1, reload = 100, range = 60; public Effect healEffect = Fx.heal, hitEffect = Fx.hitLaserBlast, damageEffect = Fx.chainLightning; public StatusEffect status = StatusEffects.electrified; + public Sound shootSound = Sounds.spark; public float statusDuration = 60f * 6f; public float x, y; public boolean hitBuildings = true; @@ -139,6 +141,10 @@ public class EnergyFieldAbility extends Ability{ } } + if(anyNearby){ + shootSound.at(unit); + } + timer = 0f; } } diff --git a/core/src/mindustry/type/Weapon.java b/core/src/mindustry/type/Weapon.java index 4fb99cf01a..33729c9636 100644 --- a/core/src/mindustry/type/Weapon.java +++ b/core/src/mindustry/type/Weapon.java @@ -249,7 +249,7 @@ public class Weapon implements Cloneable{ unit.vel.add(Tmp.v1.trns(unit.rotation + 180f, mount.bullet.type.recoil)); if(shootSound != Sounds.none && !headless){ if(mount.sound == null) mount.sound = new SoundLoop(shootSound, 1f); - mount.sound.update(x, y, true); + mount.sound.update(bulletX, bulletY, true); } } }else{ @@ -323,6 +323,9 @@ public class Weapon implements Cloneable{ Time.run(sequenceNum * shotDelay + firstShotDelay, () -> { if(!unit.isAdded()) return; mount.bullet = bullet(unit, shootX + unit.x - baseX, shootY + unit.y - baseY, f + Mathf.range(inaccuracy), lifeScl); + if(!continuous){ + shootSound.at(shootX, shootY, Mathf.random(soundPitchMin, soundPitchMax)); + } }); sequenceNum++; });