public void Tick()
 {
     using (new PerformanceTimer("NewGame", null))
     {
         bool    flag    = true;
         Network network = Network.Get();
         if (network != null)
         {
             GameServerInfo lastGameServerInfo = network.m_lastGameServerInfo;
             if ((Network.IsConnectedToGameServer() && (lastGameServerInfo != null)) && (this.int_1 != lastGameServerInfo.GameHandle))
             {
                 this.int_1 = lastGameServerInfo.GameHandle;
                 this.int_0 = -1;
                 this.stopwatch_0.Restart();
                 flag = false;
                 object[] args = new object[] { this, new NewGameEventArgs(this.int_1) };
                 TritonHs.InvokeEvent(eventHandler_0, args);
             }
         }
         if (flag)
         {
             this.stopwatch_0.Reset();
         }
     }
 }
 internal void method_4(GameOverFlag gameOverFlag_0, bool bool_0)
 {
     if (this.int_0 != this.int_1)
     {
         this.int_0 = this.int_1;
         object[] args = new object[] { this, new GameOverEventArgs(gameOverFlag_0, bool_0) };
         TritonHs.InvokeEvent(eventHandler_3, args);
     }
 }
 internal void method_7()
 {
     object[] args = new object[] { this, new FatalErrorEventArgs() };
     TritonHs.InvokeEvent(eventHandler_7, args);
 }
 internal void method_6()
 {
     object[] args = new object[] { this, new CustomDecksCachedEventArgs() };
     TritonHs.InvokeEvent(eventHandler_6, args);
 }
 internal void method_5()
 {
     object[] args = new object[] { this, new StartingNewGameEventArgs() };
     TritonHs.InvokeEvent(eventHandler_5, args);
 }
 internal void method_3(List <RewardData> list_0)
 {
     object[] args = new object[] { this, new ArenaRewardsEventArgs(list_0) };
     TritonHs.InvokeEvent(eventHandler_2, args);
 }
 internal void method_2()
 {
     object[] args = new object[] { this, new QuestUpdateEventArgs() };
     TritonHs.InvokeEvent(eventHandler_1, args);
 }
 internal void method_1()
 {
     object[] args = new object[] { this, new MulliganConfirmEventArgs() };
     TritonHs.InvokeEvent(eventHandler_4, args);
 }
        private static void smethod_4()
        {
            object obj2 = object_0;

            lock (obj2)
            {
                Thread.Sleep(1);
            }
            TritonHs.Memory.DisableCache();
            TritonHs.Memory.ClearCache();
            TritonHs.Memory.Executor.FrameDropWaitTime = 0x3a98;
            TritonHs.Memory.Executor.ExecuteWaitTime   = 0x3a98;
            try
            {
                TritonHs.smethod_2(true);
            }
            catch
            {
            }
            try
            {
                smethod_0(CurrentBot);
                goto Label_00DF;
            }
            catch
            {
                autoResetEvent_0.Set();
                goto Label_00DF;
            }
            Label_0084 :;
            try
            {
                if (MsBeforeNextTick != 0)
                {
                    Thread.Sleep(MsBeforeNextTick);
                    MsBeforeNextTick = 0;
                }
                smethod_1(CurrentBot);
                if (MsBetweenTicks != 0)
                {
                    Thread.Sleep(MsBetweenTicks);
                }
                bool_3 = false;
            }
            catch (InjectionDesyncException)
            {
                ilog_0.DebugFormat("[BotThreadFunction] An InjectionDesyncException was detected.", Array.Empty <object>());
                bool_3 = true;
                goto Label_00EC;
            }
            catch
            {
            }
Label_00DF:
            if (!autoResetEvent_0.WaitOne(0))
            {
                goto Label_0084;
            }
            Label_00EC :;
            try
            {
                smethod_2(CurrentBot);
            }
            catch
            {
            }
            BotThread = null;
            if (bool_3)
            {
                object[] args = new object[2];
                args[1] = new ClientFrozenEventArgs();
                TritonHs.InvokeEvent(eventHandler_1, args);
            }
            else
            {
                try
                {
                    TritonHs.smethod_2(true);
                }
                catch
                {
                }
            }
        }
        private static void smethod_4()
        {
            object obj = object_0;

            lock (obj)
            {
                Thread.Sleep(1);
            }
            TritonHs.Memory.DisableCache();
            TritonHs.Memory.ClearCache();
            TritonHs.Memory.Executor.FrameDropWaitTime = 15000u;
            TritonHs.Memory.Executor.ExecuteWaitTime   = 15000;
            try
            {
                TritonHs.smethod_2();
            }
            catch
            {
            }
            try
            {
                smethod_0(CurrentBot);
                goto IL_FA;
            }
            catch
            {
                autoResetEvent_0.Set();
                goto IL_FA;
            }
IL_87:
            try
            {
                if (MsBeforeNextTick != 0)
                {
                    Thread.Sleep(MsBeforeNextTick);
                    MsBeforeNextTick = 0;
                }
                smethod_1(CurrentBot);
                bool_3 = false;
                if (MsBetweenTicks != 0)
                {
                    Thread.Sleep(MsBetweenTicks);
                }
            }
            catch (InjectionDesyncException)
            {
                //BotManager.ilog_0.DebugFormat("[BotThreadFunction] An InjectionDesyncException was detected.", Array.Empty<object>());
                bool_3 = true;
                TritonHs.InvokeEvent(eventHandler_1, null, new ClientFrozenEventArgs());
            }
            catch
            {
            }
IL_FA:
            if (!autoResetEvent_0.WaitOne(0))
            {
                goto IL_87;
            }
            try
            {
                smethod_2(CurrentBot);
            }
            catch
            {
            }
            BotThread = null;
            if (bool_3)
            {
                TritonHs.InvokeEvent(eventHandler_1, null, new ClientFrozenEventArgs());
                return;
            }
            try
            {
                TritonHs.smethod_2();
            }
            catch
            {
            }
        }