forked from TwitchPlaysPokemon/pbrEngine
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmonitor.py
69 lines (62 loc) · 2.71 KB
/
monitor.py
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
'''
Created on 26.09.2015
@author: Felk
'''
import os
from pbrEngine.states import PbrStates, PbrGuis
from pbrEngine import Colosseums
import gevent
class Monitor(object):
def __init__(self, pbr, max_events=5):
self.pbr = pbr
self.max_events = max_events
self.events = []
gevent.spawn(self.loop_reprint)
def loop_reprint(self):
while True:
gevent.sleep(1)
self.reprint()
def addEvent(self, string):
self.events.insert(0, string)
if len(self.events) > self.max_events:
self.events.pop()
self.reprint()
def reprint(self):
#os.system("cls" if os.name == "nt" else "clear")
print("\n")
print(" +-------------------------------------------------+")
speed = sum(self.pbr.timer.speed_plots)/len(self.pbr.timer.speed_plots)
print(" | Speed: %5.1f%% |"
% (100 * speed))
print(" +-------------------------------------------------+")
if self.pbr.colosseum:
print(" | Colosseum: %36s |" % Colosseums(self.pbr.colosseum).name)
print(" | State: %36s |" % PbrStates(self.pbr.state).name)
print(" | Gui: %36s |" % PbrGuis(self.pbr.gui).name)
print(" +------------------------+------------------------+")
lenBlue = len(self.pbr.match.pkmn_blue)
lenRed = len(self.pbr.match.pkmn_red)
for i in range(max(lenBlue, lenRed)):
blue = self.pbr.match.pkmn_blue[i] if i < lenBlue else None
red = self.pbr.match.pkmn_red[i] if i < lenRed else None
print(" | %s %-20s|%20s %s |" % (
("X" if not self.pbr.match.alive_blue[i]
else (">" if i == self.pbr.match.current_blue
else " ")) if blue else " ",
blue["ingamename"] if blue else " ",
red["ingamename"] if red else " ",
("X" if not self.pbr.match.alive_red[i]
else ("<" if i == self.pbr.match.current_red
else " ")) if red else " ",
))
print(" +------------------------+------------------------+")
print(" | Last events (newest on top): |")
print(" | |")
for i in range(self.max_events):
try:
print (" | %-47s |" % (self.events[i][:41]+".."
if len(self.events[i]) > 43
else self.events[i]))
except:
print(" | |")
print(" +-------------------------------------------------+")