Exemplo n.º 1
0
 /**
  * @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;
     }
 }
Exemplo n.º 2
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;
 }