/** * Crée un Traj lié à ce Qg * @return Traj */ public function createTraj() { $traj = new Traj(); $traj->setIdQg($this->getIdQg()); return $traj; }
public function addTrajectoire() { $ret = array('error' => 0, 'errorMsg' => ''); if (!isset($_POST['idQg']) || !isset($_POST['cap'])) { $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; } $qg = QgStore::getById($_POST['idQg']); if (is_null($qg)) { $ret['error'] = 3; $ret['errorMsg'] = 'Qg Inconnu'; echo json_encode($ret); exit; } if (SessionBusiness::getCookieSession()->getIdJoueur() != $qg->getIdJoueur()) { $ret['error'] = 5; $ret['errorMsg'] = 'Seul le joueur connecté peut donner des ordres à ses Qgs'; echo json_encode($ret); exit; } if ($qg->unitesEntrantes()->count()) { $ret['error'] = 8; $ret['errorMsg'] = 'Une ou plusieurs unités sont en cours de transfert vers ce Qg, il ne peut pas se déplacer'; echo json_encode($ret); exit; } $trajPrecedente = $qg->getLastTraj(); if (is_null($trajPrecedente)) { $hexa = $qg->getHexa()->getVoisin($_POST['cap']); $provenance = $qg->getHexa(); $ordre = 1; } else { $hexa = $trajPrecedente->getHexa()->getVoisin($_POST['cap']); $provenance = $trajPrecedente->getHexa(); $ordre = $trajPrecedente->getOrdre() + 1; } if (is_null($hexa)) { $ret['error'] = 4; $ret['errorMsg'] = 'Hexa Inconnu ou bord de carte atteint'; echo json_encode($ret); exit; } if (!$qg->canPass($provenance, $hexa)) { $ret['error'] = 6; $ret['errorMsg'] = "Impossible d'atteindre cette case avec ce Qg"; echo json_encode($ret); exit; } if ($qg->getMvtRestant() <= 0) { $ret['error'] = 7; $ret['errorMsg'] = "Points de mouvement insuffisants"; echo json_encode($ret); exit; } $traj = new Traj(); $traj->setIdQg($qg->getId()); $traj->setIdHexa($hexa->getId()); $traj->setOrdre($ordre); $traj->save(); $qg->resetCacheTrajs(); $ret['traj'] = $traj; $ret['mvtTotal'] = $qg->getMvtTotal(); $ret['mvtRestant'] = $qg->getMvtRestant(); echo json_encode($ret); }