Пример #1
0
        public override void Draw(int interval)
        {
            SizeF res  = UIMenu.GetScreenResolutionMantainRatio();
            Point safe = UIMenu.GetSafezoneBounds();

            base.Draw(interval);

            var start = new Point((int)res.Width - safe.X - 160, (int)res.Height - safe.Y - (28 + (4 * interval)));

            ResRectangle.Draw(start, new Size(150, 15), BackgroundColor);
            ResRectangle.Draw(start, new Size((int)(150 * Percentage), 15), ForegroundColor);
        }
Пример #2
0
        protected void Init()
        {
            _selectedSprite = new Sprite("commonmenu", "gradient_nav", new Point(0, 0), new Size(431, 38), 0, HighlightColor);
            _rectangle = new ResRectangle(new Point(0, 0), new Size(431, 38), Color.FromArgb(150, 0, 0, 0));
            _text = new ResText(Text, new Point(8, 0), 0.33f, Color.WhiteSmoke, Common.EFont.ChaletLondon, ResText.Alignment.Left);
            Description = Description;

            _badgeLeft = new Sprite("commonmenu", "", new Point(0, 0), new Size(40, 40));
            _badgeRight = new Sprite("commonmenu", "", new Point(0, 0), new Size(40, 40));

            _labelText = new ResText("", new Point(0, 0), 0.35f) { TextAlignment = ResText.Alignment.Right };
        }
Пример #3
0
        /// <summary>
        /// Basic menu button.
        /// </summary>
        /// <param name="text">Button label.</param>
        /// <param name="description">Description.</param>
        public NativeMenuItem(string text, string description)
        {
            Enabled = true;

            _rectangle = new ResRectangle(new Point(0, 0), new Size(431, 38), Color.FromArgb(150, 0, 0, 0));
            _text = new ResText(text, new Point(8, 0), 0.33f, Color.WhiteSmoke, Common.EFont.ChaletLondon, ResText.Alignment.Left);
            Description = description;
            _selectedSprite = new Sprite("commonmenu", "gradient_nav", new Point(0, 0), new Size(431, 38));

            _badgeLeft = new Sprite("commonmenu", "", new Point(0, 0), new Size(40, 40));
            _badgeRight = new Sprite("commonmenu", "", new Point(0, 0), new Size(40, 40));

            _labelText = new ResText("", new Point(0, 0), 0.35f) {TextAlignment = ResText.Alignment.Right};
        }
Пример #4
0
        /// <summary>
        /// Basic menu button.
        /// </summary>
        /// <param name="text">Button label.</param>
        /// <param name="description">Description.</param>
        public UIMenuItem(string text, string description)
        {
            Enabled = true;

            _rectangle      = new ResRectangle(new Point(0, 0), new Size(431, 38), Color.FromArgb(150, 0, 0, 0));
            _text           = new ResText(text, new Point(8, 0), 0.33f, Color.WhiteSmoke, Common.EFont.ChaletLondon, ResText.Alignment.Left);
            Description     = description;
            _selectedSprite = new Sprite("commonmenu", "gradient_nav", new Point(0, 0), new Size(431, 38));

            _badgeLeft  = new Sprite("commonmenu", "", new Point(0, 0), new Size(40, 40));
            _badgeRight = new Sprite("commonmenu", "", new Point(0, 0), new Size(40, 40));

            _labelText = new ResText("", new Point(0, 0), 0.35f)
            {
                TextAlignment = ResText.Alignment.Right
            };
        }
        public void CameraShutterAnimation()
        {
            GameFiber.StartNew(delegate
            {
                var orig = UIMenu.GetScreenResolutionMantainRatio();
                var res = new Size((int)orig.Width, (int)orig.Height);

                var upperRect = new ResRectangle(new Point(0,0), new Size(res.Width, 0), Color.Black);
                var lowerRect = new ResRectangle(new Point(0, res.Height), new Size(res.Width, 0), Color.Black);

                var middle = res.Height/2;

                var startTime = Game.GameTime;
                const uint duration = 200;
                while (Game.GameTime < startTime + duration)
                {
                    var lerp = (int)Util.LinearLerp(Game.GameTime - startTime, 0, middle, duration);

                    upperRect.Size = new Size(res.Width, lerp);

                    lowerRect.Position = new Point(0, res.Height - lerp);
                    lowerRect.Size = new Size(res.Width, lerp);

                    upperRect.Draw();
                    lowerRect.Draw();
                    GameFiber.Yield();
                }

                startTime = Game.GameTime;
                while (Game.GameTime < startTime + duration)
                {
                    var lerp = (int)Util.LinearLerp(Game.GameTime - startTime, middle, 0, duration);
                    upperRect.Size = new Size(res.Width, lerp);

                    lowerRect.Position = new Point(0, res.Height - lerp);
                    lowerRect.Size = new Size(res.Width, lerp);

                    upperRect.Draw();
                    lowerRect.Draw();
                    GameFiber.Yield();
                }
            });
        }
