Signed-off-by: SpagettiFisch <63868515+SpagettiFisch@users.noreply.github.com>
This commit is contained in:
SpagettiFisch 2024-03-12 21:50:04 +01:00
commit 64a3381eb9
13 changed files with 1077 additions and 1049 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 380 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 762 B

Binary file not shown.

Binary file not shown.

BIN
audio/soundeffects/door.mp3 Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -1,7 +1,10 @@
import pygame import pygame
import random import random
# from viecher import Skeleton, Zombie # from viecher import Skeleton, Zombie
from pygame import mixer
"""
cultistattack_sound = mixer.Sound('audio/soundeffects/cultistattack.mp3')
"""
pygame.font.init() pygame.font.init()
fonts = { fonts = {
'medieval': 'medieval.ttf', 'medieval': 'medieval.ttf',
@ -574,10 +577,15 @@ class MainCharacter(Fighter):
self.thinks.draw(screen, self.x + 20, self.y - 100) self.thinks.draw(screen, self.x + 20, self.y - 100)
def hurt(self, damage, objects): def hurt(self, damage, objects):
hit_sound = mixer.Sound('audio/soundeffects/hitsound.mp3')
hit_sound.set_volume(0.5)
if not self.talking: if not self.talking:
hit_sound.play()
self.health.hurt(damage) self.health.hurt(damage)
def obstacle_interaction(self, objects): def obstacle_interaction(self, objects):
portal_sound = mixer.Sound('audio/soundeffects/portalsound.mp3')
door_sound = mixer.Sound('audio/soundeffects/door.mp3')
if len(objects) <= 5: if len(objects) <= 5:
objects.append([]) objects.append([])
touches = pygame.sprite.spritecollideany(self, objects[4] + objects[5]) touches = pygame.sprite.spritecollideany(self, objects[4] + objects[5])
@ -585,8 +593,10 @@ class MainCharacter(Fighter):
if touches.name == 'fireplace': if touches.name == 'fireplace':
self.freezing = False self.freezing = False
elif touches.name == 'portal' and self.level.level != 1: elif touches.name == 'portal' and self.level.level != 1:
portal_sound.play()
return 'play' return 'play'
elif touches.name == 'house' and self.level.level != 1: elif touches.name == 'house' and self.level.level != 1:
door_sound.play()
self.x = 500 self.x = 500
self.y = 400 self.y = 400
return 'house' return 'house'
@ -594,6 +604,7 @@ class MainCharacter(Fighter):
return 'wall' return 'wall'
elif isinstance(touches, Door): elif isinstance(touches, Door):
if not touches.locked: if not touches.locked:
door_sound.play()
return f'door-{touches.target}' return f'door-{touches.target}'
else: else:
return True return True
@ -650,13 +661,22 @@ class MainCharacter(Fighter):
""" """
def attack(self, obj, mouse): def attack(self, obj, mouse):
fireball_sound = mixer.Sound('audio/soundeffects/firebalhitl.mp3')
wind_sound = mixer.Sound('audio/soundeffects/wind.mp3')
oldmanattack_sound = mixer.Sound('audio/soundeffects/oldmanattack.mp3')
fireball_sound.set_volume(0.2)
wind_sound.set_volume(0.2)
oldmanattack_sound.set_volume(0.2)
if self.lastAttack + self.attack_speed * 1000 < pygame.time.get_ticks(): if self.lastAttack + self.attack_speed * 1000 < pygame.time.get_ticks():
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':
fireball_sound.play()
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': elif self.book.current_sp == 'windslash':
wind_sound.play()
weapon = Windslash('ws1', 100, self.x, self.y, moveto, 10) weapon = Windslash('ws1', 100, self.x, self.y, moveto, 10)
else: else:
oldmanattack_sound.play()
weapon = Punch('punch', 100, self.x, self.y, moveto, 1, Mobs, life_ticks=500) weapon = Punch('punch', 100, self.x, self.y, moveto, 1, Mobs, life_ticks=500)
obj[3].append(weapon) obj[3].append(weapon)
self.lastAttack = pygame.time.get_ticks() self.lastAttack = pygame.time.get_ticks()
@ -881,7 +901,10 @@ class Skeleton(Mobs):
super().__init__(name, ms, sprite, x, y, health, damage, level, asp, atr, drops) super().__init__(name, ms, sprite, x, y, health, damage, level, asp, atr, drops)
def attack(self, moveto, obj): def attack(self, moveto, obj):
arrow_sound = mixer.Sound('audio/soundeffects/arrowsound.mp3')
arrow_sound.set_volume(0.3)
if self.lastAttack + self.attack_speed * 1000 < pygame.time.get_ticks(): if self.lastAttack + self.attack_speed * 1000 < pygame.time.get_ticks():
arrow_sound.play()
obj[3].append(Arrow("arrow", 200, self.x, self.y, moveto, self.damage)) obj[3].append(Arrow("arrow", 200, self.x, self.y, moveto, self.damage))
self.lastAttack = pygame.time.get_ticks() self.lastAttack = pygame.time.get_ticks()
@ -923,7 +946,10 @@ class Zombie(Mobs):
def attack(self, moveto, obj): def attack(self, moveto, obj):
zombieattack_sound = mixer.Sound('audio/soundeffects/zombieattack.mp3')
zombieattack_sound.set_volume(0.3)
if self.lastAttack + self.attack_speed * 1000 < pygame.time.get_ticks(): if self.lastAttack + self.attack_speed * 1000 < pygame.time.get_ticks():
zombieattack_sound.play()
obj[3].append(Punch('punch', 100, self.x, self.y, moveto, self.damage, MainCharacter)) obj[3].append(Punch('punch', 100, self.x, self.y, moveto, self.damage, MainCharacter))
self.lastAttack = pygame.time.get_ticks() self.lastAttack = pygame.time.get_ticks()
@ -941,7 +967,10 @@ class Boss(Mobs):
super().__init__(name, ms, sprite, x, y, health, damage, level, asp, atr, drops) super().__init__(name, ms, sprite, x, y, health, damage, level, asp, atr, drops)
def attack(self, moveto, obj): def attack(self, moveto, obj):
reddyattack_sound = mixer.Sound('audio/soundeffects/reddyattack.mp3')
reddyattack_sound.set_volume(0.8)
if self.lastAttack + self.attack_speed * 1000 < pygame.time.get_ticks(): if self.lastAttack + self.attack_speed * 1000 < pygame.time.get_ticks():
reddyattack_sound.play()
obj[3].append(RedBlob("blob", 50, self.x, self.y, moveto, self.damage)) obj[3].append(RedBlob("blob", 50, self.x, self.y, moveto, self.damage))
self.lastAttack = pygame.time.get_ticks() self.lastAttack = pygame.time.get_ticks()
@ -1038,7 +1067,6 @@ class Arrow(Weapons):
self.move(objects) self.move(objects)
self.die(objects, MainCharacter) self.die(objects, MainCharacter)
class Punch(Weapons): class Punch(Weapons):
def __init__(self, name, ms, x, y, moveto, damage, kills, sprite = 'weapons/empty.png', life_ticks=100) -> None: def __init__(self, name, ms, x, y, moveto, damage, kills, sprite = 'weapons/empty.png', life_ticks=100) -> None:
super().__init__(name, ms, sprite, x, y, moveto, damage, life_ticks) super().__init__(name, ms, sprite, x, y, moveto, damage, life_ticks)

View file