Exemplo n.º 1
0
	private function getInventory()
	{	
	        $this->page = $this->page ? $this->page : 1;
		$ir = new InventoryReader($this->userId);
		$ir->setPage( $this->page );
		$ir->setPerpage( $this->resultsPerPage );
		
		// set filter for inventory reader
		switch( $this->type )
		{
			case 'zomg':
				$ir->addFilter( new MainInventoryFilter() );
				$ir->addFilter( new ZomgFilter() );             
				break;
				
			case 'game':
				$ir->addFilter( new GameItemsFilter() );
				$ir->addFilter( new NotLootFilter() );              
				break;
			
			case 'equip':
				$ir->addFilter( new UnequippedFilter() );
                $ir->addFilter( new EquippablesFilter() );                
				break;
			
			case 'housing':
				$ir->addFilter( new HousingItemsFilter() );
                $ir->addFilter( new UnequippedFilter() );
				break; 
			
			case 'special':
				$ir->addFilter( new SpecialsFilter() );                
                $ir->addFilter( new UnequippedFilter() );
				break;
			
			default:
				$ir->addFilter( new MainInventoryFilter() );
                $ir->addFilter( new UnequippedFilter() );
				break;
		}		
		
		$ir->retrieveProperties();
		$rs = $ir->execute();
		//error handling
		if( !$rs->isSuccess())	{		
			throw new CircuitExecutionException($rs->whyYouBreak(), $rs->getDebug()); 
		}
		
		//format data
        $items = $rs->getItems();
		$item_ids = $rs->getItemIds();
		$items_total = $rs->getTotalItems();
		$serials = $rs->getSerials();

		if ( $this->type == 'zomg'&& count($items) < $this->resultsPerPage )
		{
			$ir = new InventoryReader($this->userId);
			$ir->addFilter( new LootFilter() );
			$ir->retrieveProperties();
			$rs = $ir->execute();
			if( !$rs->isSuccess())	{				
				throw new CircuitExecutionException($rs->whyYouBreak(), $rs->getDebug()); 
			}
			
			$items = array_merge($items,$rs->getItems());
			$item_ids = array_merge($item_ids,$rs->getItemIds());
			$items_total += $rs->getTotalItems();
			$serials = array_merge($serials,$rs->getSerials());
		}

		// save stuff for later.
		$this->set('inventory', $items);
		$this->set('serials', $serials);		
        $this->set('page', $this->page);		
		$this->set('totalPages', ceil($items_total / $this->resultsPerPage));		
		$this->set('resultsPerPage', $this->resultsPerPage);
		
		//return
		return $item_ids;
	}