init
This commit is contained in:
278
maps/mp/alien/_achievement.gsc
Normal file
278
maps/mp/alien/_achievement.gsc
Normal file
@@ -0,0 +1,278 @@
|
||||
// IW6 GSC SOURCE
|
||||
// Generated by https://github.com/xensik/gsc-tool
|
||||
|
||||
init_player_achievement()
|
||||
{
|
||||
self.achievement_list = [];
|
||||
|
||||
if ( isdefined( level.achievement_registration_func ) )
|
||||
[[ level.achievement_registration_func ]]();
|
||||
|
||||
if ( maps\mp\alien\_utility::is_true( level.include_default_achievements ) )
|
||||
register_default_achievements();
|
||||
}
|
||||
|
||||
register_default_achievements()
|
||||
{
|
||||
register_achievement( "KILL_WITH_TRAP", 50, ::default_init, ::should_update_kill_with_trap, ::equal_to_goal );
|
||||
register_achievement( "ESCAPE_ALL_PLAYERS", 4, ::default_init, ::default_should_update, ::at_least_goal );
|
||||
register_achievement( "ESCAPE_IN_TIME", 90000, ::default_init, ::default_should_update, ::at_least_goal );
|
||||
register_achievement( "ESCAPE_1ST_TIME", 1, ::default_init, ::default_should_update, ::at_least_goal );
|
||||
register_achievement( "ESCAPE_ALL_CHALLENGE", 1, ::default_init, ::should_update_all_challenge, ::at_least_goal );
|
||||
register_achievement( "ESCAPE_WITH_NERF_ON", 1, ::default_init, ::default_should_update, ::at_least_goal );
|
||||
register_achievement( "REACH_CITY", 1, ::default_init, ::default_should_update, ::at_least_goal );
|
||||
register_achievement( "REACH_CABIN", 1, ::default_init, ::default_should_update, ::at_least_goal );
|
||||
register_achievement( "SCAVENGE_ITEM", 40, ::default_init, ::default_should_update, ::equal_to_goal );
|
||||
}
|
||||
|
||||
register_achievement( var_0, var_1, var_2, var_3, var_4, var_5 )
|
||||
{
|
||||
var_6 = spawnstruct();
|
||||
var_6 [[ var_2 ]]( var_1, var_3, var_4, var_5 );
|
||||
self.achievement_list[var_0] = var_6;
|
||||
}
|
||||
|
||||
default_init( var_0, var_1, var_2, var_3 )
|
||||
{
|
||||
self.progress = 0;
|
||||
self.goal = var_0;
|
||||
self.should_update_func = var_1;
|
||||
self.is_goal_reached_func = var_2;
|
||||
self.achievement_completed = 0;
|
||||
|
||||
if ( isdefined( var_3 ) )
|
||||
self.complete_in_casual = var_3;
|
||||
}
|
||||
|
||||
default_should_update( var_0, var_1, var_2, var_3, var_4, var_5, var_6, var_7, var_8, var_9 )
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
update_progress( var_0 )
|
||||
{
|
||||
self.progress = self.progress + var_0;
|
||||
}
|
||||
|
||||
at_least_goal()
|
||||
{
|
||||
return self.progress >= self.goal;
|
||||
}
|
||||
|
||||
equal_to_goal()
|
||||
{
|
||||
return self.progress == self.goal;
|
||||
}
|
||||
|
||||
is_completed()
|
||||
{
|
||||
return self.achievement_completed;
|
||||
}
|
||||
|
||||
can_complete_in_causal()
|
||||
{
|
||||
return maps\mp\alien\_utility::is_true( self.complete_in_casual );
|
||||
}
|
||||
|
||||
mark_completed()
|
||||
{
|
||||
self.achievement_completed = 1;
|
||||
}
|
||||
|
||||
is_valid_achievement( var_0 )
|
||||
{
|
||||
return isdefined( var_0 );
|
||||
}
|
||||
|
||||
update_achievement( var_0, var_1, var_2, var_3, var_4, var_5, var_6, var_7, var_8, var_9, var_10, var_11 )
|
||||
{
|
||||
var_12 = self.achievement_list[var_0];
|
||||
|
||||
if ( !is_valid_achievement( var_12 ) )
|
||||
return;
|
||||
|
||||
if ( var_12 is_completed() )
|
||||
return;
|
||||
|
||||
if ( maps\mp\alien\_utility::is_casual_mode() && !var_12 can_complete_in_causal() )
|
||||
return;
|
||||
|
||||
if ( var_12 [[ var_12.should_update_func ]]( var_2, var_3, var_4, var_5, var_6, var_7, var_8, var_9, var_10, var_11 ) )
|
||||
{
|
||||
var_12 update_progress( var_1 );
|
||||
|
||||
if ( var_12 [[ var_12.is_goal_reached_func ]]() )
|
||||
{
|
||||
self giveachievement( var_0 );
|
||||
var_12 mark_completed();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
update_alien_kill_achievements( var_0, var_1, var_2, var_3, var_4, var_5, var_6, var_7, var_8 )
|
||||
{
|
||||
if ( isdefined( level.update_alien_kill_achievements_func ) )
|
||||
[[ level.update_alien_kill_achievements_func ]]( var_0, var_1, var_2, var_3, var_4, var_5, var_6, var_7, var_8 );
|
||||
|
||||
if ( !isdefined( var_1 ) || !isplayer( var_1 ) )
|
||||
return;
|
||||
|
||||
var_1 update_achievement( "KILL_WITH_TRAP", 1, var_0 );
|
||||
}
|
||||
|
||||
should_update_kill_with_trap( var_0, var_1, var_2, var_3, var_4, var_5, var_6, var_7, var_8, var_9 )
|
||||
{
|
||||
if ( maps\mp\alien\_utility::is_trap( var_0 ) )
|
||||
return 1;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
update_escape_achievements( var_0, var_1 )
|
||||
{
|
||||
var_2 = var_0.size;
|
||||
|
||||
foreach ( var_4 in var_0 )
|
||||
{
|
||||
var_5 = var_4 maps\mp\alien\_persistence::get_player_escaped();
|
||||
var_6 = var_4 maps\mp\alien\_prestige::get_num_nerf_selected();
|
||||
var_4 update_personal_escape_achievements( var_2, var_1, var_5, var_6 );
|
||||
}
|
||||
}
|
||||
|
||||
update_personal_escape_achievements( var_0, var_1, var_2, var_3 )
|
||||
{
|
||||
update_achievement( "ESCAPE_ALL_PLAYERS", var_0 );
|
||||
update_achievement( "ESCAPE_IN_TIME", var_1 );
|
||||
update_achievement( "ESCAPE_1ST_TIME", var_2 );
|
||||
update_achievement( "ESCAPE_ALL_CHALLENGE", 1 );
|
||||
update_achievement( "ESCAPE_WITH_NERF_ON", var_3 );
|
||||
}
|
||||
|
||||
should_update_all_challenge( var_0, var_1, var_2, var_3, var_4, var_5, var_6, var_7, var_8, var_9 )
|
||||
{
|
||||
return level.all_challenge_completed;
|
||||
}
|
||||
|
||||
update_blocker_hive_achievements( var_0 )
|
||||
{
|
||||
switch ( var_0 )
|
||||
{
|
||||
case "lodge_lung_3":
|
||||
update_achievement_all_players( "REACH_CITY", 1 );
|
||||
break;
|
||||
case "city_lung_5":
|
||||
update_achievement_all_players( "REACH_CABIN", 1 );
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
update_achievement_all_players( var_0, var_1 )
|
||||
{
|
||||
foreach ( var_3 in level.players )
|
||||
var_3 update_achievement( var_0, var_1 );
|
||||
}
|
||||
|
||||
update_scavenge_achievement()
|
||||
{
|
||||
update_achievement( "SCAVENGE_ITEM", 1 );
|
||||
}
|
||||
|
||||
update_achievement_damage_weapon( var_0 )
|
||||
{
|
||||
if ( isdefined( level.update_achievement_damage_weapon_func ) )
|
||||
self [[ level.update_achievement_damage_weapon_func ]]( var_0 );
|
||||
}
|
||||
|
||||
eggallfoundforpack( var_0 )
|
||||
{
|
||||
self endon( "disconnect" );
|
||||
level endon( "game_ended" );
|
||||
level common_scripts\utility::waittill_any( "regular_hive_destroyed", "obelisk_destroyed", "outpost_encounter_completed" );
|
||||
var_1 = self getcoopplayerdata( "alienPlayerStats", "deaths" );
|
||||
var_2 = self getcoopplayerdatareservedint( "eggstra_state_flags" );
|
||||
var_3 = var_2 >> var_0 * 4 & 15;
|
||||
|
||||
if ( var_3 == 15 )
|
||||
{
|
||||
var_4 = self getcoopplayerdatareservedint( "eggstra_award_flags" );
|
||||
var_5 = 0;
|
||||
|
||||
if ( var_1 == 1015 && ( var_4 & 1 ) != 1 )
|
||||
{
|
||||
var_4 = var_4 | 1;
|
||||
var_5 = 1;
|
||||
}
|
||||
|
||||
if ( ( var_4 & 1 << var_0 ) == 0 )
|
||||
{
|
||||
var_4 = var_4 | 1 << var_0;
|
||||
var_5 = 1;
|
||||
self setclientomnvar( "ui_alien_eggstra_xp", 1 );
|
||||
thread maps\mp\alien\_persistence::wait_and_give_player_xp( 10000, 5.0 );
|
||||
}
|
||||
|
||||
if ( var_5 == 1 )
|
||||
self setcoopplayerdatareservedint( "eggstra_award_flags", var_4 );
|
||||
|
||||
update_mp_eggs_achievement( var_0 );
|
||||
}
|
||||
}
|
||||
|
||||
update_mp_eggs_achievement( var_0 )
|
||||
{
|
||||
switch ( var_0 )
|
||||
{
|
||||
case 0:
|
||||
update_achievement( "GOT_THEEGGSTRA_XP", 1 );
|
||||
break;
|
||||
case 1:
|
||||
update_achievement( "GOT_THEEGGSTRA_XP_DLC2", 1 );
|
||||
break;
|
||||
case 2:
|
||||
update_achievement( "GOT_THEEGGSTRA_XP_DLC3", 1 );
|
||||
break;
|
||||
case 3:
|
||||
update_achievement( "GOT_THEEGGSTRA_XP_DLC4", 1 );
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
update_intel_achievement( var_0 )
|
||||
{
|
||||
var_0 = 0;
|
||||
var_1 = getdvar( "ui_mapname" );
|
||||
|
||||
if ( var_1 == "mp_alien_armory" )
|
||||
var_0 = 1;
|
||||
|
||||
if ( var_1 == "mp_alien_beacon" )
|
||||
var_0 = 2;
|
||||
|
||||
if ( var_1 == "mp_alien_dlc3" )
|
||||
var_0 = 3;
|
||||
|
||||
if ( var_1 == "mp_alien_last" )
|
||||
var_0 = 4;
|
||||
|
||||
switch ( var_0 )
|
||||
{
|
||||
case 1:
|
||||
update_achievement( "FOUND_ALL_INTELS", 1 );
|
||||
break;
|
||||
case 2:
|
||||
update_achievement( "FOUND_ALL_INTELS_MAYDAY", 1 );
|
||||
break;
|
||||
case 3:
|
||||
update_achievement( "AWAKENING_ALL_INTEL", 1 );
|
||||
break;
|
||||
case 4:
|
||||
update_achievement( "LAST_ALL_INTEL", 1 );
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user