Changeset 436


Ignore:
Timestamp:
12/07/09 01:59:14 (10 years ago)
Author:
b0rland_parpg
Message:

Ticket #107: patch by b0rland
Extended inventory with findByID method. Added tests.

Location:
trunk/game
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/game/scripts/inventory.py

    r435 r436  
    9595        return item.ID in self.item_lookup; 
    9696 
     97    def findItemByID(self, ID): 
     98        if ID not in self.item_lookup: 
     99            return None 
     100        return self.items[self.item_lookup[ID]].findItemByID(ID) 
     101 
     102 
    97103    def __repr__(self): 
    98104        return "[%s:%s "%(self.name, self.ID)+reduce((lambda a,b: str(a) +', '+str(b)), self.items.values())+" ]" 
  • trunk/game/scripts/objects/base.py

    r424 r436  
    262262        if self.containergui: 
    263263            self.containergui.hideContainer() 
     264 
     265    def findItemByID(self, ID): 
     266        for i in self.items : 
     267            if self.items[i].ID == ID: 
     268                return self.items[i] 
     269        return None 
    264270         
    265271class Living (object): 
  • trunk/game/tests/test_inventory.py

    r424 r436  
    6969        self.assertTrue(self.item2 in self.inventory.getItemsInSlot("neck").values()) 
    7070        self.assertFalse(self.item in self.inventory.getItemsInSlot("neck").values()) 
     71 
     72    def testFind(self): 
     73        self.inventory.placeItem(self.item) 
     74        self.assertEqual(self.inventory.findItemByID(12), self.item) 
     75        self.assertEqual(self.inventory.findItemByID(13), None) 
     76 
    7177         
    7278if __name__ == '__main__': 
Note: See TracChangeset for help on using the changeset viewer.