Skip to content

Commit edb47db

Browse files
committed
Improve event printing usefulness.
1 parent a9b5342 commit edb47db

File tree

1 file changed

+49
-20
lines changed

1 file changed

+49
-20
lines changed

sc2reader/events.py

Lines changed: 49 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66

77
@loggable
88
class Event(object):
9+
name = 'Event'
10+
911
def __init__(self, frame, pid):
1012
self.pid = pid
1113
self.frame = frame
@@ -18,8 +20,17 @@ def load_context(self, replay):
1820
if self.pid != 16:
1921
self.player = replay.person[self.pid]
2022

23+
def _str_prefix(self):
24+
player_name = self.player.name if getattr(self,'pid', 16)!=16 else "Global"
25+
return "%s\t%-15s " % (Length(seconds=int(self.frame/16)), player_name)
26+
27+
def __str__(self):
28+
return self._str_prefix() + self.name
29+
2130
@loggable
2231
class GameEvent(Event):
32+
name = 'GameEvent'
33+
2334
"""Abstract Event Type, should not be directly instanciated"""
2435
def __init__(self, frame, pid, event_type):
2536
super(GameEvent, self).__init__(frame, pid)
@@ -30,27 +41,24 @@ def __init__(self, frame, pid, event_type):
3041
self.is_init = (event_class == 0)
3142
self.is_player_action = (event_class == 1)
3243
self.is_camera_movement = (event_class == 3)
33-
self.is_unknown = (event_class == 2 or event_class == 4 or event_class == 5)
34-
35-
def _str_prefix(self):
36-
player_name = self.player.name if self.is_local else "Global"
37-
return "%s\t%-15s " % (Length(seconds=int(self.frame/16)), player_name)
38-
39-
def __str__(self):
40-
return self._str_prefix() + self.name
44+
#self.is_unknown = (event_class == 2 or event_class == 4 or event_class == 5)
4145

4246
#############################################3
4347
# Message Events
4448
#########################
4549

4650
@loggable
4751
class MessageEvent(Event):
52+
name = 'MessageEvent'
53+
4854
def __init__(self, frame, pid, flags):
4955
super(MessageEvent, self).__init__(frame, pid)
5056
self.flags=flags
5157

5258
@loggable
5359
class ChatEvent(MessageEvent):
60+
name = 'ChatEvent'
61+
5462
def __init__(self, frame, pid, flags, target, text):
5563
super(ChatEvent, self).__init__(frame, pid, flags)
5664
self.target = target
@@ -61,12 +69,16 @@ def __init__(self, frame, pid, flags, target, text):
6169

6270
@loggable
6371
class PacketEvent(MessageEvent):
72+
name = 'PacketEvent'
73+
6474
def __init__(self, frame, pid, flags, info):
6575
super(PacketEvent, self).__init__(frame, pid, flags)
6676
self.info = info
6777

6878
@loggable
6979
class PingEvent(MessageEvent):
80+
name = 'PingEvent'
81+
7082
def __init__(self, frame, pid, flags, x, y):
7183
super(PingEvent, self).__init__(frame, pid, flags)
7284
self.x, self.y = x, y
@@ -77,20 +89,24 @@ def __init__(self, frame, pid, flags, x, y):
7789
#########################
7890

7991
class UnknownEvent(GameEvent):
80-
pass
92+
name = 'UnknownEvent'
8193

8294
class PlayerJoinEvent(GameEvent):
95+
name = 'PlayerJoinEvent'
96+
8397
def __init__(self, frames, pid, event_type, flags):
8498
super(PlayerJoinEvent, self).__init__(frames, pid, event_type)
8599
self.flags = flags
86100

87101
class GameStartEvent(GameEvent):
88-
pass
102+
name = 'GameStartEvent'
89103

90104
class PlayerLeaveEvent(GameEvent):
91-
pass
105+
name = 'PlayerLeaveEvent'
92106

