Giter VIP home page Giter VIP logo

advisor's Introduction

Advisor

This is an open-source Hearthstone Deck Tracker plugin displaying a possible archetype deck your opponent could be playing. It also helps to track which cards remain in that deck. Popular archetype decks are downloaded from MetaStats.net.

Preview

Description

Advisor tries to guess the opponent's deck based on the played cards. First, the import function of Advisor allows you to quickly import hundreds of standard archetype decks from MetaStats.net. Currently the top 5 played standard decks of each archetype and each class of the last 7 days are imported. Now while playing a Hearthstone game, with every revealed opponent card the plugin calculates similarities between those cards and all imported archetype decks. Finally the deck with the highest match is presented to the player via overlay. If multiple decks with the same similarity are found, the most popular deck with the most played games is prioritized. Since all played cards are additionally removed from that archetype deck, the player can see which cards the opponent supposably has left in his deck or hand with a certain likelihood.

Installation

  • Download the latest release (take the Advisor.zip file, not the source code!)
  • Unzip it into HDT plugins folder (Options->Plugins->Plugins folder)
  • Restart HDT and enable the plugin (Options->Tracker->Plugins->Advisor->Enabled)
  • Import standard archetype decks (Plugins->Advisor->Import archetype decks), repeat this once a day on demand
  • Play the game and enjoy
  • Optional: Check the plugins settings to fit your preferences
  • Hint: Move the secrets overlay position of HDT a bit to the right to not overlap with Advisors overlay window (Options->Overlay->General->Unlock overlay)

Donation

If you like Advisor and want to support it, you can contribute here or make a donation. Thank you!

Disclaimer

This software is provided by Dookie and other voluntary contributors "as is" and "with all faults." They make no representations or warranties of any kind concerning the safety, suitability, lack of viruses, inaccuracies, typographical errors, or other harmful components of this software. There are inherent dangers in the use of any software, and you are solely responsible for determining whether this software is compatible with your equipment and other software installed on your equipment. You are also solely responsible for the protection of your equipment and backup of your data, and no one but you will be liable for any damages or problems you may suffer in connection with using, modifying, or distributing this software. Only use this software on your own risk and if you understand and accept this disclaimer!

License information

This software is licensed under GPLv3. Copyright 2017 © Dookie

Special thanks

This project is open source, like all the great stuff it is based on or inspired by. I especially want to thank the people behind Hearthstone Deck Tracker, MetaStats.net and some other HDT plugins like EndGame. Think about sharing your game results using the MetaStats plugin to improve our collective knowledge base!

GitHub Latest Github Latest Downloads Github All Downloads

advisor's People

Contributors

djdookie avatar ottowayne avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

advisor's Issues

Crash with exception

Got the following exception today while playing against hunter.

System.ArgumentException: An item with the same key has already been added. at System.ThrowHelper.ThrowArgumentException(ExceptionResource resource) at System.Collections.Generic.Dictionary2.Insert(TKey key, TValue value, Boolean add)
at System.Collections.Generic.Dictionary2.Add(TKey key, TValue value) at HDT.Plugins.Advisor.Advisor.<UpdateCardList>d__20.MoveNext() in D:\TfsProj\Advisor\Advisor\Advisor.cs:line 249 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.AsyncMethodBuilderCore.<>c.<ThrowAsync>b__6_0(Object state) at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs) at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)

Request for scaling and opacity settings (feature request)

First, thank you for this mod. It is something I have been looking for.
I would like to request the ability to scale your plugin. I run about 70 for most of HDT.
Also, being to adjust the opacity would be helpful.

Thanks again for your time.
chWolfgang

Suggestion: Integrate into opponent overlay

I had been using meta detector for awhile before trying your plugin. I like yours better except that it requires an additional overlay, taking up what's already a pretty cluttered interface. Meta Detector integrates into the opponent overlay, showing all cards that have been played in a normal color (whether part of detected deck or not- this is a key component too) and any cards it thinks are still in the deck with a darker color.

I have hidden HDT's card list component of the oppoent's overlay (keeping the card count / fatigue portions) to try and free up screen real estate. The downside of this is your plugin doesn't show cards that have been played until the deck is detected (and actually, does it always show cards that have been played even when detected?).

