Пример #1
0
        public override void Render()
        {
            Draw.Rect(-10f, -10f, 1940f, 1100f, Color.Black * Ease.CubeOut(Alpha));
            base.Render();
            if (remappingEase <= 0.0)
            {
                return;
            }

            Draw.Rect(-10f, -10f, 1940f, 1100f, Color.Black * 0.95f * Ease.CubeInOut(remappingEase));
            Vector2 position = new Vector2(1920f, 1080f) * 0.5f;

            if (remappingKeyboard || Input.GuiInputController())
            {
                ActiveFont.Draw(
                    remappingKeyboard
                        ? Dialog.Get(DialogIds.KeyConfigChanging)
                        : Dialog.Get(DialogIds.BtnConfigChanging),
                    position + new Vector2(0.0f, -8f),
                    new Vector2(0.5f, 1f),
                    Vector2.One * 0.7f,
                    Color.LightGray * Ease.CubeIn(remappingEase));
                ActiveFont.Draw(ButtonInfos[remappingType].GetLabel(),
                                position + new Vector2(0.0f, 8f), new Vector2(0.5f, 0.0f), Vector2.One * 2f,
                                Color.White * Ease.CubeIn(remappingEase));
            }
            else
            {
                ActiveFont.Draw(Dialog.Clean(DialogIds.BtnConfigNoController), position, new Vector2(0.5f, 0.5f),
                                Vector2.One,
                                Color.White * Ease.CubeIn(remappingEase));
            }
        }
        private void AreaCompleteDrawHash(On.Celeste.AreaComplete.orig_VersionNumberAndVariants orig, string version, float ease, float alpha)
        {
            orig(version, ease, alpha);

            var settings = this.endingSettings;
            var session  = SaveData.Instance?.CurrentSession;

            if (settings != null)
            {
                var text = settings.Seed;
                if (settings.Rules != Ruleset.Custom)
                {
                    text += " " + settings.Rules.ToString();
                    if (session?.SeedCleanRandom() ?? false)
                    {
                        text += "!";
                    }
                }

                text += "\n#" + settings.Hash;
                text += "\nrando " + this.VersionString;
                var variants = SaveData.Instance?.VariantMode ?? false;
                ActiveFont.DrawOutline(text, new Vector2(1820f + 300f * (1f - Ease.CubeOut(ease)), variants ? 810f : 894f), new Vector2(0.5f, 0f), Vector2.One * 0.5f, settings.SpawnGolden ? Calc.HexToColor("fad768") : Color.White, 2f, Color.Black);
            }
        }
Пример #3
0
        public override IEnumerator Enter(Oui from)
        {
            ReloadMenu();
            menu.Visible = Visible = true;
            menu.Focused = false;

            if (from is OuiRandoRecords)
            {
                savedMenuIndex = menu.LastPossibleSelection;
            }

            // restore selection if coming from a submenu.
            if (savedMenuIndex != -1)
            {
                menu.Selection  = Math.Min(savedMenuIndex, menu.LastPossibleSelection);
                menu.Position.Y = menu.ScrollTargetY;
            }

            for (float p = 0f; p < 1f; p += Engine.DeltaTime * 4f)
            {
                menu.X = offScreenX + -1920f * Ease.CubeOut(p);
                alpha  = Ease.CubeOut(p);
                yield return(null);
            }

            menu.Focused = true;
        }
