public function chasserAction()
 {
     // L'utilisateur est bien en ROLE_USER
     if (TRUE === $this->get('security.authorization_checker')->isGranted('ROLE_USER')) {
         // On récupère l'utilisateur loggé
         $user = $this->container->get('security.token_storage')->getToken()->getUser();
         $em = $this->getDoctrine()->getManager();
         $stats = $em->getRepository('CoeurBundle:Stats')->findOneByUtilisateurs($user);
         // On récupère les stats
         $ressources = $em->getRepository('CoeurBundle:Ressources')->getAllItems($user);
         // On récupère les Ressources
         $ressourcesViande = $em->getRepository('CoeurBundle:Ressources')->findOneBy(array('items' => 3, 'utilisateurss' => $user->getId()));
         // On récupère l'item "3" dans les ressources
         $ressourcesOeuf = $em->getRepository('CoeurBundle:Ressources')->findOneBy(array('items' => 4, 'utilisateurss' => $user->getId()));
         // On récupère l'item "4" dans les ressources
         $ressourcesChampignon = $em->getRepository('CoeurBundle:Ressources')->findOneBy(array('items' => 6, 'utilisateurss' => $user->getId()));
         // ...
         $ressourcesPeau = $em->getRepository('CoeurBundle:Ressources')->findOneBy(array('items' => 10, 'utilisateurss' => $user->getId()));
         // ...
         // On récupère la liste des items pour modifier les rand().
         $ressourcesArc = $em->getRepository('CoeurBundle:Ressources')->findOneBy(array('items' => 8, 'utilisateurss' => $user->getId()));
         // ...
         $ressourcesFleche = $em->getRepository('CoeurBundle:Ressources')->findOneBy(array('items' => 9, 'utilisateurss' => $user->getId()));
         // ...
         $ressourcesSacADos = $em->getRepository('CoeurBundle:Ressources')->findOneBy(array('items' => 11, 'utilisateurss' => $user->getId()));
         // ...
         $itemsViande = $em->getRepository('CoeurBundle:Items')->findOneById('3');
         // On récupère les infos de l'item "viande"
         $itemsOeuf = $em->getRepository('CoeurBundle:Items')->findOneById('4');
         // On récupère les infos de l'item "oeuf"
         $itemsChampignon = $em->getRepository('CoeurBundle:Items')->findOneById('6');
         // ...
         $itemsPeau = $em->getRepository('CoeurBundle:Items')->findOneById('10');
         // ...
         $itemsFleche = $em->getRepository('CoeurBundle:Items')->findOneById('9');
         // ...
         // On définit ici le poids TOTAL de l'utilisateur
         $poidsTotal = '';
         $itemsTotal = '';
         $itemsTotalQty = '';
         foreach ($ressources as $ressource) {
             $poidsTotal += $ressource->getItems()->getPoids() * $ressource->getQty();
             $itemsTotal += 1;
             $itemsTotalQty += $ressource->getQty();
         }
         // Définition des variables global
         $StatsSoustraitFaim = 23.4;
         $StatsSoustraitSoif = 23.4;
         $StatsSoustraitFatigue = 23.4;
         // On va définir tout de suite si l'utilisateur possède un Sac à dos ou bien rien du tout...
         if ($ressourcesSacADos) {
             $PoidsMaxi = 50;
         } else {
             $PoidsMaxi = 5;
         }
         // Si les stats : Faim, Soif, Fatigue sont suppérieur à 25 l'utilisateurs peut chasser !
         if ($stats->getFaim() > $StatsSoustraitFaim + 2 and $stats->getSoif() > $StatsSoustraitSoif + 2 and $stats->getFatigue() > $StatsSoustraitFatigue + 2) {
             if ($poidsTotal < $PoidsMaxi) {
                 // On modifie les stats de l'utilisateurs !
                 $newFaim = $stats->getFaim() - $StatsSoustraitFaim;
                 $newSoif = $stats->getSoif() - $StatsSoustraitSoif;
                 $newFatigue = $stats->getFatigue() - $StatsSoustraitFatigue;
                 if ($newFaim <= 0) {
                     $newFaim = 0;
                 }
                 if ($newSoif <= 0) {
                     $newSoif = 0;
                 }
                 if ($newFatigue <= 0) {
                     $newFatigue = 0;
                 }
                 $stats->setFaim($newFaim);
                 $stats->setSoif($newSoif);
                 $stats->setFatigue($newFatigue);
                 if ($ressourcesArc) {
                     if ($ressourcesFleche and $ressourcesFleche->getQty() > 0) {
                         // On effecture un RAND pour obtenir les récoltes
                         $viande = mt_rand(0, $ressourcesFleche->getQty());
                         $oeuf = mt_rand(0, 3);
                         $champignon = mt_rand(0, 5);
                         $peau = mt_rand(0, $viande);
                         $useArc = TRUE;
                     } else {
                         // Si il n'a pas de flèche, idem qu'à main nue
                         // On effecture un RAND pour obtenir les récoltes
                         $viande = mt_rand(0, 1);
                         $oeuf = mt_rand(0, 3);
                         $champignon = mt_rand(0, 20);
                         $peau = mt_rand(0, 1);
                         $useArc = FALSE;
                     }
                 } else {
                     // On effecture un RAND pour obtenir les récoltes
                     $viande = mt_rand(0, 1);
                     $oeuf = mt_rand(0, 3);
                     $champignon = mt_rand(0, 20);
                     $peau = mt_rand(0, 1);
                     $useArc = FALSE;
                 }
                 // On ajoute ou modifie les récoltes
                 // si le rand est suppérieur à 0
                 if ($viande > 0) {
                     if (!$ressourcesViande) {
                         $newressourceviande = new Ressources();
                         $newressourceviande->setUtilisateurss($user);
                         $newressourceviande->setItems($itemsViande);
                         $newressourceviande->setQty($viande);
                         $em->persist($newressourceviande);
                         if (TRUE === $useArc) {
                             $newQtyFleche = $ressourcesFleche->getQty() - ($viande + 3);
                             if ($newQtyFleche <= 0) {
                                 $newQtyFleche = 0;
                             }
                             $ressourcesFleche->setQty($newQtyFleche);
                         }
                     } else {
                         $newQty = $ressourcesViande->getQty() + $viande;
                         $ressourcesViande->setQty($newQty);
                         if (TRUE === $useArc) {
                             $newQtyFleche = $ressourcesFleche->getQty() - ($viande + 3);
                             if ($newQtyFleche <= 0) {
                                 $newQtyFleche = 0;
                             }
                             $ressourcesFleche->setQty($newQtyFleche);
                         }
                     }
                 }
                 // si le rand est suppérieur à 0
                 if ($oeuf > 0) {
                     if (!$ressourcesOeuf) {
                         $newressourceoeuf = new Ressources();
                         $newressourceoeuf->setUtilisateurss($user);
                         $newressourceoeuf->setItems($itemsOeuf);
                         $newressourceoeuf->setQty($oeuf);
                         $em->persist($newressourceoeuf);
                     } else {
                         $newQty = $ressourcesOeuf->getQty() + $oeuf;
                         $ressourcesOeuf->setQty($newQty);
                     }
                 }
                 if ($champignon > 0) {
                     if (!$ressourcesChampignon) {
                         $newressourcechampignon = new Ressources();
                         $newressourcechampignon->setUtilisateurss($user);
                         $newressourcechampignon->setItems($itemsChampignon);
                         $newressourcechampignon->setQty($champignon);
                         $em->persist($newressourcechampignon);
                     } else {
                         $newQty = $ressourcesChampignon->getQty() + $champignon;
                         $ressourcesChampignon->setQty($newQty);
                     }
                 }
                 if ($peau > 0) {
                     if (!$ressourcesPeau) {
                         $newressourcepeau = new Ressources();
                         $newressourcepeau->setUtilisateurss($user);
                         $newressourcepeau->setItems($itemsPeau);
                         $newressourcepeau->setQty($peau);
                         $em->persist($newressourcepeau);
                     } else {
                         $newQty = $ressourcesPeau->getQty() + $peau;
                         $ressourcesPeau->setQty($newQty);
                     }
                 }
                 $em->flush();
                 // C'est moche, mais c'est pour la gestion du pluriel singulier
                 if ($viande > 1) {
                     $plsv = 's';
                 } else {
                     $plsv = '';
                 }
                 if ($oeuf > 1) {
                     $plso = 's';
                 } else {
                     $plso = '';
                 }
                 if ($champignon > 1) {
                     $plsc = 's';
                 } else {
                     $plsc = '';
                 }
                 if ($peau > 1) {
                     $plsp = 'x';
                 } else {
                     $plsp = '';
                 }
                 if (!empty($newQtyFleche)) {
                     if ($newQtyFleche > 1) {
                         $plsf = 's';
                     } else {
                         $plsf = '';
                     }
                 } else {
                     $plsf = '';
                 }
                 $ressources = $em->getRepository('CoeurBundle:Ressources')->getAllItems($user);
                 // On re récupère les Ressources pour être à jour !
                 // On affiche les récoltes
                 $recolte = $viande . ' viande' . $plsv . ', ' . $oeuf . ' oeuf' . $plso . ', ' . $champignon . ' champignon' . $plsc . ', ' . $peau . ' peau' . $plsp . ' récolté(s)';
                 if ($useArc) {
                     $nbFlecheUse = $viande + 3;
                     $recolte .= '<br />Vous avez utiliser un Arc et ' . $nbFlecheUse . ' flèche' . $plsf . '.';
                 }
                 return $this->render('CoeurBundle:Default:chasser.html.twig', array('utilisateurs' => $user, 'stats' => $stats, 'ressources' => $ressources, 'poidsMaxi' => $PoidsMaxi, 'poidsTotal' => $poidsTotal, 'itemsTotal' => $itemsTotal, 'itemsTotalQty' => $itemsTotalQty, 'recolte' => $recolte));
             } else {
                 $error = 'Vous n\'êtes pas en capacité de chasser, vous porter trop d\'objets !';
                 return $this->render('CoeurBundle:Default:chasser.html.twig', array('utilisateurs' => $user, 'stats' => $stats, 'ressources' => $ressources, 'poidsMaxi' => $PoidsMaxi, 'poidsTotal' => $poidsTotal, 'itemsTotal' => $itemsTotal, 'itemsTotalQty' => $itemsTotalQty, 'error' => $error));
             }
         } else {
             $error = 'Vous n\'êtes pas en capacité de chasser !';
             return $this->render('CoeurBundle:Default:chasser.html.twig', array('utilisateurs' => $user, 'stats' => $stats, 'ressources' => $ressources, 'poidsMaxi' => $PoidsMaxi, 'poidsTotal' => $poidsTotal, 'itemsTotal' => $itemsTotal, 'itemsTotalQty' => $itemsTotalQty, 'error' => $error));
         }
     }
 }
