Ejemplo n.º 1
0
        private MetaContentEditor createEditor(MetaData data, MetaContentEditorShell shell)
        {
            switch (data.Type)
            {
            case MetaDataType.Title:
                shell.ViewToggle.Toggle(true);
                TitleEditor result = Instantiate(_titleEditorPrefab);
                result.Data = data as TitleData;
                return(result);

            case MetaDataType.Tags:
                shell.ViewToggle.Toggle(true);
                TagsEditor tagsEditor = Instantiate(_tagsEditorPrefab);
                tagsEditor.Data = data as TagsData;
                return(tagsEditor);

            case MetaDataType.CreationDate:
                shell.ViewToggle.Toggle(false);
                CreationDateEditor creationDateEditor = Instantiate(_creationDateEditor);
                creationDateEditor.Data = data as CreationDateData;
                return(creationDateEditor);

            case MetaDataType.LastChangedDate:
                shell.ViewToggle.Toggle(false);
                LastChangeDateEditor lastChangeDate = Instantiate(_lastChangeDateEditor);
                lastChangeDate.Data = data as LastChangeDateData;
                return(lastChangeDate);

            case MetaDataType.Comment:
                shell.ViewToggle.Toggle(true);
                CommentEditor commentEditor = Instantiate(_commentEditor);
                commentEditor.Data = data as CommentData;
                return(commentEditor);

            case MetaDataType.Description:
                shell.ViewToggle.Toggle(true);
                DescriptionEditor descriptionEditor = Instantiate(_descriptionEditor);
                descriptionEditor.Data = data as DescriptionData;
                return(descriptionEditor);

            case MetaDataType.PreviewImage:
                shell.ViewToggle.Toggle(true);
                PreviewImageEditor previewImageEditor = Instantiate(_previewImageEditor);
                previewImageEditor.Data = data as PreviewImageData;
                return(previewImageEditor);

            case MetaDataType.Author:
                shell.ViewToggle.Toggle(true);
                AuthorsEditor authorsEditor = Instantiate(_authorsEditor);
                authorsEditor.Data = data as AuthorData;
                return(authorsEditor);

            default:
                throw new NotImplementedException();
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Initialize Triatla
        /// </summary>
        public static void Initialize()
        {
            TitleEditor.ChangeTitle();

            InitializeBoard(12, () =>
            {
                // Check for key presses
                Task.Run(MoveHandler.StartKeyPress);

                // Render board - Graphics
                RenderBoard();
            });
        }
Ejemplo n.º 3
0
        public static async Task <bool> RollCredits()
        {
            // Make some kind of scroll 'animation'
            for (var i = 0; i < BufferHeight; i++)
            {
                MoveBufferArea(0, 0, BufferWidth, BufferHeight, 0, 1);
                await Task.Delay(350);
            }

            // Typing animation credits scene
            foreach (var name in Names)
            {
                CursorTop = 0;
                MoveBufferArea(0, 0, BufferWidth, BufferHeight, 0, 1);
                await Task.Delay(500);

                foreach (var c in name.Text)
                {
                    lock (Out)
                    {
                        ForegroundColor = name.Color;
                        Write(c);
                        ResetColor();
                    }
                    await Task.Delay(Rand.Next(100));
                }
                WriteLine();
            }

            // Make some kind of scroll 'animation'
            for (var i = 0; i < BufferHeight; i++)
            {
                MoveBufferArea(0, 0, BufferWidth, BufferHeight, 0, 1);
                await Task.Delay(500);
            }

            // Wait for a second
            await Task.Delay(1000);

            // Say one last message - Thank you for playing
            const string text = "Thank you for playing ..";

            CursorTop  = BufferHeight / 2;
            CursorLeft = BufferWidth / 2 - text.Length / 2;
            WriteLine(text);
            TitleEditor.EndTitle();


            return(true);
        }
Ejemplo n.º 4
0
        private static void InitializeBoard(int size, Action callback)
        {
            SetSize(size);     // Sets Size of the console, etc.

            // Initializes the 2D Array
            var dat = new BDat[size, size];

            for (var i = 0; i < dat.GetLength(0); i++)
            {
                for (var j = 0; j < dat.GetLength(1); j++)
                {
                    var d = new BDat(j, i);

                    d.OnStateChanged += (s, g) =>
                    {
                        RenderBoard();
                    };

                    dat[i, j] = d;
                }
            }

            // Subscribe to selection changed event
            BoardData.Selection.OnVectorChange += (s, g) =>
            {
                RenderBoard();
            };

            // Set board data to dat (temp data)
            BoardData.Data = dat;

            BoardData.OnWinnerSelected += (s, g) =>
            {
                var win = new WinnerData
                {
                    Winner  = g,
                    WinTime = DateTime.Now
                };

                BoardData.Winner = win;

                //RenderBoard();
            };

            BoardData.OnPlaceChanged += (s, g) =>
            {
                // Check neighbors and check winner
                BoardData.Data.CheckNeighbors(g, 5, (i, state) =>
                {
                    var c = state.StateChar;
                    if (HighestScoreData.Data.ContainsKey(c) && HighestScoreData.Data[c] is HighestScoreData score)
                    {
                        if (score.Score > i)
                        {
                            return;
                        }

                        var tempD = new HighestScoreData
                        {
                            Score     = i,
                            Character = state
                        };
                        HighestScoreData.Data[c] = tempD;
                    }


                    if (i >= 5) // Check if any winner
                    {
                        BoardData.CallWinnerSelected(state);
                    }


                    TitleEditor.RefreshTitle();
                });


                if (!BoardData.Data.IsFilled())
                {
                    RenderBoard();
                }
            };

            // Invoke callback
            callback?.Invoke();
        }
Ejemplo n.º 5
0
 public void SetNewTitle(string newTitle)
 {
     TitleEditor.TypeText(newTitle);
     TitleSaveButton.Click();
 }