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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 literal 0 HcmV?d00001 diff --git a/core/src/mindustry/content/UnitTypes.java b/core/src/mindustry/content/UnitTypes.java index 811650ef7a..8749c7f4e9 100644 --- a/core/src/mindustry/content/UnitTypes.java +++ b/core/src/mindustry/content/UnitTypes.java @@ -1780,6 +1780,7 @@ public class UnitTypes implements ContentList{ shots = 3; shotDelay = 7f; x = y = shootX = shootY = 0f; + shootSound = Sounds.mineDeploy; bullet = new BasicBulletType(){{ sprite = "mine-bullet"; @@ -2150,6 +2151,8 @@ public class UnitTypes implements ContentList{ shootY = 7f; recoil = 4f; cooldownTime = reload - 10f; + //TODO better sound + shootSound = Sounds.laser; bullet = new EmpBulletType(){{ float rad = 100f; @@ -2182,6 +2185,7 @@ public class UnitTypes implements ContentList{ hitShake = 4f; trailRotation = true; status = StatusEffects.electrified; + hitSound = Sounds.plasmaboom; trailEffect = new Effect(16f, e -> { 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++; });