def __load_map(self, level): if os.access('MAP%i.gz' % (level), os.F_OK): FILE = gzip.open('MAP%i.gz' % (level), 'r') self.map, self.__actors, self.__items, pos = pickle.load(FILE) self.__set_game_instance() FILE.close() self.player.set_pos(pos) r = self.camera.adjust(self.player.pos()) while r: r = self.camera.adjust(self.player.pos()) self.__actors.append(self.player) for act in self.__actors: self.__world_objects[act] = True act.sc = sc(self.map.map_array) self.player.sc.do_fov(self.player.x, self.player.y, self.player.cur_mind / 20 + 5) for item in self.__items: self.__world_objects[item] = True self.__world_objects[self.map] = True self.__clear_surfaces() self._world_draw() return True return False self.__quit_loop = True self.quit_mes = SAVE
def change_map(self, down=True): if self.map == None: level = 1 elif down: level = self.map.level + 1 self.__save_map() else: level = self.map.level - 1 self.__save_map() if self.__load_map(level): return if level == 0: self.game_over() self.__actors = [] self.__actors.append(self.player) self.__items = [] self.map = self.dungeon.get_map(level) for act in self.__actors: act.sc = sc(self.map.map_array) if down: pos = self.get_sc_up_pos() else: pos = self.get_sc_down_pos() self.player.set_pos(pos) r = self.camera.adjust(self.player.pos()) while r: r = self.camera.adjust(self.player.pos())
def summon_monster(self, caster, name, file, pos): mon = dungeon.Populator.create_creature(name, file) mon.ai = henchmanAI.HenchmanAI(mon) mon.ai.friends.add(caster.id) caster.ai.friends.add(mon.id) mon.set_pos(pos) mon.sc = sc(self.map.map_array) self.add_actor(mon, True)
def create_humanoid(self): #man = races[1][3](True, 1) man = races[2][3](True, 1) #man.classkit = classkits[2][1](man) man.classkit = classkits[0][1](man) from ai import simpleai man.ai = henchmanAI.HenchmanAI(man) man.name = 'Nigg Yshur' pos = self.get_free_adj(self.player.pos()) man.set_pos(pos) man.ai.friends.add(self.player.id) self.player.ai.friends.add(man.id) man.sc = sc(self.map.map_array)
def add_actor(self, actor, add=True): if add: self.__actors.append(actor) if self.map != None: actor.sc = sc(self.map.map_array) self.__world_objects[actor] = True