Files
Drakora/Enemy.py
T

77 lines
2.3 KiB
Python

"""
Enemy entity class
"""
import random
class Enemy(pygame.sprite.Sprite):
def setNextEnemyType(self, score):
if score < 10:
self.type = 1
elif score < 20:
if random.randint(1, 100) < 95: self.type = 1
else: self.type = 2
elif score < 40:
if random.randint(1, 100) < 85: self.type = 1
else: self.type = 2
else:
if random.randint(1, 100) < 75: self.type = 1
else: self.type = 2
def setNextEnemySubtype(self):
if self.type == 1:
self.subtype = random.randint(1, 5)
elif self.type == 2:
self.subtype = random.randint(1, 7)
def __init__(self, mainGameClass):
pygame.sprite.Sprite.__init__(self)
self.thisGame = mainGameClass
self.speed = self.thisGame.getGameSpeed()
self.setNextEnemyType(self.thisGame.getScore())
self.setNextEnemySubtype()
self.height = mainGameClass.getScreenHeight() - mainGameClass.floorHeight
if self.type == 1:
if self.subtype == 1: self.image = pygame.Surface((25, 75))
elif self.subtype == 2: self.image = pygame.Surface((25, 25))
elif self.subtype == 3: self.image = pygame.Surface((75, 25))
elif self.subtype == 4: self.image = pygame.Surface((50, 25))
elif self.subtype == 5: self.image = pygame.Surface((50, 50))
else: self.image = pygame.Surface((25, 50))
self.image.fill((0, 153, 0))
self.rect = self.image.get_rect()
self.height -= self.rect.height/2
elif self.type == 2:
self.image = pygame.Surface((50, 25))
self.image.fill((51, 51, 0))
self.rect = self.image.get_rect()
self.height -= self.rect.height/2 + 10 + 10*self.subtype
self.rect.center = (mainGameClass.getScreenWidth() + self.rect.width,
self.height)
def update(self):
if (self.rect.x < -self.rect.width):
self.kill()
self.thisGame.addScore(1)
if self.type == 1:
self.rect.x -= self.speed
else:
self.rect.x -= self.speed*2