$Joueur = new Joueur($JoueurManager->get($_SESSION['idJoueurCourant'])); $Privilege = new Privilege($JoueurManager->getPrivilege($Joueur->getId())); if ($Privilege->hasPermission('personnageCreer')) { // Insertion du nouveau personnage. if (isset($_POST) && count($_POST) > 0) { if ($FormulaireUniqueId->validate()) { $insert = true; // Si un champ n'a pas été saisie par l'utisateur foreach ($_POST as $key => $value) { if ($value == '') { $insert = false; } } if ($insert) { // Personnagetype avec les données du POST $PersonnageType = new PersonnageType($PersonnageTypeManager->get($_POST['personnageTypeId'])); // Création du personnage avec les données POST // personnageTypeId, nom $Personnage = new Personnage($_POST); // Update des attributs du personnage qui ne sont pas dans le POST $Personnage->setDegat($PersonnageType->getDegat()); $Personnage->setExperience(0); $Personnage->setMouvement($PersonnageType->getMouvement()); $Personnage->setNombreAttaque($PersonnageType->getNombreAttaque()); $Personnage->setPointDeVie($PersonnageType->getPointDeVie()); $Personnage->setPlanId(1); $Personnage->setPointInvestissement(0); $Personnage->setPositionX(1); $Personnage->setPositionY(1); $Personnage->setTourDeJeu(date("Y-m-d H:i:s")); $Personnage->setProchainTourDeJeu(date("Y-m-d H:i:s", strtotime(date("Y-m-d H:i:s")) + "30 seconds"));
$Personnage->setNombreAttaque(0); $PersonnageManager->update($Personnage); } $CarteManager = new CarteManager($db); $Carte = new Carte($CarteManager->get($Personnage->getPlanId())); $listeAdversaire = $PersonnageManager->getAdversaire($Joueur->getId(), $Personnage->getPlanId()); $Adversaires = array(); if (count($listeAdversaire) > 0) { foreach ($listeAdversaire as $key => $item) { $Adversaires[] = new Personnage($PersonnageManager->get($item->id)); } } $PersonnagesTemp = array_merge($Personnages, $Adversaires); $direction = $Personnage->getDirection($PersonnagesTemp, $Carte); $PersonnageTypeManager = new PersonnageTypeManager($db); $PersonnageType = new PersonnageType($PersonnageTypeManager->get($Personnage->getPersonnageTypeId())); $EvolutionManager = new EvolutionManager($db); //Récuperation de la liste des évolutions correspondant au personnage type $evolutionGetBy = $EvolutionManager->getBy('personnageTypeId', $Personnage->getPersonnageTypeId()); $listeEvolution = array(); if (count($evolutionGetBy) > 0) { foreach ($evolutionGetBy as $evolution) { // Instance de chaque evolution $iEvolution = new Evolution($evolution); // Si l'expérience du personnage est comprise dans la tranche d'evolution if ($iEvolution->getPalierInferieur() <= $Personnage->getExperience() && $iEvolution->getPalierSuperieur() > $Personnage->getExperience()) { $iconePersonnageId = $iEvolution->getIconePersonnageId(); $Personnage->setIconePersonnageId($iconePersonnageId); $PersonnageManager->update_iconepersonnage_personnage($Personnage); //On met à jour le personnage $Personnage = new Personnage($PersonnageManager->get($Personnage->getId()));