def build_encounter(self, enc_list): i = 0 while i < len(enc_list): number = int(enc_list[i]) i += 1 npc_name = enc_list[i] i += 1 initiative = int(enc_list[i]) i += 1 bonus = int(enc_list[i]) i += 1 ac = enc_list[i] i += 1 hp = enc_list[i] i += 1 fort = enc_list[i] i += 1 ref = enc_list[i] i += 1 will = enc_list[i] i += 1 attack = enc_list[i] i += 1 k = 0 while k < number: self.turn_tracker.append(character.NPC(npc_name, initiative, bonus, ac, hp, fort, ref, will, attack)) k += 1
def _load_zone(self, zonepath): self.npcList = [] self.enemyList = [] areaFile = open(zonepath, 'r') for line in areaFile: lineparse = line.split(":") line0 = lineparse[0] line1 = lineparse[1][1:-1] if line0 == 'name': self.name = line1 elif line0 == 'description': self.description = line1 elif line0 == 'npc': if line1 != 'none': newNPC = character.NPC(line1.strip()) self.npcList.append(newNPC) else: self.npcList.append('none') elif line0 == 'enemy': if line1 != 'none': enemyNPC = character.Enemy(line1.strip()) self.enemyList.append(enemyNPC) else: self.enemyList.append('none') elif line0 in self.dirs: self.movepath[line0] = line1
def initArea(self, mapFile): """Load maps and initialize sprite layers for each new area""" self.tilemap = tmx.load(mapFile, screen.get_size()) self.players = tmx.SpriteLayer() self.objects = tmx.SpriteLayer() #self.life = pygame.image.load('life.png') #self.gamefont = pygame.font.Font(None,30) #self.timertext = gamefont.render('Timer:' +str(timer),1,[255,0,0]) #self.boxsize = self.timertext.get_rect() #self.timerXpos = (640-self.boxsize[2])/2 #screen.blit(self.timertext,[0,0]) try: for cell in self.tilemap.layers['sprites'].find('src'): SpriteLoop((cell.px,cell.py), cell, self.objects) # In case there is no sprite layer for the current map except KeyError: pass else: self.tilemap.layers.append(self.objects) #self.life.layers.append(self.objects) #추가한거 # Initializing player sprite startCell1 = self.tilemap.layers['triggers'].find('playerStart')[random.randint(0,30)] self.player1 = character.Player((startCell1.px, startCell1.py), startCell1['playerStart'], self.players) startCell2 = self.tilemap.layers['triggers'].find('playerStart')[random.randint(0, 30)] self.player2 = character.Player2((startCell2.px, startCell2.py), startCell2['playerStart'], self.players) for i in range (0,9): startCell3 = self.tilemap.layers['triggers'].find('playerStart')[random.randint(0, 30)] self.player3 = character.NPC((startCell3.px, startCell3.py), startCell2['playerStart'],self.players) self.tilemap.layers.append(self.players) self.tilemap.set_focus(self.player1.rect.x, self.player1.rect.y) # 1p 시점
def test_create_characters(self): for char_class in character.classes.CLASS_LIST: for race in character.races.RACE_LIST: for level in range(1, 21): npc = character.NPC("Arik", char_class, race, level, "Forest") character.print_character(npc)
def __loadScenes(self, lazy=False): tree = ET.parse(os.path.join(DATA_DIR, 'scenes.xml')) root = tree.getroot() self.active_sprite_list = pygame.sprite.Group() for scene in root: if scene.attrib['id'] == self.scene: tile_renderer = tilerender.Renderer( os.path.join(MAIN_DIR, scene.attrib['file_path'])) for npc in scene.findall('npc'): if npc.get('type', '') == 'enemy': new_npc = character.NPC(npc) self.active_sprite_list.add(new_npc) else: new_enemy = character.Enemy(npc) self.active_sprite_list.add(new_enemy) self.map_surface, self.fringe_layer = tile_renderer.make_map( self.hero.rect.x, self.hero.rect.y) self.map_rect = self.map_surface.get_rect() self.blockers = tile_renderer.get_blockers() self.portals = tile_renderer.get_portals()
for row in reader: players.append( character.Player(row[0], int(row[1]), row[2], int(row[3]), int(row[4]), int(row[5]), int(row[6]), int(row[7]), int(row[8]), int(row[9]), int(row[10]), int(row[11]), int(row[12]), int(row[13]))) encounter.players = players.copy() #Generate enemies enemies = [] with open('data/enemies.csv') as enemies_file: reader = csv.reader(enemies_file) next(reader, None) for row in reader: enemies.append(character.NPC(row[0], int(row[1]), int(row[2]))) encounter.enemies = enemies.copy() #player the encounter and get the lethal damage players_lethal = encounter.play() for key in players_lethal: if key in players_final: players_final[key] += players_lethal[key] else: players_final[key] = players_lethal[key] enablePrint() print(i) enablePrint() for key in players_final:
def test_spellcaster(self): npc = character.NPC("Arik", "Bard", "Dwarf", 4, "Hill") character.print_character(npc)