The original method to implement energy shields was to have them fire an anti-projectile weapon. AcceptableAimDelta allows to limit shield coverage (2nd image). However, due to lasers/beams being hitscan weapons, they could penetrate the shields.
If the laser weapon logic is kept unchanged, I imagine a possible solution would be to have a condition which checks start and end point of beam, and cancel the damage if it is within shield weapon's radius. Sounds complicated, though.
Maybe a laser beam logic extension or variant that makes them behave like destroyable projectiles. I imagine hitscan being delayed by one frame, which would be used for the shield zap logic where also the beam would visually get cut off at.
I've titled the issue as "Energy shield projection logic" since it may be done as a new energy shield field behavior, taking future changes in account and wrapping them into it.
Here's code reference and images of the shields (sshots are from old versions):
Behavior = FireWeaponUpdate ModuleTag_23
Weapon = EnergyShieldWeapon
ExclusiveWeaponDelay = 0
End
Weapon EnergyShieldWeapon
PrimaryDamage = 1
PrimaryDamageRadius = 174
SecondaryDamage = 250
SecondaryDamageRadius = 209
AttackRange = 200
DamageType = LASER
DeathType = LASERED
RadiusDamageAffects = ENEMIES NEUTRALS
DelayBetweenShots = 30
AcceptableAimDelta = 180
End


The original method to implement energy shields was to have them fire an anti-projectile weapon.
AcceptableAimDeltaallows to limit shield coverage (2nd image). However, due to lasers/beams being hitscan weapons, they could penetrate the shields.If the laser weapon logic is kept unchanged, I imagine a possible solution would be to have a condition which checks start and end point of beam, and cancel the damage if it is within shield weapon's radius. Sounds complicated, though.
Maybe a laser beam logic extension or variant that makes them behave like destroyable projectiles. I imagine hitscan being delayed by one frame, which would be used for the shield zap logic where also the beam would visually get cut off at.
I've titled the issue as "Energy shield projection logic" since it may be done as a new energy shield field behavior, taking future changes in account and wrapping them into it.
Here's code reference and images of the shields (sshots are from old versions):