diff --git a/composer.json b/composer.json index 0ef9f75..8b65249 100644 --- a/composer.json +++ b/composer.json @@ -1,9 +1,9 @@ { "name": "dnw/php-trueskill", - "description": "Trueskill implementation by Moserware updated for PHP 8.1", + "description": "Trueskill implementation by Moserware updated for PHP 8.2", "keywords": ["trueskill", "matchmaking", "ranking", "skill", "elo"], "require": { - "php": "^8.1" + "php": "^8.2" }, "require-dev": { "phpunit/phpunit": "^10", diff --git a/psalm.xml b/psalm.xml index 75966d3..b58b8b3 100644 --- a/psalm.xml +++ b/psalm.xml @@ -6,7 +6,7 @@ xmlns="https://getpsalm.org/schema/config" xsi:schemaLocation="https://getpsalm.org/schema/config vendor/vimeo/psalm/config.xsd" findUnusedBaselineEntry="true" - findUnusedCode="true" + findUnusedCode="false" > diff --git a/src/SkillCalculator.php b/src/SkillCalculator.php index e9a423d..b8df1d5 100644 --- a/src/SkillCalculator.php +++ b/src/SkillCalculator.php @@ -19,25 +19,25 @@ abstract class SkillCalculator /** * Calculates new ratings based on the prior ratings and team ranks. * - * @param GameInfo $gameInfo Parameters for the game. - * @param Team[] $teamsOfPlayerToRatings A mapping of team players and their ratings. - * @param int[] $teamRanks The ranks of the teams where 1 is first place. For a tie, repeat the number (e.g. 1, 2, 2). + * @param GameInfo $gameInfo Parameters for the game. + * @param Team[] $teams A mapping of team players and their ratings. + * @param int[] $teamRanks The ranks of the teams where 1 is first place. For a tie, repeat the number (e.g. 1, 2, 2). * @return RatingContainer All the players and their new ratings. */ abstract public function calculateNewRatings( GameInfo $gameInfo, - array $teamsOfPlayerToRatings, + array $teams, array $teamRanks ): RatingContainer; /** * Calculates the match quality as the likelihood of all teams drawing. * - * @param GameInfo $gameInfo Parameters for the game. - * @param Team[] $teamsOfPlayerToRatings A mapping of team players and their ratings. + * @param GameInfo $gameInfo Parameters for the game. + * @param Team[] $teams A mapping of team players and their ratings. * @return float The quality of the match between the teams as a percentage (0% = bad, 100% = well matched). */ - abstract public function calculateMatchQuality(GameInfo $gameInfo, array $teamsOfPlayerToRatings): float; + abstract public function calculateMatchQuality(GameInfo $gameInfo, array $teams): float; public function isSupported(int $option): bool { diff --git a/src/TrueSkill/TwoTeamTrueSkillCalculator.php b/src/TrueSkill/TwoTeamTrueSkillCalculator.php index 58f0867..3c01951 100644 --- a/src/TrueSkill/TwoTeamTrueSkillCalculator.php +++ b/src/TrueSkill/TwoTeamTrueSkillCalculator.php @@ -84,7 +84,7 @@ class TwoTeamTrueSkillCalculator extends SkillCalculator $selfMeanSum = BasicMath::sum($selfTeam->getAllRatings(), $meanGetter); $otherTeamMeanSum = BasicMath::sum($otherTeam->getAllRatings(), $meanGetter); - $varianceGetter = fn ($currentRating) => BasicMath::square($currentRating->getStandardDeviation()); + $varianceGetter = fn ($currentRating): float => BasicMath::square($currentRating->getStandardDeviation()); $c = sqrt( BasicMath::sum($selfTeam->getAllRatings(), $varianceGetter) @@ -162,7 +162,7 @@ class TwoTeamTrueSkillCalculator extends SkillCalculator $meanGetter = fn ($currentRating) => $currentRating->getMean(); - $varianceGetter = fn ($currentRating) => BasicMath::square($currentRating->getStandardDeviation()); + $varianceGetter = fn ($currentRating): float => BasicMath::square($currentRating->getStandardDeviation()); $team1MeanSum = BasicMath::sum($team1Ratings, $meanGetter); $team1StdDevSquared = BasicMath::sum($team1Ratings, $varianceGetter);