Example #1
0
        internal async Task Reset()
        {
            Battle = new ColossoBattle();

            if (autoTurn != null)
            {
                autoTurn.Dispose();
            }
            if (resetIfNotActive != null)
            {
                resetIfNotActive.Dispose();
            }

            foreach (var k in Messages.Keys)
            {
                await k.DeleteAsync();
            }

            Messages.Clear();

            if (EnemyMsg != null)
            {
                _ = EnemyMsg.ModifyAsync(c => { c.Content = $"Welcome to {Name} Battle!\n\nReact with <:Fight:536919792813211648> to join the {Name} Battle and press <:Battle:536954571256365096> when you are ready to battle!"; c.Embed = null; });
                await EnemyMsg.RemoveAllReactionsAsync();

                _ = EnemyMsg.AddReactionsAsync(new IEmote[]
                {
                    Emote.Parse("<:Fight:536919792813211648>"),
                    Emote.Parse("<:Battle:536954571256365096>")
                });
            }
            if (StatusMsg != null)
            {
                _         = StatusMsg.DeleteAsync();
                StatusMsg = null;
            }
            winsInARow = 0;
            LureCaps   = 0;
            SetRandomEnemies(ColossoBattle.Team.B);

            autoTurn = new Timer()
            {
                Interval  = 25000,
                AutoReset = false,
                Enabled   = false
            };
            autoTurn.Elapsed += OnTimerTicked;
            resetIfNotActive  = new Timer()
            {
                Interval  = 120000,
                AutoReset = false,
                Enabled   = false
            };
            resetIfNotActive.Elapsed += BattleWasNotStartetInTime;

            Console.WriteLine("Battle was reset.");
        }