comparison pyntnclick/tests/game_logic_utils.py @ 816:eed75a1d50c4 pyntnclick

Better Item handling.
author Jeremy Thurgood <firxen@gmail.com>
date Sun, 27 Jan 2013 22:19:39 +0200
parents bdaffaa8b6bf
children
comparison
equal deleted inserted replaced
815:8f94fbf05ab9 816:eed75a1d50c4
35 35
36 def close_detail(self): 36 def close_detail(self):
37 self.scene_stack.pop() 37 self.scene_stack.pop()
38 self.assertTrue(len(self.scene_stack) > 0) 38 self.assertTrue(len(self.scene_stack) > 0)
39 39
40 def tearDown(self):
41 for item in self.state.items.values():
42 if isinstance(item, pyntnclick.state.CloneableItem):
43 type(item)._counter = 0
44
45 def clear_event_queue(self): 40 def clear_event_queue(self):
46 # Since we aren't handling events, we may overflow the pygame 41 # Since we aren't handling events, we may overflow the pygame
47 # event buffer if we're generating a lot of events 42 # event buffer if we're generating a lot of events
48 pygame.event.clear() 43 pygame.event.clear()
49 44
78 73
79 def assert_detail_thing(self, thing, in_detail=True): 74 def assert_detail_thing(self, thing, in_detail=True):
80 self.assertEquals(in_detail, thing in self.scene_stack[-1].things) 75 self.assertEquals(in_detail, thing in self.scene_stack[-1].things)
81 76
82 def assert_item_exists(self, item, exists=True): 77 def assert_item_exists(self, item, exists=True):
83 self.assertEquals(exists, item in self.state.items) 78 try:
79 self.state.get_item(item)
80 self.assertTrue(exists)
81 except:
82 self.assertFalse(exists)
84 83
85 def assert_current_scene(self, scene): 84 def assert_current_scene(self, scene):
86 self.assertEquals(scene, self.state.get_current_scene().name) 85 self.assertEquals(scene, self.state.get_current_scene().name)
87 86
88 def handle_result(self, result): 87 def handle_result(self, result):
97 96
98 def interact_thing(self, thing, item=None, detail=None): 97 def interact_thing(self, thing, item=None, detail=None):
99 item_obj = None 98 item_obj = None
100 if item is not None: 99 if item is not None:
101 self.assert_inventory_item(item) 100 self.assert_inventory_item(item)
102 item_obj = self.state.items[item] 101 item_obj = self.state.get_item(item)
103 thing_container = self.scene_stack[-1] 102 thing_container = self.scene_stack[-1]
104 if detail is not None: 103 if detail is not None:
105 self.assertEqual(detail, thing_container.name) 104 self.assertEqual(detail, thing_container.name)
106 result = thing_container.things[thing].interact(item_obj) 105 result = thing_container.things[thing].interact(item_obj)
107 return self.handle_result(result) 106 return self.handle_result(result)
108 107
109 def interact_item(self, target_item, item): 108 def interact_item(self, target_item, item):
110 self.assert_inventory_item(target_item) 109 self.assert_inventory_item(target_item)
111 item_obj = self.state.items[item] 110 item_obj = self.state.get_item(item)
112 target_obj = self.state.items[target_item] 111 target_obj = self.state.get_item(target_item)
113 result = target_obj.interact(item_obj) 112 result = target_obj.interact(item_obj)
114 return self.handle_result(result) 113 return self.handle_result(result)