Пример #4
0
        public override void Render()
        {
            if (Everest.Flags.IsDisabled)
            {
                orig_Render();
                return;
            }

            orig_Render();
            if (maplistEase > 0f)
            {
                Vector2 pos = new Vector2(128f * Ease.CubeOut(maplistEase), 1080f - 128f);
                if (journalEnabled)
                {
                    pos.Y -= 128f;
                }
                GFX.Gui["menu/maplist"].DrawCentered(pos, Color.White * Ease.CubeOut(maplistEase));
                (Input.GuiInputController() ? Input.GuiButton(Input.Pause) : Input.GuiButton(Input.ESC)).Draw(pos, Vector2.Zero, Color.White * Ease.CubeOut(maplistEase));
            }

            if (levelsetEase > 0f)
            {
                Vector2 pos  = new Vector2(1920f - 64f * Ease.CubeOut(maplistEase), 1080f - 128f);
                string  line = DialogExt.CleanLevelSet(currentLevelSet);
                ActiveFont.DrawOutline(line, pos, new Vector2(1f, 0.5f), Vector2.One * 0.7f, Color.White * Ease.CubeOut(maplistEase), 2f, Color.Black * Ease.CubeOut(maplistEase));
                Vector2 lineSize = ActiveFont.Measure(line) * 0.7f;
                Input.GuiDirection(new Vector2(0f, -1f)).DrawCentered(pos + new Vector2(-lineSize.X * 0.5f, -lineSize.Y * 0.5f - 16f), Color.White * Ease.CubeOut(maplistEase), 0.5f);
                Input.GuiDirection(new Vector2(0f, +1f)).DrawCentered(pos + new Vector2(-lineSize.X * 0.5f, +lineSize.Y * 0.5f + 16f), Color.White * Ease.CubeOut(maplistEase), 0.5f);
            }
        }
Пример #5
0
        public override IEnumerator Enter(Oui from)
        {
            Overworld.ShowInputUI = true;
            fromModOptions        = from is OuiModOptions;

            if (fromModOptions)
            {
                Add(new Coroutine(FadeBgTo(1f)));
            }
            else
            {
                fade = 1f;
            }

            steps.Clear();
            step = 0;
            ReloadMenu();

            menu.Visible = Visible = true;
            menu.Focused = false;

            for (float p = 0f; p < 1f; p += Engine.DeltaTime * 4f)
            {
                menu.X = offScreenRightX - 1920f * Ease.CubeOut(p);
                yield return(null);
            }

            menu.Focused = true;
        }
Пример #6
0
        public override IEnumerator Enter(Oui from)
        {
            if (!Everest.Flags.IsDisabled)
            {
                TextInput.OnInput += OnTextInput;
            }

            ReloadMenu();

            menu.Visible = (Visible = true);
            menu.Focused = false;

            cameraStart        = Overworld.Mountain.UntiltedCamera;
            cameraEnd          = cameraStart;
            cameraEnd.Position = cameraEnd.Position + -cameraStart.Rotation.Forward() * 1f;
            Overworld.Mountain.EaseCamera(Overworld.Mountain.Area, cameraEnd, 2f);
            Overworld.Mountain.AllowUserRotation = false;

            for (float p = 0f; p < 1f; p += Engine.DeltaTime * 4f)
            {
                menu.X = offScreenX + -1920f * Ease.CubeOut(p);
                alpha  = Ease.CubeOut(p);
                yield return(null);
            }

            menu.Focused = true;
        }
Пример #7
0
        public override IEnumerator Enter(Oui from)
        {
            Everest.Loader.AutoLoadNewMods = false;

            menu = new TextMenu();

            // display the title and a dummy "Fetching" button
            menu.Add(new TextMenu.Header(Dialog.Clean("MODUPDATECHECKER_MENU_TITLE")));

            menu.Add(subHeader = new TextMenuExt.SubHeaderExt(Dialog.Clean("MODUPDATECHECKER_MENU_HEADER")));

            fetchingButton          = new TextMenu.Button(Dialog.Clean("MODUPDATECHECKER_FETCHING"));
            fetchingButton.Disabled = true;
            menu.Add(fetchingButton);

            Scene.Add(menu);

            currentCheckForUpdates = new CheckForUpdates();
            task = new Task(() => currentCheckForUpdates.Fetch());
            task.Start();

            menu.Visible = Visible = true;
            menu.Focused = false;

            for (float p = 0f; p < 1f; p += Engine.DeltaTime * 4f)
            {
                menu.X = offScreenX + -1920f * Ease.CubeOut(p);
                alpha  = Ease.CubeOut(p);
                yield return(null);
            }

            menu.Focused = true;
            menuOnScreen = true;
        }
