/** * Met les Batiments de la collection dans le BatimentStore * Vérifie si le Batiment était déjà storé, dans ce cas, remplace le Batiment concerné par celui du BatimentStore */ public function store() { $replaces = array(); foreach ($this as $offset => $batiment) { /** @var Batiment $batiment */ if (BatimentStore::exists($batiment->getId())) { $replaces[$offset] = $batiment; } else { BatimentStore::store($batiment); } } unset($offset); foreach ($replaces as $offset => $batiment) { $this->offsetSet($offset, BatimentStore::getById($batiment->getId())); } }
/** * Renvoie le Hexa lié * @return Hexa */ public function getHexaBatiment() { return HexaStore::getById(BatimentStore::getById($this->getIdBatiment())->getIdHexa()); }
public function supprimerBatiment() { $ret = array('error' => 0, 'errorMsg' => ''); if (!isset($_POST['idBatiment'])) { $ret['error'] = 1; $ret['errorMsg'] = 'Champs manquants'; echo json_encode($ret); exit; } if (!$this->checkDroit(Droit::LOGGE_PARTIE)) { $ret['error'] = 2; $ret['errorMsg'] = 'Pas le droit'; echo json_encode($ret); exit; } $batiment = BatimentStore::getById($_POST['idBatiment']); if (is_null($batiment)) { $ret['error'] = 3; $ret['errorMsg'] = 'Batiment inexistant'; echo json_encode($ret); exit; } $ret['idBatiment'] = $batiment->getId(); if (!$batiment->getHexa()->peutConstruireBatiment(SessionBusiness::getCookieSession()->getJoueur())) { $ret['error'] = 4; $ret['errorMsg'] = 'Pas le droit de détruire ce bâtiment'; echo json_encode($ret); exit; } $ret['auDessus'] = array(); if ($batiment->getEnConstruction() == -1) { if (SessionBusiness::getCookieSession()->getJoueur()->getTresor() < $batiment->getPrix()) { $ret['error'] = 5; $ret['errorMsg'] = 'Pas assez d\'or'; echo json_encode($ret); exit; } $batiment->setEnConstruction(0); $batiment->save(); SessionBusiness::getCookieSession()->getJoueur()->varTresor(-$batiment->getPrix()); SessionBusiness::getCookieSession()->getJoueur()->save(); } elseif ($batiment->getEnConstruction() == 1) { $batiment->delete(); SessionBusiness::getCookieSession()->getJoueur()->varTresor($batiment->getPrix()); SessionBusiness::getCookieSession()->getJoueur()->save(); } elseif ($batiment->getEnConstruction() == 0) { $batiment->setEnConstruction(-1); $batiment->save(); foreach ($batiment->getNiveauxAuDessus() as $bat) { /** @var Batiment $bat */ $ret['auDessus'][] = $bat->getId(); SessionBusiness::getCookieSession()->getJoueur()->varTresor($batiment->getPrix()); $bat->delete(); } SessionBusiness::getCookieSession()->getJoueur()->save(); } $ret['enConstruction'] = $batiment->getEnConstruction(); $ret['montantTresor'] = SessionBusiness::getCookieSession()->getJoueur()->getTresor(); echo json_encode($ret); }