Пример #6
0
 /// <summary>
 ///  Set the banner to your own Rectangle.
 /// </summary>
 /// <param name="rectangle">UIResRectangle object. Position and size does not matter.</param>
 public void SetBannerType(ResRectangle rectangle)
 {
     _logo = null;
     _tmpRectangle = rectangle;
     _tmpRectangle.Position = new Point(_offset.X, _offset.Y);
     _tmpRectangle.Size = new Size(431 + WidthOffset, 107);
 }
Пример #7
0
        /// <summary>
        /// Advanced Menu constructor that allows custom title banner.
        /// </summary>
        /// <param name="title">Title that appears on the big banner. Set to "" if you are using a custom banner.</param>
        /// <param name="subtitle">Subtitle that appears in capital letters in a small black bar.</param>
        /// <param name="offset">Point object with X and Y data for offsets. Applied to all menu elements.</param>
        /// <param name="spriteLibrary">Sprite library name for the banner.</param>
        /// <param name="spriteName">Sprite name for the banner.</param>
        public UIMenu(string title, string subtitle, Point offset, string spriteLibrary, string spriteName)
        {
            _offset = offset;
            Children = new Dictionary<NativeMenuItem, UIMenu>();
            WidthOffset = 0;

            _instructionalButtonsScaleform = new Scaleform(0);
            _instructionalButtonsScaleform.Load("instructional_buttons");
            UpdateScaleform();

            _mainMenu = new Container(new Point(0, 0), new Size(700, 500), Color.FromArgb(0, 0, 0, 0));
            _logo = new Sprite(spriteLibrary, spriteName, new Point(0 + _offset.X, 0 + _offset.Y), new Size(431, 107));
            _mainMenu.Items.Add(Title = new ResText(title, new Point(215 + _offset.X, 20 + _offset.Y), 1.15f, Color.White, Common.EFont.HouseScript, ResText.Alignment.Centered));
            if (!String.IsNullOrWhiteSpace(subtitle))
            {
                _mainMenu.Items.Add(new ResRectangle(new Point(0 + offset.X, 107 + _offset.Y), new Size(431, 37), Color.Black));
                _mainMenu.Items.Add(Subtitle = new ResText(subtitle, new Point(8 + _offset.X, 110 + _offset.Y), 0.35f, Color.WhiteSmoke, 0, ResText.Alignment.Left));

                if (subtitle.StartsWith("~"))
                {
                    CounterPretext = subtitle.Substring(0, 3);
                }
                _counterText = new ResText("", new Point(425 + _offset.X, 110 + _offset.Y), 0.35f, Color.WhiteSmoke, 0, ResText.Alignment.Right);
                _extraYOffset = 37;
            }

            _upAndDownSprite = new Sprite("commonmenu", "shop_arrows_upanddown", new Point(190 + _offset.X, 147 + 37 * (MaxItemsOnScreen + 1) + _offset.Y - 37 + _extraYOffset), new Size(50, 50));
            _extraRectangleUp = new ResRectangle(new Point(0 + _offset.X, 144 + 38 * (MaxItemsOnScreen + 1) + _offset.Y - 37 + _extraYOffset), new Size(431, 18), Color.FromArgb(200, 0, 0, 0));
            _extraRectangleDown = new ResRectangle(new Point(0 + _offset.X, 144 + 18 + 38 * (MaxItemsOnScreen + 1) + _offset.Y - 37 + _extraYOffset), new Size(431, 18), Color.FromArgb(200, 0, 0, 0));

            _descriptionBar = new ResRectangle(new Point(_offset.X, 123), new Size(431, 4), Color.Black);
            _descriptionRectangle = new Sprite("commonmenu", "gradient_bgd", new Point(_offset.X, 127), new Size(431, 30));
            _descriptionText = new ResText("Description", new Point(_offset.X + 5, 125), 0.35f, Color.FromArgb(255, 255, 255, 255), Common.EFont.ChaletLondon, ResText.Alignment.Left);

            _background = new Sprite("commonmenu", "gradient_bgd", new Point(_offset.X, 144 + _offset.Y - 37 + _extraYOffset), new Size(290, 25));

            SetKey(Common.MenuControls.Up, GameControl.CellphoneUp);
            SetKey(Common.MenuControls.Up, GameControl.CursorScrollUp);

            SetKey(Common.MenuControls.Down, GameControl.CellphoneDown);
            SetKey(Common.MenuControls.Down, GameControl.CursorScrollDown);

            SetKey(Common.MenuControls.Left, GameControl.CellphoneLeft);
            SetKey(Common.MenuControls.Right, GameControl.CellphoneRight);
            SetKey(Common.MenuControls.Select, GameControl.FrontendAccept);

            SetKey(Common.MenuControls.Back, GameControl.CellphoneCancel);
            SetKey(Common.MenuControls.Back, GameControl.FrontendPause);
        }
