Ejemplo n.º 1
0
    def testMove(self, dir):
    
	if self.obstructed(dir):
	    return

	move_func(self, dir)

	if isinstance(self, Player):

	    game.get_instance().msg_win.clear()
	    game.get_instance().msg_win.refresh()

	    for key in self.current_space.contents:
		for obj in self.current_space.contents[key]:

		    # Make visible objects within the Player's view distance
		    if abs(obj.Ystart - self.pos[0]) <= self.view_distance_y:
			if abs(obj.Xstart - self.pos[1]) <= self.view_distance_x:
			    obj.visible = True

		    # Check to see if we can interact with anything
		    if self.pos in obj.vicinity:
			  game.get_instance().msg_win.clear()
			  game.get_instance().msg_win.addstr(1, 20, "Press " + chr(KEY_INTERACT) + " to interact.")
			  game.get_instance().msg_win.refresh()
Ejemplo n.º 2
0
    def interact(self):

	for key in self.current_space.contents:
	    for obj in self.current_space.contents.get(key):
		if self.pos in obj.vicinity:

		    game.get_instance().msg_win.clear()
		    game.get_instance().msg_win.refresh()
		    obj.interact(self)
Ejemplo n.º 3
0
    def animate(self, duration):

        graphics1 = self.graphics
        graphics2 = self.load_graphics('GRAPHICS/pond2')

	for second in xrange(duration):

	    time.sleep(1)

	    if self.graphics == graphics1:
		self.graphics = graphics2
		self.space.redraw(game.get_instance().game_win)

	    else:
		self.graphics = graphics1
		self.space.redraw(game.get_instance().game_win)

	self.graphics = graphics1
Ejemplo n.º 4
0
def main(): 

    curses.initscr()
    curses.noecho()
    curses.curs_set(0)

    if farm_config.INTRO:
	windows.start_introwin()

    if farm_config.DEBUG_WIN:
	debug_console.get()

    farm_game = game.get_instance()
    farm_game.run()
Ejemplo n.º 5
0
    def interact(self, player):

	game.get_instance().msg_win.clear()
	game.get_instance().msg_win.addstr(1, 5, "Leave the cave? [y/n]")
	game.get_instance().msg_win.refresh()

	ans = game.get_instance().msg_win.getch()

	while ans != ord('y') and ans != ord('n'):
	    ans = game.get_instance().msg_win.getch()

	if ans == ord('n'):
	    return

	elif ans == ord('y'):

	    player.current_space = Space.members['World']
	    player.pos = PLAYER_1_START_POS
Ejemplo n.º 6
0
    def plant(self):

	game.get_instance().msg_win.clear()

	game.get_instance().msg_win.addstr(1, 20, "In which direction? [wasd] ")
	ans = game.get_instance().msg_win.getch()

	game.get_instance().msg_win.clear()
	game.get_instance().msg_win.refresh()

	if ans == KEY_UP:
	    ypos = self.pos[0] - 1
	    xpos = self.pos[1]

	elif ans == KEY_DOWN:
	    ypos = self.pos[0] + 1
	    xpos = self.pos[1]

	elif ans == KEY_LEFT:
	    ypos = self.pos[0]
	    xpos = self.pos[1] - 1

	elif ans == KEY_RIGHT:
	    ypos = self.pos[0]
	    xpos = self.pos[1] + 1

	else:
	    return
	
	if self.obstructed(ans):
	    return

	else:
	    Crop.create(ypos, xpos, 'GRAPHICS/crop1', self.current_space)

        game.get_instance().msg_win.clear()
        game.get_instance().msg_win.refresh()
Ejemplo n.º 7
0
    def interact(self, player):

        # go into your house and sleep until the next day
        # plants grow one stage while you sleep

	game.get_instance().msg_win.clear()
	game.get_instance().msg_win.addstr(1, 5, "Go to sleep? [y/n]")
	game.get_instance().msg_win.refresh()

	ans = game.get_instance().msg_win.getch()

	if ans == ord('y'):

	    game.get_instance().msg_win.clear()
	    game.get_instance().msg_win.refresh()

	    game.get_instance().game_win.clear()

	    animations.sunrise(game.get_instance().game_win)

	    game.get_instance().game_win.clear()

	    self.space.grow_crops()
	    self.space.redraw(game.get_instance().game_win)

	    player.draw(game.get_instance().game_win)

	    game.get_instance().game_win.refresh()

	    self.space.ship_box.sell(player)

	else:
	    return
Ejemplo n.º 8
0
    def interact(self, farmer):

	game.get_instance().msg_win.clear()
	game.get_instance().msg_win.addstr(1, 10, "Forage in this bush? [y/n]")
	game.get_instance().msg_win.refresh()

	ans = game.get_instance().msg_win.getch()

	if ans == ord('y'):

	    if self.resource_qty > 0:

		temp = []

		for i in xrange(self.resource_qty):
		    temp.append(Berries.create())

		farmer.inventory.add(temp)

		self.resource_qty = 0

	    else:
		game.get_instance().msg_win.addstr(2, 10, "You find nothing.")
		game.get_instance().msg_win.refresh()

	else:
	    return