93107
class CameraEvent(GameEvent):
108+
name = 'CameraEvent'
109+
94110
def __init__(self, frames, pid, event_type, x, y, distance, pitch, yaw, height_offset):
95111
super(CameraEvent, self).__init__(frames, pid, event_type)
96112
self.x, self.y = x, y
@@ -100,13 +116,15 @@ def __init__(self, frames, pid, event_type, x, y, distance, pitch, yaw, height_o
100116
self.height_offset = height_offset
101117

102118
def __str__(self):
103-
return self._str_prefix() + " camera at ({}, {})".format(x,y)
119+
return self._str_prefix() + "{} at ({}, {})".format(self.name, self.x,self.y)
104120

105121
class PlayerActionEvent(GameEvent):
106-
pass
122+
name = 'PlayerActionEvent'
107123

108124
@loggable
109125
class SendResourceEvent(PlayerActionEvent):
126+
name = 'SendResourceEvent'
127+
110128
def __init__(self, frames, pid, event_type, target, minerals, vespene, terrazine, custom):
111129
super(SendResourceEvent, self).__init__(frames, pid, event_type)
112130
self.sender = pid
@@ -126,6 +144,8 @@ def load_context(self, replay):
126144

127145
@loggable
128146
class RequestResourceEvent(PlayerActionEvent):
147+
name = 'RequestResourceEvent'
148+
129149
def __init__(self, frames, pid, event_type, minerals, vespene, terrazine, custom):
130150
super(RequestResourceEvent, self).__init__(frames, pid, event_type)
131151
self.minerals = minerals
@@ -138,6 +158,8 @@ def __str__(self):
138158

139159
@loggable
140160
class AbilityEvent(PlayerActionEvent):
161+
name = 'AbilityEvent'
162+
141163
def __init__(self, frame, pid, event_type, ability):
142164
super(AbilityEvent, self).__init__(frame, pid, event_type)
143165
self.ability_code = ability
@@ -166,13 +188,12 @@ def load_context(self, replay):
166188

167189

168190
def __str__(self):
169-
if not self.ability_code:
170-
return self._str_prefix() + "Move"
171-
else:
172-
return self._str_prefix() + "Ability (%s) - %s" % (hex(self.ability_code), self.ability_name)
191+
return self._str_prefix() + "Ability (%s) - %s" % (hex(self.ability_code), self.ability_name)
173192

174193
@loggable
175194
class TargetAbilityEvent(AbilityEvent):
195+
name = 'TargetAbilityEvent'
196+
176197
def __init__(self, frame, pid, event_type, ability, target, player, team, location):
177198
super(TargetAbilityEvent, self).__init__(frame, pid, event_type, ability)
178199
self.target = None
@@ -234,6 +255,8 @@ def __str__(self):
234255

235256
@loggable
236257
class LocationAbilityEvent(AbilityEvent):
258+
name = 'LocationAbilityEvent'
259+
237260
def __init__(self, frame, pid, event_type, ability, location):
238261
super(LocationAbilityEvent, self).__init__(frame, pid, event_type, ability)
239262
self.location = location
@@ -243,28 +266,34 @@ def __str__(self):
243266

244267
@loggable
245268
class SelfAbilityEvent(AbilityEvent):
269+
name = 'SelfAbilityEvent'
270+
246271
def __init__(self, frame, pid, event_type, ability, info):
247272
super(SelfAbilityEvent, self).__init__(frame, pid, event_type, ability)
248273
self.info = info
249274

250275
@loggable
251276
class HotkeyEvent(PlayerActionEvent):
277+
name = 'HotkeyEvent'
278+
252279
def __init__(self, frame, pid, event_type, hotkey, deselect):
253280
super(HotkeyEvent, self).__init__(frame, pid, event_type)
254281
self.hotkey = hotkey
255282
self.deselect = deselect
256283

257284
class SetToHotkeyEvent(HotkeyEvent):
258-
pass
285+
name = 'SetToHotkeyEvent'
259286

260287
class AddToHotkeyEvent(HotkeyEvent):
261-
pass
288+
name = 'AddToHotkeyEvent'
262289

263290
class GetFromHotkeyEvent(HotkeyEvent):
264-
pass
291+
name = 'GetFromHotkeyEvent'
265292

266293
@loggable
267294
class SelectionEvent(PlayerActionEvent):
295+
name = 'SelectionEvent'
296+
268297
def __init__(self, frame, pid, event_type, bank, objects, deselect):
269298
super(SelectionEvent, self).__init__(frame, pid, event_type)
270299
self.bank = bank

0 commit comments

Comments
 (0)