Announcement

Collapse

Forum Rules

  • No flaming or derogatory remarks, directly or through insinuation.
  • No discussion, sharing or referencing illegal software such as hacks, keygen, cracks and pirated software.
  • No offensive contents, including but not limited to, racism, gore or pornography.
  • No excessive spam/meme, i.e. copious one liners in a short period of time, typing with all caps or posting meme responses (text/image).
  • No trolling, including but not limited to, flame incitation, user provocation or false information distribution.
  • No link spamming or signature advertisements for content not specific to Dota 2.
  • No Dota 2 key requests, sell, trade etc.
  • You may not create multiple accounts for any purpose, including ban evasion, unless expressly permitted by a moderator.

  • Please search before posting. One thread per issue. Do not create another thread if there is an existing one already.
  • Before posting anything, make sure you check out all sticky threads (e.g., this). Do not create new threads about closed ones.
  • It is extremely important that you post in correct forum section.

  • Balance discussion only in Misc.
  • All art related (such as hero model) feedbacks go to Art Feedback Forum.
  • All matchmaking feedback should go here: Matchmaking Feedback
  • All report/low priority issues should go here: Commend/Report/Ban Feedback
  • No specific workshop item feedback. These should go to workshop page of that item.
  • When posting in non-bugs section (such as this), use [Bugs], [Discussion] or [Suggestion] prefix in your thread name.



In case you object some action by a moderator, please contact him directly through PM and explain your concerns politely. If you are still unable to resolve the issue, contact an administrator. Do not drag these issues in public.



All rules are meant to augment common sense, please use them when not conflicted with aforementioned policies.
See more
See less

