Example #1
0
        public void Execute(IToolServices toolService)
        {
            Position   position = toolService.PointerOverPosition;
            MarkupInfo markups  = toolService.Node.Markups;

            MarkupKind markupKindOnPosition = markups.RemoveMarkupOnPosition(position);

            if (SequenceMarkup == SequenceMarkupKind.Letter)
            {
                char letter = markups.GetSmallestUnusedLetter();
                if (letter != '0' && markupKindOnPosition != MarkupKind.Label)
                {
                    markups.AddMarkup <Label>(new Label(position, letter.ToString()));
                }
            }
            else
            {
                int number = markups.GetSmallestUnusedNumber();
                if (markupKindOnPosition != MarkupKind.Label)
                {
                    markups.AddMarkup <Label>(new Label(position, number.ToString()));
                }
            }

            _shadows = toolService.Node.Markups.FillSequenceShadowMap(toolService.GameTree.BoardSize, SequenceMarkup);
        }