code: def parse_game_event(self, ge):
          
  
          if ge.name == "dota_combatlog":
              if ge.keys["type"] == 4:
                  #Something died
                  try:
                      source = self.dp.combat_log_names.get(ge.keys["sourcename"],
                                                            "unknown")
                      target = self.dp.combat_log_names.get(ge.keys["targetname"],
                                                            "unknown")
                      target_illusion = ge.keys["targetillusion"]
                      timestamp = ge.keys["timestamp"]
  
                      if (target.startswith("npc_dota_hero") and not
                          target_illusion):
  
                          self.kills.append({
                              "target": target,
                              "source": source,
                              "timestamp": timestamp,
                              "tick": self.tick,
                              })
  
                      elif source.startswith("npc_dota_hero"):
                          self.heroes[source].creep_kill(target, timestamp)
                  except KeyError:
                      """
                      Sometimes we get combat logs for things we dont have in
                      combat_log_names. My theory is that the server sends
                      us incremental updates to the string table using
                      CSVCMsg_UpdateStringTable but I'm not sure how to parse
                      that
                      """
                      pass
docs: Game events contain the combat log as well as 'chase_hero' events which
          could be interesting