public function onActionComplete(ActionEvent $event) { if ($event->getProgress() === null) { return; } $exp = $event->getProgress() ? 2 : -2; $this->em->getRepository('AcmeUserBundle:User')->increaseExp($event->getUser(), $exp); }
public function firstActionAdd(ActionEvent $event) { $achievement = $this->em->getRepository('AcmeEdelaBundle:Achievement')->findOneBy(['tkey' => 'first-action-add']); if (!$achievement) { return; } if (!($userAchievement = $event->getUser()->getUserAchievements()->matching(Criteria::create()->where(Criteria::expr()->eq('achievement', $achievement)))->first())) { $userAchievement = new UserAchievement(); $userAchievement->setProgress(100)->setUser($event->getUser())->setAchievement($achievement); $this->em->persist($userAchievement); $this->em->getRepository('AcmeUserBundle:User')->increaseExp($event->getUser(), $achievement->getExpReward()); $this->em->persist($event->getUser()); $this->em->flush(); } }