Added "VulnerableToEMP" property to Powered. Can be edited in sub editor. Reactors and relays are not affected by EMP by default. Closes #495
This commit is contained in:
@@ -261,7 +261,7 @@
|
||||
|
||||
<Sprite texture="signalcomp.png" depth="0.8" sourcerect="48,16,16,16"/>
|
||||
|
||||
<RelayComponent canbeselected = "true">
|
||||
<RelayComponent canbeselected="true" vulnerabletoemp="false">
|
||||
<GuiFrame rect="0,0,200,160" alignment="Center" style="ItemUI"/>
|
||||
</RelayComponent>
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
|
||||
<Sprite texture = "reactor.png" sourcerect="0,0,321,192" depth="0.8"/>
|
||||
|
||||
<Reactor canbeselected = "true">
|
||||
<Reactor canbeselected="true" vulnerabletoemp="false">
|
||||
<GuiFrame rect="0,0,760,460" alignment="Center" style="ItemUI"/>
|
||||
<RequiredSkill name="Construction" level="30"/>
|
||||
<StatusEffect type="InWater" target="This" Temperature="-500.0"/>
|
||||
|
||||
@@ -33,8 +33,7 @@ namespace Barotrauma.Items.Components
|
||||
get { return powerConsumption; }
|
||||
set { powerConsumption = value; }
|
||||
}
|
||||
|
||||
|
||||
|
||||
[Serialize(false, true)]
|
||||
public override bool IsActive
|
||||
{
|
||||
@@ -60,6 +59,13 @@ namespace Barotrauma.Items.Components
|
||||
set { voltage = Math.Max(0.0f, value); }
|
||||
}
|
||||
|
||||
[Editable(ToolTip = "Can the item be damaged by electomagnetic pulses."), Serialize(true, true)]
|
||||
public bool VulnerableToEMP
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
public Powered(Item item, XElement element)
|
||||
: base(item, element)
|
||||
{
|
||||
|
||||
@@ -78,15 +78,13 @@ namespace Barotrauma
|
||||
{
|
||||
float distSqr = Vector2.DistanceSquared(item.WorldPosition, worldPosition);
|
||||
if (distSqr > displayRangeSqr) continue;
|
||||
|
||||
//ignore reactors (don't want to blow them up)
|
||||
if (item.GetComponent<Reactor>() != null) continue;
|
||||
|
||||
|
||||
float distFactor = 1.0f - (float)Math.Sqrt(distSqr) / displayRange;
|
||||
|
||||
//damage repairable power-consuming items
|
||||
var powerTransfer = item.GetComponent<Powered>();
|
||||
if (powerTransfer != null && item.FixRequirements.Count > 0)
|
||||
var powered = item.GetComponent<Powered>();
|
||||
if (powered == null || !powered.VulnerableToEMP) continue;
|
||||
if (item.FixRequirements.Count > 0)
|
||||
{
|
||||
item.Condition -= 100 * empStrength * distFactor;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user