-
Notifications
You must be signed in to change notification settings - Fork 13
Expand file tree
/
Copy pathModDB.py
More file actions
68 lines (57 loc) · 1.95 KB
/
ModDB.py
File metadata and controls
68 lines (57 loc) · 1.95 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
#
from Modifiers import Modifier
class ModifierDatabase:
def __init__(self, owner = None):
self.owner = owner
self.clear()
def addEntry(self, entry: Modifier):
name = entry.name
type = entry.type
if name not in self.db.keys():
self.db[name] = dict()
if type not in self.db[name].keys():
self.db[name][type] = [entry]
else:
if not entry in self.db[name][type]:
self.db[name][type].append(entry)
def getBase(self, name: str):
retVal = 0
if name in self.db.keys() and "BASE" in self.db[name].keys():
for entry in self.db[name]["BASE"]:
retVal += entry.getValue(self.owner)
return retVal
return 0
def getFlat(self, name: str):
retVal = 0
if name in self.db.keys() and "FLAT" in self.db[name].keys():
for entry in self.db[name]["FLAT"]:
retVal += entry.getValue(self.owner)
return retVal
return 0
def getInc(self, name: str):
retVal = 0
if name in self.db.keys() and "INC" in self.db[name].keys():
for entry in self.db[name]["INC"]:
retVal += entry.getValue(self.owner)
return retVal
return retVal
def getMore(self, name: str):
retVal = 0
if name in self.db.keys() and "MORE" in self.db[name].keys():
for entry in self.db[name]["MORE"]:
retVal += entry.getValue(self.owner)
return retVal
return retVal
def clear(self):
self.db = dict()
def test():
db = ModifierDatabase()
mod1 = Modifier("Health", "BASE", 12, "", tags = { "type": "Multiplier", "var": "Level" })
mod2 = Modifier("Health", "BASE", 13, "")
db.addEntry(mod1)
db.addEntry(mod2)
import pprint
pprint.pprint(db.db)
print("BASE: " + str(db.getBase("Health")))
if __name__ == "__main__":
test()