Having it integrated into the opponent overlay would also allow you to eliminate the manual x/y positioning you have implemented, which is another downside. side note: I also think it would be great to always show the deck confidence level, even after you've detected the deck.

HDT crashes when enabling plugin

Hey, I tried installing Advisor 1.08 and when enabling receive the following error (HDT version 1.6.8), would really like to use this plugin. great idea.

System.NullReferenceException: Object reference not set to an instance of an object.
at MahApps.Metro.Controls.Flyout.OverrideFlyoutResources(ResourceDictionary resources, Boolean accent)
at MahApps.Metro.Controls.Flyout.ChangeFlyoutTheme(Accent windowAccent, AppTheme windowTheme)
at MahApps.Metro.Controls.Flyout.UpdateFlyoutTheme()
at MahApps.Metro.Controls.Flyout.<.ctor>b__93_0(Object sender, RoutedEventArgs args)
at System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
at System.Windows.UIElement.RaiseEvent(RoutedEventArgs e)
at System.Windows.BroadcastEventHelper.BroadcastEvent(DependencyObject root, RoutedEvent routedEvent)
at System.Windows.BroadcastEventHelper.BroadcastLoadedEvent(Object root)
at MS.Internal.LoadedOrUnloadedOperation.DoWork()
at System.Windows.Media.MediaContext.FireLoadedPendingCallbacks()
at System.Windows.Media.MediaContext.FireInvokeOnRenderCallbacks()
at System.Windows.Media.MediaContext.RenderMessageHandlerCore(Object resizedCompositionTarget)
at System.Windows.Media.MediaContext.RenderMessageHandler(Object resizedCompositionTarget)
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)

Make threshold for similarity value configurable

Currently an archetype deck is shown after at least one deck's similarity is higher than a specific threshold.
This is >0% at the moment. If multiple decks have the same highest similarity value, one of them is randomly selected (should depend on the import order).

We could make that threshold configurable.
Additionally we could show an archetype deck not before there is only one deck with a highest similarity.
This should be a good complement to #3.

Update Assembly Version

Currently all releases have the assembly version 1.0.0.0. Can you update the assembly version in the assembly info when releasing a new update, so that I can determine which version I have? And probablly display the number of the currently installed version in the settings?

Advisor Crash HDT new versión (Edit:Solved)

Advisor v1.0.7 Crash HDT new versión

System.InvalidOperationException: Sequence contains no elements
at System.Linq.Enumerable.Max(IEnumerable`1 source)
at HDT.Plugins.Advisor.Advisor.d__20.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.AsyncMethodBuilderCore.<>c.b__6_0(Object state)
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)

Order decks by popularity

If multiple decks have the same similarity to the opponent's played cards, show the deck with the highest popularity, i.e. game count.

Reno deck lists go off the screen

Whenever the advisors suggests a reno deck, it lists all the cards and they go off the screen. I've seen the normal deck tracker squish the cards whenever decklists are long like that. Can this be implemented in this plugin?

Manually import decks

It would be useful to manually import decks, either from a site like Hearthpwn or getting the deck directly out of HDT.

Method for getting selected deck:

private static Deck _selectedDeck;
OnLoad() 
{
    Hearthstone_Deck_Tracker.API.DeckManagerEvents.OnDeckSelected.Add(DeckSelected);
}
private static void DeckSelected(Deck deck)
{
_selectedDeck = deck;
}

deck is Hearthstone_Deck_Tracker.Hearthstone.Deck i believe.

Request: Show card flavor text on mouseover & wild decks

Currently Hearthstone Deck Tracker shows what the cards do when you hover over them on the left hand side, but the same feature doesn't work for the most likely deck displayed by Advisor.

I believe only standard decks are currently displayed. Metastats is a site that is generally used for the standard format. However, there are some pages that display wild decks. Perhaps it's possible to use import the wild decks from those pages. Alternatively, perhaps it's possible to download them from hsreplays.net. They list wild decks in a seperate wild section, but I don't think they label the archetype. However, for as long as one simply downloads the 5-25 most popular decks of each class, I think it would be fine, even though the "name" of the deck is not displayed at the top.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.