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())); }
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); }