private void ContinueShow(TV tv, TvScript script, int index) { ScriptPage page = script.Pages[index]; TemporaryAnimatedSprite BackgroundSprite = new TemporaryAnimatedSprite() { paused = true, texture = _spriteSheet, sourceRect = new Rectangle(page.X, page.Y, 42, 28), interval = 9999f, animationLength = 999999, totalNumberOfLoops = 999999, position = tv.getScreenPosition(), flicker = false, flipped = false, layerDepth = (float)((tv.boundingBox.Bottom - 1) / 10000.0 + 9.99999974737875E-06), alphaFade = 0f, color = Color.White, scale = tv.getScreenSizeModifier(), scaleChange = 0.0f, rotation = 0.0f, rotationChange = 0.0f, local = false }; if (index == script.Pages.Length - 1) { CustomTVMod.showProgram(BackgroundSprite, script.Pages[index].Text, CustomTVMod.endProgram, BackgroundSprite); } else { CustomTVMod.showProgram(BackgroundSprite, script.Pages[index].Text, () => ContinueShow(tv, script, ++index), BackgroundSprite); } }
private void CheckIfShowHappensToday() { var r = new Random(Game1.Date.TotalDays); double roll = r.NextDouble(); _showToday = roll < 0.9; _todaysScript = _config.Scripts[r.Next(0, _config.Scripts.Length)]; CommunityMod.ModMonitor.Log($"Show Today? {_showToday} {roll}", LogLevel.Info); }