/**
  * 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()));
     }
 }
Esempio n. 2
0
 /**
  * Renvoie le Hexa lié
  * @return Hexa
  */
 public function getHexaBatiment()
 {
     return HexaStore::getById(BatimentStore::getById($this->getIdBatiment())->getIdHexa());
 }
Esempio n. 3
0
 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);
 }