diff --git a/main.py b/main.py index eaf8ff3..b7bd486 100644 --- a/main.py +++ b/main.py @@ -40,10 +40,11 @@ def genRooms(WIDTH, HEIGHT, type:str, objects:list): def play(screen, clock, running, background, isblack, WIDTH, HEIGHT): main = [MainCharacter('Herbert', 100, 'people/oldman.png', 500, 500, 20, 5, 1, 1, 50)] - mobs = [Skeleton(i, random.randint(40, 60), 'people/reddy.png', random.randint(50, WIDTH-50), random.randint(50, HEIGHT-50), 5, 1, 1, 1, 200) for i in range(0,random.randint(2, 8))] + mobs = [Skeleton(i, random.randint(40, 60), random.randint(50, WIDTH-50), random.randint(50, HEIGHT-50), 5, 1, 1, 1, 200) for i in range(0,random.randint(2, 8))]+[Zombie(i, random.randint(40, 60), random.randint(50, WIDTH-50), random.randint(50, HEIGHT-50), 5, 1, 1, 1, 100) for i in range(0,random.randint(2, 8))] + weapons = [] others = [Fire('f1', 0, 200, 300)] - npcs = [NPC('name', 100, 'people/reddy.png', 1, 200, 200)] + npcs = [NPC('name', 100, 'people/oldlady.png', 1, 200, 200)] objects = [main, mobs, npcs, weapons, others] level = [] rooms = genRooms(WIDTH, HEIGHT, 'background/grass', objects) diff --git a/viecher.py b/viecher.py index e9e0769..0df8b00 100644 --- a/viecher.py +++ b/viecher.py @@ -316,10 +316,6 @@ class Mobs(Fighter): def __init__(self, name, ms, sprite, x, y, health, damage, level, asp, atr, drops) -> None: super().__init__(name, ms, sprite, x, y, health, damage, level, asp, atr) self.drops = drops * (self.level / 2) - -class Skeleton(Mobs): - def __init__(self, name, ms, sprite, x, y, health, damage, level, asp, atr, drops=0) -> None: - super().__init__(name, ms, sprite, x, y, health, damage, level, asp, atr, drops) def chase(self, obj): x = obj[0][0].x @@ -331,22 +327,39 @@ class Skeleton(Mobs): self.y += moveto[1] / fps else: self.attack(moveto, obj) - - def attack(self, moveto, obj): - if self.lastAttack + self.attack_speed * 1000 < pg.time.get_ticks(): - obj[3].append(Arrow("arrow", 200, self.x, self.y, moveto, self.damage)) - self.lastAttack = pg.time.get_ticks() + def hurt(self, damage, objects): self.health -= damage if self.health <= 0: self.hidden = True objects[1].remove(self) - + + def update(self, obj): self.chase(obj) +class Skeleton(Mobs): + def __init__(self, name, ms, x, y, health, damage, level, asp, atr, sprite = 'people/skeleton.png', drops=0) -> None: + super().__init__(name, ms, sprite, x, y, health, damage, level, asp, atr, drops) + + def attack(self, moveto, obj): + if self.lastAttack + self.attack_speed * 1000 < pg.time.get_ticks(): + obj[3].append(Arrow("arrow", 200, self.x, self.y, moveto, self.damage)) + self.lastAttack = pg.time.get_ticks() + + +class Zombie(Mobs): + def __init__(self, name, ms, x, y, health, damage, level, asp, atr, sprite='people/zombie.png', drops=0) -> None: + super().__init__(name, ms, sprite, x, y, health, damage, level, asp, atr, drops) + + + def attack(self, moveto, obj): + if self.lastAttack + self.attack_speed * 1000 < pg.time.get_ticks(): + obj[3].append(Punch('punch', 100, self.x, self.y, moveto, self.damage)) + self.lastAttack = pg.time.get_ticks() + class Weapons(Objects): def __init__(self, name, ms, sprite, x, y, moveto, damage, life_ticks) -> None: super().__init__(name, ms, sprite, x, y) @@ -387,7 +400,7 @@ class Fireball(Spells): self.die(objects, Mobs) class Windslash(Spells): - def __init__(self, name, ms, x, y, moveto, damage, sprite = 'weapons/windslash.png', life_ticks=500) -> None: + def __init__(self, name, ms, x, y, moveto, damage, sprite = 'weapons/windslash.png', life_ticks=700) -> None: super().__init__(name, ms, sprite, x, y, moveto, damage, life_ticks) def update(self, objects): @@ -407,6 +420,15 @@ class Arrow(Weapons): self.move(objects) self.die(objects, MainCharacter) + +class Punch(Weapons): + def __init__(self, name, ms, x, y, moveto, damage, sprite = 'weapons/empty.png', life_ticks=100) -> None: + super().__init__(name, ms, sprite, x, y, moveto, damage, life_ticks) + + def update(self, objects): + self.move(objects) + self.die(objects, MainCharacter) + class Fire(Objects): def __init__(self, name, ms, x, y, sprite='background/fireplace.png') -> None: super().__init__(name, ms, sprite, x, y)