Ejemplo n.º 1
0
        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);
            }
        }
Ejemplo n.º 2
0
        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);
        }