2024-02-13 13:20:49 +01:00

163 lines
4.7 KiB
Plaintext

// IW6 GSC SOURCE
// Generated by https://github.com/xensik/gsc-tool
init()
{
level.teamemped["allies"] = 0;
level.teamemped["axis"] = 0;
level.empplayer = undefined;
level.emptimeout = 10.0;
level.emptimeremaining = int( level.emptimeout );
level.killstreakfuncs["jammer"] = ::emp_use;
level thread onplayerconnect();
}
onplayerconnect()
{
for (;;)
{
level waittill( "connected", var_0 );
var_0 thread onplayerkilled();
var_0 thread onplayerspawned();
}
}
onplayerspawned()
{
self endon( "disconnect" );
for (;;)
{
self waittill( "spawned_player" );
if ( maps\mp\killstreaks\_emp_common::shouldplayerbeaffectedbyemp() )
maps\mp\killstreaks\_emp_common::applyperplayerempeffects();
}
}
onplayerkilled()
{
self endon( "disconnect" );
for (;;)
{
self waittill( "death" );
maps\mp\killstreaks\_emp_common::stopempjamsequenceimmediate();
}
}
emp_use( var_0, var_1 )
{
var_2 = self.pers["team"];
if ( level.teambased )
{
var_3 = level.otherteam[var_2];
thread emp_jamteam( var_3 );
}
else
thread emp_jamplayers( self );
maps\mp\_matchdata::logkillstreakevent( "jammer", self.origin );
self notify( "used_emp" );
level notify( "emp_used" );
return 1;
}
emp_jamteam( var_0 )
{
level endon( "game_ended" );
wait 0.5;
thread maps\mp\_utility::teamplayercardsplash( "used_jammer", self );
level notify( "EMP_JamTeam" + var_0 );
level endon( "EMP_JamTeam" + var_0 );
level.teamemped[var_0] = 1;
foreach ( var_2 in level.players )
{
var_2 maps\mp\killstreaks\_emp_common::applyperplayerempeffects_ondetonate();
if ( var_2 maps\mp\killstreaks\_emp_common::shouldplayerbeaffectedbyemp() )
var_2 maps\mp\killstreaks\_emp_common::applyperplayerempeffects();
}
level thread maps\mp\killstreaks\_emp_common::applyglobalempeffects();
level notify( "emp_update" );
level destroygroundobjects( self, var_0 );
level thread keepemptimeremaining();
maps\mp\gametypes\_hostmigration::waitlongdurationwithhostmigrationpause( level.emptimeout );
level.teamemped[var_0] = 0;
foreach ( var_2 in level.players )
{
if ( var_2.team == var_0 && !var_2 maps\mp\killstreaks\_emp_common::shouldplayerbeaffectedbyemp() )
var_2 maps\mp\killstreaks\_emp_common::removeperplayerempeffects();
}
level notify( "emp_update" );
}
emp_jamplayers( var_0 )
{
level notify( "EMP_JamPlayers" );
level endon( "EMP_JamPlayers" );
wait 0.5;
if ( !isdefined( var_0 ) )
return;
level.empplayer = var_0;
foreach ( var_2 in level.players )
{
var_2 maps\mp\killstreaks\_emp_common::applyperplayerempeffects_ondetonate();
if ( var_2 maps\mp\killstreaks\_emp_common::shouldplayerbeaffectedbyemp() )
var_2 maps\mp\killstreaks\_emp_common::applyperplayerempeffects();
}
level thread maps\mp\killstreaks\_emp_common::applyglobalempeffects();
level notify( "emp_update" );
level.empplayer thread empplayerffadisconnect();
level destroygroundobjects( var_0 );
level thread keepemptimeremaining();
maps\mp\gametypes\_hostmigration::waitlongdurationwithhostmigrationpause( level.emptimeout );
level.empplayer = undefined;
foreach ( var_2 in level.players )
{
if ( ( !isdefined( var_0 ) || var_2 != var_0 ) && !var_2 maps\mp\killstreaks\_emp_common::shouldplayerbeaffectedbyemp() )
var_2 maps\mp\killstreaks\_emp_common::removeperplayerempeffects();
}
level notify( "emp_update" );
level notify( "emp_ended" );
}
keepemptimeremaining()
{
level notify( "keepEMPTimeRemaining" );
level endon( "keepEMPTimeRemaining" );
level endon( "emp_ended" );
for ( level.emptimeremaining = int( level.emptimeout ); level.emptimeremaining; level.emptimeremaining-- )
wait 1.0;
}
empplayerffadisconnect()
{
level endon( "EMP_JamPlayers" );
level endon( "emp_ended" );
self waittill( "disconnect" );
level notify( "emp_update" );
}
destroygroundobjects( var_0, var_1 )
{
maps\mp\killstreaks\_killstreaks::destroytargetarray( var_0, var_1, "killstreak_emp_mp", level.turrets );
maps\mp\killstreaks\_killstreaks::destroytargetarray( var_0, var_1, "killstreak_emp_mp", level.placedims );
maps\mp\killstreaks\_killstreaks::destroytargetarray( var_0, var_1, "killstreak_emp_mp", level.balldrones );
thread maps\mp\killstreaks\_killstreaks::destroytargetarray( var_0, var_1, "killstreak_emp_mp", level.uplinks );
maps\mp\killstreaks\_killstreaks::destroytargetarray( var_0, var_1, "killstreak_emp_mp", level.mines );
}