Example #1
0
 public static function evaluateRequirementAtom($pack)
 {
     $atom = dbconnection::queryObject("SELECT * FROM requirement_atoms WHERE requirement_atom_id = '{$pack->requirement_atom_id}'");
     if (!$atom) {
         return false;
     }
     $atom->user_id = $pack->user_id;
     if ($atom->bool_operator == 0) {
         $atom->bool_operator = false;
     }
     if ($atom->bool_operator == 1) {
         $atom->bool_operator = true;
     }
     //these functions need to be defined for new schema
     switch ($atom->requirement) {
         case 'ALWAYS_TRUE':
             return $atom->bool_operator == true;
         case 'ALWAYS_FALSE':
             return $atom->bool_operator == false;
         case 'PLAYER_HAS_ITEM':
             return $atom->bool_operator == requirements::playerHasItem($atom);
         case 'PLAYER_HAS_TAGGED_ITEM':
             return $atom->bool_operator == requirements::playerHasTaggedItem($atom);
         case 'GAME_HAS_ITEM':
             return $atom->bool_operator == requirements::gameHasItem($atom);
         case 'GAME_HAS_TAGGED_ITEM':
             return $atom->bool_operator == requirements::gameHasTaggedItem($atom);
         case 'GROUP_HAS_ITEM':
             return $atom->bool_operator == requirements::groupHasItem($atom);
         case 'GROUP_HAS_TAGGED_ITEM':
             return $atom->bool_operator == requirements::groupHasTaggedItem($atom);
         case 'PLAYER_VIEWED_ITEM':
             return $atom->bool_operator == requirements::playerViewed($atom, "ITEM");
         case 'PLAYER_VIEWED_PLAQUE':
             return $atom->bool_operator == requirements::playerViewed($atom, "PLAQUE");
         case 'PLAYER_VIEWED_DIALOG':
             return $atom->bool_operator == requirements::playerViewed($atom, "DIALOG");
         case 'PLAYER_VIEWED_DIALOG_SCRIPT':
             return $atom->bool_operator == requirements::playerViewed($atom, "DIALOG_SCRIPT");
         case 'PLAYER_VIEWED_WEB_PAGE':
             return $atom->bool_operator == requirements::playerViewed($atom, "WEB_PAGE");
         case 'PLAYER_RAN_EVENT_PACKAGE':
             return $atom->bool_operator == requirements::playerRanEvent($atom);
         case 'PLAYER_HAS_UPLOADED_MEDIA_ITEM':
             return $atom->bool_operator == requirements::playerUploadedAnyNear($atom);
         case 'PLAYER_HAS_UPLOADED_MEDIA_ITEM_IMAGE':
             return $atom->bool_operator == requirements::playerUploadedTypeNear($atom, "IMAGE");
         case 'PLAYER_HAS_UPLOADED_MEDIA_ITEM_AUDIO':
             return $atom->bool_operator == requirements::playerUploadedTypeNear($atom, "AUDIO");
         case 'PLAYER_HAS_UPLOADED_MEDIA_ITEM_VIDEO':
             return $atom->bool_operator == requirements::playerUploadedTypeNear($atom, "VIDEO");
         case 'PLAYER_HAS_COMPLETED_QUEST':
             return $atom->bool_operator == requirements::playerCompletedQuest($atom);
         case 'PLAYER_HAS_RECEIVED_INCOMING_WEB_HOOK':
             return $atom->bool_operator == requirements::playerReceivedWebHook($atom);
         case 'PLAYER_HAS_NOTE':
             return $atom->bool_operator == requirements::playerHasNote($atom);
         case 'PLAYER_HAS_NOTE_WITH_TAG':
             return $atom->bool_operator == requirements::playerHasNoteWithTag($atom);
         case 'PLAYER_HAS_NOTE_WITH_LIKES':
             return $atom->bool_operator == requirements::playerHasNoteWithLikes($atom);
         case 'PLAYER_HAS_NOTE_WITH_COMMENTS':
             return $atom->bool_operator == requirements::playerHasNoteWithComments($atom);
         case 'PLAYER_HAS_GIVEN_NOTE_COMMENTS':
             return $atom->bool_operator == requirements::playerHasGivenNoteComments($atom);
     }
     return false;
 }