/** * Fire::getProbabilityToShotAgainForAttackerShipOfType() * This function return the probability of a ShipType to shot thanks RF * @param ShipType $shipType_A * @return int */ private function getProbabilityToShotAgainForAttackerShipOfType(ShipType $shipType_A) { $p = 0; foreach ($this->defenderFleet->getIterator() as $idFleet => $shipType_D) { $RF = $shipType_A->getRfTo($shipType_D); $probabilityToShotAgain = 1 - GeometricDistribution::getProbabilityFromMean($RF); $probabilityToHitThisType = $shipType_D->getCount() / $this->defenderFleet->getTotalCount(); $p += $probabilityToShotAgain * $probabilityToHitThisType; } return $p; /* old way $p = 0; foreach ($this->defenderFleet->getIterator() as $idFleet => $shipType_D) { $RF = $shipType_A->getRfTo($shipType_D); if (!self::SPEEDSIM) { $RF = max(0, $RF - 1); } $probabilityToShotAgain = ($RF != 0) ? 1 - GeometricDistribution::getProbabilityFromMean($RF) : 0; $probabilityToHitThisType = $shipType_D->getCount() / $this->defenderFleet->getTotalCount(); $p += $probabilityToShotAgain * $probabilityToHitThisType; } return $p; */ }