Make Airlock hacking shut power to the entire PowerDevice.
This makes the power device report as "not powered" in the examine tooltip.
This commit is contained in:
@@ -48,13 +48,14 @@ namespace Content.Server.GameObjects.Components.Doors
|
|||||||
{
|
{
|
||||||
_powerWiresPulsed = value;
|
_powerWiresPulsed = value;
|
||||||
UpdateWiresStatus();
|
UpdateWiresStatus();
|
||||||
|
UpdatePowerCutStatus();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void UpdateWiresStatus()
|
private void UpdateWiresStatus()
|
||||||
{
|
{
|
||||||
var powerMessage = "A yellow light is on.";
|
var powerMessage = "A yellow light is on.";
|
||||||
if (_powerWiresPulsed)
|
if (PowerWiresPulsed)
|
||||||
{
|
{
|
||||||
powerMessage = "A yellow light is blinking rapidly.";
|
powerMessage = "A yellow light is blinking rapidly.";
|
||||||
} else if (_wires.IsWireCut(Wires.MainPower) &&
|
} else if (_wires.IsWireCut(Wires.MainPower) &&
|
||||||
@@ -65,6 +66,13 @@ namespace Content.Server.GameObjects.Components.Doors
|
|||||||
_wires.SetStatus(WiresStatus.PowerIndicator, _localizationMgr.GetString(powerMessage));
|
_wires.SetStatus(WiresStatus.PowerIndicator, _localizationMgr.GetString(powerMessage));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void UpdatePowerCutStatus()
|
||||||
|
{
|
||||||
|
_powerDevice.IsPowerCut = PowerWiresPulsed ||
|
||||||
|
_wires.IsWireCut(Wires.MainPower) ||
|
||||||
|
_wires.IsWireCut(Wires.BackupPower);
|
||||||
|
}
|
||||||
|
|
||||||
protected override DoorState State
|
protected override DoorState State
|
||||||
{
|
{
|
||||||
set
|
set
|
||||||
@@ -163,6 +171,7 @@ namespace Content.Server.GameObjects.Components.Doors
|
|||||||
}
|
}
|
||||||
|
|
||||||
UpdateWiresStatus();
|
UpdateWiresStatus();
|
||||||
|
UpdatePowerCutStatus();
|
||||||
}
|
}
|
||||||
|
|
||||||
public override bool CanOpen()
|
public override bool CanOpen()
|
||||||
@@ -186,15 +195,6 @@ namespace Content.Server.GameObjects.Components.Doors
|
|||||||
|
|
||||||
private bool IsPowered()
|
private bool IsPowered()
|
||||||
{
|
{
|
||||||
if (PowerWiresPulsed)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if (_wires.IsWireCut(Wires.MainPower) &&
|
|
||||||
_wires.IsWireCut(Wires.BackupPower))
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
return _powerDevice.Powered;
|
return _powerDevice.Powered;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -76,7 +76,7 @@ namespace Content.Server.GameObjects.Components.Power
|
|||||||
/// Is an internal power source currently available?
|
/// Is an internal power source currently available?
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[ViewVariables]
|
[ViewVariables]
|
||||||
public bool InternalPowered
|
protected bool InternalPowered
|
||||||
{
|
{
|
||||||
get => _internalPowered;
|
get => _internalPowered;
|
||||||
set
|
set
|
||||||
@@ -98,6 +98,17 @@ namespace Content.Server.GameObjects.Components.Power
|
|||||||
}
|
}
|
||||||
private Powernet.Priority _priority = Powernet.Priority.Medium;
|
private Powernet.Priority _priority = Powernet.Priority.Medium;
|
||||||
|
|
||||||
|
[ViewVariables]
|
||||||
|
public bool IsPowerCut
|
||||||
|
{
|
||||||
|
get => _isPowerCut;
|
||||||
|
set
|
||||||
|
{
|
||||||
|
_isPowerCut = value;
|
||||||
|
UpdatePowered();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private float _load = 100; //arbitrary magic number to start
|
private float _load = 100; //arbitrary magic number to start
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Power load from this entity.
|
/// Power load from this entity.
|
||||||
@@ -117,6 +128,7 @@ namespace Content.Server.GameObjects.Components.Power
|
|||||||
|
|
||||||
|
|
||||||
private PowerProviderComponent _provider;
|
private PowerProviderComponent _provider;
|
||||||
|
private bool _isPowerCut;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// A power provider that will handle our load, if we are linked to any
|
/// A power provider that will handle our load, if we are linked to any
|
||||||
@@ -239,7 +251,7 @@ namespace Content.Server.GameObjects.Components.Power
|
|||||||
private void UpdatePowered()
|
private void UpdatePowered()
|
||||||
{
|
{
|
||||||
var oldPowered = Powered;
|
var oldPowered = Powered;
|
||||||
Powered = ExternalPowered || InternalPowered;
|
Powered = !IsPowerCut && (ExternalPowered || InternalPowered);
|
||||||
if (oldPowered != Powered)
|
if (oldPowered != Powered)
|
||||||
{
|
{
|
||||||
if (Powered)
|
if (Powered)
|
||||||
|
|||||||
Reference in New Issue
Block a user