Compare commits

...

7 Commits

Author SHA1 Message Date
Anuken
536a8f6085 Merge branch 'master' of https://github.com/Anuken/Mindustry 2020-11-11 17:13:26 -05:00
Anuken
6cb22dd190 arc 2020-11-11 17:13:19 -05:00
Anuken
538f1d7330 Fixed #3352 / Fixed #3355 / Quad sounds 2020-11-11 17:12:42 -05:00
Anuken
9ef57c0366 Merge pull request #3345 from DeltaNedas/nothing
nothing
2020-11-11 15:01:36 -05:00
Anuken
cf4f912cef Cleanup 2020-11-11 14:55:16 -05:00
Anuken
988fdb0c9b Fixed impact0078 missing wave 2020-11-11 14:08:57 -05:00
DeltaNedas
a3d4c239d1 nothing 2020-11-11 18:28:42 +00:00
14 changed files with 29 additions and 14 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -10,6 +10,12 @@ import mindustry.*;
public class LoopControl{ public class LoopControl{
private ObjectMap<Sound, SoundData> sounds = new ObjectMap<>(); private ObjectMap<Sound, SoundData> sounds = new ObjectMap<>();
public void play(Sound sound, float volume){
if(Vars.headless) return;
play(sound, Core.camera.position, volume);
}
public void play(Sound sound, Position pos, float volume){ public void play(Sound sound, Position pos, float volume){
if(Vars.headless) return; if(Vars.headless) return;

View File

@@ -1307,6 +1307,9 @@ public class UnitTypes implements ContentList{
reload = 55f; reload = 55f;
minShootVelocity = 0.01f; minShootVelocity = 0.01f;
soundPitchMin = 1f;
shootSound = Sounds.plasmadrop;
bullet = new BasicBulletType(){{ bullet = new BasicBulletType(){{
sprite = "large-bomb"; sprite = "large-bomb";
width = height = 120/4f; width = height = 120/4f;
@@ -1318,9 +1321,10 @@ public class UnitTypes implements ContentList{
frontColor = Color.white; frontColor = Color.white;
mixColorTo = Color.white; mixColorTo = Color.white;
hitSound = Sounds.plasmaboom;
shootCone = 180f; shootCone = 180f;
ejectEffect = Fx.none; ejectEffect = Fx.none;
shootSound = Sounds.none;
despawnShake = 4f; despawnShake = 4f;
collidesAir = false; collidesAir = false;

View File

@@ -8,7 +8,7 @@ import arc.util.*;
import mindustry.ui.dialogs.*; import mindustry.ui.dialogs.*;
public class MapResizeDialog extends BaseDialog{ public class MapResizeDialog extends BaseDialog{
private static final int minSize = 50, maxSize = 500, increment = 50; public static int minSize = 50, maxSize = 500, increment = 50;
int width, height; int width, height;
public MapResizeDialog(MapEditor editor, Intc2 cons){ public MapResizeDialog(MapEditor editor, Intc2 cons){

View File

@@ -69,8 +69,9 @@ abstract class UnitComp implements Healthc, Physicsc, Hitboxc, Statusc, Teamc, I
} }
public float speed(){ public float speed(){
float strafePenalty = isGrounded() || !isPlayer() ? 1f : Mathf.lerp(1f, type.strafePenalty, Angles.angleDist(vel().angle(), rotation) / 180f);
//limit speed to minimum formation speed to preserve formation //limit speed to minimum formation speed to preserve formation
return isCommanding() ? minFormationSpeed * 0.98f : type.speed; return (isCommanding() ? minFormationSpeed * 0.98f : type.speed) * strafePenalty;
} }
/** @return speed with boost multipliers factored in. */ /** @return speed with boost multipliers factored in. */

View File

@@ -602,9 +602,7 @@ public class DesktopInput extends InputHandler{
boolean omni = unit.type.omniMovement; boolean omni = unit.type.omniMovement;
boolean ground = unit.isGrounded(); boolean ground = unit.isGrounded();
float strafePenalty = ground ? 1f : Mathf.lerp(1f, unit.type.strafePenalty, Angles.angleDist(unit.vel().angle(), unit.rotation()) / 180f); float speed = unit.realSpeed();
float speed = unit.realSpeed() * strafePenalty;
float xa = Core.input.axis(Binding.move_x); float xa = Core.input.axis(Binding.move_x);
float ya = Core.input.axis(Binding.move_y); float ya = Core.input.axis(Binding.move_y);
boolean boosted = (unit instanceof Mechc && unit.isFlying()); boolean boosted = (unit instanceof Mechc && unit.isFlying());

View File

@@ -854,9 +854,8 @@ public class MobileInput extends InputHandler implements GestureListener{
targetPos.set(Core.camera.position); targetPos.set(Core.camera.position);
float attractDst = 15f; float attractDst = 15f;
float strafePenalty = legs ? 1f : Mathf.lerp(1f, type.strafePenalty, Angles.angleDist(unit.vel.angle(), unit.rotation) / 180f);
float speed = unit.realSpeed() * strafePenalty; float speed = unit.realSpeed();
float range = unit.hasWeapons() ? unit.range() : 0f; float range = unit.hasWeapons() ? unit.range() : 0f;
float bulletSpeed = unit.hasWeapons() ? type.weapons.first().bullet.speed : 0f; float bulletSpeed = unit.hasWeapons() ? type.weapons.first().bullet.speed : 0f;
float mouseAngle = unit.angleTo(unit.aimX(), unit.aimY()); float mouseAngle = unit.angleTo(unit.aimX(), unit.aimY());

View File

@@ -204,6 +204,9 @@ public class LExecutor{
//no units of this type found //no units of this type found
exec.setconst(varUnit, null); exec.setconst(varUnit, null);
} }
}else if(exec.obj(type) instanceof Unit u && u.team == exec.team){
//bind to specific unit object
exec.setconst(varUnit, u);
}else{ }else{
exec.setconst(varUnit, null); exec.setconst(varUnit, null);
} }

View File

@@ -89,9 +89,9 @@ public abstract class Weather extends UnlockableContent{
} }
} }
if(sound != Sounds.none){ if(!headless && sound != Sounds.none){
float noise = soundVolOscMag > 0 ? (float)Math.abs(Noise.rawNoise(Time.time() / soundVolOscScl)) * soundVolOscMag : 0; float noise = soundVolOscMag > 0 ? (float)Math.abs(Noise.rawNoise(Time.time() / soundVolOscScl)) * soundVolOscMag : 0;
loops.play(sound, Core.camera.position, Math.max((soundVol + noise) * state.opacity, soundVolMin)); loops.play(sound, Math.max((soundVol + noise) * state.opacity, soundVolMin));
} }
} }

View File

@@ -41,10 +41,13 @@ public class AmmoListValue<T extends UnlockableContent> implements StatValue{
sep(bt, Core.bundle.format("bullet.splashdamage", (int)type.splashDamage, Strings.fixed(type.splashDamageRadius / tilesize, 1))); sep(bt, Core.bundle.format("bullet.splashdamage", (int)type.splashDamage, Strings.fixed(type.splashDamageRadius / tilesize, 1)));
} }
if(!Mathf.equal(type.ammoMultiplier, 1f)) if(!Mathf.equal(type.ammoMultiplier, 1f) && !(type instanceof LiquidBulletType)){
sep(bt, Core.bundle.format("bullet.multiplier", (int)type.ammoMultiplier)); sep(bt, Core.bundle.format("bullet.multiplier", (int)type.ammoMultiplier));
if(!Mathf.equal(type.reloadMultiplier, 1f)) }
if(!Mathf.equal(type.reloadMultiplier, 1f)){
sep(bt, Core.bundle.format("bullet.reload", Strings.fixed(type.reloadMultiplier, 1))); sep(bt, Core.bundle.format("bullet.reload", Strings.fixed(type.reloadMultiplier, 1)));
}
if(type.knockback > 0){ if(type.knockback > 0){
sep(bt, Core.bundle.format("bullet.knockback", Strings.fixed(type.knockback, 1))); sep(bt, Core.bundle.format("bullet.knockback", Strings.fixed(type.knockback, 1)));

View File

@@ -0,0 +1 @@
- Fixed many various sound-related bugs, such as music playing after application exit

View File

@@ -1,3 +1,3 @@
org.gradle.daemon=true org.gradle.daemon=true
org.gradle.jvmargs=-Xms256m -Xmx1024m org.gradle.jvmargs=-Xms256m -Xmx1024m
archash=2c022c5c2723b39e63da7cadd6c53ce6ec78f9d3 archash=a6f488d6f741b98d123113ceb26439032be0719e