Compare commits

...

12 Commits
v113 ... v113.2

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
Anuken
f86984b5fc Merge branch 'master' of https://github.com/Anuken/Mindustry 2020-11-11 13:42:35 -05:00
Anuken
0f61e8cfd9 arc 2020-11-11 13:42:30 -05:00
DeltaNedas
a3d4c239d1 nothing 2020-11-11 18:28:42 +00:00
Anuken
a0e2fc3a67 Updated servers to new format 2020-11-11 13:27:27 -05:00
Anuken
112b91469b arc 2020-11-11 13:19:57 -05:00
Anuken
529bae8972 Fixed #3344 2020-11-11 12:45:30 -05:00
19 changed files with 44 additions and 32 deletions

Binary file not shown.

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

@@ -1246,7 +1246,7 @@ public class Blocks implements ContentList{
powerProduction = 130f; powerProduction = 130f;
itemDuration = 140f; itemDuration = 140f;
ambientSound = Sounds.pulse; ambientSound = Sounds.pulse;
ambientSoundVolume = 0.2f; ambientSoundVolume = 0.07f;
consumes.power(25f); consumes.power(25f);
consumes.item(Items.blastCompound); consumes.item(Items.blastCompound);

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

@@ -34,9 +34,7 @@ abstract class FireComp implements Timedc, Posc, Firec, Syncc{
Fx.fireSmoke.at(x + Mathf.range(4f), y + Mathf.range(4f)); Fx.fireSmoke.at(x + Mathf.range(4f), y + Mathf.range(4f));
} }
if(Mathf.chance(0.001 * Time.delta)){ loops.play(Sounds.fire, this, 0.07f);
Sounds.fire.at(this);
}
time = Mathf.clamp(time + Time.delta, 0, lifetime()); time = Mathf.clamp(time + Time.delta, 0, lifetime());

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,9 @@
- Improved icons
- Improved unit rotation visuals when moving and building/mining
- Decreased command limit of early game flying units to reduce PvP rushing
- Made core units unlock on spawn
- Switched to a new, unified audio framework for all platforms
- Added new sound effects and loops
- Added new music
- Added community server groups with optional titles and a hide button
- Added editor search bar (Contributed by @summetdev)

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=a71eaec7f1a331600d5d2aab0b6efeaf9fcd4b33 archash=a6f488d6f741b98d123113ceb26439032be0719e

View File

@@ -1,27 +1,17 @@
[ [
{ {
"address": "mindustry.pl:6000" "name": "mindustry.pl",
}, "address": ["mindustry.pl:6000", "mindustry.pl:6666"]
{
"address": "mindustry.pl:6666"
}, },
{ {
"address": "routerchain.ddns.net" "address": "routerchain.ddns.net"
}, },
{
"address": "mindustry.atannergaming.com:13000"
},
{ {
"address": "pandorum.su:8000" "address": "pandorum.su:8000"
}, },
{ {
"address": "mindustry.ecansol.com:6597" "name": "ECAN",
}, "address": ["mindustry.ecansol.com:6597", "mindustry.ecansol.com:6499", "mindustry.ecansol.com:6599"]
{
"address": "mindustry.ecansol.com:6499"
},
{
"address": "mindustry.ecansol.com:6599"
}, },
{ {
"address": "Chaotic-Neutral.ddns.net:5555" "address": "Chaotic-Neutral.ddns.net:5555"