diff options
author | emkael <emkael@tlen.pl> | 2025-02-13 23:52:57 +0100 |
---|---|---|
committer | emkael <emkael@tlen.pl> | 2025-02-13 23:52:57 +0100 |
commit | e2254e9dc69e9de85ee7260a4549ce31a96ffa38 (patch) | |
tree | cbba8286e6620fbad69645258c3c3360aaaa2324 /http | |
parent | ffe02865d24f9a5ccff4ccff41355612a34dd624 (diff) |
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.
Diffstat (limited to 'http')
-rw-r--r-- | http/api-inc.php | 33 |
1 files changed, 33 insertions, 0 deletions
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: |