Пример #8
0
 static public int CubeOut_s(IntPtr l)
 {
     try {
                     #if DEBUG
         var    method     = System.Reflection.MethodBase.GetCurrentMethod();
         string methodName = GetMethodName(method);
                     #if UNITY_5_5_OR_NEWER
         UnityEngine.Profiling.Profiler.BeginSample(methodName);
                     #else
         Profiler.BeginSample(methodName);
                     #endif
                     #endif
         System.Single a1;
         checkType(l, 1, out a1);
         var ret = Ease.CubeOut(a1);
         pushValue(l, true);
         pushValue(l, ret);
         return(2);
     }
     catch (Exception e) {
         return(error(l, e));
     }
             #if DEBUG
     finally {
                     #if UNITY_5_5_OR_NEWER
         UnityEngine.Profiling.Profiler.EndSample();
                     #else
         Profiler.EndSample();
                     #endif
     }
             #endif
 }
Пример #9
0
        public IEnumerator FastIntroRoutine()
        {
            if (!loaded)
            {
                loadingTextures = GFX.Overworld.GetAtlasSubtextures("loading/");

                Image img = new Image(loadingTextures[0]);
                img.CenterOrigin();
                img.Scale = Vector2.One * 0.5f;
                handler.Add(img);

                while (!loaded || loadingAlpha > 0f)
                {
                    loadingFrame += Engine.DeltaTime * 10f;
                    loadingAlpha  = Calc.Approach(loadingAlpha, loaded ? 0f : 1f, Engine.DeltaTime * 4f);

                    img.Texture  = loadingTextures[(int)(loadingFrame % loadingTextures.Count)];
                    img.Color    = Color.White * Ease.CubeOut(loadingAlpha);
                    img.Position = new Vector2(1792f, 1080f - 128f * Ease.CubeOut(loadingAlpha));
                    yield return(null);
                }

                img = null;
            }

            Engine.Scene = new OverworldLoader(Overworld.StartMode.Titlescreen, Snow);
        }
Пример #10
0
            public void Render()
            {
                if (ease <= 0f)
                {
                    return;
                }
                Vector2 scale = Vector2.One * (1f + (1f - Ease.CubeOut(ease))) * 1.5f;

                ActiveFont.DrawOutline(Text, Position + new Vector2(Width / 2f, ActiveFont.LineHeight * 0.5f * 1.5f), new Vector2(0.5f, 0.5f), scale, Color.White, 2f, Color.Black);
            }
Пример #11
0
        public override void Render()
        {
            base.Render();

            if (journalEase > 0f)
            {
                Vector2 position = new Vector2(128f * Ease.CubeOut(journalEase), 952f);
                GFX.Gui ["menu/journal"].DrawCentered(position, Color.White * Ease.CubeOut(journalEase));
                Input.GuiButton(Input.MenuJournal, "controls/keyboard/oemquestion").Draw(position, Vector2.Zero, Color.White * Ease.CubeOut(journalEase));
            }
        }
Пример #12
0
        private IEnumerator CameraUp()
        {
            easingCamera = true;
            Level level = SceneAs <Level>();

            for (float p = 0f; p < 1f; p += Engine.DeltaTime * 1.5f)
            {
                level.Camera.Y = level.Bounds.Bottom - 180 + 64f * (1f - Ease.CubeOut(p));
                yield return(null);
            }
        }
Пример #13
0
        public override void Render()
        {
            base.Render();

            if (this.JournalEase > 0f)
            {
                var position = new Vector2(128f * Ease.CubeOut(this.JournalEase), 952f);
                var color    = Color.White * Ease.CubeOut(this.JournalEase);
                GFX.Gui["menu/journal"].DrawCentered(position, color);
                Input.GuiButton(Input.MenuJournal, Input.PrefixMode.Latest).Draw(position, Vector2.Zero, color);
            }
        }
 public override void Render()
 {
     Draw.Rect(-10f, -10f, 1940f, 1100f, Color.Black * Ease.CubeOut(Alpha));
     RenderTextMenu();
     if (remappingEase > 0f)
     {
         Draw.Rect(-10f, -10f, 1940f, 1100f, Color.Black * 0.95f * Ease.CubeInOut(remappingEase));
         Vector2 value = new Vector2(1920f, 1080f) * 0.5f;
         ActiveFont.Draw(additiveRemap ? Dialog.Get("KEY_CONFIG_ADDING") : Dialog.Get("KEY_CONFIG_CHANGING"), value + new Vector2(0f, -8f), new Vector2(0.5f, 1f), Vector2.One * 0.7f, Color.LightGray * Ease.CubeIn(remappingEase));
         ActiveFont.Draw(GetLabel(currentlyRemapping), value + new Vector2(0f, 8f), new Vector2(0.5f, 0f), Vector2.One * 2f, Color.White * Ease.CubeIn(remappingEase));
     }
 }
        public override void Render()
        {
            Vector2 vector = Position + new Vector2(128f, 120f);
            float   num    = Ease.CubeInOut(Math.Max(0f, turningScale));
            float   num2   = Ease.CubeInOut(Math.Abs(Math.Min(0f, turningScale)));

            if (SaveData.Instance.CheatMode)
            {
                MTN.FileSelect["cheatmode"].DrawCentered(vector + new Vector2(80f, 360f), Color.White, 1f, 1.57079637f);
            }
            if (SaveData.Instance.AssistMode)
            {
                MTN.FileSelect["assist"].DrawCentered(vector + new Vector2(100f, 370f), Color.White, 1f, 1.57079637f);
            }
            MTexture mtexture = MTN.Journal["edge"];

            mtexture.Draw(vector + new Vector2((float)-mtexture.Width, 0f), Vector2.Zero, Color.White, 1f, rotation);
            if (PageIndex > 0)
            {
                MTN.Journal[PrevPage.PageTexture].Draw(vector, Vector2.Zero, backColor, new Vector2(-1f, 1f), rotation);
            }
            if (turningPage)
            {
                MTN.Journal[NextPage.PageTexture].Draw(vector, Vector2.Zero, Color.White, 1f, rotation);
                Draw.SpriteBatch.Draw(NextPageBuffer, vector, new Rectangle?(NextPageBuffer.Bounds), Color.White, rotation, Vector2.Zero, Vector2.One, SpriteEffects.None, 0f);
            }
            if (turningPage && num2 > 0f)
            {
                MTN.Journal[Page.PageTexture].Draw(vector, Vector2.Zero, backColor, new Vector2(-1f * num2, 1f), rotation);
            }
            if (num > 0f)
            {
                MTN.Journal[Page.PageTexture].Draw(vector, Vector2.Zero, Color.White, new Vector2(num, 1f), rotation);
                //Page.Redraw(CurrentPageBuffer);
                Draw.SpriteBatch.Draw(CurrentPageBuffer, vector, new Rectangle?(CurrentPageBuffer.Bounds), Color.White, rotation, Vector2.Zero, new Vector2(num, 1f), SpriteEffects.None, 0f);
            }
            if (Pages.Count > 0)
            {
                int      count     = Pages.Count;
                MTexture mtexture2 = GFX.Gui["dot_outline"];
                int      num3      = mtexture2.Width * count;
                Vector2  value     = new Vector2(960f, 1040f - 40f * Ease.CubeOut(dotEase));
                for (int i = 0; i < count; i++)
                {
                    mtexture2.DrawCentered(value + new Vector2((float)(-(float)num3 / 2) + mtexture2.Width * (i + 0.5f), 0f), Color.White * 0.25f);
                }
                float x = 1f + Calc.YoYo(dot % 1f) * 4f;
                mtexture2.DrawCentered(value + new Vector2((float)(-(float)num3 / 2) + mtexture2.Width * (dot + 0.5f), 0f), Color.White, new Vector2(x, 1f));
                GFX.Gui["dotarrow_outline"].DrawCentered(value + new Vector2((float)(-(float)num3 / 2 - 50), 32f * (1f - Ease.CubeOut(leftArrowEase))), Color.White * leftArrowEase, new Vector2(-1f, 1f));
                GFX.Gui["dotarrow_outline"].DrawCentered(value + new Vector2(num3 / 2 + 50, 32f * (1f - Ease.CubeOut(rightArrowEase))), Color.White * rightArrowEase);
            }
        }
