forked from InfoProjekt/game
zombie speech and fireplace
This commit is contained in:
parent
af5204857b
commit
b368fe4665
2 changed files with 36 additions and 13 deletions
5
main.py
5
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)
|
||||
|
|
|
|||
44
viecher.py
44
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)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue