More sound effects
This commit is contained in:
@@ -183,8 +183,11 @@ public class AssetsProcess extends BaseProcessor{
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(classname.equals("Sounds")){
|
if(classname.equals("Sounds")){
|
||||||
type.addField(FieldSpec.builder(ClassName.bestGuess(rtype), "none", Modifier.STATIC, Modifier.PUBLIC).initializer("new " + rtype + "()").build());
|
type.addField(FieldSpec.builder(ClassName.bestGuess(rtype), "none", Modifier.STATIC, Modifier.PUBLIC).initializer("new " + rtype + "()")
|
||||||
type.addField(FieldSpec.builder(ClassName.bestGuess(rtype), "unset", Modifier.STATIC, Modifier.PUBLIC).initializer("new " + rtype + "()").build());
|
.addJavadoc("Does not play anything.").build());
|
||||||
|
|
||||||
|
type.addField(FieldSpec.builder(ClassName.bestGuess(rtype), "unset", Modifier.STATIC, Modifier.PUBLIC).initializer("new " + rtype + "()")
|
||||||
|
.addJavadoc("Used a placeholder value for unset default values. This is usually reassigned in init() of the relevant block or unit. Does not play anything.").build());
|
||||||
}
|
}
|
||||||
|
|
||||||
type.addMethod(loadBegin.build());
|
type.addMethod(loadBegin.build());
|
||||||
|
|||||||
BIN
core/assets/sounds/afflictExplosion.ogg
Normal file
BIN
core/assets/sounds/afflictExplosion.ogg
Normal file
Binary file not shown.
Binary file not shown.
BIN
core/assets/sounds/blockExplode1.ogg
Normal file
BIN
core/assets/sounds/blockExplode1.ogg
Normal file
Binary file not shown.
BIN
core/assets/sounds/blockExplode2.ogg
Normal file
BIN
core/assets/sounds/blockExplode2.ogg
Normal file
Binary file not shown.
BIN
core/assets/sounds/blockExplode3.ogg
Normal file
BIN
core/assets/sounds/blockExplode3.ogg
Normal file
Binary file not shown.
BIN
core/assets/sounds/blockExplodeElectric.ogg
Normal file
BIN
core/assets/sounds/blockExplodeElectric.ogg
Normal file
Binary file not shown.
BIN
core/assets/sounds/blockExplodeElectricBig.ogg
Normal file
BIN
core/assets/sounds/blockExplodeElectricBig.ogg
Normal file
Binary file not shown.
BIN
core/assets/sounds/blockExplodeExplosive.ogg
Normal file
BIN
core/assets/sounds/blockExplodeExplosive.ogg
Normal file
Binary file not shown.
BIN
core/assets/sounds/blockExplodeFlammable.ogg
Normal file
BIN
core/assets/sounds/blockExplodeFlammable.ogg
Normal file
Binary file not shown.
BIN
core/assets/sounds/blockExplodeWall.ogg
Normal file
BIN
core/assets/sounds/blockExplodeWall.ogg
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
core/assets/sounds/place1.ogg
Normal file
BIN
core/assets/sounds/place1.ogg
Normal file
Binary file not shown.
BIN
core/assets/sounds/place2.ogg
Normal file
BIN
core/assets/sounds/place2.ogg
Normal file
Binary file not shown.
BIN
core/assets/sounds/place3.ogg
Normal file
BIN
core/assets/sounds/place3.ogg
Normal file
Binary file not shown.
BIN
core/assets/sounds/reactorExplosion2.ogg
Normal file
BIN
core/assets/sounds/reactorExplosion2.ogg
Normal file
Binary file not shown.
Binary file not shown.
BIN
core/assets/sounds/shootAfflict.ogg
Normal file
BIN
core/assets/sounds/shootAfflict.ogg
Normal file
Binary file not shown.
BIN
core/assets/sounds/shootAvert.ogg
Normal file
BIN
core/assets/sounds/shootAvert.ogg
Normal file
Binary file not shown.
Binary file not shown.
BIN
core/assets/sounds/shootDisperse.ogg
Normal file
BIN
core/assets/sounds/shootDisperse.ogg
Normal file
Binary file not shown.
BIN
core/assets/sounds/shootElude.ogg
Normal file
BIN
core/assets/sounds/shootElude.ogg
Normal file
Binary file not shown.
BIN
core/assets/sounds/shootMerui.ogg
Normal file
BIN
core/assets/sounds/shootMerui.ogg
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -13,13 +13,17 @@ public class SoundPriority{
|
|||||||
public static void init(){
|
public static void init(){
|
||||||
max(7, laserbig, beam, laserbeam);
|
max(7, laserbig, beam, laserbeam);
|
||||||
|
|
||||||
//priority 2: long weapon loops
|
//priority 2: long weapon loops and big explosions
|
||||||
set(
|
set(
|
||||||
2f,
|
2f,
|
||||||
laserbig,
|
laserbig,
|
||||||
beam,
|
beam,
|
||||||
laserbeam,
|
laserbeam,
|
||||||
beamPlasma
|
beamPlasma,
|
||||||
|
reactorExplosion,
|
||||||
|
reactorExplosion2,
|
||||||
|
coreExplode,
|
||||||
|
blockExplodeElectricBig, blockExplodeExplosive
|
||||||
);
|
);
|
||||||
|
|
||||||
//priority 1.5: big weapon sounds, not loops
|
//priority 1.5: big weapon sounds, not loops
|
||||||
|
|||||||
@@ -4402,7 +4402,7 @@ public class Blocks{
|
|||||||
);
|
);
|
||||||
|
|
||||||
coolantMultiplier = 15f;
|
coolantMultiplier = 15f;
|
||||||
shootSound = Sounds.shootAlt;
|
shootSound = Sounds.shootBreach;
|
||||||
|
|
||||||
targetUnderBlocks = false;
|
targetUnderBlocks = false;
|
||||||
shake = 1f;
|
shake = 1f;
|
||||||
@@ -4489,7 +4489,7 @@ public class Blocks{
|
|||||||
consumeAmmoOnce = true;
|
consumeAmmoOnce = true;
|
||||||
targetUnderBlocks = false;
|
targetUnderBlocks = false;
|
||||||
|
|
||||||
shootSound = Sounds.shootAltLong;
|
shootSound = Sounds.shootDiffuse;
|
||||||
|
|
||||||
drawer = new DrawTurret("reinforced-"){{
|
drawer = new DrawTurret("reinforced-"){{
|
||||||
parts.add(new RegionPart("-front"){{
|
parts.add(new RegionPart("-front"){{
|
||||||
@@ -4917,7 +4917,7 @@ public class Blocks{
|
|||||||
rotateSpeed = 5f;
|
rotateSpeed = 5f;
|
||||||
shootCone = 30f;
|
shootCone = 30f;
|
||||||
consumeAmmoOnce = true;
|
consumeAmmoOnce = true;
|
||||||
shootSound = Sounds.shootBig;
|
shootSound = Sounds.shootDisperse;
|
||||||
|
|
||||||
drawer = new DrawTurret("reinforced-"){{
|
drawer = new DrawTurret("reinforced-"){{
|
||||||
parts.add(new RegionPart("-side"){{
|
parts.add(new RegionPart("-side"){{
|
||||||
@@ -5005,10 +5005,9 @@ public class Blocks{
|
|||||||
waveStroke = 4f;
|
waveStroke = 4f;
|
||||||
waveRad = 40f;
|
waveRad = 40f;
|
||||||
}};
|
}};
|
||||||
despawnSound = Sounds.dullExplosion;
|
|
||||||
|
|
||||||
//TODO shoot sound
|
despawnSound = Sounds.afflictExplosion;
|
||||||
shootSound = Sounds.cannon;
|
shootSound = Sounds.shootAfflict;
|
||||||
|
|
||||||
fragBullet = intervalBullet = new BasicBulletType(3f, 35){{
|
fragBullet = intervalBullet = new BasicBulletType(3f, 35){{
|
||||||
width = 9f;
|
width = 9f;
|
||||||
|
|||||||
@@ -1485,7 +1485,7 @@ public class UnitTypes{
|
|||||||
frontColor = Color.white;
|
frontColor = Color.white;
|
||||||
mixColorTo = Color.white;
|
mixColorTo = Color.white;
|
||||||
|
|
||||||
hitSound = Sounds.plasmaboom;
|
hitSound = Sounds.plasmaBomb;
|
||||||
|
|
||||||
shootCone = 180f;
|
shootCone = 180f;
|
||||||
ejectEffect = Fx.none;
|
ejectEffect = Fx.none;
|
||||||
@@ -3104,7 +3104,7 @@ public class UnitTypes{
|
|||||||
researchCostMultiplier = 0f;
|
researchCostMultiplier = 0f;
|
||||||
|
|
||||||
weapons.add(new Weapon("merui-weapon"){{
|
weapons.add(new Weapon("merui-weapon"){{
|
||||||
shootSound = Sounds.missile;
|
shootSound = Sounds.shootMerui;
|
||||||
mirror = false;
|
mirror = false;
|
||||||
showStatSprite = false;
|
showStatSprite = false;
|
||||||
x = 0f;
|
x = 0f;
|
||||||
@@ -3744,7 +3744,7 @@ public class UnitTypes{
|
|||||||
}
|
}
|
||||||
|
|
||||||
weapons.add(new Weapon("elude-weapon"){{
|
weapons.add(new Weapon("elude-weapon"){{
|
||||||
shootSound = Sounds.blaster;
|
shootSound = Sounds.shootElude;
|
||||||
y = -2f;
|
y = -2f;
|
||||||
x = 4f;
|
x = 4f;
|
||||||
top = true;
|
top = true;
|
||||||
@@ -3792,7 +3792,7 @@ public class UnitTypes{
|
|||||||
);
|
);
|
||||||
|
|
||||||
weapons.add(new Weapon("avert-weapon"){{
|
weapons.add(new Weapon("avert-weapon"){{
|
||||||
shootSound = Sounds.blaster;
|
shootSound = Sounds.shootAvert;
|
||||||
reload = 35f;
|
reload = 35f;
|
||||||
x = 0f;
|
x = 0f;
|
||||||
y = 6.5f;
|
y = 6.5f;
|
||||||
@@ -3881,7 +3881,7 @@ public class UnitTypes{
|
|||||||
}});
|
}});
|
||||||
smokeEffect = Fx.shootSmokeTitan;
|
smokeEffect = Fx.shootSmokeTitan;
|
||||||
hitColor = Pal.sapBullet;
|
hitColor = Pal.sapBullet;
|
||||||
despawnSound = Sounds.spark;
|
despawnSound = Sounds.artilleryShockExplosion;
|
||||||
|
|
||||||
sprite = "large-orb";
|
sprite = "large-orb";
|
||||||
trailEffect = Fx.missileTrail;
|
trailEffect = Fx.missileTrail;
|
||||||
|
|||||||
@@ -1452,7 +1452,6 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc,
|
|||||||
|
|
||||||
/** Called when the block is destroyed. The tile is still intact at this stage. */
|
/** Called when the block is destroyed. The tile is still intact at this stage. */
|
||||||
public void onDestroyed(){
|
public void onDestroyed(){
|
||||||
|
|
||||||
float explosiveness = block.baseExplosiveness;
|
float explosiveness = block.baseExplosiveness;
|
||||||
float flammability = 0f;
|
float flammability = 0f;
|
||||||
float power = 0f;
|
float power = 0f;
|
||||||
@@ -1476,7 +1475,6 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(block.hasLiquids && state.rules.damageExplosions){
|
if(block.hasLiquids && state.rules.damageExplosions){
|
||||||
|
|
||||||
liquids.each(this::splashLiquid);
|
liquids.each(this::splashLiquid);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1486,6 +1484,26 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc,
|
|||||||
if(block.createRubble && !floor().solid && !floor().isLiquid){
|
if(block.createRubble && !floor().solid && !floor().isLiquid){
|
||||||
Effect.rubble(x, y, block.size);
|
Effect.rubble(x, y, block.size);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(!headless){
|
||||||
|
playDestroySound();
|
||||||
|
|
||||||
|
if(explosiveness > 40f){
|
||||||
|
Sounds.blockExplodeExplosive.at(tile, Mathf.random(block.destroyPitchMin, block.destroyPitchMax), block.destroySoundVolume);
|
||||||
|
}else if(flammability > 5f){
|
||||||
|
Sounds.blockExplodeFlammable.at(tile, Mathf.random(block.destroyPitchMin, block.destroyPitchMax), block.destroySoundVolume);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(power > 30000f){
|
||||||
|
Sounds.blockExplodeElectricBig.at(tile, Mathf.random(block.destroyPitchMin, block.destroyPitchMax), block.destroySoundVolume);
|
||||||
|
}else if(power > 2000f){
|
||||||
|
Sounds.blockExplodeElectric.at(tile, Mathf.random(block.destroyPitchMin, block.destroyPitchMax), block.destroySoundVolume);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void playDestroySound(){
|
||||||
|
block.destroySound.at(tile, Mathf.random(block.destroyPitchMin, block.destroyPitchMax), block.destroySoundVolume);
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getDisplayName(){
|
public String getDisplayName(){
|
||||||
@@ -2178,7 +2196,6 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc,
|
|||||||
public void killed(){
|
public void killed(){
|
||||||
dead = true;
|
dead = true;
|
||||||
Events.fire(new BlockDestroyEvent(tile));
|
Events.fire(new BlockDestroyEvent(tile));
|
||||||
if(!headless) playDestroySound();
|
|
||||||
onDestroyed();
|
onDestroyed();
|
||||||
if(tile != emptyTile){
|
if(tile != emptyTile){
|
||||||
tile.remove();
|
tile.remove();
|
||||||
@@ -2187,10 +2204,6 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc,
|
|||||||
afterDestroyed();
|
afterDestroyed();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void playDestroySound(){
|
|
||||||
block.destroySound.at(tile, Mathf.random(block.destroyPitchMin, block.destroyPitchMax), block.destroySoundVolume);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void checkAllowUpdate(){
|
public void checkAllowUpdate(){
|
||||||
if(!allowUpdate()){
|
if(!allowUpdate()){
|
||||||
enabled = false;
|
enabled = false;
|
||||||
|
|||||||
@@ -96,7 +96,7 @@ public class GlobalVars{
|
|||||||
//sounds
|
//sounds
|
||||||
if(Core.assets != null){
|
if(Core.assets != null){
|
||||||
for(Sound sound : Core.assets.getAll(Sound.class, new Seq<>(Sound.class))){
|
for(Sound sound : Core.assets.getAll(Sound.class, new Seq<>(Sound.class))){
|
||||||
if(sound != Sounds.none && sound != Sounds.swish && sound.file != null){
|
if(sound != Sounds.none && sound.file != null){
|
||||||
String name = sound.file.nameWithoutExtension();
|
String name = sound.file.nameWithoutExtension();
|
||||||
soundNames.add(name);
|
soundNames.add(name);
|
||||||
put("@sfx-" + name, Sounds.getSoundId(sound));
|
put("@sfx-" + name, Sounds.getSoundId(sound));
|
||||||
|
|||||||
@@ -2004,7 +2004,7 @@ public class LExecutor{
|
|||||||
@Override
|
@Override
|
||||||
public void run(LExecutor exec){
|
public void run(LExecutor exec){
|
||||||
Sound sound = Sounds.getSound(id.numi());
|
Sound sound = Sounds.getSound(id.numi());
|
||||||
if(sound == null || sound == Sounds.swish) sound = Sounds.none; //no.
|
if(sound == null) sound = Sounds.none;
|
||||||
|
|
||||||
if(positional){
|
if(positional){
|
||||||
sound.at(World.unconv(x.numf()), World.unconv(y.numf()), pitch.numf(), Math.min(volume.numf(), 2f), limit.bool());
|
sound.at(World.unconv(x.numf()), World.unconv(y.numf()), pitch.numf(), Math.min(volume.numf(), 2f), limit.bool());
|
||||||
|
|||||||
@@ -309,11 +309,11 @@ public class Block extends UnlockableContent implements Senseable{
|
|||||||
/** Should the sound made when this block is deconstructed change in pitch. */
|
/** Should the sound made when this block is deconstructed change in pitch. */
|
||||||
public boolean breakPitchChange = true;
|
public boolean breakPitchChange = true;
|
||||||
/** Sound made when this block is built. */
|
/** Sound made when this block is built. */
|
||||||
public Sound placeSound = Sounds.place;
|
public Sound placeSound = Sounds.unset;
|
||||||
/** Sound made when this block is deconstructed. */
|
/** Sound made when this block is deconstructed. */
|
||||||
public Sound breakSound = Sounds.breaks;
|
public Sound breakSound = Sounds.breaks;
|
||||||
/** Sounds made when this block is destroyed.*/
|
/** Sounds made when this block is destroyed.*/
|
||||||
public Sound destroySound = Sounds.boom;
|
public Sound destroySound = Sounds.unset;
|
||||||
/** Volume of destruction sound. */
|
/** Volume of destruction sound. */
|
||||||
public float destroySoundVolume = 1f;
|
public float destroySoundVolume = 1f;
|
||||||
/** Range of destroy sound. */
|
/** Range of destroy sound. */
|
||||||
@@ -1260,6 +1260,20 @@ public class Block extends UnlockableContent implements Senseable{
|
|||||||
public void init(){
|
public void init(){
|
||||||
super.init();
|
super.init();
|
||||||
|
|
||||||
|
if(destroySound == Sounds.unset){
|
||||||
|
destroySound =
|
||||||
|
size >= 3 ? Sounds.blockExplode3 :
|
||||||
|
size >= 2 ? Sounds.blockExplode2 :
|
||||||
|
Sounds.blockExplode1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(placeSound == Sounds.unset){
|
||||||
|
placeSound =
|
||||||
|
size >= 3 ? Sounds.place3 :
|
||||||
|
size >= 2 ? Sounds.place2 :
|
||||||
|
Sounds.place1;
|
||||||
|
}
|
||||||
|
|
||||||
//disable standard shadow
|
//disable standard shadow
|
||||||
if(customShadow){
|
if(customShadow){
|
||||||
hasShadow = false;
|
hasShadow = false;
|
||||||
|
|||||||
@@ -41,6 +41,7 @@ public class Wall extends Block{
|
|||||||
|
|
||||||
//it's a wall of course it's supported everywhere
|
//it's a wall of course it's supported everywhere
|
||||||
envEnabled = Env.any;
|
envEnabled = Env.any;
|
||||||
|
destroySound = Sounds.blockExplodeWall;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ public class ImpactReactor extends PowerGenerator{
|
|||||||
explosionDamage = 1900 * 4;
|
explosionDamage = 1900 * 4;
|
||||||
explosionMinWarmup = 0.3f;
|
explosionMinWarmup = 0.3f;
|
||||||
explodeEffect = Fx.impactReactorExplosion;
|
explodeEffect = Fx.impactReactorExplosion;
|
||||||
explodeSound = Sounds.explosionbig;
|
explodeSound = Sounds.reactorExplosion2;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ public class VariableReactor extends PowerGenerator{
|
|||||||
explosionRadius = 16;
|
explosionRadius = 16;
|
||||||
explosionDamage = 1500;
|
explosionDamage = 1500;
|
||||||
explodeEffect = new MultiEffect(Fx.bigShockwave, new WrapEffect(Fx.titanSmoke, Color.valueOf("e3ae6f")));
|
explodeEffect = new MultiEffect(Fx.bigShockwave, new WrapEffect(Fx.titanSmoke, Color.valueOf("e3ae6f")));
|
||||||
explodeSound = Sounds.explosionbig;
|
explodeSound = Sounds.reactorExplosion2;
|
||||||
|
|
||||||
explosionPuddles = 70;
|
explosionPuddles = 70;
|
||||||
explosionPuddleRange = tilesize * 6f;
|
explosionPuddleRange = tilesize * 6f;
|
||||||
|
|||||||
Reference in New Issue
Block a user