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

190 lines
4.9 KiB
Plaintext

// IW6 GSC SOURCE
// Generated by https://github.com/xensik/gsc-tool
section_precache()
{
precacheshader( "hud_rog_target_big_g" );
precacheshader( "hud_rog_target_big_r" );
precacheshader( "hud_rog_target_building_g" );
precacheshader( "hud_rog_target_building_r" );
precacheshader( "hud_rog_target_g" );
precacheshader( "hud_rog_target_r" );
precacheshader( "overlay_static" );
precacheshader( "hud_rog_altimeter_pip" );
precacheshader( "hud_rog_altimeter_ruler" );
precacheshader( "hud_rog_compass_a" );
precacheshader( "hud_rog_compass_b" );
precacheshader( "hud_rog_cross_grid" );
precacheshader( "hud_rog_fluff_0" );
precacheshader( "hud_rog_fluff_1" );
precacheshader( "hud_rog_fluff_2" );
precacheshader( "hud_rog_fluff_3" );
precacheshader( "hud_rog_fluff_bot" );
precacheshader( "hud_rog_frame_bottom" );
precacheshader( "hud_rog_frame_top" );
precacheshader( "hud_rog_link_icon" );
precacheshader( "hud_rog_link_no_icon" );
precacheshader( "hud_rog_message_box" );
precacheshader( "hud_rog_overlay" );
precacheshader( "hud_rog_status_box" );
}
rog_hud()
{
loadluifile( "LUI.sp_hud.loki" );
level.player setclientomnvar( "ui_loki_rog", 1 );
level.player setclientomnvar( "ui_loki_rog_section", 0 );
level.player setclientomnvar( "ui_loki_rog_message", 1 );
level.player thread rog_hud_handle_message_updates();
level.player thread rog_hud_handle_altitude_updates();
level.player thread rog_hud_handle_impact_updates();
level waittill( "ROG_end" );
setsaveddvar( "compass", 1 );
setsaveddvar( "ammoCounterHide", 0 );
setsaveddvar( "actionSlotsHide", 0 );
setsaveddvar( "hud_showStance", 1 );
}
rog_hud_handle_message_updates()
{
level endon( "ROG_end" );
for (;;)
{
level waittill( "ROG_can_fire" );
if ( common_scripts\utility::flag( "ROG_can_fire" ) )
{
level.player setclientomnvar( "ui_loki_rog_message", 0 );
level.player setclientomnvar( "ui_loki_rog_message_progress", 0.0 );
continue;
}
level.player setclientomnvar( "ui_loki_rog_message", 1 );
}
}
rog_hud_handle_altitude_updates()
{
level endon( "ROG_end" );
var_0 = 0;
for ( var_1 = [ 13.25, 9.3, 5.65, 14.05, 45.55 ]; 1 && var_0 < var_1.size; var_0++ )
{
level waittill( "rog_uav_ascending" );
level.player setclientomnvar( "ui_loki_rog_altitude", var_1[var_0] - 0.75 );
}
}
rog_hud_handle_impact_updates()
{
level endon( "ROG_end" );
for (;;)
{
level waittill( "ROG_locked_in" );
level.player setclientomnvar( "ui_loki_rog_locked_in", 1 );
}
}
static_flash( var_0, var_1 )
{
for ( var_2 = 0; var_2 < var_0; var_2++ )
{
level.player setclientomnvar( "ui_loki_rog_static", 1 );
if ( isdefined( var_1 ) )
level.player thread maps\_utility::play_sound_on_entity( var_1 );
wait 0.1;
level.player setclientomnvar( "ui_loki_rog_static", 0 );
wait 0.2;
}
}
uav_static_lines( var_0 )
{
level endon( "slamzoom_start" );
if ( !isdefined( level.uav_static_lines ) )
level.uav_static_lines = [];
var_1 = newhudelem();
var_1.alpha = 1;
var_1.sort = -50;
var_1.x = -530;
var_1.y = 0;
var_1.hidewheninmenu = 0;
var_1.hidewhendead = 1;
var_1 thread random_line_flicker();
if ( var_0 )
level maps\_utility::delaythread( 2.0, ::remove_static_line, var_1 );
level.uav_static_lines[level.uav_static_lines.size] = var_1;
}
remove_static_line( var_0 )
{
var_0 notify( "stop_static" );
level.uav_static_lines = common_scripts\utility::array_remove( level.uav_static_lines, var_0 );
var_0 destroy();
}
remove_all_static_lines()
{
foreach ( var_1 in level.uav_static_lines )
var_1 destroy();
}
random_line_flicker()
{
self endon( "stop_static" );
self endon( "death" );
for (;;)
{
var_0 = randomfloatrange( 0.05, 0.08 );
var_1 = randomfloatrange( 0.1, 0.8 );
self fadeovertime( var_0 );
self.alpha = var_1;
childthread random_line_placement();
childthread random_shader_cycling();
wait( var_0 );
if ( randomint( 100 ) > 50 )
{
var_0 = randomfloatrange( 0.25, 0.4 );
self fadeovertime( var_0 );
self.alpha = 0;
self notify( "turn_off" );
wait( var_0 );
}
}
}
random_shader_cycling()
{
self endon( "turn_off" );
var_0 = 180;
var_1 = randomfloatrange( 0.1, 0.65 );
for (;;)
{
self setshader( common_scripts\utility::random( level.static_lines ), 1280, int( var_0 * var_1 ) );
wait 0.05;
}
}
random_line_placement()
{
self endon( "turn_off" );
for (;;)
{
var_0 = randomintrange( 10, 640 );
self.y = var_0;
wait( randomfloatrange( 0.05, 0.4 ) );
}
}