From 0d7e33e6141cc5045a0a95a009d41e77c9bae48f Mon Sep 17 00:00:00 2001 From: Dan Hemberger Date: Sat, 9 Sep 2023 16:03:42 -0700 Subject: [PATCH] Improve TraderCombatResult type Always initialize the `TotalDamagePerTargetPlayer` field of the `TraderCombatResult` array type. This fixes a PHPStan warning. --- phpstan.neon.dist | 2 +- src/lib/Smr/AbstractShip.php | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/phpstan.neon.dist b/phpstan.neon.dist index df16fd63b..78fe4e9d4 100644 --- a/phpstan.neon.dist +++ b/phpstan.neon.dist @@ -53,7 +53,7 @@ parameters: ForceAttackerCombatResult: 'array{Player: \Smr\AbstractPlayer, TotalDamage: int, DeadBeforeShot: bool, Weapons: array, Drones?: array{Weapon: \Smr\Combat\Weapon\AbstractWeapon, Target: \Smr\Force, Hit: bool, WeaponDamage: WeaponDamageData, ActualDamage: ForceTakenDamageData, KillResults?: array{}}}' ForceAttackerCombatResults: 'array{TotalDamage: int, Traders: array}' ForceCombatResults: 'array{TotalDamage: int, DeadBeforeShot: bool, ForcesDestroyed?: bool, Results: array{Mines?: array{Weapon: \Smr\Combat\Weapon\AbstractWeapon, Target: \Smr\AbstractPlayer, Hit: bool, WeaponDamage: WeaponDamageData, ActualDamage: TakenDamageData, KillResults?: array{DeadExp: int, LostCredits: int}}, Drones?: array{Weapon: \Smr\Combat\Weapon\AbstractWeapon, Target: \Smr\AbstractPlayer, Hit: bool, WeaponDamage: WeaponDamageData, ActualDamage: TakenDamageData, KillResults?: array{DeadExp: int, LostCredits: int}}, Scouts?: array{Weapon: \Smr\Combat\Weapon\AbstractWeapon, Target: \Smr\AbstractPlayer, Hit: bool, WeaponDamage: WeaponDamageData, ActualDamage: TakenDamageData, KillResults?: array{DeadExp: int, LostCredits: int}}}}' - TraderCombatResult: 'array{Player: \Smr\AbstractPlayer, TotalDamage: int, TotalDamagePerTargetPlayer?: array, DeadBeforeShot: bool, Weapons: array, Drones?: array{Weapon: \Smr\Combat\Weapon\AbstractWeapon, Target: \Smr\AbstractPlayer, Hit: bool, WeaponDamage: WeaponDamageData, ActualDamage: TakenDamageData, KillResults?: array{DeadExp: int, KillerExp: int, KillerCredits: int}}}' + TraderCombatResult: 'array{Player: \Smr\AbstractPlayer, TotalDamage: int, TotalDamagePerTargetPlayer: array, DeadBeforeShot: bool, Weapons: array, Drones?: array{Weapon: \Smr\Combat\Weapon\AbstractWeapon, Target: \Smr\AbstractPlayer, Hit: bool, WeaponDamage: WeaponDamageData, ActualDamage: TakenDamageData, KillResults?: array{DeadExp: int, KillerExp: int, KillerCredits: int}}}' TraderTeamCombatResults: 'array{TotalDamage: int, Traders: array}' #---------------------------------------------- diff --git a/src/lib/Smr/AbstractShip.php b/src/lib/Smr/AbstractShip.php index 5542315ff..1423df5f9 100644 --- a/src/lib/Smr/AbstractShip.php +++ b/src/lib/Smr/AbstractShip.php @@ -762,7 +762,12 @@ public function isUnderground(): bool { */ public function shootPlayers(array $targetPlayers): array { $thisPlayer = $this->getPlayer(); - $results = ['Player' => $thisPlayer, 'TotalDamage' => 0, 'Weapons' => []]; + $results = [ + 'Player' => $thisPlayer, + 'TotalDamage' => 0, + 'TotalDamagePerTargetPlayer' => [], + 'Weapons' => [], + ]; foreach ($targetPlayers as $targetPlayer) { $results['TotalDamagePerTargetPlayer'][$targetPlayer->getAccountID()] = 0; }