iw6-scripts/maps/_lights.gsc
2024-02-13 13:20:49 +01:00

1116 lines
28 KiB
Plaintext

// IW6 GSC SOURCE
// Generated by https://github.com/xensik/gsc-tool
init()
{
var_0 = getentarray( "generic_flickering", "targetname" );
var_1 = getentarray( "generic_pulsing", "targetname" );
var_2 = getentarray( "generic_double_strobe", "targetname" );
var_3 = getentarray( "burning_trash_fire", "targetname" );
var_4 = getentarray( "scripted_light", "targetname" );
common_scripts\utility::array_thread( var_0, ::generic_flickering );
common_scripts\utility::array_thread( var_1, ::generic_pulsing );
common_scripts\utility::array_thread( var_2, ::generic_double_strobe );
common_scripts\utility::array_thread( var_3, ::burning_trash_fire );
common_scripts\utility::array_thread( var_4, ::init_scripted_light );
}
is_light_entity( var_0 )
{
return var_0.classname == "light_spot" || var_0.classname == "light_omni" || var_0.classname == "light";
}
flickerlight( var_0, var_1, var_2, var_3 )
{
self endon( "kill_flicker" );
var_4 = var_0;
var_5 = 0.0;
maps\_utility::ent_flag_init( "stop_flicker" );
for (;;)
{
if ( maps\_utility::ent_flag( "stop_flicker" ) )
{
wait 0.05;
continue;
}
var_6 = var_4;
var_4 = var_0 + ( var_1 - var_0 ) * randomfloat( 1.0 );
if ( var_2 != var_3 )
var_5 = var_5 + randomfloatrange( var_2, var_3 );
else
var_5 = var_5 + var_2;
if ( var_5 == 0 )
var_5 = var_5 + 0.0000001;
for ( var_7 = ( var_6 - var_4 ) * ( 1 / var_5 ); var_5 > 0 && !maps\_utility::ent_flag( "stop_flicker" ); var_5 = var_5 - 0.05 )
{
self setlightcolor( var_4 + var_7 * var_5 );
wait 0.05;
}
}
}
kill_flicker_when_damaged( var_0 )
{
var_1 = getentarray( var_0, "script_noteworthy" );
var_2 = undefined;
var_3 = 100000000.0;
foreach ( var_5 in var_1 )
{
var_6 = distance( self.origin, var_5.origin );
if ( var_6 < var_3 )
{
var_2 = var_5;
var_3 = var_6;
}
}
if ( isdefined( var_2 ) )
{
var_2 waittill( "damage", var_8, var_9, var_10, var_11, var_12, var_13, var_14 );
self notify( "kill_flicker" );
wait 0.05;
self setlightcolor( ( 0, 0, 0 ) );
}
}
generic_pulsing()
{
if ( getdvar( "r_reflectionProbeGenerate" ) == "1" )
{
self setlightintensity( 0 );
return;
}
var_0 = self getlightintensity();
var_1 = 0.05;
var_2 = var_0;
var_3 = 0.3;
var_4 = 0.6;
var_5 = ( var_0 - var_1 ) / ( var_3 / 0.05 );
var_6 = ( var_0 - var_1 ) / ( var_4 / 0.05 );
for (;;)
{
var_7 = 0;
while ( var_7 < var_4 )
{
var_2 = var_2 - var_6;
var_2 = clamp( var_2, 0, 100 );
self setlightintensity( var_2 );
var_7 = var_7 + 0.05;
wait 0.05;
}
wait 1;
var_7 = 0;
while ( var_7 < var_3 )
{
var_2 = var_2 + var_5;
var_2 = clamp( var_2, 0, 100 );
self setlightintensity( var_2 );
var_7 = var_7 + 0.05;
wait 0.05;
}
wait 0.5;
}
}
generic_double_strobe()
{
if ( getdvar( "r_reflectionProbeGenerate" ) == "1" )
{
self setlightintensity( 0 );
return;
}
var_0 = self getlightintensity();
var_1 = 0.05;
var_2 = 0;
var_3 = undefined;
var_4 = undefined;
var_5 = 0;
var_6 = [];
if ( isdefined( self.script_noteworthy ) )
{
var_7 = getentarray( self.script_noteworthy, "targetname" );
for ( var_8 = 0; var_8 < var_7.size; var_8++ )
{
if ( is_light_entity( var_7[var_8] ) )
{
var_5 = 1;
var_6[var_6.size] = var_7[var_8];
}
if ( var_7[var_8].classname == "script_model" )
{
var_3 = var_7[var_8];
var_4 = getent( var_3.target, "targetname" );
var_2 = 1;
}
}
}
for (;;)
{
self setlightintensity( var_1 );
if ( var_2 )
{
var_3 hide();
var_4 show();
}
wait 0.8;
self setlightintensity( var_0 );
if ( var_2 )
{
var_3 show();
var_4 hide();
}
wait 0.1;
self setlightintensity( var_1 );
if ( var_2 )
{
var_3 hide();
var_4 show();
}
wait 0.12;
self setlightintensity( var_0 );
if ( var_2 )
{
var_3 show();
var_4 hide();
}
wait 0.1;
}
}
getclosests_flickering_model( var_0 )
{
var_1 = getentarray( "light_flicker_model", "targetname" );
var_2 = [];
var_3 = common_scripts\utility::getclosest( var_0, var_1 );
if ( isdefined( var_3 ) )
var_2[0] = var_3;
return var_2;
}
generic_flickering()
{
if ( getdvar( "r_reflectionProbeGenerate" ) == "1" )
{
self setlightintensity( 0 );
return;
}
self endon( "stop_dynamic_light_behavior" );
self endon( "death" );
self.linked_models = 0;
self.lit_models = undefined;
self.unlit_models = undefined;
self.linked_lights = 0;
self.linked_light_ents = [];
self.linked_prefab_ents = undefined;
self.linked_things = [];
if ( isdefined( self.script_linkto ) )
{
self.linked_prefab_ents = common_scripts\utility::get_linked_ents();
foreach ( var_1 in self.linked_prefab_ents )
{
if ( isdefined( var_1.script_noteworthy ) && var_1.script_noteworthy == "on" )
{
if ( !isdefined( self.lit_models ) )
self.lit_models[0] = var_1;
else
self.lit_models[self.lit_models.size] = var_1;
continue;
}
if ( isdefined( var_1.script_noteworthy ) && var_1.script_noteworthy == "off" )
{
if ( !isdefined( self.unlit_models ) )
self.unlit_models[0] = var_1;
else
self.unlit_models[self.unlit_models.size] = var_1;
self.unlit_model = var_1;
continue;
}
if ( is_light_entity( var_1 ) )
{
self.linked_lights = 1;
self.linked_light_ents[self.linked_light_ents.size] = var_1;
}
}
self.linked_models = 1;
}
if ( isdefined( self.script_noteworthy ) )
self.linked_things = getentarray( self.script_noteworthy, "targetname" );
if ( !self.linked_things.size && !isdefined( self.linked_prefab_ents ) )
self.linked_things = getclosests_flickering_model( self.origin );
for ( var_3 = 0; var_3 < self.linked_things.size; var_3++ )
{
if ( is_light_entity( self.linked_things[var_3] ) )
{
self.linked_lights = 1;
self.linked_light_ents[self.linked_light_ents.size] = self.linked_things[var_3];
}
if ( self.linked_things[var_3].classname == "script_model" )
{
var_4 = self.linked_things[var_3];
if ( !isdefined( self.lit_models ) )
self.lit_models[0] = var_4;
else
self.lit_models[self.lit_models.size] = var_4;
if ( !isdefined( self.unlit_models ) )
self.unlit_models[0] = getent( var_4.target, "targetname" );
else
self.unlit_models[self.unlit_models.size] = getent( var_4.target, "targetname" );
self.linked_models = 1;
}
}
if ( isdefined( self.lit_models ) )
{
foreach ( var_4 in self.lit_models )
{
if ( isdefined( var_4 ) && isdefined( var_4.script_fxid ) )
{
var_4.effect = common_scripts\utility::createoneshoteffect( var_4.script_fxid );
var_6 = ( 0, 0, 0 );
var_7 = ( 0, 0, 0 );
if ( isdefined( var_4.script_parameters ) )
{
var_8 = strtok( var_4.script_parameters, ", " );
if ( var_8.size < 3 )
{
}
else if ( var_8.size == 6 )
{
var_9 = float( var_8[0] );
var_10 = float( var_8[1] );
var_11 = float( var_8[2] );
var_6 = ( var_9, var_10, var_11 );
var_9 = float( var_8[3] );
var_10 = float( var_8[4] );
var_11 = float( var_8[5] );
var_7 = ( var_9, var_10, var_11 );
}
else
{
var_9 = float( var_8[0] );
var_10 = float( var_8[1] );
var_11 = float( var_8[2] );
var_6 = ( var_9, var_10, var_11 );
}
}
var_4.effect.v["origin"] = var_4.origin + var_6;
var_4.effect.v["angles"] = var_4.angles + var_7;
}
}
}
thread generic_flicker_msg_watcher();
thread generic_flicker();
}
generic_flicker_msg_watcher()
{
maps\_utility::ent_flag_init( "flicker_on" );
if ( isdefined( self.script_light_startnotify ) && self.script_light_startnotify != "nil" )
{
for (;;)
{
level waittill( self.script_light_startnotify );
maps\_utility::ent_flag_set( "flicker_on" );
if ( isdefined( self.script_light_stopnotify ) && self.script_light_stopnotify != "nil" )
{
level waittill( self.script_light_stopnotify );
maps\_utility::ent_flag_clear( "flicker_on" );
}
}
}
else
maps\_utility::ent_flag_set( "flicker_on" );
}
generic_flicker_pause()
{
var_0 = self getlightintensity();
if ( !maps\_utility::ent_flag( "flicker_on" ) )
{
if ( self.linked_models )
{
if ( isdefined( self.lit_models ) )
{
foreach ( var_2 in self.lit_models )
{
var_2 hide();
if ( isdefined( var_2.effect ) )
var_2.effect common_scripts\utility::pauseeffect();
}
}
if ( isdefined( self.unlit_models ) )
{
foreach ( var_5 in self.unlit_models )
var_5 show();
}
}
self setlightintensity( 0 );
if ( self.linked_lights )
{
for ( var_7 = 0; var_7 < self.linked_light_ents.size; var_7++ )
self.linked_light_ents[var_7] setlightintensity( 0 );
}
maps\_utility::ent_flag_wait( "flicker_on" );
self setlightintensity( var_0 );
if ( self.linked_lights )
{
for ( var_7 = 0; var_7 < self.linked_light_ents.size; var_7++ )
self.linked_light_ents[var_7] setlightintensity( var_0 );
}
if ( self.linked_models )
{
if ( isdefined( self.lit_models ) )
{
foreach ( var_2 in self.lit_models )
{
var_2 show();
if ( isdefined( var_2.effect ) )
var_2.effect maps\_utility::restarteffect();
}
}
if ( isdefined( self.unlit_models ) )
{
foreach ( var_5 in self.unlit_models )
var_5 hide();
}
}
}
}
generic_flicker()
{
self endon( "stop_dynamic_light_behavior" );
self endon( "death" );
var_0 = 0.2;
var_1 = 1.5;
var_2 = self getlightintensity();
var_3 = 0;
var_4 = var_2;
var_5 = 0;
while ( isdefined( self ) )
{
generic_flicker_pause();
for ( var_5 = randomintrange( 1, 10 ); var_5; var_5-- )
{
generic_flicker_pause();
wait( randomfloatrange( 0.05, 0.1 ) );
if ( var_4 > 0.2 )
{
var_4 = randomfloatrange( 0, 0.3 );
if ( self.linked_models )
{
foreach ( var_7 in self.lit_models )
{
var_7 hide();
if ( isdefined( var_7.effect ) )
var_7.effect common_scripts\utility::pauseeffect();
}
}
if ( isdefined( self.unlit_models ) )
{
foreach ( var_10 in self.unlit_models )
var_10 show();
}
}
else
{
var_4 = var_2;
if ( self.linked_models )
{
if ( isdefined( self.lit_models ) )
{
foreach ( var_7 in self.lit_models )
{
var_7 show();
if ( isdefined( var_7.effect ) )
var_7.effect maps\_utility::restarteffect();
}
}
if ( isdefined( self.unlit_models ) )
{
foreach ( var_10 in self.unlit_models )
var_10 hide();
}
}
}
self setlightintensity( var_4 );
if ( self.linked_lights )
{
for ( var_16 = 0; var_16 < self.linked_light_ents.size; var_16++ )
self.linked_light_ents[var_16] setlightintensity( var_4 );
}
}
generic_flicker_pause();
self setlightintensity( var_2 );
if ( self.linked_lights )
{
for ( var_16 = 0; var_16 < self.linked_light_ents.size; var_16++ )
self.linked_light_ents[var_16] setlightintensity( var_2 );
}
if ( self.linked_models )
{
if ( isdefined( self.lit_models ) )
{
foreach ( var_7 in self.lit_models )
{
var_7 show();
if ( isdefined( var_7.effect ) )
var_7.effect maps\_utility::restarteffect();
}
}
if ( isdefined( self.unlit_models ) )
{
foreach ( var_10 in self.unlit_models )
var_10 hide();
}
}
wait( randomfloatrange( var_0, var_1 ) );
}
}
generic_spot()
{
for (;;)
level common_scripts\utility::waitframe();
}
flickerlightintensity( var_0, var_1 )
{
var_2 = self getlightintensity();
var_3 = 0;
var_4 = var_2;
var_5 = 0;
for (;;)
{
for ( var_5 = randomintrange( 1, 10 ); var_5; var_5-- )
{
wait( randomfloatrange( 0.05, 0.1 ) );
if ( var_4 > 0.2 )
var_4 = randomfloatrange( 0, 0.3 );
else
var_4 = var_2;
self setlightintensity( var_4 );
}
self setlightintensity( var_2 );
wait( randomfloatrange( var_0, var_1 ) );
}
}
burning_trash_fire()
{
if ( getdvar( "r_reflectionProbeGenerate" ) == "1" )
{
self setlightintensity( 0 );
return;
}
var_0 = self getlightintensity();
var_1 = var_0;
for (;;)
{
var_2 = randomfloatrange( var_0 * 0.7, var_0 * 1.2 );
var_3 = randomfloatrange( 0.3, 0.6 );
var_3 = var_3 * 20;
for ( var_4 = 0; var_4 < var_3; var_4++ )
{
var_5 = var_2 * ( var_4 / var_3 ) + var_1 * ( ( var_3 - var_4 ) / var_3 );
self setlightintensity( var_5 );
wait 0.05;
}
var_1 = var_2;
}
}
strobelight( var_0, var_1, var_2, var_3 )
{
var_4 = 360 / var_2;
var_5 = 0;
for (;;)
{
var_6 = sin( var_5 * var_4 ) * 0.5 + 0.5;
self setlightintensity( var_0 + ( var_1 - var_0 ) * var_6 );
wait 0.05;
var_5 = var_5 + 0.05;
if ( var_5 > var_2 )
var_5 = var_5 - var_2;
if ( isdefined( var_3 ) )
{
if ( common_scripts\utility::flag( var_3 ) )
return;
}
}
}
changelightcolorto( var_0, var_1, var_2, var_3 )
{
if ( !isdefined( var_2 ) )
var_2 = 0;
if ( !isdefined( var_3 ) )
var_3 = 0;
thread changelightcolortoworkerthread( var_0, var_1, var_2, var_3 );
}
changelightcolortoworkerthread( var_0, var_1, var_2, var_3 )
{
var_4 = self getlightcolor();
var_5 = 1 / ( var_1 * 2 - ( var_2 + var_3 ) );
var_6 = 0;
if ( var_6 < var_2 )
{
for ( var_7 = var_5 / var_2; var_6 < var_2; var_6 = var_6 + 0.05 )
{
var_8 = var_7 * var_6 * var_6;
self setlightcolor( vectorlerp( var_4, var_0, var_8 ) );
wait 0.05;
}
}
while ( var_6 < var_1 - var_3 )
{
var_8 = var_5 * ( 2 * var_6 - var_2 );
self setlightcolor( vectorlerp( var_4, var_0, var_8 ) );
wait 0.05;
var_6 = var_6 + 0.05;
}
var_6 = var_1 - var_6;
if ( var_6 > 0 )
{
for ( var_7 = var_5 / var_3; var_6 > 0; var_6 = var_6 - 0.05 )
{
var_8 = 1 - var_7 * var_6 * var_6;
self setlightcolor( vectorlerp( var_4, var_0, var_8 ) );
wait 0.05;
}
}
self setlightcolor( var_0 );
}
television()
{
thread tv_changes_intensity();
thread tv_changes_color();
}
tv_changes_intensity()
{
self endon( "light_off" );
var_0 = self getlightintensity();
var_1 = var_0;
for (;;)
{
var_2 = randomfloatrange( var_0 * 0.7, var_0 * 1.2 );
var_3 = randomfloatrange( 0.3, 1.2 );
var_3 = var_3 * 20;
for ( var_4 = 0; var_4 < var_3; var_4++ )
{
var_5 = var_2 * ( var_4 / var_3 ) + var_1 * ( ( var_3 - var_4 ) / var_3 );
self setlightintensity( var_5 );
wait 0.05;
}
var_1 = var_2;
}
}
tv_changes_color()
{
self endon( "light_off" );
var_0 = 0.5;
var_1 = 0.5;
var_2 = [];
var_3 = [];
for ( var_4 = 0; var_4 < 3; var_4++ )
{
var_2[var_4] = 0;
var_3[var_4] = 0;
}
for (;;)
{
for ( var_4 = 0; var_4 < var_2.size; var_4++ )
{
var_3[var_4] = var_2[var_4];
var_2[var_4] = randomfloat( var_0 ) + var_1;
}
var_5 = randomfloatrange( 0.3, 1.2 );
var_5 = var_5 * 20;
for ( var_4 = 0; var_4 < var_5; var_4++ )
{
var_6 = [];
for ( var_7 = 0; var_7 < var_2.size; var_7++ )
var_6[var_7] = var_2[var_7] * ( var_4 / var_5 ) + var_3[var_7] * ( ( var_5 - var_4 ) / var_5 );
self setlightcolor( ( var_6[0], var_6[1], var_6[2] ) );
wait 0.05;
}
}
}
sun_shadow_trigger( var_0 )
{
var_1 = 1;
if ( isdefined( var_0.script_duration ) )
var_1 = var_0.script_duration;
for (;;)
{
var_0 waittill( "trigger", var_2 );
var_0 set_sun_shadow_params( var_1 );
}
}
set_sun_shadow_params( var_0 )
{
var_1 = getdvarint( "sm_sunenable", 1 );
var_2 = getdvarfloat( "sm_sunshadowscale", 1.0 );
var_3 = getdvarint( "sm_spotlimit", 4 );
var_4 = getdvarfloat( "sm_sunsamplesizenear", 0.25 );
var_5 = getdvarfloat( "sm_qualityspotshadow", 1.0 );
if ( isdefined( self.script_sunenable ) )
var_1 = self.script_sunenable;
if ( isdefined( self.script_sunshadowscale ) )
var_2 = self.script_sunshadowscale;
if ( isdefined( self.script_spotlimit ) )
var_3 = self.script_spotlimit;
if ( isdefined( self.script_sunsamplesizenear ) )
var_4 = self.script_sunsamplesizenear;
var_4 = min( max( 0.016, var_4 ), 32 );
if ( isdefined( self.script_qualityspotshadow ) )
var_5 = self.script_qualityspotshadow;
var_6 = getdvarint( "sm_sunenable", 1 );
var_7 = getdvarfloat( "sm_sunshadowscale", 1.0 );
var_8 = getdvarint( "sm_spotlimit", 4 );
var_9 = getdvarint( "sm_qualityspotshadow", 1.0 );
setsaveddvar( "sm_sunenable", var_1 );
setsaveddvar( "sm_sunshadowscale", var_2 );
setsaveddvar( "sm_spotlimit", var_3 );
setsaveddvar( "sm_qualityspotshadow", var_5 );
lerp_sunsamplesizenear_overtime( var_4, var_0 );
}
lerp_sunsamplesizenear_overtime( var_0, var_1 )
{
level notify( "changing_sunsamplesizenear" );
level endon( "changing_sunsamplesizenear" );
var_2 = getdvarfloat( "sm_sunSampleSizeNear", 0.25 );
if ( var_0 == var_2 )
return;
var_3 = var_0 - var_2;
var_4 = var_1 / 0.05;
if ( var_4 > 0 )
{
var_5 = var_3 / var_4;
var_6 = var_2;
for ( var_7 = 0; var_7 < var_4; var_7++ )
{
var_6 = var_6 + var_5;
setsaveddvar( "sm_sunSampleSizeNear", var_6 );
wait 0.05;
}
}
setsaveddvar( "sm_sunSampleSizeNear", var_0 );
}
init_scripted_light()
{
init_linked_ents();
init_light_def();
}
init_linked_ents()
{
self.lit_models = [];
self.unlit_models = [];
self.linked_lights = [];
if ( isdefined( self.target ) )
{
var_0 = getentarray( self.target, "targetname" );
if ( var_0.size == 0 )
return;
foreach ( var_2 in var_0 )
{
if ( is_light_entity( var_2 ) )
{
self.linked_lights[self.linked_lights.size] = var_2;
var_2 init_linked_ents();
continue;
}
var_3 = 1;
if ( isdefined( var_2.script_noteworthy ) )
{
if ( var_2.script_noteworthy == "on" )
{
var_3 = 0;
init_lit_model( var_2 );
}
else if ( var_2.script_noteworthy == "off" )
{
var_3 = 0;
self.unlit_models[self.unlit_models.size] = var_2;
}
}
if ( var_3 )
{
init_lit_model( var_2 );
var_4 = getentarray( var_2.target, "targetname" );
foreach ( var_6 in var_4 )
self.unlit_models[self.unlit_models.size] = var_6;
}
}
foreach ( var_2 in self.lit_models )
var_2.visible = 1;
foreach ( var_2 in self.unlit_models )
{
var_2.visible = 0;
var_2 hide();
}
}
}
init_lit_model( var_0 )
{
self.lit_models[self.lit_models.size] = var_0;
var_1 = undefined;
var_2 = undefined;
var_3 = undefined;
if ( isdefined( var_0.script_fxid ) )
{
var_1 = self.script_fxid;
var_2 = var_0.origin;
var_3 = var_0.angles;
}
else if ( isdefined( var_0.target ) )
{
var_4 = common_scripts\utility::getstruct( var_0.target, "targetname" );
if ( isdefined( var_4 ) && isdefined( var_4.script_fxid ) )
{
var_1 = var_4.script_fxid;
var_2 = var_4.origin;
var_3 = ( 0, 0, 0 );
if ( isdefined( var_4.angles ) )
var_3 = var_4.angles;
}
}
if ( isdefined( var_1 ) )
{
var_0.effect = common_scripts\utility::createoneshoteffect( var_1 );
var_0.effect.v["origin"] = var_2;
var_0.effect.v["angles"] = var_3;
}
}
pulse_think()
{
self endon( "stop_scripted_light" );
self endon( "death" );
for (;;)
{
maps\_utility::script_wait();
var_0 = self.script_intensity_min;
var_1 = self.script_intensity_min + ( self.script_intensity_max - self.script_intensity_min ) * 0.4;
var_2 = self.script_intensity_max - ( self.script_intensity_max - self.script_intensity_min ) * 0.4;
var_3 = self.script_intensity_max;
var_4 = randomintrange( self.script_count_min, self.script_count_max );
for ( var_5 = 0; var_5 < var_4; var_5++ )
{
var_6 = randomfloatrange( var_0, var_1 );
lerp_intensity( var_6, get_delay() );
maps\_utility::script_delay();
var_6 = randomfloatrange( var_2, var_3 );
lerp_intensity( var_6, get_delay() );
}
lerp_intensity( self.script_intensity_max, get_delay() );
}
}
lerp_intensity( var_0, var_1 )
{
var_2 = int( var_1 * 20 );
var_3 = self getlightintensity();
var_4 = ( var_0 - var_3 ) / var_2;
for ( var_5 = 0; var_5 < var_2; var_5++ )
{
thread handle_linked_ents( var_0 );
self setlightintensity( var_3 + var_5 * var_4 );
wait 0.05;
}
var_6[0] = self;
if ( isdefined( self.linked_lights ) )
var_6 = common_scripts\utility::array_combine( var_6, self.linked_lights );
foreach ( var_8 in var_6 )
{
var_8 thread handle_linked_ents( var_0 );
var_8 setlightintensity( var_0 );
}
}
handle_linked_ents( var_0 )
{
var_1 = var_0 > self.script_threshold;
foreach ( var_3 in self.lit_models )
{
if ( var_1 && !var_3.visible )
{
var_3.visible = var_1;
var_3 show();
if ( isdefined( var_3.effect ) )
var_3.effect thread maps\_utility::restarteffect();
continue;
}
if ( !var_1 && var_3.visible )
{
var_3.visible = var_1;
var_3 hide();
if ( isdefined( var_3.effect ) )
var_3.effect thread common_scripts\utility::pauseeffect();
}
}
foreach ( var_3 in self.unlit_models )
{
if ( !var_1 && !var_3.visible )
{
var_3.visible = 1;
var_3 show();
continue;
}
if ( var_1 && var_3.visible )
{
var_3.visible = 0;
var_3 hide();
}
}
}
get_delay()
{
return randomfloatrange( self.script_delay_min, self.script_delay_max );
}
init_light_def()
{
var_0["pulse"] = ::def_pulse;
var_0["neon"] = ::def_neon;
var_0["fire"] = ::def_fire;
[[ var_0[self.script_light] ]]();
}
def_pulse()
{
set_delays( 0.1, 0.2 );
set_waits( 1, 4 );
set_counts( 3, 6 );
set_threshold( 0.5 );
var_0 = self getlightintensity();
set_intensities( var_0 * 0.25, var_0 );
thread pulse_think();
}
def_neon()
{
set_delays( 0.05, 0.1 );
set_waits( 2, 5 );
set_counts( 1, 3 );
set_threshold( 0.5 );
var_0 = self getlightintensity();
set_intensities( var_0 * 0.1, var_0 );
thread pulse_think();
}
def_fire()
{
set_delays( 0.05, 0.1 );
set_waits( 0.05, 0.1 );
set_counts( 1, 2 );
set_threshold( 0.5 );
var_0 = self getlightintensity();
set_intensities( var_0 * 0.75, var_0 );
thread pulse_think();
}
set_threshold( var_0 )
{
if ( !isdefined( self.script_threshold ) )
self.script_threshold = var_0;
foreach ( var_2 in self.linked_lights )
{
if ( !isdefined( var_2.script_threshold ) )
var_2.script_threshold = self.script_threshold;
}
}
set_delays( var_0, var_1 )
{
if ( !isdefined( self.script_delay_min ) )
self.script_delay_min = var_0;
if ( !isdefined( self.script_delay_max ) )
self.script_delay_max = var_1;
}
set_waits( var_0, var_1 )
{
if ( !isdefined( self.script_wait_min ) )
self.script_wait_min = var_0;
if ( !isdefined( self.script_wait_max ) )
self.script_wait_max = var_1;
}
set_counts( var_0, var_1 )
{
if ( !isdefined( self.script_count_min ) )
self.script_count_min = var_0;
if ( !isdefined( self.script_count_max ) )
self.script_count_max = var_1;
}
set_intensities( var_0, var_1 )
{
if ( !isdefined( self.script_intensity_min ) )
self.script_intensity_min = var_0;
if ( !isdefined( self.script_intensity_max ) )
self.script_intensity_max = var_1;
}