Example #1
0
        private void HandleTurnStart(Tuple <ActivePlayer, int> turn)
        {
            var player = turn.Item1;

            Log.Info($"--- {player} turn {turn.Item2} ---");
            if (player == ActivePlayer.Player)
            {
                HandleThaurissanCostReduction();
            }
            GameEvents.OnTurnStart.Execute(player);
            if (_turnQueue.Count > 0)
            {
                return;
            }
            TurnTimer.Instance.SetPlayer(player);
            if (player == ActivePlayer.Player && !_game.IsInMenu)
            {
                if (Config.Instance.FlashHsOnTurnStart)
                {
                    User32.FlashHs();
                }

                if (Config.Instance.BringHsToForeground)
                {
                    User32.BringHsToForeground();
                }
            }
        }
Example #2
0
        public static void HandleGameStart()
        {
            if (DateTime.Now - _lastGameStart < new TimeSpan(0, 0, 0, 5))            //game already started
            {
                return;
            }
            _lastGameStart = DateTime.Now;
            Logger.WriteLine("Game start", "GameEventHandler");

            if (Config.Instance.FlashHsOnTurnStart)
            {
                User32.FlashHs();
            }
            if (Config.Instance.BringHsToForeground)
            {
                User32.BringHsToForeground();
            }

            if (Config.Instance.KeyPressOnGameStart != "None" && Helper.MainWindow.EventKeys.Contains(Config.Instance.KeyPressOnGameStart))
            {
                SendKeys.SendWait("{" + Config.Instance.KeyPressOnGameStart + "}");
                Logger.WriteLine("Sent keypress: " + Config.Instance.KeyPressOnGameStart, "GameEventHandler");
            }
            _showedNoteDialog = false;
            Game.IsInMenu     = false;
            Game.Reset();

            var selectedDeck = DeckList.Instance.ActiveDeckVersion;

            if (selectedDeck != null)
            {
                Game.SetPremadeDeck((Deck)selectedDeck.Clone());
            }
            GameEvents.OnGameStart.Execute();
        }
        public static void HandleGameStart()
        {
            //avoid new game being started when jaraxxus is played
            if (!Game.IsInMenu)
            {
                return;
            }

            Logger.WriteLine("Game start");

            if (Config.Instance.FlashHsOnTurnStart)
            {
                User32.FlashHs();
            }
            if (Config.Instance.BringHsToForeground)
            {
                User32.BringHsToForeground();
            }

            if (Config.Instance.KeyPressOnGameStart != "None" &&
                Helper.MainWindow.EventKeys.Contains(Config.Instance.KeyPressOnGameStart))
            {
                SendKeys.SendWait("{" + Config.Instance.KeyPressOnGameStart + "}");
                Logger.WriteLine("Sent keypress: " + Config.Instance.KeyPressOnGameStart);
            }

            Game.IsInMenu = false;
            Game.Reset();
        }
Example #4
0
        public void HandleGameStart(DateTime timestamp)
        {
            if (_game.CurrentGameMode == Practice && !_game.IsInMenu && !_handledGameEnd &&
                _lastGameStartTimestamp > DateTime.MinValue && timestamp > _lastGameStartTimestamp)
            {
                HandleAdventureRestart();
            }
            _lastGameStartTimestamp = timestamp;
            if (DateTime.Now - _lastGameStart < new TimeSpan(0, 0, 0, 5))            //game already started
            {
                return;
            }
            _handledGameEnd = false;
            _lastGameStart  = DateTime.Now;
            Log.Info("--- Game start ---");

            if (Config.Instance.FlashHsOnTurnStart)
            {
                User32.FlashHs();
            }
            if (Config.Instance.BringHsToForeground)
            {
                User32.BringHsToForeground();
            }
            _lastTurnStart[0]  = _lastTurnStart[1] = 0;
            _arenaRewardDialog = null;
            _showedNoteDialog  = false;
            _game.IsInMenu     = false;
            _savedReplay       = false;
            _game.Reset();
            _game.CacheMatchInfo();
            _game.CacheGameType();
            _game.CacheSpectator();
            _game.MetaData.ServerInfo = Reflection.GetServerInfo();
            if (!string.IsNullOrEmpty(_game.MetaData.ServerInfo?.Address))
            {
                var region = Helper.GetRegionByServerIp(_game.MetaData.ServerInfo.Address);
                if (_game.CurrentRegion == Region.UNKNOWN || region == Region.CHINA)
                {
                    _game.CurrentRegion = region;
                    Log.Info("Set current region to" + region);
                }
            }
            TurnTimer.Instance.Start(_game).Forget();

            var selectedDeck = DeckList.Instance.ActiveDeckVersion;

            if (selectedDeck != null)
            {
                _game.IsUsingPremade = true;
            }
            Core.Windows.CapturableOverlay?.UpdateContentVisibility();
            GameEvents.OnGameStart.Execute();
            LiveDataManager.WatchBoardState();
        }
        public void HandleGameStart(DateTime timestamp)
        {
            if (_game.CurrentGameMode == Practice && !_game.IsInMenu && !_handledGameEnd &&
                _lastGameStartTimestamp > DateTime.MinValue && timestamp > _lastGameStartTimestamp)
            {
                HandleAdventureRestart();
            }
            _lastGameStartTimestamp = timestamp;
            if (DateTime.Now - _lastGameStart < new TimeSpan(0, 0, 0, 5))            //game already started
            {
                return;
            }
            _handledGameEnd = false;
            _lastGameStart  = DateTime.Now;
            Log.Info("--- Game start ---");

            switch (Config.Instance.TurnStartAction)
            {
            case HsActionType.Flash:
                User32.FlashHs();
                break;

            case HsActionType.Popup:
                User32.BringHsToForeground();
                break;
            }
            _lastTurnStart[0]  = _lastTurnStart[1] = 0;
            _arenaRewardDialog = null;
            _showedNoteDialog  = false;
            _game.IsInMenu     = false;
            _savedReplay       = false;
            _game.Reset();
            _game.CacheMatchInfo();
            _game.CacheGameType();
            _game.CacheSpectator();
            _game.MetaData.ServerInfo = Reflection.GetServerInfo();
            TurnTimer.Instance.Start(_game).Forget();

            var selectedDeck = DeckList.Instance.ActiveDeckVersion;

            if (selectedDeck != null)
            {
                _game.IsUsingPremade = true;
            }
            Core.Windows.CapturableOverlay?.UpdateContentVisibility();
            GameEvents.OnGameStart.Execute();
            LiveDataManager.WatchBoardState();
        }
