]> git.smokeofanarchy.ru Git - space-station-14.git/commitdiff
Blind (permanent, temporary or blindfolded) players no longer get flashed (#14487)
authorNaive817 <31364560+Naive817@users.noreply.github.com>
Mon, 13 Mar 2023 04:03:51 +0000 (12:03 +0800)
committerGitHub <noreply@github.com>
Mon, 13 Mar 2023 04:03:51 +0000 (00:03 -0400)
Content.Server/Flash/FlashSystem.cs
Resources/Prototypes/Entities/Clothing/Eyes/misc.yml

index 666b2b257a82f167a90ba38e34e2d6836141b4ce..b10864b829239a747694e7d4faf5af47f8454e94 100644 (file)
@@ -3,6 +3,7 @@ using Content.Server.Flash.Components;
 using Content.Server.Light.EntitySystems;
 using Content.Server.Stunnable;
 using Content.Shared.Examine;
+using Content.Shared.Eye.Blinding;
 using Content.Shared.Flash;
 using Content.Shared.IdentityManagement;
 using Content.Shared.Interaction;
@@ -11,6 +12,7 @@ using Content.Shared.Inventory;
 using Content.Shared.Physics;
 using Content.Shared.Popups;
 using Content.Shared.Tag;
+using Content.Shared.Traits.Assorted;
 using Content.Shared.Weapons.Melee.Events;
 using Robust.Server.GameObjects;
 using Robust.Shared.Audio;
@@ -40,6 +42,8 @@ namespace Content.Server.Flash
             SubscribeLocalEvent<InventoryComponent, FlashAttemptEvent>(OnInventoryFlashAttempt);
 
             SubscribeLocalEvent<FlashImmunityComponent, FlashAttemptEvent>(OnFlashImmunityFlashAttempt);
+            SubscribeLocalEvent<PermanentBlindnessComponent, FlashAttemptEvent>(OnPermanentBlindnessFlashAttempt);
+            SubscribeLocalEvent<TemporaryBlindnessComponent, FlashAttemptEvent>(OnTemporaryBlindnessFlashAttempt);
         }
 
         private void OnFlashMeleeHit(EntityUid uid, FlashComponent comp, MeleeHitEvent args)
@@ -192,6 +196,16 @@ namespace Content.Server.Flash
             if(component.Enabled)
                 args.Cancel();
         }
+
+        private void OnPermanentBlindnessFlashAttempt(EntityUid uid, PermanentBlindnessComponent component, FlashAttemptEvent args)
+        {
+            args.Cancel();
+        }
+
+        private void OnTemporaryBlindnessFlashAttempt(EntityUid uid, TemporaryBlindnessComponent component, FlashAttemptEvent args)
+        {
+            args.Cancel();
+        }
     }
 
     public sealed class FlashAttemptEvent : CancellableEntityEventArgs
index a213a06afca377db8c9209f7adc4a8288db48987..06ff3471727f556a1d28eeef0456887e0add4982 100644 (file)
@@ -25,3 +25,4 @@
   - type: Construction
     graph: Blindfold
     node: blindfold
+  - type: FlashImmunity