Пример #16
0
            public override void Render()
            {
                float   num     = Ease.CubeOut(alpha);
                float   textCol = Ease.CubeOut(textAlpha);
                Vector2 value   = Celeste.Celeste.TargetCenter + new Vector2(0f, 64f);
                Vector2 value2  = Vector2.UnitY * 64f * (1f - num);

                Draw.Rect(-10f, -10f, 1940f, 1100f, Color.Black * num * 0.8f);
                GFX.Gui[menuSprite].DrawJustified(value - value2 + new Vector2(0f, 32f), new Vector2(0.5f, 1f), Color.White * num);
                ActiveFont.Draw(text[Math.Min(textIndex, text.Length - 1)], value + value2, new Vector2(0.5f, 0f), Vector2.One, Color.White * textCol);
                if (waitForKeyPress)
                {
                    GFX.Gui["textboxbutton"].DrawCentered(new Vector2(1824f, 984 + ((timer % 1f < 0.25f) ? 6 : 0)));
                }
            }
Пример #17
0
        public override IEnumerator Enter(Oui from)
        {
            ReloadMenu();

            menu.Visible = (Visible = true);
            menu.Focused = false;

            for (float p = 0f; p < 1f; p += Engine.DeltaTime * 4f)
            {
                menu.X = offScreenX + -1920f * Ease.CubeOut(p);
                alpha  = Ease.CubeOut(p);
                yield return(null);
            }

            menu.Focused = true;
        }
Пример #18
0
        public Vector2 getScreenPosition(Vector2 originalPosition)
        {
            if (Settings.ZoomLevel == 10)
            {
                // nothing to do, spare us some processing.
                return(originalPosition);
            }

            // compute the size difference between regular screen and zoomed in screen
            Vector2 screenSize = new Vector2(320f, 180f) * Settings.ZoomLevel / 10f;
            Vector2 diff       = screenSize - new Vector2(320f, 180f);

            Player player = Engine.Scene.Tracker.GetEntity <Player>();

            if (Settings.ZoomLevel > 10 && player != null)
            {
                // if the player is on the left of the screen, we shouldn't move the screen (left is aligned with left side of the screen).
                // if they are on the right, we should move it left by the difference (right is aligned with right side of the screen).
                // in between, just lerp
                diff *= new Vector2(
                    Calc.ClampedMap(player.CenterX, (Engine.Scene as Level).Bounds.Left, (Engine.Scene as Level).Bounds.Right),
                    Calc.ClampedMap(player.CenterY, (Engine.Scene as Level).Bounds.Top, (Engine.Scene as Level).Bounds.Bottom));
            }
            else
            {
                // no player, or < 1x zoom: center the screen.
                diff *= 0.5f;
            }

            if (player == null || player.Dead)
            {
                // no player: no target, don't move
                diff = previousDiff;
            }
            else if (transitionPercent == 1)
            {
                // save the position in case we're transitioning later
                previousDiff = diff;
            }
            else
            {
                // lerp in the same way transitions do, synchronized with the transition: this allows for a seemless realignment.
                diff = Vector2.Lerp(previousDiff, diff, Ease.CubeOut(transitionPercent));
            }

            return(originalPosition - diff);
        }
Пример #19
0
        public override IEnumerator Enter(Oui from)
        {
            Overworld.ShowInputUI = false;

            audioPrevMusic = Audio.GetEventName(Audio.CurrentMusicEventInstance);
            Audio.SetMusic(null);
            audioPrevAmbience = Audio.GetEventName(Audio.CurrentAmbienceEventInstance);
            Audio.SetAmbience(null);

            Visible = true;

            for (float t = 0f; t < 1f; t += Engine.DeltaTime * 4f)
            {
                alpha = Ease.CubeOut(t);
                yield return(null);
            }
        }
