odota / core

Open source Dota 2 data platform
https://www.opendota.com
MIT License
1.52k stars 303 forks source link

Show summon units killed #825

Closed howardchung closed 8 years ago

howardchung commented 8 years ago

From Google form:

Help me, I rly love to play brood, but everyone always flame me about my spider feeding spree! Help me proof they are wrong and give me track of killed broodlings and other summons ingame(Ld and np as well) PLEASE.

We have this data, but we need to figure out how to display it. Clearly we can't make a column for each since it's not always applicable. Maybe we should just make a whitelist of unit names, and if the key exists in the killed hash for each player, print it out.

Need to look up internal names ("npc_dota...") for units: http://dota2.gamepedia.com/Cheats

Boar    npc_dota_beastmaster_boar_# (1-4)
Eidolon (lvl1)  npc_dota_lesser_eidolon
Eidolon (lvl2)  npc_dota_eidolon
Eidolon (lvl3)  npc_dota_greater_eidolon
Eidolon (lvl4)  npc_dota_dire_eidolon
Forged Spirit   npc_dota_invoker_forged_spirit
Greater Treant  npc_dota_furion_treant_large
Hawk    npc_dota_beastmaster_hawk_# (1-4)
Lycan Wolf  npc_dota_lycan_wolf# (1-4)
Doom Shard  npc_dota_neutral_mud_golem_split_doom
Spiderling  npc_dota_broodmother_spiderling
Spiderite   npc_dota_broodmother_spiderite
Treant  npc_dota_furion_treant
Zombie (walking)    npc_dota_unit_undying_zombie
Zombie (crawling)   npc_dota_unit_undying_zombie_torso

Earth   npc_dota_brewmaster_earth_# (1-3)
Fire    npc_dota_brewmaster_fire_# (1-3)
Spirit Bear npc_dota_lone_druid_bear# (1-4)
Storm   npc_dota_brewmaster_storm_# (1-3)
Familiar    npc_dota_visage_familiar# (1-3)
Warlock's Golem npc_dota_warlock_golem_# (1-3)
Warlock's Golem (aghanim's upgrade) npc_dota_warlock_golem_scepter_# (1-3)

Death Ward  npc_dota_witch_doctor_death_ward
Frozen Sigil    npc_dota_tusk_frozen_sigil# (1-4)
Healing Ward    npc_dota_juggernaut_healing_ward
Land Mine   npc_dota_techies_land_mine
Mass Serpent Ward   npc_dota_shadow_shaman_ward_# (1-3)
Nether Ward npc_dota_pugna_nether_ward_# (1-4)
Plague Ward npc_dota_venomancer_plague_ward_# (1-4)
Psionic Trap    npc_dota_templar_assassin_psionic_trap
Remote Mine npc_dota_techies_remote_mine
Stasis Trap npc_dota_techies_stasis_trap
Supernova   npc_dota_phoenix_sun
Tombstone   npc_dota_unit_tombstone# (1-4)

Eyes in the Forest  npc_dota_treant_eyes
Homing Missile  npc_dota_gyrocopter_homing_missile
The Swarm   npc_dota_weaver_swarm
likered commented 8 years ago

Could we somehow dynamically add a column if a certain unit exists in a match? Since Necronomicon & Courier kills would also be considered part of this issue.

gortiz commented 8 years ago

It would be nice to add something like that on the gold tab. The interesting part is not to know how many of your creeps died killed by a enemy but how much gold your enemies get from your creeps.

howardchung commented 8 years ago

Necro and courier are more "general". Also it's fine to have a few columns that are often empty but not too many. I would prefer to have a fixed number of columns, and also don't want to put too much complicated logic in the template

Re: gold I don't think the combat log differentiates for summon kills. It probably gets lumped under Other.

gortiz commented 8 years ago

I dont think it is specially needed to add a column for each creep type, but to add a column saying how much you fed with the creeps you control. For example, some weeks ago a friend of mine played a lot of arc warden with necro and another friend thought arc warden was feeding a lot with them. He said something like "I feel you feed a lot after min X when you start to spam necros all the time". Then I tryed to validate his feelings with YASP but... it was impossible.

howardchung commented 8 years ago

The problem is that the combat log doesn't tell us the proper gold source for units like necro. I do display the number of necro units killed in the "Farm" tab, and you could estimate the gold fed based on that

gortiz commented 8 years ago

Ooooooooooook, I get it.

So in your solution it would be some columns that say how many special creeps you killed or how many you fed with? In the second case, I think 3 columns should be enough: necros, couriers and others, where others contain all hero dependent summoned creeps (spiders, wolfs, eidolons, etc).

What do you think about creeps enchanted by chen or enchantress? Do you think the parser would give us the information we need?

howardchung commented 8 years ago

I can add a column for other, but we'll have to see if the layout gets messed up since this isn't a single value field (we would display key/value pairs for all of the "other" units).

I am not sure if the log distinguishes between controlled neutrals and neutrals. The name would not change, but it's possible that "targetsourcename" is populated when the unit killed is under the control of a hero (as far as I know this field is populated for sure on damage events, no idea on kill events).

We would need to find a replay, find the time when a controlled unit was killed, and check the log output.

likered commented 8 years ago

Doom's doomlings (when doom eats golems) Brewmaster's brewlings Morphling replica Treant eyes Undying tomb Venge Aghanim illusion

Should most of these count as well? Probably not morphling and venge though.

howardchung commented 8 years ago

IMO, only things that give gold

On Sat, Jan 16, 2016 at 7:11 AM, Derek Li notifications@github.com wrote:

Doom's doomlings (when doom eats golems) Brewmaster's brewlings Morphling replica Treant eyes Undying tomb Venge Aghanim illusion

Should most of these count as well? Probably not morphling and venge though.

— Reply to this email directly or view it on GitHub https://github.com/yasp-dota/yasp/issues/825#issuecomment-172215225.

Juoko commented 8 years ago

Yeah, only things that give gold actually matter. I mean the other things matter but their importance is extremely tactical and is thus only usefully noticed in replay.

And I'd just like to pitch the idea that you could put this stuff in the Performance tab instead of Farm tab. Like you could have a section underneath Utilization and give it some label like "Hero Specific". And then you could have things like Broodmother: 81 spiderling deaths.

The other option is much more dynamic but probably not possible given the way the site has been programmed. You could have it so that when you click on the match from a certain players' profile, you get a much more detailed account of what they did in the Performance tab, or something like that. Or you could have a highly detailed account of every player, but if this is the case then you should have a banner with all 10 hero portraits, and only show one set of data at a time. Otherwise it's too cluttery.

This site is great, but I think it needs to be able to shift between ultra-data access and more casual interest. If there were a setting for this that'd be interesting as well, perhaps you can only see the ultra-data stuff when you have an account.

howardchung commented 8 years ago

Yeah, maybe we can do a separate section. I'm thinking a new table in the Farm tab that just dumps units killed if they are in a whitelist (and mapped to a friendly name).

We could actually combine the hashes of kill counts for a player, so we might even be able to generate an aggregate report of every unit a player has killed in their parsed matches. However I've noticed some weirdness with summons like necro units (it seems like if the unit dies through expiration the kill is given to the owner).

likered commented 8 years ago

I guess cogs would count then :)