0.1 Merge #85

Merged
Spafi merged 133 commits from Development into main 2024-03-12 22:02:51 +01:00
2 changed files with 36 additions and 13 deletions
Showing only changes of commit b368fe4665 - Show all commits

View file

@ -40,10 +40,11 @@ def genRooms(WIDTH, HEIGHT, type:str, objects:list):
def play(screen, clock, running, background, isblack, WIDTH, HEIGHT): def play(screen, clock, running, background, isblack, WIDTH, HEIGHT):
main = [MainCharacter('Herbert', 100, 'people/oldman.png', 500, 500, 20, 5, 1, 1, 50)] 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 = [] weapons = []
others = [Fire('f1', 0, 200, 300)] 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] objects = [main, mobs, npcs, weapons, others]
level = [] level = []
rooms = genRooms(WIDTH, HEIGHT, 'background/grass', objects) rooms = genRooms(WIDTH, HEIGHT, 'background/grass', objects)

View file

@ -316,10 +316,6 @@ class Mobs(Fighter):
def __init__(self, name, ms, sprite, x, y, health, damage, level, asp, atr, drops) -> None: 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) super().__init__(name, ms, sprite, x, y, health, damage, level, asp, atr)
self.drops = drops * (self.level / 2) 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): def chase(self, obj):
x = obj[0][0].x x = obj[0][0].x
@ -331,22 +327,39 @@ class Skeleton(Mobs):
self.y += moveto[1] / fps self.y += moveto[1] / fps
else: else:
self.attack(moveto, obj) 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): def hurt(self, damage, objects):
self.health -= damage self.health -= damage
if self.health <= 0: if self.health <= 0:
self.hidden = True self.hidden = True
objects[1].remove(self) objects[1].remove(self)
def update(self, obj): def update(self, obj):
self.chase(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): class Weapons(Objects):
def __init__(self, name, ms, sprite, x, y, moveto, damage, life_ticks) -> None: def __init__(self, name, ms, sprite, x, y, moveto, damage, life_ticks) -> None:
super().__init__(name, ms, sprite, x, y) super().__init__(name, ms, sprite, x, y)
@ -387,7 +400,7 @@ class Fireball(Spells):
self.die(objects, Mobs) self.die(objects, Mobs)
class Windslash(Spells): 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) super().__init__(name, ms, sprite, x, y, moveto, damage, life_ticks)
def update(self, objects): def update(self, objects):
@ -407,6 +420,15 @@ class Arrow(Weapons):
self.move(objects) self.move(objects)
self.die(objects, MainCharacter) 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): class Fire(Objects):
def __init__(self, name, ms, x, y, sprite='background/fireplace.png') -> None: def __init__(self, name, ms, x, y, sprite='background/fireplace.png') -> None:
super().__init__(name, ms, sprite, x, y) super().__init__(name, ms, sprite, x, y)