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()
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)
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
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()
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
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()
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
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
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
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
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
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
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
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'
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()
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'