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
Ejemplo n.º 2
0
    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
Ejemplo n.º 3
0
    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 시점
Ejemplo n.º 4
0
 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)
Ejemplo n.º 5
0
    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()
Ejemplo n.º 6
0
            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:
Ejemplo n.º 7
0
 def test_spellcaster(self):
     npc = character.NPC("Arik", "Bard", "Dwarf", 4, "Hill")
     character.print_character(npc)