Exemplo n.º 1
0
 /**
  * Creates and wages an epic battle
  *
  * @param Programmer $programmer
  * @param Project $project
  * @return Battle
  */
 public function battle(Programmer $programmer, Project $project)
 {
     $battle = new Battle($programmer, $project);
     if ($programmer->getPowerLevel() < $project->getDifficultyLevel()) {
         // not enough energy
         $battle->setBattleLostByProgrammer('You don\'t have the skills to even start this project. Read the documentation (i.e. power up) and try again!');
     } else {
         if (rand(0, 2) != 2) {
             $battle->setBattleWonByProgrammer('You battled heroically, asked great questions, worked pragmatically and finished on time. You\'re a hero!');
         } else {
             $battle->setBattleLostByProgrammer('Requirements kept changing, too many meetings, project failed :(');
         }
         $programmer->setPowerLevel($programmer->getPowerLevel() - $project->getDifficultyLevel());
     }
     $this->em->persist($battle);
     $this->em->persist($programmer);
     $this->em->flush();
     return $battle;
 }
Exemplo n.º 2
0
 public function getPowerLevelClass(Programmer $programmer)
 {
     $powerLevel = $programmer->getPowerLevel();
     switch (true) {
         case $powerLevel <= 3:
             return 'danger';
             break;
         case $powerLevel <= 7:
             return 'warning';
             break;
         default:
             return 'success';
     }
 }
Exemplo n.º 3
0
 /**
  * Powers up this programmer
  *
  * @param Programmer $programmer
  * @return string A description of what happened
  */
 public function powerUp(Programmer $programmer)
 {
     // vary the power change between 3 and 7
     $powerChange = rand(3, 7);
     // have a 1/4 chance that the change will be negative (and then make the negatives smaller)
     $powerChange = rand(0, 3) == 3 ? floor($powerChange / 2) * -1 : $powerChange;
     $programmer->setPowerLevel($programmer->getPowerLevel() + $powerChange);
     $this->em->persist($programmer);
     $this->em->flush();
     if ($powerChange > 0) {
         $key = array_rand(self::$positiveMessages);
         $message = sprintf(self::$positiveMessages[$key], $powerChange);
     } else {
         $key = array_rand(self::$negativeMessages);
         $message = sprintf(self::$negativeMessages[$key], $powerChange);
     }
     return array('message' => $message, 'powerChange' => $powerChange);
 }
 private function serializeProgrammer(Programmer $programmer)
 {
     return array('nickname' => $programmer->getNickname(), 'avatarNumber' => $programmer->getAvatarNumber(), 'powerLevel' => $programmer->getPowerLevel(), 'tagLine' => $programmer->getTagLine());
 }