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)); } } }
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)); } } }