Skip to content

Commit 794115b

Browse files
committed
Merges in grom's event.__str__ patches.
Somewhere along the line these got lost. Now they've been found so check them out:: import sc2reader replay = sc2reader.read_file('test_replays/1.3.0.18092/qxc_vs_PredY_9852.SC2Replay') for event in replay.events: print event Cool huh? I think it was an emulation of the sc2gears output at the time.
1 parent d93020a commit 794115b

File tree

1 file changed

+42
-0
lines changed

1 file changed

+42
-0
lines changed

sc2reader/objects.py

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -278,6 +278,13 @@ def __init__(self, timestamp, player_id, event_type, event_code):
278278
self.is_camera_movement = (event_type == 0x03)
279279
self.is_unknown = (event_type == 0x02 or event_type == 0x04 or event_type == 0x05)
280280

281+
def _str_prefix(self):
282+
player_name = self.player.name if self.is_local else "Global"
283+
return "%d\t%-15s " % (self.frame, player_name)
284+
285+
def __str__(self):
286+
return self._str_prefix() + self.name
287+
281288
class UnknownEvent(Event):
282289
name = 'UnknownEvent'
283290

@@ -302,6 +309,9 @@ def __init__(self, frames, pid, type, code, target, minerals, vespene):
302309
self.minerals = minerals
303310
self.vespene = vespene
304311

312+
def __str__(self):
313+
return self._str_prefix() + "%s transfer %d minerals and %d gas to %s" % (self.sender, self.minerals, self.vespene, self.reciever)
314+
305315
class AbilityEvent(Event):
306316
name = 'AbilityEvent'
307317
def __init__(self, framestamp, player, type, code, ability):
@@ -330,6 +340,12 @@ def apply(self):
330340
def get_able_selection(self, ability):
331341
return [obj for obj in self.player.get_selection().current if hasattr(obj, ability)]
332342

343+
def __str__(self):
344+
if not self.ability:
345+
return self._str_prefix() + "Move"
346+
ability_name = ABILITIES[self.ability] if self.ability in ABILITIES else "UNKNOWN"
347+
return self._str_prefix() + "Ability (%s) - %s" % (hex(self.ability), ability_name)
348+
333349
class TargetAbilityEvent(AbilityEvent):
334350
name = 'TargetAbilityEvent'
335351
def __init__(self, framestamp, player, type, code, ability, target):
@@ -363,12 +379,19 @@ def apply(self):
363379
pass
364380
super(TargetAbilityEvent, self).apply()
365381

382+
def __str__(self):
383+
target = str(self.target) if self.target else "NONE"
384+
return AbilityEvent.__str__(self) + "; Target: %s" % target
385+
366386
class LocationAbilityEvent(AbilityEvent):
367387
name = 'LocationAbilityEvent'
368388
def __init__(self, framestamp, player, type, code, ability, location):
369389
super(LocationAbilityEvent, self).__init__(framestamp, player, type, code, ability)
370390
self.location = location
371391

392+
def __str__(self):
393+
return AbilityEvent.__str__(self) + "; Location: %s" % str(self.location)
394+
372395
class UnknownAbilityEvent(AbilityEvent):
373396
name = 'UnknownAbilityEvent'
374397
pass
@@ -384,17 +407,24 @@ def __init__(self, framestamp, player, type, code, hotkey, overlay=None):
384407
self.hotkey = hotkey
385408
self.overlay = overlay
386409

410+
def __str__(self):
411+
return self._str_prefix() + "Hotkey #%d" % self.hotkey
412+
387413
class SetToHotkeyEvent(HotkeyEvent):
388414
name = 'SetToHotkeyEvent'
389415
def apply(self):
390416
hotkey = self.player.get_hotkey(self.hotkey)
391417
selection = self.player.get_selection()
392418
hotkey[self.frame] = selection.current
419+
self.selected = selection.current
393420

394421
# They are alive!
395422
for obj in selection[self.frame]:
396423
obj.visit(self.frame, self.player)
397424

425+
def __str__(self):
426+
return HotkeyEvent.__str__(self) + " - Set; Selection: %s" % str(self.selected)
427+
398428
class AddToHotkeyEvent(HotkeyEvent):
399429
name = 'AddToHotkeyEvent'
400430
def apply(self):
@@ -408,11 +438,15 @@ def apply(self):
408438
hotkeyed.extend(self.player.get_selection()[self.frame])
409439
hotkeyed = list(set(hotkeyed)) # remove dups
410440
hotkey[self.frame] = hotkeyed
441+
self.selected = hotkeyed
411442

412443
# They are alive!
413444
for obj in hotkeyed:
414445
obj.visit(self.frame, self.player)
415446

447+
def __str__(self):
448+
return HotkeyEvent.__str__(self) + " - Add; Seletion: %s" % str(self.selected)
449+
416450
class GetHotkeyEvent(HotkeyEvent):
417451
name = 'GetHotkeyEvent'
418452
def apply(self):
@@ -424,11 +458,15 @@ def apply(self):
424458

425459
selection = self.player.get_selection()
426460
selection[self.frame] = hotkeyed
461+
self.selected = hotkeyed
427462

428463
# selection is alive!
429464
for obj in hotkeyed:
430465
obj.visit(self.frame, self.player)
431466

467+
def __str__(self):
468+
return HotkeyEvent.__str__(self) + " - Get; Seletion: %s" % str(self.selected)
469+
432470
class SelectionEvent(Event):
433471
name = 'SelectionEvent'
434472

@@ -464,3 +502,7 @@ def apply(self):
464502
pass
465503

466504
selection[self.frame] = selected
505+
self.selected = selected
506+
507+
def __str__(self):
508+
return self._str_prefix() + "Selection: " + str(self.selected)

0 commit comments

Comments
 (0)