summaryrefslogtreecommitdiff
path: root/http
diff options
context:
space:
mode:
authoremkael <emkael@tlen.pl>2025-02-13 23:52:57 +0100
committeremkael <emkael@tlen.pl>2025-02-13 23:52:57 +0100
commite2254e9dc69e9de85ee7260a4549ce31a96ffa38 (patch)
treecbba8286e6620fbad69645258c3c3360aaaa2324 /http
parentffe02865d24f9a5ccff4ccff41355612a34dd624 (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.php33
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: