-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmod.py
More file actions
68 lines (54 loc) · 1.86 KB
/
Copy pathmod.py
File metadata and controls
68 lines (54 loc) · 1.86 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
class Mod:
def __init__(self, name, rarity, max_rank, tax) -> None:
self.url_name = name
self.rarity = rarity
self.max_rank = int(max_rank)
self.tax = int(tax)
self.bids = []
self.asks = []
def setBid(self, bids):
ff = lambda x : x.online != "offline"
self.bids = sorted(filter(ff, bids), reverse=True)
def setAsk(self, asks):
ff = lambda x : x.online != "offline"
self.asks = sorted(filter(ff, asks))
def calSpread(self):
if not self.bids or not self.asks:
return None
return min([a.value for a in self.asks]) - max([b.value for b in self.bids])
def calCostEndo(self):
value = 0
if self.rarity == "common":
value = 10
elif self.rarity == "uncommon":
value = 20
elif self.rarity == "rare":
value = 30
else:
value = 40
return value * (2**self.max_rank - 1)
def calCostCredits(self):
value = 0
if self.rarity == "common":
value = 483
elif self.rarity == "uncommon":
value = 966
elif self.rarity == "rare":
value = 1449
else:
value = 1932
return value * (2**self.max_rank - 1) + self.tax
def __str__(self):
return f"{self.url_name} {self.rarity} {self.max_rank} {self.tax}"
class Order:
def __init__(self, id, value, mod_rank, online) -> None:
self.id = id
self.value = value
self.mod_rank = mod_rank
self.online = online
def __lt__(self, other) -> bool:
return self.value < other.value
def __eq__(self, other) -> bool:
return self.value == other.value
def isModDict(data:dict) -> bool:
return "mod" in data["items_in_set"][0]["tags"] and "(veiled)" not in data["items_in_set"][0]["url_name"]