/** * Tranfère l'unité vers un autre qg * @param Qg $qg * @return void */ public function transfert(Qg $qg) { /* * Transfert de l'unité */ $qgSource = $this->getQg(); $this->setIdQg($this->getId()); $this->save(); $qg->resetCacheUnites(); $qgSource->resetCacheUnites(); /* * Transfert des compétences du Qg si le Qg source disparaît */ if ($qgSource->getUnites()->count() == 0) { if ($qgSource->getNiveau() > $qg->getNiveau()) { $qg->setNiveau($qgSource->getNiveau()); $qg->save(); } $qgSource->delete(); } }
/** * Crée un Qg lié à ce Hexa * @param int $type * @return Qg */ public function createQg($type = Unites::TYPE_TERRESTRE) { $qg = new Qg(); $qg->setIdHexa($this->getIdHexa()); $qg->setNiveau($this->getNiveauQgsFabriques()); $qg->setCapop(100); $qg->setXp(0); $qg->setIdTypeQg($type); return $qg; }