Mercurial > rinkhals
diff gamelib/gameboard.py @ 108:437cbd856a03
Add occupants and abodes. Allowing moving chickens around.
author | Simon Cross <hodgestar@gmail.com> |
---|---|
date | Wed, 02 Sep 2009 18:42:00 +0000 |
parents | 7910b4e01dba |
children | 48019afde338 |
line wrap: on
line diff
--- a/gamelib/gameboard.py Wed Sep 02 18:26:15 2009 +0000 +++ b/gamelib/gameboard.py Wed Sep 02 18:42:00 2009 +0000 @@ -217,20 +217,29 @@ """ chicken = self.get_chicken(tile_pos) if chicken: - self.animal_to_place = chicken - print "Selected animal %r" % (chicken,) + if chicken is self.animal_to_place: + self.animal_to_place = None + else: + self.animal_to_place = chicken + print "Selected animal %r" % (self.animal_to_place,) return building = self.get_building(tile_pos) if building: if self.animal_to_place is not None: - self.put_animal_in_building(self.animal_to_place, building) + occupant = self.animal_to_place + if occupant in self.tv.sprites: + self.tv.sprites.remove(occupant) + building.add_occupant(occupant) + print building, building.occupants() else: self.select_animal_from_building(building) - - def put_animal_in_building(self, animal, building): - """Place animal in building.""" - # XXX: unimplemented - print "Placing %r in %r" % (animal, building) + return + if self.tv.get(tile_pos) == self.GRASSLAND: + if self.animal_to_place is not None: + occupant = self.animal_to_place + if occupant.abode is not None: + occupant.abode.remove_occupant(occupant) + occupant.set_pos(tile_pos) def select_animal_from_building(self, building): """Create dialog for selecting an animal from a building."""