/**
  * Renvoie les Productions liés aux Unites de la collection fournie en paramètre
  * @param UniteCollection $unites
  * @return ProductionCollection
  */
 public static function getFromUnites(UniteCollection $unites)
 {
     $ids = $unites->getIdsStr();
     if (!$ids) {
         return new ProductionCollection();
     }
     $req = "SELECT * FROM production WHERE idUnite IN (" . $ids . ");";
     return DbHandler::collFromQuery($req, 'Production', 'ProductionCollection');
 }
Esempio n. 2
0
 /**
  * Renvoie les Unites liés aux Qgs de cette collection
  * @return UniteCollection
  */
 public function getUnites()
 {
     if (is_null($this->cacheUnites)) {
         $this->cacheUnites = new UniteCollection();
         foreach ($this as $qg) {
             /** @var Qg $qg */
             foreach ($qg->getUnites() as $unite) {
                 $this->cacheUnites->ajout($unite);
             }
         }
     }
     return $this->cacheUnites;
 }
Esempio n. 3
0
 /**
  * Ajoute une unité à la collection de cache d'unités du QG
  * Ne crée rien
  * @param Unite $unite
  * @return void
  */
 public function AppendUnite(Unite $unite)
 {
     if (is_null($this->cacheUnites)) {
         $this->cacheUnites = new UniteCollection();
     }
     $this->cacheUnites->ajout($unite);
 }
 /**
  * Renvoie les Unites liés aux Competences de cette collection
  * @return UniteCollection
  */
 public function getUnites()
 {
     if (is_null($this->cacheUnites)) {
         $this->cacheUnites = UniteBusiness::getFromCompetences($this);
         $this->cacheUnites->store();
     }
     return $this->cacheUnites;
 }
Esempio n. 5
0
 /**
  * Ajoute à la carte les objets visibles reliés à un hexa
  * @param Hexa $hexa
  * @return void
  */
 protected function ajoutVisiblesHexa(Hexa $hexa)
 {
     $this->visiblesGeres = true;
     if ($this->joueur->getVisibles()->hexaExists($hexa)) {
         // Qgs
         foreach ($hexa->getQgs() as $qg) {
             /** @var Qg $qg */
             $this->qgs->ajout($qg);
             // Unites
             foreach ($qg->getUnites() as $unite) {
                 /** @var Unite $unite */
                 $this->unites->ajout($unite);
             }
         }
     }
 }
Esempio n. 6
0
 /**
  * Renvoie les Qgs liés à une collection de Unites
  * @param UniteCollection $unites
  * @return QgCollection
  */
 public static function getFromUnites(UniteCollection $unites)
 {
     $ids = $unites->getIdQgs();
     if (!$ids) {
         return new QgCollection();
     }
     $req = "SELECT * FROM qg WHERE idQg IN (" . $ids . ");";
     return DbHandler::collFromQuery($req, 'Qg', 'QgCollection');
 }
Esempio n. 7
0
 /**
  * Renvoie seulement les Qgs dont l'hexa fait partie des hexas fournis en paramètre
  * @param QgCollection $qgs
  * @return UniteCollection
  */
 public function filtresParQgs(QgCollection $qgs)
 {
     $ret = new UniteCollection();
     $ids = ',' . $qgs->getIdsStr() . ',';
     foreach ($this as $unite) {
         /** @var Unite $unite */
         if (strstr($ids, ',' . $unite->getIdQg() . ',')) {
             $ret->ajout($unite);
         }
     }
     return $ret;
 }
Esempio n. 8
0
 /**
  * Crée un faux Qg qui n'existe pas en base, pour calculer les coûts de déplacement
  * @param int $type Type de QG à créer
  */
 public function setFakeQg($type)
 {
     $this->fakeQg = new Qg();
     $this->fakeQg->setIdTypeQg($type);
     $this->fakeQg->setIdJoueur($this->qg->getIdJoueur());
     $unite = new Unite();
     switch ($type) {
         case Unites::TYPE_TERRESTRE:
             $unite->setIdType(Unites::RAVITAILLEUR_AMPHIBIE);
             break;
         case Unites::TYPE_NAVAL:
             $unite->setIdType(Unites::DESTROYER);
             break;
         case Unites::TYPE_AERIEN:
             $unite->setIdType(Unites::BOMBARDIER);
             break;
         default:
             $unite->setIdType(Unites::RAVITAILLEUR_AMPHIBIE);
     }
     $unite->setMoral(100);
     $unites = new UniteCollection();
     $unites->ajout($unite);
     $this->fakeQg->setUnites($unites);
 }
Esempio n. 9
0
 /**
  * Renvoie la liste des unités qu'il est possible de construire dans la ville
  * @return UniteCollection
  */
 public function listeUnitesAConstruire()
 {
     $ret = new UniteCollection();
     foreach (Unites::$types as $idType => $data) {
         $batiment = $this->getBatimentConstruit($data['batimentNecessaire']);
         if (!is_null($batiment) && $batiment->getNiveau() >= $data['nivBatimentNecessaire']) {
             $new = new Unite();
             $new->setIdHexaConstruit($this->getId());
             $new->setIdType($idType);
             $new->setMoral(100);
             $ret->ajout($new);
         }
     }
     return $ret;
 }
Esempio n. 10
0
 /**
  * Renvoie les unités actives pour le combat en cours
  * @return UniteCollection
  */
 public function getUnitesActives()
 {
     $ret = new UniteCollection();
     foreach ($this as $qg) {
         /** @var Qg $qg */
         if (in_array($qg->getIdTypeMission(), Missions::$selectionUnitesParMission[$this->getIdTypeMission()])) {
             foreach ($qg->getUnites() as $unite) {
                 /** @var Unite $unite */
                 $ret->ajout($unite);
             }
         }
     }
     return $ret;
 }