def spawn_enemy(self, level): if self.enemy == None and random.randint(0, 2) == 1: if 0 < level < 3: self.enemy = enemies.Spider() elif 2 < level < 6: self.enemy = enemies.BigSpider() elif 5 < level < 9: self.enemy = enemies.HugeSpider() elif 8 < level < 12: self.enemy = enemies.Ghost()
def __init__(self, x, y): r = random.random() if r < 0.50: self.enemy = enemies.Spider() self.alive_text = "Une tarentule saute sur votre bras.\nElle est trés agressive." self.dead_text = "Le corps de l'araignée n'est plus qu'un informe tas de tissus organiques.\nVous avez horreur d'être surpris par ces bestioles..." elif r < 0.80: self.enemy = enemies.Anaconda() self.alive_text = "Un anaconda vous met un puissant coup de tête qui vous sonne et tente de s'enrouler autour de vous pour vous étouffer." self.dead_text = "L'anaconda git au sol complètement flasque." elif r < 0.95: self.enemy = enemies.BlackCaiman() self.alive_text = "Surgissant de nul part un énorme caïman noir vous barre la route,la gueule grande ouverte !" self.dead_text = "Le gros reptile inerte vous rappelle l'âpre combat qui a été nécessaire pour rester en vie tout entier." else: self.enemy = enemies.Jaguar() self.alive_text = "Un jaquar, roi de la jungle, bondit d'un arbre et se poste juste devant vous. Il vous scrute de ses yeux jaunes et son rugissement vous glace la moelle épinière; il est très affamé..." self.dead_text = "Vaincu, l'énorme félin a trépassé. Si il n'était pas lourd vous l'auriez ramené pour récupérer sa peau." super().__init__(x, y)
def set_enemies(self): """Creates all the enemies and stores them in a list of lists.""" mushroom0 = enemies.Mushroom(3840, 320) mushroom_group0 = pygame.sprite.Group(mushroom0) mushroom1 = enemies.Mushroom(3000, 400) mushroom_group1 = pygame.sprite.Group(mushroom1) mushroom2 = enemies.Mushroom(1560, 480) mushroom_group2 = pygame.sprite.Group(mushroom2) mushroom3 = enemies.Mushroom(2560, 480) mushroom_group3 = pygame.sprite.Group(mushroom3) mushroom4 = enemies.Mushroom(440, 560) mushroom_group4 = pygame.sprite.Group(mushroom4) mushroom5 = enemies.Mushroom(1800, 560) mushroom_group5 = pygame.sprite.Group(mushroom5) mushroom6 = enemies.Mushroom(4240, 560) mushroom_group6 = pygame.sprite.Group(mushroom6) spider0 = enemies.Spider(1560, 240) spider_group0 = pygame.sprite.Group(spider0) spider1 = enemies.Spider(2120, 240) spider_group1 = pygame.sprite.Group(spider1) spider2 = enemies.Spider(600, 520) spider_group2 = pygame.sprite.Group(spider2) spider3 = enemies.Spider(1160, 560) spider_group3 = pygame.sprite.Group(spider3) spider4 = enemies.Spider(2000, 560) spider_group4 = pygame.sprite.Group(spider4) spider5 = enemies.Spider(3000, 560) spider_group5 = pygame.sprite.Group(spider5) spider6 = enemies.Spider(4120, 560) spider_group6 = pygame.sprite.Group(spider6) self.enemies = [mushroom0, mushroom1, mushroom2, mushroom3, mushroom4, mushroom5, mushroom6, spider1, spider2, spider3, spider4, spider5, spider6] self.enemy_group_list = [mushroom_group0, mushroom_group1, mushroom_group2, mushroom_group3, mushroom_group4, mushroom_group5, mushroom_group6, spider_group0, spider_group1, spider_group2, spider_group3, spider_group4, spider_group5, spider_group6]
def add_enemies(frames, enemies_list, enemy_spawn_rate, difficulty): """Adds enemies to enemies_list, ramping up difficulty over time. Function adds an enemy object or group of enemy objects to the enemies_list at intervals pre-defined by enemy_spawn_rate (from settings). It picks which enemy or group of enemies to add with 'picker' variable which gets set purposefully or randomly with random.randint to a number defined by the game frames (time) in the game (modified through 'difficulty' setting). Enemies are then appended/extended to enemies_list based on the 'picker'. Args: frames (int): The number of game frames since start of game (estimates time) enemies_list (list of obj): A list for which to append/extend enemy objects onto enemy_spawn_rate (int): Difficulty setting that places interval of enemy spawn difficulty (int): difficulty setting that defines how quickly difficulty of enemy spawns ramps up """ # Define 'picker' variable picker = -1 # Change picker and add enemies at interval of enemy_spawn_rate if frames % enemy_spawn_rate == 0: # Define rate of 'picker' ramp up based on difficulty min_rate = minutes * difficulty # Set the 'picker' based on frames (time) past and difficulty if frames <= 0.2 * min_rate: picker = 0 if 0.2 * min_rate < frames <= .5 * min_rate: picker = 1 if 0.5 * min_rate < frames <= 1 * min_rate: picker = random.randint(2, 3) if 1 * min_rate < frames <= 2 * min_rate: picker = random.randint(3, 7) if 2 * min_rate < frames <= 2.9 * min_rate: picker = random.randint(8, 12) if 2.9 * min_rate < frames <= 3.5 * min_rate: pass if int((3 * min_rate) - (2 * seconds)) < frames <= \ int((3 * min_rate) + (2 * seconds)): picker = 13 if 3.5 * min_rate < frames <= 3.75 * min_rate: picker = random.randint(8, 12) if 3.75 * min_rate < frames <= 4.5 * min_rate: picker = random.randint(14, 18) if int((4 * min_rate) - (2 * seconds)) < frames <= \ int((4 * min_rate) + (2 * seconds)): picker = 13 if 4.5 * min_rate < frames <= 5 * min_rate: picker = random.randint(15, 19) if int((4.5 * min_rate) - (2 * seconds)) < frames <= \ int((4.5 * min_rate) + (2 * seconds)): picker = 20 if 5 * min_rate < frames <= 5.75 * min_rate: picker = random.randint(15, 20) if 5.75 * min_rate < frames <= 6.5 * min_rate: picker = random.randint(20, 24) if frames > 6.5 * min_rate: picker = random.randint(20, 24) # Append or extend list with enemies indicated by 'picker' if picker == -1: pass if picker == 0: enemies_list.append(enemies.Spider()) elif picker == 1: enemies_list.extend( [enemies.Spider(), enemies.Spider()]) elif picker == 2: enemies_list.extend( [enemies.Spider(), enemies.Spider(), enemies.Spider()]) elif picker == 3: enemies_list.append(enemies.Lizard()) elif picker == 4: enemies_list.append(enemies.Wolf()) elif picker == 5: enemies_list.append(enemies.Orc()) elif picker == 6: enemies_list.append(enemies.Turtle()) elif picker == 7: enemies_list.extend( [enemies.Spider(), enemies.Spider(), enemies.Spider(), enemies.Spider(), enemies.Spider(), enemies.Spider()]) elif picker == 8: enemies_list.extend([enemies.Lizard(), enemies.Lizard()]) elif picker == 9: enemies_list.extend([enemies.Wolf(), enemies.Wolf()]) elif picker == 10: enemies_list.extend([enemies.Orc(), enemies.Orc()]) elif picker == 11: enemies_list.extend([enemies.Turtle(), enemies.Turtle()]) elif picker == 12: enemies_list.extend( [enemies.Spider(), enemies.Spider(), enemies.Spider(), enemies.Spider(), enemies.Spider(), enemies.Spider(), enemies.Spider(), enemies.Spider(), enemies.Spider(), enemies.Spider(), enemies.Spider(), enemies.Spider()]) elif picker == 13: enemies_list.append(enemies.Dragon()) elif picker == 14: enemies_list.extend( [enemies.Spider(), enemies.Spider(), enemies.Spider(), enemies.Spider(), enemies.Spider(), enemies.Spider(), enemies.Spider(), enemies.Spider(), enemies.Spider(), enemies.Spider(), enemies.Spider(), enemies.Spider(), enemies.Spider(), enemies.Spider(), enemies.Spider(), enemies.Spider(), enemies.Spider(), enemies.Spider(), enemies.Spider(), enemies.Spider(), enemies.Spider(), enemies.Spider(), enemies.Spider(), enemies.Spider()]) elif picker == 15: enemies_list.extend([enemies.Lizard(), enemies.Lizard(), enemies.Lizard()]) elif picker == 16: enemies_list.extend([enemies.Wolf(), enemies.Wolf(), enemies.Wolf()]) elif picker == 17: enemies_list.extend([enemies.Orc(), enemies.Orc(), enemies.Orc()]) elif picker == 18: enemies_list.extend([enemies.Turtle(), enemies.Turtle(), enemies.Turtle()]) elif picker == 19: enemies_list.extend( [enemies.Lizard(), enemies.Lizard(), enemies.Wolf(), enemies.Wolf(), enemies.Orc(), enemies.Orc(), enemies.Turtle(), enemies.Turtle(), enemies.Spider(), enemies.Spider(), enemies.Spider(), enemies.Spider(), enemies.Spider(), enemies.Spider()]) elif picker == 20: enemies_list.extend([enemies.Dragon(), enemies.Dragon()]) elif picker == 21: enemies_list.extend([enemies.Lizard(), enemies.Lizard(), enemies.Lizard(), enemies.Lizard()]) elif picker == 22: enemies_list.extend([enemies.Wolf(), enemies.Wolf(), enemies.Wolf(), enemies.Wolf()]) elif picker == 23: enemies_list.extend([enemies.Orc(), enemies.Orc(), enemies.Orc(), enemies.Orc()]) elif picker == 24: enemies_list.extend([enemies.Turtle(), enemies.Turtle(), enemies.Turtle(), enemies.Turtle()]) elif picker == 25: enemies_list.extend( [enemies.Lizard(), enemies.Lizard(), enemies.Wolf(), enemies.Wolf(), enemies.Orc(), enemies.Orc(), enemies.Turtle(), enemies.Turtle(), enemies.Spider(), enemies.Spider(), enemies.Spider(), enemies.Spider(), enemies.Spider(), enemies.Spider()]) elif picker == 26: enemies_list.extend([enemies.Dragon(), enemies.Dragon(), enemies.Dragon()]) elif picker == 27: enemies_list.extend([enemies.Lizard(), enemies.Lizard(), enemies.Lizard(), enemies.Lizard(), enemies.Wolf(), enemies.Wolf()]) elif picker == 28: enemies_list.extend([enemies.Wolf(), enemies.Wolf(), enemies.Wolf(), enemies.Wolf(), enemies.Orc(), enemies.Orc()]) elif picker == 29: enemies_list.extend([enemies.Orc(), enemies.Orc(), enemies.Orc(), enemies.Orc(), enemies.Turtle(), enemies.Turtle()]) elif picker == 30: enemies_list.extend([enemies.Turtle(), enemies.Turtle(), enemies.Turtle(), enemies.Turtle(), enemies.Lizard(), enemies.Lizard()])
def enemy_info_loop(): """Show and explain enemies with buttons to navigate Note: Texts located in gameText.py """ # Set buttons for page navigation return_button = generalClass.Button( (50, 50), message="Return", action=intro_loop, font_size=40, width=200, height=60, color1=orange, color2=bright_orange) previous_button = generalClass.Button( (50, display_height - 100), message="Previous", action="backward", font_size=40, width=200, height=60, color1=red, color2=bright_red) next_button = generalClass.Button( (600, display_height - 100), message="Next", action="forward", font_size=40, width=200, height=60, color1=green, color2=bright_green) # Set font font = pygame.font.SysFont('Comic Sans MS', 18, bold=True) # Set enemies, indicating stationary=True and destroy=False spider = enemies.Spider((180, 250), (190, 250), True, False) lizard = enemies.Lizard((180, 530), (190, 530), True, False) wolf = enemies.Wolf((180, 250), (190, 250), True, False) turtle = enemies.Turtle((180, 530), (190, 530), True, False) orc = enemies.Orc((180, 250), (190, 250), True, False) dragon = enemies.Dragon((180, 530), (190, 530), True, False) # Define index for page navigation info_index = 0 while True: # Activate quit button for event in pygame.event.get(): if event.type == pygame.QUIT: sys.exit() # Draw background gameDisplay.blit(backgroundImage.image, backgroundImage.rect) pygame.draw.rect(gameDisplay, white, (100, 125, 650, 525)) # Draw buttons return_button.draw() next_enemy = next_button.draw() previous_enemy = previous_button.draw() # Define page navigation with index if next_enemy: info_index += 1 if previous_enemy: info_index -= 1 if info_index > 2: info_index = 0 if info_index < 0: info_index = 2 # Draw enemies and enemy info, pages indicated by index if info_index == 0: spider.draw() lizard.draw() helpers.blit_text(gameDisplay, spider_text, (275, 135), font, margin=125) helpers.blit_text(gameDisplay, lizard_text, (275, 400), font, margin=125) pygame.draw.rect(gameDisplay, black, (150, 385, 550, 5)) if info_index == 1: wolf.draw() turtle.draw() helpers.blit_text(gameDisplay, wolf_text, (275, 135), font, margin=125) helpers.blit_text(gameDisplay, turtle_text, (275, 400), font, margin=125) pygame.draw.rect(gameDisplay, black, (150, 385, 550, 5)) if info_index == 2: orc.draw() dragon.draw() helpers.blit_text(gameDisplay, orc_text, (275, 135), font, margin=125) helpers.blit_text(gameDisplay, dragon_text, (275, 400), font, margin=125) pygame.draw.rect(gameDisplay, black, (150, 385, 550, 5)) # Update game display pygame.display.update() clock.tick(30)
def __init__(self, x, y): super().__init__(x, y, enemies.Spider())