Shootpattern allow replacing per bullet (ammo type support) (#11402)

This commit is contained in:
EggleEgg 2025-11-30 18:04:44 +01:00 committed by GitHub
parent da6aecf695
commit a0fe9e8415
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 6 additions and 1 deletions

View file

@ -15,6 +15,7 @@ import mindustry.content.*;
import mindustry.ctype.*;
import mindustry.entities.*;
import mindustry.entities.part.*;
import mindustry.entities.pattern.*;
import mindustry.game.EventType.*;
import mindustry.game.*;
import mindustry.gen.*;
@ -72,6 +73,8 @@ public class BulletType extends Content implements Cloneable{
public Effect despawnEffect = Fx.hitBulletSmall;
/** Effect created when shooting. */
public Effect shootEffect = Fx.shootSmall;
/** Pattern used to shoot this bullet. If null, uses turret's default pattern. */
public @Nullable ShootPattern shootPattern = null;
/** Effect created when charging starts; only usable in single-shot weapons with a firstShotDelay / shotDelay. */
public Effect chargeEffect = Fx.none;
/** Extra smoke effect created when shooting. */

View file

@ -705,7 +705,9 @@ public class Turret extends ReloadTurret{
type.chargeEffect.at(bulletX, bulletY, rotation);
}
shoot.shoot(barrelCounter, (xOffset, yOffset, angle, delay, mover) -> {
ShootPattern pattern = type.shootPattern != null ? type.shootPattern : shoot;
pattern.shoot(barrelCounter, (xOffset, yOffset, angle, delay, mover) -> {
queuedBullets++;
int barrel = barrelCounter;