From b6d27c16bef1bf465392e2a5c2cf691fe56b6049 Mon Sep 17 00:00:00 2001 From: MEEPofFaith <54301439+MEEPofFaith@users.noreply.github.com> Date: Fri, 19 May 2023 18:02:54 -0700 Subject: [PATCH] Interval bullets for continuous bullets (#8628) --- .../entities/bullet/ContinuousBulletType.java | 2 ++ .../entities/bullet/PointLaserBulletType.java | 13 ++++++++++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/core/src/mindustry/entities/bullet/ContinuousBulletType.java b/core/src/mindustry/entities/bullet/ContinuousBulletType.java index df7b63c68d..0f95881285 100644 --- a/core/src/mindustry/entities/bullet/ContinuousBulletType.java +++ b/core/src/mindustry/entities/bullet/ContinuousBulletType.java @@ -74,6 +74,8 @@ public class ContinuousBulletType extends BulletType{ if(shake > 0){ Effect.shake(shake, shake, b); } + + updateBulletInterval(b); } public void applyDamage(Bullet b){ diff --git a/core/src/mindustry/entities/bullet/PointLaserBulletType.java b/core/src/mindustry/entities/bullet/PointLaserBulletType.java index e78b91d2d8..8e96579a5b 100644 --- a/core/src/mindustry/entities/bullet/PointLaserBulletType.java +++ b/core/src/mindustry/entities/bullet/PointLaserBulletType.java @@ -75,7 +75,9 @@ public class PointLaserBulletType extends BulletType{ @Override public void update(Bullet b){ - super.update(b); + updateTrail(b); + updateTrailEffects(b); + updateBulletInterval(b); if(b.timer.get(0, damageInterval)){ Damage.collidePoint(b, b.team, hitEffect, b.aimX, b.aimY); @@ -115,4 +117,13 @@ public class PointLaserBulletType extends BulletType{ b.trail.update(b.aimX, b.aimY, b.fslope() * (1f - (trailSinMag > 0 ? Mathf.absin(Time.time, trailSinScl, trailSinMag) : 0f))); } } + + public void updateBulletInterval(Bullet b){ + if(intervalBullet != null && b.time >= intervalDelay && b.timer.get(2, bulletInterval)){ + float ang = b.rotation(); + for(int i = 0; i < intervalBullets; i++){ + intervalBullet.create(b, b.aimX, b.aimY, ang + Mathf.range(intervalRandomSpread) + intervalAngle + ((i - (intervalBullets - 1f)/2f) * intervalSpread)); + } + } + } }