Пример #1
0
        private void SubMenuDescriptionInvalidateByPush()
        {
            var count = _subMenuDescriptionInfo.Count;

            _subMenuDescriptionSeq = SequenceFactory.Create(Enumerable.Range(0, count)
                                                            .Select(i => new AnimatedSequenceDesc
            {
                SequenceIndexStart = i + 1 < count ? -1 : 75,
                SequenceIndexLoop  = 76,
                SequenceIndexEnd   = 77,
                StackIndex         = i,
                StackWidth         = AnimatedSequenceDesc.DefaultStacking,
                StackHeight        = 0,
                MessageId          = _subMenuDescriptionInfo[i] is ushort id ? id : (ushort)0,
                MessageText        = _subMenuDescriptionInfo[i] as string,
                Flags = AnimationFlags.TextIgnoreColor |
                        AnimationFlags.TextTranslateX |
                        AnimationFlags.ChildStackHorizontally,
                TextAnchor = TextAnchor.BottomLeft,
                Children   = new List <AnimatedSequenceDesc>
                {
                    new AnimatedSequenceDesc {
                    },
                    new AnimatedSequenceDesc
                    {
                        SequenceIndexStart = i + 1 < count ? -1 : 27,
                        SequenceIndexLoop  = 28,
                        SequenceIndexEnd   = 29,
                    }
                }
            })
Пример #2
0
        public void OpenMenu()
        {
            _layoutRenderer.FrameIndex = 0;
            _layoutRenderer.SelectedSequenceGroupIndex = 0;

            _backgroundSeq.Begin();
            _subMenu = new MainMenu(this);
            _subMenu.Open();

            _subMenuDescriptionInfo.Clear();
            _subMenuDescriptionSeq = SequenceFactory.Create(new List <AnimatedSequenceDesc>());
            _subMenuDescriptionSeq.Begin();

            IsMenuOpen = true;
        }
Пример #3
0
        public NewGameMenu(AnimatedSequenceFactory sequenceFactory, ITitleMainMenu mainMenu)
        {
            _difficultyCount = mainMenu.Kernel.IsFinalMix ? 4 : 3;

            _mainMenu       = mainMenu;
            _animSeqFactory = sequenceFactory;

            _animMenuBg      = sequenceFactory.FromAnimatedIndex(NewGameTitle);
            _animMenuWindow  = sequenceFactory.FromAnimatedIndex(NewGameWindow);
            _animMenuTitle   = sequenceFactory.FromStaticIndex(25);
            _animMenuOption1 = sequenceFactory.FromAnimatedIndex(NewGameOption);
            _animMenuOption2 = sequenceFactory.FromAnimatedIndex(NewGameOption);
            _animMenuOption3 = sequenceFactory.FromAnimatedIndex(NewGameOption);
            _animMenuOption4 = sequenceFactory.FromAnimatedIndex(NewGameOption);

            _animMenuOptionSelected = sequenceFactory.FromAnimatedIndex(15, 14, 14);
            //_animMenuOptionSelected.AddChild(new AnimatedSequenceRenderer(_seqRenderer, 7));
            //_animMenuOptionSelected.AddChild(new AnimatedSequenceRenderer(_seqRenderer, 10), true);
            //_animMenuOptionSelected.ChildPositionX = -110;
        }
Пример #4
0
        public void Initialize(StateInitDesc initDesc)
        {
            _kernel         = initDesc.Kernel;
            _content        = initDesc.DataContent;
            _archiveManager = initDesc.ArchiveManager;
            Input           = initDesc.Input;

            var viewport = initDesc.GraphicsDevice.GraphicsDevice.Viewport;

            _shader  = new KingdomShader(initDesc.ContentManager);
            _drawing = new MonoSpriteDrawing(initDesc.GraphicsDevice.GraphicsDevice, _shader);
            _drawing.SetProjection(
                viewport.Width,
                viewport.Height,
                Global.ResolutionWidth,
                Global.ResolutionHeight,
                1.0f);
            initDesc.GraphicsDevice.GraphicsDevice.DepthStencilState = new Microsoft.Xna.Framework.Graphics.DepthStencilState
            {
                DepthBufferEnable = false,
                StencilEnable     = false,
            };

            var messageContext = _kernel.SystemMessageContext;

            _messageRenderer = new Kh2MessageRenderer(_drawing, messageContext);

            _archiveManager.LoadArchive($"menu/{_kernel.Region}/camp.2ld");
            (_campLayout, _textures) = GetLayoutResources("camp", "camp");
            _layoutRenderer          = new LayoutRenderer(_campLayout, _drawing, _textures)
            {
                SelectedSequenceGroupIndex = 0
            };

            SequenceFactory = new AnimatedSequenceFactory(
                _drawing,
                initDesc.Kernel.MessageProvider,
                _messageRenderer,
                _kernel.SystemMessageContext.Encoder,
                _campLayout.SequenceItems[1],
                _textures.First());

            _backgroundSeq = SequenceFactory.Create(new List <AnimatedSequenceDesc>
            {
                new AnimatedSequenceDesc
                {
                    SequenceIndexStart = 107,
                    SequenceIndexLoop  = 108,
                    SequenceIndexEnd   = 109,
                },
                new AnimatedSequenceDesc
                {
                    SequenceIndexStart = 110,
                    SequenceIndexLoop  = 111,
                    SequenceIndexEnd   = 112,
                },
                new AnimatedSequenceDesc
                {
                    SequenceIndexStart = 113,
                    SequenceIndexLoop  = 114,
                    SequenceIndexEnd   = 115,
                }
            });
            _subMenuDescriptionSeq = SequenceFactory.Create(new List <AnimatedSequenceDesc>());
        }