Files
IL-GSC/MW3/PC/SP/maps/_arcademode.gsc
InfinityLoader d559c1d414 Added MW3 Scripts
2023-10-27 03:47:01 -04:00

1998 lines
45 KiB
Plaintext

/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps\_arcademode.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: PC
* Function Count: 63
* Decompile Time: 1079 ms
* Timestamp: 10/27/2023 2:22:08 AM
*******************************************************************/
//Function Number: 1
main()
{
precachestring(&"SCRIPT_COLON");
precachestring(&"SCRIPT_TIME_REMAINING");
precachestring(&"SCRIPT_TOTAL_SCORE");
precachestring(&"SCRIPT_EXTRA_LIFE");
precachestring(&"SCRIPT_CHECKPOINT");
precachestring(&"SCRIPT_MISSION_SCORE");
precachestring(&"SCRIPT_ZERO_DEATHS");
precachestring(&"SCRIPT_PLUS");
precachestring(&"SCRIPT_TIME_UP");
precachestring(&"SCRIPT_1UP");
precachestring(&"SCRIPT_GAME_OVER");
precachestring(&"SCRIPT_DIFFICULTY_BONUS_ONEANDAHALF");
precachestring(&"SCRIPT_DIFFICULTY_BONUS_THREE");
precachestring(&"SCRIPT_DIFFICULTY_BONUS_FOUR");
precachestring(&"SCRIPT_MISSION_COMPLETE");
precachestring(&"SCRIPT_NEW_HIGH_SCORE");
precachestring(&"SCRIPT_STREAK_BONUS_LOST");
precachestring(&"SCRIPT_STREAK_COMPLETE");
precachestring(&"SCRIPT_X");
precacheshader("arcademode_life");
level.color_cool_green = (0.8,2,0.8);
level.color_cool_green_glow = (0.3,0.6,0.3);
arcademode_init_kill_streak_colors();
level.arcademode_checkpoint_dvars = [];
level.arcademode_checkpoint_max = 10;
level.arcademode_kills_hud = [];
level.arcademode_kill_streak_ends = 0;
level.arcademode_last_streak_time = 0;
level.arcademode_ramping_score = 0;
level.arcademode_new_kill_streak_allowed = 1;
common_scripts\utility::flag_init("arcadeMode_multiplier_maxed");
setdvar("arcademode_lives_changed",0);
level.arcademode_kill_streak_current_multiplier = 1;
level.arcademode_kill_streak_multiplier_count = 3;
arcademode_reset_kill_streak();
for(var_00 = 0;var_00 < level.arcademode_checkpoint_max;var_00++)
{
setdvar("arcademode_checkpoint_" + var_00,"");
}
level.arcademode_last_multi_kill_sound = 0;
level.arcademode_success = 0;
arcademode_define_damage_multipliers();
common_scripts\utility::flag_init("arcademode_complete");
common_scripts\utility::flag_init("arcademode_ending_complete");
waittillframeend;
level.global_kill_func = ::player_kill;
level.global_damage_func_ads = ::player_damage_ads;
level.global_damage_func = ::player_damage;
level.arcademode_hud_sort = 50;
level.arcademode_maxlives = 10;
level.arcademode_rewarded_lives = 0;
if(getdvar("arcademode_lives") == "" || getdvar("arcademode_full") != "1" || level.script == "cargoship")
{
setdvar("arcademode_lives",2);
level.arcademode_rewarded_lives = 2;
}
if(getdvar("arcademode_full") == "1" && level.script == "cargoship")
{
setdvar("arcademode_lives",5);
level.arcademode_rewarded_lives = 5;
}
var_01 = getdvarint("arcadeMode_lives");
setdvar("arcademode_earned_lives",var_01);
level.arcademode_playthrough = getdvarint("arcademode_playthrough_count");
level.arcademode_playthrough++;
setdvar("arcademode_playthrough_count",level.arcademode_playthrough);
setdvar("arcademode_died",0);
setdvar("arcademode_score",0);
if(getdvar("arcademode_combined_score") == "" || getdvar("arcademode_full") == "1" && level.script == "cargoship")
{
setdvar("arcademode_combined_score",0);
}
var_02 = arcademode_get_level_time();
var_02 = var_02 * 60;
level.arcdemode_starttime = gettime();
level.arcademode_time = var_02;
level.arcademode_killbase = 50;
level.arcademode_damagebase = 5;
level.arcademode_multikills = [];
var_03 = getarraykeys(level.arcademode_weaponmultiplier);
for(var_00 = 0;var_00 < var_03.size;var_00++)
{
level.arcademode_multikills[var_03[var_00]] = [];
}
var_04 = level.arcademode_multikills;
thread arcademode_update_lives();
thread arcademode_update_score();
thread arcademode_update_timer();
thread arcademode_death_detection();
arcademode_redraw_lives(var_01);
for(;;)
{
wait 0.05;
waittillframeend;
waittillframeend;
var_03 = getarraykeys(level.arcademode_multikills);
common_scripts\utility::array_levelthread(var_03,::arcademode_add_points_for_mod);
level.arcademode_multikills = var_04;
}
}
//Function Number: 2
arcademode_complete()
{
if(getdvar("arcademode") != "1")
{
return 0;
}
return common_scripts\utility::flag("arcademode_complete");
}
//Function Number: 3
arcademode_get_level_time()
{
var_00 = 20;
var_01 = [];
var_02 = 1;
if(isdefined(var_01[level.script]))
{
var_00 = var_01[level.script];
}
level.arcademode_difficultytimerscale = var_02;
return var_00;
}
//Function Number: 4
arcademode_death_detection()
{
level endon("arcademode_complete");
level maps\_utility::add_wait(::common_scripts\utility::flag_wait,"missionfailed");
level.player maps\_utility::add_wait(::maps\_utility::waittill_msg,"death");
maps\_utility::do_wait_any();
setdvar("arcademode_died",1);
var_00 = getdvarint("arcademode_lives");
var_01 = getdvarint("arcademode_earned_lives");
if(var_00 > var_01)
{
var_00 = var_01;
}
var_00 = var_00 - 1;
setdvar("arcademode_lives",var_00);
setdvar("arcademode_lives_changed",-1);
arcademode_redraw_lives(var_00 + 1);
level.arcademode_redraw_score = 1;
updatescoreelemsonce();
if(var_00 < 0)
{
wait 1.5;
level.arcademode_failurestring = &"SCRIPT_GAME_OVER";
thread arcademode_ends();
return;
}
if(isalive(level.player))
{
missionfailed();
}
}
//Function Number: 5
arcademode_update_timer()
{
level.player endon("death");
var_00 = newhudelem();
var_00.foreground = 1;
var_00.alignx = "right";
var_00.aligny = "top";
var_00.horzalign = "right";
var_00.vertalign = "top";
var_00.x = 0;
var_00.y = 60;
var_00.sort = level.arcademode_hud_sort;
var_00.fontscale = 3;
var_00.color = (0.8,1,0.8);
var_00.font = "objective";
var_00.glowcolor = (0.3,0.6,0.3);
var_00.glowalpha = 1;
var_00.hidewheninmenu = 1;
level.arcademode_hud_timer = var_00;
level endon("arcadeMode_remove_timer");
var_01 = level.arcademode_time;
var_00 settimer(var_01 - 0.1);
wait var_01;
level.arcademode_failurestring = &"SCRIPT_TIME_UP";
thread arcademode_ends();
}
//Function Number: 6
arcademode_update_lives()
{
level.player endon("death");
level endon("missionfailed");
level.arcademode_lives_hud = [];
for(var_00 = 0;var_00 < level.arcademode_maxlives;var_00++)
{
arcademode_add_life(var_00,16,78,-18,64,level.arcademode_hud_sort);
}
for(;;)
{
var_01 = getdvarint("arcademode_lives_changed");
if(var_01 != 0)
{
var_02 = getdvarint("arcademode_lives");
if(var_02 < 0)
{
level.arcademode_failurestring = &"SCRIPT_GAME_OVER";
thread arcademode_ends();
return;
}
if(var_01 == -1)
{
level notify("lost_streak");
level.arcademode_kill_streak_ends = gettime();
thread arcademode_add_kill_streak_time(0);
level.arcademode_new_kill_streak_allowed = 0;
var_03 = getdvarint("arcademode_earned_lives");
var_03--;
var_02 = var_03;
setdvar("arcademode_earned_lives",var_03);
setdvar("arcademode_lives",var_03);
}
arcademode_redraw_lives(var_02);
level.arcademode_redraw_score = 1;
setdvar("arcademode_lives_changed",0);
}
wait 0.05;
}
}
//Function Number: 7
arcademode_convert_extra_lives()
{
var_00 = getdvarint("arcademode_lives");
var_01 = getdvarint("arcademode_earned_lives");
if(var_00 > var_01)
{
thread extra_lives_display(var_00 - var_01);
}
setdvar("arcademode_earned_lives",var_00);
thread arcademode_redraw_lives(var_00);
return var_00 > var_01;
}
//Function Number: 8
arcademode_checkpoint_print()
{
if(!maps\_utility::arcademode())
{
return;
}
arcademode_convert_extra_lives();
var_00 = 800;
var_01 = 0.8;
level.player thread common_scripts\utility::play_sound_in_space("arcademode_checkpoint",level.player geteye());
thread draw_checkpoint(var_00,var_01,1);
thread draw_checkpoint(var_00,var_01,-1);
}
//Function Number: 9
arcademode_redraw_life(param_00,param_01)
{
if(param_00 >= param_01)
{
self setshader("arcademode_life",64,64);
}
else
{
self setshader("stance_stand",64,64);
}
self fadeovertime(1);
self.alpha = 1;
self.glowalpha = 1;
self.color = level.color_cool_green;
}
//Function Number: 10
arcademode_remove_life(param_00)
{
if(self.alpha <= 0)
{
return;
}
self fadeovertime(1);
self.alpha = 0;
self.color = (1,0,0);
self.glowalpha = 0;
}
//Function Number: 11
arcademode_redraw_lives(param_00)
{
if(param_00 > 10)
{
param_00 = 10;
}
var_01 = getdvarint("arcademode_earned_lives");
for(var_02 = 0;var_02 < param_00;var_02++)
{
level.arcademode_lives_hud[var_02] arcademode_redraw_life(var_02,var_01);
}
for(var_02 = param_00;var_02 < level.arcademode_maxlives;var_02++)
{
if(var_02 < 0)
{
continue;
}
if(var_02 >= 10)
{
continue;
}
level.arcademode_lives_hud[var_02] arcademode_remove_life(var_02);
}
}
//Function Number: 12
arcademode_update_streak_progress()
{
for(;;)
{
level common_scripts\utility::waittill_either("arcademode_decrement_kill_streak","arcademode_new_kill");
waittillframeend;
arcademode_redraw_streak_progress();
}
}
//Function Number: 13
arcademode_redraw_streak_progress()
{
for(var_00 = 0;var_00 < level.arcademode_kill_streak_current_count;var_00++)
{
if(var_00 >= level.arcademode_kills_hud.size)
{
return;
}
level.arcademode_kills_hud[var_00].color = level.arcademode_streak_color[level.arcademode_kill_streak_current_multiplier - 1];
level.arcademode_kills_hud[var_00].glowcolor = level.arcademode_streak_glow[level.arcademode_kill_streak_current_multiplier - 1];
}
var_01 = 0;
for(;;)
{
var_02 = level.arcademode_kill_streak_current_multiplier + var_01;
if(var_02 >= level.arcademode_streak_color.size)
{
var_02 = level.arcademode_streak_color.size - 1;
}
for(var_00 = level.arcademode_kill_streak_current_count + var_01 * level.arcademode_kill_streak_multiplier_count;var_00 < level.arcademode_kill_streak_current_count + var_01 + 1 * level.arcademode_kill_streak_multiplier_count;var_00++)
{
if(var_00 >= level.arcademode_kills_hud.size)
{
return;
}
level.arcademode_kills_hud[var_00].color = level.arcademode_streak_color[var_02];
level.arcademode_kills_hud[var_00].glowcolor = level.arcademode_streak_glow[var_02];
}
var_01++;
}
}
//Function Number: 14
arcademode_add_kill(param_00,param_01,param_02,param_03,param_04,param_05)
{
level endon("arcademode_stop_kill_streak_art");
var_06 = newhudelem();
var_06.foreground = 1;
var_06.x = param_01 + param_00 * param_03;
if(level.arcademode_kills_hud.size == 0)
{
level.arcademode_kill_zero_x_location = var_06.x;
}
var_06.y = param_02;
var_06 setshader("arcademode_kill",param_04,param_04);
var_06.alignx = "right";
var_06.aligny = "top";
var_06.horzalign = "right";
var_06.vertalign = "top";
var_06.sort = param_05;
var_06.color = level.color_cool_green;
var_06.glowcolor = level.color_cool_green_glow;
var_06.glowalpha = 1;
var_06.hidewheninmenu = 1;
var_07 = 0;
level.arcademode_kills_hud[level.arcademode_kills_hud.size] = var_06;
if(level.arcademode_kills_hud.size == 10)
{
var_07 = 1;
var_06.alpha = 0;
}
else
{
var_06.alpha = 1;
}
for(;;)
{
if(var_06.x == level.arcademode_kill_zero_x_location)
{
var_08 = 4;
if(level.arcademode_kills_hud.size == 1)
{
wait 3;
}
var_06 fadeovertime(var_08);
var_06.color = (1,0,0);
var_06.alpha = 0;
wait var_08;
level notify("arcademode_decrement_kill_streak");
var_06 destroy();
for(var_09 = 0;var_09 < level.arcademode_kills_hud.size - 1;var_09++)
{
level.arcademode_kills_hud[var_09] = level.arcademode_kills_hud[var_09 + 1];
}
level.arcademode_kills_hud[level.arcademode_kills_hud.size - 1] = undefined;
if(!level.arcademode_kills_hud.size)
{
thread arcademode_reset_kill_streak();
}
return;
}
level waittill("arcademode_decrement_kill_streak");
wait 0.05;
var_08 moveovertime(0.5);
var_08.x = var_08.x - param_05;
if(var_09)
{
var_08 fadeovertime(0.5);
var_08.alpha = 1;
var_09 = 0;
}
}
}
//Function Number: 15
get_streak_hud(param_00,param_01,param_02,param_03)
{
var_04 = newhudelem();
var_04.foreground = 1;
var_04.x = param_00 + -4;
var_04.y = param_01 + 14;
var_04.alignx = "right";
var_04.aligny = "top";
var_04.horzalign = "right";
var_04.vertalign = "top";
var_04.color = level.color_cool_green;
var_04.sort = level.arcademode_hud_sort - 1;
var_04.alpha = 0;
var_04.glowcolor = level.color_cool_green_glow;
var_04.glowalpha = 0;
var_04.hidewheninmenu = 1;
var_04 setshader("white",param_02,param_03);
return var_04;
}
//Function Number: 16
arcademode_add_kill_streak_time(param_00)
{
if(!level.arcademode_new_kill_streak_allowed)
{
return;
}
level notify("arcademode_new_kill_streak_time");
level endon("arcademode_new_kill_streak_time");
if(level.arcademode_kill_streak_ends < gettime())
{
level.arcademode_kill_streak_ends = gettime() + param_00 * 1000;
}
else
{
level.arcademode_kill_streak_ends = level.arcademode_kill_streak_ends + param_00 * 1000;
}
waittillframeend;
if(isdefined(level.arcademode_hud_streak))
{
level.arcademode_hud_streak fadeovertime(0.05);
level.arcademode_hud_streak.alpha = 1;
}
var_01 = 26;
var_02 = 12;
var_03 = 90;
var_04 = level.arcademode_streak_hud;
var_05 = level.arcademode_streak_hud_shadow;
var_06 = level.arcademode_kill_streak_ends - gettime();
var_06 = var_06 * 0.001;
if(var_06 > var_03)
{
var_06 = var_03;
}
var_06 = var_06 * var_02;
var_06 = int(var_06);
if(var_06 > 980)
{
var_06 = 980;
}
if(!isdefined(var_04))
{
var_04 = get_streak_hud(0,0,var_06,var_01);
var_05 = get_streak_hud(3,3,var_06,var_01);
var_05.sort = var_05.sort - 1;
var_05.alpha = 0;
var_05.color = (0,0,0);
}
else
{
var_04 scaleovertime(1,var_06,var_01);
var_05 scaleovertime(1,var_06,var_01);
wait 1;
}
level.arcademode_streak_hud = var_04;
level.arcademode_streak_hud_shadow = var_05;
var_04 endon("death");
param_00 = level.arcademode_kill_streak_ends - gettime();
param_00 = param_00 * 0.001;
var_07 = int(param_00);
if(var_07 > var_03)
{
var_07 = var_03;
wait param_00 - var_07;
}
for(;;)
{
var_06 = level.arcademode_kill_streak_ends - gettime();
var_06 = var_06 * 0.001;
var_08 = var_06;
if(isdefined(level.arcademode_hud_streak))
{
level.arcademode_hud_streak fadeovertime(1);
level.arcademode_hud_streak.alpha = var_08 - 1 / 5;
}
var_06 = var_06 * var_02;
var_06 = int(var_06);
if(var_06 <= 0)
{
var_06 = 1;
}
if(var_06 > 980)
{
var_06 = 980;
}
var_04 scaleovertime(1,var_06,var_01);
var_05 scaleovertime(1,var_06,var_01);
wait 1;
if(var_06 == 1)
{
break;
}
}
thread arcademode_reset_kill_streak();
}
//Function Number: 17
arcademode_add_kill_streak()
{
if(common_scripts\utility::flag("arcadeMode_multiplier_maxed"))
{
return;
}
level endon("arcadeMode_multiplier_maxed");
level endon("arcademode_stop_kill_streak");
level.arcademode_kill_streak_current_count--;
var_00 = gettime();
if(level.arcademode_kill_streak_current_count <= 0 && var_00 > level.arcademode_last_streak_time)
{
level.arcademode_last_streak_time = var_00;
var_01 = level.arcademode_kill_streak_current_multiplier;
level.arcademode_kill_streak_current_multiplier++;
if(level.arcademode_kill_streak_current_multiplier >= level.arcademode_streak_color.size)
{
level.arcademode_kill_streak_current_multiplier = level.arcademode_streak_color.size;
thread arcademode_multiplier_maxed();
}
if(var_01 != level.arcademode_kill_streak_current_multiplier)
{
level notify("arcademode_new_kill_streak");
level.player playsound("arcademode_" + level.arcademode_kill_streak_current_multiplier + "x");
thread arcademode_draw_multiplier();
}
level.arcademode_kill_streak_current_count = level.arcademode_kill_streak_multiplier_count;
}
level notify("arcademode_new_kill");
for(;;)
{
if(level.arcademode_kills_hud.size < 10)
{
arcademode_add_kill_streak_time(5);
return;
}
level waittill("arcademode_decrement_kill_streak");
}
}
//Function Number: 18
streak_timer_color_pulse()
{
waittillframeend;
waittillframeend;
level.arcademode_streak_hud endon("death");
for(;;)
{
var_00 = randomfloatrange(0.1,1);
level.arcademode_streak_hud fadeovertime(var_00);
level.arcademode_streak_hud.color = (randomfloat(1),randomfloat(1),randomfloat(1));
wait var_00;
}
}
//Function Number: 19
arcademode_multiplier_maxed()
{
waittillframeend;
if(common_scripts\utility::flag("arcadeMode_multiplier_maxed"))
{
return;
}
common_scripts\utility::flag_set("arcadeMode_multiplier_maxed");
var_00 = 20;
level.arcademode_kill_streak_ends = gettime() + var_00 * 1000;
thread arcademode_add_kill_streak_time(0);
thread streak_timer_color_pulse();
musicstop();
wait 0.05;
musicplay("airplane_alt_maximum_music");
maps\_utility::add_wait(::maps\_utility::_wait,var_00 + 1);
level maps\_utility::add_wait(::maps\_utility::waittill_msg,"lost_streak");
maps\_utility::do_wait_any();
thread arcademode_reset_kill_streak();
musicstop();
if(isdefined(level.last_song))
{
wait 0.05;
musicplay(level.last_song);
}
}
//Function Number: 20
get_hud_score()
{
var_00 = newhudelem();
var_00.foreground = 1;
var_00.x = 0;
var_00.y = 10;
var_00.alignx = "right";
var_00.aligny = "top";
var_00.horzalign = "right";
var_00.vertalign = "top";
var_00.score = 0;
var_00.font = "objective";
var_00.fontscale = 5;
var_00.sort = level.arcademode_hud_sort;
var_00.glowcolor = level.color_cool_green_glow;
var_00.glowalpha = 1;
var_00.hidewheninmenu = 1;
return var_00;
}
//Function Number: 21
arcademode_update_score()
{
level.player endon("death");
level.arcademode_hud_digits = 10;
level.arcademode_hud_scores = [];
for(var_00 = 0;var_00 < level.arcademode_hud_digits;var_00++)
{
level.arcademode_hud_scores[level.arcademode_hud_scores.size] = get_hud_score();
level.arcademode_hud_scores[level.arcademode_hud_scores.size - 1].x = var_00 * -30;
}
if(getdvarint("arcademode_full"))
{
var_01 = getdvarint("arcademode_combined_score");
}
else
{
var_01 = getdvarint("arcademode_score");
}
hud_draw_score(var_01);
level.arcademode_redraw_score = 0;
for(;;)
{
wait 0.05;
updatescoreelemsonce();
if(level.arcademode_redraw_score)
{
level.arcademode_redraw_score = 0;
}
}
}
//Function Number: 22
updatescoreelemsonce()
{
if(getdvarint("arcademode_full"))
{
hud_update_score("arcadeMode_combined_score");
return;
}
hud_update_score("arcademode_score");
}
//Function Number: 23
hud_update_score(param_00)
{
var_01 = getdvarint(param_00);
if(level.arcademode_redraw_score)
{
level.arcademode_ramping_score = var_01;
hud_draw_score(var_01);
return;
}
if(level.arcademode_ramping_score >= var_01)
{
return;
}
var_02 = var_01 - level.arcademode_ramping_score;
var_03 = var_02 * 0.2 + 1;
if(var_02 <= 15)
{
var_03 = 1;
}
level.arcademode_ramping_score = level.arcademode_ramping_score + var_03;
if(level.arcademode_ramping_score > var_01)
{
level.arcademode_ramping_score = var_01;
}
hud_draw_score(int(level.arcademode_ramping_score));
}
//Function Number: 24
get_digits_from_score(param_00)
{
var_01 = [];
param_00 = int(param_00);
for(;;)
{
var_01 = int(var_01 * 0.1);
if(var_01 <= 0)
{
break;
}
}
return var_7B;
}
//Function Number: 25
hud_draw_score(param_00)
{
hud_draw_score_for_elements(param_00,level.arcademode_hud_scores);
}
//Function Number: 26
hud_draw_score_for_elements(param_00,param_01)
{
var_02 = get_digits_from_score(param_00);
for(var_03 = 0;var_03 < var_02.size;var_03++)
{
if(var_03 >= param_01.size - 1)
{
break;
}
param_01[var_03] setvalue(var_02[var_03]);
param_01[var_03].alpha = 1;
}
for(var_03 = var_02.size;var_03 < param_01.size;var_03++)
{
param_01[var_03].alpha = 0;
}
if(param_00 == 0)
{
param_01[0].alpha = 1;
param_01[0] setvalue(0);
}
}
//Function Number: 27
arcademode_add_life(param_00,param_01,param_02,param_03,param_04,param_05)
{
var_06 = newhudelem();
var_06.foreground = 1;
var_06.x = param_01 + param_00 * param_03;
var_06.y = param_02;
var_06 setshader("stance_stand",param_04,param_04);
var_06.alignx = "right";
var_06.aligny = "top";
var_06.horzalign = "right";
var_06.vertalign = "top";
var_06.sort = param_05;
var_06.color = level.color_cool_green;
var_06.glowcolor = level.color_cool_green_glow;
var_06.glowalpha = 0;
var_06.alpha = 0;
var_06.hidewheninmenu = 1;
level.arcademode_lives_hud[level.arcademode_lives_hud.size] = var_06;
}
//Function Number: 28
arcademode_define_damage_multipliers()
{
var_00[0] = 40;
level.arcademode_kills_until_next_extra_life = 10;
level.arcademode_extra_lives_range = var_7B;
var_01 = [];
for(var_02 = 0;var_02 < 4;var_02++ = var_7B[3])
{
var_01[var_02] = var_7B[var_02] * 0.15;
}
level.arcademode_extra_lives_base = var_01;
}
//Function Number: 29
set_next_extra_life(param_00)
{
}
//Function Number: 30
new_ending_hud(param_00,param_01,param_02,param_03)
{
var_04 = newhudelem();
var_04.foreground = 1;
var_04.x = param_02;
var_04.y = param_03;
var_04.alignx = param_00;
var_04.aligny = "middle";
var_04.horzalign = param_00;
var_04.vertalign = "middle";
var_04.fontscale = 3;
if(getdvar("widescreen") == "1")
{
var_04.fontscale = 5;
}
var_04.color = (0.8,1,0.8);
var_04.font = "objective";
var_04.glowcolor = (0.3,0.6,0.3);
var_04.glowalpha = 1;
var_04.alpha = 0;
var_04 fadeovertime(param_01);
var_04.alpha = 1;
var_04.hidewheninmenu = 1;
var_04.sort = level.arcademode_hud_sort + 10;
return var_04;
}
//Function Number: 31
extra_lives_display(param_00)
{
for(var_01 = 0;var_01 < 5;var_01++)
{
thread extra_lives_sizzle();
}
var_02 = new_ending_hud("center",0.2,0,-100);
var_02.label = &"SCRIPT_EXTRA_LIFE";
var_02 setvalue(param_00);
var_02 setpulsefx(5,3000,1000);
wait 5;
var_02 destroy();
}
//Function Number: 32
fade_out(param_00)
{
self fadeovertime(param_00);
self.alpha = 0;
wait param_00;
self destroy();
}
//Function Number: 33
extra_lives_sizzle()
{
var_00 = new_ending_hud("center",0.2,0,-100);
var_00.alpha = randomfloatrange(0.1,0.45);
var_00.sort = var_00.sort - 1;
var_00 settext(&"SCRIPT_EXTRA_LIFE");
var_00 maps\_utility::delaythread(3,::fade_out,1);
var_00 endon("death");
var_01 = var_00.x;
var_02 = var_00.y;
var_03 = 20;
for(;;)
{
var_04 = randomfloatrange(0.1,0.2);
var_00 moveovertime(var_04);
var_00.x = var_01 + randomfloatrange(var_03 * -1,var_03);
var_00.y = var_02 + randomfloatrange(var_03 * -1,var_03);
wait var_04;
}
}
//Function Number: 34
round_up_to_five(param_00)
{
var_01 = param_00 - param_00 % 5;
if(var_01 < param_00)
{
var_01 = var_01 + 5;
}
return var_01;
}
//Function Number: 35
arcademode_add_points(param_00,param_01,param_02,param_03)
{
if(param_03 <= 0)
{
return;
}
if(isdefined(level.arcademode_deathtypes[param_02]))
{
param_02 = level.arcademode_deathtypes[param_02];
}
param_03 = int(param_03);
param_03 = round_up_to_five(param_03);
param_03 = param_03 * level.arcademode_kill_streak_current_multiplier;
var_04 = getdvarint("arcademode_score");
var_04 = var_04 + param_03;
var_05 = getdvarint("arcademode_combined_score");
var_05 = var_05 + param_03;
setdvar("arcademode_combined_score",var_05);
setdvar("arcademode_score",var_04);
var_06 = 60;
var_07 = 1.5;
var_08 = 0.9 + param_03 - 10 * 0.01;
if(var_08 > 1.4)
{
var_08 = 1.4;
}
var_09 = (0.75,0,0);
if(param_01)
{
thread arcademode_add_kill_streak();
thread arcademode_add_point_towards_extra_life();
var_09 = level.arcademode_killcolors[param_02];
}
level.player pointpulse(param_03);
}
//Function Number: 36
arcademode_add_point_towards_extra_life()
{
level.arcademode_kills_until_next_extra_life = level.arcademode_kills_until_next_extra_life - 1;
if(level.arcademode_kills_until_next_extra_life > 0)
{
return;
}
level.arcademode_rewarded_lives++;
var_00 = getdvarint("arcademode_lives");
var_00++;
if(var_00 >= level.arcademode_maxlives)
{
var_00 = level.arcademode_maxlives;
}
else
{
setdvar("arcademode_lives",var_00);
setdvar("arcademode_lives_changed",1);
}
level.arcademode_kills_until_next_extra_life = level.arcademode_extra_lives_range[level.gameskill];
}
//Function Number: 37
arcademode_set_origin_in_radius()
{
var_00 = 60;
var_01 = 90;
if(level.player.pointpulseindex > 0)
{
if(level.player.pointpulseindex == 1)
{
var_02 = randomint(1);
level.player.thirdpointpulseside = 1 - var_02;
if(var_02)
{
var_01 = 45;
}
else
{
var_01 = 135;
}
}
else if(level.player.pointpulseindex == 2)
{
var_02 = level.player.thirdpointpulseside;
if(var_02)
{
var_01 = 45;
}
else
{
var_01 = 135;
}
}
else if(level.player.pointpulseindex <= 4)
{
var_01 = randomfloatrange(0,180);
var_00 = randomfloatrange(60,120);
}
else if(level.player.pointpulseindex <= 8)
{
var_01 = randomfloatrange(0,180);
var_00 = randomfloatrange(60,160);
}
else
{
var_01 = randomfloatrange(-30,210);
var_00 = randomfloatrange(60,200);
}
}
self.x = var_00 * cos(var_01);
self.y = 0 - var_00 * sin(var_01);
}
//Function Number: 38
pointpulse(param_00)
{
if(param_00 == 0)
{
return;
}
if(!isdefined(level.player.pointpulsecount))
{
level.player.pointpulsecount = 0;
level.player.pointpulseindex = 0;
}
var_01 = newhudelem();
var_01.horzalign = "center";
var_01.vertalign = "middle";
var_01.alignx = "center";
var_01.aligny = "middle";
var_01 arcademode_set_origin_in_radius();
var_01.font = "objective";
var_01.fontscale = 2.5;
var_01.archived = 0;
var_01.color = (0.5,0.5,0.5);
var_01.sort = 4;
var_02 = level.arcademode_kill_streak_current_multiplier;
level.player.pointpulsecount++;
level.player.pointpulseindex++;
wait 0.05;
if(param_00 <= 0)
{
var_01.label = &"";
var_01.color = (1,0,0);
var_01.glowcolor = (0,0,0);
var_01.glowalpha = 0;
}
else
{
var_01.label = &"SCRIPT_PLUS";
var_01.color = (1,1,1);
var_01.glowcolor = level.color_cool_green_glow;
var_01.glowalpha = 1;
}
var_01 setvalue(param_00);
var_01.alpha = 1;
var_01 changefontscaleovertime(0.15);
var_01.fontscale = 3.5;
wait 0.15;
var_01 moveovertime(1.75);
var_01.y = var_01.y - 40;
var_01 changefontscaleovertime(0.25);
var_01.fontscale = 2.5;
wait 0.25;
wait 0.5;
var_01 fadeovertime(1);
var_01.alpha = 0;
wait 0.5;
level.player.pointpulsecount--;
if(level.player.pointpulsecount == 0)
{
level.player.pointpulseindex = 0;
}
var_01 destroy();
}
//Function Number: 39
set_circular_origin()
{
var_00 = 50;
for(;;)
{
var_01 = randomint(var_00);
var_02 = randomint(var_00);
if(distance((0,0,0),(var_01,var_02,0)) < var_00)
{
break;
}
}
if(common_scripts\utility::cointoss())
{
var_01 = var_01 * -1;
}
if(common_scripts\utility::cointoss())
{
var_02 = var_02 * -1;
}
self.x = var_01;
self.y = var_02;
}
//Function Number: 40
arcademode_add_points_for_mod(param_00)
{
for(var_01 = 0;var_01 < level.arcademode_multikills[param_00].size;var_01++)
{
arcademode_add_points_for_individual_kill(level.arcademode_multikills[param_00][var_01],param_00,level.arcademode_multikills[param_00].size);
}
}
//Function Number: 41
arcademode_add_points_for_individual_kill(param_00,param_01,param_02)
{
if(param_00["type"] != "melee")
{
var_03 = level.arcademode_killbase + level.arcademode_locationkillbonus[param_00["damage_location"]] + level.arcademode_weaponbonus[param_00["type"]];
}
else
{
var_03 = level.arcademode_killbase + level.arcademode_weaponbonus[param_01["type"]];
}
thread arcademode_add_points(param_00["origin"],1,param_01,var_03);
}
//Function Number: 42
player_kill(param_00,param_01,param_02)
{
if(!isdefined(param_01))
{
param_01 = "none";
}
var_03 = level.arcademode_deathtypes[param_00];
if(!isdefined(var_03))
{
var_04 = level.arcademode_killbase;
thread arcademode_add_points(param_02,1,"melee",var_04);
return;
}
var_05["damage_location"] = param_02;
if(var_05 == "explosive")
{
}
level.arcademode_multikills[var_05][level.arcademode_multikills[var_05].size] = var_7B;
}
//Function Number: 43
player_damage(param_00,param_01,param_02)
{
thread arcademode_add_points(param_02,0,param_00,level.arcademode_damagebase);
}
//Function Number: 44
player_damage_ads(param_00,param_01,param_02)
{
thread arcademode_add_points(param_02,0,param_00,level.arcademode_damagebase * 1.25);
}
//Function Number: 45
end_mission()
{
setsaveddvar("ui_nextMission","0");
for(var_00 = 0;var_00 < level.players.size;var_00++)
{
var_01 = level.players[var_00];
var_01.maxhealth = 0;
var_01.health = 1;
}
missionsuccess("killhouse");
}
//Function Number: 46
create_total_score_hud(param_00,param_01)
{
level.arcademode_hud_total_scores = [];
for(var_02 = 0;var_02 < level.arcademode_hud_digits;var_02++)
{
var_03 = get_hud_score();
level.arcademode_hud_total_scores[level.arcademode_hud_total_scores.size] = var_03;
var_03.x = var_02 * -30 + -150 + param_00;
var_03.y = param_01;
var_03.alignx = "right";
var_03.aligny = "middle";
var_03.horzalign = "right";
var_03.vertalign = "middle";
var_03.alpha = 0;
var_03.sort = level.arcademode_hud_sort + 10;
}
}
//Function Number: 47
set_total_score_hud(param_00)
{
hud_draw_score_for_elements(param_00,level.arcademode_hud_total_scores);
}
//Function Number: 48
arcademode_ends()
{
if(common_scripts\utility::flag("arcademode_complete"))
{
return;
}
common_scripts\utility::flag_set("arcademode_complete");
maps\_utility::slowmo_setlerptime_out(0.05);
maps\_utility::slowmo_lerp_out();
maps\_utility::slowmo_end();
if(level.arcademode_success)
{
if(arcademode_convert_extra_lives())
{
wait 2;
}
}
var_00 = 0;
if(isdefined(level.arcademode_stoptime))
{
var_00 = gettime() - level.arcademode_stoptime;
var_00 = var_00 * 0.001;
}
var_01 = gettime() - level.arcdemode_starttime;
var_01 = var_01 * 0.001;
var_01 = var_01 - var_00;
var_02 = level.arcademode_time - var_01;
var_02 = int(var_02);
if(var_02 == 0)
{
var_02++;
}
var_03 = 0.5;
level.mission_failed_disabled = 1;
thread player_invul_forever();
thread black_background(var_03);
wait var_03 + 0.25;
level.player freezecontrols(1);
var_04 = 1;
var_05 = -140;
var_06 = -80;
var_07 = -20;
var_08 = 40;
var_09 = 100;
var_0A = 300;
var_0B = new_ending_hud("center",var_04,0,var_05);
if(level.arcademode_success)
{
var_0B.color = (1,1,1);
var_0B settext(&"SCRIPT_MISSION_COMPLETE");
}
else
{
var_0B.color = (1,0.4,0.2);
var_0B.glowcolor = (0.75,0.3,0.3);
var_0B settext(level.arcademode_failurestring);
}
wait 1;
for(var_0C = 0;var_0C < level.arcademode_maxlives;var_0C++)
{
level.arcademode_lives_hud[var_0C] destroy();
}
var_0D = 130;
level.arcademode_lives_hud = [];
for(var_0C = 0;var_0C < level.arcademode_maxlives;var_0C++)
{
arcademode_add_life(var_0C,-135 + var_0D,var_0A,-30,96,level.arcademode_hud_sort + 10);
}
var_0E = getdvarint("arcademode_lives");
var_0F = level.arcademode_rewarded_lives;
if(var_0E > var_0F)
{
var_0E = var_0F;
}
arcademode_redraw_lives(var_0E);
var_10 = 0;
var_11 = undefined;
if(getdvar("arcademode_full") == "1")
{
var_11 = new_ending_hud("left",var_04,20,var_06);
var_11 settext(&"SCRIPT_TOTAL_SCORE");
create_total_score_hud(var_0D,var_06);
var_10 = getdvarint("arcademode_combined_score");
set_total_score_hud(var_10);
}
var_12 = new_ending_hud("left",var_04,20,var_07);
var_12 settext(&"SCRIPT_MISSION_SCORE");
for(var_0C = 0;var_0C < level.arcademode_hud_digits;var_0C++)
{
var_13 = level.arcademode_hud_scores[var_0C];
var_13.x = var_0C * -30 + -150 + var_0D;
var_13.y = var_07;
var_13.sort = level.arcademode_hud_sort + 10;
var_13.alignx = "right";
var_13.aligny = "middle";
var_13.horzalign = "right";
var_13.vertalign = "middle";
}
hud_draw_score(0);
var_14 = 0;
var_15 = 0;
while(var_02 >= 60)
{
var_14++;
var_02 = var_02 - 60;
}
var_15 = var_02;
var_16 = new_ending_hud("left",var_04,20,var_08);
var_16 settext(&"SCRIPT_TIME_REMAINING");
level.arcademode_hud_timer_minutes_tens = new_ending_hud("right",var_04,-265 + var_0D,var_08);
level.arcademode_hud_timer_minutes_ones = new_ending_hud("right",var_04,-235 + var_0D,var_08);
var_17 = new_ending_hud("right",var_04,-215 + var_0D,var_08 - 5);
var_17 settext(&"SCRIPT_COLON");
level.arcademode_hud_timer_seconds_tens = new_ending_hud("right",var_04,-180 + var_0D,var_08);
level.arcademode_hud_timer_seconds_ones = new_ending_hud("right",var_04,-150 + var_0D,var_08);
ending_set_time(var_14,var_15);
wait var_04;
wait 1;
var_18 = getdvarint("arcadeMode_score");
var_19 = 0;
var_1A = var_10;
var_1B = 0;
for(;;)
{
var_1C = var_18 - var_19;
var_1D = var_1C * 0.2 + 1;
if(var_1C <= 15)
{
var_1D = 1;
}
var_1D = int(var_1D);
var_19 = var_19 + var_1D;
if(var_19 > var_18)
{
var_19 = var_18;
}
hud_draw_score(var_19);
if(var_19 == var_18)
{
break;
}
var_1B--;
if(var_1B <= 0)
{
level.player thread common_scripts\utility::play_sound_in_space("bullet_ap_dirt",level.player geteye());
var_1B = 3;
}
wait 0.05;
}
wait 1;
var_1E = 0;
var_1F = undefined;
if(level.arcademode_success)
{
var_20 = 5;
var_21 = var_14 * 60 + var_15;
var_22 = ceil(var_21 / 15);
var_23 = ceil(var_21 * var_20);
var_24 = ceil(var_23 / level.arcademode_difficultytimerscale);
var_25 = var_19;
var_26 = var_19 + var_24;
var_27 = var_10;
var_28 = var_10 + var_24;
for(var_0C = 1;var_0C <= var_22;var_0C++)
{
var_29 = var_0C * 1 / var_22;
if(var_0C == var_22)
{
var_29 = 1;
}
var_19 = int(var_25 * 1 - var_29 + var_26 * var_29);
if(getdvar("arcademode_full") == "1")
{
var_10 = int(var_27 * 1 - var_29 + var_28 * var_29);
set_total_score_hud(var_10);
}
hud_draw_score(var_19);
var_2A = int(var_21 * 1 - var_29);
ending_set_time(floor(var_2A / 60),var_2A % 60);
var_1B--;
if(var_1B <= 0)
{
level.player thread common_scripts\utility::play_sound_in_space("bullet_ap_metal",level.player geteye());
var_1B = 3;
}
wait 0.05;
}
ending_set_time(0,0);
wait 1;
for(;;)
{
var_2B = 1;
if(var_0E > 10)
{
var_2C = var_0E % 10;
if(var_0E - var_2C >= 10)
{
var_2B = 10;
}
else
{
var_2B = var_2C;
}
if(var_0E < 20)
{
var_2B = var_2C;
}
}
var_0E = var_0E - var_2B;
if(var_0E < 0)
{
break;
}
var_2D = 1000;
var_2D = var_2D * var_2B;
var_1D = int(var_2D);
if(getdvar("arcademode_full") == "1")
{
var_10 = var_10 + var_1D;
set_total_score_hud(var_10);
}
var_19 = var_19 + var_1D;
level.player thread common_scripts\utility::play_sound_in_space("mortar_explosion",level.player geteye());
hud_draw_score(int(var_19));
arcademode_redraw_lives(var_0E);
wait 0.6;
}
wait 1;
if(getdvarint("arcademode_died") != 1 && level.gameskill >= 2)
{
var_1D = int(var_19);
arcademode_end_boost(var_19,var_10,var_1D,&"SCRIPT_ZERO_DEATHS","bullet_ap_bark",var_09,var_04);
var_19 = var_19 + var_1D;
var_10 = var_10 + var_1D;
}
}
else
{
level.arcademode_hud_timer_seconds_ones setpulsefx(0,0,1000);
level.arcademode_hud_timer_seconds_tens setpulsefx(0,0,1000);
level.arcademode_hud_timer_minutes_ones setpulsefx(0,0,1000);
level.arcademode_hud_timer_minutes_tens setpulsefx(0,0,1000);
var_17 setpulsefx(0,0,1000);
var_16 setpulsefx(0,0,1000);
arcademode_redraw_lives(0);
wait 2;
}
var_2E = level.arcademode_skillmultiplier[level.gameskill];
if(var_2E > 1)
{
if(var_2E == 1.5)
{
var_2F = &"SCRIPT_DIFFICULTY_BONUS_ONEANDAHALF";
}
else if(var_2F == 3)
{
var_2F = &"SCRIPT_DIFFICULTY_BONUS_THREE";
}
else
{
var_2F = &"SCRIPT_DIFFICULTY_BONUS_FOUR";
}
var_1D = int(ceil(var_19 * var_2E) - var_19);
arcademode_end_boost(var_19,var_10,var_1D,var_2F,"bullet_ap_glass",var_09,var_04);
var_19 = var_19 + var_1D;
var_10 = var_10 + var_1D;
}
var_30 = 0;
if(getdvar("arcademode_full") == "1")
{
var_31 = "s18";
var_32 = getdvarint(var_31);
if(var_10 > var_32)
{
var_33 = get_digits_from_score(var_10);
var_34 = get_score_string_from_digits(var_33);
setdvar(var_31,var_34);
var_35 = 0;
if(!level.arcademode_success)
{
var_35 = 1;
}
if(level.script == "airplane")
{
var_35 = 1;
}
if(var_35)
{
var_30 = 1;
}
}
level.player uploadscore("LB_FULL",getdvarint(var_31));
}
else
{
var_36 = [];
}
if(var_30)
{
if(!level.arcademode_success)
{
updategamerprofile();
}
wait 1;
var_37 = new_ending_hud("center",var_04,0,var_09);
var_37 settext(&"SCRIPT_NEW_HIGH_SCORE");
var_37.alpha = 1;
var_37 fadeovertime(0.05);
var_37 setpulsefx(30,3000,1000);
wait 3.5;
}
wait 2;
var_0B setpulsefx(0,0,1000);
wait 0.5;
var_12 setpulsefx(0,0,1000);
for(var_0C = 0;var_0C < level.arcademode_hud_digits;var_0C++)
{
var_13 = level.arcademode_hud_scores[var_0C];
var_13 setpulsefx(0,0,1000);
}
if(getdvar("arcademode_full") == "1")
{
var_11 setpulsefx(0,0,1000);
for(var_0C = 0;var_0C < level.arcademode_hud_digits;var_0C++)
{
var_13 = level.arcademode_hud_total_scores[var_0C];
var_13 setpulsefx(0,0,1000);
}
}
if(level.arcademode_success)
{
wait 0.5;
level.arcademode_hud_timer_seconds_ones setpulsefx(0,0,1000);
level.arcademode_hud_timer_seconds_tens setpulsefx(0,0,1000);
level.arcademode_hud_timer_minutes_ones setpulsefx(0,0,1000);
level.arcademode_hud_timer_minutes_tens setpulsefx(0,0,1000);
var_17 setpulsefx(0,0,1000);
var_16 setpulsefx(0,0,1000);
}
wait 1;
if(getdvar("arcademode_full") == "1")
{
logstring("ArcadeMode Score: " + var_19 + ", mission: " + level.script + ", gameskill: " + level.gameskill + ", total: " + var_10);
}
else
{
logstring("ArcadeMode Score: " + var_19 + ", mission: " + level.script + ", gameskill: " + level.gameskill);
}
setdvar("arcademode_combined_score",var_10);
if(!level.arcademode_success)
{
setdvar("ui_arcade_lost",1);
end_mission();
}
else
{
setdvar("ui_arcade_lost",0);
}
common_scripts\utility::flag_set("arcademode_ending_complete");
}
//Function Number: 49
arcademode_end_boost(param_00,param_01,param_02,param_03,param_04,param_05,param_06)
{
var_07 = new_ending_hud("center",param_06,0,param_05);
var_07 settext(param_03);
var_07.alpha = 1;
var_07 fadeovertime(0.05);
wait 0.05;
wait 1;
var_08 = 0;
var_09 = param_00 + param_02;
var_0A = param_01 + param_02;
for(;;)
{
var_0B = var_09 - param_00;
param_02 = var_0B * 0.2 + 1;
if(var_0B <= 15)
{
param_02 = 1;
}
param_02 = int(param_02);
param_00 = param_00 + param_02;
if(param_00 > var_09)
{
param_00 = var_09;
}
hud_draw_score(param_00);
if(getdvar("arcademode_full") == "1")
{
param_01 = param_01 + param_02;
if(param_01 > var_0A)
{
param_01 = var_0A;
}
set_total_score_hud(param_01);
}
if(param_00 == var_09)
{
break;
}
var_08--;
if(var_08 <= 0)
{
level.player thread common_scripts\utility::play_sound_in_space(param_04,level.player geteye());
var_08 = 3;
}
wait 0.05;
}
wait 0.5;
var_07 setpulsefx(0,0,1000);
wait 1;
}
//Function Number: 50
black_background(param_00)
{
var_01 = newhudelem();
var_01.foreground = 1;
var_01.x = 0;
var_01.y = 0;
var_01 setshader("black",640,480);
var_01.alignx = "left";
var_01.aligny = "top";
var_01.horzalign = "fullscreen";
var_01.vertalign = "fullscreen";
var_01.sort = level.arcademode_hud_sort + 5;
var_01.alpha = 0;
if(param_00 > 0)
{
var_01 fadeovertime(param_00);
}
var_01.alpha = 1;
}
//Function Number: 51
player_invul_forever()
{
for(;;)
{
level.player enableinvulnerability();
level.player.deathinvulnerabletime = 70000;
level.player.ignoreme = 1;
var_00 = getaispeciesarray("all","all");
common_scripts\utility::array_thread(var_00,::maps\_utility::set_ignoreme,1);
wait 0.05;
}
}
//Function Number: 52
ending_set_time(param_00,param_01)
{
var_02 = 0;
var_03 = 0;
while(param_00 >= 10)
{
var_02++;
param_00 = param_00 - 10;
}
while(param_01 >= 10)
{
var_03++;
param_01 = param_01 - 10;
}
level.arcademode_hud_timer_seconds_ones setvalue(param_01);
level.arcademode_hud_timer_seconds_tens setvalue(var_03);
level.arcademode_hud_timer_minutes_ones setvalue(param_00);
level.arcademode_hud_timer_minutes_tens setvalue(var_02);
}
//Function Number: 53
draw_checkpoint(param_00,param_01,param_02)
{
param_00 = param_00 * param_02;
var_03 = new_ending_hud("center",0.1,param_00,90);
var_03 settext(&"SCRIPT_CHECKPOINT");
var_03 moveovertime(param_01);
var_03.x = 0;
wait param_01;
wait 0.5;
var_03 moveovertime(param_01);
var_03.x = param_00 * -1;
wait param_01;
var_03 destroy();
}
//Function Number: 54
arcademode_checkpoint_getid(param_00)
{
for(var_01 = 0;var_01 < level.arcademode_checkpoint_dvars.size;var_01++)
{
if(level.arcademode_checkpoint_dvars[var_01] == param_00)
{
return var_01;
}
}
return undefined;
}
//Function Number: 55
arcademode_init_kill_streak_colors()
{
level.arcademode_streak_color = [];
level.arcademode_streak_glow = [];
level.arcademode_streak_color[level.arcademode_streak_color.size] = level.color_cool_green;
level.arcademode_streak_color[level.arcademode_streak_color.size] = (0.8,0.8,2);
level.arcademode_streak_color[level.arcademode_streak_color.size] = (2,0.8,0);
level.arcademode_streak_color[level.arcademode_streak_color.size] = (0.5,2,2);
level.arcademode_streak_color[level.arcademode_streak_color.size] = (2,0.5,2);
level.arcademode_streak_color[level.arcademode_streak_color.size] = (0.3,0.3,2);
level.arcademode_streak_color[level.arcademode_streak_color.size] = (2,2,0.5);
level.arcademode_streak_color[level.arcademode_streak_color.size] = (2,2,2);
for(var_00 = 0;var_00 < level.arcademode_streak_color.size;var_00++)
{
level.arcademode_streak_glow[var_00] = (level.arcademode_streak_color[var_00][0] * 0.35,level.arcademode_streak_color[var_00][1] * 0.35,level.arcademode_streak_color[var_00][2] * 0.35);
}
level.arcademode_streak_color[0] = level.color_cool_green_glow;
}
//Function Number: 56
arcademode_killstreak_complete_display()
{
if(level.arcademode_kill_streak_current_multiplier == 1)
{
return;
}
if(common_scripts\utility::flag("arcademode_complete"))
{
return;
}
var_00 = new_ending_hud("right",0.2,-10,-57);
var_00 setpulsefx(5,3000,1000);
var_00.fontscale = 2;
if(level.arcademode_kill_streak_current_multiplier >= 8)
{
level.player thread common_scripts\utility::play_sound_in_space("arcademode_kill_streak_won",level.player geteye());
var_00 settext(&"SCRIPT_STREAK_COMPLETE");
}
else
{
level.player thread common_scripts\utility::play_sound_in_space("arcademode_kill_streak_lost",level.player geteye());
var_00 settext(&"SCRIPT_STREAK_BONUS_LOST");
}
wait 5;
var_00 destroy();
}
//Function Number: 57
arcademode_reset_kill_streak_art()
{
if(isdefined(level.arcademode_streak_hud))
{
level.arcademode_streak_hud destroy();
level.arcademode_streak_hud = undefined;
level.arcademode_streak_hud_shadow destroy();
}
level notify("arcademode_stop_kill_streak_art");
for(var_00 = 0;var_00 < level.arcademode_kills_hud.size;var_00++)
{
level.arcademode_kills_hud[var_00] destroy();
}
level.arcademode_kills_hud = [];
}
//Function Number: 58
arcademode_reset_kill_streak()
{
level.arcademode_new_kill_streak_allowed = 1;
thread arcademode_killstreak_complete_display();
level notify("arcademode_stop_kill_streak");
arcademode_reset_kill_streak_art();
common_scripts\utility::flag_clear("arcadeMode_multiplier_maxed");
level.arcademode_kill_streak_current_count = level.arcademode_kill_streak_multiplier_count;
level.arcademode_kill_streak_current_multiplier = 1;
}
//Function Number: 59
get_hud_multi()
{
var_00 = newhudelem();
var_00.alignx = "right";
var_00.aligny = "top";
var_00.horzalign = "right";
var_00.vertalign = "top";
var_00 thread arcademode_draw_multiplier_kill();
var_00.x = 0;
var_00.y = 126;
var_00.font = "objective";
var_00.fontscale = 0.1;
var_00.archived = 0;
var_00.foreground = 1;
var_00.color = level.arcademode_streak_color[level.arcademode_kill_streak_current_multiplier - 1];
var_00.glowcolor = level.arcademode_streak_glow[level.arcademode_kill_streak_current_multiplier - 1];
var_00.sort = level.arcademode_hud_sort;
var_00.label = &"SCRIPT_X";
var_00 setvalue(level.arcademode_kill_streak_current_multiplier);
var_00 changefontscaleovertime(0.5);
var_00.fontscale = 3;
var_00.alpha = 0;
var_00 fadeovertime(0.5);
var_00.alpha = 1;
return var_00;
}
//Function Number: 60
arcademode_draw_multiplier()
{
for(var_00 = 0;var_00 < 40;var_00++)
{
var_01 = get_hud_multi();
var_01 thread arcademode_draw_mult_sizzle();
}
level endon("arcademode_new_kill_streak");
var_02 = get_hud_multi();
level.arcademode_hud_streak = var_02;
level waittill("arcademode_stop_kill_streak");
var_02 setpulsefx(0,0,1000);
wait 1;
var_02 destroy();
level.arcademode_hud_streak = undefined;
}
//Function Number: 61
arcademode_draw_mult_sizzle()
{
level endon("arcademode_new_kill_streak");
wait 0.05;
var_00 = 500;
self moveovertime(2);
self.x = self.x + randomintrange(var_00 * -1,var_00);
self.y = self.y + randomintrange(var_00 * -1,var_00);
wait 0.5;
self fadeovertime(1);
self.alpha = 0;
wait 1;
self destroy();
}
//Function Number: 62
arcademode_draw_multiplier_kill()
{
self endon("death");
level waittill("arcademode_new_kill_streak");
self destroy();
}
//Function Number: 63
get_score_string_from_digits(param_00)
{
var_01 = "";
for(var_02 = 0;var_02 < param_00.size;var_02++)
{
var_01 = param_00[var_02] + var_01;
}
return var_01;
}