-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathcharacter.py
49 lines (39 loc) · 1.59 KB
/
character.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
import random
from map import Map
from item import *
class Character:
level = 1
level_up_experience = 3
experience = 0
hit_points = 10
max_hit_points = 10
heal_rate = 1
def __init__(self, **kwargs):
self.weapon = Weapon(0, 5, "stick")
self.armor = Armor(1, "robes")
for key, value in kwargs.items():
setattr(self, key, value)
def display_stats(self):
print("Player stats: \n Level: {}, Experience: {}, {}".format(self.level, self.experience, self.max_hit_points))
def __str__(self):
return "Player"
def show_stats(self):
print("Player Level: {}\nExperience: {}\nHealth: {}\nHeal Rate: {}\nArmor: {}\nWeapon: {}".format(self.level, self.experience, self.hit_points, self.heal_rate, self.armor, self.weapon))
def level_up(self):
if self.experience >= self.level_up_experience:
constant = 0.335 - (self.level * 0.005)
self.level_up_experience = round((self.level / constant) * (self.level / constant))
self.max_hit_points += 4
self.level += 1
if self.level % 3 == 0:
self.heal_rate += 1
print("You leveled up to level {}.Next level requires {} experience".format(self.level, self.level_up_experience))
def set_weapon(self, weapon):
self.weapon = weapon
def set_armor(self, armor):
self.armor = armor
def heal(self):
if self.hit_points < self.max_hit_points:
self.hit_points += self.heal_rate
while self.hit_points > self.max_hit_points:
self.hit_points -= 1