v0.8.1a: various sfx adjustments:

- fixed a bug where trample and grass both played instead of just trample
- volume tweaks to item, dewdrop, and debuff
- added a hitsound for arrows/darts
- added pitch variance to crossbow and bow
- adjusted hit_strong to mix better with other sounds, and to sound better on phone speakers
- adjusted health_warn and adjusted volume/trigger thresholds for health_warn and health_critical
This commit is contained in:
Evan Debenham
2020-07-02 18:19:03 -04:00
parent 91b7b14ea4
commit 678fd9b787
13 changed files with 25 additions and 16 deletions
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -137,6 +137,7 @@ public class Assets {
public static final String HIT_MAGIC = "sounds/hit_magic.mp3"; public static final String HIT_MAGIC = "sounds/hit_magic.mp3";
public static final String HIT_STRONG = "sounds/hit_strong.mp3"; public static final String HIT_STRONG = "sounds/hit_strong.mp3";
public static final String HIT_PARRY = "sounds/hit_parry.mp3"; public static final String HIT_PARRY = "sounds/hit_parry.mp3";
public static final String HIT_ARROW = "sounds/hit_arrow.mp3";
public static final String ATK_SPIRITBOW = "sounds/atk_spiritbow.mp3"; public static final String ATK_SPIRITBOW = "sounds/atk_spiritbow.mp3";
public static final String ATK_CROSSBOW = "sounds/atk_crossbow.mp3"; public static final String ATK_CROSSBOW = "sounds/atk_crossbow.mp3";
public static final String HEALTH_WARN = "sounds/health_warn.mp3"; public static final String HEALTH_WARN = "sounds/health_warn.mp3";
@@ -188,7 +189,7 @@ public class Assets {
OPEN, UNLOCK, ITEM, DEWDROP, STEP, WATER, GRASS, TRAMPLE, STURDY, OPEN, UNLOCK, ITEM, DEWDROP, STEP, WATER, GRASS, TRAMPLE, STURDY,
HIT, MISS, HIT_SLASH, HIT_STAB, HIT_CRUSH, HIT_MAGIC, HIT_STRONG, HIT_PARRY, HIT, MISS, HIT_SLASH, HIT_STAB, HIT_CRUSH, HIT_MAGIC, HIT_STRONG, HIT_PARRY,
ATK_SPIRITBOW, ATK_CROSSBOW, HEALTH_WARN, HEALTH_CRITICAL, HIT_ARROW, ATK_SPIRITBOW, ATK_CROSSBOW, HEALTH_WARN, HEALTH_CRITICAL,
DESCEND, EAT, READ, LULLABY, DRINK, SHATTER, ZAP, LIGHTNING, LEVELUP, DEATH, DESCEND, EAT, READ, LULLABY, DRINK, SHATTER, ZAP, LIGHTNING, LEVELUP, DEATH,
CHALLENGE, CURSED, TRAP, EVOKE, TOMB, ALERT, MELD, BOSS, BLAST, PLANT, RAY, BEACON, CHALLENGE, CURSED, TRAP, EVOKE, TOMB, ALERT, MELD, BOSS, BLAST, PLANT, RAY, BEACON,
@@ -1103,10 +1103,10 @@ public class Hero extends Char {
flashIntensity = Math.min(1/3f, flashIntensity); //cap intensity at 1/3 flashIntensity = Math.min(1/3f, flashIntensity); //cap intensity at 1/3
GameScene.flash( (int)(0xFF*flashIntensity) << 16 ); GameScene.flash( (int)(0xFF*flashIntensity) << 16 );
if (isAlive()) { if (isAlive()) {
if (flashIntensity >= 1/3f) { if (flashIntensity >= 1/6f) {
Sample.INSTANCE.play(Assets.Sounds.HEALTH_CRITICAL); Sample.INSTANCE.play(Assets.Sounds.HEALTH_CRITICAL, 1/3f + flashIntensity * 2f);
} else { } else {
Sample.INSTANCE.play(Assets.Sounds.HEALTH_WARN, flashIntensity * 3f); Sample.INSTANCE.play(Assets.Sounds.HEALTH_WARN, 1/3f + flashIntensity * 4f);
} }
} }
} }
@@ -1598,6 +1598,8 @@ public class Hero extends Char {
@Override @Override
public void move( int step ) { public void move( int step ) {
boolean wasHighGrass = Dungeon.level.map[step] == Terrain.HIGH_GRASS;
super.move( step ); super.move( step );
if (!flying) { if (!flying) {
@@ -1608,7 +1610,11 @@ public class Hero extends Char {
} else if (Dungeon.level.map[pos] == Terrain.GRASS } else if (Dungeon.level.map[pos] == Terrain.GRASS
|| Dungeon.level.map[pos] == Terrain.EMBERS || Dungeon.level.map[pos] == Terrain.EMBERS
|| Dungeon.level.map[pos] == Terrain.FURROWED_GRASS){ || Dungeon.level.map[pos] == Terrain.FURROWED_GRASS){
Sample.INSTANCE.play( Assets.Sounds.GRASS, 1, Random.Float( 0.96f, 1.05f ) ); if (step == pos && wasHighGrass) {
Sample.INSTANCE.play(Assets.Sounds.TRAMPLE, 1, Random.Float( 0.96f, 1.05f ) );
} else {
Sample.INSTANCE.play( Assets.Sounds.GRASS, 1, Random.Float( 0.96f, 1.05f ) );
}
} else { } else {
Sample.INSTANCE.play( Assets.Sounds.STEP, 1, Random.Float( 0.96f, 1.05f ) ); Sample.INSTANCE.play( Assets.Sounds.STEP, 1, Random.Float( 0.96f, 1.05f ) );
} }
@@ -225,6 +225,8 @@ public class SpiritBow extends Weapon {
{ {
image = ItemSpriteSheet.SPIRIT_ARROW; image = ItemSpriteSheet.SPIRIT_ARROW;
hitSound = Assets.Sounds.HIT_ARROW;
} }
@Override @Override
@@ -277,7 +279,7 @@ public class SpiritBow extends Weapon {
@Override @Override
public void throwSound() { public void throwSound() {
Sample.INSTANCE.play( Assets.Sounds.ATK_SPIRITBOW ); Sample.INSTANCE.play( Assets.Sounds.ATK_SPIRITBOW, 1, Random.Float(0.87f, 1.15f) );
} }
int flurryCount = -1; int flurryCount = -1;
@@ -303,7 +305,7 @@ public class SpiritBow extends Weapon {
user.busy(); user.busy();
Sample.INSTANCE.play( Assets.Sounds.MISS, 0.6f, 0.6f, 1.5f ); throwSound();
((MissileSprite) user.sprite.parent.recycle(MissileSprite.class)). ((MissileSprite) user.sprite.parent.recycle(MissileSprite.class)).
reset(user.sprite, reset(user.sprite,
@@ -36,6 +36,7 @@ import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet;
import com.shatteredpixel.shatteredpixeldungeon.windows.WndBag; import com.shatteredpixel.shatteredpixeldungeon.windows.WndBag;
import com.shatteredpixel.shatteredpixeldungeon.windows.WndOptions; import com.shatteredpixel.shatteredpixeldungeon.windows.WndOptions;
import com.watabou.noosa.audio.Sample; import com.watabou.noosa.audio.Sample;
import com.watabou.utils.Random;
import java.util.ArrayList; import java.util.ArrayList;
@@ -43,7 +44,7 @@ public class Dart extends MissileWeapon {
{ {
image = ItemSpriteSheet.DART; image = ItemSpriteSheet.DART;
hitSound = Assets.Sounds.HIT_STAB; hitSound = Assets.Sounds.HIT_ARROW;
hitSoundPitch = 1.3f; hitSoundPitch = 1.3f;
tier = 1; tier = 1;
@@ -130,7 +131,7 @@ public class Dart extends MissileWeapon {
public void throwSound() { public void throwSound() {
updateCrossbow(); updateCrossbow();
if (bow != null) { if (bow != null) {
Sample.INSTANCE.play(Assets.Sounds.ATK_CROSSBOW); Sample.INSTANCE.play(Assets.Sounds.ATK_CROSSBOW, 1, Random.Float(0.87f, 1.15f));
} else { } else {
super.throwSound(); super.throwSound();
} }
@@ -60,9 +60,6 @@ public class HighGrass {
freezeTrample = true; freezeTrample = true;
} else { } else {
Level.set(pos, Terrain.GRASS); Level.set(pos, Terrain.GRASS);
if (ch instanceof Hero){
Sample.INSTANCE.play(Assets.Sounds.TRAMPLE, 1, Random.Float( 0.96f, 1.05f ) );
}
} }
} else { } else {
@@ -72,9 +69,6 @@ public class HighGrass {
} else { } else {
Level.set(pos, Terrain.GRASS); Level.set(pos, Terrain.GRASS);
} }
if (ch instanceof Hero){
Sample.INSTANCE.play(Assets.Sounds.TRAMPLE, 1, Random.Float( 0.96f, 1.05f ) );
}
int naturalismLevel = 0; int naturalismLevel = 0;
@@ -207,7 +207,12 @@ public class AboutScene extends PixelScene {
"_Pack: Onomatopoeia_ by _Adam N_\n" + "_Pack: Onomatopoeia_ by _Adam N_\n" +
"_Pack: Watermelon_ by _lolamadeus_\n" + "_Pack: Watermelon_ by _lolamadeus_\n" +
"_metal chain_ by _Mediapaja2009_\n" + "_metal chain_ by _Mediapaja2009_\n" +
"_Pack: Sword Clashes Pack_ by _JohnBuhr_\n", "_Pack: Sword Clashes Pack_ by _JohnBuhr_\n" +
"_Pack: Metal Clangs and Pings_ by _wilhellboy_\n" +
"_Pack: Stabbing Stomachs & Crushing Skulls_ by _TheFilmLook_\n" +
"_Sheep bleating_ by _zachrau_\n" +
"_Lemon,Juicy,Squeeze,Fruit.wav_ by _Filipe Chagas_\n" +
"_Lemon,Squeeze,Squishy,Fruit.wav_ by _Filipe Chagas_",
"www.freesound.org", "www.freesound.org",
"https://www.freesound.org"); "https://www.freesound.org");
freesound.setRect(transifex.left()-10, transifex.bottom() + 8, colWidth+20, 0); freesound.setRect(transifex.left()-10, transifex.bottom() + 8, colWidth+20, 0);