diff --git a/core/assets-raw/sprites/items/item-titanium.png b/core/assets-raw/sprites/items/item-titanium.png index 69368ab751..fda457e770 100644 Binary files a/core/assets-raw/sprites/items/item-titanium.png and b/core/assets-raw/sprites/items/item-titanium.png differ diff --git a/core/src/mindustry/content/Blocks.java b/core/src/mindustry/content/Blocks.java index 1b99224840..2a51ed71d3 100644 --- a/core/src/mindustry/content/Blocks.java +++ b/core/src/mindustry/content/Blocks.java @@ -3792,27 +3792,27 @@ public class Blocks{ }}; outlineColor = Pal.darkOutline; - liquidConsumed = 4f / 60f; + liquidConsumed = 8f / 60f; float r = range = 130f; //TODO balance, set up, where is liquid/sec displayed? status effects maybe? ammo( Liquids.ozone, new ContinuousFlameBulletType(){{ - damage = 90f; + damage = 70f; length = r; knockback = 1f; - pierceCap = 3; + pierceCap = 2; buildingDamageMultiplier = 0.3f; colors = new Color[]{Color.valueOf("eb7abe").a(0.55f), Color.valueOf("e189f5").a(0.7f), Color.valueOf("907ef7").a(0.8f), Color.valueOf("91a4ff"), Color.white}; }}, Liquids.cyanogen, new ContinuousFlameBulletType(){{ - damage = 200f; + damage = 160f; rangeChange = 70f; length = r + rangeChange; knockback = 2f; - pierceCap = 4; + pierceCap = 3; buildingDamageMultiplier = 0.3f; colors = new Color[]{Color.valueOf("465ab8").a(0.55f), Color.valueOf("66a6d2").a(0.7f), Color.valueOf("89e8b6").a(0.8f), Color.valueOf("cafcbe"), Color.white}; diff --git a/core/src/mindustry/content/UnitTypes.java b/core/src/mindustry/content/UnitTypes.java index 7a3467876f..1abe026850 100644 --- a/core/src/mindustry/content/UnitTypes.java +++ b/core/src/mindustry/content/UnitTypes.java @@ -2261,7 +2261,7 @@ public class UnitTypes{ bullet = new EmpBulletType(){{ float rad = 100f; - scaleVelocity = true; + scaleLife = true; lightOpacity = 0.7f; unitDamageScl = 0.8f; healPercent = 20f; diff --git a/core/src/mindustry/entities/bullet/ArtilleryBulletType.java b/core/src/mindustry/entities/bullet/ArtilleryBulletType.java index 79415b6470..08749c1803 100644 --- a/core/src/mindustry/entities/bullet/ArtilleryBulletType.java +++ b/core/src/mindustry/entities/bullet/ArtilleryBulletType.java @@ -13,7 +13,7 @@ public class ArtilleryBulletType extends BasicBulletType{ collidesTiles = false; collides = false; collidesAir = false; - scaleVelocity = true; + scaleLife = true; hitShake = 1f; hitSound = Sounds.explosion; hitEffect = Fx.flakExplosion; diff --git a/core/src/mindustry/entities/bullet/BulletType.java b/core/src/mindustry/entities/bullet/BulletType.java index 56ea9cf113..d30861886b 100644 --- a/core/src/mindustry/entities/bullet/BulletType.java +++ b/core/src/mindustry/entities/bullet/BulletType.java @@ -111,7 +111,7 @@ public class BulletType extends Content implements Cloneable{ /** Whether velocity is inherited from the shooter. */ public boolean keepVelocity = true; /** Whether to scale lifetime (not actually velocity!) to disappear at the target position. Used for artillery. */ - public boolean scaleVelocity; + public boolean scaleLife; /** Whether this bullet can be hit by point defense. */ public boolean hittable = true; /** Whether this bullet can be reflected. */ diff --git a/core/src/mindustry/entities/bullet/PointBulletType.java b/core/src/mindustry/entities/bullet/PointBulletType.java index 920e6e5b51..a4fe032b52 100644 --- a/core/src/mindustry/entities/bullet/PointBulletType.java +++ b/core/src/mindustry/entities/bullet/PointBulletType.java @@ -13,7 +13,7 @@ public class PointBulletType extends BulletType{ public float trailSpacing = 10f; public PointBulletType(){ - scaleVelocity = true; + scaleLife = true; lifetime = 100f; collides = false; keepVelocity = false; diff --git a/core/src/mindustry/mod/ContentParser.java b/core/src/mindustry/mod/ContentParser.java index d51320aad0..29e1234cb5 100644 --- a/core/src/mindustry/mod/ContentParser.java +++ b/core/src/mindustry/mod/ContentParser.java @@ -94,8 +94,6 @@ public class ContentParser{ if(data.isString()){ StatusEffect result = locate(ContentType.status, data.asString()); if(result != null) return result; - result = (StatusEffect)fieldOpt(StatusEffects.class, data); - if(result != null) return result; throw new IllegalArgumentException("Unknown status effect: '" + data.asString() + "'"); } StatusEffect effect = new StatusEffect(currentMod.name + "-" + data.getString("name")); diff --git a/core/src/mindustry/type/Weapon.java b/core/src/mindustry/type/Weapon.java index bd93efcdc2..d72a5ea3f3 100644 --- a/core/src/mindustry/type/Weapon.java +++ b/core/src/mindustry/type/Weapon.java @@ -399,7 +399,7 @@ public class Weapon implements Cloneable{ bulletX = mountX + Angles.trnsx(weaponRotation, this.shootX + xOffset, this.shootY + yOffset), bulletY = mountY + Angles.trnsy(weaponRotation, this.shootX + xOffset, this.shootY + yOffset), shootAngle = bulletRotation(unit, mount, bulletX, bulletY) + angleOffset, - lifeScl = bullet.scaleVelocity ? Mathf.clamp(Mathf.dst(shootX, shootY, mount.aimX, mount.aimY) / bullet.range) : 1f, + lifeScl = bullet.scaleLife ? Mathf.clamp(Mathf.dst(bulletX, bulletY, mount.aimX, mount.aimY) / bullet.range) : 1f, angle = angleOffset + shootAngle + Mathf.range(inaccuracy); mount.bullet = bullet.create(unit, unit.team, bulletX, bulletY, angle, -1f, (1f - velocityRnd) + Mathf.random(velocityRnd), lifeScl, null, mover, mount.aimX, mount.aimY); diff --git a/core/src/mindustry/world/blocks/ConstructBlock.java b/core/src/mindustry/world/blocks/ConstructBlock.java index a9aa29c122..bde9b42136 100644 --- a/core/src/mindustry/world/blocks/ConstructBlock.java +++ b/core/src/mindustry/world/blocks/ConstructBlock.java @@ -55,7 +55,7 @@ public class ConstructBlock extends Block{ @Remote(called = Loc.server) public static void deconstructFinish(Tile tile, Block block, Unit builder){ Team team = tile.team(); - if(fogControl.isVisibleTile(player.team(), tile.x, tile.y)){ + if(fogControl.isVisibleTile(team, tile.x, tile.y)){ block.breakEffect.at(tile.drawx(), tile.drawy(), block.size, block.mapColor); if(shouldPlay()) block.breakSound.at(tile, block.breakPitchChange ? calcPitch(false) : 1f); } @@ -98,7 +98,7 @@ public class ConstructBlock extends Block{ tile.build.playerPlaced(config); } - if(fogControl.isVisibleTile(player.team(), tile.x, tile.y)){ + if(fogControl.isVisibleTile(team, tile.x, tile.y)){ Fx.placeBlock.at(tile.drawx(), tile.drawy(), block.size); if(shouldPlay()) block.placeSound.at(tile, block.placePitchChange ? calcPitch(true) : 1f); } diff --git a/core/src/mindustry/world/blocks/defense/turrets/Turret.java b/core/src/mindustry/world/blocks/defense/turrets/Turret.java index a205b4746c..f3af5b0df0 100644 --- a/core/src/mindustry/world/blocks/defense/turrets/Turret.java +++ b/core/src/mindustry/world/blocks/defense/turrets/Turret.java @@ -500,7 +500,7 @@ public class Turret extends ReloadTurret{ bulletY = y + Angles.trnsy(rotation - 90, shootX + xOffset, shootY + yOffset), shootAngle = rotation + angleOffset + Mathf.range(inaccuracy); - float lifeScl = type.scaleVelocity ? Mathf.clamp(Mathf.dst(bulletX, bulletY, targetPos.x, targetPos.y) / type.range, minRange / type.range, range() / type.range) : 1f; + float lifeScl = type.scaleLife ? Mathf.clamp(Mathf.dst(bulletX, bulletY, targetPos.x, targetPos.y) / type.range, minRange / type.range, range() / type.range) : 1f; //TODO aimX / aimY for multi shot turrets? handleBullet(type.create(this, team, bulletX, bulletY, shootAngle, -1f, 1f + Mathf.range(velocityInaccuracy), lifeScl, null, mover, targetPos.x, targetPos.y), xOffset, yOffset, angleOffset);