예제 #1
0
        private static string Contextualise(string message, TitanLordSettings settings, ISchedulerRecord timer, DateTime eventTime)
        {
            var CQ          = settings.CQ;
            var user        = timer.UserId;
            var remaining   = 0;
            var completesAt = timer.StartTime;
            var round       = 2 + (eventTime - timer.StartTime).Seconds / timer.Interval.Seconds;

            return(message.Replace("%CQ%", CQ.ToString())
                   .Replace("%USER%", $"<@{user}>")
                   .Replace("%TIME%", remaining.ToString())
                   .Replace("%ROUND%", round.ToString())
                   .Replace("%COMPLETE%", completesAt.ToShortTimeString()));
        }
예제 #2
0
        private Embedable NewBoss(DateTime?lastTime, TimeSpan untilNext, TitanLordSettings settings)
        {
            GuildSettings.Edit <TitanLordSettings>(s => s.CQ++);

            var bossHp    = Calculator.TitanLordHp(settings.CQ);
            var clanBonus = Calculator.ClanBonus(settings.CQ);
            var advStart  = Calculator.AdvanceStart(settings.CQ);

            var builder = new LocalisedEmbedBuilder
            {
                Color     = System.Drawing.Color.DarkOrange.ToDiscord(),
                Timestamp = DateTime.Now,
            }.WithTitle(TitanLordText.NEWBOSS_EMBED_TITLE)
            .WithRawThumbnailUrl("https://cdn.discordapp.com/attachments/275257967937454080/308047011289235456/emoji.png")
            .AddField(f => f.WithName(TitanLordText.NEWBOSS_EMBED_CQ).WithValue(settings.CQ))
            .AddField(f => f.WithName(TitanLordText.NEWBOSS_EMBED_ADVANCEDSTART).WithValue(BonusType.ClanDamage.ToLocalisable(advStart)))
            .AddField(f => f.WithName(TitanLordText.NEWBOSS_EMBED_BONUS).WithValue(BonusType.ClanDamage.ToLocalisable(clanBonus)))
            .AddField(f => f.WithName(TitanLordText.NEWBOSS_EMBED_HP).WithValue(bossHp))
            .AddField(f => f.WithName(TitanLordText.NEWBOSS_EMBED_TTK).WithValue(DateTime.Now.Add(untilNext).Add(-BossDelay) - lastTime));

            return(builder);
        }