Пример #20
0
        public override IEnumerator Enter(Oui from)
        {
            this.Visible = true;
            this.Menu    = this.ReloadMenu();
            this.Scene.Add(this.Menu);

            var fromRight  = this.IsDeeperThan(from);
            var OffScreenX = fromRight ? OffScreenXGeneric : -OffScreenXGeneric;

            for (float p = 0f; p < 1f; p += Engine.DeltaTime * 4f)
            {
                this.Menu.X = OffScreenX + (OnScreenX - OffScreenX) * Ease.CubeOut(p);
                yield return(null);
            }
            this.Menu.X      = OnScreenX;
            this.Menu.Active = true;
        }
        public override void Render()
        {
            base.Render();

            float currentWiggle = wiggler.Value * 8f;

            if (openingEase > 0f)
            {
                float   openingEaseEased = Ease.CubeOut(openingEase);
                Vector2 anchor           = new Vector2(960f, 540f);
                float   lineHeight       = ActiveFont.LineHeight;

                // draw background
                Draw.Rect(-10f, -10f, 1940f, 1100f, Color.Black * openingEaseEased * 0.9f);

                // draw text
                ActiveFont.Draw(Dialog.Clean("collabutils2_assist_skip_confirm"),
                                position: anchor + new Vector2(
                                    x: 0f,
                                    y: -16f - 64f * (1f - openingEaseEased)),
                                justify: new Vector2(0.5f, 1f),
                                scale: Vector2.One,
                                color: Color.White * openingEaseEased);

                ActiveFont.DrawOutline(Dialog.Clean("collabutils2_assist_skip_confirm_yes"),
                                       position: anchor + new Vector2(
                                           x: ((opened && currentlySelectedOption == 0) ? currentWiggle : 0f) * 1.2f * openingEaseEased,
                                           y: 16f + 64f * (1f - openingEaseEased)),
                                       justify: new Vector2(0.5f, 0f),
                                       scale: Vector2.One * 0.8f,
                                       color: opened ? selectionColor(currentlySelectedOption == 0) : Color.Gray,
                                       stroke: 2f,
                                       strokeColor: Color.Black * openingEaseEased);

                ActiveFont.DrawOutline(Dialog.Clean("collabutils2_assist_skip_confirm_no"),
                                       position: anchor + new Vector2(
                                           x: ((opened && currentlySelectedOption == 1) ? currentWiggle : 0f) * 1.2f * openingEaseEased,
                                           y: 16f + lineHeight + 64f * (1f - openingEaseEased)),
                                       justify: new Vector2(0.5f, 0f),
                                       scale: Vector2.One * 0.8f,
                                       color: opened ? selectionColor(currentlySelectedOption == 1) : Color.Gray,
                                       stroke: 2f,
                                       strokeColor: Color.Black * openingEaseEased);
            }
        }
 public override void Render()
 {
     if (!loading && screenBuffer != null && !screenBuffer.IsDisposed)
     {
         float     num       = ScreenWidth * Ease.CubeOut(Calc.ClampedMap(ease, 0f, 0.5f, 0f, 1f));
         float     num2      = ScreenHeight * Ease.CubeInOut(Calc.ClampedMap(ease, 0.5f, 1f, 0.2f, 1f));
         Rectangle rectangle = new Rectangle((int)((1920f - num) / 2f), (int)((1080f - num2) / 2f), (int)num, (int)num2);
         Draw.SpriteBatch.Draw(screenBuffer, rectangle, Color.White);
         if (ShowInput && waitingForInputTime > 0.2f)
         {
             GFX.Gui["textboxbutton"].DrawCentered(new Vector2(1856f, 1016 + ((Scene.TimeActive % 1f < 0.25f) ? 6 : 0)), Color.Black);
         }
         if ((Scene as Level).Paused)
         {
             Draw.Rect(rectangle, Color.Black * 0.7f);
         }
     }
 }
Пример #23
0
        private IEnumerator FadeIn(int i, TextMenuExt.IItemExt item)
        {
            yield return(0.03f * i);

            float ease = 0f;

            Vector2 offset = item.Offset;

            for (float p = 0f; p < 1f; p += Engine.DeltaTime * 4f)
            {
                ease        = Ease.CubeOut(p);
                item.Alpha  = ease;
                item.Offset = offset + new Vector2(0f, 64f * (1f - ease));
                yield return(null);
            }

            item.Alpha  = 1f;
            item.Offset = offset;
        }
