class HeadtorchLight extends SpotLightBase { private static float m_DefaultBrightness = 3; private static float m_DefaultRadius = 20; void HeadtorchLight() { SetVisibleDuringDaylight( true ); SetRadiusTo( m_DefaultRadius ); SetSpotLightAngle( 95 ); SetCastShadow( true ); FadeIn( 0.06 ); SetBrightnessTo( m_DefaultBrightness ); SetAmbientColor( 0.92, 0.85, 0.58 ); SetDiffuseColor( 0.92, 0.85, 0.58 ); SetFadeOutTime( 0.1 ); //SetDisableShadowsWithinRadius(0.25); // Idea for optimization: Uncomment this to disable shadows from Headtorch while it's on player's head during 1P view. } void SetColorToWhite() { SetAmbientColor( 0.92, 0.85, 0.86 ); SetDiffuseColor( 0.92, 0.85, 0.86 ); } void SetColorToRed() { SetAmbientColor( 1.0, 0.2, 0.2 ); SetDiffuseColor( 1.0, 0.2, 0.2 ); } void SetIntensity( float coef, float time ) { FadeBrightnessTo( m_DefaultBrightness * coef, time ); FadeRadiusTo( m_DefaultRadius * coef, time ); } void PerformVisibilityCheck(EntityAI owner) { if (!owner.IsFlagSet(EntityFlags.VISIBLE) && IsEnabled()) { SetEnabled(false); } else if (owner.IsFlagSet(EntityFlags.VISIBLE) && !IsEnabled()) { SetEnabled(true); } } }