Beispiel #2
0
 public function minerAction()
 {
     // L'utilisateur est bien en ROLE_USER
     if (TRUE === $this->get('security.authorization_checker')->isGranted('ROLE_USER')) {
         // On récupère l'utilisateur loggé
         $user = $this->container->get('security.token_storage')->getToken()->getUser();
         $em = $this->getDoctrine()->getManager();
         $stats = $em->getRepository('CoeurBundle:Stats')->findOneByUtilisateurs($user);
         // On récupère les stats
         $ressources = $em->getRepository('CoeurBundle:Ressources')->getAllItems($user);
         // On récupère les Ressources
         $ressourcesBois = $em->getRepository('CoeurBundle:Ressources')->findOneBy(array('items' => 1, 'utilisateurss' => $user->getId()));
         // On récupère l'item "1" dans les ressources
         $ressourcesPierre = $em->getRepository('CoeurBundle:Ressources')->findOneBy(array('items' => 2, 'utilisateurss' => $user->getId()));
         // On récupère l'item "2" dans les ressources
         // On récupère la liste des items pour modifier les rand().
         $ressourcesPioche = $em->getRepository('CoeurBundle:Ressources')->findOneBy(array('items' => 5, 'utilisateurss' => $user->getId()));
         // ...
         $ressourcesHache = $em->getRepository('CoeurBundle:Ressources')->findOneBy(array('items' => 7, 'utilisateurss' => $user->getId()));
         // ...
         $ressourcesSacADos = $em->getRepository('CoeurBundle:Ressources')->findOneBy(array('items' => 11, 'utilisateurss' => $user->getId()));
         // ...
         $itemsBois = $em->getRepository('CoeurBundle:Items')->findOneById('1');
         // On récupère les infos de l'item "bois"
         $itemsPierre = $em->getRepository('CoeurBundle:Items')->findOneById('2');
         // On récupère les infos de l'item "pierre"
         $itemsPioche = $em->getRepository('CoeurBundle:Items')->findOneById('5');
         // On récupère les infos de l'item "pioche"
         $itemsHache = $em->getRepository('CoeurBundle:Items')->findOneById('7');
         // On récupère les infos de l'item "hache"
         // On définit ici le poids TOTAL de l'utilisateur
         $poidsTotal = '';
         $itemsTotal = '';
         $itemsTotalQty = '';
         foreach ($ressources as $ressource) {
             $poidsTotal += $ressource->getItems()->getPoids() * $ressource->getQty();
             $itemsTotal += 1;
             $itemsTotalQty += $ressource->getQty();
         }
         // Définition des variables global
         $StatsSoustraitFaim = 12.7;
         $StatsSoustraitSoif = 4.9;
         $StatsSoustraitFatigue = 20.1;
         // On va définir tout de suite si l'utilisateur possède un Sac à dos ou bien rien du tout...
         if ($ressourcesSacADos) {
             $PoidsMaxi = 50;
         } else {
             $PoidsMaxi = 5;
         }
         // Si les stats : Faim, Soif, Fatigue sont suppérieur à 25 l'utilisateurs peut chasser !
         if ($stats->getFaim() > $StatsSoustraitFaim + 2 and $stats->getSoif() > $StatsSoustraitSoif + 2 and $stats->getFatigue() > $StatsSoustraitFatigue + 2) {
             if ($poidsTotal < $PoidsMaxi) {
                 // On modifie les stats de l'utilisateurs !
                 $newFaim = $stats->getFaim() - $StatsSoustraitFaim;
                 $newSoif = $stats->getSoif() - $StatsSoustraitSoif;
                 $newFatigue = $stats->getFatigue() - $StatsSoustraitFatigue;
                 if ($newFaim <= 0) {
                     $newFaim = 0;
                 }
                 if ($newSoif <= 0) {
                     $newSoif = 0;
                 }
                 if ($newFatigue <= 0) {
                     $newFatigue = 0;
                 }
                 $stats->setFaim($newFaim);
                 $stats->setSoif($newSoif);
                 $stats->setFatigue($newFatigue);
                 if ($ressourcesPioche and !$ressourcesHache) {
                     // On effecture un RAND pour obtenir les récoltes
                     $bois = mt_rand(0, 5);
                     $pierre = mt_rand(0, 30);
                     $usePioche = TRUE;
                     $useHache = FALSE;
                 } elseif (!$ressourcesPioche and $ressourcesHache) {
                     // On effecture un RAND pour obtenir les récoltes
                     $bois = mt_rand(0, 30);
                     $pierre = mt_rand(0, 5);
                     $usePioche = FALSE;
                     $useHache = TRUE;
                 } elseif ($ressourcesPioche and $ressourcesHache) {
                     // On effecture un RAND pour obtenir les récoltes
                     $bois = mt_rand(0, 30);
                     $pierre = mt_rand(0, 30);
                     $usePioche = TRUE;
                     $useHache = TRUE;
                 } else {
                     // On effecture un RAND pour obtenir les récoltes
                     $bois = mt_rand(0, 5);
                     $pierre = mt_rand(0, 5);
                     $usePioche = FALSE;
                     $useHache = FALSE;
                 }
                 // On ajoute ou modifie les récoltes
                 // si le rand est suppérieur à 0
                 if ($bois > 0) {
                     if (!$ressourcesBois) {
                         $newressourcesBois = new Ressources();
                         $newressourcesBois->setUtilisateurss($user);
                         $newressourcesBois->setItems($itemsBois);
                         $newressourcesBois->setQty($bois);
                         $em->persist($newressourcesBois);
                     } else {
                         $newQty = $ressourcesBois->getQty() + $bois;
                         $ressourcesBois->setQty($newQty);
                     }
                 }
                 // si le rand est suppérieur à 0
                 if ($pierre > 0) {
                     if (!$ressourcesPierre) {
                         $newressourcesPierre = new Ressources();
                         $newressourcesPierre->setUtilisateurss($user);
                         $newressourcesPierre->setItems($itemsPierre);
                         $newressourcesPierre->setQty($pierre);
                         $em->persist($newressourcesPierre);
                     } else {
                         $newQty = $ressourcesPierre->getQty() + $pierre;
                         $ressourcesPierre->setQty($newQty);
                     }
                 }
                 $em->flush();
                 // C'est moche, mais c'est pour la gestion du pluriel singulier
                 if ($pierre > 1) {
                     $plsp = 's';
                 } else {
                     $plsp = '';
                 }
                 $ressources = $em->getRepository('CoeurBundle:Ressources')->getAllItems($user);
                 // On re récupère les Ressources pour être à jour !
                 // On affiche les récoltes
                 $recolte = $bois . ' bois, ' . $pierre . ' pierre' . $plsp . ' récolté(s)';
                 if ($useHache and !$usePioche) {
                     $recolte .= '<br />Vous avez utiliser une Hache';
                 } elseif ($usePioche and !$useHache) {
                     $recolte .= '<br />Vous avez utiliser une Pioche';
                 } elseif ($usePioche and $useHache) {
                     $recolte .= '<br />Vous avez utiliser une Hache et une Pioche';
                 } else {
                     $recolte .= '<br />Vous n\'avez pas de Pioche et d\'Hache, vos ressources sont donc minimiser, pensez à craft une Hache ou une Pioche';
                 }
                 return $this->render('CoeurBundle:Default:miner.html.twig', array('utilisateurs' => $user, 'stats' => $stats, 'ressources' => $ressources, 'poidsMaxi' => $PoidsMaxi, 'poidsTotal' => $poidsTotal, 'itemsTotal' => $itemsTotal, 'itemsTotalQty' => $itemsTotalQty, 'recolte' => $recolte));
             } else {
                 $error = 'Vous n\'êtes pas en capacité de miner, vous porter trop d\'objets !';
                 return $this->render('CoeurBundle:Default:miner.html.twig', array('utilisateurs' => $user, 'stats' => $stats, 'ressources' => $ressources, 'poidsMaxi' => $PoidsMaxi, 'poidsTotal' => $poidsTotal, 'itemsTotal' => $itemsTotal, 'itemsTotalQty' => $itemsTotalQty, 'error' => $error));
             }
         } else {
             $error = 'Vous n\'êtes pas en capacité de miner !';
             return $this->render('CoeurBundle:Default:miner.html.twig', array('utilisateurs' => $user, 'stats' => $stats, 'ressources' => $ressources, 'poidsMaxi' => $PoidsMaxi, 'poidsTotal' => $poidsTotal, 'itemsTotal' => $itemsTotal, 'itemsTotalQty' => $itemsTotalQty, 'error' => $error));
         }
     }
 }