200 lines
5.0 KiB
Plaintext
200 lines
5.0 KiB
Plaintext
// IW6 GSC SOURCE
|
|
// Generated by https://github.com/xensik/gsc-tool
|
|
|
|
radiation()
|
|
{
|
|
var_0 = getentarray( "radiation", "targetname" );
|
|
|
|
if ( var_0.size > 0 )
|
|
{
|
|
foreach ( var_2 in var_0 )
|
|
var_2 thread common_scripts\_dynamic_world::triggertouchthink( ::playerenterarea, ::playerleavearea );
|
|
|
|
thread onplayerconnect();
|
|
}
|
|
}
|
|
|
|
onplayerconnect()
|
|
{
|
|
for (;;)
|
|
{
|
|
level waittill( "connected", var_0 );
|
|
var_0.numareas = 0;
|
|
}
|
|
}
|
|
|
|
playerenterarea( var_0 )
|
|
{
|
|
self.numareas++;
|
|
|
|
if ( self.numareas == 1 )
|
|
radiationeffect();
|
|
}
|
|
|
|
playerleavearea( var_0 )
|
|
{
|
|
self.numareas--;
|
|
|
|
if ( self.numareas != 0 )
|
|
return;
|
|
|
|
self.poison = 0;
|
|
self notify( "leftTrigger" );
|
|
|
|
if ( isdefined( self.radiationoverlay ) )
|
|
self.radiationoverlay fadeoutblackout( 0.1, 0 );
|
|
}
|
|
|
|
soundwatcher( var_0 )
|
|
{
|
|
common_scripts\utility::waittill_any( "death", "leftTrigger" );
|
|
self stoploopsound();
|
|
}
|
|
|
|
radiationeffect()
|
|
{
|
|
self endon( "disconnect" );
|
|
self endon( "game_ended" );
|
|
self endon( "death" );
|
|
self endon( "leftTrigger" );
|
|
self.poison = 0;
|
|
thread soundwatcher( self );
|
|
|
|
for (;;)
|
|
{
|
|
self.poison++;
|
|
|
|
switch ( self.poison )
|
|
{
|
|
case 1:
|
|
self.radiationsound = "item_geigercouner_level2";
|
|
self playloopsound( self.radiationsound );
|
|
self viewkick( 1, self.origin );
|
|
break;
|
|
case 3:
|
|
self shellshock( "mp_radiation_low", 4 );
|
|
self.radiationsound = "item_geigercouner_level3";
|
|
self stoploopsound();
|
|
self playloopsound( self.radiationsound );
|
|
self viewkick( 3, self.origin );
|
|
doradiationdamage( 15 );
|
|
break;
|
|
case 4:
|
|
self shellshock( "mp_radiation_med", 5 );
|
|
self.radiationsound = "item_geigercouner_level3";
|
|
self stoploopsound();
|
|
self playloopsound( self.radiationsound );
|
|
self viewkick( 15, self.origin );
|
|
thread blackout();
|
|
doradiationdamage( 25 );
|
|
break;
|
|
case 6:
|
|
self shellshock( "mp_radiation_high", 5 );
|
|
self.radiationsound = "item_geigercouner_level4";
|
|
self stoploopsound();
|
|
self playloopsound( self.radiationsound );
|
|
self viewkick( 75, self.origin );
|
|
doradiationdamage( 45 );
|
|
break;
|
|
case 8:
|
|
self shellshock( "mp_radiation_high", 5 );
|
|
self.radiationsound = "item_geigercouner_level4";
|
|
self stoploopsound();
|
|
self playloopsound( self.radiationsound );
|
|
self viewkick( 127, self.origin );
|
|
doradiationdamage( 175 );
|
|
break;
|
|
}
|
|
|
|
wait 1;
|
|
}
|
|
|
|
wait 5;
|
|
}
|
|
|
|
blackout()
|
|
{
|
|
self endon( "disconnect" );
|
|
self endon( "game_ended" );
|
|
self endon( "death" );
|
|
self endon( "leftTrigger" );
|
|
|
|
if ( !isdefined( self.radiationoverlay ) )
|
|
{
|
|
self.radiationoverlay = newclienthudelem( self );
|
|
self.radiationoverlay.x = 0;
|
|
self.radiationoverlay.y = 0;
|
|
self.radiationoverlay setshader( "black", 640, 480 );
|
|
self.radiationoverlay.alignx = "left";
|
|
self.radiationoverlay.aligny = "top";
|
|
self.radiationoverlay.horzalign = "fullscreen";
|
|
self.radiationoverlay.vertalign = "fullscreen";
|
|
self.radiationoverlay.alpha = 0;
|
|
}
|
|
|
|
var_0 = 1;
|
|
var_1 = 2;
|
|
var_2 = 0.25;
|
|
var_3 = 1;
|
|
var_4 = 5;
|
|
var_5 = 100;
|
|
var_6 = 0;
|
|
|
|
for (;;)
|
|
{
|
|
while ( self.poison > 1 )
|
|
{
|
|
var_7 = var_5 - var_4;
|
|
var_6 = ( self.poison - var_4 ) / var_7;
|
|
|
|
if ( var_6 < 0 )
|
|
var_6 = 0;
|
|
else if ( var_6 > 1 )
|
|
var_6 = 1;
|
|
|
|
var_8 = var_1 - var_0;
|
|
var_9 = var_0 + var_8 * ( 1 - var_6 );
|
|
var_10 = var_3 - var_2;
|
|
var_11 = var_2 + var_10 * var_6;
|
|
var_12 = var_6 * 0.5;
|
|
|
|
if ( var_6 == 1 )
|
|
break;
|
|
|
|
var_13 = var_9 / 2;
|
|
self.radiationoverlay fadeinblackout( var_13, var_11 );
|
|
self.radiationoverlay fadeoutblackout( var_13, var_12 );
|
|
wait( var_6 * 0.5 );
|
|
}
|
|
|
|
if ( var_6 == 1 )
|
|
break;
|
|
|
|
if ( self.radiationoverlay.alpha != 0 )
|
|
self.radiationoverlay fadeoutblackout( 1, 0 );
|
|
|
|
wait 0.05;
|
|
}
|
|
|
|
self.radiationoverlay fadeinblackout( 2, 0 );
|
|
}
|
|
|
|
doradiationdamage( var_0 )
|
|
{
|
|
self thread [[ level.callbackplayerdamage ]]( self, self, var_0, 0, "MOD_SUICIDE", "claymore_mp", self.origin, ( 0, 0, 0 ) - self.origin, "none", 0 );
|
|
}
|
|
|
|
fadeinblackout( var_0, var_1 )
|
|
{
|
|
self fadeovertime( var_0 );
|
|
self.alpha = var_1;
|
|
wait( var_0 );
|
|
}
|
|
|
|
fadeoutblackout( var_0, var_1 )
|
|
{
|
|
self fadeovertime( var_0 );
|
|
self.alpha = var_1;
|
|
wait( var_0 );
|
|
}
|