Fix falsely showing damage color effect to entities that aren't allowed to be attacked (#30661)

This commit is contained in:
DrSmugleaf
2024-08-04 20:14:01 -07:00
committed by GitHub
parent d87d9c4676
commit 84a9253b10

View File

@@ -625,14 +625,18 @@ public abstract class SharedMeleeWeaponSystem : EntitySystem
var appliedDamage = new DamageSpecifier();
foreach (var entity in targets)
for (var i = targets.Count - 1; i >= 0; i--)
{
var entity = targets[i];
// We raise an attack attempt here as well,
// primarily because this was an untargeted wideswing: if a subscriber to that event cared about
// the potential target (such as for pacifism), they need to be made aware of the target here.
// In that case, just continue.
if (!Blocker.CanAttack(user, entity, (weapon, component)))
{
targets.RemoveAt(i);
continue;
}
var attackedEvent = new AttackedEvent(meleeUid, user, GetCoordinates(ev.Coordinates));
RaiseLocalEvent(entity, attackedEvent);