]> git.smokeofanarchy.ru Git - space-station-14.git/commitdiff
Fix changeling blindness (#40517)
authorslarticodefast <161409025+slarticodefast@users.noreply.github.com>
Thu, 9 Oct 2025 05:03:11 +0000 (07:03 +0200)
committerGitHub <noreply@github.com>
Thu, 9 Oct 2025 05:03:11 +0000 (05:03 +0000)
fix changeling blindness

Content.Shared/Traits/Assorted/PermanentBlindnessSystem.cs

index a99a12d0fd5b76fd245b7a8dbafdb881aae51fd6..e060de7dd9279e108b5b0bc8a0ced0a5218d9be6 100644 (file)
@@ -2,7 +2,6 @@
 using Content.Shared.Eye.Blinding.Components;
 using Content.Shared.Eye.Blinding.Systems;
 using Content.Shared.IdentityManagement;
-using Robust.Shared.Network;
 
 namespace Content.Shared.Traits.Assorted;
 
@@ -38,18 +37,23 @@ public sealed class PermanentBlindnessSystem : EntitySystem
         {
             _blinding.SetMinDamage((blindness.Owner, blindable), 0);
         }
+
+        // Heal all eye damage when the component is removed.
+        // Otherwise you would still be blind, but not *permanently* blind, meaning you have to heal the eye damage with oculine.
+        // This is needed for changelings that transform from a blind player to a non-blind one.
+        _blinding.AdjustEyeDamage((blindness.Owner, blindable), -blindable.EyeDamage);
     }
 
     private void OnMapInit(Entity<PermanentBlindnessComponent> blindness, ref MapInitEvent args)
     {
-        if(!TryComp<BlindableComponent>(blindness.Owner, out var blindable))
+        if (!TryComp<BlindableComponent>(blindness.Owner, out var blindable))
             return;
 
         if (blindness.Comp.Blindness != 0)
             _blinding.SetMinDamage((blindness.Owner, blindable), blindness.Comp.Blindness);
         else
         {
-            var maxMagnitudeInt = (int) BlurryVisionComponent.MaxMagnitude;
+            var maxMagnitudeInt = (int)BlurryVisionComponent.MaxMagnitude;
             _blinding.SetMinDamage((blindness.Owner, blindable), maxMagnitudeInt);
         }
     }