mirror of
https://github.com/JeroenED/libpairtwo.git
synced 2024-12-23 04:40:59 +01:00
Compare commits
7 Commits
9c7deea8ca
...
2ca18a3271
Author | SHA1 | Date | |
---|---|---|---|
2ca18a3271 | |||
e113d743ca | |||
6c7249bd3e | |||
9aca75d298 | |||
94b18d3d9b | |||
a2fc7d6589 | |||
7a48b7777d |
@ -234,7 +234,9 @@ class Player
|
||||
foreach ($this->Pairings as $key => $pairing) {
|
||||
if ($key < $round || $round == -1) {
|
||||
if ($pairing->Result == Result::WON_BYE) {
|
||||
$points += (isset($this->CustomPoints[ 'bye' ])) ? $custompoints[ 'bye' ] : 1;
|
||||
$points += (isset($custompoints[ 'bye' ])) ? $custompoints[ 'bye' ] : 1;
|
||||
} else if ($pairing->Result == Result::ABSENT) {
|
||||
$points += (isset($custompoints[ 'absent' ])) ? $custompoints[ 'absent' ] : 0;
|
||||
} elseif (array_search($pairing->Result, Constants::WON) !== false) {
|
||||
$points += (isset($custompoints[ 'win' ])) ? $custompoints[ 'win' ] : 1;
|
||||
} elseif (array_search($pairing->Result, Constants::DRAW) !== false) {
|
||||
@ -299,9 +301,9 @@ class Player
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
public function getElo(string $type): int
|
||||
public function getElo(string $type): ?int
|
||||
{
|
||||
return $this->Elos[ $type ];
|
||||
return isset($this->Elos[ $type ]) ? $this->Elos[ $type ] : null;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -199,13 +199,17 @@ class Swar5 implements ReaderInterface
|
||||
*
|
||||
* @throws IncompatibleReaderException
|
||||
*/
|
||||
public function read(string $filename): void
|
||||
public function read(string $filename, string $compatversion = ''): void
|
||||
{
|
||||
$swshandle = fopen($filename, 'rb');
|
||||
|
||||
$this->Release = $this->readData('String', $swshandle);
|
||||
|
||||
if($compatversion != '') {
|
||||
$this->Release == $compatversion;
|
||||
}
|
||||
if (array_search(substr($this->Release, 0, 3), self::COMPATIBLE_VERSIONS) === false) {
|
||||
throw new IncompatibleReaderException("This file was not created with Swar 4");
|
||||
throw new IncompatibleReaderException("This file was not created with Swar 5");
|
||||
}
|
||||
|
||||
$this->Tournament = new Tournament();
|
||||
@ -437,6 +441,7 @@ class Swar5 implements ReaderInterface
|
||||
$pt = 0;
|
||||
for ($i = 0; $i < $this->Tournament->NumberOfPlayers; $i++) {
|
||||
$player = new Player();
|
||||
|
||||
$player->Classement = $this->readData('Int', $swshandle);
|
||||
$player->Name = $this->readData('String', $swshandle);
|
||||
$inscriptionNos[ $this->readData('Int', $swshandle) ] = $i;
|
||||
@ -511,7 +516,8 @@ class Swar5 implements ReaderInterface
|
||||
$player->Tiebreak = $tiebreaks;
|
||||
$player->Performance = $this->readData('Int', $swshandle); // To Calculate by libpairtwo
|
||||
$player->Absent = $this->readData('Int', $swshandle);
|
||||
$player->AbsentRounds = $this->readData('String', $swshandle);
|
||||
$player->AbsentRounds = $this->readData('Int', $swshandle);
|
||||
if(version_compare($this->Release, '5.53', "<=")) $player->Paid = $this->readData('Int', $swshandle);
|
||||
$player->ExtraPoints = $this->readData('Int', $swshandle);
|
||||
$player->SpecialPoints = $this->readData('Int', $swshandle);
|
||||
$player->AllocatedRounds = $this->readData('Int', $swshandle);
|
||||
@ -531,6 +537,7 @@ class Swar5 implements ReaderInterface
|
||||
|
||||
$pt++;
|
||||
}
|
||||
|
||||
$this->Tournament->Pairing = $pairing;
|
||||
}
|
||||
|
||||
|
@ -14,6 +14,7 @@ namespace JeroenED\Libpairtwo;
|
||||
use Closure;
|
||||
use DateTime;
|
||||
use JeroenED\Libpairtwo\Enums\Color;
|
||||
use JeroenED\Libpairtwo\Enums\Result;
|
||||
use JeroenED\Libpairtwo\Enums\Tiebreak;
|
||||
use JeroenED\Libpairtwo\Enums\TournamentSystem;
|
||||
|
||||
@ -728,7 +729,7 @@ class Tournament
|
||||
$tiebreak += $pairing->Opponent->calculatePointsForTiebreaks() / 2;
|
||||
}
|
||||
}
|
||||
if (array_search($pairing->Result, Constants::NOTPLAYED) !== false) {
|
||||
if ($pairing->Result == Result::WON_BYE) {
|
||||
$tiebreak += $player->calculatePointsForVirtualPlayer($key);
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user