Ejemplo n.º 9
0
    def interact(self, farmer):

        game.get_instance().msg_win.clear()
        game.get_instance().msg_win.addstr(1, 10, "Break this rock? [y/n]")
        game.get_instance().msg_win.refresh()
    
        ans = game.get_instance().msg_win.getch()

        if ans == ord('y'):

	    temp = []
	
	    self.space.contents[self.name].remove(self)
	    game.get_instance().game_win.clear()
	    farmer.draw(game.get_instance().game_win)
	    self.space.redraw(game.get_instance().game_win)

	    for i in xrange(self.resource_qty):
		temp.append(Stone.create())

  	    farmer.inventory.add(temp)

	else:
	    return
Ejemplo n.º 10
0
    def interact(self, player):

	game.get_instance().msg_win.clear()
	game.get_instance().msg_win.addstr(1, 5, "Enter the cave? [y/n]")
	game.get_instance().msg_win.refresh()

	ans = game.get_instance().msg_win.getch()

	while ans != ord('y') and ans != ord('n'):
	    ans = game.get_instance().msg_win.getch()

	if ans == ord('n'):

	    game.get_instance().msg_win.clear()	    

	    return

	elif ans == ord('y'):

	    game.get_instance().msg_win.clear()	    
	    game.get_instance().msg_win.addstr(1, 5, "The cave entrance is blocked off...")
	    game.get_instance().msg_win.refresh()

	    return

	    #Space.members['Cave'].add(player)

	    #player.current_space = Space.members['Cave']

	    #player.pos = PLAYER_1_START_POS_CAVE

	else:
	
	    return
Ejemplo n.º 11
0
    def interact(self, player):

	random.seed

	game.get_instance().msg_win.clear()
	game.get_instance().msg_win.addstr(1, 5, "Go fishing? [y/n]")
	game.get_instance().msg_win.refresh()

	ans = game.get_instance().msg_win.getch()

	if ans != ord('y'):
	    return

	game.get_instance().msg_win.clear()
	game.get_instance().msg_win.addstr(1, 5, "Fishing...")
	game.get_instance().msg_win.refresh()

        seconds = random.randrange(2, 15)
	
	self.animate(seconds)

        game.get_instance().game_win.refresh()

	if self.iscatch(0.6):

	    game.get_instance().msg_win.clear()
	    game.get_instance().msg_win.addstr(1, 5, "You caught a fish!")
	    game.get_instance().msg_win.refresh()
	    game.get_instance().msg_win.getch()

	    temp = []
	    temp.append(Fish.create())
	    player.inventory.add(temp)

	    return

	else:
	
	    game.get_instance().msg_win.clear()
	    game.get_instance().msg_win.addstr(1, 5, "No bites this time...")
	    game.get_instance().msg_win.refresh()
	    game.get_instance().msg_win.getch()

	    return
Ejemplo n.º 12
0
    def sell(self, player):
	
	earnings = 0
	for key in self.inventory.contents:

	    for item in reversed(self.inventory.contents[key]):

		earnings += item.value
		self.inventory.contents[key].remove(item)

	player.inventory.money += earnings

	if earnings > 0:
	    game.get_instance().msg_win.clear()
	    game.get_instance().msg_win.refresh() 
	    game.get_instance().msg_win.addstr(1, 5, "Total shipment value:")
	    game.get_instance().msg_win.addstr(2, 5, "$")
	    game.get_instance().msg_win.addstr(2, 6, str(earnings))
	    game.get_instance().msg_win.refresh()

	else:
	    pass 
Ejemplo n.º 13
0
    def interact(self, player):

	game.get_instance().msg_win.clear()
	game.get_instance().msg_win.addstr(0, 5, "Shipping box: ")
	game.get_instance().msg_win.addstr(0, 25, "1. Add items.")
	game.get_instance().msg_win.addstr(1, 25, "2. Remove items.")
	game.get_instance().msg_win.addstr(2, 25, "3. Nevermind.")
	game.get_instance().msg_win.refresh()

	ans = game.get_instance().msg_win.getch()
	
	while ans != ord('1') and ans != ord('2') and ans != ord('3'):
	    ans = game.get_instance().msg_win.getch()

	game.get_instance().msg_win.clear()

	if ans == ord('1'):

	    game.get_instance().msg_win.addstr(1, 10, "What would you like to add?")
	    game.get_instance().msg_win.refresh()
	    game.get_instance().msg_win.getch()

	    game.get_instance().msg_win.clear()
	    game.get_instance().msg_win.refresh()

	    item_list = player.inventory.view()

	    if item_list == 'None':
		return

	    else:
	        self.inventory.add(item_list)

	elif ans == ord('2'):

	    game.get_instance().msg_win.addstr(1, 10, "What would you like to remove?")
	    game.get_instance().msg_win.refresh()
	    game.get_instance().msg_win.getch()

	    game.get_instance().msg_win.clear()
	    game.get_instance().msg_win.refresh()
	    item_list = ship_box.inventory.view()

	    if item_list == 'None':
		return

	    else:
	        player.inventory.add(item_list)

	elif ans == ord('3'):

	    return
