/** * @param Collision $col1 * @param Collision $col2 * @return int */ public static function triParPriorite(Collision $col1, Collision $col2) { if (min(Missions::$types[$col1->getQg1()->getIdTypeMission()]['ordreResolution'], Missions::$types[$col1->getQg2()->getIdTypeMission()]['ordreResolution']) > min(Missions::$types[$col2->getQg1()->getIdTypeMission()]['ordreResolution'], Missions::$types[$col2->getQg2()->getIdTypeMission()]['ordreResolution'])) { return 1; } elseif (min(Missions::$types[$col1->getQg1()->getIdTypeMission()]['ordreResolution'], Missions::$types[$col1->getQg2()->getIdTypeMission()]['ordreResolution']) < min(Missions::$types[$col2->getQg1()->getIdTypeMission()]['ordreResolution'], Missions::$types[$col2->getQg2()->getIdTypeMission()]['ordreResolution'])) { return -1; } else { return 0; } }
/** * Renvoie les collisions en cours * @return CollisionCollection */ public function getCollisions() { $ret = new CollisionCollection(); $qgs1 = clone $this; $qgs2 = clone $this; $dejaFait = array(); foreach ($qgs1 as $qg1) { /** @var Qg $qg1 */ foreach ($qgs2 as $qg2) { /** @var Qg $qg2 */ if ($qg1 !== $qg2) { if ($qg1->getPosition() === $qg2->getPosition() && !key_exists(self::idDejaFait($qg1, $qg2), $dejaFait)) { $collision = new Collision(); $collision->setHexa($qg1->getPosition()); $collision->setQg1($qg1); $collision->setQg2($qg2); $ret->ajout($collision); $qg1->getPosition()->getCollisionsEnCours()->ajout($collision); } $dejaFait[self::idDejaFait($qg1, $qg2)] = true; } } } return $ret; }