CMsgBotWorldState, Protobufs, and You

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • CMsgBotWorldState, Protobufs, and You

    So I started playing around today with the capability to dump world state to a specific port through a serialized TCP connection in protobuf format.

    Go into your Steam Library, right click on Dota 2 -> Properties, click on SET LAUNCH OPTIONS, and make sure you have specified:
    Code:
    -novid -console -condebug -botworldstatetosocket_dire 12121 -botworldstatetosocket_frames 15
    The 12121 specifies the port (for DIRE side), you can change if you wish (to a different PORT or to modify for RADIANT), the 15 specifies every how many frames the data is updated, you can change to your desire. The other things are optional, but you probably want them.

    Example code to retrieve this information from a running bot game (will only pull one world state protobuf frame and then exit):
    Code:
    import socket
    from struct import *
    
    HOST = '127.0.0.1'  # The remote host
    PORT = 12121        # The same port as used by the server
    with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
        s.connect((HOST, PORT))
    
        f = open('tmp.bin', 'bw')
    
        i=0
        while i < 1:
            binSize = s.recv(4)
            print(binSize)
    
            if binSize:
                protoSize = unpack("<I", binSize)
                print("protoSize: %d" % (protoSize[0]))
    
                binData = s.recv(protoSize[0])
                f.write(binData)
                i += 1
    
        print("Closing Socket")
    
        f.close()
        s.close()
    Example code to load the stored protobuf frame:
    You will need the protobuf mapped python file attached (will need to be updated if the .proto changes). You can auto-generate this file yourself using the protobuf compiler (known as: "protoc") available from Google. I attached the generated result below in case you don't know what to do or are lazy. Just change the extension of the file from .py.txt to .py before using.
    CMsgBotWorldState_pb2.py.txt UPDATED: 09/20/2017 - 9:52pm EDT

    Code:
    import CMsgBotWorldState_pb2 as pb
    f = open('tmp.bin', 'rb')
    worldState = pb.CMsgBotWorldState()
    worldState.ParseFromString(f.read())
    f.close()
    print(worldState)
    CURRENT ISSUES:
    1) Game crashes when socket connection is closed after an initial connect

    2) FIXED - last_hit and gold values are confused - apparently there was an updated protobuf structure and I wasn't using it (added reliable and unreliable gold)

    3) All handle and caster_handle values seem to be 0... this seems to be a bug

    SUGGESTIONS:
    * Add an ENUM for TEAM_ID to .proto
    * Add an ENUM for PRIMARY_ATTRIBUTE to .proto
    * Add an ENUM for RUNE_TYPE to .proto
    * Add an ENUM for RUNE_STATUS to .proto
    * Add an ENUM for ACTION_TYPE to .proto (of Bots)
    * Add ability_name to Ability proto (affects Items too)
    * Add physical_resist to Unit proto (we have armor and magic_resist currently... not sure if armor is currently valuable information or not)
    * Add "optional CourierState courier_state = 141;" to .proto and add an ENUM for CourierState
    * Add an ENUM for game_state to .proto
    * Add an ENUM for hero_pick_state to .proto
    * Add net worth information to players

    DREAM SUGGESTIONS:
    * Make this possible during watching replay matches
    * Valve maintained repository of pre-dumped world state serialized proto files from all tournaments

    QUESTIONS:
    1) game_time is what? RealTime(), GameTime() or DotaTime()?
    Answer: as of the new protobuf structure there is now a game_time and a dota_time they correspond to the API of GameTime() and DotaTime() respectively.

    2) Depending on answer to #1, what happens during a Pause?
    Answer: we keep getting new protobuf structure every N frames (as specified by our launch options) but we can use dota_time to detect no time has passed and there we are paused.
    Last edited by nostrademous; 09-21-2017, 06:46 AM.

  • #2
    @ChrisC - another possible bug - why is attacker_player_id -1 and no handle provided?

    Code:
    damage_events {
      damage: 13
      victim_player_id: 6
      attacker_player_id: 4294967295
      attacker_unit_handle: 0
    }

    Comment


    • #3
      At least the gold thing is due to not using the latest protobuf definition -- I made a thread that I'll keep up to date so we don't run into sync issues:
      http://dev.dota2.com/showthread.php?...67#post1437167

      Comment


      • #4
        For that attacker_player_id -1 thing....the only thing I can think of is being hit by a creep that's in the fog, so you don't have a unit handle for it and it's not owned by a player?

        Comment


        • #5
          Originally posted by ChrisC View Post
          For that attacker_player_id -1 thing....the only thing I can think of is being hit by a creep that's in the fog, so you don't have a unit handle for it and it's not owned by a player?
          Chris - the "handles" in every single data variable are always 0.

          Below is a full protobuf dump of a single frame using your latest proto buf definitions. Search for the word "handle" and see how every single handle is 0.
          Code:
          team_id: 3
          game_time: 3970
          dota_time: 3874.471923828125
          game_state: 5
          hero_pick_state: 1
          time_of_day: 0.29594874382019043
          glyph_cooldown: 3887.632568359375
          glyph_cooldown_enemy: 2283
          players {
            player_id: 0
            hero_id: 22
            is_alive: true
            respawn_time: 49.0
            kills: 32
            deaths: 9
            assists: 38
          }
          players {
            player_id: 1
            hero_id: 43
            is_alive: false
            respawn_time: 99.0
            kills: 22
            deaths: 15
            assists: 29
          }
          players {
            player_id: 2
            hero_id: 48
            is_alive: false
            respawn_time: 99.0
            kills: 12
            deaths: 18
            assists: 34
          }
          players {
            player_id: 3
            hero_id: 75
            is_alive: true
            respawn_time: 99.0
            kills: 21
            deaths: 12
            assists: 33
          }
          players {
            player_id: 4
            hero_id: 50
            is_alive: false
            respawn_time: 89.0
            kills: 4
            deaths: 23
            assists: 39
          }
          players {
            player_id: 5
            hero_id: 19
            is_alive: false
            respawn_time: 99.0
            kills: 9
            deaths: 19
            assists: 30
          }
          players {
            player_id: 6
            hero_id: 44
            is_alive: true
            respawn_time: 99.0
            kills: 15
            deaths: 19
            assists: 38
          }
          players {
            player_id: 7
            hero_id: 57
            is_alive: true
            respawn_time: 99.0
            kills: 4
            deaths: 15
            assists: 33
          }
          players {
            player_id: 8
            hero_id: 111
            is_alive: true
            respawn_time: 99.0
            kills: 14
            deaths: 13
            assists: 36
          }
          players {
            player_id: 9
            hero_id: 15
            is_alive: true
            respawn_time: 99.0
            kills: 17
            deaths: 15
            assists: 44
          }
          units {
            handle: 0
            unit_type: HERO
            name: "npc_dota_hero_oracle"
            team_id: 3
            level: 25
            location {
              x: 6558
              y: 5798
              z: 419
            }
            is_alive: true
            bounding_radius: 24
            facing: 280
            ground_height: 419
            vision_range_daytime: 1800
            vision_range_nighttime: 800
            health: 1975
            health_max: 1975
            health_regen: 14.847999572753906
            mana: 1822
            mana_max: 2029
            mana_regen: 0.009999999776482582
            base_movement_speed: 305
            current_movement_speed: 355
            anim_activity: 1511
            anim_cycle: 0.2143206000328064
            base_damage: 158
            base_damage_variance: 3
            bonus_damage: 0
            attack_damage: 158
            attack_range: 620
            attack_speed: 1
            attack_anim_point: 0.30000001192092896
            attack_acquisition_range: 800
            attack_projectile_speed: 900
            bounty_xp: 2200
            bounty_gold_min: 0
            bounty_gold_max: 0
            is_channeling: false
            is_attack_immune: false
            is_blind: false
            is_block_disabled: false
            is_disarmed: false
            is_evade_disabled: false
            is_hexed: false
            is_invisible: false
            is_invulnerable: false
            is_magic_immune: false
            is_muted: false
            is_nightmared: false
            is_rooted: false
            is_silenced: false
            is_specially_deniable: false
            is_stunned: false
            is_unable_to_miss: false
            has_scepter: true
            abilities {
              handle: 0
              ability_id: 5637
              slot: 0
              caster_handle: 0
              level: 4
              cast_range: 850
              channel_time: 2.5
              cooldown_remaining: 0.0
              is_activated: true
              is_toggled: false
              is_in_ability_phase: false
              is_channeling: false
              is_stolen: false
            }
            abilities {
              handle: 0
              ability_id: 5638
              slot: 1
              caster_handle: 0
              level: 4
              cast_range: 800
              channel_time: 0.0
              cooldown_remaining: 6.900000095367432
              is_activated: true
              is_toggled: false
              is_in_ability_phase: false
              is_channeling: false
              is_stolen: false
            }
            abilities {
              handle: 0
              ability_id: 5639
              slot: 2
              caster_handle: 0
              level: 4
              cast_range: 850
              channel_time: 0.0
              cooldown_remaining: 0.0
              is_activated: true
              is_toggled: false
              is_in_ability_phase: false
              is_channeling: false
              is_stolen: false
            }
            abilities {
              handle: 0
              ability_id: 5640
              slot: 3
              caster_handle: 0
              level: 3
              cast_range: 1000
              channel_time: 0.0
              cooldown_remaining: 0.0
              is_activated: true
              is_toggled: false
              is_in_ability_phase: false
              is_channeling: false
              is_stolen: false
            }
            abilities {
              handle: 0
              ability_id: 6540
              slot: 9
              caster_handle: 0
              level: 0
              cast_range: 0
              channel_time: 0.0
              cooldown_remaining: 0.0
              is_activated: true
              is_toggled: false
              is_in_ability_phase: false
              is_channeling: false
              is_stolen: false
            }
            items {
              handle: 0
              ability_id: 102
              slot: 0
              caster_handle: 0
              level: 1
              cast_range: 750
              channel_time: 0.0
              cooldown_remaining: 0.0
              is_activated: true
              is_toggled: false
              is_in_ability_phase: false
              is_channeling: false
              is_stolen: false
              charges: 0
              secondary_charges: 0
              is_combined_locked: false
            }
            items {
              handle: 0
              ability_id: 108
              slot: 1
              caster_handle: 0
              level: 1
              cast_range: 600
              channel_time: 0.0
              cooldown_remaining: 0.0
              is_activated: true
              is_toggled: false
              is_in_ability_phase: false
              is_channeling: false
              is_stolen: false
              charges: 0
              secondary_charges: 0
              is_combined_locked: false
            }
            items {
              handle: 0
              ability_id: 180
              slot: 2
              caster_handle: 0
              level: 1
              cast_range: 900
              channel_time: 0.0
              cooldown_remaining: 48.10010528564453
              is_activated: true
              is_toggled: false
              is_in_ability_phase: false
              is_channeling: false
              is_stolen: false
              charges: 0
              secondary_charges: 0
              is_combined_locked: false
            }
            items {
              handle: 0
              ability_id: 188
              slot: 3
              caster_handle: 0
              level: 1
              cast_range: 1200
              channel_time: 0.0
              cooldown_remaining: 0.0
              is_activated: true
              is_toggled: false
              is_in_ability_phase: false
              is_channeling: false
              is_stolen: false
              charges: 1
              secondary_charges: 0
              is_combined_locked: false
            }
            items {
              handle: 0
              ability_id: 58
              slot: 4
              caster_handle: 0
              level: 1
              cast_range: 0
              channel_time: 0.0
              cooldown_remaining: 0.0
              is_activated: true
              is_toggled: false
              is_in_ability_phase: false
              is_channeling: false
              is_stolen: false
              charges: 0
              secondary_charges: 0
              is_combined_locked: false
            }
            items {
              handle: 0
              ability_id: 254
              slot: 5
              caster_handle: 0
              level: 1
              cast_range: 800
              channel_time: 0.0
              cooldown_remaining: 0.0
              is_activated: true
              is_toggled: false
              is_in_ability_phase: false
              is_channeling: false
              is_stolen: false
              charges: 0
              secondary_charges: 0
              is_combined_locked: false
            }
            items {
              handle: 0
              ability_id: 244
              slot: 6
              caster_handle: 0
              level: 1
              cast_range: 0
              channel_time: 0.0
              cooldown_remaining: 0.0
              is_activated: true
              is_toggled: false
              is_in_ability_phase: false
              is_channeling: false
              is_stolen: false
              charges: 0
              secondary_charges: 0
              is_combined_locked: false
            }
            items {
              handle: 0
              ability_id: 46
              slot: 7
              caster_handle: 0
              level: 1
              cast_range: 0
              channel_time: 3.0
              cooldown_remaining: 0.0
              is_activated: true
              is_toggled: false
              is_in_ability_phase: false
              is_channeling: false
              is_stolen: false
              charges: 3
              secondary_charges: 0
              is_combined_locked: false
            }
            modifiers {
              name: "modifier_item_guardian_greaves_aura"
              stack_count: 0
              ability_handle: 0
              ability_id: 231
              remaining_duration: 0.466552734375
            }
            action_type: 4
            primary_attribute: 2
            is_illusion: false
            respawn_time: 99
            buyback_cost: 2005
            buyback_cooldown: 4178
            spell_amplifiction: 0.09971431642770767
            armor: 11
            magic_resist: 0
            evasion: 0.0
            xp_needed_to_level: 4294939756
            ability_points: 0
            reliable_gold: 368
            unreliable_gold: 333
            last_hits: 77
            denies: 11
          }
          units {
            handle: 0
            unit_type: HERO
            name: "npc_dota_hero_razor"
            team_id: 3
            level: 25
            location {
              x: 6571
              y: 5727
              z: 390
            }
            is_alive: true
            bounding_radius: 24
            facing: 267
            ground_height: 390
            vision_range_daytime: 1800
            vision_range_nighttime: 800
            health: 1904
            health_max: 2855
            health_regen: 17.463998794555664
            mana: 1298
            mana_max: 1328
            mana_regen: 0.009999999776482582
            base_movement_speed: 295
            current_movement_speed: 448
            anim_activity: 1503
            anim_cycle: 0.47028160095214844
            base_damage: 150
            base_damage_variance: 1
            bonus_damage: 40
            attack_damage: 190
            attack_range: 615
            attack_speed: 2
            attack_anim_point: 0.30000001192092896
            attack_acquisition_range: 800
            attack_projectile_speed: 2000
            attack_target_handle: 0
            bounty_xp: 2200
            bounty_gold_min: 0
            bounty_gold_max: 0
            is_channeling: false
            is_attack_immune: false
            is_blind: false
            is_block_disabled: false
            is_disarmed: true
            is_evade_disabled: false
            is_hexed: false
            is_invisible: false
            is_invulnerable: false
            is_magic_immune: false
            is_muted: false
            is_nightmared: false
            is_rooted: false
            is_silenced: false
            is_specially_deniable: false
            is_stunned: false
            is_unable_to_miss: false
            has_scepter: true
            abilities {
              handle: 0
              ability_id: 5082
              slot: 0
              caster_handle: 0
              level: 4
              cast_range: 0
              channel_time: 0.0
              cooldown_remaining: 6.599978923797607
              is_activated: true
              is_toggled: false
              is_in_ability_phase: false
              is_channeling: false
              is_stolen: false
            }
            abilities {
              handle: 0
              ability_id: 5083
              slot: 1
              caster_handle: 0
              level: 4
              cast_range: 600
              channel_time: 0.0
              cooldown_remaining: 0.0
              is_activated: true
              is_toggled: false
              is_in_ability_phase: false
              is_channeling: false
              is_stolen: false
            }
            abilities {
              handle: 0
              ability_id: 5084
              slot: 2
              caster_handle: 0
              level: 4
              cast_range: 0
              channel_time: 0.0
              cooldown_remaining: 0.0
              is_activated: true
              is_toggled: false
              is_in_ability_phase: false
              is_channeling: false
              is_stolen: false
            }
            abilities {
              handle: 0
              ability_id: 5085
              slot: 3
              caster_handle: 0
              level: 3
              cast_range: 0
              channel_time: 0.0
              cooldown_remaining: 0.0
              is_activated: true
              is_toggled: false
              is_in_ability_phase: false
              is_channeling: false
              is_stolen: false
            }
            abilities {
              handle: 0
              ability_id: 5919
              slot: 9
              caster_handle: 0
              level: 0
              cast_range: 0
              channel_time: 0.0
              cooldown_remaining: 0.0
              is_activated: true
              is_toggled: false
              is_in_ability_phase: false
              is_channeling: false
              is_stolen: false
            }
            items {
              handle: 0
              ability_id: 50
              slot: 0
              caster_handle: 0
              level: 1
              cast_range: 0
              channel_time: 0.0
              cooldown_remaining: 0.9000054597854614
              is_activated: true
              is_toggled: false
              is_in_ability_phase: false
              is_channeling: false
              is_stolen: false
              charges: 0
              secondary_charges: 0
              is_combined_locked: false
            }
            items {
              handle: 0
              ability_id: 154
              slot: 1
              caster_handle: 0
              level: 1
              cast_range: 0
              channel_time: 0.0
              cooldown_remaining: 0.0
              is_activated: true
              is_toggled: false
              is_in_ability_phase: false
              is_channeling: false
              is_stolen: false
              charges: 0
              secondary_charges: 0
              is_combined_locked: false
            }
            items {
              handle: 0
              ability_id: 263
              slot: 2
              caster_handle: 0
              level: 1
              cast_range: 800
              channel_time: 0.0
              cooldown_remaining: 0.0
              is_activated: true
              is_toggled: false
              is_in_ability_phase: false
              is_channeling: false
              is_stolen: false
              charges: 0
              secondary_charges: 0
              is_combined_locked: false
            }
            items {
              handle: 0
              ability_id: 119
              slot: 3
              caster_handle: 0
              level: 1
              cast_range: 900
              channel_time: 0.0
              cooldown_remaining: 0.0
              is_activated: true
              is_toggled: false
              is_in_ability_phase: false
              is_channeling: false
              is_stolen: false
              charges: 0
              secondary_charges: 0
              is_combined_locked: false
            }
            items {
              handle: 0
              ability_id: 30
              slot: 4
              caster_handle: 0
              level: 1
              cast_range: 900
              channel_time: 0.0
              cooldown_remaining: 0.0
              is_activated: true
              is_toggled: false
              is_in_ability_phase: false
              is_channeling: false
              is_stolen: false
              charges: 0
              secondary_charges: 0
              is_combined_locked: false
            }
            items {
              handle: 0
              ability_id: 108
              slot: 5
              caster_handle: 0
              level: 1
              cast_range: 600
              channel_time: 0.0
              cooldown_remaining: 0.0
              is_activated: true
              is_toggled: false
              is_in_ability_phase: false
              is_channeling: false
              is_stolen: false
              charges: 0
              secondary_charges: 0
              is_combined_locked: false
            }
            items {
              handle: 0
              ability_id: 61
              slot: 6
              caster_handle: 0
              level: 1
              cast_range: 0
              channel_time: 0.0
              cooldown_remaining: 0.0
              is_activated: true
              is_toggled: false
              is_in_ability_phase: false
              is_channeling: false
              is_stolen: false
              charges: 0
              secondary_charges: 0
              is_combined_locked: false
            }
            items {
              handle: 0
              ability_id: 61
              slot: 7
              caster_handle: 0
              level: 1
              cast_range: 0
              channel_time: 0.0
              cooldown_remaining: 0.0
              is_activated: true
              is_toggled: false
              is_in_ability_phase: false
              is_channeling: false
              is_stolen: false
              charges: 0
              secondary_charges: 0
              is_combined_locked: false
            }
            modifiers {
              name: "modifier_item_guardian_greaves_aura"
              stack_count: 0
              ability_handle: 0
              ability_id: 231
              remaining_duration: 0.466552734375
            }
            modifiers {
              name: "modifier_oracle_fates_edict"
              stack_count: 0
              ability_handle: 0
              ability_id: 5638
              remaining_duration: 4.466552734375
            }
            action_type: 4
            primary_attribute: 1
            is_illusion: false
            respawn_time: 99
            buyback_cost: 2005
            buyback_cooldown: 4307
            spell_amplifiction: 0.07014284282922745
            armor: 34
            magic_resist: 1
            evasion: 0.0
            xp_needed_to_level: 4294940386
            ability_points: 0
            reliable_gold: 1463
            unreliable_gold: 1332
            last_hits: 305
            denies: 14
          }
          units {
            handle: 0
            unit_type: LANE_CREEP
            name: "npc_dota_creep_goodguys_ranged_upgraded_mega"
            team_id: 2
            level: 1
            location {
              x: 5934
              y: 5031
              z: 384
            }
            is_alive: true
            bounding_radius: 8
            facing: 95
            ground_height: 384
            vision_range_daytime: 750
            vision_range_nighttime: 750
            health: 642
            health_max: 1015
            health_regen: 2.0
            mana: 500
            mana_max: 500
            mana_regen: 0.75
            base_movement_speed: 325
            current_movement_speed: 325
            anim_activity: 1503
            anim_cycle: 0.833251953125
            base_damage: 133
            base_damage_variance: 2
            bonus_damage: 0
            attack_damage: 133
            attack_range: 500
            attack_speed: 1
            attack_anim_point: 0.5
            attack_acquisition_range: 800
            attack_projectile_speed: 900
            bounty_xp: 25
            bounty_gold_min: 30
            bounty_gold_max: 38
            is_channeling: false
            is_attack_immune: false
            is_blind: false
            is_block_disabled: false
            is_disarmed: false
            is_evade_disabled: false
            is_hexed: false
            is_invisible: false
            is_invulnerable: false
            is_magic_immune: false
            is_muted: false
            is_nightmared: false
            is_rooted: false
            is_silenced: false
            is_specially_deniable: false
            is_stunned: false
            is_unable_to_miss: false
            has_scepter: false
          }
          units {
            handle: 0
            unit_type: LANE_CREEP
            name: "npc_dota_creep_goodguys_melee_upgraded_mega"
            team_id: 2
            level: 1
            location {
              x: 6495
              y: 5611
              z: 384
            }
            is_alive: true
            bounding_radius: 16
            facing: 56
            ground_height: 384
            vision_range_daytime: 750
            vision_range_nighttime: 750
            health: 165
            health_max: 1270
            health_regen: 0.5
            mana: 0
            mana_max: 0
            mana_regen: 0.0
            base_movement_speed: 325
            current_movement_speed: 172
            anim_activity: 1503
            anim_cycle: 0.16927717626094818
            base_damage: 100
            base_damage_variance: 4
            bonus_damage: 0
            attack_damage: 100
            attack_range: 100
            attack_speed: 0
            attack_anim_point: 0.46700000762939453
            attack_acquisition_range: 500
            attack_projectile_speed: 0
            bounty_xp: 25
            bounty_gold_min: 28
            bounty_gold_max: 36
            is_channeling: false
            is_attack_immune: false
            is_blind: false
            is_block_disabled: false
            is_disarmed: false
            is_evade_disabled: false
            is_hexed: false
            is_invisible: false
            is_invulnerable: false
            is_magic_immune: false
            is_muted: false
            is_nightmared: false
            is_rooted: false
            is_silenced: false
            is_specially_deniable: false
            is_stunned: false
            is_unable_to_miss: false
            has_scepter: false
            modifiers {
              name: "modifier_item_shivas_guard_aura"
              stack_count: 0
              ability_handle: 0
              ability_id: 119
              remaining_duration: 0.466552734375
            }
            modifiers {
              name: "modifier_omniknight_degen_aura_effect"
              stack_count: 0
              ability_handle: 0
              ability_id: 5265
              remaining_duration: 0.966552734375
            }
            modifiers {
              name: "modifier_sange_and_yasha_buff"
              stack_count: 0
              ability_handle: 0
              ability_id: 154
              remaining_duration: 3.7958984375
            }
          }
          units {
            handle: 0
            unit_type: COURIER
            name: "npc_dota_courier"
            team_id: 3
            level: 10
            location {
              x: 6768
              y: 6336
              z: 512
            }
            is_alive: true
            bounding_radius: 8
            facing: 65
            ground_height: 512
            vision_range_daytime: 300
            vision_range_nighttime: 300
            health: 150
            health_max: 150
            health_regen: 6.5
            mana: 0
            mana_max: 0
            mana_regen: 0.0
            base_movement_speed: 430
            current_movement_speed: 430
            anim_activity: 1500
            anim_cycle: 0.6551387906074524
            base_damage: 1
            base_damage_variance: 0
            bonus_damage: 0
            attack_damage: 1
            attack_range: 600
            attack_speed: 1
            attack_anim_point: 0.75
            attack_acquisition_range: 800
            attack_projectile_speed: 900
            bounty_xp: 349
            bounty_gold_min: 175
            bounty_gold_max: 175
            is_channeling: false
            is_attack_immune: false
            is_blind: false
            is_block_disabled: false
            is_disarmed: false
            is_evade_disabled: false
            is_hexed: false
            is_invisible: false
            is_invulnerable: true
            is_magic_immune: true
            is_muted: false
            is_nightmared: false
            is_rooted: false
            is_silenced: false
            is_specially_deniable: false
            is_stunned: false
            is_unable_to_miss: false
            has_scepter: false
            abilities {
              handle: 0
              ability_id: 5205
              slot: 0
              caster_handle: 0
              level: 1
              cast_range: 0
              channel_time: 0.0
              cooldown_remaining: 0.0
              is_activated: true
              is_toggled: false
              is_in_ability_phase: false
              is_channeling: false
              is_stolen: false
            }
            abilities {
              handle: 0
              ability_id: 5492
              slot: 1
              caster_handle: 0
              level: 1
              cast_range: 0
              channel_time: 0.0
              cooldown_remaining: 0.0
              is_activated: true
              is_toggled: false
              is_in_ability_phase: false
              is_channeling: false
              is_stolen: false
            }
            abilities {
              handle: 0
              ability_id: 5207
              slot: 2
              caster_handle: 0
              level: 1
              cast_range: 0
              channel_time: 0.0
              cooldown_remaining: 0.0
              is_activated: true
              is_toggled: false
              is_in_ability_phase: false
              is_channeling: false
              is_stolen: false
            }
            abilities {
              handle: 0
              ability_id: 5208
              slot: 3
              caster_handle: 0
              level: 1
              cast_range: 0
              channel_time: 0.0
              cooldown_remaining: 0.0
              is_activated: true
              is_toggled: false
              is_in_ability_phase: false
              is_channeling: false
              is_stolen: false
            }
            abilities {
              handle: 0
              ability_id: 5206
              slot: 4
              caster_handle: 0
              level: 1
              cast_range: 0
              channel_time: 0.0
              cooldown_remaining: 0.0
              is_activated: true
              is_toggled: false
              is_in_ability_phase: false
              is_channeling: false
              is_stolen: false
            }
            modifiers {
              name: "modifier_magic_immune"
              stack_count: 0
            }
            modifiers {
              name: "modifier_phased"
              stack_count: 0
            }
            modifiers {
              name: "modifier_fountain_aura_buff"
              stack_count: 0
              remaining_duration: 2.966552734375
            }
            flying_courier: true
          }
          units {
            handle: 0
            unit_type: WARD
            name: "npc_dota_observer_wards"
            team_id: 3
            level: 0
            location {
              x: 6300
              y: 2627
              z: 384
            }
            is_alive: true
            bounding_radius: 8
            facing: 269
            ground_height: 384
            vision_range_daytime: 1600
            vision_range_nighttime: 1600
            health: 200
            health_max: 200
            health_regen: 0.0
            mana: 0
            mana_max: 0
            mana_regen: 0.0
            base_movement_speed: 300
            current_movement_speed: 300
            anim_activity: 1500
            anim_cycle: 0.7373700141906738
            base_damage: 1
            base_damage_variance: 0
            bonus_damage: 0
            attack_damage: 1
            attack_range: 600
            attack_speed: 1
            attack_anim_point: 0.75
            attack_acquisition_range: 800
            attack_projectile_speed: 900
            bounty_xp: 25
            bounty_gold_min: 100
            bounty_gold_max: 100
            is_channeling: false
            is_attack_immune: false
            is_blind: false
            is_block_disabled: false
            is_disarmed: false
            is_evade_disabled: false
            is_hexed: false
            is_invisible: true
            is_invulnerable: false
            is_magic_immune: true
            is_muted: false
            is_nightmared: false
            is_rooted: false
            is_silenced: false
            is_specially_deniable: false
            is_stunned: false
            is_unable_to_miss: false
            has_scepter: false
            modifiers {
              name: "modifier_item_buff_ward"
              stack_count: 0
              remaining_duration: 100.415771484375
            }
          }
          units {
            handle: 0
            unit_type: LANE_CREEP
            name: "npc_dota_creep_goodguys_ranged_upgraded_mega"
            team_id: 2
            level: 1
            location {
              x: 2905
              y: 2431
              z: 256
            }
            is_alive: true
            bounding_radius: 8
            facing: 43
            ground_height: 256
            vision_range_daytime: 750
            vision_range_nighttime: 750
            health: 1015
            health_max: 1015
            health_regen: 2.0
            mana: 500
            mana_max: 500
            mana_regen: 0.75
            base_movement_speed: 325
            current_movement_speed: 325
            anim_activity: 1503
            anim_cycle: 0.7333984375
            base_damage: 133
            base_damage_variance: 2
            bonus_damage: 0
            attack_damage: 133
            attack_range: 500
            attack_speed: 1
            attack_anim_point: 0.5
            attack_acquisition_range: 800
            attack_projectile_speed: 900
            bounty_xp: 25
            bounty_gold_min: 30
            bounty_gold_max: 38
            is_channeling: false
            is_attack_immune: false
            is_blind: false
            is_block_disabled: false
            is_disarmed: false
            is_evade_disabled: false
            is_hexed: false
            is_invisible: false
            is_invulnerable: false
            is_magic_immune: false
            is_muted: false
            is_nightmared: false
            is_rooted: false
            is_silenced: false
            is_specially_deniable: false
            is_stunned: false
            is_unable_to_miss: false
            has_scepter: false
          }
          units {
            handle: 0
            unit_type: LANE_CREEP
            name: "npc_dota_creep_badguys_melee"
            team_id: 3
            level: 3
            location {
              x: 6078
              y: -4584
              z: 384
            }
            is_alive: true
            bounding_radius: 16
            facing: 280
            ground_height: 384
            vision_range_daytime: 750
            vision_range_nighttime: 750
            health: 474
            health_max: 646
            health_regen: 0.5
            mana: 0
            mana_max: 0
            mana_regen: 0.0
            base_movement_speed: 325
            current_movement_speed: 325
            anim_activity: 1503
            anim_cycle: 0.3214808702468872
            base_damage: 29
            base_damage_variance: 2
            bonus_damage: 0
            attack_damage: 29
            attack_range: 100
            attack_speed: 1
            attack_anim_point: 0.46700000762939453
            attack_acquisition_range: 500
            attack_projectile_speed: 0
            attack_target_handle: 0
            bounty_xp: 40
            bounty_gold_min: 42
            bounty_gold_max: 46
            is_channeling: false
            is_attack_immune: false
            is_blind: false
            is_block_disabled: false
            is_disarmed: false
            is_evade_disabled: false
            is_hexed: false
            is_invisible: false
            is_invulnerable: false
            is_magic_immune: false
            is_muted: false
            is_nightmared: false
            is_rooted: false
            is_silenced: false
            is_specially_deniable: false
            is_stunned: false
            is_unable_to_miss: false
            has_scepter: false
          }
          units {
            handle: 0
            unit_type: LANE_CREEP
            name: "npc_dota_creep_badguys_melee"
            team_id: 3
            level: 3
            location {
              x: 3210
              y: 5719
              z: 384
            }
            is_alive: true
            bounding_radius: 16
            facing: 90
            ground_height: 384
            vision_range_daytime: 750
            vision_range_nighttime: 750
            health: 558
            health_max: 646
            health_regen: 0.5
            mana: 0
            mana_max: 0
            mana_regen: 0.0
            base_movement_speed: 325
            current_movement_speed: 325
            anim_activity: 1503
            anim_cycle: 0.142822265625
            base_damage: 29
            base_damage_variance: 2
            bonus_damage: 0
            attack_damage: 29
            attack_range: 100
            attack_speed: 1
            attack_anim_point: 0.46700000762939453
            attack_acquisition_range: 500
            attack_projectile_speed: 0
            attack_target_handle: 0
            bounty_xp: 40
            bounty_gold_min: 42
            bounty_gold_max: 46
            is_channeling: false
            is_attack_immune: false
            is_blind: false
            is_block_disabled: false
            is_disarmed: false
            is_evade_disabled: false
            is_hexed: false
            is_invisible: false
            is_invulnerable: false
            is_magic_immune: false
            is_muted: false
            is_nightmared: false
            is_rooted: false
            is_silenced: false
            is_specially_deniable: false
            is_stunned: false
            is_unable_to_miss: false
            has_scepter: false
          }
          units {
            handle: 0
            unit_type: LANE_CREEP
            name: "npc_dota_creep_goodguys_melee_upgraded_mega"
            team_id: 2
            level: 1
            location {
              x: 5995
              y: -4710
              z: 384
            }
            is_alive: true
            bounding_radius: 16
            facing: 83
            ground_height: 384
            vision_range_daytime: 750
            vision_range_nighttime: 750
            health: 858
            health_max: 1270
            health_regen: 0.5
            mana: 0
            mana_max: 0
            mana_regen: 0.0
            base_movement_speed: 325
            current_movement_speed: 325
            anim_activity: 1503
            anim_cycle: 0.2333984375
            base_damage: 100
            base_damage_variance: 4
            bonus_damage: 0
            attack_damage: 100
            attack_range: 100
            attack_speed: 1
            attack_anim_point: 0.46700000762939453
            attack_acquisition_range: 500
            attack_projectile_speed: 0
            bounty_xp: 25
            bounty_gold_min: 28
            bounty_gold_max: 36
            is_channeling: false
            is_attack_immune: false
            is_blind: false
            is_block_disabled: false
            is_disarmed: false
            is_evade_disabled: false
            is_hexed: false
            is_invisible: false
            is_invulnerable: false
            is_magic_immune: false
            is_muted: false
            is_nightmared: false
            is_rooted: false
            is_silenced: false
            is_specially_deniable: false
            is_stunned: false
            is_unable_to_miss: false
            has_scepter: false
            modifiers {
              name: "modifier_item_veil_of_discord_debuff"
              stack_count: 0
              ability_handle: 0
              ability_id: 190
              remaining_duration: 14.294189453125
            }
          }
          units {
            handle: 0
            unit_type: LANE_CREEP
            name: "npc_dota_creep_goodguys_melee_upgraded_mega"
            team_id: 2
            level: 1
            location {
              x: 6094
              y: -4674
              z: 384
            }
            is_alive: true
            bounding_radius: 16
            facing: 100
            ground_height: 384
            vision_range_daytime: 750
            vision_range_nighttime: 750
            health: 413
            health_max: 1270
            health_regen: 0.5
            mana: 0
            mana_max: 0
            mana_regen: 0.0
            base_movement_speed: 325
            current_movement_speed: 325
            anim_activity: 1503
            anim_cycle: 0.400146484375
            base_damage: 100
            base_damage_variance: 4
            bonus_damage: 0
            attack_damage: 100
            attack_range: 100
            attack_speed: 1
            attack_anim_point: 0.46700000762939453
            attack_acquisition_range: 500
            attack_projectile_speed: 0
            bounty_xp: 25
            bounty_gold_min: 28
            bounty_gold_max: 36
            is_channeling: false
            is_attack_immune: false
            is_blind: false
            is_block_disabled: false
            is_disarmed: false
            is_evade_disabled: false
            is_hexed: false
            is_invisible: false
            is_invulnerable: false
            is_magic_immune: false
            is_muted: false
            is_nightmared: false
            is_rooted: false
            is_silenced: false
            is_specially_deniable: false
            is_stunned: false
            is_unable_to_miss: false
            has_scepter: false
            modifiers {
              name: "modifier_item_veil_of_discord_debuff"
              stack_count: 0
              ability_handle: 0
              ability_id: 190
              remaining_duration: 14.294189453125
            }
            incoming_tracking_projectiles {
              caster_handle: 0
              caster_player_id: -1
              location {
                x: 6103
                y: -4500
                z: 507
              }
              velocity: 900
              is_dodgeable: true
              is_attack: true
            }
            incoming_tracking_projectiles {
              caster_handle: 0
              caster_player_id: -1
              location {
                x: 6107
                y: -4545
                z: 463
              }
              velocity: 900
              is_dodgeable: true
              is_attack: true
            }
          }
          units {
            handle: 0
            unit_type: LANE_CREEP
            name: "npc_dota_creep_goodguys_melee_upgraded_mega"
            team_id: 2
            level: 1
            location {
              x: 6264
              y: -4653
              z: 384
            }
            is_alive: true
            bounding_radius: 16
            facing: 107
            ground_height: 384
            vision_range_daytime: 750
            vision_range_nighttime: 750
            health: 661
            health_max: 1270
            health_regen: 0.5
            mana: 0
            mana_max: 0
            mana_regen: 0.0
            base_movement_speed: 325
            current_movement_speed: 325
            anim_activity: 1502
            anim_cycle: 0.07810592651367188
            base_damage: 100
            base_damage_variance: 4
            bonus_damage: 0
            attack_damage: 100
            attack_range: 100
            attack_speed: 1
            attack_anim_point: 0.46700000762939453
            attack_acquisition_range: 500
            attack_projectile_speed: 0
            bounty_xp: 25
            bounty_gold_min: 28
            bounty_gold_max: 36
            is_channeling: false
            is_attack_immune: false
            is_blind: false
            is_block_disabled: false
            is_disarmed: false
            is_evade_disabled: false
            is_hexed: false
            is_invisible: false
            is_invulnerable: false
            is_magic_immune: false
            is_muted: false
            is_nightmared: false
            is_rooted: false
            is_silenced: false
            is_specially_deniable: false
            is_stunned: false
            is_unable_to_miss: false
            has_scepter: false
            modifiers {
              name: "modifier_item_veil_of_discord_debuff"
              stack_count: 0
              ability_handle: 0
              ability_id: 190
              remaining_duration: 14.294189453125
            }
          }
          units {
            handle: 0
            unit_type: LANE_CREEP
            name: "npc_dota_creep_goodguys_ranged_upgraded_mega"
            team_id: 2
            level: 1
            location {
              x: 3397
              y: 5787
              z: 384
            }
            is_alive: true
            bounding_radius: 8
            facing: 149
            ground_height: 384
            vision_range_daytime: 750
            vision_range_nighttime: 750
            health: 1015
            health_max: 1015
            health_regen: 2.0
            mana: 500
            mana_max: 500
            mana_regen: 0.75
            base_movement_speed: 325
            current_movement_speed: 325
            anim_activity: 1503
            anim_cycle: 0.666748046875
            base_damage: 133
            base_damage_variance: 2
            bonus_damage: 0
            attack_damage: 133
            attack_range: 500
            attack_speed: 1
            attack_anim_point: 0.5
            attack_acquisition_range: 800
            attack_projectile_speed: 900
            bounty_xp: 25
            bounty_gold_min: 30
            bounty_gold_max: 38
            is_channeling: false
            is_attack_immune: false
            is_blind: false
            is_block_disabled: false
            is_disarmed: false
            is_evade_disabled: false
            is_hexed: false
            is_invisible: false
            is_invulnerable: false
            is_magic_immune: false
            is_muted: false
            is_nightmared: false
            is_rooted: false
            is_silenced: false
            is_specially_deniable: false
            is_stunned: false
            is_unable_to_miss: false
            has_scepter: false
          }
          units {
            handle: 0
            unit_type: LANE_CREEP
            name: "npc_dota_creep_badguys_melee"
            team_id: 3
            level: 3
            location {
              x: 3203
              y: 2812
              z: 256
            }
            is_alive: true
            bounding_radius: 16
            facing: 257
            ground_height: 256
            vision_range_daytime: 750
            vision_range_nighttime: 750
            health: 646
            health_max: 646
            health_regen: 0.5
            mana: 0
            mana_max: 0
            mana_regen: 0.0
            base_movement_speed: 325
            current_movement_speed: 325
            anim_activity: 1503
            anim_cycle: 0.3214808702468872
            base_damage: 29
            base_damage_variance: 2
            bonus_damage: 0
            attack_damage: 29
            attack_range: 100
            attack_speed: 1
            attack_anim_point: 0.46700000762939453
            attack_acquisition_range: 500
            attack_projectile_speed: 0
            attack_target_handle: 0
            bounty_xp: 40
            bounty_gold_min: 42
            bounty_gold_max: 46
            is_channeling: false
            is_attack_immune: false
            is_blind: false
            is_block_disabled: false
            is_disarmed: false
            is_evade_disabled: false
            is_hexed: false
            is_invisible: false
            is_invulnerable: false
            is_magic_immune: false
            is_muted: false
            is_nightmared: false
            is_rooted: false
            is_silenced: false
            is_specially_deniable: false
            is_stunned: false
            is_unable_to_miss: false
            has_scepter: false
          }
          units {
            handle: 0
            unit_type: TOWER
            name: "npc_dota_goodguys_tower3_bot"
            team_id: 2
            level: 3
            location {
              x: -3951
              y: -6112
              z: 383
            }
            is_alive: true
            bounding_radius: 144
            facing: 331
            ground_height: 384
            vision_range_daytime: 1900
            vision_range_nighttime: 800
            health: 738
            health_max: 1600
            health_regen: 0.0
            mana: 0
            mana_max: 0
            mana_regen: 0.0
            base_movement_speed: 0
            current_movement_speed: 100
            anim_activity: 1500
            anim_cycle: 0.86669921875
            base_damage: 152
            base_damage_variance: 10
            bonus_damage: 0
            attack_damage: 152
            attack_range: 700
            attack_speed: 1
            attack_anim_point: 0.6000000238418579
            attack_acquisition_range: 700
            attack_projectile_speed: 750
            bounty_xp: 0
            bounty_gold_min: 0
            bounty_gold_max: 0
            is_channeling: false
            is_attack_immune: false
            is_blind: false
            is_block_disabled: false
            is_disarmed: false
            is_evade_disabled: false
            is_hexed: false
            is_invisible: false
            is_invulnerable: false
            is_magic_immune: false
            is_muted: false
            is_nightmared: false
            is_rooted: false
            is_silenced: false
            is_specially_deniable: false
            is_stunned: false
            is_unable_to_miss: false
            has_scepter: false
            abilities {
              handle: 0
              ability_id: 5351
              slot: 0
              caster_handle: 0
              cast_range: 0
              channel_time: 0.0
              is_in_ability_phase: false
              is_channeling: false
              is_stolen: false
            }
            modifiers {
              name: "modifier_tower_truesight_aura"
              stack_count: 0
            }
            modifiers {
              name: "modifier_tower_aura"
              stack_count: 0
            }
            modifiers {
              name: "modifier_tower_armor_bonus"
              stack_count: 0
            }
            modifiers {
              name: "modifier_backdoor_protection_active"
              stack_count: 0
              ability_handle: 0
              ability_id: 5351
            }
          }
          units {
            handle: 0
            unit_type: TOWER
            name: "npc_dota_goodguys_tower3_mid"
            team_id: 2
            level: 3
            location {
              x: -4640
              y: -4144
              z: 384
            }
            is_alive: true
            bounding_radius: 144
            facing: 150
            ground_height: 384
            vision_range_daytime: 1900
            vision_range_nighttime: 800
            health: 1573
            health_max: 1600
            health_regen: 0.0
            mana: 0
            mana_max: 0
            mana_regen: 0.0
            base_movement_speed: 0
            current_movement_speed: 100
            anim_activity: 1500
            anim_cycle: 0.13330078125
            base_damage: 152
            base_damage_variance: 10
            bonus_damage: 0
            attack_damage: 152
            attack_range: 700
            attack_speed: 1
            attack_anim_point: 0.6000000238418579
            attack_acquisition_range: 700
            attack_projectile_speed: 750
            bounty_xp: 0
            bounty_gold_min: 0
            bounty_gold_max: 0
            is_channeling: false
            is_attack_immune: false
            is_blind: false
            is_block_disabled: false
            is_disarmed: false
            is_evade_disabled: false
            is_hexed: false
            is_invisible: false
            is_invulnerable: false
            is_magic_immune: false
            is_muted: false
            is_nightmared: false
            is_rooted: false
            is_silenced: false
            is_specially_deniable: false
            is_stunned: false
            is_unable_to_miss: false
            has_scepter: false
            abilities {
              handle: 0
              ability_id: 5351
              slot: 0
              caster_handle: 0
              cast_range: 0
              channel_time: 0.0
              is_in_ability_phase: false
              is_channeling: false
              is_stolen: false
            }
            modifiers {
              name: "modifier_tower_truesight_aura"
              stack_count: 0
            }
            modifiers {
              name: "modifier_tower_aura"
              stack_count: 0
            }
            modifiers {
              name: "modifier_tower_armor_bonus"
              stack_count: 0
            }
            modifiers {
              name: "modifier_backdoor_protection_active"
              stack_count: 0
              ability_handle: 0
              ability_id: 5351
            }
          }
          units {
            handle: 0
            unit_type: TOWER
            name: "npc_dota_goodguys_tower3_top"
            team_id: 2
            level: 3
            location {
              x: -6592
              y: -3407
              z: 384
            }
            is_alive: true
            bounding_radius: 144
            facing: 203
            ground_height: 384
            vision_range_daytime: 1900
            vision_range_nighttime: 800
            health: 707
            health_max: 1600
            health_regen: 0.0
            mana: 0
            mana_max: 0
            mana_regen: 0.0
            base_movement_speed: 0
            current_movement_speed: 100
            anim_activity: 1500
            anim_cycle: 0.2001953125
            base_damage: 152
            base_damage_variance: 10
            bonus_damage: 0
            attack_damage: 152
            attack_range: 700
            attack_speed: 1
            attack_anim_point: 0.6000000238418579
            attack_acquisition_range: 700
            attack_projectile_speed: 750
            bounty_xp: 0
            bounty_gold_min: 0
            bounty_gold_max: 0
            is_channeling: false
            is_attack_immune: false
            is_blind: false
            is_block_disabled: false
            is_disarmed: false
            is_evade_disabled: false
            is_hexed: false
            is_invisible: false
            is_invulnerable: false
            is_magic_immune: false
            is_muted: false
            is_nightmared: false
            is_rooted: false
            is_silenced: false
            is_specially_deniable: false
            is_stunned: false
            is_unable_to_miss: false
            has_scepter: false
            abilities {
              handle: 0
              ability_id: 5351
              slot: 0
              caster_handle: 0
              cast_range: 0
              channel_time: 0.0
              is_in_ability_phase: false
              is_channeling: false
              is_stolen: false
            }
            modifiers {
              name: "modifier_tower_truesight_aura"
              stack_count: 0
            }
            modifiers {
              name: "modifier_tower_aura"
              stack_count: 0
            }
            modifiers {
              name: "modifier_tower_armor_bonus"
              stack_count: 0
            }
            modifiers {
              name: "modifier_backdoor_protection_active"
              stack_count: 0
              ability_handle: 0
              ability_id: 5351
            }
          }
          units {
            handle: 0
            unit_type: TOWER
            name: "npc_dota_goodguys_tower4"
            team_id: 2
            level: 4
            location {
              x: -5711
              y: -4863
              z: 383
            }
            is_alive: true
            bounding_radius: 144
            facing: 349
            ground_height: 384
            vision_range_daytime: 1900
            vision_range_nighttime: 800
            health: 1600
            health_max: 1600
            health_regen: 3.0
            mana: 0
            mana_max: 0
            mana_regen: 0.0
            base_movement_speed: 0
            current_movement_speed: 100
            anim_activity: 1500
            anim_cycle: 0.93359375
            base_damage: 152
            base_damage_variance: 10
            bonus_damage: 0
            attack_damage: 152
            attack_range: 700
            attack_speed: 1
            attack_anim_point: 0.6000000238418579
            attack_acquisition_range: 700
            attack_projectile_speed: 750
            bounty_xp: 0
            bounty_gold_min: 0
            bounty_gold_max: 0
            is_channeling: false
            is_attack_immune: false
            is_blind: false
            is_block_disabled: false
            is_disarmed: false
            is_evade_disabled: false
            is_hexed: false
            is_invisible: false
            is_invulnerable: true
            is_magic_immune: false
            is_muted: false
            is_nightmared: false
            is_rooted: false
            is_silenced: false
            is_specially_deniable: false
            is_stunned: false
            is_unable_to_miss: false
            has_scepter: false
            abilities {
              handle: 0
              ability_id: 5351
              slot: 0
              caster_handle: 0
              cast_range: 0
              channel_time: 0.0
              is_in_ability_phase: false
              is_channeling: false
              is_stolen: false
            }
            modifiers {
              name: "modifier_invulnerable"
              stack_count: 0
            }
            modifiers {
              name: "modifier_tower_truesight_aura"
              stack_count: 0
            }
            modifiers {
              name: "modifier_tower_aura"
              stack_count: 0
            }
            modifiers {
              name: "modifier_tower_armor_bonus"
              stack_count: 0
            }
            modifiers {
              name: "modifier_backdoor_protection_active"
              stack_count: 0
              ability_handle: 0
              ability_id: 5351
            }
          }
          units {
            handle: 0
            unit_type: BARRACKS
            name: "npc_dota_goodguys_melee_rax_mid"
            team_id: 2
            level: 1
            location {
              x: -4671
              y: -4551
              z: 383
            }
            is_alive: true
            bounding_radius: 144
            facing: 135
            ground_height: 384
            vision_range_daytime: 900
            vision_range_nighttime: 600
            health: 1500
            health_max: 1500
            health_regen: 5.0
            mana: 0
            mana_max: 0
            mana_regen: 0.0
            base_movement_speed: 0
            current_movement_speed: 100
            anim_activity: -1
            anim_cycle: 0.0
            base_damage: 0
            base_damage_variance: 0
            bonus_damage: 0
            attack_damage: 0
            attack_range: 0
            attack_speed: 1
            attack_anim_point: 0.0
            attack_acquisition_range: 0
            attack_projectile_speed: 0
            bounty_xp: 0
            bounty_gold_min: 0
            bounty_gold_max: 0
            is_channeling: false
            is_attack_immune: false
            is_blind: false
            is_block_disabled: false
            is_disarmed: false
            is_evade_disabled: false
            is_hexed: false
            is_invisible: false
            is_invulnerable: true
            is_magic_immune: false
            is_muted: false
            is_nightmared: false
            is_rooted: false
            is_silenced: false
            is_specially_deniable: false
            is_stunned: false
            is_unable_to_miss: false
            has_scepter: false
            abilities {
              handle: 0
              ability_id: 5351
              slot: 0
              caster_handle: 0
              cast_range: 0
              channel_time: 0.0
              is_in_ability_phase: false
              is_channeling: false
              is_stolen: false
            }
            modifiers {
              name: "modifier_invulnerable"
              stack_count: 0
            }
            modifiers {
              name: "modifier_backdoor_protection_active"
              stack_count: 0
              ability_handle: 0
              ability_id: 5351
            }
          }
          units {
            handle: 0
            unit_type: BARRACKS
            name: "npc_dota_goodguys_range_rax_mid"
            team_id: 2
            level: 1
            location {
              x: -5060
              y: -4199
              z: 383
            }
            is_alive: true
            bounding_radius: 144
            facing: 315
            ground_height: 384
            vision_range_daytime: 900
            vision_range_nighttime: 600
            health: 1200
            health_max: 1200
            health_regen: 0.0
            mana: 0
            mana_max: 0
            mana_regen: 0.0
            base_movement_speed: 0
            current_movement_speed: 100
            anim_activity: -1
            anim_cycle: 0.0
            base_damage: 0
            base_damage_variance: 0
            bonus_damage: 0
            attack_damage: 0
            attack_range: 0
            attack_speed: 1
            attack_anim_point: 0.0
            attack_acquisition_range: 0
            attack_projectile_speed: 0
            bounty_xp: 0
            bounty_gold_min: 0
            bounty_gold_max: 0
            is_channeling: false
            is_attack_immune: false
            is_blind: false
            is_block_disabled: false
            is_disarmed: false
            is_evade_disabled: false
            is_hexed: false
            is_invisible: false
            is_invulnerable: true
            is_magic_immune: false
            is_muted: false
            is_nightmared: false
            is_rooted: false
            is_silenced: false
            is_specially_deniable: false
            is_stunned: false
            is_unable_to_miss: false
            has_scepter: false
            abilities {
              handle: 0
              ability_id: 5351
              slot: 0
              caster_handle: 0
              cast_range: 0
              channel_time: 0.0
              is_in_ability_phase: false
              is_channeling: false
              is_stolen: false
            }
            modifiers {
              name: "modifier_invulnerable"
              stack_count: 0
            }
            modifiers {
              name: "modifier_backdoor_protection_active"
              stack_count: 0
              ability_handle: 0
              ability_id: 5351
            }
          }
          units {
            handle: 0
            unit_type: BARRACKS
            name: "npc_dota_goodguys_melee_rax_bot"
            team_id: 2
            level: 1
            location {
              x: -4279
              y: -6360
              z: 384
            }
            is_alive: true
            bounding_radius: 144
            facing: 90
            ground_height: 384
            vision_range_daytime: 900
            vision_range_nighttime: 600
            health: 1500
            health_max: 1500
            health_regen: 5.0
            mana: 0
            mana_max: 0
            mana_regen: 0.0
            base_movement_speed: 0
            current_movement_speed: 100
            anim_activity: -1
            anim_cycle: 0.0
            base_damage: 0
            base_damage_variance: 0
            bonus_damage: 0
            attack_damage: 0
            attack_range: 0
            attack_speed: 1
            attack_anim_point: 0.0
            attack_acquisition_range: 0
            attack_projectile_speed: 0
            bounty_xp: 0
            bounty_gold_min: 0
            bounty_gold_max: 0
            is_channeling: false
            is_attack_immune: false
            is_blind: false
            is_block_disabled: false
            is_disarmed: false
            is_evade_disabled: false
            is_hexed: false
            is_invisible: false
            is_invulnerable: true
            is_magic_immune: false
            is_muted: false
            is_nightmared: false
            is_rooted: false
            is_silenced: false
            is_specially_deniable: false
            is_stunned: false
            is_unable_to_miss: false
            has_scepter: false
            abilities {
              handle: 0
              ability_id: 5351
              slot: 0
              caster_handle: 0
              cast_range: 0
              channel_time: 0.0
              is_in_ability_phase: false
              is_channeling: false
              is_stolen: false
            }
            modifiers {
              name: "modifier_invulnerable"
              stack_count: 0
            }
            modifiers {
              name: "modifier_backdoor_protection_active"
              stack_count: 0
              ability_handle: 0
              ability_id: 5351
            }
          }
          units {
            handle: 0
            unit_type: BARRACKS
            name: "npc_dota_goodguys_range_rax_bot"
            team_id: 2
            level: 1
            location {
              x: -4279
              y: -5853
              z: 383
            }
            is_alive: true
            bounding_radius: 144
            facing: 270
            ground_height: 384
            vision_range_daytime: 900
            vision_range_nighttime: 600
            health: 1200
            health_max: 1200
            health_regen: 0.0
            mana: 0
            mana_max: 0
            mana_regen: 0.0
            base_movement_speed: 0
            current_movement_speed: 100
            anim_activity: -1
            anim_cycle: 0.0
            base_damage: 0
            base_damage_variance: 0
            bonus_damage: 0
            attack_damage: 0
            attack_range: 0
            attack_speed: 1
            attack_anim_point: 0.0
            attack_acquisition_range: 0
            attack_projectile_speed: 0
            bounty_xp: 0
            bounty_gold_min: 0
            bounty_gold_max: 0
            is_channeling: false
            is_attack_immune: false
            is_blind: false
            is_block_disabled: false
            is_disarmed: false
            is_evade_disabled: false
            is_hexed: false
            is_invisible: false
            is_invulnerable: true
            is_magic_immune: false
            is_muted: false
            is_nightmared: false
            is_rooted: false
            is_silenced: false
            is_specially_deniable: false
            is_stunned: false
            is_unable_to_miss: false
            has_scepter: false
            abilities {
              handle: 0
              ability_id: 5351
              slot: 0
              caster_handle: 0
              cast_range: 0
              channel_time: 0.0
              is_in_ability_phase: false
              is_channeling: false
              is_stolen: false
            }
            modifiers {
              name: "modifier_invulnerable"
              stack_count: 0
            }
            modifiers {
              name: "modifier_backdoor_protection_active"
              stack_count: 0
              ability_handle: 0
              ability_id: 5351
            }
          }
          units {
            handle: 0
            unit_type: BARRACKS
            name: "npc_dota_goodguys_melee_rax_top"
            team_id: 2
            level: 1
            location {
              x: -6335
              y: -3757
              z: 383
            }
            is_alive: true
            bounding_radius: 144
            facing: 180
            ground_height: 384
            vision_range_daytime: 900
            vision_range_nighttime: 600
            health: 1500
            health_max: 1500
            health_regen: 5.0
            mana: 0
            mana_max: 0
            mana_regen: 0.0
            base_movement_speed: 0
            current_movement_speed: 100
            anim_activity: -1
            anim_cycle: 0.0
            base_damage: 0
            base_damage_variance: 0
            bonus_damage: 0
            attack_damage: 0
            attack_range: 0
            attack_speed: 1
            attack_anim_point: 0.0
            attack_acquisition_range: 0
            attack_projectile_speed: 0
            bounty_xp: 0
            bounty_gold_min: 0
            bounty_gold_max: 0
            is_channeling: false
            is_attack_immune: false
            is_blind: false
            is_block_disabled: false
            is_disarmed: false
            is_evade_disabled: false
            is_hexed: false
            is_invisible: false
            is_invulnerable: true
            is_magic_immune: false
            is_muted: false
            is_nightmared: false
            is_rooted: false
            is_silenced: false
            is_specially_deniable: false
            is_stunned: false
            is_unable_to_miss: false
            has_scepter: false
            abilities {
              handle: 0
              ability_id: 5351
              slot: 0
              caster_handle: 0
              cast_range: 0
              channel_time: 0.0
              is_in_ability_phase: false
              is_channeling: false
              is_stolen: false
            }
            modifiers {
              name: "modifier_invulnerable"
              stack_count: 0
            }
            modifiers {
              name: "modifier_backdoor_protection_active"
              stack_count: 0
              ability_handle: 0
              ability_id: 5351
            }
          }
          units {
            handle: 0
            unit_type: BARRACKS
            name: "npc_dota_goodguys_range_rax_top"
            team_id: 2
            level: 1
            location {
              x: -6844
              y: -3759
              z: 383
            }
            is_alive: true
            bounding_radius: 144
            facing: 0
            ground_height: 384
            vision_range_daytime: 900
            vision_range_nighttime: 600
            health: 1200
            health_max: 1200
            health_regen: 0.0
            mana: 0
            mana_max: 0
            mana_regen: 0.0
            base_movement_speed: 0
            current_movement_speed: 100
            anim_activity: -1
            anim_cycle: 0.0
            base_damage: 0
            base_damage_variance: 0
            bonus_damage: 0
            attack_damage: 0
            attack_range: 0
            attack_speed: 1
            attack_anim_point: 0.0
            attack_acquisition_range: 0
            attack_projectile_speed: 0
            bounty_xp: 0
            bounty_gold_min: 0
            bounty_gold_max: 0
            is_channeling: false
            is_attack_immune: false
            is_blind: false
            is_block_disabled: false
            is_disarmed: false
            is_evade_disabled: false
            is_hexed: false
            is_invisible: false
            is_invulnerable: true
            is_magic_immune: false
            is_muted: false
            is_nightmared: false
            is_rooted: false
            is_silenced: false
            is_specially_deniable: false
            is_stunned: false
            is_unable_to_miss: false
            has_scepter: false
            abilities {
              handle: 0
              ability_id: 5351
              slot: 0
              caster_handle: 0
              cast_range: 0
              channel_time: 0.0
              is_in_ability_phase: false
              is_channeling: false
              is_stolen: false
            }
            modifiers {
              name: "modifier_invulnerable"
              stack_count: 0
            }
            modifiers {
              name: "modifier_backdoor_protection_active"
              stack_count: 0
              ability_handle: 0
              ability_id: 5351
            }
          }
          units {
            handle: 0
            unit_type: FORT
            name: "npc_dota_badguys_fort"
            team_id: 3
            level: 1
            location {
              x: 5527
              y: 4999
              z: 376
            }
            is_alive: true
            bounding_radius: 373
            facing: 45
            ground_height: 384
            vision_range_daytime: 2600
            vision_range_nighttime: 2600
            health: 1984
            health_max: 4250
            health_regen: 3.0
            mana: 0
            mana_max: 0
            mana_regen: 0.0
            base_movement_speed: 0
            current_movement_speed: 100
            anim_activity: -1
            anim_cycle: 0.0
            base_damage: 0
            base_damage_variance: 0
            bonus_damage: 0
            attack_damage: 0
            attack_range: 0
            attack_speed: 1
            attack_anim_point: 0.0
            attack_acquisition_range: 0
            attack_projectile_speed: 0
            bounty_xp: 0
            bounty_gold_min: 0
            bounty_gold_max: 0
            is_channeling: false
            is_attack_immune: false
            is_blind: false
            is_block_disabled: false
            is_disarmed: false
            is_evade_disabled: false
            is_hexed: false
            is_invisible: false
            is_invulnerable: false
            is_magic_immune: false
            is_muted: false
            is_nightmared: false
            is_rooted: false
            is_silenced: false
            is_specially_deniable: false
            is_stunned: false
            is_unable_to_miss: false
            has_scepter: false
            abilities {
              handle: 0
              ability_id: 5351
              slot: 0
              caster_handle: 0
              level: 1
              cast_range: 0
              channel_time: 0.0
              cooldown_remaining: 0.0
              is_activated: true
              is_toggled: false
              is_in_ability_phase: false
              is_channeling: false
              is_stolen: false
            }
            modifiers {
              name: "modifier_tower_truesight_aura"
              stack_count: 0
            }
          }
          units {
            handle: 0
            unit_type: FORT
            name: "npc_dota_goodguys_fort"
            team_id: 2
            level: 1
            location {
              x: -5919
              y: -5351
              z: 367
            }
            is_alive: true
            bounding_radius: 298
            facing: 345
            ground_height: 384
            vision_range_daytime: 2600
            vision_range_nighttime: 2600
            health: 4250
            health_max: 4250
            health_regen: 3.0
            mana: 0
            mana_max: 0
            mana_regen: 0.0
            base_movement_speed: 0
            current_movement_speed: 100
            anim_activity: -1
            anim_cycle: 0.0
            base_damage: 0
            base_damage_variance: 0
            bonus_damage: 0
            attack_damage: 0
            attack_range: 0
            attack_speed: 1
            attack_anim_point: 0.0
            attack_acquisition_range: 0
            attack_projectile_speed: 0
            bounty_xp: 0
            bounty_gold_min: 0
            bounty_gold_max: 0
            is_channeling: false
            is_attack_immune: false
            is_blind: false
            is_block_disabled: false
            is_disarmed: false
            is_evade_disabled: false
            is_hexed: false
            is_invisible: false
            is_invulnerable: true
            is_magic_immune: false
            is_muted: false
            is_nightmared: false
            is_rooted: false
            is_silenced: false
            is_specially_deniable: false
            is_stunned: false
            is_unable_to_miss: false
            has_scepter: false
            abilities {
              handle: 0
              ability_id: 5351
              slot: 0
              caster_handle: 0
              cast_range: 0
              channel_time: 0.0
              is_in_ability_phase: false
              is_channeling: false
              is_stolen: false
            }
            modifiers {
              name: "modifier_invulnerable"
              stack_count: 0
            }
            modifiers {
              name: "modifier_tower_truesight_aura"
              stack_count: 0
            }
            modifiers {
              name: "modifier_backdoor_protection_active"
              stack_count: 0
              ability_handle: 0
              ability_id: 5351
            }
          }
          units {
            handle: 0
            unit_type: SHRINE
            name: "npc_dota_goodguys_healers"
            team_id: 2
            level: 1
            location {
              x: -5120
              y: -4628
              z: 384
            }
            is_alive: true
            bounding_radius: 96
            facing: 310
            ground_height: 384
            vision_range_daytime: 0
            vision_range_nighttime: 0
            health: 1500
            health_max: 1500
            health_regen: 0.0
            mana: 0
            mana_max: 0
            mana_regen: 0.0
            base_movement_speed: 0
            current_movement_speed: 100
            anim_activity: -1
            anim_cycle: 0.0
            base_damage: 0
            base_damage_variance: 0
            bonus_damage: 0
            attack_damage: 0
            attack_range: 0
            attack_speed: 1
            attack_anim_point: 0.0
            attack_acquisition_range: 0
            attack_projectile_speed: 0
            bounty_xp: 0
            bounty_gold_min: 0
            bounty_gold_max: 0
            is_channeling: false
            is_attack_immune: false
            is_blind: false
            is_block_disabled: false
            is_disarmed: false
            is_evade_disabled: false
            is_hexed: false
            is_invisible: false
            is_invulnerable: true
            is_magic_immune: false
            is_muted: false
            is_nightmared: false
            is_rooted: false
            is_silenced: false
            is_specially_deniable: false
            is_stunned: false
            is_unable_to_miss: false
            has_scepter: false
            abilities {
              handle: 0
              ability_id: 5351
              slot: 0
              caster_handle: 0
              cast_range: 0
              channel_time: 0.0
              is_in_ability_phase: false
              is_channeling: false
              is_stolen: false
            }
            abilities {
              handle: 0
              ability_id: 6226
              slot: 1
              caster_handle: 0
              cast_range: 0
              channel_time: 0.0
              is_in_ability_phase: false
              is_channeling: false
              is_stolen: false
            }
            modifiers {
              name: "modifier_invulnerable"
              stack_count: 0
            }
            modifiers {
              name: "modifier_backdoor_protection_active"
              stack_count: 0
              ability_handle: 0
              ability_id: 5351
            }
            shrine_cooldown: 0.0
            is_shrine_healing: false
          }
          units {
            handle: 0
            unit_type: SHRINE
            name: "npc_dota_goodguys_healers"
            team_id: 2
            level: 1
            location {
              x: -5616
              y: -3749
              z: 383
            }
            is_alive: true
            bounding_radius: 96
            facing: 310
            ground_height: 384
            vision_range_daytime: 0
            vision_range_nighttime: 0
            health: 1500
            health_max: 1500
            health_regen: 0.0
            mana: 0
            mana_max: 0
            mana_regen: 0.0
            base_movement_speed: 0
            current_movement_speed: 100
            anim_activity: -1
            anim_cycle: 0.0
            base_damage: 0
            base_damage_variance: 0
            bonus_damage: 0
            attack_damage: 0
            attack_range: 0
            attack_speed: 1
            attack_anim_point: 0.0
            attack_acquisition_range: 0
            attack_projectile_speed: 0
            bounty_xp: 0
            bounty_gold_min: 0
            bounty_gold_max: 0
            is_channeling: false
            is_attack_immune: false
            is_blind: false
            is_block_disabled: false
            is_disarmed: false
            is_evade_disabled: false
            is_hexed: false
            is_invisible: false
            is_invulnerable: true
            is_magic_immune: false
            is_muted: false
            is_nightmared: false
            is_rooted: false
            is_silenced: false
            is_specially_deniable: false
            is_stunned: false
            is_unable_to_miss: false
            has_scepter: false
            abilities {
              handle: 0
              ability_id: 5351
              slot: 0
              caster_handle: 0
              cast_range: 0
              channel_time: 0.0
              is_in_ability_phase: false
              is_channeling: false
              is_stolen: false
            }
            abilities {
              handle: 0
              ability_id: 6226
              slot: 1
              caster_handle: 0
              cast_range: 0
              channel_time: 0.0
              is_in_ability_phase: false
              is_channeling: false
              is_stolen: false
            }
            modifiers {
              name: "modifier_invulnerable"
              stack_count: 0
            }
            modifiers {
              name: "modifier_backdoor_protection_active"
              stack_count: 0
              ability_handle: 0
              ability_id: 5351
            }
            shrine_cooldown: 0.0
            is_shrine_healing: false
          }
          units {
            handle: 0
            unit_type: LANE_CREEP
            name: "npc_dota_creep_badguys_melee"
            team_id: 3
            level: 3
            location {
              x: 3126
              y: 5719
              z: 384
            }
            is_alive: true
            bounding_radius: 16
            facing: 39
            ground_height: 384
            vision_range_daytime: 750
            vision_range_nighttime: 750
            health: 646
            health_max: 646
            health_regen: 0.5
            mana: 0
            mana_max: 0
            mana_regen: 0.0
            base_movement_speed: 325
            current_movement_speed: 325
            anim_activity: 1503
            anim_cycle: 0.2142333984375
            base_damage: 29
            base_damage_variance: 2
            bonus_damage: 0
            attack_damage: 29
            attack_range: 100
            attack_speed: 1
            attack_anim_point: 0.46700000762939453
            attack_acquisition_range: 500
            attack_projectile_speed: 0
            attack_target_handle: 0
            bounty_xp: 40
            bounty_gold_min: 42
            bounty_gold_max: 46
            is_channeling: false
            is_attack_immune: false
            is_blind: false
            is_block_disabled: false
            is_disarmed: false
            is_evade_disabled: false
            is_hexed: false
            is_invisible: false
            is_invulnerable: false
            is_magic_immune: false
            is_muted: false
            is_nightmared: false
            is_rooted: false
            is_silenced: false
            is_specially_deniable: false
            is_stunned: false
            is_unable_to_miss: false
            has_scepter: false
          }
          units {
            handle: 0
            unit_type: TOWER
            name: "npc_dota_goodguys_tower4"
            team_id: 2
            level: 4
            location {
              x: -5391
              y: -5191
              z: 383
            }
            is_alive: true
            bounding_radius: 144
            facing: 19
            ground_height: 384
            vision_range_daytime: 1900
            vision_range_nighttime: 800
            health: 1600
            health_max: 1600
            health_regen: 3.0
            mana: 0
            mana_max: 0
            mana_regen: 0.0
            base_movement_speed: 0
            current_movement_speed: 100
            anim_activity: 1500
            anim_cycle: 0.93359375
            base_damage: 152
            base_damage_variance: 10
            bonus_damage: 0
            attack_damage: 152
            attack_range: 700
            attack_speed: 1
            attack_anim_point: 0.6000000238418579
            attack_acquisition_range: 700
            attack_projectile_speed: 750
            bounty_xp: 0
            bounty_gold_min: 0
            bounty_gold_max: 0
            is_channeling: false
            is_attack_immune: false
            is_blind: false
            is_block_disabled: false
            is_disarmed: false
            is_evade_disabled: false
            is_hexed: false
            is_invisible: false
            is_invulnerable: true
            is_magic_immune: false
            is_muted: false
            is_nightmared: false
            is_rooted: false
            is_silenced: false
            is_specially_deniable: false
            is_stunned: false
            is_unable_to_miss: false
            has_scepter: false
            abilities {
              handle: 0
              ability_id: 5351
              slot: 0
              caster_handle: 0
              cast_range: 0
              channel_time: 0.0
              is_in_ability_phase: false
              is_channeling: false
              is_stolen: false
            }
            modifiers {
              name: "modifier_invulnerable"
              stack_count: 0
            }
            modifiers {
              name: "modifier_tower_truesight_aura"
              stack_count: 0
            }
            modifiers {
              name: "modifier_tower_aura"
              stack_count: 0
            }
            modifiers {
              name: "modifier_tower_armor_bonus"
              stack_count: 0
            }
            modifiers {
              name: "modifier_backdoor_protection_active"
              stack_count: 0
              ability_handle: 0
              ability_id: 5351
            }
          }
          units {
            handle: 0
            unit_type: SHRINE
            name: "npc_dota_goodguys_healers"
            team_id: 2
            level: 1
            location {
              x: -4383
              y: -5206
              z: 384
            }
            is_alive: true
            bounding_radius: 96
            facing: 310
            ground_height: 384
            vision_range_daytime: 0
            vision_range_nighttime: 0
            health: 1500
            health_max: 1500
            health_regen: 0.0
            mana: 0
            mana_max: 0
            mana_regen: 0.0
            base_movement_speed: 0
            current_movement_speed: 100
            anim_activity: -1
            anim_cycle: 0.0
            base_damage: 0
            base_damage_variance: 0
            bonus_damage: 0
            attack_damage: 0
            attack_range: 0
            attack_speed: 1
            attack_anim_point: 0.0
            attack_acquisition_range: 0
            attack_projectile_speed: 0
            bounty_xp: 0
            bounty_gold_min: 0
            bounty_gold_max: 0
            is_channeling: false
            is_attack_immune: false
            is_blind: false
            is_block_disabled: false
            is_disarmed: false
            is_evade_disabled: false
            is_hexed: false
            is_invisible: false
            is_invulnerable: true
            is_magic_immune: false
            is_muted: false
            is_nightmared: false
            is_rooted: false
            is_silenced: false
            is_specially_deniable: false
            is_stunned: false
            is_unable_to_miss: false
            has_scepter: false
            abilities {
              handle: 0
              ability_id: 5351
              slot: 0
              caster_handle: 0
              cast_range: 0
              channel_time: 0.0
              is_in_ability_phase: false
              is_channeling: false
              is_stolen: false
            }
            abilities {
              handle: 0
              ability_id: 6226
              slot: 1
              caster_handle: 0
              cast_range: 0
              channel_time: 0.0
              is_in_ability_phase: false
              is_channeling: false
              is_stolen: false
            }
            modifiers {
              name: "modifier_invulnerable"
              stack_count: 0
            }
            modifiers {
              name: "modifier_backdoor_protection_active"
              stack_count: 0
              ability_handle: 0
              ability_id: 5351
            }
            shrine_cooldown: 0.0
            is_shrine_healing: false
          }
          units {
            handle: 0
            unit_type: BUILDING
            name: "npc_dota_goodguys_fillers"
            team_id: 2
            level: 1
            location {
              x: -6627
              y: -4224
              z: 368
            }
            is_alive: true
            bounding_radius: 96
            facing: 187
            ground_height: 384
            vision_range_daytime: 900
            vision_range_nighttime: 600
            health: 1000
            health_max: 1000
            health_regen: 0.0
            mana: 0
            mana_max: 0
            mana_regen: 0.0
            base_movement_speed: 0
            current_movement_speed: 100
            anim_activity: -1
            anim_cycle: 0.0
            base_damage: 0
            base_damage_variance: 0
            bonus_damage: 0
            attack_damage: 0
            attack_range: 0
            attack_speed: 1
            attack_anim_point: 0.0
            attack_acquisition_range: 0
            attack_projectile_speed: 0
            bounty_xp: 0
            bounty_gold_min: 125
            bounty_gold_max: 125
            is_channeling: false
            is_attack_immune: false
            is_blind: false
            is_block_disabled: false
            is_disarmed: false
            is_evade_disabled: false
            is_hexed: false
            is_invisible: false
            is_invulnerable: true
            is_magic_immune: false
            is_muted: false
            is_nightmared: false
            is_rooted: false
            is_silenced: false
            is_specially_deniable: false
            is_stunned: false
            is_unable_to_miss: false
            has_scepter: false
            abilities {
              handle: 0
              ability_id: 5351
              slot: 0
              caster_handle: 0
              cast_range: 0
              channel_time: 0.0
              is_in_ability_phase: false
              is_channeling: false
              is_stolen: false
            }
            modifiers {
              name: "modifier_invulnerable"
              stack_count: 0
            }
            modifiers {
              name: "modifier_backdoor_protection_active"
              stack_count: 0
              ability_handle: 0
              ability_id: 5351
            }
          }
          units {
            handle: 0
            unit_type: BUILDING
            name: "npc_dota_goodguys_fillers"
            team_id: 2
            level: 1
            location {
              x: -5876
              y: -4309
              z: 368
            }
            is_alive: true
            bounding_radius: 96
            facing: 186
            ground_height: 384
            vision_range_daytime: 900
            vision_range_nighttime: 600
            health: 1000
            health_max: 1000
            health_regen: 0.0
            mana: 0
            mana_max: 0
            mana_regen: 0.0
            base_movement_speed: 0
            current_movement_speed: 100
            anim_activity: -1
            anim_cycle: 0.0
            base_damage: 0
            base_damage_variance: 0
            bonus_damage: 0
            attack_damage: 0
            attack_range: 0
            attack_speed: 1
            attack_anim_point: 0.0
            attack_acquisition_range: 0
            attack_projectile_speed: 0
            bounty_xp: 0
            bounty_gold_min: 125
            bounty_gold_max: 125
            is_channeling: false
            is_attack_immune: false
            is_blind: false
            is_block_disabled: false
            is_disarmed: false
            is_evade_disabled: false
            is_hexed: false
            is_invisible: false
            is_invulnerable: true
            is_magic_immune: false
            is_muted: false
            is_nightmared: false
            is_rooted: false
            is_silenced: false
            is_specially_deniable: false
            is_stunned: false
            is_unable_to_miss: false
            has_scepter: false
            abilities {
              handle: 0
              ability_id: 5351
              slot: 0
              caster_handle: 0
              cast_range: 0
              channel_time: 0.0
              is_in_ability_phase: false
              is_channeling: false
              is_stolen: false
            }
            modifiers {
              name: "modifier_invulnerable"
              stack_count: 0
            }
            modifiers {
              name: "modifier_backdoor_protection_active"
              stack_count: 0
              ability_handle: 0
              ability_id: 5351
            }
          }
          units {
            handle: 0
            unit_type: SHRINE
            name: "npc_dota_badguys_healers"
            team_id: 3
            level: 1
            location {
              x: -128
              y: 2528
              z: 385
            }
            is_alive: true
            bounding_radius: 96
            facing: 0
            ground_height: 384
            vision_range_daytime: 0
            vision_range_nighttime: 0
            health: 8
            health_max: 1500
            health_regen: 0.0
            mana: 0
            mana_max: 0
            mana_regen: 0.0
            base_movement_speed: 0
            current_movement_speed: 100
            anim_activity: -1
            anim_cycle: 0.0
            base_damage: 0
            base_damage_variance: 0
            bonus_damage: 0
            attack_damage: 0
            attack_range: 0
            attack_speed: 1
            attack_anim_point: 0.0
            attack_acquisition_range: 0
            attack_projectile_speed: 0
            bounty_xp: 0
            bounty_gold_min: 0
            bounty_gold_max: 0
            is_channeling: false
            is_attack_immune: false
            is_blind: false
            is_block_disabled: false
            is_disarmed: false
            is_evade_disabled: false
            is_hexed: false
            is_invisible: false
            is_invulnerable: false
            is_magic_immune: false
            is_muted: false
            is_nightmared: false
            is_rooted: false
            is_silenced: false
            is_specially_deniable: false
            is_stunned: false
            is_unable_to_miss: false
            has_scepter: false
            abilities {
              handle: 0
              ability_id: 5351
              slot: 0
              caster_handle: 0
              level: 1
              cast_range: 0
              channel_time: 0.0
              cooldown_remaining: 0.0
              is_activated: true
              is_toggled: false
              is_in_ability_phase: false
              is_channeling: false
              is_stolen: false
            }
            abilities {
              handle: 0
              ability_id: 6226
              slot: 1
              caster_handle: 0
              level: 1
              cast_range: 0
              channel_time: 0.0
              cooldown_remaining: 0.0
              is_activated: true
              is_toggled: false
              is_in_ability_phase: false
              is_channeling: false
              is_stolen: false
            }
            shrine_cooldown: 0.0
            is_shrine_healing: false
          }
          units {
            handle: 0
            unit_type: SHRINE
            name: "npc_dota_badguys_healers"
            team_id: 3
            level: 1
            location {
              x: 4191
              y: -1599
              z: 385
            }
            is_alive: true
            bounding_radius: 96
            facing: 0
            ground_height: 384
            vision_range_daytime: 0
            vision_range_nighttime: 0
            health: 1500
            health_max: 1500
            health_regen: 0.0
            mana: 0
            mana_max: 0
            mana_regen: 0.0
            base_movement_speed: 0
            current_movement_speed: 100
            anim_activity: -1
            anim_cycle: 0.0
            base_damage: 0
            base_damage_variance: 0
            bonus_damage: 0
            attack_damage: 0
            attack_range: 0
            attack_speed: 1
            attack_anim_point: 0.0
            attack_acquisition_range: 0
            attack_projectile_speed: 0
            bounty_xp: 0
            bounty_gold_min: 0
            bounty_gold_max: 0
            is_channeling: false
            is_attack_immune: false
            is_blind: false
            is_block_disabled: false
            is_disarmed: false
            is_evade_disabled: false
            is_hexed: false
            is_invisible: false
            is_invulnerable: false
            is_magic_immune: false
            is_muted: false
            is_nightmared: false
            is_rooted: false
            is_silenced: false
            is_specially_deniable: false
            is_stunned: false
            is_unable_to_miss: false
            has_scepter: false
            abilities {
              handle: 0
              ability_id: 5351
              slot: 0
              caster_handle: 0
              level: 1
              cast_range: 0
              channel_time: 0.0
              cooldown_remaining: 0.0
              is_activated: true
              is_toggled: false
              is_in_ability_phase: false
              is_channeling: false
              is_stolen: false
            }
            abilities {
              handle: 0
              ability_id: 6226
              slot: 1
              caster_handle: 0
              level: 1
              cast_range: 0
              channel_time: 0.0
              cooldown_remaining: 0.0
              is_activated: true
              is_toggled: false
              is_in_ability_phase: false
              is_channeling: false
              is_stolen: false
            }
            shrine_cooldown: 0.0
            is_shrine_healing: false
          }
          units {
            handle: 0
            unit_type: SHRINE
            name: "npc_dota_goodguys_healers"
            team_id: 2
            level: 1
            location {
              x: -4224
              y: 1279
              z: 384
            }
            is_alive: true
            bounding_radius: 96
            facing: 310
            ground_height: 384
            vision_range_daytime: 0
            vision_range_nighttime: 0
            health: 1500
            health_max: 1500
            health_regen: 0.0
            mana: 0
            mana_max: 0
            mana_regen: 0.0
            base_movement_speed: 0
            current_movement_speed: 100
            anim_activity: -1
            anim_cycle: 0.0
            base_damage: 0
            base_damage_variance: 0
            bonus_damage: 0
            attack_damage: 0
            attack_range: 0
            attack_speed: 1
            attack_anim_point: 0.0
            attack_acquisition_range: 0
            attack_projectile_speed: 0
            bounty_xp: 0
            bounty_gold_min: 0
            bounty_gold_max: 0
            is_channeling: false
            is_attack_immune: false
            is_blind: false
            is_block_disabled: false
            is_disarmed: false
            is_evade_disabled: false
            is_hexed: false
            is_invisible: false
            is_invulnerable: true
            is_magic_immune: false
            is_muted: false
            is_nightmared: false
            is_rooted: false
            is_silenced: false
            is_specially_deniable: false
            is_stunned: false
            is_unable_to_miss: false
            has_scepter: false
            abilities {
              handle: 0
              ability_id: 5351
              slot: 0
              caster_handle: 0
              cast_range: 0
              channel_time: 0.0
              is_in_ability_phase: false
              is_channeling: false
              is_stolen: false
            }
            abilities {
              handle: 0
              ability_id: 6226
              slot: 1
              caster_handle: 0
              cast_range: 0
              channel_time: 0.0
              is_in_ability_phase: false
              is_channeling: false
              is_stolen: false
            }
            modifiers {
              name: "modifier_invulnerable"
              stack_count: 0
            }
            shrine_cooldown: 0.0
            is_shrine_healing: false
          }
          units {
            handle: 0
            unit_type: SHRINE
            name: "npc_dota_goodguys_healers"
            team_id: 2
            level: 1
            location {
              x: 639
              y: -2560
              z: 384
            }
            is_alive: true
            bounding_radius: 96
            facing: 310
            ground_height: 384
            vision_range_daytime: 0
            vision_range_nighttime: 0
            health: 1500
            health_max: 1500
            health_regen: 0.0
            mana: 0
            mana_max: 0
            mana_regen: 0.0
            base_movement_speed: 0
            current_movement_speed: 100
            anim_activity: -1
            anim_cycle: 0.0
            base_damage: 0
            base_damage_variance: 0
            bonus_damage: 0
            attack_damage: 0
            attack_range: 0
            attack_speed: 1
            attack_anim_point: 0.0
            attack_acquisition_range: 0
            attack_projectile_speed: 0
            bounty_xp: 0
            bounty_gold_min: 0
            bounty_gold_max: 0
            is_channeling: false
            is_attack_immune: false
            is_blind: false
            is_block_disabled: false
            is_disarmed: false
            is_evade_disabled: false
            is_hexed: false
            is_invisible: false
            is_invulnerable: true
            is_magic_immune: false
            is_muted: false
            is_nightmared: false
            is_rooted: false
            is_silenced: false
            is_specially_deniable: false
            is_stunned: false
            is_unable_to_miss: false
            has_scepter: false
            abilities {
              handle: 0
              ability_id: 5351
              slot: 0
              caster_handle: 0
              cast_range: 0
              channel_time: 0.0
              is_in_ability_phase: false
              is_channeling: false
              is_stolen: false
            }
            abilities {
              handle: 0
              ability_id: 6226
              slot: 1
              caster_handle: 0
              cast_range: 0
              channel_time: 0.0
              is_in_ability_phase: false
              is_channeling: false
              is_stolen: false
            }
            modifiers {
              name: "modifier_invulnerable"
              stack_count: 0
            }
            shrine_cooldown: 0.0
            is_shrine_healing: false
          }
          units {
            handle: 0
            unit_type: BUILDING
            name: "npc_dota_goodguys_fillers"
            team_id: 2
            level: 1
            location {
              x: -4789
              y: -6080
              z: 368
            }
            is_alive: true
            bounding_radius: 96
            facing: 189
            ground_height: 384
            vision_range_daytime: 900
            vision_range_nighttime: 600
            health: 1000
            health_max: 1000
            health_regen: 0.0
            mana: 0
            mana_max: 0
            mana_regen: 0.0
            base_movement_speed: 0
            current_movement_speed: 100
            anim_activity: -1
            anim_cycle: 0.0
            base_damage: 0
            base_damage_variance: 0
            bonus_damage: 0
            attack_damage: 0
            attack_range: 0
            attack_speed: 1
            attack_anim_point: 0.0
            attack_acquisition_range: 0
            attack_projectile_speed: 0
            bounty_xp: 0
            bounty_gold_min: 125
            bounty_gold_max: 125
            is_channeling: false
            is_attack_immune: false
            is_blind: false
            is_block_disabled: false
            is_disarmed: false
            is_evade_disabled: false
            is_hexed: false
            is_invisible: false
            is_invulnerable: true
            is_magic_immune: false
            is_muted: false
            is_nightmared: false
            is_rooted: false
            is_silenced: false
            is_specially_deniable: false
            is_stunned: false
            is_unable_to_miss: false
            has_scepter: false
            abilities {
              handle: 0
              ability_id: 5351
              slot: 0
              caster_handle: 0
              cast_range: 0
              channel_time: 0.0
              is_in_ability_phase: false
              is_channeling: false
              is_stolen: false
            }
            modifiers {
              name: "modifier_invulnerable"
              stack_count: 0
            }
            modifiers {
              name: "modifier_backdoor_protection_active"
              stack_count: 0
              ability_handle: 0
              ability_id: 5351
            }
          }
          units {
            handle: 0
            unit_type: BUILDING
            name: "npc_dota_goodguys_fillers"
            team_id: 2
            level: 1
            location {
              x: -5382
              y: -4839
              z: 368
            }
            is_alive: true
            bounding_radius: 96
            facing: 183
            ground_height: 384
            vision_range_daytime: 900
            vision_range_nighttime: 600
            health: 1000
            health_max: 1000
            health_regen: 0.0
            mana: 0
            mana_max: 0
            mana_regen: 0.0
            base_movement_speed: 0
            current_movement_speed: 100
            anim_activity: -1
            anim_cycle: 0.0
            base_damage: 0
            base_damage_variance: 0
            bonus_damage: 0
            attack_damage: 0
            attack_range: 0
            attack_speed: 1
            attack_anim_point: 0.0
            attack_acquisition_range: 0
            attack_projectile_speed: 0
            bounty_xp: 0
            bounty_gold_min: 125
            bounty_gold_max: 125
            is_channeling: false
            is_attack_immune: false
            is_blind: false
            is_block_disabled: false
            is_disarmed: false
            is_evade_disabled: false
            is_hexed: false
            is_invisible: false
            is_invulnerable: true
            is_magic_immune: false
            is_muted: false
            is_nightmared: false
            is_rooted: false
            is_silenced: false
            is_specially_deniable: false
            is_stunned: false
            is_unable_to_miss: false
            has_scepter: false
            abilities {
              handle: 0
              ability_id: 5351
              slot: 0
              caster_handle: 0
              cast_range: 0
              channel_time: 0.0
              is_in_ability_phase: false
              is_channeling: false
              is_stolen: false
            }
            modifiers {
              name: "modifier_invulnerable"
              stack_count: 0
            }
            modifiers {
              name: "modifier_backdoor_protection_active"
              stack_count: 0
              ability_handle: 0
              ability_id: 5351
            }
          }
          units {
            handle: 0
            unit_type: BUILDING
            name: "npc_dota_goodguys_fillers"
            team_id: 2
            level: 1
            location {
              x: -4819
              y: -5286
              z: 368
            }
            is_alive: true
            bounding_radius: 96
            facing: 187
            ground_height: 384
            vision_range_daytime: 900
            vision_range_nighttime: 600
            health: 1000
            health_max: 1000
            health_regen: 0.0
            mana: 0
            mana_max: 0
            mana_regen: 0.0
            base_movement_speed: 0
            current_movement_speed: 100
            anim_activity: -1
            anim_cycle: 0.0
            base_damage: 0
            base_damage_variance: 0
            bonus_damage: 0
            attack_damage: 0
            attack_range: 0
            attack_speed: 1
            attack_anim_point: 0.0
            attack_acquisition_range: 0
            attack_projectile_speed: 0
            bounty_xp: 0
            bounty_gold_min: 125
            bounty_gold_max: 125
            is_channeling: false
            is_attack_immune: false
            is_blind: false
            is_block_disabled: false
            is_disarmed: false
            is_evade_disabled: false
            is_hexed: false
            is_invisible: false
            is_invulnerable: true
            is_magic_immune: false
            is_muted: false
            is_nightmared: false
            is_rooted: false
            is_silenced: false
            is_specially_deniable: false
            is_stunned: false
            is_unable_to_miss: false
            has_scepter: false
            abilities {
              handle: 0
              ability_id: 5351
              slot: 0
              caster_handle: 0
              cast_range: 0
              channel_time: 0.0
              is_in_ability_phase: false
              is_channeling: false
              is_stolen: false
            }
            modifiers {
              name: "modifier_invulnerable"
              stack_count: 0
            }
            modifiers {
              name: "modifier_backdoor_protection_active"
              stack_count: 0
              ability_handle: 0
              ability_id: 5351
            }
          }
          units {
            handle: 0
            unit_type: LANE_CREEP
            name: "npc_dota_creep_badguys_melee"
            team_id: 3
            level: 3
            location {
              x: 3236
              y: 2746
              z: 256
            }
            is_alive: true
            bounding_radius: 16
            facing: 222
            ground_height: 256
            vision_range_daytime: 750
            vision_range_nighttime: 750
            health: 555
            health_max: 646
            health_regen: 0.5
            mana: 0
            mana_max: 0
            mana_regen: 0.0
            base_movement_speed: 325
            current_movement_speed: 325
            anim_activity: 1503
            anim_cycle: 0.7143728733062744
            base_damage: 29
            base_damage_variance: 2
            bonus_damage: 0
            attack_damage: 29
            attack_range: 100
            attack_speed: 1
            attack_anim_point: 0.46700000762939453
            attack_acquisition_range: 500
            attack_projectile_speed: 0
            attack_target_handle: 0
            bounty_xp: 40
            bounty_gold_min: 42
            bounty_gold_max: 46
            is_channeling: false
            is_attack_immune: false
            is_blind: false
            is_block_disabled: false
            is_disarmed: false
            is_evade_disabled: false
            is_hexed: false
            is_invisible: false
            is_invulnerable: false
            is_magic_immune: false
            is_muted: false
            is_nightmared: false
            is_rooted: false
            is_silenced: false
            is_specially_deniable: false
            is_stunned: false
            is_unable_to_miss: false
            has_scepter: false
            incoming_tracking_projectiles {
              caster_handle: 0
              caster_player_id: -1
              location {
                x: 3183
                y: 2674
                z: 345
              }
              velocity: 900
              is_dodgeable: true
              is_attack: true
            }
          }
          units {
            handle: 0
            unit_type: BUILDING
            name: "dota_fountain"
            team_id: 3
            level: 1
            location {
              x: 7472
              y: 6912
              z: 512
            }
            is_alive: true
            bounding_radius: 144
            facing: 143
            ground_height: 512
            vision_range_daytime: 1800
            vision_range_nighttime: 1800
            health: 500
            health_max: 500
            health_regen: 0.0
            mana: 0
            mana_max: 0
            mana_regen: 0.0
            base_movement_speed: 0
            current_movement_speed: 100
            anim_activity: -1
            anim_cycle: 0.0
            base_damage: 194
            base_damage_variance: 4
            bonus_damage: 0
            attack_damage: 194
            attack_range: 1200
            attack_speed: 1
            attack_anim_point: 0.0
            attack_acquisition_range: 1200
            attack_projectile_speed: 1400
            bounty_xp: 0
            bounty_gold_min: 0
            bounty_gold_max: 0
            is_channeling: false
            is_attack_immune: false
            is_blind: false
            is_block_disabled: false
            is_disarmed: false
            is_evade_disabled: false
            is_hexed: false
            is_invisible: false
            is_invulnerable: true
            is_magic_immune: false
            is_muted: false
            is_nightmared: false
            is_rooted: false
            is_silenced: false
            is_specially_deniable: false
            is_stunned: false
            is_unable_to_miss: false
            has_scepter: false
            modifiers {
              name: "modifier_invulnerable"
              stack_count: 0
            }
            modifiers {
              name: "modifier_fountain_aura"
              stack_count: 0
            }
            modifiers {
              name: "modifier_fountain_truesight_aura"
              stack_count: 0
            }
          }
          units {
            handle: 0
            unit_type: LANE_CREEP
            name: "npc_dota_creep_goodguys_ranged_upgraded_mega"
            team_id: 2
            level: 1
            location {
              x: 2907
              y: 2390
              z: 256
            }
            is_alive: true
            bounding_radius: 8
            facing: 47
            ground_height: 256
            vision_range_daytime: 750
            vision_range_nighttime: 750
            health: 1015
            health_max: 1015
            health_regen: 2.0
            mana: 500
            mana_max: 500
            mana_regen: 0.75
            base_movement_speed: 325
            current_movement_speed: 325
            anim_activity: 1503
            anim_cycle: 0.2333984375
            base_damage: 133
            base_damage_variance: 2
            bonus_damage: 0
            attack_damage: 133
            attack_range: 500
            attack_speed: 1
            attack_anim_point: 0.5
            attack_acquisition_range: 800
            attack_projectile_speed: 900
            bounty_xp: 25
            bounty_gold_min: 30
            bounty_gold_max: 38
            is_channeling: false
            is_attack_immune: false
            is_blind: false
            is_block_disabled: false
            is_disarmed: false
            is_evade_disabled: false
            is_hexed: false
            is_invisible: false
            is_invulnerable: false
            is_magic_immune: false
            is_muted: false
            is_nightmared: false
            is_rooted: false
            is_silenced: false
            is_specially_deniable: false
            is_stunned: false
            is_unable_to_miss: false
            has_scepter: false
          }
          units {
            handle: 0
            unit_type: LANE_CREEP
            name: "npc_dota_creep_goodguys_ranged_upgraded_mega"
            team_id: 2
            level: 1
            location {
              x: 6057
              y: 5068
              z: 384
            }
            is_alive: true
            bounding_radius: 8
            facing: 109
            ground_height: 384
            vision_range_daytime: 750
            vision_range_nighttime: 750
            health: 642
            health_max: 1015
            health_regen: 2.0
            mana: 500
            mana_max: 500
            mana_regen: 0.75
            base_movement_speed: 325
            current_movement_speed: 325
            anim_activity: 1503
            anim_cycle: 0.8932113647460938
            base_damage: 133
            base_damage_variance: 2
            bonus_damage: 0
            attack_damage: 133
            attack_range: 500
            attack_speed: 0
            attack_anim_point: 0.5
            attack_acquisition_range: 800
            attack_projectile_speed: 900
            bounty_xp: 25
            bounty_gold_min: 30
            bounty_gold_max: 38
            is_channeling: false
            is_attack_immune: false
            is_blind: false
            is_block_disabled: false
            is_disarmed: false
            is_evade_disabled: false
            is_hexed: false
            is_invisible: false
            is_invulnerable: false
            is_magic_immune: false
            is_muted: false
            is_nightmared: false
            is_rooted: false
            is_silenced: false
            is_specially_deniable: false
            is_stunned: false
            is_unable_to_miss: false
            has_scepter: false
            modifiers {
              name: "modifier_item_shivas_guard_aura"
              stack_count: 0
              ability_handle: 0
              ability_id: 119
              remaining_duration: 0.466552734375
            }
          }
          units {
            handle: 0
            unit_type: LANE_CREEP
            name: "npc_dota_creep_badguys_melee"
            team_id: 3
            level: 3
            location {
              x: 6007
              y: -4598
              z: 384
            }
            is_alive: true
            bounding_radius: 16
            facing: 318
            ground_height: 384
            vision_range_daytime: 750
            vision_range_nighttime: 750
            health: 301
            health_max: 646
            health_regen: 0.5
            mana: 0
            mana_max: 0
            mana_regen: 0.0
            base_movement_speed: 325
            current_movement_speed: 325
            anim_activity: 1503
            anim_cycle: 0.6071254014968872
            base_damage: 29
            base_damage_variance: 2
            bonus_damage: 0
            attack_damage: 29
            attack_range: 100
            attack_speed: 1
            attack_anim_point: 0.46700000762939453
            attack_acquisition_range: 500
            attack_projectile_speed: 0
            attack_target_handle: 0
            bounty_xp: 40
            bounty_gold_min: 42
            bounty_gold_max: 46
            is_channeling: false
            is_attack_immune: false
            is_blind: false
            is_block_disabled: false
            is_disarmed: false
            is_evade_disabled: false
            is_hexed: false
            is_invisible: false
            is_invulnerable: false
            is_magic_immune: false
            is_muted: false
            is_nightmared: false
            is_rooted: false
            is_silenced: false
            is_specially_deniable: false
            is_stunned: false
            is_unable_to_miss: false
            has_scepter: false
          }
          units {
            handle: 0
            unit_type: LANE_CREEP
            name: "npc_dota_creep_goodguys_melee_upgraded_mega"
            team_id: 2
            level: 1
            location {
              x: 5937
              y: 5434
              z: 384
            }
            is_alive: true
            bounding_radius: 16
            facing: 114
            ground_height: 384
            vision_range_daytime: 750
            vision_range_nighttime: 750
            health: 404
            health_max: 1270
            health_regen: 0.5
            mana: 0
            mana_max: 0
            mana_regen: 0.0
            base_movement_speed: 325
            current_movement_speed: 325
            anim_activity: 1503
            anim_cycle: 0.9115028381347656
            base_damage: 100
            base_damage_variance: 4
            bonus_damage: 0
            attack_damage: 100
            attack_range: 100
            attack_speed: 0
            attack_anim_point: 0.46700000762939453
            attack_acquisition_range: 500
            attack_projectile_speed: 0
            bounty_xp: 25
            bounty_gold_min: 28
            bounty_gold_max: 36
            is_channeling: false
            is_attack_immune: false
            is_blind: false
            is_block_disabled: false
            is_disarmed: false
            is_evade_disabled: false
            is_hexed: false
            is_invisible: false
            is_invulnerable: false
            is_magic_immune: false
            is_muted: false
            is_nightmared: false
            is_rooted: false
            is_silenced: false
            is_specially_deniable: false
            is_stunned: false
            is_unable_to_miss: false
            has_scepter: false
            modifiers {
              name: "modifier_item_shivas_guard_aura"
              stack_count: 0
              ability_handle: 0
              ability_id: 119
              remaining_duration: 0.466552734375
            }
            modifiers {
              name: "modifier_desolator_buff"
              stack_count: 0
              ability_handle: 0
              ability_id: 168
              remaining_duration: 14.096923828125
            }
          }
          units {
            handle: 0
            unit_type: BUILDING
            name: "dota_fountain"
            team_id: 2
            level: 1
            location {
              x: -7456
              y: -6938
              z: 528
            }
            is_alive: true
            bounding_radius: 144
            facing: 65
            ground_height: 512
            vision_range_daytime: 1800
            vision_range_nighttime: 1800
            health: 500
            health_max: 500
            health_regen: 0.0
            mana: 0
            mana_max: 0
            mana_regen: 0.0
            base_movement_speed: 0
            current_movement_speed: 100
            anim_activity: -1
            anim_cycle: 0.0
            base_damage: 194
            base_damage_variance: 4
            bonus_damage: 0
            attack_damage: 194
            attack_range: 1200
            attack_speed: 1
            attack_anim_point: 0.0
            attack_acquisition_range: 1200
            attack_projectile_speed: 1400
            bounty_xp: 0
            bounty_gold_min: 0
            bounty_gold_max: 0
            is_channeling: false
            is_attack_immune: false
            is_blind: false
            is_block_disabled: false
            is_disarmed: false
            is_evade_disabled: false
            is_hexed: false
            is_invisible: false
            is_invulnerable: true
            is_magic_immune: false
            is_muted: false
            is_nightmared: false
            is_rooted: false
            is_silenced: false
            is_specially_deniable: false
            is_stunned: false
            is_unable_to_miss: false
            has_scepter: false
            modifiers {
              name: "modifier_invulnerable"
              stack_count: 0
            }
            modifiers {
              name: "modifier_fountain_aura"
              stack_count: 0
            }
            modifiers {
              name: "modifier_fountain_truesight_aura"
              stack_count: 0
            }
          }
          units {
            handle: 0
            unit_type: LANE_CREEP
            name: "npc_dota_creep_goodguys_melee_upgraded_mega"
            team_id: 2
            level: 1
            location {
              x: 6173
              y: -4810
              z: 384
            }
            is_alive: true
            bounding_radius: 16
            facing: 81
            ground_height: 384
            vision_range_daytime: 750
            vision_range_nighttime: 750
            health: 843
            health_max: 1270
            health_regen: 0.5
            mana: 0
            mana_max: 0
            mana_regen: 0.0
            base_movement_speed: 325
            current_movement_speed: 325
            anim_activity: 1502
            anim_cycle: 0.4689216613769531
            base_damage: 100
            base_damage_variance: 4
            bonus_damage: 0
            attack_damage: 100
            attack_range: 100
            attack_speed: 1
            attack_anim_point: 0.46700000762939453
            attack_acquisition_range: 500
            attack_projectile_speed: 0
            bounty_xp: 25
            bounty_gold_min: 28
            bounty_gold_max: 36
            is_channeling: false
            is_attack_immune: false
            is_blind: false
            is_block_disabled: false
            is_disarmed: false
            is_evade_disabled: false
            is_hexed: false
            is_invisible: false
            is_invulnerable: false
            is_magic_immune: false
            is_muted: false
            is_nightmared: false
            is_rooted: false
            is_silenced: false
            is_specially_deniable: false
            is_stunned: false
            is_unable_to_miss: false
            has_scepter: false
            modifiers {
              name: "modifier_item_veil_of_discord_debuff"
              stack_count: 0
              ability_handle: 0
              ability_id: 190
              remaining_duration: 14.294189453125
            }
          }
          units {
            handle: 0
            unit_type: LANE_CREEP
            name: "npc_dota_creep_badguys_melee"
            team_id: 3
            level: 3
            location {
              x: 3312
              y: 2762
              z: 256
            }
            is_alive: true
            bounding_radius: 16
            facing: 301
            ground_height: 256
            vision_range_daytime: 750
            vision_range_nighttime: 750
            health: 646
            health_max: 646
            health_regen: 0.5
            mana: 0
            mana_max: 0
            mana_regen: 0.0
            base_movement_speed: 325
            current_movement_speed: 325
            anim_activity: 1502
            anim_cycle: 0.6188507080078125
            base_damage: 29
            base_damage_variance: 2
            bonus_damage: 0
            attack_damage: 29
            attack_range: 100
            attack_speed: 1
            attack_anim_point: 0.46700000762939453
            attack_acquisition_range: 500
            attack_projectile_speed: 0
            bounty_xp: 40
            bounty_gold_min: 42
            bounty_gold_max: 46
            is_channeling: false
            is_attack_immune: false
            is_blind: false
            is_block_disabled: false
            is_disarmed: false
            is_evade_disabled: false
            is_hexed: false
            is_invisible: false
            is_invulnerable: false
            is_magic_immune: false
            is_muted: false
            is_nightmared: false
            is_rooted: false
            is_silenced: false
            is_specially_deniable: false
            is_stunned: false
            is_unable_to_miss: false
            has_scepter: false
          }
          units {
            handle: 0
            unit_type: LANE_CREEP
            name: "npc_dota_creep_badguys_melee"
            team_id: 3
            level: 3
            location {
              x: 6190
              y: 2515
              z: 362
            }
            is_alive: true
            bounding_radius: 16
            facing: 269
            ground_height: 362
            vision_range_daytime: 750
            vision_range_nighttime: 750
            health: 646
            health_max: 646
            health_regen: 0.5
            mana: 0
            mana_max: 0
            mana_regen: 0.0
            base_movement_speed: 325
            current_movement_speed: 325
            anim_activity: 1502
            anim_cycle: 0.9766082763671875
            base_damage: 29
            base_damage_variance: 2
            bonus_damage: 0
            attack_damage: 29
            attack_range: 100
            attack_speed: 1
            attack_anim_point: 0.46700000762939453
            attack_acquisition_range: 500
            attack_projectile_speed: 0
            bounty_xp: 40
            bounty_gold_min: 42
            bounty_gold_max: 46
            is_channeling: false
            is_attack_immune: false
            is_blind: false
            is_block_disabled: false
            is_disarmed: false
            is_evade_disabled: false
            is_hexed: false
            is_invisible: false
            is_invulnerable: false
            is_magic_immune: false
            is_muted: false
            is_nightmared: false
            is_rooted: false
            is_silenced: false
            is_specially_deniable: false
            is_stunned: false
            is_unable_to_miss: false
            has_scepter: false
          }
          units {
            handle: 0
            unit_type: HERO
            name: "npc_dota_hero_zuus"
            team_id: 3
            level: 25
            location {
              x: 6411
              y: -4527
              z: 384
            }
            is_alive: true
            bounding_radius: 24
            facing: 220
            ground_height: 384
            vision_range_daytime: 1800
            vision_range_nighttime: 800
            health: 3415
            health_max: 3415
            health_regen: 21.443998336791992
            mana: 973
            mana_max: 2453
            mana_regen: 0.009999999776482582
            base_movement_speed: 300
            current_movement_speed: 400
            anim_activity: 1503
            anim_cycle: 0.16803328692913055
            base_damage: 148
            base_damage_variance: 4
            bonus_damage: 30
            attack_damage: 178
            attack_range: 350
            attack_speed: 1
            attack_anim_point: 0.6330000162124634
            attack_acquisition_range: 800
            attack_projectile_speed: 1100
            attack_target_handle: 0
            bounty_xp: 2200
            bounty_gold_min: 0
            bounty_gold_max: 0
            is_channeling: false
            is_attack_immune: false
            is_blind: false
            is_block_disabled: false
            is_disarmed: false
            is_evade_disabled: false
            is_hexed: false
            is_invisible: false
            is_invulnerable: false
            is_magic_immune: false
            is_muted: false
            is_nightmared: false
            is_rooted: false
            is_silenced: false
            is_specially_deniable: false
            is_stunned: false
            is_unable_to_miss: false
            has_scepter: true
            abilities {
              handle: 0
              ability_id: 5110
              slot: 0
              caster_handle: 0
              level: 4
              cast_range: 850
              channel_time: 0.0
              cooldown_remaining: 0.19999992847442627
              is_activated: true
              is_toggled: false
              is_in_ability_phase: false
              is_channeling: false
              is_stolen: false
            }
            abilities {
              handle: 0
              ability_id: 5111
              slot: 1
              caster_handle: 0
              level: 4
              cast_range: 700
              channel_time: 0.0
              cooldown_remaining: 2.000002384185791
              is_activated: true
              is_toggled: false
              is_in_ability_phase: false
              is_channeling: false
              is_stolen: false
            }
            abilities {
              handle: 0
              ability_id: 5112
              slot: 2
              caster_handle: 0
              level: 4
              cast_range: 1200
              channel_time: 0.0
              cooldown_remaining: 0.0
              is_activated: true
              is_toggled: false
              is_in_ability_phase: false
              is_channeling: false
              is_stolen: false
            }
            abilities {
              handle: 0
              ability_id: 6325
              slot: 3
              caster_handle: 0
              level: 1
              cast_range: 0
              channel_time: 0.0
              cooldown_remaining: 14.249954223632812
              is_activated: true
              is_toggled: false
              is_in_ability_phase: false
              is_channeling: false
              is_stolen: false
            }
            abilities {
              handle: 0
              ability_id: 5113
              slot: 4
              caster_handle: 0
              level: 3
              cast_range: 0
              channel_time: 0.0
              cooldown_remaining: 0.0
              is_activated: true
              is_toggled: false
              is_in_ability_phase: false
              is_channeling: false
              is_stolen: false
            }
            items {
              handle: 0
              ability_id: 190
              slot: 0
              caster_handle: 0
              level: 1
              cast_range: 1000
              channel_time: 0.0
              cooldown_remaining: 13.299993515014648
              is_activated: true
              is_toggled: false
              is_in_ability_phase: false
              is_channeling: false
              is_stolen: false
              charges: 0
              secondary_charges: 0
              is_combined_locked: false
            }
            items {
              handle: 0
              ability_id: 121
              slot: 1
              caster_handle: 0
              level: 1
              cast_range: 150
              channel_time: 0.0
              cooldown_remaining: 0.0
              is_activated: true
              is_toggled: false
              is_in_ability_phase: false
              is_channeling: false
              is_stolen: false
              charges: 17
              secondary_charges: 0
              is_combined_locked: false
            }
            items {
              handle: 0
              ability_id: 220
              slot: 2
              caster_handle: 0
              level: 2
              cast_range: 0
              channel_time: 3.0
              cooldown_remaining: 0.0
              is_activated: true
              is_toggled: false
              is_in_ability_phase: false
              is_channeling: false
              is_stolen: false
              charges: 0
              secondary_charges: 0
              is_combined_locked: false
            }
            items {
              handle: 0
              ability_id: 116
              slot: 3
              caster_handle: 0
              level: 1
              cast_range: 0
              channel_time: 0.0
              cooldown_remaining: 0.0
              is_activated: true
              is_toggled: false
              is_in_ability_phase: false
              is_channeling: false
              is_stolen: false
              charges: 0
              secondary_charges: 0
              is_combined_locked: false
            }
            items {
              handle: 0
              ability_id: 235
              slot: 4
              caster_handle: 0
              level: 1
              cast_range: 0
              channel_time: 0.0
              cooldown_remaining: 0.0
              is_activated: true
              is_toggled: false
              is_in_ability_phase: false
              is_channeling: false
              is_stolen: false
              charges: 0
              secondary_charges: 0
              is_combined_locked: false
            }
            items {
              handle: 0
              ability_id: 108
              slot: 5
              caster_handle: 0
              level: 1
              cast_range: 600
              channel_time: 0.0
              cooldown_remaining: 0.0
              is_activated: true
              is_toggled: false
              is_in_ability_phase: false
              is_channeling: false
              is_stolen: false
              charges: 0
              secondary_charges: 0
              is_combined_locked: false
            }
            items {
              handle: 0
              ability_id: 110
              slot: 6
              caster_handle: 0
              level: 1
              cast_range: 0
              channel_time: 0.0
              cooldown_remaining: 88.04849243164062
              is_activated: true
              is_toggled: false
              is_in_ability_phase: false
              is_channeling: false
              is_stolen: false
              charges: 0
              secondary_charges: 0
              is_combined_locked: false
            }
            action_type: 1
            primary_attribute: 2
            is_illusion: false
            respawn_time: 49
            buyback_cost: 2005
            buyback_cooldown: 4170
            spell_amplifiction: 0.0884285643696785
            armor: 20
            magic_resist: 0
            evasion: 0.0
            xp_needed_to_level: 4294940324
            ability_points: 0
            reliable_gold: 1235
            unreliable_gold: 1260
            last_hits: 460
            denies: 11
          }
          units {
            handle: 0
            unit_type: LANE_CREEP
            name: "npc_dota_creep_badguys_melee"
            team_id: 3
            level: 3
            location {
              x: 6292
              y: 2118
              z: 256
            }
            is_alive: true
            bounding_radius: 16
            facing: 270
            ground_height: 256
            vision_range_daytime: 750
            vision_range_nighttime: 750
            health: 646
            health_max: 646
            health_regen: 0.5
            mana: 0
            mana_max: 0
            mana_regen: 0.0
            base_movement_speed: 325
            current_movement_speed: 325
            anim_activity: 1502
            anim_cycle: 0.0020341873168945312
            base_damage: 29
            base_damage_variance: 2
            bonus_damage: 0
            attack_damage: 29
            attack_range: 100
            attack_speed: 1
            attack_anim_point: 0.46700000762939453
            attack_acquisition_range: 500
            attack_projectile_speed: 0
            bounty_xp: 40
            bounty_gold_min: 42
            bounty_gold_max: 46
            is_channeling: false
            is_attack_immune: false
            is_blind: false
            is_block_disabled: false
            is_disarmed: false
            is_evade_disabled: false
            is_hexed: false
            is_invisible: false
            is_invulnerable: false
            is_magic_immune: false
            is_muted: false
            is_nightmared: false
            is_rooted: false
            is_silenced: false
            is_specially_deniable: false
            is_stunned: false
            is_unable_to_miss: false
            has_scepter: false
          }
          units {
            handle: 0
            unit_type: HERO
            name: "npc_dota_hero_phantom_assassin"
            team_id: 3
            level: 25
            location {
              x: 5881
              y: 5556
              z: 384
            }
            is_alive: true
            bounding_radius: 24
            facing: 277
            ground_height: 384
            vision_range_daytime: 1800
            vision_range_nighttime: 800
            health: 2925
            health_max: 2970
            health_regen: 26.59600067138672
            mana: 412
            mana_max: 427
            mana_regen: 0.009999999776482582
            base_movement_speed: 310
            current_movement_speed: 355
            anim_activity: 1503
            anim_cycle: 0.0
            base_damage: 157
            base_damage_variance: 1
            bonus_damage: 133
            attack_damage: 290
            attack_range: 150
            attack_speed: 2
            attack_anim_point: 0.30000001192092896
            attack_acquisition_range: 600
            attack_projectile_speed: 900
            attack_target_handle: 0
            bounty_xp: 2200
            bounty_gold_min: 0
            bounty_gold_max: 0
            is_channeling: false
            is_attack_immune: false
            is_blind: false
            is_block_disabled: false
            is_disarmed: false
            is_evade_disabled: false
            is_hexed: false
            is_invisible: false
            is_invulnerable: false
            is_magic_immune: false
            is_muted: false
            is_nightmared: false
            is_rooted: false
            is_silenced: false
            is_specially_deniable: false
            is_stunned: false
            is_unable_to_miss: false
            has_scepter: false
            abilities {
              handle: 0
              ability_id: 5190
              slot: 0
              caster_handle: 0
              level: 4
              cast_range: 1200
              channel_time: 0.0
              cooldown_remaining: 5.800000190734863
              is_activated: true
              is_toggled: false
              is_in_ability_phase: false
              is_channeling: false
              is_stolen: false
            }
            abilities {
              handle: 0
              ability_id: 5191
              slot: 1
              caster_handle: 0
              level: 4
              cast_range: 1000
              channel_time: 0.0
              cooldown_remaining: 0.0
              is_activated: true
              is_toggled: false
              is_in_ability_phase: false
              is_channeling: false
              is_stolen: false
            }
            abilities {
              handle: 0
              ability_id: 5192
              slot: 2
              caster_handle: 0
              level: 4
              cast_range: 0
              channel_time: 0.0
              cooldown_remaining: 0.0
              is_activated: true
              is_toggled: false
              is_in_ability_phase: false
              is_channeling: false
              is_stolen: false
            }
            abilities {
              handle: 0
              ability_id: 5193
              slot: 3
              caster_handle: 0
              level: 3
              cast_range: 0
              channel_time: 0.0
              cooldown_remaining: 0.0
              is_activated: true
              is_toggled: false
              is_in_ability_phase: false
              is_channeling: false
              is_stolen: false
            }
            abilities {
              handle: 0
              ability_id: 5902
              slot: 9
              caster_handle: 0
              level: 0
              cast_range: 0
              channel_time: 0.0
              cooldown_remaining: 0.0
              is_activated: true
              is_toggled: false
              is_in_ability_phase: false
              is_channeling: false
              is_stolen: false
            }
            items {
              handle: 0
              ability_id: 50
              slot: 0
              caster_handle: 0
              level: 1
              cast_range: 0
              channel_time: 0.0
              cooldown_remaining: 0.0
              is_activated: true
              is_toggled: false
              is_in_ability_phase: false
              is_channeling: false
              is_stolen: false
              charges: 0
              secondary_charges: 0
              is_combined_locked: false
            }
            items {
              handle: 0
              ability_id: 208
              slot: 1
              caster_handle: 0
              level: 1
              cast_range: 140
              channel_time: 0.0
              cooldown_remaining: 0.0
              is_activated: true
              is_toggled: false
              is_in_ability_phase: false
              is_channeling: false
              is_stolen: false
              charges: 0
              secondary_charges: 0
              is_combined_locked: false
            }
            items {
              handle: 0
              ability_id: 53
              slot: 2
              caster_handle: 0
              level: 1
              cast_range: 0
              channel_time: 0.0
              cooldown_remaining: 0.0
              is_activated: true
              is_toggled: false
              is_in_ability_phase: false
              is_channeling: false
              is_stolen: false
              charges: 0
              secondary_charges: 0
              is_combined_locked: false
            }
            items {
              handle: 0
              ability_id: 168
              slot: 3
              caster_handle: 0
              level: 1
              cast_range: 0
              channel_time: 0.0
              cooldown_remaining: 0.0
              is_activated: true
              is_toggled: false
              is_in_ability_phase: false
              is_channeling: false
              is_stolen: false
              charges: 0
              secondary_charges: 0
              is_combined_locked: false
            }
            items {
              handle: 0
              ability_id: 116
              slot: 4
              caster_handle: 0
              level: 5
              cast_range: 0
              channel_time: 0.0
              cooldown_remaining: 0.0
              is_activated: true
              is_toggled: false
              is_in_ability_phase: false
              is_channeling: false
              is_stolen: false
              charges: 0
              secondary_charges: 0
              is_combined_locked: false
            }
            items {
              handle: 0
              ability_id: 26
              slot: 5
              caster_handle: 0
              level: 1
              cast_range: 0
              channel_time: 0.0
              cooldown_remaining: 0.0
              is_activated: true
              is_toggled: false
              is_in_ability_phase: false
              is_channeling: false
              is_stolen: false
              charges: 0
              secondary_charges: 0
              is_combined_locked: false
            }
            items {
              handle: 0
              ability_id: 46
              slot: 7
              caster_handle: 0
              level: 1
              cast_range: 0
              channel_time: 5.0
              cooldown_remaining: 0.0
              is_activated: true
              is_toggled: false
              is_in_ability_phase: false
              is_channeling: false
              is_stolen: false
              charges: 1
              secondary_charges: 0
              is_combined_locked: false
            }
            modifiers {
              name: "modifier_phantom_assassin_blur_active"
              stack_count: 0
              ability_handle: 0
              ability_id: 5192
            }
            modifiers {
              name: "modifier_item_guardian_greaves_aura"
              stack_count: 0
              ability_handle: 0
              ability_id: 231
              remaining_duration: 0.466552734375
            }
            incoming_tracking_projectiles {
              caster_handle: 0
              caster_player_id: -1
              location {
                x: 5917
                y: 5408
                z: 488
              }
              velocity: 900
              is_dodgeable: true
              is_attack: true
            }
            incoming_tracking_projectiles {
              caster_handle: 0
              caster_player_id: -1
              location {
                x: 5733
                y: 5502
                z: 478
              }
              velocity: 900
              is_dodgeable: true
              is_attack: true
            }
            incoming_tracking_projectiles {
              caster_handle: 0
              caster_player_id: -1
              location {
                x: 5500
                y: 5350
                z: 549
              }
              velocity: 900
              is_dodgeable: true
              is_attack: true
            }
            action_type: 4
            primary_attribute: 1
            is_illusion: false
            respawn_time: 99
            buyback_cost: 2005
            buyback_cooldown: 0
            spell_amplifiction: 0.02328570745885372
            armor: 22
            magic_resist: 0
            evasion: 0.5
            xp_needed_to_level: 4294939158
            ability_points: 0
            reliable_gold: 709
            unreliable_gold: 322
            last_hits: 175
            denies: 8
          }
          units {
            handle: 0
            unit_type: HERO
            name: "npc_dota_hero_omniknight"
            team_id: 3
            level: 25
            location {
              x: 6436
              y: 5721
              z: 384
            }
            is_alive: true
            bounding_radius: 24
            facing: 257
            ground_height: 384
            vision_range_daytime: 1800
            vision_range_nighttime: 800
            health: 2595
            health_max: 2595
            health_regen: 16.683998107910156
            mana: 1215
            mana_max: 1215
            mana_regen: 0.009999999776482582
            base_movement_speed: 305
            current_movement_speed: 360
            anim_activity: 1503
            anim_cycle: 0.44673919677734375
            base_damage: 147
            base_damage_variance: 5
            bonus_damage: 0
            attack_damage: 147
            attack_range: 150
            attack_speed: 1
            attack_anim_point: 0.43299999833106995
            attack_acquisition_range: 600
            attack_projectile_speed: 900
            attack_target_handle: 0
            bounty_xp: 2200
            bounty_gold_min: 0
            bounty_gold_max: 0
            is_channeling: false
            is_attack_immune: false
            is_blind: false
            is_block_disabled: false
            is_disarmed: false
            is_evade_disabled: false
            is_hexed: false
            is_invisible: false
            is_invulnerable: false
            is_magic_immune: true
            is_muted: false
            is_nightmared: false
            is_rooted: false
            is_silenced: false
            is_specially_deniable: false
            is_stunned: false
            is_unable_to_miss: false
            has_scepter: true
            abilities {
              handle: 0
              ability_id: 5263
              slot: 0
              caster_handle: 0
              level: 4
              cast_range: 575
              channel_time: 0.0
              cooldown_remaining: 3.4000043869018555
              is_activated: true
              is_toggled: false
              is_in_ability_phase: false
              is_channeling: false
              is_stolen: false
            }
            abilities {
              handle: 0
              ability_id: 5264
              slot: 1
              caster_handle: 0
              level: 4
              cast_range: 500
              channel_time: 0.0
              cooldown_remaining: 13.799983978271484
              is_activated: true
              is_toggled: false
              is_in_ability_phase: false
              is_channeling: false
              is_stolen: false
            }
            abilities {
              handle: 0
              ability_id: 5265
              slot: 2
              caster_handle: 0
              level: 4
              cast_range: 350
              channel_time: 0.0
              cooldown_remaining: 0.0
              is_activated: true
              is_toggled: false
              is_in_ability_phase: false
              is_channeling: false
              is_stolen: false
            }
            abilities {
              handle: 0
              ability_id: 5266
              slot: 3
              caster_handle: 0
              level: 3
              cast_range: 0
              channel_time: 0.0
              cooldown_remaining: 92.69859313964844
              is_activated: true
              is_toggled: false
              is_in_ability_phase: false
              is_channeling: false
              is_stolen: false
            }
            abilities {
              handle: 0
              ability_id: 5956
              slot: 9
              caster_handle: 0
              level: 1
              cast_range: 0
              channel_time: 0.0
              cooldown_remaining: 0.0
              is_activated: true
              is_toggled: false
              is_in_ability_phase: false
              is_channeling: false
              is_stolen: false
            }
            items {
              handle: 0
              ability_id: 231
              slot: 0
              caster_handle: 0
              level: 1
              cast_range: 900
              channel_time: 0.0
              cooldown_remaining: 0.0
              is_activated: true
              is_toggled: false
              is_in_ability_phase: false
              is_channeling: false
              is_stolen: false
              charges: 0
              secondary_charges: 0
              is_combined_locked: false
            }
            items {
              handle: 0
              ability_id: 254
              slot: 1
              caster_handle: 0
              level: 1
              cast_range: 800
              channel_time: 0.0
              cooldown_remaining: 0.0
              is_activated: true
              is_toggled: false
              is_in_ability_phase: false
              is_channeling: false
              is_stolen: false
              charges: 0
              secondary_charges: 0
              is_combined_locked: false
            }
            items {
              handle: 0
              ability_id: 108
              slot: 2
              caster_handle: 0
              level: 1
              cast_range: 600
              channel_time: 0.0
              cooldown_remaining: 0.0
              is_activated: true
              is_toggled: false
              is_in_ability_phase: false
              is_channeling: false
              is_stolen: false
              charges: 0
              secondary_charges: 0
              is_combined_locked: false
            }
            items {
              handle: 0
              ability_id: 102
              slot: 3
              caster_handle: 0
              level: 1
              cast_range: 750
              channel_time: 0.0
              cooldown_remaining: 0.0
              is_activated: true
              is_toggled: false
              is_in_ability_phase: false
              is_channeling: false
              is_stolen: false
              charges: 0
              secondary_charges: 0
              is_combined_locked: false
            }
            items {
              handle: 0
              ability_id: 46
              slot: 4
              caster_handle: 0
              level: 1
              cast_range: 0
              channel_time: 3.0
              cooldown_remaining: 0.0
              is_activated: true
              is_toggled: false
              is_in_ability_phase: false
              is_channeling: false
              is_stolen: false
              charges: 3
              secondary_charges: 0
              is_combined_locked: false
            }
            items {
              handle: 0
              ability_id: 42
              slot: 5
              caster_handle: 0
              level: 1
              cast_range: 500
              channel_time: 0.0
              cooldown_remaining: 0.0
              is_activated: true
              is_toggled: false
              is_in_ability_phase: false
              is_channeling: false
              is_stolen: false
              charges: 2
              secondary_charges: 0
              is_combined_locked: false
            }
            items {
              handle: 0
              ability_id: 56
              slot: 6
              caster_handle: 0
              level: 1
              cast_range: 0
              channel_time: 0.0
              cooldown_remaining: 0.0
              is_activated: true
              is_toggled: false
              is_in_ability_phase: false
              is_channeling: false
              is_stolen: false
              charges: 0
              secondary_charges: 0
              is_combined_locked: false
            }
            modifiers {
              name: "modifier_item_guardian_greaves_aura"
              stack_count: 0
              ability_handle: 0
              ability_id: 231
              remaining_duration: 0.466552734375
            }
            modifiers {
              name: "modifier_oracle_purifying_flames"
              stack_count: 0
              ability_handle: 0
              ability_id: 5639
              remaining_duration: 1.675048828125
            }
            modifiers {
              name: "modifier_oracle_purifying_flames"
              stack_count: 0
              ability_handle: 0
              ability_id: 5639
              remaining_duration: 3.012939453125
            }
            modifiers {
              name: "modifier_oracle_purifying_flames"
              stack_count: 0
              ability_handle: 0
              ability_id: 5639
              remaining_duration: 4.3173828125
            }
            modifiers {
              name: "modifier_omniknight_repel"
              stack_count: 0
              ability_handle: 0
              ability_id: 5264
              remaining_duration: 2.78564453125
            }
            action_type: 4
            primary_attribute: 0
            is_illusion: false
            respawn_time: 99
            buyback_cost: 2005
            buyback_cooldown: 0
            spell_amplifiction: 0.04657141491770744
            armor: 20
            magic_resist: 1
            evasion: 0.0
            xp_needed_to_level: 4294939861
            ability_points: 0
            reliable_gold: 131
            unreliable_gold: 231
            last_hits: 100
            denies: 9
          }
          units {
            handle: 0
            unit_type: LANE_CREEP
            name: "npc_dota_creep_goodguys_melee_upgraded_mega"
            team_id: 2
            level: 1
            location {
              x: 4995
              y: 5105
              z: 384
            }
            is_alive: true
            bounding_radius: 16
            facing: 13
            ground_height: 384
            vision_range_daytime: 750
            vision_range_nighttime: 750
            health: 1270
            health_max: 1270
            health_regen: 0.5
            mana: 0
            mana_max: 0
            mana_regen: 0.0
            base_movement_speed: 325
            current_movement_speed: 325
            anim_activity: 1502
            anim_cycle: 0.1005445197224617
            base_damage: 100
            base_damage_variance: 4
            bonus_damage: 0
            attack_damage: 100
            attack_range: 100
            attack_speed: 1
            attack_anim_point: 0.46700000762939453
            attack_acquisition_range: 500
            attack_projectile_speed: 0
            bounty_xp: 25
            bounty_gold_min: 28
            bounty_gold_max: 36
            is_channeling: false
            is_attack_immune: false
            is_blind: false
            is_block_disabled: false
            is_disarmed: false
            is_evade_disabled: false
            is_hexed: false
            is_invisible: false
            is_invulnerable: false
            is_magic_immune: false
            is_muted: false
            is_nightmared: false
            is_rooted: false
            is_silenced: false
            is_specially_deniable: false
            is_stunned: false
            is_unable_to_miss: false
            has_scepter: false
          }
          units {
            handle: 0
            unit_type: LANE_CREEP
            name: "npc_dota_creep_goodguys_ranged_upgraded_mega"
            team_id: 2
            level: 1
            location {
              x: 5374
              y: 5416
              z: 384
            }
            is_alive: true
            bounding_radius: 8
            facing: 15
            ground_height: 384
            vision_range_daytime: 750
            vision_range_nighttime: 750
            health: 685
            health_max: 1015
            health_regen: 2.0
            mana: 500
            mana_max: 500
            mana_regen: 0.75
            base_movement_speed: 325
            current_movement_speed: 325
            anim_activity: 1503
            anim_cycle: 0.7333984375
            base_damage: 133
            base_damage_variance: 2
            bonus_damage: 0
            attack_damage: 133
            attack_range: 500
            attack_speed: 1
            attack_anim_point: 0.5
            attack_acquisition_range: 800
            attack_projectile_speed: 900
            bounty_xp: 25
            bounty_gold_min: 30
            bounty_gold_max: 38
            is_channeling: false
            is_attack_immune: false
            is_blind: false
            is_block_disabled: false
            is_disarmed: false
            is_evade_disabled: false
            is_hexed: false
            is_invisible: false
            is_invulnerable: false
            is_magic_immune: false
            is_muted: false
            is_nightmared: false
            is_rooted: false
            is_silenced: false
            is_specially_deniable: false
            is_stunned: false
            is_unable_to_miss: false
            has_scepter: false
          }
          units {
            handle: 0
            unit_type: LANE_CREEP
            name: "npc_dota_creep_badguys_ranged"
            team_id: 3
            level: 2
            location {
              x: 6150
              y: -4272
              z: 384
            }
            is_alive: true
            bounding_radius: 8
            facing: 262
            ground_height: 384
            vision_range_daytime: 750
            vision_range_nighttime: 750
            health: 396
            health_max: 396
            health_regen: 2.0
            mana: 500
            mana_max: 500
            mana_regen: 0.75
            base_movement_speed: 325
            current_movement_speed: 325
            anim_activity: 1503
            anim_cycle: 0.7586880326271057
            base_damage: 39
            base_damage_variance: 2
            bonus_damage: 0
            attack_damage: 39
            attack_range: 500
            attack_speed: 1
            attack_anim_point: 0.5
            attack_acquisition_range: 800
            attack_projectile_speed: 900
            attack_target_handle: 0
            bounty_xp: 90
            bounty_gold_min: 50
            bounty_gold_max: 56
            is_channeling: false
            is_attack_immune: false
            is_blind: false
            is_block_disabled: false
            is_disarmed: false
            is_evade_disabled: false
            is_hexed: false
            is_invisible: false
            is_invulnerable: false
            is_magic_immune: false
            is_muted: false
            is_nightmared: false
            is_rooted: false
            is_silenced: false
            is_specially_deniable: false
            is_stunned: false
            is_unable_to_miss: false
            has_scepter: false
          }
          units {
            handle: 0
            unit_type: LANE_CREEP
            name: "npc_dota_creep_goodguys_melee_upgraded_mega"
            team_id: 2
            level: 1
            location {
              x: 5996
              y: 5480
              z: 384
            }
            is_alive: true
            bounding_radius: 16
            facing: 146
            ground_height: 384
            vision_range_daytime: 750
            vision_range_nighttime: 750
            health: 718
            health_max: 1270
            health_regen: 0.5
            mana: 0
            mana_max: 0
            mana_regen: 0.0
            base_movement_speed: 325
            current_movement_speed: 325
            anim_activity: 1503
            anim_cycle: 0.18224716186523438
            base_damage: 100
            base_damage_variance: 4
            bonus_damage: 0
            attack_damage: 100
            attack_range: 100
            attack_speed: 0
            attack_anim_point: 0.46700000762939453
            attack_acquisition_range: 500
            attack_projectile_speed: 0
            bounty_xp: 25
            bounty_gold_min: 28
            bounty_gold_max: 36
            is_channeling: false
            is_attack_immune: false
            is_blind: false
            is_block_disabled: false
            is_disarmed: false
            is_evade_disabled: false
            is_hexed: false
            is_invisible: false
            is_invulnerable: false
            is_magic_immune: false
            is_muted: false
            is_nightmared: false
            is_rooted: false
            is_silenced: false
            is_specially_deniable: false
            is_stunned: false
            is_unable_to_miss: false
            has_scepter: false
            modifiers {
              name: "modifier_item_shivas_guard_aura"
              stack_count: 0
              ability_handle: 0
              ability_id: 119
              remaining_duration: 0.466552734375
            }
          }
          units {
            handle: 0
            unit_type: LANE_CREEP
            name: "npc_dota_creep_badguys_melee"
            team_id: 3
            level: 3
            location {
              x: 3200
              y: 5891
              z: 384
            }
            is_alive: true
            bounding_radius: 16
            facing: 275
            ground_height: 384
            vision_range_daytime: 750
            vision_range_nighttime: 750
            health: 646
            health_max: 646
            health_regen: 0.5
            mana: 0
            mana_max: 0
            mana_regen: 0.0
            base_movement_speed: 325
            current_movement_speed: 325
            anim_activity: 1503
            anim_cycle: 0.1072474867105484
            base_damage: 29
            base_damage_variance: 2
            bonus_damage: 0
            attack_damage: 29
            attack_range: 100
            attack_speed: 1
            attack_anim_point: 0.46700000762939453
            attack_acquisition_range: 500
            attack_projectile_speed: 0
            attack_target_handle: 0
            bounty_xp: 40
            bounty_gold_min: 42
            bounty_gold_max: 46
            is_channeling: false
            is_attack_immune: false
            is_blind: false
            is_block_disabled: false
            is_disarmed: false
            is_evade_disabled: false
            is_hexed: false
            is_invisible: false
            is_invulnerable: false
            is_magic_immune: false
            is_muted: false
            is_nightmared: false
            is_rooted: false
            is_silenced: false
            is_specially_deniable: false
            is_stunned: false
            is_unable_to_miss: false
            has_scepter: false
          }
          units {
            handle: 0
            unit_type: LANE_CREEP
            name: "npc_dota_creep_goodguys_melee_upgraded_mega"
            team_id: 2
            level: 1
            location {
              x: 2869
              y: 2476
              z: 256
            }
            is_alive: true
            bounding_radius: 16
            facing: 52
            ground_height: 256
            vision_range_daytime: 750
            vision_range_nighttime: 750
            health: 1270
            health_max: 1270
            health_regen: 0.5
            mana: 0
            mana_max: 0
            mana_regen: 0.0
            base_movement_speed: 325
            current_movement_speed: 325
            anim_activity: 1502
            anim_cycle: 0.23431777954101562
            base_damage: 100
            base_damage_variance: 4
            bonus_damage: 0
            attack_damage: 100
            attack_range: 100
            attack_speed: 1
            attack_anim_point: 0.46700000762939453
            attack_acquisition_range: 500
            attack_projectile_speed: 0
            bounty_xp: 25
            bounty_gold_min: 28
            bounty_gold_max: 36
            is_channeling: false
            is_attack_immune: false
            is_blind: false
            is_block_disabled: false
            is_disarmed: false
            is_evade_disabled: false
            is_hexed: false
            is_invisible: false
            is_invulnerable: false
            is_magic_immune: false
            is_muted: false
            is_nightmared: false
            is_rooted: false
            is_silenced: false
            is_specially_deniable: false
            is_stunned: false
            is_unable_to_miss: false
            has_scepter: false
          }
          units {
            handle: 0
            unit_type: LANE_CREEP
            name: "npc_dota_creep_goodguys_ranged_upgraded_mega"
            team_id: 2
            level: 1
            location {
              x: 5919
              y: -5078
              z: 384
            }
            is_alive: true
            bounding_radius: 8
            facing: 79
            ground_height: 384
            vision_range_daytime: 750
            vision_range_nighttime: 750
            health: 665
            health_max: 1015
            health_regen: 2.0
            mana: 500
            mana_max: 500
            mana_regen: 0.75
            base_movement_speed: 325
            current_movement_speed: 325
            anim_activity: 1500
            anim_cycle: 0.0
            base_damage: 133
            base_damage_variance: 2
            bonus_damage: 0
            attack_damage: 133
            attack_range: 500
            attack_speed: 1
            attack_anim_point: 0.5
            attack_acquisition_range: 800
            attack_projectile_speed: 900
            bounty_xp: 25
            bounty_gold_min: 30
            bounty_gold_max: 38
            is_channeling: false
            is_attack_immune: false
            is_blind: false
            is_block_disabled: false
            is_disarmed: false
            is_evade_disabled: false
            is_hexed: false
            is_invisible: false
            is_invulnerable: false
            is_magic_immune: false
            is_muted: false
            is_nightmared: false
            is_rooted: false
            is_silenced: false
            is_specially_deniable: false
            is_stunned: false
            is_unable_to_miss: false
            has_scepter: false
            modifiers {
              name: "modifier_item_veil_of_discord_debuff"
              stack_count: 0
              ability_handle: 0
              ability_id: 190
              remaining_duration: 14.294189453125
            }
          }
          units {
            handle: 0
            unit_type: LANE_CREEP
            name: "npc_dota_creep_goodguys_ranged_upgraded_mega"
            team_id: 2
            level: 1
            location {
              x: 5394
              y: 5386
              z: 384
            }
            is_alive: true
            bounding_radius: 8
            facing: 19
            ground_height: 384
            vision_range_daytime: 750
            vision_range_nighttime: 750
            health: 1015
            health_max: 1015
            health_regen: 2.0
            mana: 500
            mana_max: 500
            mana_regen: 0.75
            base_movement_speed: 325
            current_movement_speed: 325
            anim_activity: 1503
            anim_cycle: 0.5
            base_damage: 133
            base_damage_variance: 2
            bonus_damage: 0
            attack_damage: 133
            attack_range: 500
            attack_speed: 1
            attack_anim_point: 0.5
            attack_acquisition_range: 800
            attack_projectile_speed: 900
            bounty_xp: 25
            bounty_gold_min: 30
            bounty_gold_max: 38
            is_channeling: false
            is_attack_immune: false
            is_blind: false
            is_block_disabled: false
            is_disarmed: false
            is_evade_disabled: false
            is_hexed: false
            is_invisible: false
            is_invulnerable: false
            is_magic_immune: false
            is_muted: false
            is_nightmared: false
            is_rooted: false
            is_silenced: false
            is_specially_deniable: false
            is_stunned: false
            is_unable_to_miss: false
            has_scepter: false
            incoming_tracking_projectiles {
              caster_handle: 0
              caster_player_id: 6
              ability_handle: 0
              ability_id: 5190
              location {
                x: 5576
                y: 5459
                z: 496
              }
              velocity: 1200
              is_dodgeable: true
              is_attack: false
            }
          }
          units {
            handle: 0
            unit_type: LANE_CREEP
            name: "npc_dota_creep_badguys_ranged"
            team_id: 3
            level: 2
            location {
              x: 3398
              y: 2926
              z: 264
            }
            is_alive: true
            bounding_radius: 8
            facing: 226
            ground_height: 264
            vision_range_daytime: 750
            vision_range_nighttime: 750
            health: 396
            health_max: 396
            health_regen: 2.0
            mana: 500
            mana_max: 500
            mana_regen: 0.75
            base_movement_speed: 325
            current_movement_speed: 325
            anim_activity: 1503
            anim_cycle: 0.13789735734462738
            base_damage: 39
            base_damage_variance: 2
            bonus_damage: 0
            attack_damage: 39
            attack_range: 500
            attack_speed: 1
            attack_anim_point: 0.5
            attack_acquisition_range: 800
            attack_projectile_speed: 900
            attack_target_handle: 0
            bounty_xp: 90
            bounty_gold_min: 50
            bounty_gold_max: 56
            is_channeling: false
            is_attack_immune: false
            is_blind: false
            is_block_disabled: false
            is_disarmed: false
            is_evade_disabled: false
            is_hexed: false
            is_invisible: false
            is_invulnerable: false
            is_magic_immune: false
            is_muted: false
            is_nightmared: false
            is_rooted: false
            is_silenced: false
            is_specially_deniable: false
            is_stunned: false
            is_unable_to_miss: false
            has_scepter: false
          }
          units {
            handle: 0
            unit_type: LANE_CREEP
            name: "npc_dota_creep_badguys_ranged"
            team_id: 3
            level: 2
            location {
              x: 6291
              y: 2398
              z: 303
            }
            is_alive: true
            bounding_radius: 8
            facing: 270
            ground_height: 303
            vision_range_daytime: 750
            vision_range_nighttime: 750
            health: 396
            health_max: 396
            health_regen: 2.0
            mana: 500
            mana_max: 500
            mana_regen: 0.75
            base_movement_speed: 325
            current_movement_speed: 325
            anim_activity: 1502
            anim_cycle: 0.5048280954360962
            base_damage: 39
            base_damage_variance: 2
            bonus_damage: 0
            attack_damage: 39
            attack_range: 500
            attack_speed: 1
            attack_anim_point: 0.5
            attack_acquisition_range: 800
            attack_projectile_speed: 900
            bounty_xp: 90
            bounty_gold_min: 50
            bounty_gold_max: 56
            is_channeling: false
            is_attack_immune: false
            is_blind: false
            is_block_disabled: false
            is_disarmed: false
            is_evade_disabled: false
            is_hexed: false
            is_invisible: false
            is_invulnerable: false
            is_magic_immune: false
            is_muted: false
            is_nightmared: false
            is_rooted: false
            is_silenced: false
            is_specially_deniable: false
            is_stunned: false
            is_unable_to_miss: false
            has_scepter: false
          }
          units {
            handle: 0
            unit_type: LANE_CREEP
            name: "npc_dota_creep_goodguys_ranged_upgraded_mega"
            team_id: 2
            level: 1
            location {
              x: 5988
              y: 5036
              z: 384
            }
            is_alive: true
            bounding_radius: 8
            facing: 101
            ground_height: 384
            vision_range_daytime: 750
            vision_range_nighttime: 750
            health: 633
            health_max: 1015
            health_regen: 2.0
            mana: 500
            mana_max: 500
            mana_regen: 0.75
            base_movement_speed: 325
            current_movement_speed: 325
            anim_activity: 1503
            anim_cycle: 0.7291221618652344
            base_damage: 133
            base_damage_variance: 2
            bonus_damage: 0
            attack_damage: 133
            attack_range: 500
            attack_speed: 0
            attack_anim_point: 0.5
            attack_acquisition_range: 800
            attack_projectile_speed: 900
            bounty_xp: 25
            bounty_gold_min: 30
            bounty_gold_max: 38
            is_channeling: false
            is_attack_immune: false
            is_blind: false
            is_block_disabled: false
            is_disarmed: false
            is_evade_disabled: false
            is_hexed: false
            is_invisible: false
            is_invulnerable: false
            is_magic_immune: false
            is_muted: false
            is_nightmared: false
            is_rooted: false
            is_silenced: false
            is_specially_deniable: false
            is_stunned: false
            is_unable_to_miss: false
            has_scepter: false
            modifiers {
              name: "modifier_item_shivas_guard_aura"
              stack_count: 0
              ability_handle: 0
              ability_id: 119
              remaining_duration: 0.466552734375
            }
          }
          units {
            handle: 0
            unit_type: LANE_CREEP
            name: "npc_dota_creep_badguys_melee"
            team_id: 3
            level: 3
            location {
              x: 6324
              y: 2593
              z: 384
            }
            is_alive: true
            bounding_radius: 16
            facing: 269
            ground_height: 384
            vision_range_daytime: 750
            vision_range_nighttime: 750
            health: 646
            health_max: 646
            health_regen: 0.5
            mana: 0
            mana_max: 0
            mana_regen: 0.0
            base_movement_speed: 325
            current_movement_speed: 325
            anim_activity: 1502
            anim_cycle: 0.1374664306640625
            base_damage: 29
            base_damage_variance: 2
            bonus_damage: 0
            attack_damage: 29
            attack_range: 100
            attack_speed: 1
            attack_anim_point: 0.46700000762939453
            attack_acquisition_range: 500
            attack_projectile_speed: 0
            bounty_xp: 40
            bounty_gold_min: 42
            bounty_gold_max: 46
            is_channeling: false
            is_attack_immune: false
            is_blind: false
            is_block_disabled: false
            is_disarmed: false
            is_evade_disabled: false
            is_hexed: false
            is_invisible: false
            is_invulnerable: false
            is_magic_immune: false
            is_muted: false
            is_nightmared: false
            is_rooted: false
            is_silenced: false
            is_specially_deniable: false
            is_stunned: false
            is_unable_to_miss: false
            has_scepter: false
          }
          units {
            handle: 0
            unit_type: LANE_CREEP
            name: "npc_dota_creep_badguys_melee"
            team_id: 3
            level: 3
            location {
              x: 3356
              y: 2697
              z: 256
            }
            is_alive: true
            bounding_radius: 16
            facing: 276
            ground_height: 256
            vision_range_daytime: 750
            vision_range_nighttime: 750
            health: 646
            health_max: 646
            health_regen: 0.5
            mana: 0
            mana_max: 0
            mana_regen: 0.0
            base_movement_speed: 325
            current_movement_speed: 325
            anim_activity: 1502
            anim_cycle: 0.12081439793109894
            base_damage: 29
            base_damage_variance: 2
            bonus_damage: 0
            attack_damage: 29
            attack_range: 100
            attack_speed: 1
            attack_anim_point: 0.46700000762939453
            attack_acquisition_range: 500
            attack_projectile_speed: 0
            bounty_xp: 40
            bounty_gold_min: 42
            bounty_gold_max: 46
            is_channeling: false
            is_attack_immune: false
            is_blind: false
            is_block_disabled: false
            is_disarmed: false
            is_evade_disabled: false
            is_hexed: false
            is_invisible: false
            is_invulnerable: false
            is_magic_immune: false
            is_muted: false
            is_nightmared: false
            is_rooted: false
            is_silenced: false
            is_specially_deniable: false
            is_stunned: false
            is_unable_to_miss: false
            has_scepter: false
          }
          units {
            handle: 0
            unit_type: LANE_CREEP
            name: "npc_dota_creep_goodguys_melee_upgraded_mega"
            team_id: 2
            level: 1
            location {
              x: 3357
              y: 5828
              z: 384
            }
            is_alive: true
            bounding_radius: 16
            facing: 158
            ground_height: 384
            vision_range_daytime: 750
            vision_range_nighttime: 750
            health: 1196
            health_max: 1270
            health_regen: 0.5
            mana: 0
            mana_max: 0
            mana_regen: 0.0
            base_movement_speed: 325
            current_movement_speed: 325
            anim_activity: 1503
            anim_cycle: 0.199951171875
            base_damage: 100
            base_damage_variance: 4
            bonus_damage: 0
            attack_damage: 100
            attack_range: 100
            attack_speed: 1
            attack_anim_point: 0.46700000762939453
            attack_acquisition_range: 500
            attack_projectile_speed: 0
            bounty_xp: 25
            bounty_gold_min: 28
            bounty_gold_max: 36
            is_channeling: false
            is_attack_immune: false
            is_blind: false
            is_block_disabled: false
            is_disarmed: false
            is_evade_disabled: false
            is_hexed: false
            is_invisible: false
            is_invulnerable: false
            is_magic_immune: false
            is_muted: false
            is_nightmared: false
            is_rooted: false
            is_silenced: false
            is_specially_deniable: false
            is_stunned: false
            is_unable_to_miss: false
            has_scepter: false
          }
          units {
            handle: 0
            unit_type: LANE_CREEP
            name: "npc_dota_creep_badguys_melee"
            team_id: 3
            level: 3
            location {
              x: 3267
              y: 5864
              z: 384
            }
            is_alive: true
            bounding_radius: 16
            facing: 338
            ground_height: 384
            vision_range_daytime: 750
            vision_range_nighttime: 750
            health: 113
            health_max: 646
            health_regen: 0.5
            mana: 0
            mana_max: 0
            mana_regen: 0.0
            base_movement_speed: 325
            current_movement_speed: 325
            anim_activity: 1503
            anim_cycle: 0.1072474867105484
            base_damage: 29
            base_damage_variance: 2
            bonus_damage: 0
            attack_damage: 29
            attack_range: 100
            attack_speed: 1
            attack_anim_point: 0.46700000762939453
            attack_acquisition_range: 500
            attack_projectile_speed: 0
            attack_target_handle: 0
            bounty_xp: 40
            bounty_gold_min: 42
            bounty_gold_max: 46
            is_channeling: false
            is_attack_immune: false
            is_blind: false
            is_block_disabled: false
            is_disarmed: false
            is_evade_disabled: false
            is_hexed: false
            is_invisible: false
            is_invulnerable: false
            is_magic_immune: false
            is_muted: false
            is_nightmared: false
            is_rooted: false
            is_silenced: false
            is_specially_deniable: false
            is_stunned: false
            is_unable_to_miss: false
            has_scepter: false
          }
          units {
            handle: 0
            unit_type: LANE_CREEP
            name: "npc_dota_creep_goodguys_melee_upgraded_mega"
            team_id: 2
            level: 1
            location {
              x: 6411
              y: 5602
              z: 384
            }
            is_alive: true
            bounding_radius: 16
            facing: 77
            ground_height: 384
            vision_range_daytime: 750
            vision_range_nighttime: 750
            health: 401
            health_max: 1270
            health_regen: 0.5
            mana: 0
            mana_max: 0
            mana_regen: 0.0
            base_movement_speed: 325
            current_movement_speed: 214
            anim_activity: 1503
            anim_cycle: 0.3520965576171875
            base_damage: 100
            base_damage_variance: 4
            bonus_damage: 0
            attack_damage: 100
            attack_range: 100
            attack_speed: 0
            attack_anim_point: 0.46700000762939453
            attack_acquisition_range: 500
            attack_projectile_speed: 0
            bounty_xp: 25
            bounty_gold_min: 28
            bounty_gold_max: 36
            is_channeling: false
            is_attack_immune: false
            is_blind: false
            is_block_disabled: false
            is_disarmed: false
            is_evade_disabled: false
            is_hexed: false
            is_invisible: false
            is_invulnerable: false
            is_magic_immune: false
            is_muted: false
            is_nightmared: false
            is_rooted: false
            is_silenced: false
            is_specially_deniable: false
            is_stunned: false
            is_unable_to_miss: false
            has_scepter: false
            modifiers {
              name: "modifier_item_shivas_guard_aura"
              stack_count: 0
              ability_handle: 0
              ability_id: 119
              remaining_duration: 0.466552734375
            }
            modifiers {
              name: "modifier_omniknight_degen_aura_effect"
              stack_count: 0
              ability_handle: 0
              ability_id: 5265
              remaining_duration: 0.966552734375
            }
          }
          units {
            handle: 0
            unit_type: LANE_CREEP
            name: "npc_dota_creep_goodguys_melee_upgraded_mega"
            team_id: 2
            level: 1
            location {
              x: 3099
              y: 2683
              z: 256
            }
            is_alive: true
            bounding_radius: 16
            facing: 78
            ground_height: 256
            vision_range_daytime: 750
            vision_range_nighttime: 750
            health: 1270
            health_max: 1270
            health_regen: 0.5
            mana: 0
            mana_max: 0
            mana_regen: 0.0
            base_movement_speed: 325
            current_movement_speed: 325
            anim_activity: 1502
            anim_cycle: 0.23431777954101562
            base_damage: 100
            base_damage_variance: 4
            bonus_damage: 0
            attack_damage: 100
            attack_range: 100
            attack_speed: 1
            attack_anim_point: 0.46700000762939453
            attack_acquisition_range: 500
            attack_projectile_speed: 0
            bounty_xp: 25
            bounty_gold_min: 28
            bounty_gold_max: 36
            is_channeling: false
            is_attack_immune: false
            is_blind: false
            is_block_disabled: false
            is_disarmed: false
            is_evade_disabled: false
            is_hexed: false
            is_invisible: false
            is_invulnerable: false
            is_magic_immune: false
            is_muted: false
            is_nightmared: false
            is_rooted: false
            is_silenced: false
            is_specially_deniable: false
            is_stunned: false
            is_unable_to_miss: false
            has_scepter: false
          }
          units {
            handle: 0
            unit_type: LANE_CREEP
            name: "npc_dota_creep_badguys_melee"
            team_id: 3
            level: 3
            location {
              x: 6233
              y: 2182
              z: 256
            }
            is_alive: true
            bounding_radius: 16
            facing: 272
            ground_height: 256
            vision_range_daytime: 750
            vision_range_nighttime: 750
            health: 646
            health_max: 646
            health_regen: 0.5
            mana: 0
            mana_max: 0
            mana_regen: 0.0
            base_movement_speed: 325
            current_movement_speed: 325
            anim_activity: 1502
            anim_cycle: 0.6954154968261719
            base_damage: 29
            base_damage_variance: 2
            bonus_damage: 0
            attack_damage: 29
            attack_range: 100
            attack_speed: 1
            attack_anim_point: 0.46700000762939453
            attack_acquisition_range: 500
            attack_projectile_speed: 0
            bounty_xp: 40
            bounty_gold_min: 42
            bounty_gold_max: 46
            is_channeling: false
            is_attack_immune: false
            is_blind: false
            is_block_disabled: false
            is_disarmed: false
            is_evade_disabled: false
            is_hexed: false
            is_invisible: false
            is_invulnerable: false
            is_magic_immune: false
            is_muted: false
            is_nightmared: false
            is_rooted: false
            is_silenced: false
            is_specially_deniable: false
            is_stunned: false
            is_unable_to_miss: false
            has_scepter: false
          }
          units {
            handle: 0
            unit_type: LANE_CREEP
            name: "npc_dota_creep_goodguys_melee_upgraded_mega"
            team_id: 2
            level: 1
            location {
              x: 5750
              y: 5522
              z: 384
            }
            is_alive: true
            bounding_radius: 16
            facing: 14
            ground_height: 384
            vision_range_daytime: 750
            vision_range_nighttime: 750
            health: 570
            health_max: 1270
            health_regen: 0.5
            mana: 0
            mana_max: 0
            mana_regen: 0.0
            base_movement_speed: 325
            current_movement_speed: 325
            anim_activity: 1503
            anim_cycle: 0.16408920288085938
            base_damage: 100
            base_damage_variance: 4
            bonus_damage: 0
            attack_damage: 100
            attack_range: 100
            attack_speed: 0
            attack_anim_point: 0.46700000762939453
            attack_acquisition_range: 500
            attack_projectile_speed: 0
            bounty_xp: 25
            bounty_gold_min: 28
            bounty_gold_max: 36
            is_channeling: false
            is_attack_immune: false
            is_blind: false
            is_block_disabled: false
            is_disarmed: false
            is_evade_disabled: false
            is_hexed: false
            is_invisible: false
            is_invulnerable: false
            is_magic_immune: false
            is_muted: false
            is_nightmared: false
            is_rooted: false
            is_silenced: false
            is_specially_deniable: false
            is_stunned: false
            is_unable_to_miss: false
            has_scepter: false
            modifiers {
              name: "modifier_item_shivas_guard_aura"
              stack_count: 0
              ability_handle: 0
              ability_id: 119
              remaining_duration: 0.466552734375
            }
          }
          units {
            handle: 0
            unit_type: LANE_CREEP
            name: "npc_dota_creep_goodguys_melee_upgraded_mega"
            team_id: 2
            level: 1
            location {
              x: 3119
              y: 2791
              z: 256
            }
            is_alive: true
            bounding_radius: 16
            facing: 57
            ground_height: 256
            vision_range_daytime: 750
            vision_range_nighttime: 750
            health: 1270
            health_max: 1270
            health_regen: 0.5
            mana: 0
            mana_max: 0
            mana_regen: 0.0
            base_movement_speed: 325
            current_movement_speed: 325
            anim_activity: 1500
            anim_cycle: 0.0
            base_damage: 100
            base_damage_variance: 4
            bonus_damage: 0
            attack_damage: 100
            attack_range: 100
            attack_speed: 1
            attack_anim_point: 0.46700000762939453
            attack_acquisition_range: 500
            attack_projectile_speed: 0
            bounty_xp: 25
            bounty_gold_min: 28
            bounty_gold_max: 36
            is_channeling: false
            is_attack_immune: false
            is_blind: false
            is_block_disabled: false
            is_disarmed: false
            is_evade_disabled: false
            is_hexed: false
            is_invisible: false
            is_invulnerable: false
            is_magic_immune: false
            is_muted: false
            is_nightmared: false
            is_rooted: false
            is_silenced: false
            is_specially_deniable: false
            is_stunned: false
            is_unable_to_miss: false
            has_scepter: false
          }
          units {
            handle: 0
            unit_type: LANE_CREEP
            name: "npc_dota_creep_goodguys_melee_upgraded_mega"
            team_id: 2
            level: 1
            location {
              x: 3176
              y: 2691
              z: 256
            }
            is_alive: true
            bounding_radius: 16
            facing: 42
            ground_height: 256
            vision_range_daytime: 750
            vision_range_nighttime: 750
            health: 1196
            health_max: 1270
            health_regen: 0.5
            mana: 0
            mana_max: 0
            mana_regen: 0.0
            base_movement_speed: 325
            current_movement_speed: 325
            anim_activity: 1503
            anim_cycle: 0.7666015625
            base_damage: 100
            base_damage_variance: 4
            bonus_damage: 0
            attack_damage: 100
            attack_range: 100
            attack_speed: 1
            attack_anim_point: 0.46700000762939453
            attack_acquisition_range: 500
            attack_projectile_speed: 0
            bounty_xp: 25
            bounty_gold_min: 28
            bounty_gold_max: 36
            is_channeling: false
            is_attack_immune: false
            is_blind: false
            is_block_disabled: false
            is_disarmed: false
            is_evade_disabled: false
            is_hexed: false
            is_invisible: false
            is_invulnerable: false
            is_magic_immune: false
            is_muted: false
            is_nightmared: false
            is_rooted: false
            is_silenced: false
            is_specially_deniable: false
            is_stunned: false
            is_unable_to_miss: false
            has_scepter: false
            incoming_tracking_projectiles {
              caster_handle: 0
              caster_player_id: -1
              location {
                x: 3221
                y: 2728
                z: 330
              }
              velocity: 900
              is_dodgeable: true
              is_attack: true
            }
          }
          units {
            handle: 0
            unit_type: LANE_CREEP
            name: "npc_dota_creep_goodguys_melee_upgraded_mega"
            team_id: 2
            level: 1
            location {
              x: 6564
              y: 5590
              z: 384
            }
            is_alive: true
            bounding_radius: 16
            facing: 87
            ground_height: 384
            vision_range_daytime: 750
            vision_range_nighttime: 750
            health: 480
            health_max: 1270
            health_regen: 0.5
            mana: 0
            mana_max: 0
            mana_regen: 0.0
            base_movement_speed: 325
            current_movement_speed: 172
            anim_activity: 1503
            anim_cycle: 0.21876907348632812
            base_damage: 100
            base_damage_variance: 4
            bonus_damage: 0
            attack_damage: 100
            attack_range: 100
            attack_speed: 0
            attack_anim_point: 0.46700000762939453
            attack_acquisition_range: 500
            attack_projectile_speed: 0
            bounty_xp: 25
            bounty_gold_min: 28
            bounty_gold_max: 36
            is_channeling: false
            is_attack_immune: false
            is_blind: false
            is_block_disabled: false
            is_disarmed: false
            is_evade_disabled: false
            is_hexed: false
            is_invisible: false
            is_invulnerable: false
            is_magic_immune: false
            is_muted: false
            is_nightmared: false
            is_rooted: false
            is_silenced: false
            is_specially_deniable: false
            is_stunned: false
            is_unable_to_miss: false
            has_scepter: false
            modifiers {
              name: "modifier_item_shivas_guard_aura"
              stack_count: 0
              ability_handle: 0
              ability_id: 119
              remaining_duration: 0.466552734375
            }
            modifiers {
              name: "modifier_omniknight_degen_aura_effect"
              stack_count: 0
              ability_handle: 0
              ability_id: 5265
              remaining_duration: 0.966552734375
            }
            modifiers {
              name: "modifier_sange_and_yasha_buff"
              stack_count: 0
              ability_handle: 0
              ability_id: 154
              remaining_duration: 4.39794921875
            }
            incoming_tracking_projectiles {
              caster_handle: 0
              caster_player_id: 9
              location {
                x: 6579
                y: 5602
                z: 509
              }
              velocity: 2000
              is_dodgeable: true
              is_attack: true
            }
          }
          units {
            handle: 0
            unit_type: LANE_CREEP
            name: "npc_dota_creep_goodguys_ranged_upgraded_mega"
            team_id: 2
            level: 1
            location {
              x: 3209
              y: 5787
              z: 384
            }
            is_alive: true
            bounding_radius: 8
            facing: 132
            ground_height: 384
            vision_range_daytime: 750
            vision_range_nighttime: 750
            health: 192
            health_max: 1015
            health_regen: 2.0
            mana: 500
            mana_max: 500
            mana_regen: 0.75
            base_movement_speed: 325
            current_movement_speed: 325
            anim_activity: 1500
            anim_cycle: 0.019598007202148438
            base_damage: 133
            base_damage_variance: 2
            bonus_damage: 0
            attack_damage: 133
            attack_range: 500
            attack_speed: 1
            attack_anim_point: 0.5
            attack_acquisition_range: 800
            attack_projectile_speed: 900
            bounty_xp: 25
            bounty_gold_min: 30
            bounty_gold_max: 38
            is_channeling: false
            is_attack_immune: false
            is_blind: false
            is_block_disabled: false
            is_disarmed: false
            is_evade_disabled: false
            is_hexed: false
            is_invisible: false
            is_invulnerable: false
            is_magic_immune: false
            is_muted: false
            is_nightmared: false
            is_rooted: false
            is_silenced: false
            is_specially_deniable: false
            is_stunned: false
            is_unable_to_miss: false
            has_scepter: false
          }
          units {
            handle: 0
            unit_type: LANE_CREEP
            name: "npc_dota_creep_badguys_ranged"
            team_id: 3
            level: 2
            location {
              x: 6309
              y: 2224
              z: 256
            }
            is_alive: true
            bounding_radius: 8
            facing: 269
            ground_height: 256
            vision_range_daytime: 750
            vision_range_nighttime: 750
            health: 396
            health_max: 396
            health_regen: 2.0
            mana: 500
            mana_max: 500
            mana_regen: 0.75
            base_movement_speed: 325
            current_movement_speed: 325
            anim_activity: 1502
            anim_cycle: 0.49993133544921875
            base_damage: 39
            base_damage_variance: 2
            bonus_damage: 0
            attack_damage: 39
            attack_range: 500
            attack_speed: 1
            attack_anim_point: 0.5
            attack_acquisition_range: 800
            attack_projectile_speed: 900
            bounty_xp: 90
            bounty_gold_min: 50
            bounty_gold_max: 56
            is_channeling: false
            is_attack_immune: false
            is_blind: false
            is_block_disabled: false
            is_disarmed: false
            is_evade_disabled: false
            is_hexed: false
            is_invisible: false
            is_invulnerable: false
            is_magic_immune: false
            is_muted: false
            is_nightmared: false
            is_rooted: false
            is_silenced: false
            is_specially_deniable: false
            is_stunned: false
            is_unable_to_miss: false
            has_scepter: false
          }
          units {
            handle: 0
            unit_type: LANE_CREEP
            name: "npc_dota_creep_badguys_ranged"
            team_id: 3
            level: 2
            location {
              x: 6154
              y: -4207
              z: 384
            }
            is_alive: true
            bounding_radius: 8
            facing: 262
            ground_height: 384
            vision_range_daytime: 750
            vision_range_nighttime: 750
            health: 396
            health_max: 396
            health_regen: 2.0
            mana: 500
            mana_max: 500
            mana_regen: 0.75
            base_movement_speed: 325
            current_movement_speed: 325
            anim_activity: 1503
            anim_cycle: 0.7586880326271057
            base_damage: 39
            base_damage_variance: 2
            bonus_damage: 0
            attack_damage: 39
            attack_range: 500
            attack_speed: 1
            attack_anim_point: 0.5
            attack_acquisition_range: 800
            attack_projectile_speed: 900
            attack_target_handle: 0
            bounty_xp: 90
            bounty_gold_min: 50
            bounty_gold_max: 56
            is_channeling: false
            is_attack_immune: false
            is_blind: false
            is_block_disabled: false
            is_disarmed: false
            is_evade_disabled: false
            is_hexed: false
            is_invisible: false
            is_invulnerable: false
            is_magic_immune: false
            is_muted: false
            is_nightmared: false
            is_rooted: false
            is_silenced: false
            is_specially_deniable: false
            is_stunned: false
            is_unable_to_miss: false
            has_scepter: false
          }
          units {
            handle: 0
            name: "npc_dota_zeus_cloud"
            team_id: 3
            level: 0
            location {
              x: 4591
              y: 3970
              z: 384
            }
            is_alive: true
            bounding_radius: 8
            facing: 270
            ground_height: 384
            vision_range_daytime: 500
            vision_range_nighttime: 500
            health: 16
            health_max: 16
            health_regen: 0.0
            mana: 0
            mana_max: 0
            mana_regen: 0.0
            base_movement_speed: 0
            current_movement_speed: 100
            anim_activity: 1500
            anim_cycle: 0.6061055064201355
            base_damage: 0
            base_damage_variance: 0
            bonus_damage: 0
            attack_damage: 0
            attack_range: 500
            attack_speed: 1
            attack_anim_point: 0.5
            attack_acquisition_range: 800
            attack_projectile_speed: 900
            bounty_xp: 0
            bounty_gold_min: 100
            bounty_gold_max: 100
            is_channeling: false
            is_attack_immune: false
            is_blind: false
            is_block_disabled: false
            is_disarmed: false
            is_evade_disabled: false
            is_hexed: false
            is_invisible: false
            is_invulnerable: false
            is_magic_immune: false
            is_muted: false
            is_nightmared: false
            is_rooted: false
            is_silenced: false
            is_specially_deniable: false
            is_stunned: false
            is_unable_to_miss: false
            has_scepter: false
            action_type: 1
          }
          units {
            handle: 0
            unit_type: JUNGLE_CREEP
            name: "npc_dota_neutral_big_thunder_lizard"
            team_id: 4
            level: 6
            location {
              x: 3920
              y: -508
              z: 256
            }
            is_alive: true
            bounding_radius: 24
            facing: 185
            ground_height: 256
            vision_range_daytime: 1400
            vision_range_nighttime: 800
            health: 784
            health_max: 1400
            health_regen: 0.5
            mana: 400
            mana_max: 400
            mana_regen: 1.0
            base_movement_speed: 270
            current_movement_speed: 270
            anim_activity: 1500
            anim_cycle: 0.18126121163368225
            base_damage: 62
            base_damage_variance: 2
            bonus_damage: 9
            attack_damage: 71
            attack_range: 300
            attack_speed: 1
            attack_anim_point: 0.5
            attack_acquisition_range: 300
            attack_projectile_speed: 1500
            bounty_xp: 124
            bounty_gold_min: 71
            bounty_gold_max: 78
            is_channeling: false
            is_attack_immune: false
            is_blind: false
            is_block_disabled: false
            is_disarmed: false
            is_evade_disabled: false
            is_hexed: false
            is_invisible: false
            is_invulnerable: false
            is_magic_immune: false
            is_muted: false
            is_nightmared: false
            is_rooted: false
            is_silenced: false
            is_specially_deniable: false
            is_stunned: false
            is_unable_to_miss: false
            has_scepter: false
            abilities {
              handle: 0
              ability_id: 5333
              slot: 0
              caster_handle: 0
              cast_range: 900
              channel_time: 0.0
              is_in_ability_phase: false
              is_channeling: false
              is_stolen: false
            }
            abilities {
              handle: 0
              ability_id: 5682
              slot: 1
              caster_handle: 0
              cast_range: 0
              channel_time: 0.0
              is_in_ability_phase: false
              is_channeling: false
              is_stolen: false
            }
            abilities {
              handle: 0
              ability_id: 5332
              slot: 2
              caster_handle: 0
              cast_range: 0
              channel_time: 0.0
              is_in_ability_phase: false
              is_channeling: false
              is_stolen: false
            }
            modifiers {
              name: "modifier_big_thunder_lizard_wardrums_aura"
              stack_count: 0
              ability_handle: 0
              ability_id: 5682
              remaining_duration: 0.466552734375
            }
          }
          units {
            handle: 0
            unit_type: LANE_CREEP
            name: "npc_dota_creep_goodguys_ranged_upgraded_mega"
            team_id: 2
            level: 1
            location {
              x: 6010
              y: -4938
              z: 384
            }
            is_alive: true
            bounding_radius: 8
            facing: 90
            ground_height: 384
            vision_range_daytime: 750
            vision_range_nighttime: 750
            health: 666
            health_max: 1015
            health_regen: 2.0
            mana: 500
            mana_max: 500
            mana_regen: 0.75
            base_movement_speed: 325
            current_movement_speed: 325
            anim_activity: 1503
            anim_cycle: 0.2333984375
            base_damage: 133
            base_damage_variance: 2
            bonus_damage: 0
            attack_damage: 133
            attack_range: 500
            attack_speed: 1
            attack_anim_point: 0.5
            attack_acquisition_range: 800
            attack_projectile_speed: 900
            bounty_xp: 25
            bounty_gold_min: 30
            bounty_gold_max: 38
            is_channeling: false
            is_attack_immune: false
            is_blind: false
            is_block_disabled: false
            is_disarmed: false
            is_evade_disabled: false
            is_hexed: false
            is_invisible: false
            is_invulnerable: false
            is_magic_immune: false
            is_muted: false
            is_nightmared: false
            is_rooted: false
            is_silenced: false
            is_specially_deniable: false
            is_stunned: false
            is_unable_to_miss: false
            has_scepter: false
            modifiers {
              name: "modifier_item_veil_of_discord_debuff"
              stack_count: 0
              ability_handle: 0
              ability_id: 190
              remaining_duration: 14.294189453125
            }
          }
          units {
            handle: 0
            unit_type: LANE_CREEP
            name: "npc_dota_creep_goodguys_melee_upgraded_mega"
            team_id: 2
            level: 1
            location {
              x: 5104
              y: 5055
              z: 384
            }
            is_alive: true
            bounding_radius: 16
            facing: 352
            ground_height: 384
            vision_range_daytime: 750
            vision_range_nighttime: 750
            health: 1270
            health_max: 1270
            health_regen: 0.5
            mana: 0
            mana_max: 0
            mana_regen: 0.0
            base_movement_speed: 325
            current_movement_speed: 325
            anim_activity: 1503
            anim_cycle: 0.466796875
            base_damage: 100
            base_damage_variance: 4
            bonus_damage: 0
            attack_damage: 100
            attack_range: 100
            attack_speed: 1
            attack_anim_point: 0.46700000762939453
            attack_acquisition_range: 500
            attack_projectile_speed: 0
            bounty_xp: 25
            bounty_gold_min: 28
            bounty_gold_max: 36
            is_channeling: false
            is_attack_immune: false
            is_blind: false
            is_block_disabled: false
            is_disarmed: false
            is_evade_disabled: false
            is_hexed: false
            is_invisible: false
            is_invulnerable: false
            is_magic_immune: false
            is_muted: false
            is_nightmared: false
            is_rooted: false
            is_silenced: false
            is_specially_deniable: false
            is_stunned: false
            is_unable_to_miss: false
            has_scepter: false
          }
          units {
            handle: 0
            unit_type: LANE_CREEP
            name: "npc_dota_creep_badguys_melee"
            team_id: 3
            level: 3
            location {
              x: 6367
              y: 2159
              z: 256
            }
            is_alive: true
            bounding_radius: 16
            facing: 270
            ground_height: 256
            vision_range_daytime: 750
            vision_range_nighttime: 750
            health: 646
            health_max: 646
            health_regen: 0.5
            mana: 0
            mana_max: 0
            mana_regen: 0.0
            base_movement_speed: 325
            current_movement_speed: 325
            anim_activity: 1502
            anim_cycle: 0.938834547996521
            base_damage: 29
            base_damage_variance: 2
            bonus_damage: 0
            attack_damage: 29
            attack_range: 100
            attack_speed: 1
            attack_anim_point: 0.46700000762939453
            attack_acquisition_range: 500
            attack_projectile_speed: 0
            bounty_xp: 40
            bounty_gold_min: 42
            bounty_gold_max: 46
            is_channeling: false
            is_attack_immune: false
            is_blind: false
            is_block_disabled: false
            is_disarmed: false
            is_evade_disabled: false
            is_hexed: false
            is_invisible: false
            is_invulnerable: false
            is_magic_immune: false
            is_muted: false
            is_nightmared: false
            is_rooted: false
            is_silenced: false
            is_specially_deniable: false
            is_stunned: false
            is_unable_to_miss: false
            has_scepter: false
          }
          units {
            handle: 0
            unit_type: WARD
            name: "npc_dota_observer_wards"
            team_id: 3
            level: 0
            location {
              x: 5130
              y: -799
              z: 655
            }
            is_alive: true
            bounding_radius: 8
            facing: 274
            ground_height: 655
            vision_range_daytime: 1600
            vision_range_nighttime: 1600
            health: 200
            health_max: 200
            health_regen: 0.0
            mana: 0
            mana_max: 0
            mana_regen: 0.0
            base_movement_speed: 300
            current_movement_speed: 300
            anim_activity: 1500
            anim_cycle: 0.13737723231315613
            base_damage: 1
            base_damage_variance: 0
            bonus_damage: 0
            attack_damage: 1
            attack_range: 600
            attack_speed: 1
            attack_anim_point: 0.75
            attack_acquisition_range: 800
            attack_projectile_speed: 900
            bounty_xp: 25
            bounty_gold_min: 100
            bounty_gold_max: 100
            is_channeling: false
            is_attack_immune: false
            is_blind: false
            is_block_disabled: false
            is_disarmed: false
            is_evade_disabled: false
            is_hexed: false
            is_invisible: true
            is_invulnerable: false
            is_magic_immune: true
            is_muted: false
            is_nightmared: false
            is_rooted: false
            is_silenced: false
            is_specially_deniable: false
            is_stunned: false
            is_unable_to_miss: false
            has_scepter: false
            modifiers {
              name: "modifier_item_buff_ward"
              stack_count: 0
              remaining_duration: 87.13720703125
            }
          }
          units {
            handle: 0
            unit_type: LANE_CREEP
            name: "npc_dota_creep_goodguys_melee_upgraded_mega"
            team_id: 2
            level: 1
            location {
              x: 6297
              y: -4720
              z: 384
            }
            is_alive: true
            bounding_radius: 16
            facing: 46
            ground_height: 384
            vision_range_daytime: 750
            vision_range_nighttime: 750
            health: 660
            health_max: 1270
            health_regen: 0.5
            mana: 0
            mana_max: 0
            mana_regen: 0.0
            base_movement_speed: 325
            current_movement_speed: 325
            anim_activity: 1502
            anim_cycle: 0.4168192744255066
            base_damage: 100
            base_damage_variance: 4
            bonus_damage: 0
            attack_damage: 100
            attack_range: 100
            attack_speed: 1
            attack_anim_point: 0.46700000762939453
            attack_acquisition_range: 500
            attack_projectile_speed: 0
            bounty_xp: 25
            bounty_gold_min: 28
            bounty_gold_max: 36
            is_channeling: false
            is_attack_immune: false
            is_blind: false
            is_block_disabled: false
            is_disarmed: false
            is_evade_disabled: false
            is_hexed: false
            is_invisible: false
            is_invulnerable: false
            is_magic_immune: false
            is_muted: false
            is_nightmared: false
            is_rooted: false
            is_silenced: false
            is_specially_deniable: false
            is_stunned: false
            is_unable_to_miss: false
            has_scepter: false
            modifiers {
              name: "modifier_item_veil_of_discord_debuff"
              stack_count: 0
              ability_handle: 0
              ability_id: 190
              remaining_duration: 14.294189453125
            }
          }
          units {
            handle: 0
            unit_type: LANE_CREEP
            name: "npc_dota_creep_badguys_melee"
            team_id: 3
            level: 3
            location {
              x: 6232
              y: 2380
              z: 294
            }
            is_alive: true
            bounding_radius: 16
            facing: 270
            ground_height: 294
            vision_range_daytime: 750
            vision_range_nighttime: 750
            health: 646
            health_max: 646
            health_regen: 0.5
            mana: 0
            mana_max: 0
            mana_regen: 0.0
            base_movement_speed: 325
            current_movement_speed: 325
            anim_activity: 1502
            anim_cycle: 0.9090054631233215
            base_damage: 29
            base_damage_variance: 2
            bonus_damage: 0
            attack_damage: 29
            attack_range: 100
            attack_speed: 1
            attack_anim_point: 0.46700000762939453
            attack_acquisition_range: 500
            attack_projectile_speed: 0
            bounty_xp: 40
            bounty_gold_min: 42
            bounty_gold_max: 46
            is_channeling: false
            is_attack_immune: false
            is_blind: false
            is_block_disabled: false
            is_disarmed: false
            is_evade_disabled: false
            is_hexed: false
            is_invisible: false
            is_invulnerable: false
            is_magic_immune: false
            is_muted: false
            is_nightmared: false
            is_rooted: false
            is_silenced: false
            is_specially_deniable: false
            is_stunned: false
            is_unable_to_miss: false
            has_scepter: false
          }
          units {
            handle: 0
            unit_type: LANE_CREEP
            name: "npc_dota_creep_goodguys_melee_upgraded_mega"
            team_id: 2
            level: 1
            location {
              x: 2815
              y: 2403
              z: 256
            }
            is_alive: true
            bounding_radius: 16
            facing: 54
            ground_height: 256
            vision_range_daytime: 750
            vision_range_nighttime: 750
            health: 1270
            health_max: 1270
            health_regen: 0.5
            mana: 0
            mana_max: 0
            mana_regen: 0.0
            base_movement_speed: 325
            current_movement_speed: 325
            anim_activity: 1502
            anim_cycle: 0.0235137939453125
            base_damage: 100
            base_damage_variance: 4
            bonus_damage: 0
            attack_damage: 100
            attack_range: 100
            attack_speed: 1
            attack_anim_point: 0.46700000762939453
            attack_acquisition_range: 500
            attack_projectile_speed: 0
            bounty_xp: 25
            bounty_gold_min: 28
            bounty_gold_max: 36
            is_channeling: false
            is_attack_immune: false
            is_blind: false
            is_block_disabled: false
            is_disarmed: false
            is_evade_disabled: false
            is_hexed: false
            is_invisible: false
            is_invulnerable: false
            is_magic_immune: false
            is_muted: false
            is_nightmared: false
            is_rooted: false
            is_silenced: false
            is_specially_deniable: false
            is_stunned: false
            is_unable_to_miss: false
            has_scepter: false
          }
          units {
            handle: 0
            unit_type: LANE_CREEP
            name: "npc_dota_creep_badguys_melee"
            team_id: 3
            level: 3
            location {
              x: 3419
              y: 2852
              z: 262
            }
            is_alive: true
            bounding_radius: 16
            facing: 213
            ground_height: 262
            vision_range_daytime: 750
            vision_range_nighttime: 750
            health: 646
            health_max: 646
            health_regen: 0.5
            mana: 0
            mana_max: 0
            mana_regen: 0.0
            base_movement_speed: 325
            current_movement_speed: 325
            anim_activity: 1502
            anim_cycle: 0.9906639456748962
            base_damage: 29
            base_damage_variance: 2
            bonus_damage: 0
            attack_damage: 29
            attack_range: 100
            attack_speed: 1
            attack_anim_point: 0.46700000762939453
            attack_acquisition_range: 500
            attack_projectile_speed: 0
            bounty_xp: 40
            bounty_gold_min: 42
            bounty_gold_max: 46
            is_channeling: false
            is_attack_immune: false
            is_blind: false
            is_block_disabled: false
            is_disarmed: false
            is_evade_disabled: false
            is_hexed: false
            is_invisible: false
            is_invulnerable: false
            is_magic_immune: false
            is_muted: false
            is_nightmared: false
            is_rooted: false
            is_silenced: false
            is_specially_deniable: false
            is_stunned: false
            is_unable_to_miss: false
            has_scepter: false
          }
          units {
            handle: 0
            unit_type: LANE_CREEP
            name: "npc_dota_creep_goodguys_melee_upgraded_mega"
            team_id: 2
            level: 1
            location {
              x: 3229
              y: 2640
              z: 256
            }
            is_alive: true
            bounding_radius: 16
            facing: 43
            ground_height: 256
            vision_range_daytime: 750
            vision_range_nighttime: 750
            health: 1270
            health_max: 1270
            health_regen: 0.5
            mana: 0
            mana_max: 0
            mana_regen: 0.0
            base_movement_speed: 325
            current_movement_speed: 325
            anim_activity: 1503
            anim_cycle: 0.066650390625
            base_damage: 100
            base_damage_variance: 4
            bonus_damage: 0
            attack_damage: 100
            attack_range: 100
            attack_speed: 1
            attack_anim_point: 0.46700000762939453
            attack_acquisition_range: 500
            attack_projectile_speed: 0
            bounty_xp: 25
            bounty_gold_min: 28
            bounty_gold_max: 36
            is_channeling: false
            is_attack_immune: false
            is_blind: false
            is_block_disabled: false
            is_disarmed: false
            is_evade_disabled: false
            is_hexed: false
            is_invisible: false
            is_invulnerable: false
            is_magic_immune: false
            is_muted: false
            is_nightmared: false
            is_rooted: false
            is_silenced: false
            is_specially_deniable: false
            is_stunned: false
            is_unable_to_miss: false
            has_scepter: false
          }
          units {
            handle: 0
            unit_type: LANE_CREEP
            name: "npc_dota_creep_badguys_ranged"
            team_id: 3
            level: 2
            location {
              x: 3483
              y: 2981
              z: 264
            }
            is_alive: true
            bounding_radius: 8
            facing: 223
            ground_height: 264
            vision_range_daytime: 750
            vision_range_nighttime: 750
            health: 396
            health_max: 396
            health_regen: 2.0
            mana: 500
            mana_max: 500
            mana_regen: 0.75
            base_movement_speed: 325
            current_movement_speed: 325
            anim_activity: 1503
            anim_cycle: 0.82763671875
            base_damage: 39
            base_damage_variance: 2
            bonus_damage: 0
            attack_damage: 39
            attack_range: 500
            attack_speed: 1
            attack_anim_point: 0.5
            attack_acquisition_range: 800
            attack_projectile_speed: 900
            attack_target_handle: 0
            bounty_xp: 90
            bounty_gold_min: 50
            bounty_gold_max: 56
            is_channeling: false
            is_attack_immune: false
            is_blind: false
            is_block_disabled: false
            is_disarmed: false
            is_evade_disabled: false
            is_hexed: false
            is_invisible: false
            is_invulnerable: false
            is_magic_immune: false
            is_muted: false
            is_nightmared: false
            is_rooted: false
            is_silenced: false
            is_specially_deniable: false
            is_stunned: false
            is_unable_to_miss: false
            has_scepter: false
          }
          units {
            handle: 0
            unit_type: LANE_CREEP
            name: "npc_dota_creep_goodguys_melee_upgraded_mega"
            team_id: 2
            level: 1
            location {
              x: 3301
              y: 5708
              z: 384
            }
            is_alive: true
            bounding_radius: 16
            facing: 173
            ground_height: 384
            vision_range_daytime: 750
            vision_range_nighttime: 750
            health: 1270
            health_max: 1270
            health_regen: 0.5
            mana: 0
            mana_max: 0
            mana_regen: 0.0
            base_movement_speed: 325
            current_movement_speed: 325
            anim_activity: 1503
            anim_cycle: 0.166748046875
            base_damage: 100
            base_damage_variance: 4
            bonus_damage: 0
            attack_damage: 100
            attack_range: 100
            attack_speed: 1
            attack_anim_point: 0.46700000762939453
            attack_acquisition_range: 500
            attack_projectile_speed: 0
            bounty_xp: 25
            bounty_gold_min: 28
            bounty_gold_max: 36
            is_channeling: false
            is_attack_immune: false
            is_blind: false
            is_block_disabled: false
            is_disarmed: false
            is_evade_disabled: false
            is_hexed: false
            is_invisible: false
            is_invulnerable: false
            is_magic_immune: false
            is_muted: false
            is_nightmared: false
            is_rooted: false
            is_silenced: false
            is_specially_deniable: false
            is_stunned: false
            is_unable_to_miss: false
            has_scepter: false
          }
          units {
            handle: 0
            unit_type: LANE_CREEP
            name: "npc_dota_creep_goodguys_melee_upgraded_mega"
            team_id: 2
            level: 1
            location {
              x: 6066
              y: -4741
              z: 384
            }
            is_alive: true
            bounding_radius: 16
            facing: 162
            ground_height: 384
            vision_range_daytime: 750
            vision_range_nighttime: 750
            health: 50
            health_max: 1270
            health_regen: 0.5
            mana: 0
            mana_max: 0
            mana_regen: 0.0
            base_movement_speed: 325
            current_movement_speed: 325
            anim_activity: 1500
            anim_cycle: 0.0
            base_damage: 100
            base_damage_variance: 4
            bonus_damage: 0
            attack_damage: 100
            attack_range: 100
            attack_speed: 1
            attack_anim_point: 0.46700000762939453
            attack_acquisition_range: 500
            attack_projectile_speed: 0
            bounty_xp: 25
            bounty_gold_min: 28
            bounty_gold_max: 36
            is_channeling: false
            is_attack_immune: false
            is_blind: false
            is_block_disabled: false
            is_disarmed: false
            is_evade_disabled: false
            is_hexed: false
            is_invisible: false
            is_invulnerable: false
            is_magic_immune: false
            is_muted: false
            is_nightmared: false
            is_rooted: false
            is_silenced: false
            is_specially_deniable: false
            is_stunned: false
            is_unable_to_miss: false
            has_scepter: false
            modifiers {
              name: "modifier_item_veil_of_discord_debuff"
              stack_count: 0
              ability_handle: 0
              ability_id: 190
              remaining_duration: 14.294189453125
            }
          }
          units {
            handle: 0
            unit_type: LANE_CREEP
            name: "npc_dota_creep_badguys_melee"
            team_id: 3
            level: 3
            location {
              x: 3136
              y: 5846
              z: 384
            }
            is_alive: true
            bounding_radius: 16
            facing: 321
            ground_height: 384
            vision_range_daytime: 750
            vision_range_nighttime: 750
            health: 646
            health_max: 646
            health_regen: 0.5
            mana: 0
            mana_max: 0
            mana_regen: 0.0
            base_movement_speed: 325
            current_movement_speed: 325
            anim_activity: 1503
            anim_cycle: 0.142822265625
            base_damage: 29
            base_damage_variance: 2
            bonus_damage: 0
            attack_damage: 29
            attack_range: 100
            attack_speed: 1
            attack_anim_point: 0.46700000762939453
            attack_acquisition_range: 500
            attack_projectile_speed: 0
            attack_target_handle: 0
            bounty_xp: 40
            bounty_gold_min: 42
            bounty_gold_max: 46
            is_channeling: false
            is_attack_immune: false
            is_blind: false
            is_block_disabled: false
            is_disarmed: false
            is_evade_disabled: false
            is_hexed: false
            is_invisible: false
            is_invulnerable: false
            is_magic_immune: false
            is_muted: false
            is_nightmared: false
            is_rooted: false
            is_silenced: false
            is_specially_deniable: false
            is_stunned: false
            is_unable_to_miss: false
            has_scepter: false
          }
          units {
            handle: 0
            name: ""
            team_id: 3
            level: 1
            location {
              x: 5576
              y: 5459
              z: 496
            }
            is_alive: true
            bounding_radius: 24
            facing: 0
            ground_height: 384
            vision_range_daytime: 450
            vision_range_nighttime: 450
            health: 150
            health_max: 150
            health_regen: 0.0
            mana: 0
            mana_max: 0
            mana_regen: 0.0
            base_movement_speed: 300
            current_movement_speed: 300
            anim_activity: -1
            anim_cycle: 0.0
            base_damage: 1
            base_damage_variance: 0
            bonus_damage: 0
            attack_damage: 1
            attack_range: 600
            attack_speed: 1
            attack_anim_point: 0.75
            attack_acquisition_range: 800
            attack_projectile_speed: 900
            bounty_xp: 0
            bounty_gold_min: 0
            bounty_gold_max: 0
            is_channeling: false
            is_attack_immune: false
            is_blind: false
            is_block_disabled: false
            is_disarmed: false
            is_evade_disabled: false
            is_hexed: false
            is_invisible: false
            is_invulnerable: true
            is_magic_immune: false
            is_muted: false
            is_nightmared: false
            is_rooted: false
            is_silenced: false
            is_specially_deniable: false
            is_stunned: false
            is_unable_to_miss: false
            has_scepter: false
          }
          units {
            handle: 0
            unit_type: LANE_CREEP
            name: "npc_dota_creep_goodguys_melee_upgraded_mega"
            team_id: 2
            level: 1
            location {
              x: 3383
              y: 5895
              z: 384
            }
            is_alive: true
            bounding_radius: 16
            facing: 195
            ground_height: 384
            vision_range_daytime: 750
            vision_range_nighttime: 750
            health: 1270
            health_max: 1270
            health_regen: 0.5
            mana: 0
            mana_max: 0
            mana_regen: 0.0
            base_movement_speed: 325
            current_movement_speed: 325
            anim_activity: 1503
            anim_cycle: 0.63330078125
            base_damage: 100
            base_damage_variance: 4
            bonus_damage: 0
            attack_damage: 100
            attack_range: 100
            attack_speed: 1
            attack_anim_point: 0.46700000762939453
            attack_acquisition_range: 500
            attack_projectile_speed: 0
            bounty_xp: 25
            bounty_gold_min: 28
            bounty_gold_max: 36
            is_channeling: false
            is_attack_immune: false
            is_blind: false
            is_block_disabled: false
            is_disarmed: false
            is_evade_disabled: false
            is_hexed: false
            is_invisible: false
            is_invulnerable: false
            is_magic_immune: false
            is_muted: false
            is_nightmared: false
            is_rooted: false
            is_silenced: false
            is_specially_deniable: false
            is_stunned: false
            is_unable_to_miss: false
            has_scepter: false
          }
          units {
            handle: 0
            unit_type: LANE_CREEP
            name: "npc_dota_creep_badguys_melee"
            team_id: 3
            level: 3
            location {
              x: 3284
              y: 2692
              z: 256
            }
            is_alive: true
            bounding_radius: 16
            facing: 180
            ground_height: 256
            vision_range_daytime: 750
            vision_range_nighttime: 750
            health: 646
            health_max: 646
            health_regen: 0.5
            mana: 0
            mana_max: 0
            mana_regen: 0.0
            base_movement_speed: 325
            current_movement_speed: 325
            anim_activity: 1503
            anim_cycle: 0.28564453125
            base_damage: 29
            base_damage_variance: 2
            bonus_damage: 0
            attack_damage: 29
            attack_range: 100
            attack_speed: 1
            attack_anim_point: 0.46700000762939453
            attack_acquisition_range: 500
            attack_projectile_speed: 0
            attack_target_handle: 0
            bounty_xp: 40
            bounty_gold_min: 42
            bounty_gold_max: 46
            is_channeling: false
            is_attack_immune: false
            is_blind: false
            is_block_disabled: false
            is_disarmed: false
            is_evade_disabled: false
            is_hexed: false
            is_invisible: false
            is_invulnerable: false
            is_magic_immune: false
            is_muted: false
            is_nightmared: false
            is_rooted: false
            is_silenced: false
            is_specially_deniable: false
            is_stunned: false
            is_unable_to_miss: false
            has_scepter: false
          }
          units {
            handle: 0
            unit_type: LANE_CREEP
            name: "npc_dota_creep_goodguys_melee_upgraded_mega"
            team_id: 2
            level: 1
            location {
              x: 5076
              y: 5122
              z: 384
            }
            is_alive: true
            bounding_radius: 16
            facing: 34
            ground_height: 384
            vision_range_daytime: 750
            vision_range_nighttime: 750
            health: 1270
            health_max: 1270
            health_regen: 0.5
            mana: 0
            mana_max: 0
            mana_regen: 0.0
            base_movement_speed: 325
            current_movement_speed: 325
            anim_activity: 1502
            anim_cycle: 0.2735137939453125
            base_damage: 100
            base_damage_variance: 4
            bonus_damage: 0
            attack_damage: 100
            attack_range: 100
            attack_speed: 1
            attack_anim_point: 0.46700000762939453
            attack_acquisition_range: 500
            attack_projectile_speed: 0
            bounty_xp: 25
            bounty_gold_min: 28
            bounty_gold_max: 36
            is_channeling: false
            is_attack_immune: false
            is_blind: false
            is_block_disabled: false
            is_disarmed: false
            is_evade_disabled: false
            is_hexed: false
            is_invisible: false
            is_invulnerable: false
            is_magic_immune: false
            is_muted: false
            is_nightmared: false
            is_rooted: false
            is_silenced: false
            is_specially_deniable: false
            is_stunned: false
            is_unable_to_miss: false
            has_scepter: false
          }
          dropped_items {
            item_id: 30
            location {
              x: 7191
              y: 6557
              z: 512
            }
          }
          dropped_items {
            item_id: 30
            location {
              x: 5968
              y: 4793
              z: 384
            }
          }
          dropped_items {
            item_id: 30
            location {
              x: 5608
              y: 4530
              z: 384
            }
          }
          dropped_items {
            item_id: 46
            location {
              x: 5416
              y: 4106
              z: 384
            }
          }
          rune_infos {
            type: -1
            location {
              x: -1760
              y: 1216
              z: 176
            }
            status: 0
            time_since_seen: 34.18310546875
          }
          rune_infos {
            type: -1
            location {
              x: 2618
              y: -2002
              z: 248
            }
            status: 0
            time_since_seen: 34.18310546875
          }
          rune_infos {
            type: 5
            location {
              x: 1295
              y: -4127
              z: 432
            }
            status: 0
            time_since_seen: 1722.8017578125
          }
          rune_infos {
            type: 5
            location {
              x: -4352
              y: 192
              z: 304
            }
            status: 0
            time_since_seen: 1573.125244140625
          }
          rune_infos {
            type: 5
            location {
              x: -2823
              y: 4136
              z: 432
            }
            status: 0
            time_since_seen: 223.427734375
          }
          rune_infos {
            type: 5
            location {
              x: 3551
              y: 368
              z: 432
            }
            status: 0
            time_since_seen: 265.90576171875
          }
          ability_events {
            ability_id: 5190
            player_id: 6
            unit_handle: 0
            location {
              x: 5394
              y: 5386
              z: 384
            }
            is_channel_start: false
          }
          ability_events {
            ability_id: 5638
            player_id: 8
            unit_handle: 0
            location {
              x: 6571
              y: 5727
              z: 390
            }
            is_channel_start: false
          }
          damage_events {
            damage: 13
            victim_player_id: 6
            attacker_player_id: 4294967295
            attacker_unit_handle: 0
          }

          Comment


          • #6
            Another suggestion added to original post - add net worth to players - this is somewhat critical for machine learning to gauge whether an action was successful or not. I realize we can calculate this on our own based on iterating over all the items we have + our gold, but this information would probably be much easier to just send over.

            Comment


            • #7
              Another Question - is "optional uint32 game_time = 2;" intended? Shouldn't it be a float? With it being uint32 I get a lot of repeats. Here is an example of dumping multiple frames and their game_time and dota_time values:

              Code:
              2017_09_20_GameFile_000093.bin - 53 :: -43.133820
              2017_09_20_GameFile_000094.bin - 53 :: -42.633827
              2017_09_20_GameFile_000095.bin - 54 :: -42.133835
              2017_09_20_GameFile_000096.bin - 54 :: -41.633842
              2017_09_20_GameFile_000097.bin - 55 :: -41.133850
              2017_09_20_GameFile_000098.bin - 55 :: -40.633858
              As you can see, there are two 53s, two 54s, etc. So kind of hard to judge the game-time at that low granularity.

              Comment


              • #8
                Good stuff:

                - Found the handle bug, will be fixed in the next update.
                - Yeah I switched dota_time to a float, should have done game_time too. Will also fix.

                Comment


                • #9
                  Another thing - magic_resist should be float too. Otherwise it is constrained to only 0 or 1 value. Unless you wanted an integer and simply forgot to multiply by 100

                  Comment


                  • #10
                    @ChrisC - Thanks for updating the protobufs with some of the recent changes (both - fixes and additions of net_worth). Just did a new game and everything seems proper.

                    One question about modifiers though - if you look at the code below - how come vladmir's aura has a "duration" and why is it set to that value? This holds true for HEROES and NPC UNITS. The value for duration seems to be the same for Vlad's Aura, NS's Darkness Blind, and SB's empowering Haste. My guess might be that when a modifier doesn't have a "duration" (b/c it is an aura for example) it might just be reporting the same duration as of the last modifier it saw or the lowest value of all modifiers it encountered.
                    Code:
                      modifiers {
                        name: "modifier_item_vladmir_aura"
                        stack_count: 0
                        ability_handle: 293
                        ability_id: 81
                        remaining_duration: 0.4666748046875
                      }
                      modifiers {
                        name: "modifier_nightstalker_darkness_blind"
                        stack_count: 0
                        ability_handle: 209
                        ability_id: 5278
                        remaining_duration: 0.4666748046875
                      }
                      modifiers {
                        name: "modifier_ogre_magi_bloodlust"
                        stack_count: 0
                        ability_handle: 338
                        ability_id: 5440
                        remaining_duration: 25.33447265625
                      }
                      modifiers {
                        name: "modifier_ursa_overpower"
                        stack_count: 6
                        ability_handle: 276
                        ability_id: 5358
                        remaining_duration: 13.7669677734375
                      }
                      modifiers {
                        name: "modifier_spirit_breaker_empowering_haste"
                        stack_count: 0
                        ability_handle: 256
                        ability_id: 5354
                        remaining_duration: 0.4666748046875
                      }
                      modifiers {
                        name: "modifier_ursa_enrage"
                        stack_count: 0
                        ability_handle: 279
                        ability_id: 5360
                        remaining_duration: 3.000244140625
                      }
                      modifiers {
                        name: "modifier_item_phase_boots_active"
                        stack_count: 0
                        ability_handle: 380
                        ability_id: 50
                        remaining_duration: 1.83349609375
                      }

                    Comment


                    • #11
                      I wrote a quick enum which you can include at the top of your .proto file to name all the abilities based on id. This enum is auto-generated by a quick python parser I wrote.

                      Code:
                      	enum AbilityType
                      	{
                      		blink = 1;
                      		blades_of_attack = 2;
                      		broadsword = 3;
                      		chainmail = 4;
                      		claymore = 5;
                      		helm_of_iron_will = 6;
                      		javelin = 7;
                      		mithril_hammer = 8;
                      		platemail = 9;
                      		quarterstaff = 10;
                      		quelling_blade = 11;
                      		ring_of_protection = 12;
                      		gauntlets = 13;
                      		slippers = 14;
                      		mantle = 15;
                      		branches = 16;
                      		belt_of_strength = 17;
                      		boots_of_elves = 18;
                      		robe = 19;
                      		circlet = 20;
                      		ogre_axe = 21;
                      		blade_of_alacrity = 22;
                      		staff_of_wizardry = 23;
                      		ultimate_orb = 24;
                      		gloves = 25;
                      		lifesteal = 26;
                      		ring_of_regen = 27;
                      		sobi_mask = 28;
                      		boots = 29;
                      		gem = 30;
                      		cloak = 31;
                      		talisman_of_evasion = 32;
                      		cheese = 33;
                      		magic_stick = 34;
                      		magic_wand = 36;
                      		ghost = 37;
                      		clarity = 38;
                      		flask = 39;
                      		dust = 40;
                      		bottle = 41;
                      		ward_observer = 42;
                      		ward_sentry = 43;
                      		tango = 44;
                      		courier = 45;
                      		tpscroll = 46;
                      		travel_boots = 48;
                      		phase_boots = 50;
                      		demon_edge = 51;
                      		eagle = 52;
                      		reaver = 53;
                      		relic = 54;
                      		hyperstone = 55;
                      		ring_of_health = 56;
                      		void_stone = 57;
                      		mystic_staff = 58;
                      		energy_booster = 59;
                      		point_booster = 60;
                      		vitality_booster = 61;
                      		power_treads = 63;
                      		hand_of_midas = 65;
                      		oblivion_staff = 67;
                      		pers = 69;
                      		poor_mans_shield = 71;
                      		bracer = 73;
                      		wraith_band = 75;
                      		null_talisman = 77;
                      		mekansm = 79;
                      		vladmir = 81;
                      		flying_courier = 84;
                      		buckler = 86;
                      		ring_of_basilius = 88;
                      		pipe = 90;
                      		urn_of_shadows = 92;
                      		headdress = 94;
                      		sheepstick = 96;
                      		orchid = 98;
                      		cyclone = 100;
                      		force_staff = 102;
                      		dagon = 104;
                      		necronomicon = 106;
                      		ultimate_scepter = 108;
                      		refresher = 110;
                      		assault = 112;
                      		heart = 114;
                      		black_king_bar = 116;
                      		aegis = 117;
                      		shivas_guard = 119;
                      		bloodstone = 121;
                      		sphere = 123;
                      		vanguard = 125;
                      		blade_mail = 127;
                      		soul_booster = 129;
                      		hood_of_defiance = 131;
                      		rapier = 133;
                      		monkey_king_bar = 135;
                      		radiance = 137;
                      		butterfly = 139;
                      		greater_crit = 141;
                      		basher = 143;
                      		bfury = 145;
                      		manta = 147;
                      		lesser_crit = 149;
                      		armlet = 151;
                      		invis_sword = 152;
                      		sange_and_yasha = 154;
                      		satanic = 156;
                      		mjollnir = 158;
                      		skadi = 160;
                      		sange = 162;
                      		helm_of_the_dominator = 164;
                      		maelstrom = 166;
                      		desolator = 168;
                      		yasha = 170;
                      		mask_of_madness = 172;
                      		diffusal_blade = 174;
                      		ethereal_blade = 176;
                      		soul_ring = 178;
                      		arcane_boots = 180;
                      		orb_of_venom = 181;
                      		stout_shield = 182;
                      		ancient_janggo = 185;
                      		medallion_of_courage = 187;
                      		smoke_of_deceit = 188;
                      		veil_of_discord = 190;
                      		necronomicon_2 = 193;
                      		necronomicon_3 = 194;
                      		diffusal_blade_2 = 196;
                      		dagon_2 = 201;
                      		dagon_3 = 202;
                      		dagon_4 = 203;
                      		dagon_5 = 204;
                      		rod_of_atos = 206;
                      		abyssal_blade = 208;
                      		heavens_halberd = 210;
                      		ring_of_aquila = 212;
                      		tranquil_boots = 214;
                      		shadow_amulet = 215;
                      		enchanted_mango = 216;
                      		ward_dispenser = 218;
                      		travel_boots_2 = 220;
                      		lotus_orb = 226;
                      		solar_crest = 229;
                      		guardian_greaves = 231;
                      		aether_lens = 232;
                      		octarine_core = 235;
                      		dragon_lance = 236;
                      		faerie_fire = 237;
                      		iron_talon = 239;
                      		blight_stone = 240;
                      		tango_single = 241;
                      		crimson_guard = 242;
                      		wind_lace = 244;
                      		moon_shard = 247;
                      		silver_edge = 249;
                      		bloodthorn = 250;
                      		echo_sabre = 252;
                      		glimmer_cape = 254;
                      		tome_of_knowledge = 257;
                      		hurricane_pike = 263;
                      		infused_raindrop = 265;
                      		river_painter = 1021;
                      		river_painter2 = 1022;
                      		river_painter3 = 1023;
                      		river_painter4 = 1024;
                      		river_painter5 = 1025;
                      		river_painter6 = 1026;
                      		river_painter7 = 1027;
                      		ability_base = 0;
                      		default_attack = 5001;
                      		attribute_bonus = 5002;
                      		antimage_mana_break = 5003;
                      		antimage_blink = 5004;
                      		antimage_spell_shield = 5005;
                      		antimage_mana_void = 5006;
                      		axe_berserkers_call = 5007;
                      		axe_battle_hunger = 5008;
                      		axe_counter_helix = 5009;
                      		axe_culling_blade = 5010;
                      		bane_brain_sap = 5011;
                      		bane_enfeeble = 5012;
                      		bane_fiends_grip = 5013;
                      		bane_nightmare = 5014;
                      		bloodseeker_bloodrage = 5015;
                      		bloodseeker_blood_bath = 5016;
                      		bloodseeker_thirst = 5017;
                      		bloodseeker_rupture = 5018;
                      		drow_ranger_frost_arrows = 5019;
                      		drow_ranger_silence = 5020;
                      		drow_ranger_trueshot = 5021;
                      		drow_ranger_marksmanship = 5022;
                      		earthshaker_fissure = 5023;
                      		earthshaker_enchant_totem = 5024;
                      		earthshaker_aftershock = 5025;
                      		earthshaker_echo_slam = 5026;
                      		juggernaut_blade_dance = 5027;
                      		juggernaut_blade_fury = 5028;
                      		juggernaut_healing_ward = 5029;
                      		juggernaut_omni_slash = 5030;
                      		kunkka_torrent = 5031;
                      		kunkka_tidebringer = 5032;
                      		kunkka_x_marks_the_spot = 5033;
                      		kunkka_return = 5034;
                      		kunkka_ghostship = 5035;
                      		lina_dragon_slave = 5040;
                      		lina_light_strike_array = 5041;
                      		lina_fiery_soul = 5042;
                      		lina_laguna_blade = 5043;
                      		lion_impale = 5044;
                      		lion_voodoo = 5045;
                      		lion_mana_drain = 5046;
                      		lion_finger_of_death = 5047;
                      		mirana_arrow = 5048;
                      		mirana_invis = 5049;
                      		mirana_leap = 5050;
                      		mirana_starfall = 5051;
                      		morphling_waveform = 5052;
                      		morphling_adaptive_strike = 5053;
                      		morphling_morph = 5054;
                      		morphling_morph_agi = 5055;
                      		morphling_morph_str = 5056;
                      		morphling_replicate = 5057;
                      		morphling_morph_replicate = 5058;
                      		nevermore_shadowraze1 = 5059;
                      		nevermore_shadowraze2 = 5060;
                      		nevermore_shadowraze3 = 5061;
                      		nevermore_necromastery = 5062;
                      		nevermore_dark_lord = 5063;
                      		nevermore_requiem = 5064;
                      		phantom_lancer_spirit_lance = 5065;
                      		phantom_lancer_doppelwalk = 5066;
                      		phantom_lancer_juxtapose = 5067;
                      		phantom_lancer_phantom_edge = 5068;
                      		puck_illusory_orb = 5069;
                      		puck_ethereal_jaunt = 5070;
                      		puck_waning_rift = 5071;
                      		puck_phase_shift = 5072;
                      		puck_dream_coil = 5073;
                      		pudge_flesh_heap = 5074;
                      		pudge_meat_hook = 5075;
                      		pudge_rot = 5076;
                      		pudge_dismember = 5077;
                      		shadow_shaman_ether_shock = 5078;
                      		shadow_shaman_voodoo = 5079;
                      		shadow_shaman_shackles = 5080;
                      		shadow_shaman_mass_serpent_ward = 5081;
                      		razor_plasma_field = 5082;
                      		razor_static_link = 5083;
                      		razor_unstable_current = 5084;
                      		razor_eye_of_the_storm = 5085;
                      		skeleton_king_hellfire_blast = 5086;
                      		skeleton_king_vampiric_aura = 5087;
                      		skeleton_king_mortal_strike = 5088;
                      		skeleton_king_reincarnation = 5089;
                      		death_prophet_carrion_swarm = 5090;
                      		death_prophet_silence = 5091;
                      		death_prophet_witchcraft = 5092;
                      		death_prophet_exorcism = 5093;
                      		sven_storm_bolt = 5094;
                      		sven_great_cleave = 5095;
                      		sven_warcry = 5096;
                      		sven_gods_strength = 5097;
                      		storm_spirit_static_remnant = 5098;
                      		storm_spirit_electric_vortex = 5099;
                      		storm_spirit_overload = 5100;
                      		storm_spirit_ball_lightning = 5101;
                      		sandking_burrowstrike = 5102;
                      		sandking_sand_storm = 5103;
                      		sandking_caustic_finale = 5104;
                      		sandking_epicenter = 5105;
                      		tiny_avalanche = 5106;
                      		tiny_toss = 5107;
                      		tiny_craggy_exterior = 5108;
                      		tiny_grow = 5109;
                      		zuus_arc_lightning = 5110;
                      		zuus_lightning_bolt = 5111;
                      		zuus_static_field = 5112;
                      		zuus_thundergods_wrath = 5113;
                      		slardar_sprint = 5114;
                      		slardar_slithereen_crush = 5115;
                      		slardar_bash = 5116;
                      		slardar_amplify_damage = 5117;
                      		tidehunter_gush = 5118;
                      		tidehunter_kraken_shell = 5119;
                      		tidehunter_anchor_smash = 5120;
                      		tidehunter_ravage = 5121;
                      		vengefulspirit_magic_missile = 5122;
                      		vengefulspirit_command_aura = 5123;
                      		vengefulspirit_wave_of_terror = 5124;
                      		vengefulspirit_nether_swap = 5125;
                      		crystal_maiden_crystal_nova = 5126;
                      		crystal_maiden_frostbite = 5127;
                      		crystal_maiden_brilliance_aura = 5128;
                      		crystal_maiden_freezing_field = 5129;
                      		windrunner_shackleshot = 5130;
                      		windrunner_powershot = 5131;
                      		windrunner_windrun = 5132;
                      		windrunner_focusfire = 5133;
                      		lich_frost_nova = 5134;
                      		lich_frost_armor = 5135;
                      		lich_dark_ritual = 5136;
                      		lich_chain_frost = 5137;
                      		witch_doctor_paralyzing_cask = 5138;
                      		witch_doctor_voodoo_restoration = 5139;
                      		witch_doctor_maledict = 5140;
                      		witch_doctor_death_ward = 5141;
                      		riki_smoke_screen = 5142;
                      		riki_blink_strike = 5143;
                      		riki_permanent_invisibility = 5144;
                      		riki_tricks_of_the_trade = 5145;
                      		enigma_malefice = 5146;
                      		enigma_demonic_conversion = 5147;
                      		enigma_midnight_pulse = 5148;
                      		enigma_black_hole = 5149;
                      		tinker_laser = 5150;
                      		tinker_heat_seeking_missile = 5151;
                      		tinker_march_of_the_machines = 5152;
                      		tinker_rearm = 5153;
                      		sniper_shrapnel = 5154;
                      		sniper_headshot = 5155;
                      		sniper_take_aim = 5156;
                      		sniper_assassinate = 5157;
                      		necrolyte_death_pulse = 5158;
                      		necrolyte_heartstopper_aura = 5159;
                      		necrolyte_sadist = 5160;
                      		necrolyte_reapers_scythe = 5161;
                      		warlock_fatal_bonds = 5162;
                      		warlock_shadow_word = 5163;
                      		warlock_upheaval = 5164;
                      		warlock_rain_of_chaos = 5165;
                      		warlock_golem_flaming_fists = 5166;
                      		warlock_golem_permanent_immolation = 5167;
                      		beastmaster_wild_axes = 5168;
                      		beastmaster_call_of_the_wild = 5169;
                      		beastmaster_hawk_invisibility = 5170;
                      		beastmaster_boar_poison = 5171;
                      		beastmaster_inner_beast = 5172;
                      		queenofpain_shadow_strike = 5173;
                      		queenofpain_blink = 5174;
                      		queenofpain_scream_of_pain = 5175;
                      		queenofpain_sonic_wave = 5176;
                      		beastmaster_primal_roar = 5177;
                      		venomancer_venomous_gale = 5178;
                      		venomancer_poison_sting = 5179;
                      		venomancer_plague_ward = 5180;
                      		venomancer_poison_nova = 5181;
                      		faceless_void_time_walk = 5182;
                      		faceless_void_backtrack = 5183;
                      		faceless_void_time_lock = 5184;
                      		faceless_void_chronosphere = 5185;
                      		pugna_nether_blast = 5186;
                      		pugna_decrepify = 5187;
                      		pugna_nether_ward = 5188;
                      		pugna_life_drain = 5189;
                      		phantom_assassin_stifling_dagger = 5190;
                      		phantom_assassin_phantom_strike = 5191;
                      		phantom_assassin_blur = 5192;
                      		phantom_assassin_coup_de_grace = 5193;
                      		templar_assassin_refraction = 5194;
                      		templar_assassin_meld = 5195;
                      		templar_assassin_psi_blades = 5196;
                      		templar_assassin_psionic_trap = 5197;
                      		templar_assassin_trap = 5198;
                      		templar_assassin_self_trap = 5199;
                      		necronomicon_warrior_last_will = 5200;
                      		necronomicon_warrior_sight = 5201;
                      		necronomicon_warrior_mana_burn = 5202;
                      		necronomicon_archer_mana_burn = 5203;
                      		necronomicon_archer_aoe = 5204;
                      		courier_return_to_base = 5205;
                      		courier_transfer_items = 5206;
                      		courier_return_stash_items = 5207;
                      		courier_take_stash_items = 5208;
                      		courier_shield = 5209;
                      		courier_burst = 5210;
                      		roshan_spell_block = 5213;
                      		roshan_bash = 5214;
                      		roshan_slam = 5215;
                      		roshan_inherent_buffs = 5216;
                      		roshan_devotion = 5217;
                      		viper_poison_attack = 5218;
                      		viper_nethertoxin = 5219;
                      		viper_corrosive_skin = 5220;
                      		viper_viper_strike = 5221;
                      		luna_lucent_beam = 5222;
                      		luna_moon_glaive = 5223;
                      		luna_lunar_blessing = 5224;
                      		luna_eclipse = 5225;
                      		dragon_knight_breathe_fire = 5226;
                      		dragon_knight_dragon_tail = 5227;
                      		dragon_knight_dragon_blood = 5228;
                      		dragon_knight_elder_dragon_form = 5229;
                      		dragon_knight_frost_breath = 5232;
                      		dazzle_poison_touch = 5233;
                      		dazzle_shallow_grave = 5234;
                      		dazzle_shadow_wave = 5235;
                      		dazzle_weave = 5236;
                      		rattletrap_battery_assault = 5237;
                      		rattletrap_power_cogs = 5238;
                      		rattletrap_rocket_flare = 5239;
                      		rattletrap_hookshot = 5240;
                      		leshrac_split_earth = 5241;
                      		leshrac_diabolic_edict = 5242;
                      		leshrac_lightning_storm = 5243;
                      		leshrac_pulse_nova = 5244;
                      		furion_sprout = 5245;
                      		furion_teleportation = 5246;
                      		furion_force_of_nature = 5247;
                      		furion_wrath_of_nature = 5248;
                      		life_stealer_rage = 5249;
                      		life_stealer_feast = 5250;
                      		life_stealer_open_wounds = 5251;
                      		life_stealer_infest = 5252;
                      		life_stealer_consume = 5253;
                      		dark_seer_vacuum = 5255;
                      		dark_seer_ion_shell = 5256;
                      		dark_seer_surge = 5257;
                      		dark_seer_wall_of_replica = 5258;
                      		clinkz_strafe = 5259;
                      		clinkz_searing_arrows = 5260;
                      		clinkz_wind_walk = 5261;
                      		clinkz_death_pact = 5262;
                      		omniknight_purification = 5263;
                      		omniknight_repel = 5264;
                      		omniknight_degen_aura = 5265;
                      		omniknight_guardian_angel = 5266;
                      		enchantress_untouchable = 5267;
                      		enchantress_enchant = 5268;
                      		enchantress_natures_attendants = 5269;
                      		enchantress_impetus = 5270;
                      		huskar_inner_vitality = 5271;
                      		huskar_burning_spear = 5272;
                      		huskar_berserkers_blood = 5273;
                      		huskar_life_break = 5274;
                      		night_stalker_void = 5275;
                      		night_stalker_crippling_fear = 5276;
                      		night_stalker_hunter_in_the_night = 5277;
                      		night_stalker_darkness = 5278;
                      		broodmother_spawn_spiderlings = 5279;
                      		broodmother_spin_web = 5280;
                      		broodmother_incapacitating_bite = 5281;
                      		broodmother_insatiable_hunger = 5282;
                      		broodmother_spawn_spiderite = 5283;
                      		broodmother_poison_sting = 5284;
                      		bounty_hunter_shuriken_toss = 5285;
                      		bounty_hunter_jinada = 5286;
                      		bounty_hunter_wind_walk = 5287;
                      		bounty_hunter_track = 5288;
                      		weaver_the_swarm = 5289;
                      		weaver_shukuchi = 5290;
                      		weaver_geminate_attack = 5291;
                      		weaver_time_lapse = 5292;
                      		kobold_taskmaster_speed_aura = 5293;
                      		centaur_khan_endurance_aura = 5294;
                      		centaur_khan_war_stomp = 5295;
                      		gnoll_assassin_envenomed_weapon = 5296;
                      		jakiro_dual_breath = 5297;
                      		jakiro_ice_path = 5298;
                      		jakiro_liquid_fire = 5299;
                      		jakiro_macropyre = 5300;
                      		ghost_frost_attack = 5301;
                      		polar_furbolg_ursa_warrior_thunder_clap = 5302;
                      		neutral_spell_immunity = 5303;
                      		ogre_magi_frost_armor = 5304;
                      		dark_troll_warlord_ensnare = 5305;
                      		dark_troll_warlord_raise_dead = 5306;
                      		giant_wolf_critical_strike = 5307;
                      		alpha_wolf_critical_strike = 5308;
                      		alpha_wolf_command_aura = 5309;
                      		tornado_tempest = 5310;
                      		enraged_wildkin_tornado = 5312;
                      		enraged_wildkin_toughness_aura = 5313;
                      		satyr_trickster_purge = 5314;
                      		satyr_soulstealer_mana_burn = 5315;
                      		satyr_hellcaller_shockwave = 5316;
                      		satyr_hellcaller_unholy_aura = 5317;
                      		forest_troll_high_priest_heal = 5318;
                      		harpy_storm_chain_lightning = 5319;
                      		batrider_sticky_napalm = 5320;
                      		batrider_flamebreak = 5321;
                      		batrider_firefly = 5322;
                      		batrider_flaming_lasso = 5323;
                      		black_dragon_splash_attack = 5324;
                      		blue_dragonspawn_sorcerer_evasion = 5325;
                      		blue_dragonspawn_overseer_evasion = 5326;
                      		blue_dragonspawn_overseer_devotion_aura = 5327;
                      		chen_penitence = 5328;
                      		chen_test_of_faith = 5329;
                      		chen_holy_persuasion = 5330;
                      		chen_hand_of_god = 5331;
                      		big_thunder_lizard_slam = 5332;
                      		big_thunder_lizard_frenzy = 5333;
                      		spectre_spectral_dagger = 5334;
                      		spectre_desolate = 5335;
                      		spectre_dispersion = 5336;
                      		spectre_haunt = 5337;
                      		spectre_reality = 5338;
                      		doom_bringer_devour = 5339;
                      		doom_bringer_scorched_earth = 5340;
                      		doom_bringer_infernal_blade = 5341;
                      		doom_bringer_doom = 5342;
                      		doom_bringer_empty1 = 5343;
                      		doom_bringer_empty2 = 5344;
                      		ancient_apparition_cold_feet = 5345;
                      		ancient_apparition_ice_vortex = 5346;
                      		ancient_apparition_chilling_touch = 5347;
                      		ancient_apparition_ice_blast = 5348;
                      		ancient_apparition_ice_blast_release = 5349;
                      		backdoor_protection = 5350;
                      		backdoor_protection_in_base = 5351;
                      		beastmaster_greater_boar_poison = 5352;
                      		spirit_breaker_charge_of_darkness = 5353;
                      		spirit_breaker_empowering_haste = 5354;
                      		spirit_breaker_greater_bash = 5355;
                      		spirit_breaker_nether_strike = 5356;
                      		ursa_earthshock = 5357;
                      		ursa_overpower = 5358;
                      		ursa_fury_swipes = 5359;
                      		ursa_enrage = 5360;
                      		gyrocopter_rocket_barrage = 5361;
                      		gyrocopter_homing_missile = 5362;
                      		gyrocopter_flak_cannon = 5363;
                      		gyrocopter_call_down = 5364;
                      		alchemist_acid_spray = 5365;
                      		alchemist_unstable_concoction = 5366;
                      		alchemist_unstable_concoction_throw = 5367;
                      		alchemist_goblins_greed = 5368;
                      		alchemist_chemical_rage = 5369;
                      		invoker_quas = 5370;
                      		invoker_wex = 5371;
                      		invoker_exort = 5372;
                      		invoker_empty1 = 5373;
                      		invoker_empty2 = 5374;
                      		invoker_invoke = 5375;
                      		invoker_cold_snap = 5376;
                      		silencer_curse_of_the_silent = 5377;
                      		silencer_glaives_of_wisdom = 5378;
                      		silencer_last_word = 5379;
                      		silencer_global_silence = 5380;
                      		invoker_ghost_walk = 5381;
                      		invoker_tornado = 5382;
                      		invoker_emp = 5383;
                      		invoker_alacrity = 5384;
                      		invoker_chaos_meteor = 5385;
                      		invoker_sun_strike = 5386;
                      		invoker_forge_spirit = 5387;
                      		forged_spirit_melting_strike = 5388;
                      		invoker_ice_wall = 5389;
                      		invoker_deafening_blast = 5390;
                      		obsidian_destroyer_arcane_orb = 5391;
                      		obsidian_destroyer_astral_imprisonment = 5392;
                      		obsidian_destroyer_essence_aura = 5393;
                      		obsidian_destroyer_sanity_eclipse = 5394;
                      		lycan_summon_wolves = 5395;
                      		lycan_howl = 5396;
                      		lycan_feral_impulse = 5397;
                      		lycan_shapeshift = 5398;
                      		lycan_summon_wolves_critical_strike = 5399;
                      		brewmaster_thunder_clap = 5400;
                      		brewmaster_drunken_haze = 5401;
                      		brewmaster_drunken_brawler = 5402;
                      		brewmaster_primal_split = 5403;
                      		brewmaster_earth_hurl_boulder = 5404;
                      		brewmaster_earth_spell_immunity = 5405;
                      		brewmaster_earth_pulverize = 5406;
                      		brewmaster_storm_dispel_magic = 5408;
                      		brewmaster_storm_cyclone = 5409;
                      		brewmaster_storm_wind_walk = 5410;
                      		brewmaster_fire_permanent_immolation = 5411;
                      		lone_druid_spirit_bear = 5412;
                      		lone_druid_rabid = 5413;
                      		lone_druid_savage_roar = 5414;
                      		lone_druid_true_form = 5415;
                      		lone_druid_true_form_druid = 5416;
                      		lone_druid_true_form_battle_cry = 5417;
                      		lone_druid_spirit_bear_return = 5418;
                      		lone_druid_spirit_bear_entangle = 5419;
                      		lone_druid_spirit_bear_demolish = 5420;
                      		shadow_demon_disruption = 5421;
                      		shadow_demon_soul_catcher = 5422;
                      		shadow_demon_shadow_poison = 5423;
                      		shadow_demon_shadow_poison_release = 5424;
                      		shadow_demon_demonic_purge = 5425;
                      		chaos_knight_chaos_bolt = 5426;
                      		chaos_knight_reality_rift = 5427;
                      		chaos_knight_chaos_strike = 5428;
                      		chaos_knight_phantasm = 5429;
                      		meepo_earthbind = 5430;
                      		meepo_poof = 5431;
                      		meepo_geostrike = 5432;
                      		meepo_divided_we_stand = 5433;
                      		treant_natures_guise = 5434;
                      		treant_leech_seed = 5435;
                      		treant_living_armor = 5436;
                      		treant_overgrowth = 5437;
                      		ogre_magi_fireblast = 5438;
                      		ogre_magi_ignite = 5439;
                      		ogre_magi_bloodlust = 5440;
                      		ogre_magi_multicast = 5441;
                      		undying_decay = 5442;
                      		undying_soul_rip = 5443;
                      		undying_tombstone = 5444;
                      		undying_tombstone_zombie_aura = 5445;
                      		undying_tombstone_zombie_deathstrike = 5446;
                      		undying_flesh_golem = 5447;
                      		rubick_telekinesis = 5448;
                      		rubick_telekinesis_land = 5449;
                      		rubick_fade_bolt = 5450;
                      		rubick_null_field = 5451;
                      		rubick_spell_steal = 5452;
                      		rubick_empty1 = 5453;
                      		rubick_empty2 = 5454;
                      		rubick_hidden1 = 5455;
                      		rubick_hidden2 = 5456;
                      		rubick_hidden3 = 5457;
                      		disruptor_thunder_strike = 5458;
                      		disruptor_glimpse = 5459;
                      		disruptor_kinetic_field = 5460;
                      		disruptor_static_storm = 5461;
                      		nyx_assassin_impale = 5462;
                      		nyx_assassin_mana_burn = 5463;
                      		nyx_assassin_spiked_carapace = 5464;
                      		nyx_assassin_vendetta = 5465;
                      		ogre_magi_unrefined_fireblast = 5466;
                      		naga_siren_mirror_image = 5467;
                      		naga_siren_ensnare = 5468;
                      		naga_siren_rip_tide = 5469;
                      		naga_siren_song_of_the_siren = 5470;
                      		keeper_of_the_light_illuminate = 5471;
                      		keeper_of_the_light_mana_leak = 5472;
                      		keeper_of_the_light_chakra_magic = 5473;
                      		keeper_of_the_light_spirit_form = 5474;
                      		keeper_of_the_light_recall = 5475;
                      		keeper_of_the_light_blinding_light = 5476;
                      		keeper_of_the_light_illuminate_end = 5477;
                      		naga_siren_song_of_the_siren_cancel = 5478;
                      		keeper_of_the_light_spirit_form_illuminate = 5479;
                      		visage_grave_chill = 5480;
                      		visage_soul_assumption = 5481;
                      		visage_gravekeepers_cloak = 5482;
                      		visage_summon_familiars = 5483;
                      		visage_summon_familiars_stone_form = 5484;
                      		wisp_tether = 5485;
                      		wisp_spirits = 5486;
                      		wisp_overcharge = 5487;
                      		wisp_relocate = 5488;
                      		wisp_tether_break = 5489;
                      		wisp_spirits_in = 5490;
                      		forest_troll_high_priest_mana_aura = 5491;
                      		courier_go_to_secretshop = 5492;
                      		wisp_spirits_out = 5493;
                      		slark_dark_pact = 5494;
                      		slark_pounce = 5495;
                      		slark_essence_shift = 5496;
                      		slark_shadow_dance = 5497;
                      		lycan_summon_wolves_invisibility = 5500;
                      		keeper_of_the_light_empty1 = 5501;
                      		keeper_of_the_light_empty2 = 5502;
                      		keeper_of_the_light_spirit_form_illuminate_end = 5503;
                      		medusa_split_shot = 5504;
                      		medusa_mystic_snake = 5505;
                      		medusa_mana_shield = 5506;
                      		medusa_stone_gaze = 5507;
                      		troll_warlord_berserkers_rage = 5508;
                      		troll_warlord_whirling_axes_ranged = 5509;
                      		troll_warlord_whirling_axes_melee = 5510;
                      		troll_warlord_fervor = 5511;
                      		troll_warlord_battle_trance = 5512;
                      		centaur_hoof_stomp = 5514;
                      		centaur_double_edge = 5515;
                      		centaur_return = 5516;
                      		centaur_stampede = 5517;
                      		magnataur_shockwave = 5518;
                      		magnataur_empower = 5519;
                      		magnataur_skewer = 5520;
                      		magnataur_reverse_polarity = 5521;
                      		chen_test_of_faith_teleport = 5522;
                      		bane_nightmare_end = 5523;
                      		shredder_whirling_death = 5524;
                      		shredder_timber_chain = 5525;
                      		shredder_reactive_armor = 5526;
                      		shredder_chakram = 5527;
                      		shredder_return_chakram = 5528;
                      		greevil_magic_missile = 5529;
                      		greevil_cold_snap = 5530;
                      		greevil_decrepify = 5531;
                      		greevil_diabolic_edict = 5532;
                      		greevil_maledict = 5533;
                      		greevil_shadow_strike = 5534;
                      		greevil_laguna_blade = 5535;
                      		greevil_miniboss_black_nightmare = 5536;
                      		greevil_miniboss_black_brain_sap = 5537;
                      		greevil_miniboss_blue_cold_feet = 5538;
                      		greevil_miniboss_blue_ice_vortex = 5539;
                      		greevil_miniboss_red_earthshock = 5540;
                      		greevil_miniboss_red_overpower = 5541;
                      		greevil_miniboss_yellow_ion_shell = 5542;
                      		greevil_miniboss_yellow_surge = 5543;
                      		greevil_miniboss_white_purification = 5544;
                      		greevil_miniboss_white_degen_aura = 5545;
                      		greevil_poison_nova = 5546;
                      		greevil_ice_wall = 5547;
                      		bristleback_viscous_nasal_goo = 5548;
                      		bristleback_quill_spray = 5549;
                      		bristleback_bristleback = 5550;
                      		bristleback_warpath = 5551;
                      		greevil_fatal_bonds = 5552;
                      		greevil_blade_fury = 5553;
                      		greevil_phantom_strike = 5554;
                      		greevil_time_lock = 5555;
                      		greevil_shadow_wave = 5556;
                      		greevil_leech_seed = 5557;
                      		greevil_echo_slam = 5558;
                      		greevil_natures_attendants = 5559;
                      		greevil_bloodlust = 5560;
                      		greevil_purification = 5561;
                      		greevil_flesh_golem = 5562;
                      		greevil_hook = 5563;
                      		greevil_rot = 5564;
                      		tusk_ice_shards = 5565;
                      		tusk_snowball = 5566;
                      		tusk_frozen_sigil = 5567;
                      		tusk_walrus_punch = 5568;
                      		greevil_black_hole = 5569;
                      		greevil_miniboss_green_living_armor = 5570;
                      		greevil_miniboss_green_overgrowth = 5571;
                      		greevil_miniboss_orange_dragon_slave = 5572;
                      		greevil_miniboss_orange_light_strike_array = 5573;
                      		greevil_miniboss_purple_venomous_gale = 5574;
                      		greevil_miniboss_purple_plague_ward = 5575;
                      		greevil_miniboss_sight = 5576;
                      		throw_snowball = 5577;
                      		throw_coal = 5578;
                      		healing_campfire = 5579;
                      		beastmaster_call_of_the_wild_boar = 5580;
                      		skywrath_mage_arcane_bolt = 5581;
                      		skywrath_mage_concussive_shot = 5582;
                      		skywrath_mage_ancient_seal = 5583;
                      		skywrath_mage_mystic_flare = 5584;
                      		abaddon_death_coil = 5585;
                      		abaddon_aphotic_shield = 5586;
                      		abaddon_frostmourne = 5587;
                      		abaddon_borrowed_time = 5588;
                      		elder_titan_echo_stomp = 5589;
                      		elder_titan_echo_stomp_spirit = 5590;
                      		elder_titan_ancestral_spirit = 5591;
                      		elder_titan_return_spirit = 5592;
                      		elder_titan_natural_order = 5593;
                      		elder_titan_earth_splitter = 5594;
                      		legion_commander_overwhelming_odds = 5595;
                      		legion_commander_press_the_attack = 5596;
                      		legion_commander_moment_of_courage = 5597;
                      		legion_commander_duel = 5598;
                      		techies_land_mines = 5599;
                      		techies_stasis_trap = 5600;
                      		techies_suicide = 5601;
                      		techies_remote_mines = 5602;
                      		ember_spirit_searing_chains = 5603;
                      		ember_spirit_sleight_of_fist = 5604;
                      		ember_spirit_flame_guard = 5605;
                      		ember_spirit_fire_remnant = 5606;
                      		ember_spirit_activate_fire_remnant = 5607;
                      		earth_spirit_boulder_smash = 5608;
                      		earth_spirit_rolling_boulder = 5609;
                      		earth_spirit_geomagnetic_grip = 5610;
                      		earth_spirit_stone_caller = 5611;
                      		earth_spirit_magnetize = 5612;
                      		abyssal_underlord_firestorm = 5613;
                      		abyssal_underlord_pit_of_malice = 5614;
                      		abyssal_underlord_atrophy_aura = 5615;
                      		abyssal_underlord_dark_rift = 5616;
                      		abyssal_underlord_cancel_dark_rift = 5617;
                      		roshan_halloween_spell_block = 5618;
                      		terrorblade_reflection = 5619;
                      		terrorblade_conjure_image = 5620;
                      		terrorblade_metamorphosis = 5621;
                      		terrorblade_sunder = 5622;
                      		phoenix_icarus_dive = 5623;
                      		phoenix_icarus_dive_stop = 5624;
                      		phoenix_fire_spirits = 5625;
                      		phoenix_sun_ray = 5626;
                      		phoenix_sun_ray_stop = 5627;
                      		phoenix_sun_ray_toggle_move = 5628;
                      		phoenix_supernova = 5630;
                      		phoenix_launch_fire_spirit = 5631;
                      		drow_ranger_wave_of_silence = 5632;
                      		techies_focused_detonate = 5635;
                      		techies_remote_mines_self_detonate = 5636;
                      		oracle_fortunes_end = 5637;
                      		oracle_fates_edict = 5638;
                      		oracle_purifying_flames = 5639;
                      		oracle_false_promise = 5640;
                      		tusk_launch_snowball = 5641;
                      		courier_morph = 5642;
                      		broodmother_spin_web_destroy = 5643;
                      		techies_minefield_sign = 5644;
                      		shredder_chakram_2 = 5645;
                      		shredder_return_chakram_2 = 5646;
                      		earth_spirit_petrify = 5648;
                      		treant_eyes_in_the_forest = 5649;
                      		shoot_firework = 5650;
                      		winter_wyvern_arctic_burn = 5651;
                      		winter_wyvern_splinter_blast = 5652;
                      		winter_wyvern_cold_embrace = 5653;
                      		winter_wyvern_winters_curse = 5654;
                      		life_stealer_control = 5655;
                      		granite_golem_hp_aura = 5656;
                      		life_stealer_empty_1 = 5657;
                      		life_stealer_empty_2 = 5658;
                      		life_stealer_empty_3 = 5659;
                      		life_stealer_empty_4 = 5660;
                      		cny_beast_force_attack = 5661;
                      		cny2015_sonic_wave = 5662;
                      		cny2015_black_hole = 5663;
                      		cny2015_chronosphere = 5664;
                      		cny_beast_teleport = 5665;
                      		nyx_assassin_burrow = 5666;
                      		mud_golem_rock_destroy = 5667;
                      		tusk_ice_shards_stop = 5668;
                      		ability_deward = 5669;
                      		mud_golem_hurl_boulder = 5670;
                      		life_stealer_assimilate = 5671;
                      		tusk_walrus_kick = 5672;
                      		nyx_assassin_unburrow = 5673;
                      		morphling_hybrid = 5674;
                      		life_stealer_assimilate_eject = 5675;
                      		courier_take_stash_and_transfer_items = 5676;
                      		arc_warden_flux = 5677;
                      		arc_warden_magnetic_field = 5678;
                      		arc_warden_spark_wraith = 5679;
                      		granite_golem_bash = 5680;
                      		black_dragon_dragonhide_aura = 5681;
                      		big_thunder_lizard_wardrums_aura = 5682;
                      		arc_warden_tempest_double = 5683;
                      		obsidian_destroyer_mind_over_matter = 5684;
                      		death_prophet_spirit_siphon = 5685;
                      		ancient_golem_rockslide = 5686;
                      		lone_druid_savage_roar_bear = 5687;
                      		mudgolem_cloak_aura = 5688;
                      		black_dragon_fireball = 5689;
                      		invoker_attribute_bonus = 5690;
                      		faceless_void_time_dilation = 5691;
                      		monkey_king_boundless_strike = 5716;
                      		monkey_king_mischief = 5719;
                      		monkey_king_tree_dance = 5721;
                      		monkey_king_untransform = 5722;
                      		monkey_king_jingu_mastery = 5723;
                      		monkey_king_primal_spring = 5724;
                      		monkey_king_wukongs_command = 5725;
                      		monkey_king_primal_spring_early = 5726;
                      		elder_titan_natural_order_spirit = 5750;
                      		special_bonus_hp_100 = 5900;
                      		special_bonus_hp_125 = 5901;
                      		special_bonus_hp_150 = 5902;
                      		special_bonus_hp_250 = 5903;
                      		special_bonus_mp_125 = 5904;
                      		special_bonus_mp_150 = 5905;
                      		special_bonus_attack_speed_20 = 5906;
                      		special_bonus_attack_speed_30 = 5907;
                      		special_bonus_attack_speed_60 = 5908;
                      		special_bonus_hp_regen_4 = 5909;
                      		special_bonus_hp_regen_5 = 5910;
                      		special_bonus_hp_regen_8 = 5911;
                      		special_bonus_hp_regen_10 = 5912;
                      		special_bonus_hp_regen_14 = 5913;
                      		special_bonus_hp_regen_15 = 5914;
                      		special_bonus_mp_regen_1 = 5915;
                      		special_bonus_mp_regen_4 = 5916;
                      		special_bonus_movement_speed_15 = 5917;
                      		special_bonus_movement_speed_20 = 5918;
                      		special_bonus_movement_speed_25 = 5919;
                      		special_bonus_all_stats_4 = 5920;
                      		special_bonus_all_stats_5 = 5921;
                      		special_bonus_all_stats_6 = 5922;
                      		special_bonus_all_stats_8 = 5923;
                      		special_bonus_intelligence_6 = 5924;
                      		special_bonus_intelligence_8 = 5925;
                      		special_bonus_intelligence_12 = 5926;
                      		special_bonus_strength_5 = 5927;
                      		special_bonus_strength_12 = 5928;
                      		special_bonus_agility_15 = 5929;
                      		special_bonus_armor_3 = 5930;
                      		special_bonus_armor_4 = 5931;
                      		special_bonus_armor_5 = 5932;
                      		special_bonus_armor_6 = 5933;
                      		special_bonus_armor_8 = 5934;
                      		special_bonus_magic_resistance_5 = 5935;
                      		special_bonus_magic_resistance_8 = 5936;
                      		special_bonus_magic_resistance_10 = 5937;
                      		special_bonus_attack_damage_15 = 5938;
                      		special_bonus_attack_damage_30 = 5939;
                      		special_bonus_attack_damage_40 = 5940;
                      		special_bonus_attack_damage_50 = 5941;
                      		special_bonus_attack_damage_75 = 5942;
                      		special_bonus_attack_range_100 = 5943;
                      		special_bonus_attack_range_125 = 5944;
                      		special_bonus_attack_range_200 = 5945;
                      		special_bonus_cast_range_50 = 5946;
                      		special_bonus_cast_range_75 = 5947;
                      		special_bonus_spell_amplify_5 = 5948;
                      		special_bonus_spell_amplify_8 = 5949;
                      		special_bonus_cooldown_reduction_8 = 5950;
                      		special_bonus_cooldown_reduction_15 = 5951;
                      		special_bonus_cooldown_reduction_20 = 5952;
                      		special_bonus_respawn_reduction_20 = 5953;
                      		special_bonus_respawn_reduction_25 = 5954;
                      		special_bonus_gold_income_5 = 5955;
                      		special_bonus_gold_income_10 = 5956;
                      		special_bonus_gold_income_25 = 5957;
                      		special_bonus_movement_speed_10 = 5958;
                      		special_bonus_hp_200 = 5959;
                      		special_bonus_attack_damage_20 = 5960;
                      		special_bonus_mp_regen_2 = 5961;
                      		special_bonus_agility_20 = 5962;
                      		special_bonus_attack_range_150 = 5963;
                      		special_bonus_respawn_reduction_30 = 5964;
                      		special_bonus_intelligence_10 = 5965;
                      		special_bonus_hp_regen_7 = 5966;
                      		special_bonus_attack_damage_90 = 5968;
                      		special_bonus_hp_regen_6 = 5969;
                      		special_bonus_armor_7 = 5970;
                      		special_bonus_evasion_10 = 5971;
                      		special_bonus_evasion_15 = 5972;
                      		special_bonus_evasion_20 = 5973;
                      		special_bonus_evasion_25 = 5974;
                      		special_bonus_respawn_reduction_15 = 5975;
                      		special_bonus_hp_400 = 5976;
                      		special_bonus_unique_clockwerk = 5977;
                      		special_bonus_attack_damage_100 = 5979;
                      		special_bonus_mp_regen_6 = 5980;
                      		special_bonus_unique_omniknight_1 = 5981;
                      		special_bonus_strength_8 = 5982;
                      		special_bonus_exp_boost_5 = 5983;
                      		special_bonus_strength_25 = 5984;
                      		special_bonus_exp_boost_10 = 5985;
                      		special_bonus_exp_boost_15 = 5986;
                      		special_bonus_exp_boost_25 = 5987;
                      		special_bonus_unique_centaur_2 = 5988;
                      		special_bonus_spell_amplify_10 = 5989;
                      		special_bonus_mp_300 = 5990;
                      		special_bonus_intelligence_15 = 5991;
                      		special_bonus_attack_range_50 = 5992;
                      		special_bonus_hp_300 = 5993;
                      		special_bonus_magic_resistance_6 = 5994;
                      		special_bonus_intelligence_20 = 5995;
                      		special_bonus_spell_amplify_6 = 5996;
                      		special_bonus_unique_witch_doctor_1 = 5998;
                      		special_bonus_magic_resistance_20 = 6000;
                      		special_bonus_strength_3 = 6002;
                      		special_bonus_cast_range_100 = 6003;
                      		special_bonus_armor_10 = 6004;
                      		special_bonus_strength_4 = 6005;
                      		special_bonus_mp_250 = 6006;
                      		special_bonus_gold_income_15 = 6007;
                      		special_bonus_gold_income_20 = 6008;
                      		special_bonus_attack_damage_25 = 6009;
                      		special_bonus_unique_necrophos = 6010;
                      		special_bonus_agility_13 = 6011;
                      		special_bonus_unique_antimage = 6012;
                      		special_bonus_unique_mirana_1 = 6013;
                      		special_bonus_agility_8 = 6014;
                      		special_bonus_spell_amplify_4 = 6015;
                      		special_bonus_attack_speed_25 = 6016;
                      		special_bonus_exp_boost_20 = 6017;
                      		special_bonus_unique_bounty_hunter = 6018;
                      		special_bonus_unique_underlord = 6019;
                      		special_bonus_attack_speed_50 = 6020;
                      		special_bonus_cooldown_reduction_10 = 6021;
                      		special_bonus_hp_regen_40 = 6022;
                      		special_bonus_unique_pudge_1 = 6023;
                      		special_bonus_unique_treant = 6024;
                      		special_bonus_20_bash_2 = 6025;
                      		special_bonus_gold_income_30 = 6026;
                      		special_bonus_attack_range_75 = 6027;
                      		special_bonus_unique_razor = 6028;
                      		special_bonus_agility_10 = 6029;
                      		special_bonus_attack_speed_80 = 6030;
                      		special_bonus_unique_visage_1 = 6031;
                      		special_bonus_cast_range_60 = 6032;
                      		special_bonus_hp_175 = 6034;
                      		special_bonus_unique_earthshaker = 6035;
                      		special_bonus_attack_speed_100 = 6037;
                      		special_bonus_respawn_reduction_35 = 6038;
                      		special_bonus_unique_lich_1 = 6039;
                      		special_bonus_attack_range_250 = 6040;
                      		special_bonus_unique_rubick = 6041;
                      		special_bonus_intelligence_13 = 6042;
                      		special_bonus_unique_sven = 6045;
                      		special_bonus_unique_dark_seer = 6047;
                      		special_bonus_strength_6 = 6048;
                      		special_bonus_unique_dazzle_1 = 6049;
                      		special_bonus_intelligence_25 = 6050;
                      		special_bonus_attack_range_300 = 6051;
                      		special_bonus_unique_shadow_shaman_1 = 6052;
                      		special_bonus_unique_warlock_1 = 6053;
                      		special_bonus_unique_warlock_2 = 6054;
                      		special_bonus_spell_amplify_15 = 6055;
                      		special_bonus_cast_range_150 = 6056;
                      		special_bonus_unique_vengeful_spirit_3 = 6057;
                      		special_bonus_unique_venomancer = 6058;
                      		special_bonus_respawn_reduction_60 = 6059;
                      		special_bonus_intelligence_30 = 6060;
                      		special_bonus_spell_lifesteal_70 = 6061;
                      		special_bonus_unique_morphling_1 = 6062;
                      		special_bonus_unique_leshrac_1 = 6063;
                      		special_bonus_unique_jakiro = 6064;
                      		special_bonus_unique_enigma = 6065;
                      		special_bonus_respawn_reduction_40 = 6066;
                      		special_bonus_mp_175 = 6067;
                      		special_bonus_unique_bane_1 = 6068;
                      		special_bonus_unique_bane_2 = 6069;
                      		special_bonus_unique_nevermore_2 = 6070;
                      		special_bonus_unique_templar_assassin = 6071;
                      		special_bonus_unique_crystal_maiden_1 = 6072;
                      		special_bonus_unique_doom_1 = 6073;
                      		special_bonus_all_stats_7 = 6074;
                      		special_bonus_movement_speed_35 = 6077;
                      		special_bonus_lifesteal_20 = 6078;
                      		special_bonus_hp_regen_20 = 6079;
                      		special_bonus_strength_20 = 6080;
                      		special_bonus_unique_brewmaster = 6082;
                      		special_bonus_unique_bristleback = 6083;
                      		special_bonus_unique_furion = 6084;
                      		special_bonus_unique_phoenix_2 = 6085;
                      		special_bonus_unique_enchantress_2 = 6086;
                      		special_bonus_unique_batrider_1 = 6087;
                      		special_bonus_unique_wraith_king_2 = 6088;
                      		special_bonus_unique_kunkka = 6089;
                      		special_bonus_unique_dragon_knight = 6090;
                      		special_bonus_magic_resistance_25 = 6091;
                      		special_bonus_day_vision_400 = 6092;
                      		special_bonus_movement_speed_40 = 6093;
                      		special_bonus_mp_200 = 6094;
                      		special_bonus_attack_damage_10 = 6095;
                      		special_bonus_mp_100 = 6096;
                      		special_bonus_unique_invoker_1 = 6097;
                      		special_bonus_unique_invoker_2 = 6098;
                      		special_bonus_unique_invoker_3 = 6099;
                      		special_bonus_unique_abaddon = 6100;
                      		special_bonus_unique_alchemist = 6101;
                      		special_bonus_unique_axe = 6102;
                      		special_bonus_unique_beastmaster = 6103;
                      		special_bonus_unique_clinkz_1 = 6104;
                      		special_bonus_unique_juggernaut = 6105;
                      		special_bonus_unique_winter_wyvern_1 = 6106;
                      		special_bonus_unique_terrorblade = 6107;
                      		special_bonus_armor_2 = 6110;
                      		special_bonus_lifesteal_25 = 6111;
                      		special_bonus_attack_damage_120 = 6112;
                      		special_bonus_cast_range_200 = 6114;
                      		special_bonus_strength_7 = 6115;
                      		special_bonus_mp_regen_10 = 6116;
                      		special_bonus_intelligence_7 = 6117;
                      		special_bonus_attack_speed_10 = 6118;
                      		special_bonus_attack_speed_15 = 6119;
                      		special_bonus_cast_range_175 = 6120;
                      		special_bonus_lifesteal_30 = 6121;
                      		spawnlord_aura = 6125;
                      		spawnlord_master_bash = 6126;
                      		special_bonus_unique_luna_2 = 6127;
                      		special_bonus_unique_faceless_void = 6128;
                      		special_bonus_unique_night_stalker = 6129;
                      		special_bonus_unique_nyx = 6130;
                      		special_bonus_unique_weaver_2 = 6131;
                      		special_bonus_unique_ursa = 6132;
                      		special_bonus_unique_chaos_knight = 6133;
                      		special_bonus_unique_lycan_1 = 6134;
                      		special_bonus_all_stats_15 = 6135;
                      		special_bonus_armor_9 = 6136;
                      		special_bonus_strength_10 = 6137;
                      		special_bonus_magic_resistance_15 = 6138;
                      		special_bonus_all_stats_12 = 6139;
                      		special_bonus_unique_lycan_2 = 6140;
                      		special_bonus_movement_speed_30 = 6141;
                      		special_bonus_attack_damage_65 = 6142;
                      		special_bonus_unique_windranger = 6144;
                      		special_bonus_strength_15 = 6145;
                      		special_bonus_unique_phantom_lancer = 6146;
                      		special_bonus_unique_slark = 6147;
                      		special_bonus_unique_spectre = 6148;
                      		special_bonus_unique_spirit_breaker_1 = 6149;
                      		special_bonus_agility_25 = 6150;
                      		special_bonus_unique_tidehunter = 6151;
                      		special_bonus_unique_tinker = 6152;
                      		special_bonus_unique_tiny = 6153;
                      		special_bonus_unique_troll_warlord = 6154;
                      		special_bonus_unique_undying = 6155;
                      		special_bonus_unique_viper_1 = 6156;
                      		special_bonus_unique_zeus = 6157;
                      		special_bonus_lifesteal_10 = 6158;
                      		special_bonus_attack_damage_12 = 6159;
                      		special_bonus_mp_regen_3 = 6160;
                      		special_bonus_cast_range_250 = 6161;
                      		special_bonus_spell_amplify_3 = 6162;
                      		special_bonus_attack_damage_35 = 6164;
                      		special_bonus_unique_viper_2 = 6165;
                      		special_bonus_spell_lifesteal_20 = 6166;
                      		special_bonus_unique_storm_spirit = 6167;
                      		special_bonus_all_stats_10 = 6168;
                      		special_bonus_agility_16 = 6169;
                      		special_bonus_agility_14 = 6170;
                      		special_bonus_unique_elder_titan = 6171;
                      		special_bonus_unique_ember_spirit_1 = 6172;
                      		special_bonus_unique_lifestealer = 6173;
                      		special_bonus_unique_lion = 6174;
                      		special_bonus_armor_15 = 6175;
                      		special_bonus_unique_ember_spirit_2 = 6176;
                      		special_bonus_unique_luna_1 = 6180;
                      		special_bonus_unique_skywrath = 6181;
                      		special_bonus_unique_medusa = 6182;
                      		special_bonus_unique_ogre_magi = 6183;
                      		special_bonus_unique_silencer = 6184;
                      		special_bonus_mp_500 = 6185;
                      		special_bonus_attack_range_175 = 6186;
                      		special_bonus_cooldown_reduction_12 = 6190;
                      		special_bonus_unique_death_prophet = 6191;
                      		special_bonus_unique_phantom_assassin = 6192;
                      		special_bonus_unique_riki_2 = 6193;
                      		special_bonus_unique_tusk = 6194;
                      		special_bonus_hp_350 = 6195;
                      		special_bonus_attack_speed_35 = 6196;
                      		special_bonus_cast_range_125 = 6197;
                      		special_bonus_unique_sniper_2 = 6198;
                      		special_bonus_unique_magnus = 6199;
                      		special_bonus_unique_weaver_1 = 6200;
                      		special_bonus_unique_wraith_king_1 = 6201;
                      		special_bonus_unique_drow_ranger_1 = 6202;
                      		special_bonus_unique_earth_spirit = 6203;
                      		special_bonus_unique_huskar = 6204;
                      		special_bonus_unique_naga_siren = 6205;
                      		special_bonus_unique_oracle = 6206;
                      		special_bonus_unique_sand_king = 6207;
                      		special_bonus_unique_shadow_demon_1 = 6208;
                      		special_bonus_unique_drow_ranger_2 = 6209;
                      		special_bonus_attack_speed_40 = 6210;
                      		special_bonus_unique_slardar = 6211;
                      		special_bonus_unique_lina_1 = 6212;
                      		special_bonus_cast_range_300 = 6213;
                      		special_bonus_unique_ancient_apparition_1 = 6214;
                      		special_bonus_unique_disruptor = 6215;
                      		special_bonus_unique_gyrocopter_1 = 6216;
                      		special_bonus_unique_keeper_of_the_light = 6217;
                      		special_bonus_unique_legion_commander = 6218;
                      		special_bonus_unique_puck = 6219;
                      		special_bonus_unique_pugna_1 = 6220;
                      		special_bonus_magic_resistance_30 = 6221;
                      		special_bonus_cooldown_reduction_25 = 6222;
                      		special_bonus_unique_timbersaw = 6223;
                      		special_bonus_attack_speed_45 = 6224;
                      		special_bonus_unique_morphling_2 = 6225;
                      		filler_ability = 6226;
                      		special_bonus_unique_phoenix_1 = 6227;
                      		special_bonus_vision_200 = 6228;
                      		special_bonus_unique_batrider_2 = 6229;
                      		special_bonus_unique_bloodseeker = 6230;
                      		special_bonus_unique_clinkz_2 = 6231;
                      		special_bonus_unique_dazzle_2 = 6232;
                      		special_bonus_unique_crystal_maiden_2 = 6234;
                      		special_bonus_hp_500 = 6235;
                      		special_bonus_spell_amplify_20 = 6236;
                      		special_bonus_unique_vengeful_spirit_2 = 6237;
                      		special_bonus_unique_pugna_2 = 6238;
                      		special_bonus_evasion_12 = 6239;
                      		special_bonus_unique_leshrac_2 = 6240;
                      		special_bonus_unique_outworld_devourer = 6241;
                      		special_bonus_unique_mirana_2 = 6242;
                      		special_bonus_mp_regen_8 = 6243;
                      		special_bonus_unique_pudge_2 = 6245;
                      		special_bonus_attack_damage_150 = 6247;
                      		special_bonus_intelligence_35 = 6248;
                      		special_bonus_movement_speed_45 = 6249;
                      		special_bonus_strength_9 = 6250;
                      		special_bonus_all_stats_14 = 6252;
                      		special_bonus_attack_damage_45 = 6253;
                      		special_bonus_mp_350 = 6254;
                      		special_bonus_mp_regen_14 = 6255;
                      		special_bonus_unique_broodmother_1 = 6257;
                      		special_bonus_unique_broodmother_2 = 6258;
                      		special_bonus_unique_chen_1 = 6259;
                      		special_bonus_unique_chen_2 = 6260;
                      		special_bonus_unique_lone_druid_1 = 6261;
                      		special_bonus_unique_lone_druid_2 = 6262;
                      		special_bonus_unique_lone_druid_3 = 6263;
                      		special_bonus_unique_wisp = 6265;
                      		special_bonus_unique_lone_druid_4 = 6268;
                      		special_bonus_respawn_reduction_50 = 6269;
                      		spawnlord_master_stomp = 6270;
                      		spawnlord_master_freeze = 6278;
                      		special_bonus_unique_drow_ranger_3 = 6280;
                      		special_bonus_strength_14 = 6281;
                      		special_bonus_unique_techies = 6282;
                      		special_bonus_undefined = 6285;
                      		special_bonus_armor_12 = 6286;
                      		special_bonus_unique_arc_warden = 6287;
                      		special_bonus_unique_meepo = 6288;
                      		special_bonus_lifesteal_15 = 6289;
                      		special_bonus_unique_ancient_apparition_2 = 6291;
                      		special_bonus_unique_lich_2 = 6292;
                      		special_bonus_unique_shadow_demon_2 = 6293;
                      		special_bonus_unique_shadow_shaman_2 = 6295;
                      		special_bonus_unique_spirit_breaker_2 = 6296;
                      		special_bonus_unique_winter_wyvern_2 = 6297;
                      		special_bonus_unique_witch_doctor_2 = 6298;
                      		special_bonus_magic_resistance_12 = 6299;
                      		special_bonus_unique_omniknight_2 = 6300;
                      		special_bonus_gold_income_40 = 6301;
                      		special_bonus_hp_regen_50 = 6302;
                      		special_bonus_unique_monkey_king = 6303;
                      		special_bonus_unique_sniper_1 = 6305;
                      		special_bonus_movement_speed_50 = 6306;
                      		special_bonus_attack_range_400 = 6307;
                      		special_bonus_hp_regen_25 = 6308;
                      		special_bonus_all_stats_20 = 6309;
                      		special_bonus_unique_vengeful_spirit_1 = 6310;
                      		special_bonus_hp_275 = 6311;
                      		special_bonus_unique_gyrocopter_2 = 6312;
                      		special_bonus_unique_lina_2 = 6313;
                      		special_bonus_unique_doom_2 = 6314;
                      		necrolyte_sadist_stop = 6316;
                      		special_bonus_exp_boost_30 = 6317;
                      		special_bonus_gold_income_50 = 6318;
                      		special_bonus_unique_visage_2 = 6320;
                      		special_bonus_mp_400 = 6321;
                      		special_bonus_unique_centaur_1 = 6322;
                      		zuus_cloud = 6325;
                      		special_bonus_spell_amplify_12 = 6326;
                      		special_bonus_spell_amplify_25 = 6327;
                      		courier_transfer_items_to_other_player = 6328;
                      		courier_go_to_enemy_secretshop = 6329;
                      		special_bonus_unique_riki_1 = 6330;
                      		special_bonus_unique_enchantress_1 = 6331;
                      		special_bonus_intelligence_16 = 6332;
                      		courier_go_to_sideshop = 6333;
                      		courier_go_to_sideshop2 = 6334;
                      		special_bonus_unique_alchemist_2 = 6350;
                      		special_bonus_hp_regen_30 = 6351;
                      		special_bonus_unique_ancient_apparition_3 = 6352;
                      		special_bonus_unique_antimage_2 = 6353;
                      		special_bonus_unique_arc_warden_2 = 6354;
                      		special_bonus_movement_speed_75 = 6355;
                      		special_bonus_unique_bloodseeker_2 = 6356;
                      		special_bonus_unique_bloodseeker_3 = 6357;
                      		special_bonus_unique_bounty_hunter_2 = 6358;
                      		special_bonus_unique_brewmaster_2 = 6359;
                      		special_bonus_unique_bristleback_2 = 6360;
                      		special_bonus_unique_broodmother_3 = 6361;
                      		special_bonus_unique_broodmother_4 = 6362;
                      		special_bonus_unique_chen_3 = 6363;
                      		special_bonus_unique_clockwerk_2 = 6364;
                      		special_bonus_unique_dark_seer_2 = 6365;
                      		special_bonus_attack_damage_60 = 6366;
                      		special_bonus_unique_death_prophet_2 = 6367;
                      		special_bonus_unique_disruptor_2 = 6368;
                      		special_bonus_unique_doom_3 = 6369;
                      		special_bonus_unique_doom_4 = 6370;
                      		special_bonus_unique_doom_5 = 6371;
                      		special_bonus_exp_boost_35 = 6372;
                      		special_bonus_movement_speed_60 = 6373;
                      		special_bonus_respawn_reduction_45 = 6375;
                      		special_bonus_hp_600 = 6377;
                      		special_bonus_unique_elder_titan_2 = 6378;
                      		special_bonus_unique_enchantress_3 = 6379;
                      		special_bonus_unique_huskar_2 = 6380;
                      		special_bonus_unique_jakiro_2 = 6381;
                      		special_bonus_mp_600 = 6382;
                      		special_bonus_cast_range_400 = 6384;
                      		special_bonus_unique_kunkka_2 = 6385;
                      		special_bonus_magic_resistance_35 = 6386;
                      		special_bonus_unique_lich_3 = 6387;
                      		special_bonus_unique_lina_3 = 6388;
                      		special_bonus_unique_lion_2 = 6389;
                      		special_bonus_unique_magnus_2 = 6390;
                      		special_bonus_unique_medusa_2 = 6392;
                      		special_bonus_attack_damage_55 = 6396;
                      		special_bonus_unique_mirana_3 = 6397;
                      		special_bonus_unique_naga_siren_2 = 6398;
                      		special_bonus_unique_nyx_2 = 6399;
                      		special_bonus_unique_phantom_lancer_2 = 6400;
                      		special_bonus_unique_phoenix_3 = 6401;
                      		special_bonus_unique_puck_2 = 6402;
                      		special_bonus_unique_pugna_3 = 6403;
                      		special_bonus_hp_225 = 6405;
                      		special_bonus_agility_30 = 6406;
                      		special_bonus_unique_queen_of_pain = 6407;
                      		special_bonus_unique_razor_2 = 6408;
                      		special_bonus_unique_sand_king_2 = 6409;
                      		special_bonus_mp_regen_5 = 6410;
                      		special_bonus_unique_tusk_2 = 6411;
                      		special_bonus_unique_warlock_3 = 6412;
                      		special_bonus_unique_windranger_2 = 6413;
                      		special_bonus_unique_wraith_king_3 = 6414;
                      		special_bonus_hp_700 = 6415;
                      		special_bonus_unique_undying_2 = 6420;
                      		special_bonus_unique_monkey_king_2 = 6421;
                      		special_bonus_movement_speed_100 = 6422;
                      		special_bonus_hp_325 = 6423;
                      		special_bonus_unique_earthshaker_2 = 6425;
                      		special_bonus_agility_40 = 6430;
                      		special_bonus_attack_speed_70 = 6444;
                      		special_bonus_cooldown_reduction_40 = 6445;
                      		special_bonus_gold_income_70 = 6446;
                      		special_bonus_exp_boost_40 = 6447;
                      		special_bonus_unique_pugna_4 = 6448;
                      		special_bonus_unique_legion_commander_2 = 6449;
                      		special_bonus_unique_furion_2 = 6500;
                      		special_bonus_unique_zeus_2 = 6501;
                      		special_bonus_unique_shadow_shaman_3 = 6502;
                      		special_bonus_armor_20 = 6503;
                      		special_bonus_mp_225 = 6504;
                      		special_bonus_unique_warlock_4 = 6505;
                      		special_bonus_unique_pudge_3 = 6506;
                      		special_bonus_unique_magnus_3 = 6507;
                      		special_bonus_unique_lone_druid_5 = 6508;
                      		special_bonus_unique_lina_4 = 6509;
                      		special_bonus_unique_enigma_2 = 6510;
                      		special_bonus_unique_earthshaker_3 = 6511;
                      		special_bonus_unique_clockwerk_3 = 6512;
                      		special_bonus_spell_lifesteal_30 = 6513;
                      		special_bonus_unique_earth_spirit_2 = 6514;
                      		special_bonus_unique_enchantress_4 = 6515;
                      		special_bonus_unique_brewmaster_3 = 6516;
                      		special_bonus_unique_beastmaster_2 = 6517;
                      		special_bonus_unique_zeus_3 = 6518;
                      		special_bonus_unique_lycan_3 = 6519;
                      		special_bonus_unique_crystal_maiden_3 = 6520;
                      		special_bonus_unique_shadow_shaman_4 = 6521;
                      		special_bonus_unique_visage_3 = 6522;
                      		special_bonus_unique_winter_wyvern_3 = 6523;
                      		special_bonus_unique_witch_doctor_3 = 6524;
                      		special_bonus_unique_legion_commander_3 = 6526;
                      		special_bonus_unique_keeper_of_the_light_2 = 6527;
                      		special_bonus_unique_dazzle_3 = 6528;
                      		special_bonus_unique_sand_king_3 = 6530;
                      		special_bonus_unique_treant_2 = 6531;
                      		special_bonus_unique_venomancer_2 = 6532;
                      		special_bonus_unique_ancient_apparition_4 = 6534;
                      		special_bonus_unique_chen_4 = 6535;
                      		special_bonus_unique_disruptor_3 = 6536;
                      		special_bonus_unique_wisp_2 = 6537;
                      		special_bonus_unique_jakiro_3 = 6538;
                      		special_bonus_unique_furion_3 = 6539;
                      		special_bonus_unique_oracle_2 = 6540;
                      		special_bonus_unique_pugna_5 = 6541;
                      		special_bonus_unique_shadow_demon_3 = 6542;
                      		special_bonus_unique_spirit_breaker_3 = 6543;
                      		special_bonus_unique_templar_assassin_2 = 6545;
                      		special_bonus_unique_undying_3 = 6546;
                      		special_bonus_spell_lifesteal_15 = 6550;
                      		special_bonus_unique_techies_2 = 6552;
                      		special_bonus_attack_damage_400 = 6553;
                      		special_bonus_attack_damage_250 = 6556;
                      		special_bonus_spell_lifesteal_13 = 6560;
                      		special_bonus_cooldown_reduction_30 = 6561;
                      		special_bonus_unique_windranger_3 = 6562;
                      		special_bonus_spell_lifesteal_10 = 6564;
                      		special_bonus_spell_lifesteal_8 = 6565;
                      		special_bonus_unique_wraith_king_4 = 6566;
                      		special_bonus_intelligence_14 = 6567;
                      		special_bonus_unique_nevermore_1 = 6670;
                      		roshan_halloween_candy = 9990;
                      		roshan_halloween_angry = 9991;
                      		roshan_halloween_wave_of_force = 9993;
                      		roshan_halloween_greater_bash = 9994;
                      		roshan_halloween_toss = 9995;
                      		roshan_halloween_shell = 9997;
                      		roshan_halloween_apocalypse = 9998;
                      		roshan_halloween_burn = 9999;
                      		roshan_halloween_levels = 10000;
                      		roshan_halloween_summon = 10001;
                      		roshan_halloween_fireball = 10002;
                      	};
                      You also have to replace all the "uint32 ability_id = " with "AbilityType ability_id = ".

                      Result
                      Code:
                        abilities {
                          handle: 172
                          ability_id: crystal_maiden_crystal_nova
                          slot: 0
                          caster_handle: 171
                          level: 1
                          cast_range: 700
                          channel_time: 0.0
                          cooldown_remaining: 0.0
                          is_activated: true
                          is_toggled: false
                          is_in_ability_phase: false
                          is_channeling: false
                          is_stolen: false
                        }
                        items {
                          handle: 228
                          ability_id: clarity
                          slot: 0
                          caster_handle: 171
                          level: 1
                          cast_range: 250
                          channel_time: 0.0
                          cooldown_remaining: 0.0
                          is_activated: true
                          is_toggled: false
                          is_in_ability_phase: false
                          is_channeling: false
                          is_stolen: false
                          charges: 1
                          secondary_charges: 0
                          is_combined_locked: false
                        }
                      Last edited by nostrademous; 09-26-2017, 01:55 PM.

                      Comment


                      • #12
                        So for ML purposes, I'm thinking of doing slightly higher-level reinforcement learning than what was shown by OpenAI or some others by using the following information:

                        World State:
                        Code:
                        Friendly Data
                            Base Data
                            Ability Data
                            Item Data
                            Action
                            Minion Data
                        Enemy Data
                            Enemy Base Data
                            Enemy Lane Presence
                            Enemy Ability Data
                            Enemy Item Data
                            Enemy Action
                            Enemy Minion
                        Laning Data (per lane)
                            Lane Equilibrium
                            Friendly & Enemy Creep Data
                            Friendly & Enemy Tower Data
                            Friendly & Enemy Rax Data
                        Ancient Data
                            Friendly & Enemy
                        Jungle Data
                            Jungle Camp Data
                        Roshan Data
                        Shrine Data
                            Friendly & Enemy
                        Rune Data
                        Predicted Data
                            Unseen Enemy Location Guess Data
                            Unseen Enemy Action Guess Data
                        Simulated Data
                            Localized Nuke Damage (includes Global damage) over time period
                        Obviously each of these Data groups has a bunch of information associated with it.
                        For example, Basic Data is:
                        Code:
                        - Level, Health, Health Regen, Mana, Mana Regen, Location, Net Worth, Move Speed, Attack Range, Phys Dmg Resistance, Magic Dmg Resistance
                        - Buffs, Debuffs
                        - Have Stun, Have Global, Have Escape, Have Evasion, Have Heal
                        - Prob Illusion/Clone (if multiple spotted)
                        Now, all of the above is just my white-boardng of the world-state representation data I hope to provide to my machine learning implementation. The next thing is to now figure out a set of allowable actions we can take based on our observations of world state. These I white-boarded below.

                        Action Selection:
                        Code:
                        Hero & Minion Actions
                            Move Actions (these are for longer distancesÖ not simple laning/fight repositions)
                                Donít Move
                                Go to Side Shop
                                Go to Secret Shop
                                Go to Rune
                                Go to Roshan
                                Go to Building (e.g., Fountain, tower, shrine, rax)
                                Go to Location(X,Y,Z)
                                Teleport to Building
                                Teleport to Unit
                                Teleport to Location(X,Y,Z)
                            Laning Actions (Eq refers go lane equilibrium)
                                Aggressive Positioning at Eq (includes last-hitting and denying)
                                Defensive Positioning at Eq (includes last-hitting and denying)
                                Maintaining Eq (includes last-hitting and denying)
                                Pushing Eq
                                Push Eq Kill Creep
                                Push Eq Kill Building
                                Pulling Eq
                                Pull Eq Friendly Attack (start deny process as early as possible)
                                Deny Building
                                Pull Neutral Creeps (this is a laning action, not a jungling one)
                            Jungle Actions
                                Farm Camp
                                Stack Camp
                                Deprive Camp (i.e., leave 1 bad NPC)
                                Block Camp (i.e., prevent from spawning)
                            Roshan Actions
                                Kill Roshan
                                Check Roshan
                                Get Aegis
                                Get Cheese
                                Deny Aegis
                                Deny Cheese
                            Rune Actions
                                Get Rune
                                Check Rune
                                Protect Rune
                                Deny Rune
                            Shrine Actions
                                Use Shrine
                                Wait At Shrine
                                Kill Enemy Shrine
                            Observation Action
                                Place Ward
                                Deward
                                Use Scan
                                Ability Based (e.g., fly-over projectile, global, leave-behind: Templarís Trap, Techies Mines, Treantís Aghís)
                                Roam (e.g., hero move to, send illusion/clone, send minion, send courier)
                            Fight Actions
                                Break Target (e.g., silver edge)
                                Disarm Target
                                Silence Target
                                CC Target (stun, hex, root)
                                Detect Target (e.g., dust, abilities that give true sight, items that give true sight)
                                Damage Target (aka Harass)
                                Nuke Target (aka Damage Target with Intent of Kill from burst)
                                Debuff Target (e.g., diffuse blade, break bottle/clarity/flask, ability like purge)
                                Buff Friendly
                                Protect Friendly (for skills like Shallow Grave, WW ice, Earth Spirit Stone)
                                Place AoE
                                Retreat/Hide
                                Avoid Projectile (for non-tracking)
                                Disjoint Projectile
                                Formation
                                    Clustered (for AOE buffs/heals, for absorbing dmg thatís spread across targets)
                                    Dispersed (for avoiding AOE dmg/CC)
                            Bait Action (for baiting attacks)
                            Unit Blocking Action (aka creep blocking or hero blocking)
                        
                        Courier Actions
                            Go to Location(X,Y,Z)
                            Burst Speed
                            Upgrade to Flying
                            Use Item
                            Deliver Items
                            Return Items
                        Shop Actions
                            Buy Item
                            Sell Item
                        Item Actions
                            Lock Combining
                            Unlock Combining
                            Pickup
                            Drop
                            Move to Slot
                            Use
                        The Fight Actions can probably use more flashing-out and review.


                        Thoughts from any of you that are much more well versed at ML and RL than I am... since I know nothing?

                        Comment


                        • #13
                          So I'm not an expert in the field, but I'd at least advice you to start with a much smaller and still much higher level action pool. Some actions would already require intense training on their own, such as the "Go to Location(X,Y,Z)". Having it figure out a combination of X,Y,Z on top of figuring out that it should move at all is enough of a challenge that you could put a research team on it. Muddying the waters further by also allowing rarely necessary actions such as "lock combining" is going to massively increase the training time necessary. And I'm assuming you don't have a supercomputer available. You'd be lucky if your system manages to play at the level of passive bots after years of training, unless you figure out some insane new ML technique.


                          Honestly, Dota is excessively difficult. Like, really, extremely difficult. I'd estimate that among all humans alive, given 500 hours of training, perhaps 5% would be able to play at the level of a 1k mmr player. A solid 50% of people would given a week and a computer be unable to install and launch the game, start a match, run to a lane and stay alive there for 5 minutes against nothing but creeps and towers. And these are humans, loaded with incredible brains full of life experience. They have the ability to adapt, reason, visually process the images from the screen, intuition and the capacity to create their own rewards.

                          If you're going to start entirely from scratch using machine learning, you don't get any of those for free. Neural nets are dumb, extremely so. The only reason they've come anywhere is because they've been given amazing training regiments. State of the art NNs are all given insane amounts of training time in terms of humans. And unless you come up with something new, you're going to need that too. If you don't have a supercomputer and the ability to run games on it, starting from scratch just isn't going to work. The action space of dota is so huge, the volume of important content is so gigantic, proper rewards are so sparse and incomplete information is so difficult that no current NN architecture can be trained to competence on a simple home computer. Hell even DeepMind with all its resources is currently getting essentially nowhere trying to beat starcraft using machinelearning (and Dota is probably similar in terms of machinelearning difficulty)

                          If your goal is to educate yourself on ML or to try and contribute to machine learning research, have a blast. But if your goal here is to build a better bot, I'd strongly advice you to do one of three things:
                          - Build it the classical way
                          - Try to join OpenAI, a competitor, or at least type of company that gives you free supercomputer access
                          - Use machine learning only in very limited sections of your program

                          The last is probably the most interesting to talk about here. While working from scratch is probably impossible, integrating some learning in small sections should be doable. In fact you code up trivial 'learning' systems that merely calibrate some weights in your code pretty easily. A simple evolutionary system applied to some weight, like say something that determines to what degree it should prioritize lasthitting over denying, can be done by just randomly trying out a couple of options. Simply record the wins/losses and after a couple of hundred games, assuming the value actually impacts the game significantly, one or two values will probably stand out as the best.
                          To some degree it's what evolution based neural nets are like. They're just calibrating a boatload of tiny weights, which together play the entire game.
                          Now instead of one weight for lasthitting/denying, you're probably going to want to do something that's more fun, more impactful and which takes more data. Perhaps the decision making process around 'when should I be aggressive' is a good target. This is really hard to code manually, but a neural net may do that task pretty well, given the right inputs and enough training.
                          That kind of target is much more attainable than doing the entire thing from scratch. Outputting a single confidence float value is something NNS are pretty good at generally. You'll also be able to select some obvious inputs such as health, herotype, distance, etc. The reward system will be relatively easy too, and the bots will actually engage in the interesting behavior reliably. A big problem with a lot of game based machinelearning projects is that the bots never even get far enough in the game for them to be able to stumble into the things that matter, if by pure chance a starcraft bot without coaching manages to build a barracks in one game, it's not going to be more likely to win the game unless it also builds units and sends them to the enemy base. It might take it millions of games before the barracks building action contributes to a victory and billions before it realizes the two are related. According to the OpenAI reports, it took their bot ages (Some on the order of 100,000 - 10,000,000 games) to figure out that going to lane was a good idea.
                          You'd be avoiding that kind of issue if you only work on limited domains like this.

                          So, tldr:
                          Don't use anything even resembling the actions you picked unless you want to waste a couple of months.
                          Last edited by Siesta Guru; 10-12-2017, 09:21 AM.

                          Comment


                          • #14
                            Originally posted by Siesta Guru View Post
                            So I'm not an expert in the field, but I'd at least advice you to start with a much smaller and still much higher level action pool. Some actions would already require intense training on their own, such as the "Go to Location(X,Y,Z)".
                            Remember - I'm not trying to machine learn ANY of the action execution, just the action transitions. All the code to do the actual action is planned to be hard-coded in an algorithm. And all my training planned to come from CMsgBotWorldState dumps (especially pro games once @ChrisC gets it running for replays).

                            My work is to create an appropriate world model, and detect "which" of the listed actions is being performed in a replay, and then score it.

                            Comment


                            • #15
                              Ah, now that's something much more accomplishable for sure. Still though, it's going to take a while to get some real results, especially if you overdo the actions. Rarely used actions will at the start slow down the learning process, both by having more incorrect options and by requiring more cpu/gpu cycles. And in the end, this action end will probably be generalized away anyway. If there's one thing the AI will learn relatively quickly, is that 'Break Target', 'Block Camp' and 'lock combining' are so rarely used that the odds of it being done at any one point are too low for it to guess that's what's going to happen next. You might still have to load in thousands of replays to get it to even predict the basic stuff, let alone these kind of rare things.
                              At the least I'd advice you to drop it to a pool of like 10 actions at the start, see how well it does, and only then later on try to program in literally every thing you can do in game.
                              And it's also going to be way easier to work with actions that are mostly unambiguous in their meaning. Move to Location (x,y,z) means what exactly? Would you pick a random location? Are you using the absolute coordinates on the map that the pro player used? Relative positioning compared to the player? In all cases you'll end up missing the entire point of what made the action good.

                              Maybe something like this might be a decent start:
                              - Move to nearby enemy
                              - Attack enemy (which can include both abilities and autoattacks)
                              - Move away from enemy
                              - Move to nearby creep
                              - Attack creep
                              - Move to nearby enemy building
                              - Attack building
                              - Move to nearby allied tower
                              - Move to bot lane
                              - Move to mid lane
                              - Move to top lane
                              - Move to fountain

                              Of course it's going to be hard to figure out what the intentions of pro players are and translate it to actions, but you're always going to have that problem if you're trying to work based on high level actions.

                              Comment

                              Working...
                              X