Ejemplo n.º 14
0
    def remove(self, item, num):

	curses.echo()

	game.get_instance().msg_win.clear()
	game.get_instance().msg_win.addstr(0, 5, "Remove how many?")
	game.get_instance().msg_win.addstr(1, 5, "(Current quantity: " + num + ") ")
	
        ans = game.get_instance().msg_win.getstr()

	curses.noecho()

	if int(ans) <= int(num):

	    temp = []

            game.get_instance().msg_win.clear()
            game.get_instance().msg_win.addstr(
		1, 5, str(ans) + " " + item + \
		" removed from " + self.owner + "'s inventory."
		)

            game.get_instance().msg_win.refresh()

	    for i in xrange(int(ans)):
		temp.append(self.contents[item][0])
                del self.contents[item][0]

	    game.get_instance().msg_win.getch()
	    game.get_instance().msg_win.clear()
	    game.get_instance().msg_win.refresh()
	    return temp

	elif int(ans) > int(num):

	    game.get_instance().msg_win.clear()
	    game.get_instance().msg_win.addstr(1, 5, "You don't have that many in inventory.")
	    game.get_instance().msg_win.refresh()

	    game.get_instance().msg_win.getch()
	    game.get_instance().msg_win.clear()
	    game.get_instance().msg_win.refresh()
	    return 'None'

	else:
	    game.get_instance().msg_win.clear()
	    game.get_instance().msg_win.refresh()
	    return 'None'
Ejemplo n.º 15
0
    def add(self, item_list):

	count = 0	

	# a list is used so that multiple items can be added at once.
	# For example, when the player cuts down a tree, they receive
	# two pieces of wood.
	for item in item_list:

	    count += 1

	    if item.name in self.contents:
	        self.contents[item.name].append(item)

	    else:
	        self.contents.update(zip([item.name], [[]]))
	        self.contents[item.name].append(item)

	game.get_instance().msg_win.clear()
	game.get_instance().msg_win.addstr(
	    1, 5, str(count) + " " + item.name + \
	    " added to " + self.owner + "'s inventory."
	    )

	game.get_instance().msg_win.refresh()

	game.get_instance().msg_win.getch()
	game.get_instance().msg_win.clear()
	game.get_instance().msg_win.refresh()
Ejemplo n.º 16
0
    def view(self):

	game.get_instance().msg_win.clear()
	game.get_instance().msg_win.refresh()
	game.get_instance().msg_win.addstr(2, 50, "$" + str(self.money))

	if len(self.contents) > 0:

	    # This will flip to False if any dictionary key actually 
	    # has any objects in it's sublist.
	    # Used to test for an empty list even when dicitonary
	    # keys are present.

	    empty = True

	    for item_type in self.contents:
		
		count = len(self.contents[item_type])

		if count > 0:

		    empty = False
		    num = str(count)

		    game.get_instance().msg_win.addstr(2, 50, "$" + str(self.money))

		    game.get_instance().msg_win.addstr(0, 5, self.owner + "'s Inventory: ")
		    game.get_instance().msg_win.addstr(0, 25, item_type + " x" + num)
		    game.get_instance().msg_win.addstr(2, 5, "'t': take item    'n': next")
		    game.get_instance().msg_win.refresh()

		    c = game.get_instance().msg_win.getch()
		    while c != ord('t') and c != ord('n'):
			c = game.get_instance().msg_win.getch()

		    if c == ord('t'):
			item_list = self.remove(item_type, num)
			return item_list

		    else:
		        game.get_instance().msg_win.clear()
			game.get_instance().msg_win.refresh()

		else:
		    pass

	    if empty:
	        game.get_instance().msg_win.addstr(0, 18, "Nothing here.")
	        game.get_instance().msg_win.refresh() 
	        game.get_instance().msg_win.getch()
	        game.get_instance().msg_win.clear()
	        game.get_instance().msg_win.refresh()
	        return 'None'

	else:
	    game.get_instance().msg_win.addstr(0, 18, "Nothing here.")
	    game.get_instance().msg_win.refresh() 
	    game.get_instance().msg_win.getch()
	    game.get_instance().msg_win.clear()
	    game.get_instance().msg_win.refresh()
	    return 'None'