From e2254e9dc69e9de85ee7260a4549ce31a96ffa38 Mon Sep 17 00:00:00 2001 From: emkael Date: Thu, 13 Feb 2025 23:52:57 +0100 Subject: Ability to override the 1.25x factor that as of 2025.02.12 amendment always applies to team tournaments. Necessary to be able to strictly define points for 1st place for high-ranked teams tournaments. --- http/api-inc.php | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) (limited to 'http') diff --git a/http/api-inc.php b/http/api-inc.php index ca8e0de..e6da049 100644 --- a/http/api-inc.php +++ b/http/api-inc.php @@ -642,6 +642,39 @@ class ApiPklV3_1 extends ApiPklV3 { // 2025.01.01 - parameterized points for 1st place are no longer a minimum, they're strictly applied class ApiPklV4 extends ApiPklV3_1 { + function check_parameters($parameters) { + // Check for newly introduced 'override_type_multiplier' parameter + if (isset($parameters['manual']) + && isset($parameters['manual']['override_type_multiplier'])) { + $this->check_values($parameters['manual'], array( + 'override_type_multiplier' => function($r) { + return is_integer_like($r) && intval($r) >= 0 && intval($r) <= 1; + } + )); + } + return parent::check_parameters($parameters); + } + + function parse_parameters($parameters) { + $return = parent::parse_parameters($parameters); + // By default, leave the 1.25x multiplier for teams + $return['override_type_multiplier'] = FALSE; + // But if 'manual'->'override_type_multiplier' is set, + // interpret it. + if (isset($parameters['manual']) + && isset($parameters['manual']['override_type_multiplier'])) { + $return['override_type_multiplier'] = ($parameters['manual']['override_type_multiplier'] == 1); + } + return $return; + } + + protected function _get_type_multiplier() { + if ($this->parameters['override_type_multiplier']) { + return 1.0; + } + return parent::_get_type_multiplier(); + } + protected function _get_max_points() { if ($this->parameters['min_points']) { // 2025.02.12 amendment: -- cgit v1.2.3