forked from crawsome/PyRPG_Mini
-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathWeapon.py
More file actions
130 lines (107 loc) · 4.08 KB
/
Weapon.py
File metadata and controls
130 lines (107 loc) · 4.08 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
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
120
121
122
123
124
125
126
127
128
129
130
from texttools import *
import random
class Weapon:
# level,class,name,type,baseattack,durability,power
def __init__(self, weaponlevel, weaponclass, weaponname, weapontype, weaponbaseatk, weapondur, weaponpower, weaponquipped):
# Weapon level
self.level = weaponlevel
# Weapon hero class type
self.ourclass = weaponclass
# Weapon type
self.type = weapontype
# Weapon Name
self.name = weaponname
# equipped
self.isEquipped = weaponquipped
# Weapon Quality (rusty, common, great, magical, legendary)
chance = random.randint(1, 100)
if chance < 20:
self.quality = 'Rusty'
elif chance >= 21 or chance < 65:
self.quality = 'Common'
elif chance >= 66 or chance < 86:
self.quality = 'Great'
elif chance >= 85 or chance < 96:
self.quality = 'Magical'
elif chance >= 96 or chance < 100:
self.quality = 'Legendary'
# Weapon atk
self.baseatk = weaponbaseatk
if self.quality == 'Rusty':
self.baseatk = int(self.baseatk * 0.9)
elif self.quality == 'Common':
self.baseatk = int(self.baseatk * 1)
elif self.quality == 'Great':
self.baseatk = int(self.baseatk * 1.25)
elif self.quality == 'Magical':
self.baseatk = int(self.baseatk * 1.6)
elif self.quality == 'Legendary':
self.baseatk = int(self.baseatk * 2)
self.atk = self.baseatk
# Weapon durability
self.maxdur = weapondur
self.dur = self.maxdur
# Weapon Power (Not implemented yet)
self.power = weaponpower
# set equip status
def setIsEquipped(self, weaponequipped):
"""
Sets Weapon equip status, True/False.
@param weaponequipped Set Weapon equipped to True/False.
"""
self.isEquipped = weaponequipped
# get equip status
def getIsEquipped(self):
"""
Get Weapon equip status, True/False.
@return True/False whether current Weapon is equipped.
"""
return self.isEquipped
# damage durability, and check to see if broken
def damagedur(self, aug, curve):
self.dur -= int(aug * curve * .1)
self.isbroken()
pass
# restore dur by integer and check to see if fixed
def restoredur(self, aug):
self.dur += aug
if not self.isbroken():
self.dur = self.maxdur
self.atk = self.baseatk
# restore dur entirely
def repair(self):
self.atk = self.baseatk
self.dur = self.maxdur
# this breaks the gear
def gearbreak(self):
self.atk = int(self.baseatk * .3)
# 15% durability = stat reduction
def isbroken(self):
if self.dur <= 0:
self.gearbreak()
return True
elif self.dur >= self.maxdur * .15:
return False
# prints all weapon stats
def printweaponinfo(self):
marqueeprint('WEAPON')
print(lr_justify('Level:', str(self.level), 70))
print(lr_justify('Class:', str(self.ourclass), 70))
print(lr_justify('Name:', str(self.name), 70))
print(lr_justify('Type:', str(self.type), 70))
print(lr_justify('Atk:', str(self.atk) + '/' + str(self.baseatk), 70))
print(lr_justify('Dur:', str(self.dur) + '/' + str(self.maxdur), 70))
print(lr_justify('Broken?:', str(self.isbroken()), 70))
print(lr_justify('Power:', str(self.power), 70))
print(lr_justify('Quality:', str(self.quality), 70))
# ['Level', 'Name', 'Type', 'Atk', 'Dur', 'Broken?', 'Power']
def datadict(self):
return {'Level': str(self.level),
'Name': (str(self.name) + ' ' + str(self.type)),
'Atk': str(self.atk),
'Dur': (str(self.dur) + '/' + str(self.maxdur)),
'Broken?': str(self.isbroken()),
'Repair Cost': str(self.maxdur - self.dur) + ' gold',
'Power': str(self.power),
'Quality': str(self.quality)
}