Пример #24
0
        public void AreaCompleteDrawHash(On.Celeste.AreaComplete.orig_VersionNumberAndVariants orig, string version, float ease, float alpha)
        {
            if (this.InRandomizer)
            {
                SaveData.Instance.VariantMode = false;
            }
            orig(version, ease, alpha);

            if (this.InRandomizer)
            {
                var text = this.Settings.Seed;
                if (this.Settings.Rules != Ruleset.Custom)
                {
                    text += " " + this.Settings.Rules.ToString();
                }
                text += "\n#" + this.Settings.Hash.ToString();
                ActiveFont.DrawOutline(text, new Vector2(1820f + 300f * (1f - Ease.CubeOut(ease)), 925f), new Vector2(0.5f, 0f), Vector2.One * 0.5f, Color.White, 2f, Color.Black);
            }
        }
Пример #25
0
        public override IEnumerator Enter(Oui from)
        {
            Everest.Loader.AutoLoadNewMods = false;

            menu = new TextMenu();

            // display the title and a dummy "Fetching" button
            menu.Add(new TextMenu.Header(Dialog.Clean("MODUPDATECHECKER_MENU_TITLE")));

            menu.Add(subHeader = new TextMenuExt.SubHeaderExt(Dialog.Clean("MODUPDATECHECKER_MENU_HEADER")));

            fetchingButton          = new TextMenu.Button(Dialog.Clean("MODUPDATECHECKER_FETCHING"));
            fetchingButton.Disabled = true;
            menu.Add(fetchingButton);

            Scene.Add(menu);

            menu.Visible = Visible = true;
            menu.Focused = false;

            for (float p = 0f; p < 1f; p += Engine.DeltaTime * 4f)
            {
                menu.X = offScreenX + -1920f * Ease.CubeOut(p);
                alpha  = Ease.CubeOut(p);
                yield return(null);
            }

            menu.Focused = true;
            menuOnScreen = true;

            task = new Task(() => {
                // 1. Download the mod updates database
                updateCatalog = ModUpdaterHelper.DownloadModUpdateList();

                // 2. Find out what actually has been updated
                if (updateCatalog != null)
                {
                    availableUpdatesCatalog = ModUpdaterHelper.ListAvailableUpdates(updateCatalog);
                }
            });

            task.Start();
        }
Пример #26
0
        public override void Render()
        {
            Draw.Rect(-10f, -10f, 1940f, 1100f, Color.Black * Ease.CubeOut(Alpha));
            Vector2 center = new Vector2(1920f, 1080f) * 0.5f;

            if (Input.GuiInputController())
            {
                RenderTextMenu();
                if (remappingEase > 0f)
                {
                    Draw.Rect(-10f, -10f, 1940f, 1100f, Color.Black * 0.95f * Ease.CubeInOut(remappingEase));
                    ActiveFont.Draw(Dialog.Get("BTN_CONFIG_CHANGING"), center + new Vector2(0f, -8f), new Vector2(0.5f, 1f), Vector2.One * 0.7f, Color.LightGray * Ease.CubeIn(remappingEase));
                    ActiveFont.Draw(GetLabel(currentlyRemapping), center + new Vector2(0f, 8f), new Vector2(0.5f, 0f), Vector2.One * 2f, Color.White * Ease.CubeIn(remappingEase));
                }
            }
            else
            {
                ActiveFont.Draw(Dialog.Clean("BTN_CONFIG_NOCONTROLLER"), center, new Vector2(0.5f, 0.5f), Vector2.One, Color.White * Ease.CubeOut(Alpha));
            }
        }
