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

483 lines
12 KiB
Plaintext

// IW6 GSC SOURCE
// Generated by https://github.com/xensik/gsc-tool
main()
{
var_0 = [];
var_0 = createmission();
var_0 addlevel( "prologue", 0, "LEVEL_1", 1, "EXTRA2", undefined );
var_0 addlevel( "deer_hunt", 0, "LEVEL_2", 1, "EXTRA2", undefined );
var_0 addlevel( "nml", 0, "LEVEL_3", 1, "EXTRA2", undefined );
var_0 addlevel( "enemyhq", 0, "LEVEL_4", 1, "EXTRA2", undefined );
var_0 addlevel( "homecoming", 0, "LEVEL_5", 1, "EXTRA2", undefined );
var_0 addlevel( "flood", 0, "LEVEL_6", 1, "EXTRA2", undefined );
var_0 addlevel( "cornered", 0, "LEVEL_7", 1, "EXTRA2", undefined );
var_0 addlevel( "oilrocks", 0, "LEVEL_8", 1, "EXTRA2", undefined );
var_0 addlevel( "jungle_ghosts", 0, "LEVEL_9", 1, "EXTRA2", undefined );
var_0 addlevel( "clockwork", 0, "LEVEL_10", 1, "EXTRA2", undefined );
var_0 addlevel( "black_ice", 0, "LEVEL_11", 1, "EXTRA2", undefined );
var_0 addlevel( "ship_graveyard", 0, "LEVEL_12", 1, "EXTRA2", undefined );
var_0 addlevel( "factory", 0, "LEVEL_13", 1, "EXTRA2", undefined );
var_0 addlevel( "las_vegas", 0, "LEVEL_14", 1, "EXTRA2", undefined );
var_0 addlevel( "carrier", 0, "LEVEL_15", 1, "EXTRA2", undefined );
var_0 addlevel( "satfarm", 1, undefined, 1, "EXTRA2", undefined );
var_0 addlevel( "satfarm_b", 0, "LEVEL_16", 1, "EXTRA2", undefined );
var_0 addlevel( "loki", 0, "LEVEL_17", 1, "EXTRA2", undefined );
var_0 addlevel( "skyway", 0, "LEVEL_18", 1, "EXTRA2", undefined );
if ( isdefined( level.endmission_main_func ) )
{
[[ level.endmission_main_func ]]();
level.endmission_main_func = undefined;
}
level.missionsettings = var_0;
}
debug_test_next_mission()
{
wait 10;
while ( getdvarint( "test_next_mission" ) < 1 )
wait 3;
_nextmission();
}
_nextmission()
{
if ( maps\_utility::is_demo() )
{
setsaveddvar( "ui_nextMission", "0" );
if ( isdefined( level.nextmission_exit_time ) )
changelevel( "", 0, level.nextmission_exit_time );
else
changelevel( "", 0 );
}
else
{
level notify( "nextmission" );
level.nextmission = 1;
level.player enableinvulnerability();
var_0 = undefined;
setsaveddvar( "ui_nextMission", "1" );
setdvar( "ui_showPopup", "0" );
setdvar( "ui_popupString", "" );
setdvar( "ui_prev_map", level.script );
if ( level.script == "prologue" )
level.player setlocalplayerprofiledata( "unlockedAliens", 1 );
game["previous_map"] = undefined;
var_0 = level.missionsettings getlevelindex( level.script );
if ( level.script == "sp_intro" && !getdvarint( "prologue_select" ) )
{
for ( var_1 = var_0 + 1; var_1 < level.missionsettings.levels.size - 1; var_1++ )
{
if ( level.missionsettings.levels[var_1].name == "sp_intro" )
{
var_0 = var_1;
break;
}
}
}
setdvar( "prologue_select", "0" );
maps\_gameskill::auto_adust_zone_complete( "aa_main_" + level.script );
if ( !isdefined( var_0 ) )
{
missionsuccess( level.script );
return;
}
if ( level.script != "skyway" )
maps\_utility::level_end_save();
level.missionsettings setlevelcompleted( var_0 );
var_2 = updatesppercent();
updategamerprofile();
if ( level.missionsettings hasachievement( var_0 ) )
maps\_utility::giveachievement_wrapper( level.missionsettings getachievement( var_0 ) );
if ( level.missionsettings haslevelveteranaward( var_0 ) && getlevelcompleted( var_0 ) == 4 && level.missionsettings check_other_haslevelveteranachievement( var_0 ) )
maps\_utility::giveachievement_wrapper( level.missionsettings getlevelveteranaward( var_0 ) );
if ( level.missionsettings hasmissionhardenedaward() && level.missionsettings getlowestskill() > 2 )
maps\_utility::giveachievement_wrapper( level.missionsettings gethardenedaward() );
if ( level.script == "skyway" )
return;
var_3 = var_0 + 1;
if ( maps\_utility::arcademode() )
{
if ( !getdvarint( "arcademode_full" ) )
{
setsaveddvar( "ui_nextMission", "0" );
missionsuccess( level.script );
return;
}
}
if ( level.missionsettings skipssuccess( var_0 ) )
{
if ( isdefined( level.missionsettings getfadetime( var_0 ) ) )
{
changelevel( level.missionsettings getlevelname( var_3 ), level.missionsettings getkeepweapons( var_0 ), level.missionsettings getfadetime( var_0 ) );
return;
}
changelevel( level.missionsettings getlevelname( var_3 ), level.missionsettings getkeepweapons( var_0 ) );
return;
return;
}
missionsuccess( level.missionsettings getlevelname( var_3 ), level.missionsettings getkeepweapons( var_0 ) );
}
}
updatesppercent()
{
var_0 = int( gettotalpercentcompletesp() * 100 );
if ( getdvarint( "mis_cheat" ) == 0 )
level.player setlocalplayerprofiledata( "percentCompleteSP", var_0 );
return var_0;
}
gettotalpercentcompletesp()
{
var_0 = max( getstat_easy(), getstat_regular() );
var_1 = 0.5;
var_2 = getstat_hardened();
var_3 = 0.25;
var_4 = getstat_veteran();
var_5 = 0.1;
var_6 = getstat_intel();
var_7 = 0.15;
var_8 = 0.0;
var_8 = var_8 + var_1 * var_0;
var_8 = var_8 + var_3 * var_2;
var_8 = var_8 + var_5 * var_4;
var_8 = var_8 + var_7 * var_6;
return var_8;
}
getstat_progression( var_0 )
{
var_1 = level.player getlocalplayerprofiledata( "missionHighestDifficulty" );
var_2 = 0;
var_3 = [];
var_4 = 0;
for ( var_5 = 0; var_5 < level.missionsettings.levels.size - 1; var_5++ )
{
if ( int( var_1[var_5] ) >= var_0 )
var_2++;
}
var_6 = var_2 / ( level.missionsettings.levels.size - 1 ) * 100;
return var_6;
}
getstat_easy()
{
var_0 = 1;
return getstat_progression( var_0 );
}
getstat_regular()
{
var_0 = 2;
return getstat_progression( var_0 );
}
getstat_hardened()
{
var_0 = 3;
return getstat_progression( var_0 );
}
getstat_veteran()
{
var_0 = 4;
return getstat_progression( var_0 );
}
getstat_intel()
{
var_0 = 45;
var_1 = level.player getlocalplayerprofiledata( "cheatPoints" ) / var_0 * 100;
return var_1;
}
getlevelcompleted( var_0 )
{
return int( level.player getlocalplayerprofiledata( "missionHighestDifficulty" )[var_0] );
}
getsolevelcompleted( var_0 )
{
return int( level.player getlocalplayerprofiledata( "missionSOHighestDifficulty" )[var_0] );
}
setlevelcompleted( var_0 )
{
var_1 = level.player getlocalplayerprofiledata( "missionHighestDifficulty" );
var_2 = "";
for ( var_3 = 0; var_3 < var_1.size; var_3++ )
{
if ( var_3 != var_0 )
{
var_2 = var_2 + var_1[var_3];
continue;
}
if ( level.gameskill + 1 > int( var_1[var_0] ) )
{
var_2 = var_2 + ( level.gameskill + 1 );
continue;
}
var_2 = var_2 + var_1[var_3];
}
var_4 = "";
var_5 = 0;
var_6 = 0;
for ( var_7 = 0; var_7 < var_2.size; var_7++ )
{
if ( int( var_2[var_7] ) == 0 || var_5 )
{
var_4 = var_4 + "0";
var_5 = 1;
continue;
}
var_4 = var_4 + var_2[var_7];
var_6++;
}
_sethighestmissionifnotcheating( var_6 );
_setmissiondiffstringifnotcheating( var_4 );
}
_sethighestmissionifnotcheating( var_0 )
{
if ( getdvar( "mis_cheat" ) == "1" )
return;
level.player setlocalplayerprofiledata( "highestMission", var_0 );
}
_setmissiondiffstringifnotcheating( var_0 )
{
if ( getdvar( "mis_cheat" ) == "1" )
return;
level.player setlocalplayerprofiledata( "missionHighestDifficulty", var_0 );
}
getlevelskill( var_0 )
{
var_1 = level.player getlocalplayerprofiledata( "missionHighestDifficulty" );
return int( var_1[var_0] );
}
getmissiondvarstring( var_0 )
{
if ( var_0 < 9 )
return "mis_0" + ( var_0 + 1 );
else
return "mis_" + ( var_0 + 1 );
}
getlowestskill()
{
var_0 = level.player getlocalplayerprofiledata( "missionHighestDifficulty" );
var_1 = 4;
for ( var_2 = 0; var_2 < self.levels.size; var_2++ )
{
if ( int( var_0[var_2] ) < var_1 )
var_1 = int( var_0[var_2] );
}
return var_1;
}
createmission( var_0 )
{
var_1 = spawnstruct();
var_1.levels = [];
var_1.prereqs = [];
var_1.hardenedaward = var_0;
return var_1;
}
addlevel( var_0, var_1, var_2, var_3, var_4, var_5, var_6 )
{
var_7 = self.levels.size;
self.levels[var_7] = spawnstruct();
self.levels[var_7].name = var_0;
self.levels[var_7].keepweapons = var_1;
self.levels[var_7].achievement = var_2;
self.levels[var_7].skipssuccess = var_3;
self.levels[var_7].veteran_achievement = var_4;
if ( isdefined( var_5 ) )
self.levels[var_7].fade_time = var_5;
}
addprereq( var_0 )
{
var_1 = self.prereqs.size;
self.prereqs[var_1] = var_0;
}
getlevelindex( var_0 )
{
foreach ( var_3, var_2 in self.levels )
{
if ( var_2.name == var_0 )
return var_3;
}
return undefined;
}
getlevelname( var_0 )
{
return self.levels[var_0].name;
}
getkeepweapons( var_0 )
{
return self.levels[var_0].keepweapons;
}
getachievement( var_0 )
{
return self.levels[var_0].achievement;
}
getlevelveteranaward( var_0 )
{
return self.levels[var_0].veteran_achievement;
}
getfadetime( var_0 )
{
if ( !isdefined( self.levels[var_0].fade_time ) )
return undefined;
return self.levels[var_0].fade_time;
}
haslevelveteranaward( var_0 )
{
if ( isdefined( self.levels[var_0].veteran_achievement ) )
return 1;
else
return 0;
}
hasachievement( var_0 )
{
if ( isdefined( self.levels[var_0].achievement ) )
return 1;
else
return 0;
}
check_other_haslevelveteranachievement( var_0 )
{
for ( var_1 = 0; var_1 < self.levels.size; var_1++ )
{
if ( var_1 == var_0 )
continue;
if ( !haslevelveteranaward( var_1 ) )
continue;
if ( self.levels[var_1].veteran_achievement == self.levels[var_0].veteran_achievement )
{
if ( getlevelcompleted( var_1 ) < 4 )
return 0;
}
}
return 1;
}
skipssuccess( var_0 )
{
if ( !isdefined( self.levels[var_0].skipssuccess ) )
return 0;
return 1;
}
gethardenedaward()
{
return self.hardenedaward;
}
hasmissionhardenedaward()
{
if ( isdefined( self.hardenedaward ) )
return 1;
else
return 0;
}
getnextlevelindex()
{
for ( var_0 = 0; var_0 < self.levels.size; var_0++ )
{
if ( !getlevelskill( var_0 ) )
return var_0;
}
return 0;
}
force_all_complete()
{
var_0 = level.player getlocalplayerprofiledata( "missionHighestDifficulty" );
var_1 = "";
for ( var_2 = 0; var_2 < var_0.size; var_2++ )
{
if ( var_2 < 20 )
{
var_1 = var_1 + 2;
continue;
}
var_1 = var_1 + 0;
}
level.player setlocalplayerprofiledata( "missionHighestDifficulty", var_1 );
level.player setlocalplayerprofiledata( "highestMission", 20 );
}
clearall()
{
level.player setlocalplayerprofiledata( "missionHighestDifficulty", "00000000000000000000000000000000000000000000000000" );
level.player setlocalplayerprofiledata( "highestMission", 1 );
}
credits_end()
{
changelevel( "airplane", 0 );
}