From 688b5b9eea6e0b7996053fa8d9742cc412cd39ce Mon Sep 17 00:00:00 2001 From: MEEPofFaith <54301439+MEEPofFaith@users.noreply.github.com> Date: Thu, 11 May 2023 22:58:30 -0700 Subject: [PATCH] Revert "Properly handle missile units shooting more missile units (#8359)" (#8585) This reverts commit 1373381554e87ac8420d26a998a6009201f550d8. --- core/src/mindustry/entities/bullet/BulletType.java | 10 ++++------ core/src/mindustry/type/Weapon.java | 4 +--- 2 files changed, 5 insertions(+), 9 deletions(-) diff --git a/core/src/mindustry/entities/bullet/BulletType.java b/core/src/mindustry/entities/bullet/BulletType.java index 5528832126f5..979716094870 100644 --- a/core/src/mindustry/entities/bullet/BulletType.java +++ b/core/src/mindustry/entities/bullet/BulletType.java @@ -554,7 +554,7 @@ public void drawLight(Bullet b){ public void init(Bullet b){ - if(killShooter && b.owner() instanceof Healthc h && !h.dead()){ + if(killShooter && b.owner() instanceof Healthc h){ h.kill(); } @@ -700,6 +700,7 @@ public ContentType getContentType(){ return create(owner, team, x, y, angle, -1, velocityScl, lifetimeScl, null); } + public @Nullable Bullet create(Entityc owner, Team team, float x, float y, float angle, float velocityScl, float lifetimeScl, Mover mover){ return create(owner, team, x, y, angle, -1, velocityScl, lifetimeScl, null, mover); } @@ -731,27 +732,24 @@ public ContentType getContentType(){ Unit spawned = spawnUnit.create(team); spawned.set(x, y); spawned.rotation = angle; - //immediately spawn at top speed, since it was launched if(spawnUnit.missileAccelTime <= 0f){ spawned.vel.trns(angle, spawnUnit.speed); } - //assign unit owner if(spawned.controller() instanceof MissileAI ai){ if(owner instanceof Unit unit){ ai.shooter = unit; } + if(owner instanceof ControlBlock control){ ai.shooter = control.unit(); } + } spawned.add(); } - //Since bullet init is never called, handle killing shooter here - if(killShooter && owner instanceof Healthc h && !h.dead()) h.kill(); - //no bullet returned return null; } diff --git a/core/src/mindustry/type/Weapon.java b/core/src/mindustry/type/Weapon.java index b195b92e597c..a52b423dba49 100644 --- a/core/src/mindustry/type/Weapon.java +++ b/core/src/mindustry/type/Weapon.java @@ -10,7 +10,6 @@ import arc.scene.ui.layout.*; import arc.struct.*; import arc.util.*; -import mindustry.ai.types.*; import mindustry.annotations.Annotations.*; import mindustry.audio.*; import mindustry.content.*; @@ -457,8 +456,7 @@ protected void bullet(Unit unit, WeaponMount mount, float xOffset, float yOffset lifeScl = bullet.scaleLife ? Mathf.clamp(Mathf.dst(bulletX, bulletY, mount.aimX, mount.aimY) / bullet.range) : 1f, angle = angleOffset + 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(shooter, unit.team, bulletX, bulletY, angle, -1f, (1f - velocityRnd) + Mathf.random(velocityRnd), lifeScl, null, mover, mount.aimX, mount.aimY); + mount.bullet = bullet.create(unit, unit.team, bulletX, bulletY, angle, -1f, (1f - velocityRnd) + Mathf.random(velocityRnd), lifeScl, null, mover, mount.aimX, mount.aimY); handleBullet(unit, mount, mount.bullet); if(!continuous){