Пример #8
0
        protected virtual void Draw()
        {
            SizeF res    = UIMenu.GetScreenResolutionMantainRatio();
            int   middle = (int)(res.Width / 2);

            Sprite.Draw("mpentry", "mp_modenotselected_gradient", new Point(0, 10), new Size((int)res.Width, 450 + (Items.Count * 40)), 0.0f, Color.FromArgb(200, 255, 255, 255));

            ResText.Draw(Title, new Point(middle, 100), 2.5f, Color.FromArgb(255, 199, 168, 87), Common.EFont.Pricedown, true);

            ResText.Draw(Subtitle, new Point(middle, 230), 0.5f, Color.White, Common.EFont.ChaletLondon, true);
            ResRectangle.Draw(new Point(middle - 300, 290), new Size(600, 2), Color.White);

            for (int i = 0; i < Items.Count; i++)
            {
                MissionPassedScreenItem item = Items[i];

                ResText.Draw(item.Label, new Point(middle - 230, 300 + (40 * i)), 0.35f, Color.White, Common.EFont.ChaletLondon, false);
                ResText.Draw(item.Status, new Point(item.Tickbox == MissionPassedScreenItem.TickboxState.None ? middle + 265 : middle + 230, 300 + (40 * i)), 0.35f, Color.White, Common.EFont.ChaletLondon, ResText.Alignment.Right, false, false, Size.Empty);

                if (item.Tickbox == MissionPassedScreenItem.TickboxState.None)
                {
                    continue;
                }

                string spriteName;
                if (item.Tickbox == MissionPassedScreenItem.TickboxState.Tick)
                {
                    spriteName = "shop_box_tick";
                }
                else if (item.Tickbox == MissionPassedScreenItem.TickboxState.Cross)
                {
                    spriteName = "shop_box_cross";
                }
                else
                {
                    spriteName = "shop_box_blank";
                }

                Sprite.Draw("commonmenu", spriteName, new Point(middle + 230, 290 + (40 * i)), new Size(48, 48), 0.0f, Color.White);
            }

            ResRectangle.Draw(new Point(middle - 300, 300 + (40 * Items.Count)), new Size(600, 2), Color.White);

            ResText.Draw("Completion", new Point(middle - 150, 320 + (40 * Items.Count)), 0.4f, Color.White, Common.EFont.ChaletLondon, false);
            ResText.Draw(CompletionPercentage + "%", new Point(middle + 150, 320 + (40 * Items.Count)), 0.4f, Color.White, Common.EFont.ChaletLondon, ResText.Alignment.Right, false, false, Size.Empty);

            string medalSprite;

            if (Medal == MedalType.Silver)
            {
                medalSprite = "silvermedal";
            }
            else if (Medal == MedalType.Gold)
            {
                medalSprite = "goldmedal";
            }
            else
            {
                medalSprite = "bronzemedal";
            }

            Sprite.Draw("mpmissionend", medalSprite, new Point(middle + 150, 320 + (40 * Items.Count)), new Size(32, 32), 0.0f, Color.White);

            InstructionalButtons.Draw();
        }
Пример #9
0
 public void SetBannerType(ResRectangle bannerType)
 {
     _menuList.ForEach(m => m.SetBannerType(bannerType));
 }