Skip to content
Open

Cor #39

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
134 commits
Select commit Hold shift + click to select a range
fe576c6
README.md
coryxn Jul 26, 2024
6870059
:)
AngWilliamLee Jul 26, 2024
159de6c
bye
AngWilliamLee Jul 26, 2024
7b63a39
hehehah
Kailenator-AZH Jul 26, 2024
6e69e75
;(
Kailenator-AZH Jul 26, 2024
48bbc5b
;(
Kailenator-AZH Jul 26, 2024
06e8a0e
.
Kailenator-AZH Jul 26, 2024
94b821f
sigma
AngWilliamLee Jul 26, 2024
787d4aa
uwu
coryxn Jul 26, 2024
aa89fd8
bye bye
AngWilliamLee Jul 26, 2024
d582cae
.
Kailenator-AZH Jul 26, 2024
59c3b5f
Merge branch 'william'
AngWilliamLee Jul 26, 2024
164ed79
1 of main game loop
AngWilliamLee Jul 26, 2024
e6724a8
Merge pull request #1 from AngWilliamLee/william
AngWilliamLee Jul 26, 2024
d7b5480
.
Kailenator-AZH Jul 26, 2024
10c7223
.
Kailenator-AZH Jul 26, 2024
7ac88c5
26/7
coryxn Jul 26, 2024
9fdb757
.
Kailenator-AZH Jul 30, 2024
4f23eef
empty
coryxn Jul 30, 2024
e8024c1
Merge remote-tracking branch 'origin/main' into cor
coryxn Jul 30, 2024
f83b6fd
.
Kailenator-AZH Jul 30, 2024
8047980
Merge remote-tracking branch 'origin/main' into Abranch
Kailenator-AZH Jul 30, 2024
e9281a2
.
Kailenator-AZH Jul 30, 2024
4bc27ee
.
Kailenator-AZH Jul 30, 2024
a10c2a1
Merge pull request #2 from AngWilliamLee/Abranch
coryxn Jul 30, 2024
008bf0e
.
AngWilliamLee Jul 30, 2024
e11e7d3
nth
coryxn Jul 30, 2024
4783b14
Merge remote-tracking branch 'origin/main' into william
AngWilliamLee Jul 30, 2024
328032d
Merge remote-tracking branch 'origin/main' into cor
coryxn Jul 30, 2024
925230e
.
Kailenator-AZH Jul 30, 2024
121418f
.
Kailenator-AZH Jul 30, 2024
c4cf4bd
Added dialogue
AngWilliamLee Jul 30, 2024
5690492
Merge pull request #3 from AngWilliamLee/Abranch
majesticmist Jul 30, 2024
9fb1792
huh
coryxn Jul 30, 2024
fd47c95
final room class
coryxn Jul 30, 2024
a79ee3c
.
coryxn Jul 30, 2024
c6d1187
final
coryxn Jul 30, 2024
fabf776
Merge branch 'main' into cor
Kailenator-AZH Aug 2, 2024
e2c0be8
Merge pull request #4 from AngWilliamLee/cor
Kailenator-AZH Aug 2, 2024
19abab3
final
coryxn Aug 2, 2024
0876c9c
Merge pull request #5 from AngWilliamLee/cor
majesticmist Aug 2, 2024
359c06c
.
Kailenator-AZH Aug 2, 2024
90b9fac
.
Kailenator-AZH Aug 2, 2024
4d0eb4d
.
Kailenator-AZH Aug 2, 2024
31d7133
.
AngWilliamLee Aug 2, 2024
d9275f5
.
Kailenator-AZH Aug 2, 2024
8b1b892
.
Kailenator-AZH Aug 2, 2024
b69d091
.
AngWilliamLee Aug 2, 2024
8f49aa1
.
Kailenator-AZH Aug 2, 2024
a4aac63
Merge pull request #6 from AngWilliamLee/Abranch
coryxn Aug 2, 2024
fb83553
.
coryxn Aug 2, 2024
8c82126
Merge remote-tracking branch 'origin/main' into cor
coryxn Aug 2, 2024
1a16b3a
Merge remote-tracking branch 'origin/main' into william
AngWilliamLee Aug 2, 2024
a8f73e2
added interface calss and script
AngWilliamLee Aug 2, 2024
3c672d6
.
Kailenator-AZH Aug 6, 2024
5912b55
Created factory functions
majesticmist Aug 6, 2024
f02242a
Implemented factory functions
majesticmist Aug 6, 2024
b7def62
Merge pull request #7 from AngWilliamLee/stev
Kailenator-AZH Aug 6, 2024
22f3a91
Merge remote-tracking branch 'origin/main' into Abranch
Kailenator-AZH Aug 6, 2024
07459c5
Merge remote-tracking branch 'origin/main' into stev
majesticmist Aug 6, 2024
2009fc5
Refactor: used data factory functions
Kailenator-AZH Aug 6, 2024
c71b516
abstracted data into json file
majesticmist Aug 6, 2024
1b0f0e3
Merge branch 'main' into stev
Kailenator-AZH Aug 6, 2024
7fdc73f
Merge pull request #8 from AngWilliamLee/stev
Kailenator-AZH Aug 6, 2024
29b0c62
Merge remote-tracking branch 'origin/main' into stev
majesticmist Aug 6, 2024
03b2101
.
Kailenator-AZH Aug 6, 2024
813979d
Merge remote-tracking branch 'origin/main' into Abranch
Kailenator-AZH Aug 6, 2024
26ffe63
Merge remote-tracking branch 'origin/main' into cor
coryxn Aug 6, 2024
0e2f750
Merge pull request #9 from AngWilliamLee/Abranch
majesticmist Aug 6, 2024
f26d62a
Merge remote-tracking branch 'origin/main' into stev
majesticmist Aug 6, 2024
d9715bb
.
AngWilliamLee Aug 6, 2024
f7dab03
Merge remote-tracking branch 'origin/main' into william
AngWilliamLee Aug 6, 2024
5a6488c
battle class
coryxn Aug 13, 2024
8130538
interface and script
AngWilliamLee Aug 13, 2024
3e7a0f0
update
coryxn Aug 13, 2024
7a20f0a
Merge branch 'main' into william
AngWilliamLee Aug 16, 2024
f8168f0
Merge pull request #10 from AngWilliamLee/william
coryxn Aug 16, 2024
78dd506
Merge remote-tracking branch 'origin/main' into cor
coryxn Aug 16, 2024
3e2bc42
Merge remote-tracking branch 'origin/main' into stev
majesticmist Aug 16, 2024
87a1179
Merge remote-tracking branch 'origin/main' into william
AngWilliamLee Aug 16, 2024
bec44aa
Merge remote-tracking branch 'origin/main' into cor
coryxn Aug 16, 2024
13b2baa
Merge pull request #11 from AngWilliamLee/cor
Kailenator-AZH Aug 16, 2024
aa19039
Merge remote-tracking branch 'origin/main' into william
AngWilliamLee Aug 16, 2024
1bf6f6e
i commited
Kailenator-AZH Aug 16, 2024
0f326da
Merge pull request #12 from AngWilliamLee/Abranch
coryxn Aug 16, 2024
b35c016
Merge remote-tracking branch 'origin/main' into stev
majesticmist Aug 16, 2024
bebb3ff
Merge remote-tracking branch 'origin/main' into william
AngWilliamLee Aug 16, 2024
aed903b
update
AngWilliamLee Aug 16, 2024
1734df8
e32
coryxn Aug 16, 2024
186daa3
.
AngWilliamLee Aug 16, 2024
843f388
Merge pull request #13 from AngWilliamLee/cor
Kailenator-AZH Aug 16, 2024
5da24ad
Merge remote-tracking branch 'origin/main' into william
AngWilliamLee Aug 16, 2024
a4687ea
Merge remote-tracking branch 'origin/main' into stev
majesticmist Aug 16, 2024
437bd6e
Merge pull request #14 from AngWilliamLee/william
coryxn Aug 16, 2024
c04734b
added menu for each room
AngWilliamLee Aug 16, 2024
aeee0f3
Merge pull request #15 from AngWilliamLee/william
majesticmist Aug 16, 2024
6043b96
Merge remote-tracking branch 'origin/main' into william
AngWilliamLee Aug 16, 2024
5f5f580
.
Kailenator-AZH Aug 16, 2024
1659371
Merge remote-tracking branch 'origin/main' into william
AngWilliamLee Aug 16, 2024
cce5b99
Merge remote-tracking branch 'origin/main' into Abranch
Kailenator-AZH Aug 16, 2024
421b366
f
coryxn Aug 16, 2024
b6125d7
Merge remote-tracking branch 'origin/main' into stev
majesticmist Aug 16, 2024
a604f96
Merge remote-tracking branch 'origin/main' into cor
coryxn Aug 16, 2024
17925a8
k
AngWilliamLee Aug 16, 2024
0701e1f
Merge pull request #16 from AngWilliamLee/william
coryxn Aug 16, 2024
defe2ef
Merge remote-tracking branch 'origin/main' into stev
majesticmist Aug 16, 2024
579eeac
.
Kailenator-AZH Aug 16, 2024
ae182a0
Merge branch 'main' into Abranch
Kailenator-AZH Aug 16, 2024
0c597d2
Merge pull request #17 from AngWilliamLee/Abranch
majesticmist Aug 16, 2024
b9505a7
Merge remote-tracking branch 'origin/main' into stev
majesticmist Aug 16, 2024
5d5084b
f
coryxn Aug 16, 2024
fb25654
Merge branch 'main' into cor
AngWilliamLee Aug 16, 2024
7242076
Merge pull request #18 from AngWilliamLee/cor
AngWilliamLee Aug 16, 2024
916aa0a
v
AngWilliamLee Aug 16, 2024
9a4529d
Merge remote-tracking branch 'origin/main' into william
AngWilliamLee Aug 16, 2024
fecfee6
Merge pull request #19 from AngWilliamLee/william
coryxn Aug 16, 2024
a28574d
.
Kailenator-AZH Aug 16, 2024
139926e
Merge remote-tracking branch 'origin/main' into Abranch
Kailenator-AZH Aug 16, 2024
425aea8
Merge pull request #20 from AngWilliamLee/Abranch
coryxn Aug 16, 2024
b89d3d0
fr
coryxn Aug 16, 2024
57f9b4b
Merge remote-tracking branch 'origin/main' into cor
coryxn Aug 16, 2024
85b7c30
FINALLYYY
coryxn Aug 16, 2024
7fc7b44
interface
AngWilliamLee Aug 20, 2024
807e6d9
Merge remote-tracking branch 'origin/main' into william
AngWilliamLee Aug 20, 2024
0ee4d93
Merge remote-tracking branch 'origin/main' into stev
majesticmist Aug 20, 2024
afc1391
updated script
AngWilliamLee Aug 20, 2024
4c08cba
Merge pull request #21 from AngWilliamLee/william
majesticmist Aug 20, 2024
c946dc4
Merge remote-tracking branch 'origin/main' into stev
majesticmist Aug 20, 2024
09a757d
yay
coryxn Aug 20, 2024
fee2d17
Merge pull request #22 from AngWilliamLee/cor
Kailenator-AZH Aug 20, 2024
4ae1eda
Merge remote-tracking branch 'origin/main' into stev
majesticmist Aug 20, 2024
153494e
Updated script for all rooms.
majesticmist Aug 20, 2024
b574d17
Merge pull request #24 from AngWilliamLee/stev
coryxn Aug 20, 2024
c284bca
m
coryxn Aug 23, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions Ascii.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
welcome = r"""


"""
8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@

## Members

- Member 1
- Member 2
- Member 3
- Member 4
- Corinne
- William :)
- Joshua
- Steve

<Description of your project>
1 change: 1 addition & 0 deletions Test.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
import interface
36 changes: 36 additions & 0 deletions battle.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
class Battle:
def __init__(self, player, room):
self.player = player
self.room = room

def battle_start(self):
i = 0
while not self.battle_over():
print(f"Your health: {self.player.get_health()}")
print(f"Enemy health: {self.room.get_enemies()[0].get_health()}")
if i % 2 == 0:
self.player_attack()
elif i % 2 == 1:
self.enemy_attack()

i += 1
print("Battle over!")

def player_attack(self):
self.player.attack(self.room.get_enemies()[0])
if self.get_enemy_health() <= 0:
self.room.remove_enemy()
print("Enemy defeated!")
if self.room.all_enemies_defeated():
print("All enemies defeated!")

def enemy_attack(self):
self.room.enemies[0].attack(self.player)
if self.player.get_health() <= 0:
print("You died! WEAK!")

def get_enemy_health(self):
return self.room.get_enemies()[0].get_health()

def battle_over(self):
return self.player.get_health() <= 0 or self.room.all_enemies_defeated()
48 changes: 48 additions & 0 deletions character.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
import random

class Character:

def __init__(self, _type, health):
self._type = _type
self.health = health
self.damage = random.randint(2, 7)


def attack(self, character):
"""
Deal damage to another character object
"""
character.receive_damage(self.damage)
# print("Die")

def receive_damage(self, damage):
"""
Remove health
"""
self.health -= damage
# print("Ouch")

def isdead(self):
"""
Returns status of character (dead or alive)
"""
return self.health <= 0

def get_health(self):
return self.health

class Player(Character):

def __init__(self, health, items=[]):
super().__init__("Player", health)

class Soldier(Character):

def __init__(self, health):
super().__init__("Soldier", health)


class Princess(Character):

def __init__(self, health):
super().__init__("Princess", health)
69 changes: 69 additions & 0 deletions ctps.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
import data, interface, battle, time

class Game:
def __init__(self):
self.interface = None
self.player = None
self.princess = None
self.rooms = []
self.now = 0

def setup(self):
self.interface = interface.Interface()
self.player = data.createPlayer()
self.princess = data.createPrincess()
self.rooms = data.createRooms()
if self.interface.start_menu() == 'exit':
print("Exiting game...")
exit()


def isover(self):
return self.player.isdead() or self.princess.isdead()

def next_room(self):
if self.now < len(self.rooms) - 1:
self.now += 1

def prev_room(self):
if self.now > 0:
self.now -= 1

def get_now_room(self):
return self.rooms[self.now]

def get_now_room_name(self):
return self.rooms[self.now].get_name()

def get_next_room_name(self):
if self.now < len(self.rooms) - 1:
return self.rooms[self.now + 1].get_name()
else:
return "WALL"

def get_prev_room_name(self):
if self.now - 1 >= 0:
return self.rooms[self.now - 1].get_name()
else:
return "WALL"

def get_choice(self):
"Dispalys and gets player choice. Display results afterwards"
print("Now:", self.get_now_room_name())
print("Next:", self.get_next_room_name())
print("Prev:", self.get_prev_room_name())
choice = self.interface.func_map[self.get_now_room_name()]()
print(choice)
if choice == 'Move to next room':
self.next_room()
elif choice == 'Move to previous room':
self.prev_room()
elif choice == 'Look around':
print("YOU FOUND ENEMIES!!!!")
combat = battle.Battle(self.player, self.get_now_room())
combat.battle_start()

else:
print("Invalid choice")
print()

11 changes: 11 additions & 0 deletions data.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"player": {
"hp": 300,
"str": 5,
"items": []
},
"princess": {
"hp": 20,
"str": 5
}
}
40 changes: 40 additions & 0 deletions data.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
import room
import character
import json

def createRooms() -> list[room.Room]:
"""
Must follow order of room: Dungeon, Kitchen, Hall, Toilet, Bedroom
Store Name & Number of enemies
"""

list_of_rooms = []
room_name_enemy_num = {"Dungeon":3,
"Kitchen":3,
"Hall":3,
"Toilet":3,
"Bedroom":3}
for name, num in room_name_enemy_num.items():
temp = room.Room(name)
for _ in range(num):
temp.add_enemy(character.Soldier(20))
list_of_rooms.append(temp)

return list_of_rooms

with open('data.json', 'r' ) as f:
char_data = json.load(f)


def createPlayer() -> character.Player:
"""

"""
record = char_data["player"]
return character.Player(record["hp"], record["str"])


def createPrincess() -> character.Princess:
record = char_data["princess"]
return character.Princess(record["hp"])

63 changes: 63 additions & 0 deletions interface.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
import script

class Interface:
def __init__(self):
self.func_map = {
"Dungeon": self.dungeon_menu,
"Kitchen": self.kitchen_menu,
"Hall": self.hall_menu,
"Toilet": self.toilet_menu,
"Bedroom": self.bedroom_menu
}

def prompt(self):
return script.prompt

def start_menu(self):
print(script.start_menu['title'])
[print(f"{num+1}: {value}") for num, value in enumerate(script.start_menu["options"])]
choice = int(input(script.prompt))
return script.start_menu['options'][choice - 1]

def combat_menu(self, player_health, enemy_health):
print(f"Your health: {player_health}")
print(f"Enemy health: {enemy_health}")

def dungeon_menu(self):
print(script.dungeon_menu['message'])
[print(f"{num+1}: {value}") for num, value in enumerate(script.dungeon_menu["options"])]
choice = int(input(script.prompt))
return script.dungeon_menu['options'][choice - 1]

def kitchen_menu(self):
print(script.kitchen_menu['message'])
[print(f"{num+1}: {value}") for num, value in enumerate(script.kitchen_menu["options"])]
choice = int(input(script.prompt))
return script.kitchen_menu['options'][choice - 1]


def hall_menu(self):
print(script.hall_menu['message'])
[print(f"{num+1}: {value}") for num, value in enumerate(script.hall_menu["options"])]
choice = int(input(script.prompt))
return script.hall_menu['options'][choice - 1]

def toilet_menu(self):
print(script.toilet_menu['message'])
[print(f"{num+1}: {value}") for num, value in enumerate(script.toilet_menu["options"])]
choice = int(input(script.prompt))
return script.toilet_menu['options'][choice - 1]

def bedroom_menu(self):
print(script.bedroom_menu['message'])
[print(f"{num+1}: {value}") for num, value in enumerate(script.bedroom_menu["options"])]
choice = int(input(script.prompt))
return script.bedroom_menu['options'][choice - 1]



def exit_screen(self):
print(script.exit_screen['message'])

# m = Interface()
# m.kitchen_menu()
8 changes: 7 additions & 1 deletion main.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,10 @@
# Import statements
import ctps


if __name__ == "__main__":
pass
game = ctps.Game()
game.setup()

while not game.isover():
game.get_choice()
24 changes: 24 additions & 0 deletions room.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
import random

class Room:

def __init__(self, name):
self.name = name
self.enemies = []

def get_enemies(self):
return self.enemies

def add_enemy(self, enemy):
self.enemies.append(enemy)


def all_enemies_defeated(self):
# if enemy is deafeated, it is removed from self.enemies
return len(self.enemies) == 0

def get_name(self):
return self.name

def remove_enemy(self):
self.enemies.pop(0)
Loading