Example #6
0
        public static void TurnStart(ActivePlayer player, int turnNumber)
        {
            Logger.WriteLine(string.Format("{0}-turn ({1})", player, turnNumber + 1), "LogReader");
            //doesn't really matter whose turn it is for now, just restart timer
            //maybe add timer to player/opponent windows
            TurnTimer.Instance.SetCurrentPlayer(player);
            TurnTimer.Instance.Restart();
            if (player == ActivePlayer.Player && !Game.IsInMenu)
            {
                if (Config.Instance.FlashHsOnTurnStart)
                {
                    User32.FlashHs();
                }

                if (Config.Instance.BringHsToForeground)
                {
                    User32.BringHsToForeground();
                }
            }
        }
        public static void HandleGameStart(string playerHero)
        {
            //avoid new game being started when jaraxxus is played
            if (!Game.IsInMenu)
            {
                return;
            }

            Game.PlayingAs = playerHero;

            Logger.WriteLine("Game start");

            if (Config.Instance.FlashHsOnTurnStart)
            {
                User32.FlashHs();
            }
            if (Config.Instance.BringHsToForeground)
            {
                User32.BringHsToForeground();
            }

            if (Config.Instance.KeyPressOnGameStart != "None" &&
                Helper.MainWindow.EventKeys.Contains(Config.Instance.KeyPressOnGameStart))
            {
                SendKeys.SendWait("{" + Config.Instance.KeyPressOnGameStart + "}");
                Logger.WriteLine("Sent keypress: " + Config.Instance.KeyPressOnGameStart);
            }

            var selectedDeck = Helper.MainWindow.DeckPickerList.SelectedDeck;

            if (selectedDeck != null)
            {
                Game.SetPremadeDeck((Deck)selectedDeck.Clone());
            }

            Game.IsInMenu = false;
            Game.Reset();


            //select deck based on hero
            if (!string.IsNullOrEmpty(playerHero))
            {
                if (!Game.IsUsingPremade || !Config.Instance.AutoDeckDetection)
                {
                    return;
                }

                if (selectedDeck == null || selectedDeck.Class != Game.PlayingAs)
                {
                    var classDecks = Helper.MainWindow.DeckList.DecksList.Where(d => d.Class == Game.PlayingAs).ToList();
                    if (classDecks.Count == 0)
                    {
                        Logger.WriteLine("Found no deck to switch to", "HandleGameStart");
                    }
                    else if (classDecks.Count == 1)
                    {
                        Helper.MainWindow.DeckPickerList.SelectDeck(classDecks[0]);
                        Logger.WriteLine("Found deck to switch to: " + classDecks[0].Name, "HandleGameStart");
                    }
                    else if (Helper.MainWindow.DeckList.LastDeckClass.Any(ldc => ldc.Class == Game.PlayingAs))
                    {
                        var lastDeckName = Helper.MainWindow.DeckList.LastDeckClass.First(ldc => ldc.Class == Game.PlayingAs).Name;
                        Logger.WriteLine("Found more than 1 deck to switch to - last played: " + lastDeckName, "HandleGameStart");

                        var deck = Helper.MainWindow.DeckList.DecksList.FirstOrDefault(d => d.Name == lastDeckName);

                        if (deck != null)
                        {
                            Helper.MainWindow.DeckPickerList.SelectDeck(deck);
                            Helper.MainWindow.UpdateDeckList(deck);
                            Helper.MainWindow.UseDeck(deck);
                        }
                    }
                }
            }
        }