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

133 lines
4.2 KiB
Plaintext

// IW6 GSC SOURCE
// Generated by https://github.com/xensik/gsc-tool
main()
{
maps\mp\mp_warhawk_precache::main();
maps\createart\mp_warhawk_art::main();
maps\mp\mp_warhawk_fx::main();
maps\mp\mp_warhawk_events::precache();
var_0 = 50.0;
var_1 = 70.0;
level thread maps\mp\mp_warhawk_events::random_destruction( var_0, var_1 );
level thread maps\mp\mp_warhawk_events::air_raid();
level.mapcustomcratefunc = ::warhawkcustomcratefunc;
level.mapcustomkillstreakfunc = ::warhawkcustomkillstreakfunc;
level.mapcustombotkillstreakfunc = ::warhawkcustombotkillstreakfunc;
maps\mp\_load::main();
thread maps\mp\_fx::func_glass_handler();
maps\mp\_compass::setupminimap( "compass_map_mp_warhawk" );
setdvar( "r_lightGridEnableTweaks", 1 );
setdvar( "r_lightGridIntensity", 1.33 );
maps\mp\_utility::setdvar_cg_ng( "r_diffuseColorScale", 1.2, 1.5 );
maps\mp\_utility::setdvar_cg_ng( "r_specularcolorscale", 1.5, 9 );
setdvar( "r_ssaorejectdepth", 1500 );
setdvar( "r_ssaofadedepth", 1200 );
if ( level.ps3 )
setdvar( "sm_sunShadowScale", "0.6" );
else if ( level.xenon )
setdvar( "sm_sunShadowScale", "0.7" );
game["attackers"] = "allies";
game["defenders"] = "axis";
level thread maps\mp\mp_warhawk_events::plane_crash();
level thread maps\mp\mp_warhawk_events::heli_anims();
level thread maps\mp\mp_warhawk_events::chain_gate();
level thread maps\mp\mp_warhawk_events::exploders_watch_late_players();
level thread maps\mp\_breach::main();
level._effect["default"] = loadfx( "vfx/moments/mp_warhawk/vfx_mp_warhawk_breach_01" );
level thread initextracollision();
}
initextracollision()
{
var_0 = spawn( "script_model", ( -449.855, 640.906, 203.344 ) );
var_0 setmodel( "afr_corrugated_metal8x8" );
var_0.angles = ( 0, 0, 0 );
var_1 = spawn( "script_model", ( 1457, 159.5, 143 ) );
var_1 setmodel( "afr_corrugated_metal8x8" );
var_1.angles = ( 0, 0, 0 );
}
watch_allow_dynamic_events()
{
while ( getdvarint( "allow_dynamic_events" ) )
wait 0.05;
level notify( "stop_dynamic_events" );
}
warhawkcustomcratefunc()
{
if ( !isdefined( game["player_holding_level_killstrek"] ) )
game["player_holding_level_killstrek"] = 0;
if ( !maps\mp\_utility::allowlevelkillstreaks() || game["player_holding_level_killstrek"] )
return;
maps\mp\killstreaks\_airdrop::addcratetype( "airdrop_assault", "warhawk_mortars", 85, maps\mp\killstreaks\_airdrop::killstreakcratethink, maps\mp\killstreaks\_airdrop::get_friendly_crate_model(), maps\mp\killstreaks\_airdrop::get_enemy_crate_model(), &"KILLSTREAKS_HINTS_WARHAWK_MORTARS" );
level thread watch_for_warhawk_mortars_crate();
}
watch_for_warhawk_mortars_crate()
{
for (;;)
{
level waittill( "createAirDropCrate", var_0 );
if ( isdefined( var_0 ) && isdefined( var_0.cratetype ) && var_0.cratetype == "warhawk_mortars" )
{
maps\mp\killstreaks\_airdrop::changecrateweight( "airdrop_assault", "warhawk_mortars", 0 );
var_1 = wait_for_capture( var_0 );
if ( !var_1 )
{
maps\mp\killstreaks\_airdrop::changecrateweight( "airdrop_assault", "warhawk_mortars", 85 );
continue;
}
game["player_holding_level_killstrek"] = 1;
break;
}
}
}
wait_for_capture( var_0 )
{
var_1 = watch_for_air_drop_death( var_0 );
return !isdefined( var_1 );
}
watch_for_air_drop_death( var_0 )
{
var_0 endon( "captured" );
var_0 waittill( "death" );
waittillframeend;
return 1;
}
warhawkcustomkillstreakfunc()
{
level.killstreakfuncs["warhawk_mortars"] = ::tryusewarhawkmortars;
level.killstreakweildweapons["warhawk_mortar_mp"] = "warhawk_mortars";
}
warhawkcustombotkillstreakfunc()
{
maps\mp\bots\_bots_ks::bot_register_killstreak_func( "warhawk_mortars", maps\mp\bots\_bots_ks::bot_killstreak_simple_use );
}
tryusewarhawkmortars( var_0, var_1 )
{
if ( level.air_raid_active )
{
self iprintlnbold( &"KILLSTREAKS_AIR_SPACE_TOO_CROWDED" );
return 0;
}
game["player_holding_level_killstrek"] = 0;
level notify( "warhawk_mortar_killstreak", self );
return 1;
}