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

75 lines
2.2 KiB
Plaintext

// IW6 GSC SOURCE
// Generated by https://github.com/xensik/gsc-tool
init()
{
level.killstreakfuncs["mrsiartillery"] = ::tryusestrike;
var_0 = spawnstruct();
var_0.weaponname = "airdrop_marker_mp";
var_0.projectilename = "mrsiartillery_projectile_mp";
var_0.numstrikes = 6;
var_0.initialdelay = 1.0;
var_0.minfiredelay = 0.375;
var_0.maxfiredelay = 0.5;
var_0.strikeradius = 150;
if ( !isdefined( level.killstreakconfigdata ) )
level.killstreakconfigdata = [];
level.killstreakconfigdata["mrsiartillery"] = var_0;
}
tryusestrike( var_0, var_1 )
{
var_2 = level.killstreakconfigdata["mrsiartillery"];
var_3 = maps\mp\killstreaks\_designator_grenade::designator_start( "mrsiartillery", var_2.weaponname, ::ontargetacquired );
if ( !isdefined( var_3 ) || !var_3 )
return 0;
else
return 1;
}
ontargetacquired( var_0, var_1 )
{
var_2 = level.killstreakconfigdata[var_0];
var_3 = var_1.owner;
var_4 = var_1.origin;
var_1 detonate();
dostrike( var_3, var_0, var_3.origin, var_4 );
}
dostrike( var_0, var_1, var_2, var_3 )
{
var_4 = level.killstreakconfigdata[var_1];
var_5 = var_3 - var_2;
var_6 = ( var_5[0], var_5[1], 0 );
var_5 = vectornormalize( var_5 );
var_7 = var_3;
var_8 = maps\mp\killstreaks\_killstreaks::findunobstructedfiringpoint( var_0, var_3 + ( 0, 0, 10 ), 10000 );
if ( isdefined( var_8 ) )
{
iprintln( "Firing Motar!" );
wait( var_4.initialdelay );
wait( randomfloatrange( var_4.minfiredelay, var_4.maxfiredelay ) );
var_9 = magicbullet( var_4.projectilename, var_8, var_7, var_0 );
for ( var_10 = 1; var_10 < var_4.numstrikes; var_10++ )
{
wait( randomfloatrange( var_4.minfiredelay, var_4.maxfiredelay ) );
var_11 = pickrandomtargetpoint( var_7, var_4.strikeradius );
var_9 = magicbullet( var_4.projectilename, var_8, var_11, var_0 );
}
}
else
iprintln( "Mortar LOS blocked!" );
}
pickrandomtargetpoint( var_0, var_1 )
{
var_2 = randomfloatrange( -1 * var_1, var_1 );
var_3 = randomfloatrange( -1 * var_1, var_1 );
return var_0 + ( var_2, var_3, 0 );
}