diff --git a/core/assets/maps/frontier.msav b/core/assets/maps/frontier.msav index 80fda788c1..765c4082ce 100644 Binary files a/core/assets/maps/frontier.msav and b/core/assets/maps/frontier.msav differ diff --git a/core/assets/maps/testingGrounds.msav b/core/assets/maps/testingGrounds.msav index 86260a78ba..b02ba9da54 100644 Binary files a/core/assets/maps/testingGrounds.msav and b/core/assets/maps/testingGrounds.msav differ diff --git a/core/src/mindustry/content/SectorPresets.java b/core/src/mindustry/content/SectorPresets.java index cdad98b7ba..9ca699ba02 100644 --- a/core/src/mindustry/content/SectorPresets.java +++ b/core/src/mindustry/content/SectorPresets.java @@ -34,6 +34,7 @@ public class SectorPresets{ testingGrounds = new SectorPreset("testingGrounds", serpulo, 3){{ difficulty = 7; + captureWave = 33; }}; frozenForest = new SectorPreset("frozenForest", serpulo, 86){{ diff --git a/core/src/mindustry/entities/bullet/BulletType.java b/core/src/mindustry/entities/bullet/BulletType.java index e3e025bd36..977f16c0e3 100644 --- a/core/src/mindustry/entities/bullet/BulletType.java +++ b/core/src/mindustry/entities/bullet/BulletType.java @@ -772,6 +772,13 @@ public class BulletType extends Content implements Cloneable{ } public @Nullable Bullet create(@Nullable Entityc owner, @Nullable Entityc shooter, Team team, float x, float y, float angle, float damage, float velocityScl, float lifetimeScl, Object data, @Nullable Mover mover, float aimX, float aimY){ + return create(owner, shooter, team, x, y, angle, damage, velocityScl, lifetimeScl, data, mover, aimX, aimY, null); + } + + public @Nullable Bullet create( + @Nullable Entityc owner, @Nullable Entityc shooter, Team team, float x, float y, float angle, float damage, float velocityScl, + float lifetimeScl, Object data, @Nullable Mover mover, float aimX, float aimY, @Nullable Teamc target + ){ if(!Mathf.chance(createChance)) return null; if(ignoreSpawnAngle) angle = 0; if(spawnUnit != null){ @@ -812,7 +819,7 @@ public class BulletType extends Content implements Cloneable{ bullet.originX = x; bullet.originY = y; if(!(aimX == -1f && aimY == -1f)){ - bullet.aimTile = world.tileWorld(aimX, aimY); + bullet.aimTile = target instanceof Building b ? b.tile : world.tileWorld(aimX, aimY); } bullet.aimX = aimX; bullet.aimY = aimY; diff --git a/core/src/mindustry/type/Weapon.java b/core/src/mindustry/type/Weapon.java index d67a1ca032..25812d316f 100644 --- a/core/src/mindustry/type/Weapon.java +++ b/core/src/mindustry/type/Weapon.java @@ -489,7 +489,7 @@ public class Weapon implements Cloneable{ angle = shootAngle + Mathf.range(inaccuracy + bullet.inaccuracy); Entityc shooter = unit.controller() instanceof MissileAI ai ? ai.shooter : unit; //Pass the missile's shooter down to its bullets - mount.bullet = bullet.create(unit, shooter, unit.team, bulletX, bulletY, angle, -1f, (1f - velocityRnd) + Mathf.random(velocityRnd), lifeScl, null, mover, mount.aimX, mount.aimY); + mount.bullet = bullet.create(unit, shooter, unit.team, bulletX, bulletY, angle, -1f, (1f - velocityRnd) + Mathf.random(velocityRnd), lifeScl, null, mover, mount.aimX, mount.aimY, mount.target); handleBullet(unit, mount, mount.bullet); if(!continuous){