public function awardExperience(GameSession $session)
 {
     $ids = Input::get("ids");
     $costumes = Input::get("costumes");
     $nom1s = Input::get("nom1s");
     $nom2s = Input::get("nom2s");
     $overrides = Input::get("overrides");
     $save = Input::get("save");
     $missingCharacters = [];
     foreach ($ids as $index => $id) {
         $character = Character::find($id);
         if ($character) {
             $checkIn = GameSessionCheckIn::where(['session_id' => $session->id, 'character_id' => $character->id])->first();
             $checkIn->costume = $costumes[$index] == "true" ? 1 : 0;
             $checkIn->nominated = $nom1s[$index] == "true" ? 1 : 0;
             $checkIn->nominated_twice = $nom2s[$index] == "true" ? 1 : 0;
             $checkIn->bonus = $overrides[$index];
             $checkIn->total_experience = 1 + ($checkIn->costume ? 1 : 0) + ($checkIn->nominated ? 1 : 0) + ($checkIn->nominated_twice ? 1 : 0) + $checkIn->bonus;
             $checkIn->save();
             if (!isset($save)) {
                 $owner = $character->owner;
                 $owner->sendMessage(null, "Experience awarded to " . $character->name, "The Storytellers have awarded your character " . $checkIn->total_experience . " Experience. You can now use the character editor to make changes to it at" . " your leisure. Remember, changes should be submitted by 6:00pm on the Wednesday" . " before a game to ensure that they have the chance to review them.");
                 $character->awardExperience($checkIn->total_experience);
                 $character->save();
             }
         } else {
             $missingCharacters[] = $id;
         }
     }
     if (!isset($save)) {
         $session->submitted = true;
         $session->save();
         foreach (User::listStorytellers() as $st) {
             $st->sendMessage(null, "Experience successfully awarded", "The action to award experience for the session on " . $session->date . " has completed." . (sizeof($missingCharacters) > 0 ? "\n\n" . sizeof($missingCharacters) . " characters were" . " not found (" . implode(",", $missingCharacters) . ")" : ''));
         }
         return Redirect::to("/dashboard");
     } else {
         return Redirect::to("/dashboard/storyteller/session/experience/{$session->id}");
     }
 }
Example #2
0
 public function gamesMissed()
 {
     $last_game = GameSessionCheckIn::where('character_id', $this->id)->join('sessions as session', 'session.id', '=', 'session_id')->orderBy('date', 'desc')->first();
     if ($last_game) {
         return GameSession::where('date', '>', $last_game->date)->where('submitted', 1)->count();
     }
     return -1;
 }