diff --git a/core/src/io/anuke/mindustry/content/AmmoTypes.java b/core/src/io/anuke/mindustry/content/AmmoTypes.java index 3c0d52df3e..234d662c88 100644 --- a/core/src/io/anuke/mindustry/content/AmmoTypes.java +++ b/core/src/io/anuke/mindustry/content/AmmoTypes.java @@ -11,7 +11,7 @@ import io.anuke.mindustry.type.ContentList; public class AmmoTypes implements ContentList{ public static AmmoType bulletCopper, bulletDense, bulletThorium, bulletSilicon, bulletPyratite, - shotgunTungsten, bombExplosive, bombIncendiary, bombOil, shellCarbide, flamerThermite, weaponMissile, weaponMissileSwarm, bulletMech, + shock, bombExplosive, bombIncendiary, bombOil, shellCarbide, flamerThermite, weaponMissile, weaponMissileSwarm, bulletMech, healBlaster, bulletGlaive, flakExplosive, flakPlastic, flakSurge, missileExplosive, missileIncindiary, missileSurge, @@ -43,7 +43,7 @@ public class AmmoTypes implements ContentList{ inaccuracy = 2f; }}; - shotgunTungsten = new AmmoType(TurretBullets.lightning){{ + shock = new AmmoType(TurretBullets.lightning){{ shootEffect = BulletFx.hitLancer; smokeEffect = Fx.none; }}; diff --git a/core/src/io/anuke/mindustry/content/Mechs.java b/core/src/io/anuke/mindustry/content/Mechs.java index 4e3d628a56..5a55bd927d 100644 --- a/core/src/io/anuke/mindustry/content/Mechs.java +++ b/core/src/io/anuke/mindustry/content/Mechs.java @@ -107,7 +107,7 @@ public class Mechs implements ContentList{ if(player.altHeat >= 0.91f){ Effects.shake(3f, 3f, player); for(int i = 0; i < 8; i++){ - Timers.run(Mathf.random(5f), () -> Lightning.create(player.getTeam(), BulletFx.hitLancer, player.getTeam().color, 10f, player.x, player.y, Mathf.random(360f), 20)); + Timers.run(Mathf.random(5f), () -> Lightning.create(player.getTeam(), BulletFx.hitLancer, player.getTeam().color, 15f, player.x, player.y, Mathf.random(360f), 20)); } player.altHeat = 0f; } diff --git a/core/src/io/anuke/mindustry/content/Weapons.java b/core/src/io/anuke/mindustry/content/Weapons.java index 3a16f4030a..2280b63e5d 100644 --- a/core/src/io/anuke/mindustry/content/Weapons.java +++ b/core/src/io/anuke/mindustry/content/Weapons.java @@ -96,7 +96,7 @@ public class Weapons implements ContentList{ inaccuracy = 0f; velocityRnd = 0.2f; ejectEffect = Fx.none; - ammo = AmmoTypes.shotgunTungsten; + ammo = AmmoTypes.shock; }}; flakgun = new Weapon("flakgun"){{ diff --git a/core/src/io/anuke/mindustry/content/bullets/TurretBullets.java b/core/src/io/anuke/mindustry/content/bullets/TurretBullets.java index c0863841d0..7d73be0808 100644 --- a/core/src/io/anuke/mindustry/content/bullets/TurretBullets.java +++ b/core/src/io/anuke/mindustry/content/bullets/TurretBullets.java @@ -229,7 +229,7 @@ public class TurretBullets extends BulletList implements ContentList{ statusIntensity = 0.5f; } }; - lightning = new BulletType(0.001f, 10){ + lightning = new BulletType(0.001f, 14){ { lifetime = 1; despawneffect = Fx.none; diff --git a/core/src/io/anuke/mindustry/entities/Player.java b/core/src/io/anuke/mindustry/entities/Player.java index adcf279523..a8883bb1ff 100644 --- a/core/src/io/anuke/mindustry/entities/Player.java +++ b/core/src/io/anuke/mindustry/entities/Player.java @@ -302,7 +302,7 @@ public class Player extends Unit implements BuilderTrait, CarryTrait, ShooterTra } if(floor.isLiquid){ - Draw.tint(Color.WHITE, floor.liquidColor, drownTime); + Draw.tint(Color.WHITE, floor.liquidColor, Mathf.clamp(drownTime)); }else{ Draw.tint(Color.WHITE); } @@ -461,6 +461,7 @@ public class Player extends Unit implements BuilderTrait, CarryTrait, ShooterTra interpolate(); updateBuilding(this); //building happens even with non-locals status.update(this); //status effect updating also happens with non locals for effect purposes + updateVelocityStatus(mech.drag, mech.maxSpeed); //velocity too, for visual purposes if(getCarrier() != null){ x = getCarrier().getX(); diff --git a/core/src/io/anuke/mindustry/entities/Unit.java b/core/src/io/anuke/mindustry/entities/Unit.java index e5f42d4872..4bd7fc83a3 100644 --- a/core/src/io/anuke/mindustry/entities/Unit.java +++ b/core/src/io/anuke/mindustry/entities/Unit.java @@ -259,7 +259,7 @@ public abstract class Unit extends DestructibleEntity implements SaveTrait, Targ drownTime = Mathf.clamp(drownTime); - if(drownTime >= 1f){ + if(drownTime >= 0.999f){ damage(health + 1); } diff --git a/core/src/io/anuke/mindustry/entities/effect/Lightning.java b/core/src/io/anuke/mindustry/entities/effect/Lightning.java index f5bad9a03e..b60f6c4c67 100644 --- a/core/src/io/anuke/mindustry/entities/effect/Lightning.java +++ b/core/src/io/anuke/mindustry/entities/effect/Lightning.java @@ -87,7 +87,7 @@ public class Lightning extends TimedEntity implements Poolable, DrawTrait, SyncT if(checkShield(team, x2, y2)) break; float fangle = angle; - angle += Mathf.range(30f); + angle += Mathf.range(15f); rect.setSize(attractRange).setCenter(x, y); Units.getNearbyEnemies(team, rect, entity -> { diff --git a/core/src/io/anuke/mindustry/world/blocks/production/PowerSmelter.java b/core/src/io/anuke/mindustry/world/blocks/production/PowerSmelter.java index 7fbf99a4c4..447f8f8f38 100644 --- a/core/src/io/anuke/mindustry/world/blocks/production/PowerSmelter.java +++ b/core/src/io/anuke/mindustry/world/blocks/production/PowerSmelter.java @@ -31,6 +31,7 @@ public class PowerSmelter extends PowerBlock{ protected float minFlux = 0.2f; protected int fluxNeeded = 1; + protected float fluxSpeedMult = 0.75f; protected float baseFluxChance = 0.25f; protected boolean useFlux = false; @@ -111,9 +112,17 @@ public class PowerSmelter extends PowerBlock{ return; } + float baseSmeltSpeed = 1f; + for(Item item : Item.all()){ + if(item.fluxiness >= minFlux && tile.entity.items.get(item) > 0){ + baseSmeltSpeed = fluxSpeedMult; + break; + } + } + if(entity.items.get(result) >= itemCapacity //output full || entity.heat <= minHeat //not burning - || !entity.timer.get(timerCraft, craftTime)){ //not yet time + || !entity.timer.get(timerCraft, craftTime*baseSmeltSpeed)){ //not yet time return; } diff --git a/core/src/io/anuke/mindustry/world/blocks/production/Smelter.java b/core/src/io/anuke/mindustry/world/blocks/production/Smelter.java index d6a396f905..d06d8db56b 100644 --- a/core/src/io/anuke/mindustry/world/blocks/production/Smelter.java +++ b/core/src/io/anuke/mindustry/world/blocks/production/Smelter.java @@ -27,6 +27,7 @@ public class Smelter extends Block{ protected Item result; protected float minFlux = 0.2f; + protected float fluxSpeedMult = 0.75f; protected float baseFluxChance = 0.25f; protected boolean useFlux = false; @@ -107,9 +108,17 @@ public class Smelter extends Block{ return; } + float baseSmeltSpeed = 1f; + for(Item item : Item.all()){ + if(item.fluxiness >= minFlux && tile.entity.items.get(item) > 0){ + baseSmeltSpeed = fluxSpeedMult; + break; + } + } + if(entity.items.get(result) >= itemCapacity //output full || entity.burnTime <= 0 //not burning - || !entity.timer.get(timerCraft, craftTime)){ //not yet time + || !entity.timer.get(timerCraft, craftTime*baseSmeltSpeed)){ //not yet time return; } diff --git a/server/src/io/anuke/mindustry/server/ServerControl.java b/server/src/io/anuke/mindustry/server/ServerControl.java index 87fa3b78db..eea00c8be0 100644 --- a/server/src/io/anuke/mindustry/server/ServerControl.java +++ b/server/src/io/anuke/mindustry/server/ServerControl.java @@ -151,7 +151,7 @@ public class ServerControl extends Module{ }); handler.register("version", "Displays server version info.", arg -> { - info("&lmVersion: &lyMindustry {0} {1} / {2}", Version.code, Version.type, Version.buildName); + info("&lmVersion: &lyMindustry {0}-{1} {2} / build {3}", Version.number, Version.modifier, Version.type, Version.build); info("&lmJava Version: &ly{0}", System.getProperty("java.version")); });