115 lines
2.7 KiB
Plaintext
115 lines
2.7 KiB
Plaintext
// IW6 GSC SOURCE
|
|
// Generated by https://github.com/xensik/gsc-tool
|
|
|
|
init_unlock()
|
|
{
|
|
load_unlock_from_table();
|
|
}
|
|
|
|
init_player_unlock()
|
|
{
|
|
self.unlock_list = [];
|
|
|
|
if ( isdefined( level.unlock_registration_func ) )
|
|
[[ level.unlock_registration_func ]]();
|
|
|
|
if ( maps\mp\alien\_utility::is_true( level.include_default_unlocks ) )
|
|
register_default_unlocks();
|
|
}
|
|
|
|
register_default_unlocks()
|
|
{
|
|
register_unlock( "UNLOCK_ESCAPE", 1, 1, ::default_init );
|
|
register_unlock( "UNLOCK_ESCAPE_10_TIMES", 2, 10, ::default_init );
|
|
register_unlock( "UNLOCK_ESCAPE_20_TIMES", 3, 20, ::default_init );
|
|
register_unlock( "UNLOCK_ESCAPE_50_TIMES", 4, 50, ::default_init );
|
|
}
|
|
|
|
register_unlock( var_0, var_1, var_2, var_3 )
|
|
{
|
|
var_4 = spawnstruct();
|
|
var_4 [[ var_3 ]]( var_1, var_2 );
|
|
self.unlock_list[var_0] = var_4;
|
|
}
|
|
|
|
default_init( var_0, var_1 )
|
|
{
|
|
self.progress = 0;
|
|
self.index_map = var_0;
|
|
self.goal = var_1;
|
|
}
|
|
|
|
update_progress( var_0 )
|
|
{
|
|
self.progress = self.progress + var_0;
|
|
}
|
|
|
|
is_goal_achieved()
|
|
{
|
|
return self.progress >= self.goal;
|
|
}
|
|
|
|
is_valid_unlock( var_0 )
|
|
{
|
|
return isdefined( var_0 );
|
|
}
|
|
|
|
update_unlock( var_0, var_1 )
|
|
{
|
|
var_2 = self.unlock_list[var_0];
|
|
|
|
if ( !is_valid_unlock( var_2 ) )
|
|
return;
|
|
|
|
var_2 update_progress( var_1 );
|
|
|
|
if ( var_2 is_goal_achieved() )
|
|
var_3 = level.alien_unlock_data[var_2.index_map];
|
|
}
|
|
|
|
update_escape_item_unlock( var_0 )
|
|
{
|
|
foreach ( var_2 in var_0 )
|
|
{
|
|
var_3 = var_2 maps\mp\alien\_persistence::get_player_escaped();
|
|
var_2 update_personal_escape_item_unlock( var_3 );
|
|
var_4 = var_2 maps\mp\alien\_prestige::get_num_nerf_selected();
|
|
var_5 = var_2 maps\mp\alien\_persistence::get_player_highest_nerf_escape_count();
|
|
|
|
if ( var_4 > var_5 )
|
|
var_2 setcoopplayerdata( "alienPlayerStats", "headShots", var_4 );
|
|
}
|
|
}
|
|
|
|
update_personal_escape_item_unlock( var_0 )
|
|
{
|
|
update_unlock( "UNLOCK_ESCAPE", 1 );
|
|
update_unlock( "UNLOCK_ESCAPE_10_TIMES", var_0 );
|
|
update_unlock( "UNLOCK_ESCAPE_20_TIMES", var_0 );
|
|
update_unlock( "UNLOCK_ESCAPE_50_TIMES", var_0 );
|
|
}
|
|
|
|
load_unlock_from_table()
|
|
{
|
|
level.alien_unlock_data = [];
|
|
|
|
if ( isdefined( level.alien_unlock_table ) )
|
|
var_0 = level.alien_unlock_table;
|
|
else
|
|
var_0 = "mp/alien/unlocktable.csv";
|
|
|
|
for ( var_1 = 100; var_1 <= 110; var_1++ )
|
|
{
|
|
var_2 = tablelookup( var_0, 0, var_1, 1 );
|
|
|
|
if ( var_2 == "" )
|
|
break;
|
|
|
|
var_3 = tablelookup( var_0, 0, var_1, 3 );
|
|
var_4 = spawnstruct();
|
|
var_4.item = var_2;
|
|
var_4.type = var_3;
|
|
level.alien_unlock_data[level.alien_unlock_data.size] = var_4;
|
|
}
|
|
}
|