212 lines
6.5 KiB
Plaintext
212 lines
6.5 KiB
Plaintext
// IW6 GSC SOURCE
|
|
// Generated by https://github.com/xensik/gsc-tool
|
|
|
|
init_beacon_eog_score_components( var_0 )
|
|
{
|
|
foreach ( var_2 in var_0 )
|
|
{
|
|
switch ( var_2 )
|
|
{
|
|
case "kraken":
|
|
maps\mp\alien\_gamescore::register_eog_score_component( "kraken", 17 );
|
|
break;
|
|
case "item_crafting":
|
|
maps\mp\alien\_gamescore::register_eog_score_component( "item_crafting", 14 );
|
|
break;
|
|
case "side_area":
|
|
maps\mp\alien\_gamescore::register_eog_score_component( "side_area", 15 );
|
|
break;
|
|
case "relics":
|
|
maps\mp\alien\_gamescore::register_eog_score_component( "relics", 5 );
|
|
break;
|
|
default:
|
|
}
|
|
}
|
|
}
|
|
|
|
init_beacon_encounter_score_components( var_0 )
|
|
{
|
|
foreach ( var_2 in var_0 )
|
|
{
|
|
switch ( var_2 )
|
|
{
|
|
case "kraken":
|
|
init_kraken_score_component();
|
|
break;
|
|
case "kraken_personal":
|
|
init_kraken_personal_score_component();
|
|
break;
|
|
case "kraken_team":
|
|
init_kraken_team_score_component();
|
|
break;
|
|
case "tentacle_bonus":
|
|
init_tentacle_score_component();
|
|
break;
|
|
case "item_crafting":
|
|
init_item_crafting_score_component();
|
|
break;
|
|
case "side_area":
|
|
init_side_area_score_component();
|
|
break;
|
|
case "gas":
|
|
init_gas_protection_score_component();
|
|
break;
|
|
case "progression_door":
|
|
init_progression_door_score_component();
|
|
break;
|
|
default:
|
|
}
|
|
}
|
|
}
|
|
|
|
init_kraken_score_component()
|
|
{
|
|
maps\mp\alien\_gamescore::register_encounter_score_component( "kraken", ::init_kraken_score, maps\mp\alien\_globallogic::blank, undefined, ::calculate_kraken_score_component, 17, "kraken" );
|
|
}
|
|
|
|
init_kraken_score( var_0 )
|
|
{
|
|
if ( maps\mp\alien\_utility::isplayingsolo() )
|
|
var_0.max_score_kraken = 6000;
|
|
else
|
|
var_0.max_score_kraken = 4500;
|
|
|
|
var_0.team_encounter_performance["kraken_battle_time"] = 0;
|
|
return var_0;
|
|
}
|
|
|
|
calculate_kraken_score_component( var_0, var_1 )
|
|
{
|
|
var_2 = maps\mp\alien\_gamescore::get_team_encounter_performance( var_1, "kraken_battle_time" );
|
|
var_3 = max( 0, 750000 - var_2 );
|
|
var_4 = var_1.max_score_kraken * ( var_3 / 750000 );
|
|
return int( var_4 );
|
|
}
|
|
|
|
init_kraken_personal_score_component()
|
|
{
|
|
maps\mp\alien\_gamescore::register_encounter_score_component( "kraken_personal", ::init_kraken_personal_score, undefined, maps\mp\alien\_gamescore::reset_player_personal_score_performance, maps\mp\alien\_gamescore::calculate_personal_skill_score, 17, "kraken" );
|
|
}
|
|
|
|
init_kraken_personal_score( var_0 )
|
|
{
|
|
if ( maps\mp\alien\_utility::isplayingsolo() )
|
|
{
|
|
var_0.max_score_damage_taken = 2500;
|
|
var_0.max_score_accuracy = 1500;
|
|
}
|
|
else
|
|
{
|
|
var_0.max_score_damage_taken = 1500;
|
|
var_0.max_score_accuracy = 1000;
|
|
}
|
|
|
|
return var_0;
|
|
}
|
|
|
|
init_kraken_team_score_component()
|
|
{
|
|
maps\mp\alien\_gamescore::register_encounter_score_component( "kraken_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, 17, "kraken" );
|
|
}
|
|
|
|
calculate_kraken_score( var_0 )
|
|
{
|
|
maps\mp\alien\_gamescore::update_team_encounter_performance( "kraken", "kraken_battle_time", var_0 );
|
|
var_1 = get_kraken_score_component_name_list();
|
|
maps\mp\alien\_gamescore::calculate_encounter_scores( level.players, var_1 );
|
|
}
|
|
|
|
get_kraken_score_component_name_list()
|
|
{
|
|
if ( maps\mp\alien\_utility::isplayingsolo() )
|
|
return [ "kraken", "kraken_personal" ];
|
|
else
|
|
return [ "kraken", "kraken_team", "kraken_personal" ];
|
|
}
|
|
|
|
init_tentacle_score_component()
|
|
{
|
|
maps\mp\alien\_gamescore::register_encounter_score_component( "tentacle_bonus", ::init_tentacle_score, maps\mp\alien\_globallogic::blank, undefined, ::calculate_tentacle_score, 18, "hive" );
|
|
}
|
|
|
|
init_tentacle_score( var_0 )
|
|
{
|
|
var_0.team_encounter_performance["tentacle_start_HP"] = 0;
|
|
return var_0;
|
|
}
|
|
|
|
calculate_tentacle_score( var_0, var_1 )
|
|
{
|
|
var_2 = maps\mp\alien\_gamescore::get_team_encounter_performance( var_1, "tentacle_start_HP" );
|
|
var_3 = get_tentacle_end_hp();
|
|
var_4 = min( var_2, var_2 - var_3 );
|
|
return int( 2500 * var_4 / var_2 );
|
|
}
|
|
|
|
get_tentacle_end_hp()
|
|
{
|
|
if ( !isdefined( level.miniboss.hp ) )
|
|
return 0;
|
|
|
|
return max( 0, level.miniboss.hp );
|
|
}
|
|
|
|
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, 14, "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_side_area_score_component()
|
|
{
|
|
maps\mp\alien\_gamescore::register_encounter_score_component( "side_area", ::blank_score_component_init, maps\mp\alien\_globallogic::blank, undefined, ::calculate_side_area_score, 15, "side_area" );
|
|
}
|
|
|
|
calculate_side_area_score( var_0, var_1 )
|
|
{
|
|
return 2000;
|
|
}
|
|
|
|
init_progression_door_score_component()
|
|
{
|
|
maps\mp\alien\_gamescore::register_encounter_score_component( "progression_door", ::blank_score_component_init, maps\mp\alien\_globallogic::blank, undefined, ::calculate_progression_door_score, 15, "hive" );
|
|
}
|
|
|
|
calculate_progression_door_score( var_0, var_1 )
|
|
{
|
|
return 2000;
|
|
}
|
|
|
|
init_gas_protection_score_component()
|
|
{
|
|
maps\mp\alien\_gamescore::register_encounter_score_component( "gas", ::blank_score_component_init, ::reset_team_gas_protection_score, undefined, ::calculate_gas_protection_score, 16, "hive" );
|
|
}
|
|
|
|
reset_team_gas_protection_score( var_0 )
|
|
{
|
|
var_0.team_encounter_performance["num_valve_destroyed"] = 0;
|
|
}
|
|
|
|
calculate_gas_protection_score( var_0, var_1 )
|
|
{
|
|
var_2 = maps\mp\alien\_gamescore::get_team_encounter_performance( var_1, "num_valve_destroyed" );
|
|
var_3 = max( 0, 4 - var_2 );
|
|
return int( var_3 * 500 );
|
|
}
|
|
|
|
blank_score_component_init( var_0 )
|
|
{
|
|
return var_0;
|
|
}
|