forked from InfoProjekt/game
Compare commits
2 commits
953edca694
...
c9a98fb94c
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c9a98fb94c | ||
|
|
501e84181f |
5 changed files with 35 additions and 21 deletions
BIN
art/images/fireball_icon.png
Normal file
BIN
art/images/fireball_icon.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 581 B |
BIN
art/images/windslash.png
Normal file
BIN
art/images/windslash.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 400 B |
BIN
art/images/windslash_icon.png
Normal file
BIN
art/images/windslash_icon.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 433 B |
4
main.py
4
main.py
|
|
@ -87,6 +87,10 @@ def play(screen, clock, running, background, isblack, WIDTH, HEIGHT):
|
||||||
for npc in objects[2]:
|
for npc in objects[2]:
|
||||||
npc.update(pygame.key.get_pressed(), objects)
|
npc.update(pygame.key.get_pressed(), objects)
|
||||||
npc.draw(screen)
|
npc.draw(screen)
|
||||||
|
|
||||||
|
if objects[1] ==[]:
|
||||||
|
objects[0][0].book.addspell('windslash')
|
||||||
|
|
||||||
|
|
||||||
else:
|
else:
|
||||||
objects[0][0].book.hidden = not freeze
|
objects[0][0].book.hidden = not freeze
|
||||||
|
|
|
||||||
52
viecher.py
52
viecher.py
|
|
@ -202,6 +202,8 @@ class MainCharacter(Fighter):
|
||||||
moveto = mouse- vec(self.x, self.y)
|
moveto = mouse- vec(self.x, self.y)
|
||||||
if self.book.current_sp == 'fireball':
|
if self.book.current_sp == 'fireball':
|
||||||
weapon = Fireball('fb1', 100, self.x, self.y, moveto, 5)
|
weapon = Fireball('fb1', 100, self.x, self.y, moveto, 5)
|
||||||
|
elif self.book.current_sp == 'windslash':
|
||||||
|
weapon = Windslash('ws1', 100, self.x, self.y, moveto, 5)
|
||||||
else:
|
else:
|
||||||
return
|
return
|
||||||
obj[3].append(weapon)
|
obj[3].append(weapon)
|
||||||
|
|
@ -313,7 +315,7 @@ class Book():
|
||||||
if spell not in self.sp_list:
|
if spell not in self.sp_list:
|
||||||
self.sp_list.append(spell)
|
self.sp_list.append(spell)
|
||||||
self.current_sp = spell
|
self.current_sp = spell
|
||||||
self.buttons.append(Button(200, self.buttons_height, 58, 50, f'{spell}.png', 'medieval', 23, attributes=[spell], onclickFunction=self.update_spell))
|
self.buttons.append(Button(200, self.buttons_height, 58, 50, f'{spell}_icon.png', 'medieval', 23, attributes=[spell], onclickFunction=self.update_spell))
|
||||||
self.buttons_height += 100
|
self.buttons_height += 100
|
||||||
|
|
||||||
def update_spell(self, spell):
|
def update_spell(self, spell):
|
||||||
|
|
@ -357,10 +359,12 @@ class Skeleton(Mobs):
|
||||||
|
|
||||||
|
|
||||||
class Weapons(Objects):
|
class Weapons(Objects):
|
||||||
def __init__(self, name, ms, sprite, x, y, moveto, damage) -> 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)
|
||||||
self.moveto = moveto
|
self.moveto = moveto
|
||||||
self.damage = damage
|
self.damage = damage
|
||||||
|
self.life_ticks= life_ticks
|
||||||
|
self.spawn_tick = pg.time.get_ticks()
|
||||||
pos = vec(1,0)
|
pos = vec(1,0)
|
||||||
angle = pos.angle_to(moveto)
|
angle = pos.angle_to(moveto)
|
||||||
with open(f'art/images/{sprite}') as i:
|
with open(f'art/images/{sprite}') as i:
|
||||||
|
|
@ -372,33 +376,39 @@ class Weapons(Objects):
|
||||||
touches.hurt(self.damage, objects)
|
touches.hurt(self.damage, objects)
|
||||||
self.hidden = True
|
self.hidden = True
|
||||||
objects[3].remove(self)
|
objects[3].remove(self)
|
||||||
|
|
||||||
|
def move(self, objects):
|
||||||
|
self.moveto.scale_to_length(self.speed)
|
||||||
|
self.x += self.moveto[0] / fps
|
||||||
|
self.y += self.moveto[1] / fps
|
||||||
|
if pg.time.get_ticks() - self.spawn_tick > self.life_ticks:
|
||||||
|
self.hidden = True
|
||||||
|
objects[3].remove(self)
|
||||||
|
|
||||||
class Spells(Weapons):
|
class Spells(Weapons):
|
||||||
def __init__(self, name, ms, sprite, x, y, moveto, damage) -> None:
|
def __init__(self, name, ms, sprite, x, y, moveto, damage, life_ticks) -> None:
|
||||||
super().__init__(name, ms, sprite, x, y, moveto, damage)
|
super().__init__(name, ms, sprite, x, y, moveto, damage, life_ticks)
|
||||||
|
|
||||||
class Fireball(Spells):
|
class Fireball(Spells):
|
||||||
def __init__(self, name, ms, x, y, moveto, damage, sprite = 'fireball.png') -> None:
|
def __init__(self, name, ms, x, y, moveto, damage, sprite = 'fireball.png', life_ticks=5000) -> None:
|
||||||
super().__init__(name, ms, sprite, x, y, moveto, damage)
|
super().__init__(name, ms, sprite, x, y, moveto, damage, life_ticks)
|
||||||
|
|
||||||
def move(self):
|
|
||||||
self.moveto.scale_to_length(self.speed)
|
|
||||||
self.x += self.moveto[0] / fps
|
|
||||||
self.y += self.moveto[1] / fps
|
|
||||||
|
|
||||||
def update(self, objects):
|
def update(self, objects):
|
||||||
self.move()
|
self.move(objects)
|
||||||
self.die(objects, Mobs)
|
self.die(objects, Mobs)
|
||||||
|
|
||||||
class Arrow(Weapons):
|
|
||||||
def __init__(self, name, ms, x, y, moveto, damage, sprite = 'arrow.png') -> None:
|
|
||||||
super().__init__(name, ms, sprite, x, y, moveto, damage)
|
|
||||||
|
|
||||||
def move(self):
|
class Windslash(Spells):
|
||||||
self.moveto.scale_to_length(self.speed)
|
def __init__(self, name, ms, x, y, moveto, damage, sprite = 'windslash.png', life_ticks=150) -> None:
|
||||||
self.x += self.moveto[0] / fps
|
super().__init__(name, ms, sprite, x, y, moveto, damage, life_ticks)
|
||||||
self.y += self.moveto[1] / fps
|
|
||||||
|
|
||||||
def update(self, objects):
|
def update(self, objects):
|
||||||
self.move()
|
self.move(objects)
|
||||||
|
self.die(objects, Mobs)
|
||||||
|
|
||||||
|
class Arrow(Weapons):
|
||||||
|
def __init__(self, name, ms, x, y, moveto, damage, sprite = 'arrow.png', life_ticks=5000) -> None:
|
||||||
|
super().__init__(name, ms, sprite, x, y, moveto, damage, life_ticks)
|
||||||
|
|
||||||
|
def update(self, objects):
|
||||||
|
self.move(objects)
|
||||||
self.die(objects, MainCharacter)
|
self.die(objects, MainCharacter)
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue