-
Notifications
You must be signed in to change notification settings - Fork 0
/
stats.py
119 lines (99 loc) · 3.81 KB
/
stats.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
import main
import asciiart
from const import *
from helpers import clear_screen
from termcolor import colored
import shutil
player_score = 0
monsters_kill = 0
small_monster_hp = ENEMIES["small"]["HP"]
small_monster_dmg = ENEMIES["small"]["DMG"]
large_monster_hp = ENEMIES["big"]["HP"]
large_monster_dmg = ENEMIES["big"]["DMG"]
boss_monster_hp = ENEMIES["boss"]["HP"]
boss_monster_dmg = ENEMIES["boss"]["DMG"]
def create_player(PLAYER_START_X, PLAYER_START_Y, PLAYER_ICON):
'''
Creates a 'player' dictionary for storing all player related informations - i.e. player icon, player position.
Fell free to extend this dictionary!
Returns:
dictionary
'''
player = {
"x": PLAYER_START_X,
"y": PLAYER_START_Y,
"icon": PLAYER_ICON,
"height": 3,
"width": 5, # body + 2 arms, emojis are wider than single character
"HP": 9,
"MP": 10,
"lvl": 1,
"experience": 0,
"max_experience": 100, # Exp needed to lvl up
"intelligence": 1, # Stat making spells and potions deal/heal more
"strength": 1, # Stat increasing attack dmg
"endurance": 1, # Stat increasing max carry and max hp
"charisma": 1, # Make it possible to get bonuses from events
"max_hp": 10,
"max_player_carry": 10, # Maximum carrying size
"attack": 5 # Dmg Player deal to enemies
}
return player
# OBSELETE FUNCTION
def display_basic_stats(player):
print("\tHP =", player["HP"], "/", player["max_hp"], "| MP =", player["MP"],
"|", "Experience =", player["experience"], "/", player["max_experience"], "|",
"Level =", player["lvl"])
def display_advenced_stats(player):
print("intelligence =", player["intelligence"], "Strength =", player["strength"],
"Endurance =", player["endurance"], "Charisma =", player["charisma"],
"Max inventory size =", player["max_player_carry"],
"Attack Damage =", player["attack"],)
input("Press enter")
def level_up(player):
global player_score
if player["experience"] >= player["max_experience"]:
# If more then needed experience to lvl up experience converted to
# another lvl progress:
experience_remainder = player["experience"] - player["max_experience"]
player["max_experience"] += 25
player["experience"] = 0 + experience_remainder
player["lvl"] += 1
player["intelligence"] += 2
player["strength"] += 2
player["endurance"] += 2
player["charisma"] += 2
player["max_hp"] += player["endurance"]
player["max_player_carry"] += player["endurance"]
player["attack"] = player["strength"]
player_score += 200
def small_taking_dmg(player): # Dmg small monster deal to Player
player["HP"] -= small_monster_dmg
print("Player took dmg -" + str(small_monster_dmg) + "HP")
if player["HP"] <= 0:
clear_screen()
game_over()
input()
raise SystemExit
def large_taking_dmg(player): # Dmg large monster deal to Player
player["HP"] -= large_monster_dmg
print("Player took dmg -" + str(large_monster_dmg) + "HP")
if player["HP"] <= 0:
clear_screen()
game_over()
input()
raise SystemExit
def boss_taking_dmg(player): # Dmg Boss deal to Player
player["HP"] -= boss_monster_dmg
print("Player took dmg -" + str(boss_monster_dmg) + "HP")
if player["HP"] <= 0:
game_over()
raise SystemExit
def game_over():
# print(colored(asciiart.game_over, 'red', attrs=[]))
empty_space = 5 * "\n"
clear_screen()
print(empty_space)
for pictureLine in asciiart.game_over.splitlines():
print(colored(pictureLine.center(shutil.get_terminal_size().columns),'red', attrs=["bold"]))
print("\n\tDo you want to play again?")