Пример #27
0
        public override bool Update(TouchCollection state, TouchLocation touch)
        {
            bool enabled = TouchInputManager.IsTouch;

            if (enabled && Condition != null)
            {
                enabled = Condition(this);
            }

            if (!enabled)
            {
                touch = default;
            }

            TouchPrev = Touch;
            Touch     = touch;

            alphaTime = Calc.Clamp(alphaTime + Engine.RawDeltaTime * (enabled ? 1f : -1f), 0f, 0.3f);
            alpha     = Ease.CubeOut(alphaTime / 0.3f);

            colorTime = Calc.Clamp(colorTime + Engine.RawDeltaTime * (touch.State != TouchLocationState.Invalid ? 1f : -1f), 0f, 0.1f);
            int colorMulDown = (int)Math.Round(colorTime / 0.1f * 255f);
            int colorMulUp   = 255 - colorMulDown;

            color = new Color(
                ((ColorUp.R * colorMulUp + ColorDown.R * colorMulDown) / 2) / 65025,
                ((ColorUp.G * colorMulUp + ColorDown.G * colorMulDown) / 2) / 65025,
                ((ColorUp.B * colorMulUp + ColorDown.B * colorMulDown) / 2) / 65025,
                ((ColorUp.A * colorMulUp + ColorDown.A * colorMulDown) / 2) / 65025
                );

            bool consumed = false;

            if (touch.State != TouchLocationState.Invalid)
            {
                consumed = OnTouch?.InvokeWhileFalse(this, touch) ?? true;
            }
            return(consumed);
        }
Пример #28
0
        public override IEnumerator Enter(Oui from)
        {
            // build the menu
            menu = new TextMenu();
            menu.Add(new TextMenu.Header(MenuName));
            addOptionsToMenu(menu);

            // add it to the scene
            Scene.Add(menu);
            menu.Visible = Visible = true;
            menu.Focused = false;

            // transition in
            for (float p = 0f; p < 1f; p += Engine.DeltaTime * 4f)
            {
                menu.X = offScreenX + -1920f * Ease.CubeOut(p);
                alpha  = Ease.CubeOut(p);
                yield return(null);
            }

            // give control to the player
            menu.Focused = true;
        }
Пример #29
0
        public override IEnumerator Enter(Oui from)
        {
            ReloadMenu();

            // restore selection if coming from a submenu.
            if (savedMenuIndex != -1 && typeof(ISubmenu).IsAssignableFrom(from.GetType()))
            {
                menu.Selection  = Math.Min(savedMenuIndex, menu.LastPossibleSelection);
                menu.Position.Y = menu.ScrollTargetY;
            }

            menu.Visible = Visible = true;
            menu.Focused = false;

            for (float p = 0f; p < 1f; p += Engine.DeltaTime * 4f)
            {
                menu.X = offScreenX + -1920f * Ease.CubeOut(p);
                alpha  = Ease.CubeOut(p);
                yield return(null);
            }

            menu.Focused = true;
        }
            public override void Render(Vector2 position, bool highlighted)
            {
                Color textColor   = Color.Gray * Ease.CubeOut(Container.Alpha);
                Color strokeColor = Color.Black * Ease.CubeOut(Container.Alpha);
                Color btnColor    = Color.White * Ease.CubeOut(Container.Alpha);

                float taken = 0f;

                for (int i = 0; i < info.Count; i++)
                {
                    if (info[i] is string text)
                    {
                        taken += ActiveFont.Measure(text).X * 0.6f;
                    }
                    else if (info[i] is VirtualButton btn)
                    {
                        taken += Input.GuiButton(btn).Width * 0.6f;
                    }
                }

                Vector2 pos = position + new Vector2(Container.Width - taken, 0f) / 2f;

                for (int i = 0; i < info.Count; i++)
                {
                    if (info[i] is string text)
                    {
                        ActiveFont.DrawOutline(text, pos, new Vector2(0f, 0.5f), Vector2.One * 0.6f, textColor, 2f, strokeColor);
                        pos.X += ActiveFont.Measure(text).X * 0.6f;
                    }
                    else if (info[i] is VirtualButton btn)
                    {
                        MTexture tex = Input.GuiButton(btn);
                        tex.DrawJustified(pos, new Vector2(0f, 0.5f), btnColor, 0.6f);
                        pos.X += tex.Width * 0.6f;
                    }
                }
            }