From b7cb080f367f32c24edffa930df47474f7a7f739 Mon Sep 17 00:00:00 2001 From: Agzam4 <75160721+Agzam4@users.noreply.github.com> Date: Fri, 27 Jun 2025 01:51:16 +0300 Subject: [PATCH] Mass driver bullets are destroyed like the blocks with items (#10969) * Mass driver bullets explosions like the blocks * Better code style --------- Co-authored-by: TempUser --- .../mindustry/entities/bullet/MassDriverBolt.java | 14 ++++++++++++++ .../world/blocks/distribution/MassDriver.java | 2 +- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/core/src/mindustry/entities/bullet/MassDriverBolt.java b/core/src/mindustry/entities/bullet/MassDriverBolt.java index b9a0526e40..67b581a34b 100644 --- a/core/src/mindustry/entities/bullet/MassDriverBolt.java +++ b/core/src/mindustry/entities/bullet/MassDriverBolt.java @@ -4,8 +4,10 @@ import arc.graphics.*; import arc.graphics.g2d.*; import arc.math.*; import mindustry.content.*; +import mindustry.entities.*; import mindustry.gen.*; import mindustry.graphics.*; +import mindustry.type.*; import mindustry.world.blocks.distribution.MassDriver.*; import static mindustry.Vars.*; @@ -89,5 +91,17 @@ public class MassDriverBolt extends BasicBulletType{ public void hit(Bullet b, float hitx, float hity){ super.hit(b, hitx, hity); despawned(b); + if(b.data() instanceof DriverBulletData data){ + float explosiveness = 0f; + float flammability = 0f; + float power = 0f; + for(int i = 0; i < data.items.length; i++){ + Item item = content.item(i); + explosiveness += item.explosiveness * data.items[i]; + flammability += item.flammability * data.items[i]; + power += item.charge * Mathf.pow(data.items[i], 1.1f) * 25f; + } + Damage.dynamicExplosion(b.x, b.y, flammability / 10f, explosiveness / 10f, power, 1f, state.rules.damageExplosions); + } } } diff --git a/core/src/mindustry/world/blocks/distribution/MassDriver.java b/core/src/mindustry/world/blocks/distribution/MassDriver.java index 91910e2388..f79d55042a 100644 --- a/core/src/mindustry/world/blocks/distribution/MassDriver.java +++ b/core/src/mindustry/world/blocks/distribution/MassDriver.java @@ -299,7 +299,7 @@ public class MassDriver extends Block{ bullet.create(this, team, x + Angles.trnsx(angle, translation), y + Angles.trnsy(angle, translation), - angle, -1f, bulletSpeed, bulletLifetime, data); + angle, totalUsed/2f, bulletSpeed, bulletLifetime, data); shootEffect.at(x + Angles.trnsx(angle, translation), y + Angles.trnsy(angle, translation), angle); smokeEffect.at(x + Angles.trnsx(angle, translation), y + Angles.trnsy(angle, translation), angle);