-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathQuest.py
More file actions
63 lines (41 loc) · 1.56 KB
/
Copy pathQuest.py
File metadata and controls
63 lines (41 loc) · 1.56 KB
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
class Quest:
def __init__(self, title, target_enemy, required_kills, reward_gold, repeatable):
self.title = title
self.target_enemy = target_enemy
self.required_kills = required_kills
self.current_kills = 0
self.reward_gold = reward_gold
self.completed = False
self.reward_claimed = False
self.repeatable = repeatable
def update_progress(self, enemy_name):
if enemy_name.lower().strip() != self.target_enemy.lower().strip():
return
self.current_kills += 1
if self.current_kills >= self.required_kills:
self.completed = True
def claim_reward(self, player):
if not self.completed:
print("Quest is not completed yet!")
return
if self.reward_claimed:
print("Reward already claimed!")
return
player.earn_gold(self.reward_gold)
print(f"You claimed {self.reward_gold} Gold!")
if self.repeatable:
self.current_kills -= self.required_kills
self.completed = self.current_kills >= self.required_kills
else:
self.reward_claimed = True
def __str__(self):
status = "Completed" if self.completed else "In Progress"
repeat = "Repeatable" if self.repeatable else "One-time"
return (
f"Quest: {self.title} | "
f"Target: {self.target_enemy} | "
f"Progress: {self.current_kills}/{self.required_kills} | "
f"Reward: {self.reward_gold} Gold | "
f"Status: {status} | "
f"Type: {repeat}"
)