Fixed flare lightcomponent staying active after the flare burns out, OnActive statuseffects are applied to lightcomponents even if the item is inside an inventory/container (= flares won't stop burning if placed back to inventory)

This commit is contained in:
Regalis
2016-05-26 16:08:55 +03:00
parent 310e85fd8c
commit 7aa1b44cae
2 changed files with 7 additions and 6 deletions

View File

@@ -266,14 +266,15 @@
<Throwable slots="Any,RightHand,LeftHand" holdpos="0,0" handle1="0,0" throwforce="4.0" aimpos="35,-10"/>
<LightComponent LightColor="1.0,0.0,0.0,1.0" Flicker="0.5" range="600" IsOn="false">
<sprite texture="Content/Lights/light.png" sourcerect="33,0,31,39"/>
<StatusEffect type="OnUse" target="This" IsOn="true"/>
<StatusEffect type="OnActive" target="This" Condition="-0.5">
<StatusEffect type="OnActive" target="This" Condition="-5.0">
<ParticleEmitter particle="flare"/>
<ParticleEmitter particle="bubbles"/>
</StatusEffect>
<StatusEffect type="OnBroken" target="This" IsOn="false"/>
<sound file="flare.ogg" type="OnActive" range="800.0" loop="true"/>
</LightComponent>
</Item>

View File

@@ -123,6 +123,8 @@ namespace Barotrauma.Items.Components
light.Submarine = item.Submarine;
ApplyStatusEffects(ActionType.OnActive, deltaTime);
if (item.Container != null)
{
light.Color = Color.Transparent;
@@ -158,8 +160,6 @@ namespace Barotrauma.Items.Components
else
{
lightBrightness = MathHelper.Lerp(lightBrightness, Math.Min(voltage, 1.0f), 0.1f);
ApplyStatusEffects(ActionType.OnActive, deltaTime);
}
light.Color = lightColor * lightBrightness * (1.0f-Rand.Range(0.0f,Flicker));
@@ -167,7 +167,7 @@ namespace Barotrauma.Items.Components
voltage = 0.0f;
}
public override bool Use(float deltaTime, Character character = null)
{
return true;