/** * @param mixed $value * @return void */ public function append($value) { parent::append($value); /** @var Unite $value */ if (is_null($this->plusHautZIndex) || Unites::$types[$value->getIdType()]['zIndex'] > Unites::$types[$this->plusHautZIndex->getIdType()]['zIndex']) { $this->plusHautZIndex = $value; } }
/** * Renvoie les Production liées à un Unite * @param Unite $unite * @return ProductionCollection */ public static function getByUnite(Unite $unite) { $req = "SELECT * FROM production WHERE idUnite = '" . $unite->getIdUnite() . "';"; return DbHandler::collFromQuery($req, 'Production', 'ProductionCollection'); }
/** * Crée un Unite lié à ce Qg * @return Unite */ public function createUnite() { $unite = new Unite(); $unite->setIdQg($this->getIdQg()); return $unite; }
/** * Renvoie le coût de déplacement d'une unité sur un hexa * @param Unite $unite * @param Hexa $hexa * @return int */ public static function coutDep(Unite $unite, Hexa $hexa) { return self::coutDeplacement($unite->getIdType(), $hexa->getTypeTerrain()); }
/** * Renvoie les Competence liées à un Unite * @param Unite $unite * @return CompetenceCollection */ public static function getByUnite(Unite $unite) { $req = "SELECT * FROM competence WHERE idUnite = '" . $unite->getIdUnite() . "';"; return DbHandler::collFromQuery($req, 'Competence', 'CompetenceCollection'); }
/** * 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); }
/** * 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; }