mirror of
https://github.com/JeroenED/libpairtwo.git
synced 2024-12-23 12:50:59 +01:00
NEW FEATURE: custom points
This commit is contained in:
parent
c3b2e840f7
commit
ad86f962c5
@ -15,6 +15,7 @@ namespace JeroenED\Libpairtwo;
|
||||
|
||||
use DateTime;
|
||||
use JeroenED\Libpairtwo\Enums\Gender;
|
||||
use JeroenED\Libpairtwo\Enums\Result;
|
||||
use JeroenED\Libpairtwo\Enums\Title;
|
||||
|
||||
/**
|
||||
@ -227,15 +228,19 @@ class Player
|
||||
*
|
||||
* @return float
|
||||
*/
|
||||
public function calculatePoints(int $round = -1): float
|
||||
public function calculatePoints(int $round = -1, array $custompoints = []): float
|
||||
{
|
||||
$points = 0;
|
||||
foreach ($this->Pairings as $key => $pairing) {
|
||||
if ($key < $round || $round == -1) {
|
||||
if (array_search($pairing->Result, Constants::WON) !== false) {
|
||||
$points = $points + 1;
|
||||
if ($pairing->Result == Result::WON_BYE) {
|
||||
$points += (isset($this->CustomPoints[ 'bye' ])) ? $custompoints[ 'bye' ] : 1;
|
||||
} elseif (array_search($pairing->Result, Constants::WON) !== false) {
|
||||
$points += (isset($custompoints[ 'win' ])) ? $custompoints[ 'win' ] : 1;
|
||||
} elseif (array_search($pairing->Result, Constants::DRAW) !== false) {
|
||||
$points = $points + 0.5;
|
||||
$points += (isset($custompoints[ 'draw' ])) ? $custompoints[ 'draw' ] : 0.5;
|
||||
} elseif (array_search($pairing->Result, Constants::LOST) !== false) {
|
||||
$points += (isset($custompoints[ 'loss' ])) ? $custompoints[ 'loss' ] : 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -274,11 +274,11 @@ class Swar5 implements ReaderInterface
|
||||
$this->Tournament->SW_AmerPresence = $this->readData('Int', $swshandle);
|
||||
$this->Tournament->Plusieurs = $this->readData('Int', $swshandle);
|
||||
$this->Tournament->FirstTable = $this->readData('Int', $swshandle);
|
||||
$this->Tournament->SW321_Win = $this->readData('Int', $swshandle);
|
||||
$this->Tournament->SW321_Nul = $this->readData('Int', $swshandle);
|
||||
$this->Tournament->SW321_Los = $this->readData('Int', $swshandle);
|
||||
$this->Tournament->SW321_Bye = $this->readData('Int', $swshandle);
|
||||
$this->Tournament->SW321_Pre = $this->readData('Int', $swshandle);
|
||||
$this->Tournament->CustomPoints['win'] = $this->readData('Int', $swshandle) / 4;
|
||||
$this->Tournament->CustomPoints['draw'] = $this->readData('Int', $swshandle) / 4;
|
||||
$this->Tournament->CustomPoints['loss'] = $this->readData('Int', $swshandle) / 4;
|
||||
$this->Tournament->CustomPoints['bye'] = $this->readData('Int', $swshandle) / 4;
|
||||
$this->Tournament->CustomPoints['absent'] = $this->readData('Int', $swshandle) / 4;
|
||||
$this->Tournament->EloUsed = $this->readData('Int', $swshandle);
|
||||
$this->Tournament->TournoiStd = $this->readData('Int', $swshandle);
|
||||
$this->Tournament->TbPersonel = $this->readData('Int', $swshandle);
|
||||
|
@ -204,6 +204,13 @@ class Tournament
|
||||
*/
|
||||
public $Tiebreaks = [];
|
||||
|
||||
/**
|
||||
* Custom points for the tournament
|
||||
*
|
||||
* @var float[]
|
||||
*/
|
||||
public $CustomPoints = ['win' => 1, 'draw' => 0.5, 'loss' => 0, 'bye' => 1, 'absent' => 0];
|
||||
|
||||
/**
|
||||
* The year or season the tournament is held or is count for
|
||||
*
|
||||
@ -698,7 +705,7 @@ class Tournament
|
||||
*/
|
||||
private function calculatePoints(Player $player): float
|
||||
{
|
||||
return $player->calculatePoints();
|
||||
return $player->calculatePoints(-1, $this->CustomPoints);
|
||||
}
|
||||
|
||||
/**
|
||||
|
Loading…
Reference in New Issue
Block a user