WMICraft/models/monster.py

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()