diff --git a/README.md b/README.md index 70d26fb..20f03d6 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,28 @@ # Silent FH -Lorem ipsum for now. \ No newline at end of file +In Silent FH, you play as a student trapped overnight in the FH Joanneum. During the night the professors turn into monsters and hunt down the trapped students. +Your goal is to survive. + +This project uses uv and PyGame as its main libraries. + +To get uv, please see here: https://docs.astral.sh/uv/getting-started/installation/ + +To sync the dependencies, please run: + +``` +uv sync +source .venv/bin/activate or source .venv/bin/activate.fish +uv run main.py +``` + +Coding Guidelines: + +- Using branches for features, named like so: feat/feature-name +- Using pull requests and merging for code review +- Using semantic commits for a good overview of the changes, for example: + - feat(component): added new component + - fix(bug): fixed a bug + - docs(readme): updated documentation + - chore(ci): automated build and deployment + +Game coded up by Baumgartner Kevin, Kammerhofer Lukas, Berger Lena and Haiden Niklas. \ No newline at end of file diff --git a/assets/angry_knoll/sprite_01.png b/assets/angry_knoll/sprite_01.png new file mode 100644 index 0000000..2c4be98 Binary files /dev/null and b/assets/angry_knoll/sprite_01.png differ diff --git a/assets/angry_knoll/sprite_02.png b/assets/angry_knoll/sprite_02.png new file mode 100644 index 0000000..24ecd93 Binary files /dev/null and b/assets/angry_knoll/sprite_02.png differ diff --git a/assets/angry_knoll/sprite_03.png b/assets/angry_knoll/sprite_03.png new file mode 100644 index 0000000..8dfba40 Binary files /dev/null and b/assets/angry_knoll/sprite_03.png differ diff --git a/assets/angry_knoll/sprite_04.png b/assets/angry_knoll/sprite_04.png new file mode 100644 index 0000000..bf1eff3 Binary files /dev/null and b/assets/angry_knoll/sprite_04.png differ diff --git a/assets/angry_knoll/sprite_05.png b/assets/angry_knoll/sprite_05.png new file mode 100644 index 0000000..affacd8 Binary files /dev/null and b/assets/angry_knoll/sprite_05.png differ diff --git a/assets/angry_knoll/sprite_06.png b/assets/angry_knoll/sprite_06.png new file mode 100644 index 0000000..91b1d56 Binary files /dev/null and b/assets/angry_knoll/sprite_06.png differ diff --git a/assets/angry_knoll/sprite_07.png b/assets/angry_knoll/sprite_07.png new file mode 100644 index 0000000..e2901eb Binary files /dev/null and b/assets/angry_knoll/sprite_07.png differ diff --git a/assets/angry_knoll/sprite_08.png b/assets/angry_knoll/sprite_08.png new file mode 100644 index 0000000..9d8186d Binary files /dev/null and b/assets/angry_knoll/sprite_08.png differ diff --git a/assets/angry_knoll/sprite_09.png b/assets/angry_knoll/sprite_09.png new file mode 100644 index 0000000..fe9b8fb Binary files /dev/null and b/assets/angry_knoll/sprite_09.png differ diff --git a/assets/angry_knoll/sprite_10.png b/assets/angry_knoll/sprite_10.png new file mode 100644 index 0000000..e6d9477 Binary files /dev/null and b/assets/angry_knoll/sprite_10.png differ diff --git a/assets/angry_knoll/sprite_11.png b/assets/angry_knoll/sprite_11.png new file mode 100644 index 0000000..c912727 Binary files /dev/null and b/assets/angry_knoll/sprite_11.png differ diff --git a/assets/angry_knoll/sprite_12.png b/assets/angry_knoll/sprite_12.png new file mode 100644 index 0000000..cad7afc Binary files /dev/null and b/assets/angry_knoll/sprite_12.png differ diff --git a/assets/angry_krainz/sprite_01.png b/assets/angry_krainz/sprite_01.png new file mode 100644 index 0000000..560a568 Binary files /dev/null and b/assets/angry_krainz/sprite_01.png differ diff --git a/assets/angry_krainz/sprite_02.png b/assets/angry_krainz/sprite_02.png new file mode 100644 index 0000000..38d2353 Binary files /dev/null and b/assets/angry_krainz/sprite_02.png differ diff --git a/assets/angry_krainz/sprite_03.png b/assets/angry_krainz/sprite_03.png new file mode 100644 index 0000000..1a89a20 Binary files /dev/null and b/assets/angry_krainz/sprite_03.png differ diff --git a/assets/angry_krainz/sprite_04.png b/assets/angry_krainz/sprite_04.png new file mode 100644 index 0000000..b5031a0 Binary files /dev/null and b/assets/angry_krainz/sprite_04.png differ diff --git a/assets/angry_krainz/sprite_05.png b/assets/angry_krainz/sprite_05.png new file mode 100644 index 0000000..d0f7081 Binary files /dev/null and b/assets/angry_krainz/sprite_05.png differ diff --git a/assets/angry_krainz/sprite_06.png b/assets/angry_krainz/sprite_06.png new file mode 100644 index 0000000..f70cd17 Binary files /dev/null and b/assets/angry_krainz/sprite_06.png differ diff --git a/assets/angry_krainz/sprite_07.png b/assets/angry_krainz/sprite_07.png new file mode 100644 index 0000000..0c15eff Binary files /dev/null and b/assets/angry_krainz/sprite_07.png differ diff --git a/assets/angry_krainz/sprite_08.png b/assets/angry_krainz/sprite_08.png new file mode 100644 index 0000000..870a6e9 Binary files /dev/null and b/assets/angry_krainz/sprite_08.png differ diff --git a/assets/angry_krainz/sprite_09.png b/assets/angry_krainz/sprite_09.png new file mode 100644 index 0000000..f223171 Binary files /dev/null and b/assets/angry_krainz/sprite_09.png differ diff --git a/assets/angry_krainz/sprite_10.png b/assets/angry_krainz/sprite_10.png new file mode 100644 index 0000000..07665d4 Binary files /dev/null and b/assets/angry_krainz/sprite_10.png differ diff --git a/assets/angry_krainz/sprite_11.png b/assets/angry_krainz/sprite_11.png new file mode 100644 index 0000000..f1138aa Binary files /dev/null and b/assets/angry_krainz/sprite_11.png differ diff --git a/assets/angry_krainz/sprite_12.png b/assets/angry_krainz/sprite_12.png new file mode 100644 index 0000000..ee0b350 Binary files /dev/null and b/assets/angry_krainz/sprite_12.png differ diff --git a/assets/angry_schwab/sprite_01.png b/assets/angry_schwab/sprite_01.png new file mode 100644 index 0000000..2802553 Binary files /dev/null and b/assets/angry_schwab/sprite_01.png differ diff --git a/assets/angry_schwab/sprite_02.png b/assets/angry_schwab/sprite_02.png new file mode 100644 index 0000000..e18f1b7 Binary files /dev/null and b/assets/angry_schwab/sprite_02.png differ diff --git a/assets/angry_schwab/sprite_03.png b/assets/angry_schwab/sprite_03.png new file mode 100644 index 0000000..da15310 Binary files /dev/null and b/assets/angry_schwab/sprite_03.png differ diff --git a/assets/angry_schwab/sprite_04.png b/assets/angry_schwab/sprite_04.png new file mode 100644 index 0000000..bef2def Binary files /dev/null and b/assets/angry_schwab/sprite_04.png differ diff --git a/assets/angry_schwab/sprite_05.png b/assets/angry_schwab/sprite_05.png new file mode 100644 index 0000000..5f0ee85 Binary files /dev/null and b/assets/angry_schwab/sprite_05.png differ diff --git a/assets/angry_schwab/sprite_06.png b/assets/angry_schwab/sprite_06.png new file mode 100644 index 0000000..a5d10ef Binary files /dev/null and b/assets/angry_schwab/sprite_06.png differ diff --git a/assets/angry_schwab/sprite_07.png b/assets/angry_schwab/sprite_07.png new file mode 100644 index 0000000..04f8916 Binary files /dev/null and b/assets/angry_schwab/sprite_07.png differ diff --git a/assets/angry_schwab/sprite_08.png b/assets/angry_schwab/sprite_08.png new file mode 100644 index 0000000..5048fda Binary files /dev/null and b/assets/angry_schwab/sprite_08.png differ diff --git a/assets/angry_schwab/sprite_09.png b/assets/angry_schwab/sprite_09.png new file mode 100644 index 0000000..2d11a09 Binary files /dev/null and b/assets/angry_schwab/sprite_09.png differ diff --git a/assets/angry_schwab/sprite_10.png b/assets/angry_schwab/sprite_10.png new file mode 100644 index 0000000..b38cc5f Binary files /dev/null and b/assets/angry_schwab/sprite_10.png differ diff --git a/assets/angry_schwab/sprite_11.png b/assets/angry_schwab/sprite_11.png new file mode 100644 index 0000000..ac7e076 Binary files /dev/null and b/assets/angry_schwab/sprite_11.png differ diff --git a/assets/angry_schwab/sprite_12.png b/assets/angry_schwab/sprite_12.png new file mode 100644 index 0000000..866b24d Binary files /dev/null and b/assets/angry_schwab/sprite_12.png differ diff --git a/assets/furniture/table.png b/assets/furniture/table.png new file mode 100644 index 0000000..a9eef32 Binary files /dev/null and b/assets/furniture/table.png differ diff --git a/assets/niklas_sprites/sprite_01.png b/assets/niklas_sprites/sprite_01.png new file mode 100644 index 0000000..9dd32db Binary files /dev/null and b/assets/niklas_sprites/sprite_01.png differ diff --git a/assets/niklas_sprites/sprite_02.png b/assets/niklas_sprites/sprite_02.png new file mode 100644 index 0000000..9689c32 Binary files /dev/null and b/assets/niklas_sprites/sprite_02.png differ diff --git a/assets/niklas_sprites/sprite_03.png b/assets/niklas_sprites/sprite_03.png new file mode 100644 index 0000000..da38540 Binary files /dev/null and b/assets/niklas_sprites/sprite_03.png differ diff --git a/assets/niklas_sprites/sprite_04.png b/assets/niklas_sprites/sprite_04.png new file mode 100644 index 0000000..6cf24bd Binary files /dev/null and b/assets/niklas_sprites/sprite_04.png differ diff --git a/assets/niklas_sprites/sprite_05.png b/assets/niklas_sprites/sprite_05.png new file mode 100644 index 0000000..f36d028 Binary files /dev/null and b/assets/niklas_sprites/sprite_05.png differ diff --git a/assets/niklas_sprites/sprite_06.png b/assets/niklas_sprites/sprite_06.png new file mode 100644 index 0000000..47c9b4f Binary files /dev/null and b/assets/niklas_sprites/sprite_06.png differ diff --git a/assets/niklas_sprites/sprite_07.png b/assets/niklas_sprites/sprite_07.png new file mode 100644 index 0000000..c9ff691 Binary files /dev/null and b/assets/niklas_sprites/sprite_07.png differ diff --git a/assets/niklas_sprites/sprite_08.png b/assets/niklas_sprites/sprite_08.png new file mode 100644 index 0000000..3d46f56 Binary files /dev/null and b/assets/niklas_sprites/sprite_08.png differ diff --git a/assets/niklas_sprites/sprite_09.png b/assets/niklas_sprites/sprite_09.png new file mode 100644 index 0000000..de66e4a Binary files /dev/null and b/assets/niklas_sprites/sprite_09.png differ diff --git a/assets/niklas_sprites/sprite_10.png b/assets/niklas_sprites/sprite_10.png new file mode 100644 index 0000000..655c344 Binary files /dev/null and b/assets/niklas_sprites/sprite_10.png differ diff --git a/assets/niklas_sprites/sprite_11.png b/assets/niklas_sprites/sprite_11.png new file mode 100644 index 0000000..eb9b915 Binary files /dev/null and b/assets/niklas_sprites/sprite_11.png differ diff --git a/assets/niklas_sprites/sprite_12.png b/assets/niklas_sprites/sprite_12.png new file mode 100644 index 0000000..a5408f1 Binary files /dev/null and b/assets/niklas_sprites/sprite_12.png differ diff --git a/assets/normal_knoll/sprite_01.png b/assets/normal_knoll/sprite_01.png new file mode 100644 index 0000000..f0dce1d Binary files /dev/null and b/assets/normal_knoll/sprite_01.png differ diff --git a/assets/normal_knoll/sprite_02.png b/assets/normal_knoll/sprite_02.png new file mode 100644 index 0000000..5ff7d6f Binary files /dev/null and b/assets/normal_knoll/sprite_02.png differ diff --git a/assets/normal_knoll/sprite_03.png b/assets/normal_knoll/sprite_03.png new file mode 100644 index 0000000..240159e Binary files /dev/null and b/assets/normal_knoll/sprite_03.png differ diff --git a/assets/normal_knoll/sprite_04.png b/assets/normal_knoll/sprite_04.png new file mode 100644 index 0000000..e20079d Binary files /dev/null and b/assets/normal_knoll/sprite_04.png differ diff --git a/assets/normal_knoll/sprite_05.png b/assets/normal_knoll/sprite_05.png new file mode 100644 index 0000000..3196efc Binary files /dev/null and b/assets/normal_knoll/sprite_05.png differ diff --git a/assets/normal_knoll/sprite_06.png b/assets/normal_knoll/sprite_06.png new file mode 100644 index 0000000..3b49e2d Binary files /dev/null and b/assets/normal_knoll/sprite_06.png differ diff --git a/assets/normal_knoll/sprite_07.png b/assets/normal_knoll/sprite_07.png new file mode 100644 index 0000000..dee6afd Binary files /dev/null and b/assets/normal_knoll/sprite_07.png differ diff --git a/assets/normal_knoll/sprite_08.png b/assets/normal_knoll/sprite_08.png new file mode 100644 index 0000000..97e7eb1 Binary files /dev/null and b/assets/normal_knoll/sprite_08.png differ diff --git a/assets/normal_knoll/sprite_09.png b/assets/normal_knoll/sprite_09.png new file mode 100644 index 0000000..da3a05d Binary files /dev/null and b/assets/normal_knoll/sprite_09.png differ diff --git a/assets/normal_knoll/sprite_10.png b/assets/normal_knoll/sprite_10.png new file mode 100644 index 0000000..2e78346 Binary files /dev/null and b/assets/normal_knoll/sprite_10.png differ diff --git a/assets/normal_knoll/sprite_11.png b/assets/normal_knoll/sprite_11.png new file mode 100644 index 0000000..2be9b69 Binary files /dev/null and b/assets/normal_knoll/sprite_11.png differ diff --git a/assets/normal_knoll/sprite_12.png b/assets/normal_knoll/sprite_12.png new file mode 100644 index 0000000..06b25cf Binary files /dev/null and b/assets/normal_knoll/sprite_12.png differ diff --git a/assets/normal_krainz/sprite_01.png b/assets/normal_krainz/sprite_01.png new file mode 100644 index 0000000..37727ce Binary files /dev/null and b/assets/normal_krainz/sprite_01.png differ diff --git a/assets/normal_krainz/sprite_02.png b/assets/normal_krainz/sprite_02.png new file mode 100644 index 0000000..38258a5 Binary files /dev/null and b/assets/normal_krainz/sprite_02.png differ diff --git a/assets/normal_krainz/sprite_03.png b/assets/normal_krainz/sprite_03.png new file mode 100644 index 0000000..3a39594 Binary files /dev/null and b/assets/normal_krainz/sprite_03.png differ diff --git a/assets/normal_krainz/sprite_04.png b/assets/normal_krainz/sprite_04.png new file mode 100644 index 0000000..2c16bd4 Binary files /dev/null and b/assets/normal_krainz/sprite_04.png differ diff --git a/assets/normal_krainz/sprite_05.png b/assets/normal_krainz/sprite_05.png new file mode 100644 index 0000000..280fa79 Binary files /dev/null and b/assets/normal_krainz/sprite_05.png differ diff --git a/assets/normal_krainz/sprite_06.png b/assets/normal_krainz/sprite_06.png new file mode 100644 index 0000000..6d09f36 Binary files /dev/null and b/assets/normal_krainz/sprite_06.png differ diff --git a/assets/normal_krainz/sprite_07.png b/assets/normal_krainz/sprite_07.png new file mode 100644 index 0000000..3111110 Binary files /dev/null and b/assets/normal_krainz/sprite_07.png differ diff --git a/assets/normal_krainz/sprite_08.png b/assets/normal_krainz/sprite_08.png new file mode 100644 index 0000000..190f1c5 Binary files /dev/null and b/assets/normal_krainz/sprite_08.png differ diff --git a/assets/normal_krainz/sprite_09.png b/assets/normal_krainz/sprite_09.png new file mode 100644 index 0000000..23f534e Binary files /dev/null and b/assets/normal_krainz/sprite_09.png differ diff --git a/assets/normal_krainz/sprite_10.png b/assets/normal_krainz/sprite_10.png new file mode 100644 index 0000000..3da07bf Binary files /dev/null and b/assets/normal_krainz/sprite_10.png differ diff --git a/assets/normal_krainz/sprite_11.png b/assets/normal_krainz/sprite_11.png new file mode 100644 index 0000000..339a054 Binary files /dev/null and b/assets/normal_krainz/sprite_11.png differ diff --git a/assets/normal_krainz/sprite_12.png b/assets/normal_krainz/sprite_12.png new file mode 100644 index 0000000..227ed9a Binary files /dev/null and b/assets/normal_krainz/sprite_12.png differ diff --git a/assets/normal_schwab/sprite_01.png b/assets/normal_schwab/sprite_01.png new file mode 100644 index 0000000..15082bd Binary files /dev/null and b/assets/normal_schwab/sprite_01.png differ diff --git a/assets/normal_schwab/sprite_02.png b/assets/normal_schwab/sprite_02.png new file mode 100644 index 0000000..dacaa9b Binary files /dev/null and b/assets/normal_schwab/sprite_02.png differ diff --git a/assets/normal_schwab/sprite_03.png b/assets/normal_schwab/sprite_03.png new file mode 100644 index 0000000..2ebadd0 Binary files /dev/null and b/assets/normal_schwab/sprite_03.png differ diff --git a/assets/normal_schwab/sprite_04.png b/assets/normal_schwab/sprite_04.png new file mode 100644 index 0000000..2acc549 Binary files /dev/null and b/assets/normal_schwab/sprite_04.png differ diff --git a/assets/normal_schwab/sprite_05.png b/assets/normal_schwab/sprite_05.png new file mode 100644 index 0000000..463083a Binary files /dev/null and b/assets/normal_schwab/sprite_05.png differ diff --git a/assets/normal_schwab/sprite_06.png b/assets/normal_schwab/sprite_06.png new file mode 100644 index 0000000..e99ce58 Binary files /dev/null and b/assets/normal_schwab/sprite_06.png differ diff --git a/assets/normal_schwab/sprite_07.png b/assets/normal_schwab/sprite_07.png new file mode 100644 index 0000000..5db8c44 Binary files /dev/null and b/assets/normal_schwab/sprite_07.png differ diff --git a/assets/normal_schwab/sprite_08.png b/assets/normal_schwab/sprite_08.png new file mode 100644 index 0000000..7d6e956 Binary files /dev/null and b/assets/normal_schwab/sprite_08.png differ diff --git a/assets/normal_schwab/sprite_09.png b/assets/normal_schwab/sprite_09.png new file mode 100644 index 0000000..de35725 Binary files /dev/null and b/assets/normal_schwab/sprite_09.png differ diff --git a/assets/normal_schwab/sprite_10.png b/assets/normal_schwab/sprite_10.png new file mode 100644 index 0000000..ffff339 Binary files /dev/null and b/assets/normal_schwab/sprite_10.png differ diff --git a/assets/normal_schwab/sprite_11.png b/assets/normal_schwab/sprite_11.png new file mode 100644 index 0000000..1451a70 Binary files /dev/null and b/assets/normal_schwab/sprite_11.png differ diff --git a/assets/normal_schwab/sprite_12.png b/assets/normal_schwab/sprite_12.png new file mode 100644 index 0000000..c32a85f Binary files /dev/null and b/assets/normal_schwab/sprite_12.png differ diff --git a/src/desk.py b/src/desk.py new file mode 100644 index 0000000..83e57ff --- /dev/null +++ b/src/desk.py @@ -0,0 +1,30 @@ +import pygame +from src.settings import DESK_WIDTH, DESK_HEIGHT + +class Desk: + def __init__(self, x, y): + # each desk must be positioned with its own x/y coordinates + self.x = x + self.y = y + + # size for collision rect and table + self.rect = pygame.Rect(self.x, self.y, DESK_WIDTH, DESK_HEIGHT) + + try: + self.image = pygame.image.load("assets/furniture/desk.png").convert_alpha() + # scale the sprite to match collision rect + self.image = pygame.transform.scale(self.image, (DESK_WIDTH, DESK_HEIGHT)) + except Exception as e: + print(f"Error loading desk sprite: {e}") + self.image = None + + # check if player touches table + def check_collision(self, player_rect): + return self.rect.colliderect(player_rect) + + # draw table - use sprite and as fallback a brown rect + def draw(self, screen): + if self.image: + screen.blit(self.image, self.rect) + else: + pygame.draw.rect(screen, (193, 69, 19), self.rect) \ No newline at end of file diff --git a/src/door.py b/src/door.py new file mode 100644 index 0000000..5b388fb --- /dev/null +++ b/src/door.py @@ -0,0 +1,31 @@ +import pygame + +# using class to be able to reuse it +# as we will have multiple rooms to go in +class Door: + def __init__(self, x, y, hp_value): + # for each door we can set our own x/y position + self.x = x + self.y = y + + self.max_hp = hp_value + self.current_hp = hp_value + self.is_closed = False + + self.door_color = (245, 245, 220) + self.door_border_color = (100, 90, 80) + + def draw(self, screen): + # main space of the door with 20x100 px + pygame.draw.rect(screen, self.door_color, (self.x, self.y, 20, 100)) + + # doorframe 3px + pygame.draw.rect(screen, self.door_border_color, (self.x, self.y, 20, 100), 3) + + # when attacked and gets dmg reduces the health (if closed), door "breaks" when health = 0 + def take_damage(self, amount): + if self.is_closed: + self.current_hp -= amount + if self.current_hp <= 0: + self.current_hp = 0 + self.is_closed = False \ No newline at end of file diff --git a/src/settings.py b/src/settings.py new file mode 100644 index 0000000..4055ea3 --- /dev/null +++ b/src/settings.py @@ -0,0 +1,4 @@ +# --- DESK --- +DESK_WIDTH = 70 +DESK_HEIGHT = 40 +