48 lines
1.6 KiB
Python
48 lines
1.6 KiB
Python
import random
|
|
|
|
import pygame.image
|
|
|
|
from common.helpers import parse_cord
|
|
from logic.health_bar import HealthBar
|
|
|
|
monster_images = [
|
|
pygame.image.load("./resources/textures/dragon2.png"),
|
|
pygame.image.load("./resources/textures/birb.png"),
|
|
pygame.image.load("./resources/textures/wolfart.png"),
|
|
pygame.image.load("./resources/textures/goblin.png"),
|
|
]
|
|
|
|
|
|
class Monster(pygame.sprite.Sprite):
|
|
def __init__(self, screen, position, group):
|
|
super().__init__(group)
|
|
self._layer = 1
|
|
self.image = random.choice(monster_images)
|
|
self.image = pygame.transform.scale(self.image, (40, 40))
|
|
position_in_px = (parse_cord(position[0]), parse_cord(position[1]))
|
|
self.rect = self.image.get_rect(topleft=position_in_px)
|
|
self.position = position
|
|
self.max_hp = random.randrange(15, 20)
|
|
self.health_bar = HealthBar(screen, self.rect, current_hp=self.max_hp, max_hp=self.max_hp,
|
|
calculate_xy=True, calculate_size=True)
|
|
self.attack = random.randrange(4, 6)
|
|
if self.image == monster_images[0]:
|
|
self.max_hp = 20
|
|
self.attack = 6
|
|
self.points = 10
|
|
elif self.image == monster_images[1]:
|
|
self.max_hp = 15
|
|
self.attack = 7
|
|
self.points = 7
|
|
elif self.image == monster_images[2]:
|
|
self.max_hp = 10
|
|
self.attack = 4
|
|
self.points = 4
|
|
elif self.image == monster_images[3]:
|
|
self.max_hp = 7
|
|
self.attack = 2
|
|
self.points = 2
|
|
|
|
def update(self):
|
|
self.health_bar.update()
|