Пример #1
0
 /**
  * Level up a dragon (or set it as in training, as appropriate)
  * @param MyDragon $myDragon
  */
 public function levelUp($myDragon)
 {
     if ($myDragon->training) {
         $myDragon->training = false;
         $myDragon->level++;
     } elseif ($myDragon->getPresenter()->thisLevel->level_up_fish || $myDragon->level == 0) {
         // Always level up hatching dragons
         $myDragon->level++;
     } elseif ($myDragon->getPresenter()->thisLevel->level_up_time) {
         $myDragon->training = true;
     }
     $myDragon->save();
 }
 public function levelUp($id)
 {
     /** @var MyDragon $myDragon */
     $myDragon = MyDragon::find($id);
     $this->authorize('owner', $myDragon);
     $this->myDragonService->levelUp($myDragon);
     if ($myDragon->training) {
         Notification::add('success', $myDragon->getPresenter()->fullName . ' set as in training');
         return Redirect::to(Session::get('table', 'my-dragon'));
     } else {
         if (!$this->dragonLevelService->isComplete($myDragon->dragon_id, $myDragon->level)) {
             Notification::add('info', $myDragon->getPresenter()->fullName . ' levelled up - but there is missing information for level ' . $myDragon->level);
             return Redirect::route('dragon.level.edit', ['id' => $myDragon->dragon->id, 'level' => $myDragon->level]);
         } elseif (!$this->dragonLevelService->isUpToDate($myDragon->dragon_id, $myDragon->level)) {
             Notification::add('warning', $myDragon->getPresenter()->fullName . ' levelled up - but the data for level ' . $myDragon->level . ' may be out of date. Please verify it is correct:');
             return Redirect::route('dragon.level.edit', ['id' => $myDragon->dragon->id, 'level' => $myDragon->level]);
         } else {
             Notification::add('success', $myDragon->getPresenter()->fullName . ' levelled up');
             return Redirect::to(Session::get('table', 'my-dragon'));
         }
     }
 }