adamqqqplay / dota2ai

Ranked Matchmaking AI: An improved Dota2 AI based on Valve's default AI. Has more than 3 million subscribers on Steam.
http://steamcommunity.com/sharedfiles/filedetails/?id=855965029
GNU General Public License v3.0
320 stars 86 forks source link

Refactor item purchasing suggestions v2 #133

Closed JoshdanG closed 1 year ago

JoshdanG commented 1 year ago

1.Remove everything from hero item file except item list

Basically the same as before except now for all heroes, so no changes to hero selection.

ArcherWayne commented 1 year ago

From gameplay perspective, the bot purchase system does not work as intented.

I found few issues during my testing:

  1. Bots did not buy anything and did level any skill up, which I believe is Valve's fault again.
  2. Agi heroes sometimes buy too many Blade of Alacrity.
  3. Supports sometimes phase boots or power treads.
  4. Side lane heros sometimes buy bottle, which I think is caused by the lane assignment issues.

I am not sure if those problem were caused by Valve's newly updated API. But the bots have too many issues to be enjoyed playing against.

JoshdanG commented 1 year ago

I have now merged the latest from master, which should fix the major failures

I think the rest of the problems may already be present on master -- can you see if you can reproduce there?

The one expected change in behavior is that we call ItemPurchaseSystem.BuySupportItem() for all heroes, so carries might start buying wards and such.

JoshdanG commented 1 year ago

Regarding buying support items, the list of "support heroes" seems to be a bit ill-defined. We should probably use "CanBeSupport()", since that is how we are deciding the team composition.

buy_support_before.txt The heroes that would call BuySupport() before

CanBeSupport.txt The set of heroes that return true for RoleUtility.CanBeSupport(). These come from the ['supp'] list in that file.

IsSupport.txt The set of heroes that return true for RoleUtility.IsSupport(). These come from the list of ['hero_roles'] in that file.

adamqqqplay commented 1 year ago

I have now merged the latest from master, which should fix the major failures

@JoshdanG Thanks, I think rebase/merge to master will fix this issue. @ArcherWayne Can you try testing again? Thanks in advance.