1
1
import random
2
2
3
3
4
- class Wizard :
4
+ class Creature :
5
5
6
6
def __init__ (self , name , the_level ):
7
7
self .name = name
8
- self .level = the_level
8
+ self .level = the_level
9
+
10
+ def __repr__ (self ):
11
+ return f"Creature { self .name } of level { self .level } "
12
+
13
+ def get_defensive_roll (self ):
14
+ return random .randint (1 , 12 ) * self .level
15
+
16
+
17
+ class Wizard (Creature ):
18
+
19
+ def __init__ (self , name , the_level ):
20
+ super ().__init__ (name , the_level )
21
+
9
22
10
23
def attack (self , creature ):
11
24
print (f'The wizard { self .name } attacks { creature .name } !' )
12
25
13
- my_roll = random .randint (1 , 12 ) * self .level
14
- creature_roll = random .randint (1 , 12 ) * self .level
26
+ #my_roll = random.randint(1, 12) * self.level
27
+ my_roll = creature .get_defensive_roll ()
28
+ # creature_roll = random.randint(1, 12) * self.level
29
+ creature_roll = creature .get_defensive_roll ()
15
30
16
31
print (f'You roll { my_roll } ' )
17
32
print (f'{ creature .name } rolls { creature_roll } ' )
@@ -25,19 +40,27 @@ def attack(self, creature):
25
40
print ()
26
41
27
42
43
+ class SmallAnimal (Creature ):
28
44
29
- class Creature :
30
- # level
31
- # name
45
+ def get_defensive_roll (self ):
46
+ base_roll = super ().get_defensive_roll ()
47
+ return base_roll / 2
48
+
49
+ class Dragon (Creature ):
50
+
51
+ def __init__ (self , name , level , scaliness , breathes_fire ):
52
+ super ().__init__ (name , level )
53
+ self .breathes_fire = breathes_fire
54
+ self .scaliness = scaliness
55
+
56
+ def get_defensive_roll (self ):
57
+ base_roll = super ().get_defensive_roll ()
58
+ fire_modifier = 5 if self .breathes_fire else 1
59
+ scale_modifier = self .scaliness / 10
60
+
61
+ return base_roll * fire_modifier * scale_modifier
32
62
33
- # need to generate instance attributes or instance variables
34
63
35
- # add a magic method as
36
64
37
- def __init__ (self , name , the_level ):
38
- self .name = name
39
- self .level = the_level
40
65
41
- def __repr__ (self ):
42
- return f"Creature { self .name } of level { self .level } "
43
66
0 commit comments