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

238 lines
8.5 KiB
Plaintext

// IW6 GSC SOURCE
// Generated by https://github.com/xensik/gsc-tool
init_last_eog_score_components( var_0 )
{
foreach ( var_2 in var_0 )
{
switch ( var_2 )
{
case "street":
maps\mp\alien\_gamescore::register_eog_score_component( "street", 24 );
break;
case "relics":
maps\mp\alien\_gamescore::register_eog_score_component( "relics", 5 );
break;
case "generator":
maps\mp\alien\_gamescore::register_eog_score_component( "generator", 25 );
break;
case "cortex":
maps\mp\alien\_gamescore::register_eog_score_component( "cortex", 29 );
break;
case "item_crafting":
maps\mp\alien\_gamescore::register_eog_score_component( "item_crafting", 27 );
break;
case "ancestor_bonus":
maps\mp\alien\_gamescore::register_eog_score_component( "ancestor_bonus", 28 );
break;
default:
}
}
}
init_last_encounter_score_components( var_0 )
{
foreach ( var_2 in var_0 )
{
switch ( var_2 )
{
case "street_personal":
init_street_personal_score_component();
break;
case "street_team":
init_street_team_score_component();
break;
case "street_challenge":
init_street_challenge_score_component();
break;
case "generator":
init_generator_score_component();
break;
case "generator_personal":
init_generator_personal_score_component();
break;
case "generator_team":
init_generator_team_score_component();
break;
case "generator_challenge":
init_generator_challenge_score_component();
break;
case "item_crafting":
init_item_crafting_score_component();
break;
case "ancestor_bonus":
init_ancestor_bonus_score_component();
break;
case "cortex":
init_cortex_score_component();
break;
default:
}
}
}
init_street_personal_score_component()
{
maps\mp\alien\_gamescore::register_encounter_score_component( "street_personal", ::init_street_personal_score, undefined, maps\mp\alien\_gamescore::reset_player_personal_score_performance, maps\mp\alien\_gamescore::calculate_personal_skill_score, 3, "street" );
}
init_street_personal_score( var_0 )
{
if ( maps\mp\alien\_utility::isplayingsolo() )
{
var_0.max_score_damage_taken = 5000;
var_0.max_score_accuracy = 3500;
}
else
{
var_0.max_score_damage_taken = 2200;
var_0.max_score_accuracy = 1700;
}
return var_0;
}
init_street_team_score_component()
{
maps\mp\alien\_gamescore::register_encounter_score_component( "street_team", ::init_street_teamwork_score, maps\mp\alien\_gamescore::reset_team_score_performance, maps\mp\alien\_gamescore::reset_player_teamwork_score_performance, maps\mp\alien\_gamescore::calculate_teamwork_score, 2, "street" );
}
init_street_teamwork_score( var_0 )
{
var_0.max_score_deploy = 1700;
var_0.max_score_revive = 1700;
var_0.max_score_damage = 1700;
maps\mp\alien\_gamescore::reset_team_score_performance( var_0 );
return var_0;
}
init_street_challenge_score_component()
{
maps\mp\alien\_gamescore::register_encounter_score_component( "street_challenge", maps\mp\alien\_gamescore::init_challenge_score, undefined, maps\mp\alien\_gamescore::reset_player_challenge_performance, maps\mp\alien\_gamescore::calculate_challenge_score, 4, "street" );
}
init_generator_score_component()
{
maps\mp\alien\_gamescore::register_encounter_score_component( "generator", maps\mp\alien\_gamescore::init_drill_score, maps\mp\alien\_gamescore::reset_team_drill_performance, undefined, maps\mp\alien\_gamescore::calculate_drill_protection_score, 26, "generator" );
}
init_generator_personal_score_component()
{
maps\mp\alien\_gamescore::register_encounter_score_component( "generator_personal", maps\mp\alien\_gamescore::init_personal_score, undefined, maps\mp\alien\_gamescore::reset_player_personal_score_performance, maps\mp\alien\_gamescore::calculate_personal_skill_score, 3, "generator" );
}
init_generator_team_score_component()
{
maps\mp\alien\_gamescore::register_encounter_score_component( "generator_team", maps\mp\alien\_gamescore::init_teamwork_score, maps\mp\alien\_gamescore::reset_team_score_performance, maps\mp\alien\_gamescore::reset_player_teamwork_score_performance, maps\mp\alien\_gamescore::calculate_teamwork_score, 2, "generator" );
}
init_generator_challenge_score_component()
{
maps\mp\alien\_gamescore::register_encounter_score_component( "generator_challenge", maps\mp\alien\_gamescore::init_challenge_score, undefined, maps\mp\alien\_gamescore::reset_player_challenge_performance, maps\mp\alien\_gamescore::calculate_challenge_score, 4, "generator" );
}
init_item_crafting_score_component()
{
maps\mp\alien\_gamescore::register_encounter_score_component( "item_crafting", ::blank_score_component_init, maps\mp\alien\_globallogic::blank, undefined, ::calculate_item_crafting_score, 27, "item_crafting" );
}
calculate_item_crafting_score( var_0, var_1 )
{
var_2 = int( 500 / level.cycle_score_scalar );
var_3 = get_total_item_crafting_score( var_0, var_1 );
return min( var_2, 5000 - var_3 );
}
get_total_item_crafting_score( var_0, var_1 )
{
return var_0.end_game_score[var_1.end_game_score_component_ref];
}
init_ancestor_bonus_score_component()
{
maps\mp\alien\_gamescore::register_encounter_score_component( "ancestor_bonus", ::blank_score_component_init, ::reset_team_ancestor_bonus_performance, undefined, ::calculate_ancestor_bonus_score, 28, "ancestor_bonus" );
}
reset_team_ancestor_bonus_performance( var_0 )
{
var_0.team_encounter_performance["num_ancestor_killed"] = 0;
var_0.team_encounter_performance["encounter_start_time"] = gettime();
return var_0;
}
calculate_ancestor_bonus_score( var_0, var_1 )
{
var_2 = gettime() - var_1.team_encounter_performance["encounter_start_time"];
return maps\mp\alien\_gamescore::calculate_under_max_score( var_2, 300000, 10000 );
}
init_cortex_score_component()
{
maps\mp\alien\_gamescore::register_encounter_score_component( "cortex", ::init_cortex_score, ::reset_team_cortex_performance, undefined, ::calculate_cortex_score, 29, "cortex" );
}
init_cortex_score( var_0 )
{
if ( maps\mp\alien\_utility::isplayingsolo() )
var_0.max_cortex_damage_limit = 1200;
else
var_0.max_cortex_damage_limit = 750;
return var_0;
}
reset_team_cortex_performance( var_0 )
{
var_0.team_encounter_performance["damage_done_on_cortex"] = 0;
var_0.team_encounter_performance["reach_charge_goal"] = 0;
return var_0;
}
calculate_cortex_score( var_0, var_1 )
{
var_2 = maps\mp\alien\_gamescore::get_team_encounter_performance( var_1, "damage_done_on_cortex" );
var_3 = maps\mp\alien\_gamescore::calculate_under_max_score( var_2, var_1.max_cortex_damage_limit, 8000 );
var_4 = maps\mp\alien\_gamescore::get_team_encounter_performance( var_1, "reach_charge_goal" ) * 2000;
return int( var_3 + var_4 );
}
update_cortex_charge_bonus( var_0 )
{
if ( !isdefined( var_0 ) )
return;
var_1 = var_0 * 25;
if ( maps\mp\mp_alien_last_final_battle::get_cortex_charge_percent() >= var_1 )
maps\mp\alien\_gamescore::update_team_encounter_performance( "cortex", "reach_charge_goal" );
}
init_partial_hive_score_component_list_func()
{
level.partial_hive_score_component_list_func = ::last_partial_hive_score_component_list;
}
last_partial_hive_score_component_list()
{
return [ "street_challenge", "street_team" ];
}
update_generator_score_component_name()
{
maps\mp\alien\_gamescore::set_challenge_score_component_name( "generator_challenge" );
maps\mp\alien\_gamescore::set_personal_score_component_name( "generator_personal" );
maps\mp\alien\_gamescore::set_team_score_component_name( "generator_team" );
}
update_street_score_component_name()
{
maps\mp\alien\_gamescore::set_challenge_score_component_name( "street_challenge" );
maps\mp\alien\_gamescore::set_personal_score_component_name( "street_personal" );
maps\mp\alien\_gamescore::set_team_score_component_name( "street_team" );
}
blank_score_component_init( var_0 )
{
return var_0;
}