Changeset 73:f3ce3346e25e


Ignore:
Timestamp:
Aug 31, 2009, 10:44:37 PM (11 years ago)
Author:
Neil Muller <drnlmuller@…>
Branch:
default
Convert:
svn:b4e93282-eac8-4b8b-b765-0f5d36de2b68@74
Message:

Spawn foxes jsut outside the map

File:
1 edited

Legend:

Unmodified
Added
Removed
  • gamelib/gameboard.py

    r69 r73  
    1010import buildings
    1111import animal
    12 from misc import Position
    1312
    1413class OpaqueLabel(gui.Label):
     
    300299    def spawn_foxes(self):
    301300        """The foxes come at night, and this is where they come from."""
    302         # Very simple, we walk around the tilemap, and, for each farm tile,
    303         # we randomly add a chicken (1 in 10 chance) until we have 5 chickens
    304         # or we run out of board
     301        # Foxes spawn just outside the map
    305302        x, y = 0, 0
    306303        width, height = self.tv.size
    307304        new_foxes = random.randint(3, 7)
    308305        while len(self.foxes) < new_foxes:
    309             if x < width:
    310                 tile = self.tv.get((x, y))
     306            side = random.randint(0, 3)
     307            if side == 0:
     308                # top
     309                y = -1
     310                x = random.randint(-1, width)
     311            elif side == 1:
     312                # bottom
     313                y = height
     314                x = random.randint(-1, width)
     315            elif side == 2:
     316                # left
     317                x = -1
     318                y = random.randint(-1, height)
    311319            else:
    312                 y += 1
    313                 if y >= height:
     320                x = width
     321                y = random.randint(-1, height)
     322            skip = False
     323            for other_fox in self.foxes:
     324                if other_fox.pos.x == x and other_fox.pos.y == y:
     325                    skip = True # Choose a new position
    314326                    break
    315                 x = 0
    316                 continue
    317             # See if we place a fox
    318             if tiles.TILE_MAP[tile] == 'woodland':
    319                 # Forest
    320                 roll = random.randint(1, 20)
    321                 if roll == 1:
    322                     # Create a fox
    323                     fox = animal.Fox((x, y))
    324                     self.add_fox(fox)
    325             x += 5
     327            if not skip:
     328                fox = animal.Fox((x, y))
     329                self.add_fox(fox)
    326330
    327331    def fix_buildings(self):
Note: See TracChangeset for help on using the changeset viewer.